運用保守の現場で pwd を何度も打つ理由
pwd は「今いる場所を表示するだけ」の地味なコマンドですが、運用保守の現場では作業前の証跡取り、rm・mv の直前、sudo・su・cd の後と、一日に何度も使います。現場で教わった pwd の習慣を紹介します。
pwd は「一番地味で、一番よく打つ」コマンド
こんにちは、コマンド学習道場を運営しているこすけです。
今回のテーマは、ちょっと地味な pwd コマンド。
pwd(print working directory)は、今いるディレクトリを表示するだけのコマンドです。
このサイトでも初級の「基本操作(移動・確認)」で早々に登場するので、知っている方も多いはず。
覚えるのに苦労するようなものでもないですよね。
ところが運用保守の仕事に就いてからは、ls や cd と同じくらい打つコマンドになりました。
一日に何回打っているか、自分でも数えきれないくらいです。
そうなったのは、現場の手順や先輩に「作業の前は pwd で場所を確認すること」と教わったから。
正直なところ、最初は「プロンプトに出てるのに、わざわざ打つ意味ある?」と半信半疑でした。
それが今では、考えるより先に指が動いています。
そんな私が pwd を打つのは、主に3つのタイミング。
作業前の証跡取り
運用保守の作業では、「いつ・どこで・何をしたか」を後から確認できるよう、作業ログを残すのが基本です。
いわゆる証跡(エビデンス)というやつですね。
私の場合、作業に入る前にまず pwd を打って、その結果もログに残しています。
$ pwd
/var/log/app
「場所ならプロンプトに出てるでしょ?」と思った方もいるかもしれません。
実は私も、最初は同じことを考えていました。
ただ、プロンプトの表示は設定次第で、~ だけだったりディレクトリ名の末尾だけだったり。
これだとフルパスがわからないんです。
その点、pwd の出力がログにあれば、どこで作業したかは一目瞭然。
あとでログを見返したときに「これ、どのディレクトリでやったんだっけ?」とならずに済みます。
見返すのが未来の自分だったりするので、なおさらありがたいところです。
ちなみに、証跡に何を残すかは現場の手順書や運用ルール次第。
日時やホスト名もセットで記録する決まりの現場もあるので、まずは自分の現場のルールを確認しておきましょう。
rm・mv などの前の最終確認
2つ目のタイミングは、ファイルを消したり動かしたりする直前です。
削除の rm も、移動・名前変更の mv も、一度実行したら簡単には戻せません。
なかでも怖いのが、rm *.log のようなワイルドカード(* などで複数のファイルをまとめて指定する書き方)や相対パスを使うとき。
今いるディレクトリが違えば、消える対象もまるごと変わってしまうからです。
なので私は、いつもこの流れで実行しています。
$ pwd
/home/user/work/tmp
$ ls *.log # 消す前に、対象ファイルを一覧で確認する
$ rm *.log
同じ rm *.log でも、場所を間違えれば必要なログまで消えかねません。
想像するだけでヒヤッとしますよね。
だからこそ、消す・動かす・上書きする前は pwd で場所を確かめ、できれば ls で中身も見てから実行。
この3ステップは、もう完全に体に染みついています。
Windows のごみ箱と違って、rm で消したファイルはあとから戻せません。
「たぶんここにいるはず」で実行するのだけは、やめておきましょう。
sudo・su・cd の後
3つ目は、ユーザーを切り替えたり、ディレクトリを移動したりした直後です。
意外と知られていないのが、ユーザーを切り替えると、コマンドによってはカレントディレクトリ(今いるディレクトリ)まで変わってしまうこと。
$ pwd
/var/log/app
$ sudo -i # root のログインシェルに切り替える
# pwd
/root # root のホームディレクトリに移動している
/var/log/app にいたはずが、sudo -i のあとは /root に。
sudo -i や su - は切り替え先ユーザーのログインシェルを起動するので、そのユーザーのホームディレクトリに移動するんです。
一方で、- を付けない su なら、元のディレクトリのまま。
とはいえ、どれがどっちの動きだったかを毎回思い出すのは正直面倒です。
そこで私は、切り替えたらとりあえず pwd。
これが一番確実で、気持ちもラクなんですよね。
cd の後も考え方は同じです。
cd -(直前にいたディレクトリへ戻る)を何回か使ったり、cd .. を重ねたりしていると、頭の中の「今ここ」と実際の場所が少しずつずれてくるもの。
移動が続いたら、一度 pwd で現在地をリセット。
そんな感覚で使っています。
「確認してから実行する」習慣の第一歩
3つのタイミングに共通するのは、「思い込みで操作せず、確認してから実行する」という考え方です。
pwd なら、その確認はたった3文字。
一瞬で終わるので、面倒くささもほとんどありません。
本番環境のサーバーを触る運用保守では、こういう小さな確認の積み重ねが大事だと実感しています。
これから Linux を勉強する方も、練習のうちから「cd したら pwd」「rm の前にも pwd」をクセにしてみてください。
練習用ターミナルなら本物のサーバーを壊す心配もないので、気軽に何度でも試せますよ。