Unix系Linux系のエンジニアが覚えておいて得する二つの技術!ワンライナーとヒアドキュメント

Unix・Linuxと言えばもちろんランベル3のコマンドラインですよね。

コマンドラインってレスポンスが早く、慣れるとGUIが苦痛になりますよね。

Unix・Linuxではシェルスクリプトも扱えた方が良いのですが、シェルスクリプトを記述しなくてもその場で様々なコマンドを組み合わせて処理を動かせます。

そんな中で私が日常的に使用している2つの小技について書いていきたいと思います。

スポンサーリンク

コマンドで作れる小技

ワンライナー

ワンライナーとはfor分などをコマンドラインから実行する技法になります。

例えば、下記のワンライナーは10秒おき10回、topコマンドを1回実行します。

for i in `seq 1 10` ; do top -c -n1 ; sleep 10 ; done

シェルスクリプトにしなくても、その場で動作します。

※seqはLinuxのみで使用可能

その他にも、インストールしているパッケージの確認にも下記のような記述で対応できます。

# for i in mysql php apache XXXX ; do rpm -qa | grep $i ; a=`echo $?` ; if [ $a -eq 1 ];then echo "*--- not found $i ---*" ; fi ; done
mysql-server-5.1.71-1.el6.x86_64
mysql-libs-5.1.71-1.el6.x86_64
mysql-5.1.71-1.el6.x86_64
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64
php-mysql-5.3.3-26.el6.x86_64
php-pear-1.9.4-4.el6.noarch
php-xml-5.3.3-26.el6.x86_64
php-5.3.3-26.el6.x86_64
php-pdo-5.3.3-26.el6.x86_64
php-mysql-5.3.3-26.el6.x86_64
php-common-5.3.3-26.el6.x86_64
php-cli-5.3.3-26.el6.x86_64
php-gd-5.3.3-26.el6.x86_64
*--- not found apache ---*
*--- not found XXXX ---*

このように汎用的に、その場でコマンドが組めます。

実行結果も、存在しないパッケージはnot foundで記述させているので、分かりやすいですよね。

Unix系やLinux系の特性をさらに生かしていくには、ワンライナーが使えた方が良いと思います。

ヒアドキュメント

ヒアドキュメントと検索すると、より詳しいサイトが多く出てくると思いますが、もちろんそれは身に着けた方が良いスキルだからです。

ヒアドキュメントは下記のような記述になります。

#cat <-EOF
>> aaaaa
>> bbbbb
>> ccccc
>> EOF
aaaaa
bbbbb
ccccc

一見、何をしているか分かりにくいので、分割していきます。

>cat <-EOF

これは、catコマンドを実行する際に、ヒアドキュメント開始の宣言をしています。

EOFの部分ははその他の文字列も使用できます。

>> aaaaa
>> bbbbb
>> ccccc
>> EOF

これはヒアドキュメントを開始すると標準入力が出来るようになるので、aaaaaとbbbbbとcccccを入力しています。

最後のEOFは終端子といい、ヒアドキュメントの終わりの宣言になります。

つまり、終端子までに入力されたコマンドや文字列を引き渡します。

aaaaa
bbbbb
ccccc

こえは、入力された結果を返しております。

catコマンドに入力した文字列を引き渡し実行された結果として上記が標準出力されています。

ヒアドキュメントの最大のメリットは、コマンドを|(パイプ)で挟んで連続実行する訳ではなく、入力された内容を順を追って渡していけるので、手続き型のスクリプトを組む際によく用いられます。

ワンライナーのようなコマンドベースではなく、スクリプトを作成するときによく使用します。

FTPやSQLPLUSなど、プロンプトの応答を待たなければいけない場合に非常に有用です。

スポンサーリンク

まとめ

この二つはランレベル3で作業するには必要不可欠になると思います。

一度使い慣れると、中々手放せませんし、スキルがあがればこの二つの手法で出来ることはどんどん増えていきます。

みなさんもぜひ活用していきましょう。

スポンサーリンク

フォローする

合わせて読んでみる

良ければ他の記事もどうぞ!



スポンサーリンク
コメントの入力は終了しました。