Linuxコマンドを連続して使う

2018年8月13日月曜日

種類
- ; (セミコロン)
- &(アンパサント)
- &&(アンパサントアンパサント)
- |(パイプ)
- ||(パイプパイプ)

使用例
コマンド1が終了したらコマンド2を実行する(実行結果に関わらず)
コマンド1が異常終了しても、コマンド2は実行されます
使い方
コマンド1 ; コマンド2 
使用例1. 5分後にdateコマンドを実行する
# sleep 5m ; date

コマンド1を実行しつつコマンド2も実行する
バックグラウンドでコマンド1を実行しつつ、コマンド2も実行できます
使い方
コマンド1 & コマンド2
使用例1. /home/egawa/egawa.shを実行しログを出力しつつ、viでegawa.txtを編集する
# sh /home/egawa/egawa.sh >> /var/log/egawa.log & vi /home/egawa/egawa.txt

コマンド1が正常終了したらコマンド2を実行する
コマンド1が正常終了したときのみ、コマンド2が実行されます
使い方
コマンド1 && コマンド2
使用例1. /home/egawaにディレクトリ移動ができたら、egawa.txtを作成する
# cd /home/egawa/ && touch egawa.txt
使用例2. ダウンロードしてきたtar.gzを解凍後、ディレクトリへ移動
# tar zxf xxx-2.x.tar.gz && cd xxx-2.x
使用例3. 何かのパッケージをソースからインストールする
# ./configure && make && make install

コマンド1の結果をコマンド2に渡して実行
コマンド1の結果をコマンド2へ渡して結果を出力します
使い方
コマンド1 | コマンド2
使用例1. ps auxで実行中のプロセスを出力し(ターミナルには出力されない)、その中からキーワードhttpdにマッチする行を出力する
# ps aux | grep httpd

コマンド1が異常終了したらコマンド2が実行される
コマンド1が異常終了したときのみ、コマンド2が実行されます
使い方
コマンド1 || コマンド2
使用例1. /home/egawa/abcにディレクトリ移動ができなかったら、/home/egawa/abcディレクトリを作成する
(使用例だと、ディレクトリがなかった場合エラーが出力されるが、その結果としてディレクトリが作成される)
# cd /home/egawa/abc || mkdir /home/egawa/abc

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates