お知らせ: たぶん古い記事です。
🐦「こんにちは。記事メンテナンスサービスです。」
🐦「この記事は大雑把に 860 日以上は経過しているようです。内容の賞味期限にご注意ください。」
Linux コンソールに慣れてくると、 色々な操作をコマンドでやりたくなってきます。
あるいは魔法のようなコマンド例を教えられるか、 ググったらそういうのが出てきたりします。
そんな時に注意すべきことを初心者向けに書いています。
Rev 2
すこし手直ししてリンクを調整しました。
ほんとうに大切な一文字
Attention!
一文字の違いで大惨事。
一文字の違い、スペースが 1 個あるかどうか、 スペースなのかタブなのか、 "で囲んでいるかそうでないか。
そういった細かいことがコマンドラインやスクリプト、 そしてプログラミング言語ではとても重要になります。
一文字をおろそかにするなかれと孔子様も仰ったとかどうとか。
最も危険なこと
ファイル操作を伴うコマンドは本質的にすごく危険です。
Attention!
慣れていないうちは、ファイル操作は素直に GUI でやりましょう。
特に危険なコマンドは rm で、 中でも危険なオプションの組み合わせが -fr です。
この 5 文字は迂闊に打ってはなりません。
!DANGER!
rm でディレクトリを消すのは、慣れないうちは控えましょう。
特に root コンソールで迂闊にある一文字を追加して打ったら、 システムはご昇天です。ゲームオーバーです。 取り返しはつきません。終わりです。
通常ユーザーでやってる場合でも、 自分の $HOME ディレクトリを壊滅させうるものです。
ファイル操作全般も同様
rm だけでなく、全体的に「ファイルをいじくる・改変する」操作は 慣れない間に迂闊にコマンドでやらないほうがいいです。
- ディレクトリ再帰的な操作 (上述 -r オプション系) や 相対ディレクトリを用いる操作 ( ../ とか) は、 確信がないならやめましょう 。
- ファイル群を対象に行う操作は、いきなり本番はやめましょう。
- find や xargs などは便利ですが、相当曲者でもあります。
安全策はいろいろありますが、まずは「対象ファイルを列挙するだけスクリプト」 を作ってみるのが無難でしょう (システムに改変を加えないものです)。
確認できたら、それを元に実際にコマンドを実行するものに改造すればいいです。
GNU/Linux、UNIX の文化にはシェルスクリプトで楽をすることがあります。 sh 用に作った自分用スクリプトは、長い間利用できます。
そういう過程を試行錯誤しながらやってみれば、 自然とシェル操作もスクリプト作成もできるようになると思います。
選択肢はいろいろ
シェルスクリプトを作る Python スクリプトを作る、 なんてのもありなわけです。
1 行コマンドでやると華麗に見えますが、危険もあります。
各種言語の特性を使って多段階でやるのも手で、 いい勉強にもなります。
便利だけど危険な dd
更に危険なコマンドがあります。便利なのですが危険な dd 。
これを使う時は root 権限を使うこともあるのですが (インストール ISO イメージを USB メモリに焼く場合など)、 ストレージクラッシャー DD になりかねません。
!DANGER!
dd は使う前に十二分な程の確認をしましょう。
dd を使う時はマニュアルページをよく読み、 of が本当に目的の地なのか、 if と of が逆になってないか 3 万回指差し確認しましょう。
Note
dd を使う場合は bs で適量なサイズは指定しましょう。 8M とか。 さもないと dd さんはチマチマ作業して途方もない時間を費やします。
まとめ
- 慣れるまではファイル操作は迂闊にコマンドでやらない。
- rm でディレクトリを消すのは、とてもとても危険。
- 再帰的操作、相対ディレクトリには十分注意しましょう。
- 対象ファイル郡を一時ファイルなりに書き出して、まず確認するのもありです。
- 早めに sh スクリプトに慣れましょう。
- 他の言語を使って「スクリプトを生成するスクリプトを作る」のもありです。
- dd は最高に危険になりかねない。でも便利なので覚えておくが吉。
ご一読ありがとうございました。