792
676

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-07-08

どうも、江川(egawa)くんです。

Linuxでシェルスクリプトなどを書いていると以下のような条件に遭遇することがあるので、
備忘録的に残していきたいと、おっもいま〜す。

  • 複数のコマンド実行を一行で記述したい
  • あるコマンドが問題なく実行された場合のみ、次のコマンドを実行したい
  • あるコマンドが失敗したら、次のコマンドを実行したい

更新情報

  • 2016/7/8 新規作成
  • 2016/7/8 レイアウトなど見やすく修正
  • 2016/8/18 テキストを一部修正

種類

ここで出てくるのは以下のみです。

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

使用例

コマンド1が終了したらコマンド2を実行する(実行結果に関わらず)

コマンド1が異常終了しても、コマンド2は実行されます
使い方

コマンド1 ; コマンド2 

使用例1. 5分後にdateコマンドを実行する(普段使わないので、いい例が思いつきませんww)

# sleep 5m ; date

### コマンド1を実行しつつコマンド2も実行する バックグラウンドでコマンド1を実行しつつ、コマンド2も実行できます 使い方
コマンド1 & コマンド2

使用例1. /home/egawa/egawa.shを実行しログを出力しつつ、viegawa.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

792
676
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
792
676

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?