初級編で概要に触れ,中級編からはコマンドの幅を広げて様々な組み合わせができるようになる事を目指します。
1 コマンドと組み合わせについて
1-1 pipe( パイプ, | )コマンド
pipe(パイプ)コマンドに代表されるように、シェルでのコマンドは繋げて実行する事ができます。
表記は |
| をパイプコマンドといいます。
下記の動きを見てもらえば、seqコマンドで1〜5までの出力に対して,pipeコマンドでgrep検索をかけて、1を 出力してるのがわかります。
$ seq 1 5
1
2
3
4
5
$ seq 1 5 | grep 1
1
参照
1-2 xargs コマンド
xargs はパイプでつなぐ前の標準出力を次のコマンドの引数として渡すコマンドです。
$ echo "test"
test
$ echo "test" | xargs mkdir
testディレクトリが作られる
よく使うパターンとしてfindに対してgrepをかけるというパターンがあります。
1-3 プロセスの置き換え
シェルコマンドを打つことで色々な処理が行われますが、その処理をプロセスと言います。 通常は文法的にも左から記載して処理された情報は右へ流れていきます。
$
簡単に言えば、この左から右への流れを置き換える事をプロセスの置き換えと言います。
$ diff <(echo "test1") <(echo "test2")
プロセスの置き換えとは
課題
- 1 pipコマンド,xargsコマンドについて1行で述べよ
- 2 プロセスの置換えについて、プロセスとは何か述べよ
参照
2 実践で役立つサンプルスクリプト
基本となるサンプルを書き換え利用することにより理解と習得を早める
課題
- サンプルスクリプト集を20作ろう。
3 覚えるべきコマンド20
グルーピング {}
パイプ |
リダイレクトパイプ プロセス置換 <,>
コマンド置換え $()
サブシェル()
複合コマンド ;
特別な変数 $0 $1~$9 $# $* $@ $? $$ $!
変数値の置換え ${var} ${var:-word} ${var:=word} ${var:?word} ${var:+word}
配列 (a b c)
各種オペレータ + - eq ne gt・・・
if then elif else fi
case esac
while do done
until do done
for do done
関数
du dh
top
ps kill
dig nslookup ping
curl
4 補足
より深く知るためのTips
とはいえ・・・
5 マニュアルについて
参照すべきマニュアルは?
コマンドで
$ man bash
でも良いですが、見づらいという人は。