4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

改めてLinuxコマンドを理解する⑤[コマンドを繋げてみよう編]

Posted at

はじめに

こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。今回の記事はLinuxコマンドの同士の連携についてです。

パイプ

まずは基本的なところで、パイプです。
これは最初に実行したコマンドの結果を次のコマンドに渡すものです。例えばですが、以下のようなコマンドの場合です。

ls | grep "test"

この場合、lsの表示結果を右のgrepコマンドに渡しています。パイプで繋げる場合、よく使われるのがgrepコマンドです。
このコマンドは表示結果やファイルの中身などから特定の文字列が含まれているものだけを表示してくれます。なので、lsのコマンドで出てくる出力結果からtestという文字列が含まれているものだけを出力する形ですね。
image.png

左のコマンドに出力結果がない場合でも、コマンドは実行されます。空の場合は何も表示されず終了します。

論理AND (&&)

次に論理ANDを紹介します。これは最初のコマンドが実行されたら次のコマンドを実行するシンプルな記述です。

論理AND
mkdir test && cd test

以下のコマンドを実行すると、mkdirコマンドでディレクトリを作成した後に、そのままそのディレクトリにcdで移っています。

&&の場合、左のコマンドが実行失敗した場合は右のコマンドは実行されませんのでご注意ください。

論理OR (||)

次に論理ORを紹介します。こちらはANDと違って、前のコマンドが失敗した時に次のコマンドを実行します。

三つ以上実行した場合は以下になります。

三つ以上の論理OR
command1 || command2 || command3

command1が成功の場合:
command2とcommand3は実行されないです。

command1が失敗の場合:
command2が実行されます。成功した場合はcommand3は実行されないです。

command2も失敗の場合:
command3が実行されます。

前のコマンドが成功した場合のみ、次のコマンドを実行するという点に注意したいですね。

セミコロン (;)

コマンドを順番に実行します。前のコマンドが成功しようと失敗しようと、関係なく次を実行してくれます。

  cd test; ls

前のコマンドが失敗したらそのまま終わって欲しい場合は&&を使いましょう。

バックグラウンドで実行 (&)

コマンドをバックグラウンドで実行してくれます。例えばsleepコマンドという、シェルの処理を指定した時間分一時停止してくれるコマンドがあります。

使い方
sleep 10 &

本来末尾に&がない場合、シェルはコマンドなどを受け付けないまま固まるのですが、末尾に&をつけるとsleepコマンドを裏で実行してくれます。

image.png

コマンドの置き換え($())

これはコマンドの結果を他のコマンドで使えるようにします。あとは変数に入れたりですね。

書き方
echo "今日の天気は$(date)です。"
出力結果
今日の天気は2024年 12月16日 月曜日 19時31分35秒 JSTです。

シェルスクリプトのif文で使用してみる。

書き方
if [ "$(whoami)" = "root" ]; then
    echo "あなたはrootユーザーです。"
else
    echo "あなたは通常のユーザーです。"
fi

シェルスクリプトを作成して実行してみると、以下のような結果になりました。
image.png

シェルスクリプトを実行するには実行権限をつける必要があります。chmodコマンドを使いましょう。実際、別にやらなくて結構です。

おわりに

今回はコマンドをつなげてみようといった記事でした。
どれも結構使いますね。Dockerfileなどでもコマンドをつなげてコンテナ内の環境構築を一気にやることが多いです。

とはいえ、初学者向けの記事なので、まずは&&から使い始めてください。

シェル強強エンジニアを目指していきましょう💪
7f274c8f-03f8-4661-ab8e-26c53c2ba192_720.png

余談

最近分厚い技術書を3冊購入したせいで、リュックが重くてしょうがないです。。
PC + 技術書は腰にきます(泣)

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?