桐株式会社の開発者ブログ

レガシーな不動産建築業界をITの力で変えたい

明日使えるかもしれないシェルコマンド解説

初めまして。rsoooと申します。

記念すべき技術ブログの第1本目の投稿として、私の大好きなシェルコマンドトリビアを紹介したいと思います。

(最初からそんなネタでいいのかというのがありますが)

ここでは、もしかしたら今後役に立つかもしれないトリビアシェルコマンドをご紹介します。

yesコマンド

ネタとして取り上げられるコマンドは何と言ってもまずyesコマンドが上げられると思います。yesコマンドが何か知らない方は、まずは以下のコマンドを叩いてみましょう。

 $ yes 高須クリニック

結果は省略するとして、これは何の意味があるのかと考えさせられます。 ちなみに、yes コマンドの引数を与えないと、y が出力され続けます。

真面目な回答をすると、yesコマンドをパイプすることによって、常にyesを入力するとこができるので、毎回確認入力をする必要がありません。

 # 確認入力の手間を削減
 $ yes | rm -i hogehoge.txt

それだけではありません。他に使い方としては、文章の生成とかに使えます(頑張れば)

 # 同じ文字列を100行生成
 $ yes mojiretsu | head -100

 # 長さ100の文字列xを作成
 $ yes x | head -100 | tr -d ""

また、もしあなたがシステム管理者で、かつLinuxで開発機を複数人で使用している場合、以下のようにサボっている人に怒りのメッセージも送れます。

  # /dev/pts/1 はサボっている人の仮想端末。wコマンドで調べる
  # yes "仕事しろ!" | head -100 | tr "\n" " " >  /dev/pts/1

このように便利なyesコマンドなので、ぜひ利用してください。

slコマンド

トリビアコマンドとしてはslコマンドは外せません。 残念ながら標準で入っていないので、Ubuntuの方はいますぐsudo apt-get install sl をお願いします。 sl コマンドを打ってくれればわかりますが、画面上にslが走ります。ただそれだけです。

これはls を間違えてsl と入力しないための入力補正のためのコマンドです。lsと間違えてslと打つと数秒間待たされるので、今まで考えていた作業が強制的に中断され、かなりストレスがたまります。この苦い教訓のよりコマンドのタイプミスが減ることが期待されます。

slコマンドはさらにCtrl-CによるSIGINTシグナルを無効にしているので、途中で終了することはできず、SLが走り抜けるのをただただ見守る必要があります。

上司とコンソールを開いてコードレビューなどをしている時に誤ってslコマンドを打ってしまった際にはCtrl-Zでプロセスを止めて一時停止し、後でslをkillするという回避策が有効です。

tacコマンド / revコマンド

tacコマンドはテキストファイルの行を逆順に表示してくれます。 なのでcatのもじったものだと考えられます。

 $ cat file
 a
 b
 c
 $ tac file
 c
 b
 a

revコマンドは文字列を左右逆に表示して出力してくれます。 私は今まで一度も使ったことはないですが、以下のようにすれば与えられた文字列が回文かどうかを判定できます。

 $ cat file
しんぶんし
 $ if [  `cat file` = `rev file` ]                            
 $ then
 $ echo "回文です"
 $ fi

終わりに

いかがでしょうか。他にもまだまだあるのですが、長くなりそうなので、一旦ここまでにしておきました。 明日使える知識がたくさんあったかと思いますが、ぜひ活用してみてください。

他に面白い使い方がありましたら教えていただけると幸いです。

桐株式会社ではエンジニアを募集中!

桐株式会社ではレガシーな不動産建築業界をITの力で変えたいエンジニアを募集しております! まずはランチなどでお話しませんか?お気軽にお問い合わせください。