このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:コマンド練習11

コマンド練習11

 「コマンド練習11」では 5章の前半で登場したコマンドについて 練習問題を通して学びます。ここで扱うのは ps コマンド(プロセスの表示)リダイレクト(入出力の制御)パイプ(複数コマンドの連携) です。

 Linux では実行中のプロセスを管理し、コマンドの出力をファイルに保存したり、あるコマンドの出力を別のコマンドに渡すことで効率的な作業が可能です。これらの基本動作を 表や図 を使って解説し、練習問題形式で体験できるようにしています。最後に 「練習+模範解答例」 を掲載します。

コマンド解説

1.ps コマンド(プロセスの表示)

実行中のプロセスを一覧表示する。

オプション説明使用例
ps現在のシェルで動いているプロセスを表示ps
ps -eシステム全体のプロセスを表示ps -e
ps auxすべてのユーザーのプロセスの詳細情報を表示ps aux

psコマンドの出力例

[user@rocky9 ~]$ ps
    PID TTY          TIME CMD
   3656 pts/0    00:00:00 bash
   4137 pts/0    00:00:00 ps

2.リダイレクト(入出力の制御)

コマンドの結果をファイルに保存したり、ファイルの内容を入力として利用する。

記号説明使用例
>出力を上書き保存echo Hello > out.txt
>>出力を追記echo World >> out.txt
<ファイルを入力として使用sort < input.txt

3.パイプ(コマンド連携)

1つのコマンドの出力を、別のコマンドの入力として利用する。

[ ps aux ] → [ grep bash ]

練習問題 + 模範解答例

問題1

現在のシェルで実行中のプロセスを表示してください。
模範解答例

[user@rocky9 ~]$ ps
    PID TTY          TIME CMD
   3656 pts/0    00:00:00 bash
   4542 pts/0    00:00:00 ps

問題2

システム全体で動いているプロセスを一覧表示してください。
模範解答例

[user@rocky9 ~]$ ps -e
    PID TTY          TIME CMD
      1 ?        00:00:01 systemd
      2 ?        00:00:00 kthreadd
      3 ?        00:00:00 pool_workqueue_
      4 ?        00:00:00 kworker/R-rcu_g
(省略)

問題3

新しいファイル process.txt を作成し、ps コマンドの結果をこのファイルに保存してください。
模範解答例

[user@rocky9 ~]$ ps > process.txt

問題4

新しいファイル numbers.txt を作成し、以下の内容を入力してください。

3
1
4
1
5

その後、sort コマンドを使い、リダイレクトで sorted.txt に並べ替え結果を保存してください。
模範解答例

[user@rocky9 ~]$ echo -e "3\n1\n4\n1\n5" > numbers.txt
[user@rocky9 ~]$ cat numbers.txt 
3
1
4
1
5

[user@rocky9 ~]$ sort < numbers.txt > sorted.txt
[user@rocky9 ~]$ cat sorted.txt 
1
1
3
4
5

問題5

ps aux の結果から bash を含む行だけを抽出してください(パイプを使用)。
模範解答例

[user@rocky9 ~]$ ps aux | grep bash
user        3656  0.0  0.3 224256  5632 pts/0    Ss    9月05   0:00 bash
user        4595  0.0  0.1 221808  2560 pts/0    S+   13:18   0:00 grep --color=auto bash

問題6

新しいファイル words.txt を作成し、以下を入力してください。

apple
banana
apple
cherry
banana

このファイルの内容を sort で並べ替え、uniq で重複を除去してください(パイプを使用)。
模範解答例

[user@rocky9 ~]$ echo -e "apple\nbanana\napple\ncherry\nbanana" > words.txt
[user@rocky9 ~]$ cat words.txt 
apple
banana
apple
cherry
banana

[user@rocky9 ~]$ sort words.txt | uniq
apple
banana
cherry

まとめ

 「コマンド練習11」では、5章の前半で登場したコマンド として、ps・リダイレクト・パイプの基本を学びました。

  • ps でプロセスの状態を確認
  • リダイレクトで出力をファイルに保存したり、ファイルを入力として利用
  • パイプで複数コマンドを連携して効率化

これらを組み合わせることで、Linux での 作業効率を飛躍的に向上 させることができます。