Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものに
The exact language used in the Single UNIX specification to describe the meaning of set -e is: When this option is on, if a simple command fails for any of the reasons listed in Consequences of Shell Errors or returns an exit status value >0, and is not [a conditional or negated command], then the shell shall immediately exit. There is an ambiguity as to what happens when such a command occurs in
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、本当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シ
思いっきり雑学レベルの話ですみませんが、思い出した今書かないと忘れそうだなと思ったのでw この手法で何が出来るかと言うと、シェルスクリプトを実行するとスクリプトファイルの後ろ(exit で終了されて実行されない領域)に結合されたバイナリ形式の圧縮ファイル部分を抜き出して /tmp 以下に展開してそこに含まれているバイナリ形式の実行ファイルを実行して、一見シェルスクリプトのように見えるのに実はバイナリファイルを実行してるじゃんなどという楽しいことができます。いかにもハックまがいの手法に見えますが、どうやらこの手法は POSIX で考慮されているようです。 これを知ったのは「シバン shebang がないシェルスクリプトはどのシェルで動くかわからない(からちゃんと書いとけ)」の記事を書いている時に見つけた fish の PR 7802 です。fish はシバンがないスクリプトを実行するとエラー
今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ
Linux Daily Topics 2020年5月20日リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」 リモートからホストにsshで接続する際、bashやzshなどいつも使っているシェルで操作したいというニーズを受けて、この5月から開発がスタートしたプロジェクトに「xxh」がある。ライセンスはBSD Licenseで、Python 3で開発されており、Linux(x86_64)上で動作する。なお開発者の名前も「xxh」とされている。 xxh/xxh : 🚀 Bring your favorite shell wherever you go through the ssh -GitHub xxhの原理はごくシンプルで、ホストに対し、ポータブルで密閉されたシェル環境をアップロードし、リモートマシンからssh越しで利用可能にするというもの。rootア
※ 2018/07/21 追記。 お読みいただきましてありがとうございます! すみません、実はタイトルの割には「現在回しているイケてない運用をちょっとした工夫でサクッと改善する」ことを主眼としており、セキュリティのベストプラクティスではありません。。。 本稿の例で挙げているコマンドのリスクにつきましては、 注意 の項を追加しましたのでご参照ください。 公開当初は「10いいねくらいもらえたら嬉しいなー」と思っていた程度だったのですが、まさかここまでたくさんの方に読んでいただけるとは。。。 もっと内容を精査しておくべきだったと反省しております。。。 いいねやコメント等反応頂けるのはとても励みになります。ありがとうございます! TL;DR 怖いですよね、セキュリティインシデント。 インフラ系でお仕事をしていると、 Linux にログインして操作する手順書を作る事が多くなります。手順書の中には認証
俺の愛用ワンライナー、Web企業のエンジニア16人に聞きました エンジニアの皆さんが愛用する自作のワンライナーってどんなもの?Web企業で働くエンジニアの方々に、秘蔵のワンライナーを聞きました。 ワンライナーとは、何か特定の処理を「たった1行のプログラム」だけで実現するものです。サービス運用に携わるエンジニアの皆さんも、愛用している独自のワンライナーを持っているのではないでしょうか。「独自のワンライナー」とは、エンジニア各人のナレッジやノウハウが詰まっているとも考えられます。 本企画ではさまざまジャンルで活躍するエンジニア16人に、業務を支えてくれるワンライナーを紹介してもらいました。参考に使ってみるも良し。眺めて楽しむも良し。個性あふれる貴重な「オレオレ・ワンライナー」の数々をご覧ください! ※各カテゴリー内では所属企業名の50音順に掲載。回答者は敬称略とする。 リソース管理 プロセスを
Ubuntuには「command-not-found」というパッケージが最初からインストールされています。ユーザーが入力したコマンドが存在しない場合、必要となりそうなパッケージを推測・提案してくれるニクイアイツです。今回はその仕組みとカスタマイズ方法を紹介しましょう。 command-not-foundの仕組み UbuntuでCLIで操作している時、およそ人生においてコマンド入力を間違えたことのないパーフェクトヒューマンでもない限り、以下のようなメッセージに遭遇したことがあるでしょう。 プログラム 'sl' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt install sl これは「command-not-found」というパッケージが提供する機能です。Ubuntuのリポジトリには多種多様なソフトウェアが存在しますが、そのすべてがロー
foo.pdf というファイルにマッチさせたくて $ find . -name *.pdf だと find: paths must precede expression というエラーメッセージになる。もしくは何も表示されない事もある。 これは何でかというとディレクトリに foo.pdf, bar.pdf, hoge.pdf とあった時に $ find . -name *.pdf とするとシェルがワイルドカードを展開してしまうため $ find . -name foo.pdf bar.pdf hoge.pdf と等価になってしまうから。 参考 linux - "find: paths must precede expression:" How do I specify a recursive search that also finds files in the current direct
PSReadLine について Version3以上のPowerShellに対応した、GitHub上で開発されているPowerShellモジュールです。 詳細は以下のURLから確認できます。 https://github.com/lzybkr/PSReadLine 出来ること キーバインドのカスタマイズ(いわゆるbashと同じEmacs風に出来ます) シンタックスエラーがカーソル(>の部分)の色で分かる Bashっぽい補完(ちょっと違う) Bashっぽい履歴検索 その他色々あるらしい インストール方法 Windows+x → a で管理者権限でPowerShellを起動 $ Install-Module PSReadlin を実行 指示に従ってインストールを完了させる 管理者権限のPowerShellのまま、 Set-ExecutionPolicy -ExecutionPolicy Rem
Windows PowerShellは強力なオブジェクト指向ベースのシェルで従来のコマンド・プロンプトに対して、タブ補完も非常に優れていますが、bashなど*sh系からの移行にとって困難なのが、キーバインドです。 左右移動はもちろん、行頭、行末まで削除など、キーボードの中心から指を離さずに操作できるようにできている*sh系に比べて、「←」、「Home」などを押さないと移動できず、さらにはPowerShell自身にはキーバインドの変更の仕組みがありません。 開発者やシステム管理者、テスト・エンジニアにとってキーボードの中心から指を移動させることは非常に効率が悪くストレスの溜ることです。 しかし、今回ご紹介するAutoHotkeyを使うと簡単に*sh系のキーバインドに変更することができます。 AutoHotkey ダウンロードして、インストーラに従っていけば、簡単にインストールできます。 Au
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く