• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar

Tech Life

エンジニアの生き方を考えるメディア

  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • 利用規約
  • プロフィール
You are here: Home / IT・プログラミング / Linux / 覚えておくべきLinuxコマンド50選

覚えておくべきLinuxコマンド50選

2021年12月8日 by 9nmatsumoto

Contents
  1. Linuxとは?
  2. Linuxコマンドとは?
  3. 必須コマンド25選
    • 1. man
    • 2. pwd
    • 3. date
    • 4. echo
    • 5. cd
    • 6. ls
    • 7. mkdir
    • 8. touch
    • 9. rmdir
    • 10. rm
    • 11. mv
    • 12. cp
    • 8. touch
    • 9. rmdir
    • 10. rm
    • 11. mv
    • 12. cp
    • 13. cat
    • 14. chmod
    • 15. chown
    • 16. su
    • 17. sudo
    • 18. less
    • 19. head
    • 20. tail
    • 21. vi
    • 22. grep
    • 23. find
    • 24. history
    • 25. top
  4. 覚えておきたいコマンド25選
    • 26. useradd, userdel, usermod
    • 27. passwd
    • 28. alias, unalias
    • 29. export, unset
    • 30. which
    • 31. uname
    • 32. wget
    • 33. df
    • 34. du
    • 35. jobs
    • 36. ps
    • 37. kill
    • 38. wc
    • 39. awk
    • 40. cut
    • 41. diff
    • 42. ssh
    • 43. scp
    • 44. sed
    • 45. xargs
    • 46. ping
    • 47. tracepath
    • 48. tar
    • 49. zip, unzip
    • 50. shutdown

Linuxとは?

Linuxとは、WindowsやMacと同じOSの1つであり、サーバーサイドのサーバーのOSとしてのシェアは最も多い。

また、OSSであるという特徴があり、基本的には無料で利用できるため、AWSなどのクラウド環境でも人気のOSである。

Linuxはどんな場面でも利用することがあり、Linuxを扱うことはエンジニア必須のスキルであるため、その利用方法を理解することが非常に重要である。


Linuxには大きく2つのディストリビューションがある

Linuxコマンドについて説明する前に、Linuxのディストリビューション(流通)について説明しよう。

ディストリビューションとは、種類のことで、管理する団体に応じて、Linuxは様々な種類に分かれている。

特に大きなものが、Redhat系とDebian系である。

Redhat系のLinuxの特徴として、以下のものが上げられる。

  • 代表的なOSは、Redhat Enterprise Linux(RHEL), CentOS, Amazon Linux
  • 安定性が高く、有償のサポートもあるためサーバーサイドで利用されることが多い
  • GUIは若干使いづらく、CUIで利用することが多い
  • RPMと呼ばれるパッケージ管理方式で、パッケージの数は少ない。yumコマンドでパッケージをインストールする

また、Debian系のLinuxの特徴として、以下のものが上げられる。

  • 代表的なOSは、Ubuntu, Linux Mint
  • Redhat系よりも安定しない印象がある
  • GUIが非常に便利で、初心者でも扱いやすい
  • DEBと呼ばれるパッケージ管理方式で、パッケージの数は多い。aptコマンドでパッケージをインストールする

では、Linuxコマンドとは何なのか次にそのことについてご説明しよう。

Linuxコマンドとは?

上で、Linuxには、ディストリビューションがあることを紹介した。

では、各ディストリビューションは、全く異なるOSなのかと言われると答えは否である。

ディストリビューションに応じて、UIも違うし、パッケージの管理方式も異なる。

しかし、共通の部分も存在する。それが、Linuxカーネルである。

LinuxはこのLinuxカーネルを通して、ハードウェアにアクセスして、ファイルの書き込み、読み込み、ネットワークの利用などをしているのである。

そして、カーネルにアクセスするために、用意されているのがLinuxコマンドである。

以下の図のように、ユーザーがコマンドや各プログラムを実行する環境がシェル。シェルから実行されたプログラムがカーネルを通じてハードウェアの操作を行う。

必須コマンド25選

1. man

一番最初に紹介するのでは、manコマンドである。
manコマンドは、各コマンドのマニュアルを表示するコマンドで、「man コマンド名」と言うふうに記述する。

実際に実行してみると以下のように表示される。

# man less 実行結果
LESS(1)                     General Commands Manual                    LESS(1)

NAME
       less - opposite of more

SYNOPSIS
       less -?
       less --help
       less -V
:

画面操作はlessコマンドなどと同じで、コマンドを終了するには、qを実行。
dを押下すると画面の下に移動、uを押下すると、画面の上部に移動する。


2. pwd

次に、紹介するコマンドはpwdコマンドである。これは、ユーザーが今どこにいるのか、カレントディレクトリを表示するコマンドである。
カレントディレクトリは、絶対パスで表示される。
余談だが、このコマンドは、本番作業などで、cdコマンドでディレクトリを移動した後に今どのディレクトリにいるのか確認する場合に用いられることも多い。

[test@localhost ~]$ pwd
/home/test

3. date

これは、現在時刻を表示する際に用いられるコマンである。
また、現在時刻だけでなく、様々な時刻をフォーマット付きで表示することもできる。

それぞれ、以下に示す。

    1. 現在時刻を表示する
[root@localhost ~]# date
2021年 12月 7日 火曜日 14:23:40 JST
    1. フォーマット付きで表示する
[root@localhost ~]# date "+%Y%m%d-%H%M%S" # 年月日-時分秒
20211207-143010
    1. 前日を表示する
[root@localhost ~]# date -d '1 day ago'
2021年 12月 6日 月曜日 14:31:34 JST

4. echo

これは、引数として渡した値をターミナル上に標準出力するコマンドである。
または、>, >>とすることでファイル上に書き込むこともできる。

以下に利用方法を示す。

    1. 画面上に標準出力する
[root@localhost ~]# echo 'Hello World'
Hello World
    1. ファイルに書き込む(追記)
[root@localhost ~]# echo 'Hello World' >> file.txt

5. cd

これは、ユーザーが作業しているディレクトリを変更(移動)するコマンドである。
cd ○○として、ディレクトリの中に入ったり、絶対パスでrootディレクトリから指定してディレクトリを移動することができる。

    1. ディレクトリの中に入る
[root@localhost ~]# cd dir1 # dir1の中に入る
[root@localhost dir1]# pwd
/root/dir1
    1. 親ディレクトリに移る(../)
[test@localhost ~]$ pwd
/home/test
[test@localhost ~]$ cd ../
[test@localhost home]$ pwd
/home
    1. ルートディレクトリから指定して移る
[test@localhost ~]$ pwd
[test@localhost home]$ cd /tmp/dir1/
[test@localhost dir1]$ pwd
/tmp/dir1

6. ls

ディレクトリ内に存在するファイル、ディレクトリの一覧を表示するコマンド。
デフォルトでは、現在ユーザーのいるディレクトリ上のものを表示し、ディレクトリを指定して表示することもできる。

    1. 今いるディレクトリ上のファイル、ディレクトリ一覧を表示
[test@localhost ~]$ ls
dir1 dir2 test.sh tmp.log
    1. ディレクトリを絶対パスで指定して表示
[test@localhost ~]$ ls /tmp
dir1
ks-script-9lctosou
ks-script-en8dv8d2
systemd-private-e5681e2e8f8847e6bd724b80220182f1-chronyd.service-3o0QZf

lsコマンドは、オプションを覚えることも重要である。

  • ls -R 表示されたディレクトリの中のファイルとディレクトリも表示
  • ls -a 隠しファイル(.で始まるファイル)も合わせて表示
  • ls -l ファイルの詳細情報(所有者、実行権限等)も表示

7. mkdir

ディレクトリを作成する(make directory)コマンドである。
また、-pをオプションにすると、ディレクトリの中のディレクトリも同時に作成することができる

    1. mkdirコマンドの実行例
[test@localhost ~]$ mkdir dir1
[test@localhost ~]$ ls
dir1 test.sh tmp.log
    1. mkdir -pコマンドの実行例
[test@localhost ~]$ mkdir -p dir1/dir2/dir3

8. touch

touchコマンドは、空ファイルを作成するコマンドである。
touch ファイル名と入力することで、ファイルを作成できる。

[test@localhost ~]$ touch test.txt
[test@localhost ~]$ ls
test.txt

9. rmdir

rmdirは、空ディレクトリを削除するコマンドである。
ちなみに、後述するrmコマンドでは空でないディレクトリでも削除できるため、空のディレクトリの場合だけを削除したいというときに使用する。

[test@localhost ~]$ rmdir dir1/
[test@localhost ~]$ ls

10. rm

rmはremoveの意味で、ファイルを削除するコマンドである。
オプションを付けることで、ディレクトリを削除することもできる。
削除するファイルを戻すことはできないので、使用する際は十分な注意(ダブルチェック)が必要。

    1. rmでファイルを削除
[test@localhost ~]$ touch file.txt
[test@localhost ~]$ rm file.txt
[test@localhost ~]$ ls # ファイルがなくなる
    1. rm -r でディレクトリを削除
[test@localhost ~]$ rm -r dir1/
[test@localhost ~]$ ls
    1. rm -rf だと、どんなファイルでも強制的に削除できる
[test@localhost ~]$ rm -rf dir1/
[test@localhost ~]$ ls

11. mv

mvコマンドは、ファイルの移動とファイル名の変更に用いられる
ファイル名の移動をしたい場合には、mv ファイル 移動先、として実行して
ファイル名の変更をしたい場合には、mv ファイル 新しいファイル名、として実行する。

    1. mvでファイルを移動
[test@localhost ~]$ mv file.txt dir1/
[test@localhost ~]$ ls dir1
file.txt
    1. mvでファイル名を変更
[test@localhost ~]$ mv file.txt file_new.txt
[test@localhost ~]$ ls
file_new.txt

12. cp

cpコマンドは、ファイルやディレクトリのコピーをする際に用いられる。
また、-pをオプションにすると、ディレクトリの中のディレクトリも同時に作成することができる

    1. mkdirコマンドの実行例
[test@localhost ~]$ mkdir dir1
[test@localhost ~]$ ls
dir1 test.sh tmp.log
    1. mkdir -pコマンドの実行例
[test@localhost ~]$ mkdir -p dir1/dir2/dir3

8. touch

touchコマンドは、空ファイルを作成するコマンドである。
touch ファイル名と入力することで、ファイルを作成できる。

[test@localhost ~]$ touch test.txt
[test@localhost ~]$ ls
test.txt

9. rmdir

rmdirは、空ディレクトリを削除するコマンドである。
ちなみに、後述するrmコマンドでは空でないディレクトリでも削除できるため、空のディレクトリの場合だけを削除したいというときに使用する。

[test@localhost ~]$ rmdir dir1/
[test@localhost ~]$ ls

10. rm

rmはremoveの意味で、ファイルを削除するコマンドである。
オプションを付けることで、ディレクトリを削除することもできる。
削除するファイルを戻すことはできないので、使用する際は十分な注意(ダブルチェック)が必要。

    1. rmでファイルを削除
[test@localhost ~]$ touch file.txt
[test@localhost ~]$ rm file.txt
[test@localhost ~]$ ls # ファイルがなくなる
    1. rm -r でディレクトリを削除
[test@localhost ~]$ rm -r dir1/
[test@localhost ~]$ ls
    1. rm -rf だと、どんなファイルでも強制的に削除できる
[test@localhost ~]$ rm -rf dir1/
[test@localhost ~]$ ls

11. mv

mvコマンドは、ファイルの移動とファイル名の変更に用いられる
ファイル名の移動をしたい場合には、mv ファイル 移動先、として実行して
ファイル名の変更をしたい場合には、mv ファイル 新しいファイル名、として実行する。

    1. mvでファイルを移動
[test@localhost ~]$ mv file.txt dir1/
[test@localhost ~]$ ls dir1
file.txt
    1. mvでファイル名を変更
[test@localhost ~]$ mv file.txt file_new.txt
[test@localhost ~]$ ls
file_new.txt

12. cp

cpコマンドは、ファイルやディレクトリのコピーをする際に用いられる。
-rをつけるとディレクトリをコピーすることができる。

    1. cpでファイルをコピー
[test@localhost ~]$ cp file1 file2
[test@localhost ~]$ ls
file1 file2
    1. -rでディレクトリをコピーする
[test@localhost ~]$ cp -r dir1 dir1_new
[test@localhost ~]$ ls
dir1 dir1_new

13. cat

catコマンドは、ファイルの中身をターミナル上に表示する(標準出力する)コマンドである。
catとは、concatenate(連結する)の意味で、複数のファイルを選択すれば、複数のファイルの中身を連結して表示することができる。

    1. catでファイルの中身を表示
[test@localhost ~]$ cat a.txt
a
b
c
d
    1. catでa.txt, b.txtを連結してc.txtに出力
[test@localhost ~]$ cat a.txt b.txt > c.txt

14. chmod

chmodは、ファイルの権限を変更するコマンドである。
権限には、read(読込み)、write(書き込み)、execute(実行)の権限があり、
chmod ○○○ ファイル名とすることで、ファイルに対するユーザー、グループ、その他のユーザーに対する権限を変更できる。
-Rのオプションを付与するとディレクトリとその中身に対しても権限が変更される。

    1. chmodでfile.txtに対して、権限を変更する
[test@localhost ~]$ chmod 755 a.txt
[test@localhost ~]$ ls -l
合計 0
-rwxr-xr-x. 1 test test 0 12月 8 14:25 a.txt # 権限がrwx(ユーザー)、rx(グループ)、rx(その他)になる
    1. chmodでディレクトリに対して、権限を変更する
[test@localhost ~]$ chmod -R 755 dir1/

15. chown

chownは、ファイルやディレクトリの所有者、所有グループを指定したものに変更するコマンドである。
chown ユーザー:グループ ファイル名として実行する。
-Rのオプションを付与するとディレクトリとその中身も同じように所有者、所有グループを変更する。

    1. chownでfile.txtに対して、所有者、所有グループを変更する
[root@localhost ~]# chown test2:test2 /home/test/a.txt
[root@localhost ~]# ls -l /home/test/a.txt
-rwxr-xr-x. 1 test2 test2 0 12月 8 14:25 /home/test/a.txt # 所有者がtest2、所有グループがtest2になる
    1. chownでディレクトリに対して、所有者、所有グループを変更する
[root@localhost ~]# chown -R test2:test2 /home/test/dir1
[root@localhost ~]# ls -l /home/test/
drwxr-xr-x. 2 test2 test2 6 12月 8 14:27 dir1

16. su

suは、ユーザーを別のユーザーに変更するコマンドである。
suに、ハイフン(-)をつけて実行することで、rootユーザーにログインし、
ハイフン(-)なしで実行すると、ログインなしでrootユーザーに変更する。
また、ユーザー名の指定なしで実行すると、rootユーザー(管理者権限を持つユーザー)に変更される。

    1. rootユーザーにログインする(su -)
[test@localhost ~]$ su -
パスワード:
最終ログイン: 2021/12/09 (木) 07:57:23 JST日時 pts/0

[root@localhost ~]#
    1. testユーザーでログインする(su - test)
[root@localhost ~]# su - test
最終ログイン: 2021/12/09 (木) 16:03:44 JST 10.0.2.2から開始日時 pts/0
[test@localhost ~]$

17. sudo

sudoは、root権限(管理者権限)が必要でコマンドやタスクを一般ユーザーでも実行できるようにするコマンドである。
一般ユーザーでも管理者権限で処理を実行するので、取り扱いには注意が必要。

[test@localhost ~]$ sudo useradd test3
[sudo] test のパスワード:
[test@localhost ~]$

18. less

lessは、ファイルの中身を表示するコマンドである。
サイズの大きなファイルでも中身を確認できる。
dボタンで下に、uボタンで上に移動して、qで画面操作を終了する。

[test@localhost ~]$ less file.txt
a
b
c
d
efile.txt (END)

19. head

headは、ファイルの最初の何行かを表示したい場合に用いる。
デフォルトでは、最初の10行を表示して、head -n ○○とすると表示する行数を変更できる。

    1. headでファイルの最初の10行を表示する(デフォルト)
[test@localhost ~]$ head file.txt
1
2
3
4
5
6
7
8
9
10
    1. headでファイルの最初の5行を表示する
[test@localhost ~]$ head -n 5 file.txt
1
2
3
4
5

20. tail

これは、headと対になったコマンドで、ファイルの末尾からの何行かを表示したい場合に用いる。
行数を指定しない場合には、末尾の10行が表示され、
tail -n 5とすると、末尾の5行が表示される。

    1. tailでファイルの末尾の10行を表示(デフォルト)
[test@localhost ~]$ tail file.txt
6
7
8
9
10
11
12
13
14
15
    1. tailでファイルの末尾の5行を表示(tail -n 5)
[test@localhost ~]$ tail -n 5 file.txt
11
12
13
14
15

21. vi

viは、テキストエディターを表示して、ファイルを編集して保存するコマンドである。
実行すると、コマンドモードと入力モードに分かれる。
コマンドモードでは、行や文字の削除やペースト
入力モードでは、文字の入力を主に行う。
コマンドモードから入力モードに移るには、iボタンを押下する。
入力モードからコマンドモードに移るには、Escボタンを押下する。
編集した内容を保存して終了するには、コマンドモードから:wqとしてEnter。
編集した内容を破棄して終了するには、コマンドモードから:q!としてEnterを押下する。

    1. viでファイルを編集する
[test@localhost ~]$ vi file.txt
~
~
"file.txt" [新ファイル] 0,0-1 全て
    1. iボタンで編集モードに移る
abc
~
~
-- 挿入 -- 1,4 全て
    1. Escでコマンドモードに移る
abc
~
~
1,2 全て
    1. :wqでファイルを保存して終了
abc
~
~
:wq

22. grep

grepは、入力から、特定の文字を含む行(あるいは含まない行)を取り出すコマンドである。
grep blue notepad.txtとして実行すると、notepad.txtファイルからblueを含む行だけ取り出すことができる。
オプションの-vをつけると、特定の文字を含まない行だけ取り出すことができる。

    1. 特定の文字を含む行を取り出す
[test@localhost ~]$ grep apple file.txt
apple
apple pie
    1. 特定の文字を含む行以外を取り出す
[test@localhost ~]$ grep -v apple file.txt
grape
lemon
banana
melon

23. find

findは、ファイル、ディレクトリを検索するコマンドである。
find 検索したいディレクトリ オプション 検索内容
のように記述する。

最も、多いのはファイル名で検索することで、-nameをオプションとして使用する。
また、前方一致、後方一致で検索したい場合には、*(アスタリスク)を用いる

[test@localhost ~]$ find . -name file1* # file1で名前が始まるファイル、ディレクトリを現在いるディレクトリ以下から見つける。
./dir1/file1.txt

24. history

historyは、ユーザーが過去に利用したコマンドの履歴を表示するコマンドである。
システム開発の作業の特性上、同じサーバーに対しては、同じコマンドを実行することが多いので、historyコマンドを実行して過去に実行されたコマンドを参考にすることは非常に便利である。

[test@localhost ~]$ history
283 vi file.txt
284 vim file.txt
285 grep apple file.txt
286 grep -v apple file.txt

25. top

topは、実行されているプロセスの一覧とそのプロセスがどれほどCPUを使用しているのかを表示するコマンドである。
リソースの使用状況を確認して、どのプロセスを削除すればリソースを確保できるのか確認する場合に用いる。

[test@localhost ~]$ top
top - 17:06:18 up 2:46, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 101 total, 3 running, 98 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.6 us, 5.6 sy, 0.0 ni, 83.3 id, 0.0 wa, 5.6 hi, 0.0 si, 0.0
MiB Mem : 809.2 total, 318.2 free, 161.3 used, 329.7 buff/cache
MiB Swap: 820.0 total, 820.0 free, 0.0 used. 519.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
1 root 20 0 174668 13264 8444 S 0.0 1.6 0:01.83

覚えておきたいコマンド25選

ここからは、必須ではないが覚えておいたほうがいいコマンドを25個紹介する。

26. useradd, userdel, usermod

useradd, userdel, usermodは、ユーザーの追加、削除、情報の変更をするコマンドである。
rootユーザーでないと実行できない。
ユーザーを追加すると、/etc/passwdファイル内にユーザー情報が書き込まれる。

    1. useraddコマンドでユーザーを追加する
[root@localhost ~]# useradd my_user
[root@localhost ~]# cat /etc/passwd | grep my_user
my_user:x:1004:1004::/home/my_user:/bin/bash
    1. usermodコマンドでユーザーにコメントを追加する
[root@localhost ~]# usermod -c "Add Comment" my_user
[root@localhost ~]# cat /etc/passwd | grep my_user
my_user:x:1004:1004:Add Comment:/home/my_user:/bin/bash
    1. userdelコマンドでユーザーを削除する
[root@localhost ~]# userdel my_user
[root@localhost ~]# cat /etc/passwd | grep my_user
[root@localhost ~]#

27. passwd

passwdは、ユーザーログインに使用するパスワードを変更するコマンドである。
rootユーザーで、passwd ユーザー名として実行すると特定のユーザーのパスワードを変更し、
ユーザーにログインして、passwdを実行するとログインしたユーザーのパスワードを変更できる。

    1. rootからpasswdコマンドで、特定のユーザーのパスワードを変更する
[root@localhost ~]# passwd test
ユーザー test のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
    1. ユーザーにログインして、passwdコマンドでパスワードを変更する
[root@localhost ~]# su - test
最終ログイン: 2021/12/14 (火) 19:23:33 JST 10.0.2.2から開始日時 pts/0
[test@localhost ~]$ passwd
ユーザー test のパスワードを変更。
Current password:
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

28. alias, unalias

aliasはコマンドに別名をつけるコマンドで、unaliasはつけた別名を削除するコマンドである。
alias ○○="コマンド"とすることで、特定のコマンドに対して引数つきで別名を付けることができる。
unalias ○○とすることで、別名を削除できる。

    1. aliasだけで実行すると、別名一覧が表示される
[test@localhost ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
:
    1. aliasで別名を付与する
[test@localhost ~]$ alias la="ls -a"
[test@localhost ~]$ la
. .bash_history .bash_profile .config .viminfo dir1 tmp.log
.. .bash_logout .bashrc .lesshst day7_exam file.txt
    1. unaliasで別名を削除する
[test@localhost ~]$ unalias la
[test@localhost ~]$ la
-bash: la: コマンドが見つかりません

29. export, unset

exportコマンドは、作成したシェル変数を環境変数に設定するコマンドである。
unsetコマンドは、シェル変数や環境変数を削除するコマンドである。

    1. exportで環境変数を設定する
[test@localhost ~]$ user="Taro"
[test@localhost ~]$ export user
[test@localhost ~]$ export user="Taro" # シェル変数の宣言をしてそのまま一度に設定する

30. which

whichは、コマンドの実体がどのディレクトリに存在するのか、そのパスを表示するコマンドである。
which コマンド名として、実行する。

    1. whichコマンド実行結果
[test@localhost ~]$ which echo
/usr/bin/echo

31. uname

unameは、OSの情報を表示するコマンドである。
uname -aを用いると、より詳細な情報を表示でき、こちらのほうが利用されやすい

    1. unameでOS情報を表示する
[ec2-user@localhost ~]$ uname
Linux
    1. uname -aで詳細を表示する
[ec2-user@localhost ~]$ uname -a
Linux localhost.localdomain 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Tue Nov 16 14:42:35 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

32. wget

wgetは、world wide web getのことで、インターネットを経由してデータを取得するコマンドである。

[ec2-user@localhost ~]$ wget https://www.example.com/○○ # データを取得する

33. df

dfコマンドは、システムのファイルシステムが使用しているディスクの容量や使用率と使用可能領域を表示するコマンドである
df -h をつけると、わかりやすく表示できる

    1. dfコマンド実行結果
[ec2-user@localhost ~]$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 395172 0 395172 0% /dev
tmpfs 414296 0 414296 0% /dev/shm
tmpfs 414296 5612 408684 2% /run
tmpfs 414296 0 414296 0% /sys/fs/cgroup
/dev/mapper/cl-root 6486016 1625280 4860736 26% /
/dev/sda1 1038336 217920 820416 21% /boot
tmpfs 82856 0 82856 0% /run/user/1005
[ec2-user@localhost ~]$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 386M 0 386M 0% /dev
tmpfs 405M 0 405M 0% /dev/shm
tmpfs 405M 5.5M 400M 2% /run
tmpfs 405M 0 405M 0% /sys/fs/cgroup
/dev/mapper/cl-root 6.2G 1.6G 4.7G 26% /
/dev/sda1 1014M 213M 802M 21% /boot
tmpfs 81M 0 81M 0% /run/user/1005

34. du

duは、disu usageの意味で、ファイルやディレクトリの使用量を表示するコマンドである。
-hオプションを使用すると、人間が読みやすい形式に変更することができる。
du -sh ./*として実行すると、ディレクトリの容量は合計が表示され、非常に見やすくなる。

    1. du -hコマンド実行結果
[root@localhost usr]# du -h | head -7
54M ./bin
38M ./sbin
0 ./lib/debug/usr/bin
0 ./lib/debug/usr/sbin
0 ./lib/debug/usr/lib
0 ./lib/debug/usr/lib64
0 ./lib/debug/usr
    1. du -shコマンド実行結果
[root@localhost usr]# du -sh ./*
54M ./bin
0 ./games
44K ./include
800M ./lib
161M ./lib64
7.1M ./libexec
0 ./local
38M ./sbin
230M ./share
0 ./src
0 ./tmp

35. jobs

jobsは、現在ユーザーが利用しているシェルの動かしているプロセスの一覧を表示するコマンドである。

[root@localhost usr]# jobs
[1]+ 停止 sleep 100

36. ps

psは、プロセスの一覧を表示するコマンドである。
-eオプションを付けると、接続しているユーザーの持っているプロセスだけでなく、全プロセスを表示できる。
-fオプションをつけると、詳細な情報も表示できる。
ps -efとして実行することが多い。

    1. psコマンド実行結果
[ec2-user@localhost tmp]$ ps
PID TTY TIME CMD
1466 pts/0 00:00:00 bash
1620 pts/0 00:00:00 ps
[ec2-user@localhost tmp]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 18:34 ? 00:00:03 /usr/lib/systemd/systemd -
root 2 0 0 18:34 ? 00:00:00 [kthreadd]
root 3 2 0 18:34 ? 00:00:00 [rcu_gp]
root 4 2 0 18:34 ? 00:00:00 [rcu_par_gp]

37. kill

killコマンドは、プロセスに信号を送って停止や再起動をするコマンドである。
オプションを付けずに実行した場合は、シグナル番号15で、プロセスを安全に終了させる。
kill -9(-SIGKILL)とした場合は、プロセスを強制停止する。
kill -19(-STOP)とした場合は、プロセスを一時停止する。

    1. killコマンド実行結果
[ec2-user@localhost ~]$ kill 1773 # プロセスID1773のプロセスが終了する
    1. kil -9コマンド実行結果
[ec2-user@localhost ~]$ kill -9 1776 # プロセスID1776のプロセスが強制終了する

38. wc

wcは、word countのことで、ファイルの行数、記述されている単語の数、ファイルのサイズを取得するコマンドである。
wc -l で、行数
wc -w で、単語数
wc -m で、文字数
を取得する。

[ec2-user@localhost ~]$ wc long.txt
37 207 1000 long.txt # 37行、単語数207、1000バイト

39. awk

awkコマンドは、数行でテキスト処理をしたい場合に用いるコマンドである。
標準出力やファイルを指定して、その一部を取り出す際に用いられることが多い。
例えば、以下のように、空白で区切られたテキストの1列目と3列目だけを取り出したい場合に、用いられる。

    1. awkで取り出すファイル
[ec2-user@localhost ~]$ cat sample.txt
1 apple 100円
2 banana 200円
3 lemon 300円
    1. awkでファイルの1列目と2列目をスペースを入れて取り出す('print $1 " " $2')
[ec2-user@localhost ~]$ awk '{print $1 " " $2}' sample.txt
1 apple
2 banana
3 lemon

40. cut

cutは、標準出力やファイルから一部を取り出したい場合に用いる。
cut -cで、何文字目を取り出すのか指定する。
cut -f -dで、どのフィールドを取り出すのか指定する。

    1. cut -cで何文字目か指定して取り出す(例の場合1文字目と6文字目)
[ec2-user@localhost ~]$ echo '?foobar' | cut -c 1,6
?a
[ec2-user@localhost ~]$ echo '?foobar' | cut -c 1-6
?fooba
    1. cut -d -fでカンマ区切りのファイルから一部の列を取り出す
[ec2-user@localhost ~]$ cat sample.txt
1,apple,100円
2,banana,200円
3,lemon,300円

[ec2-user@localhost ~]$ cut -d ',' -f 2,3 sample.txt
apple,100円
banana,200円
lemon,300円

41. diff

diffは、2つのファイルを比較して、一致していない行を抽出するコマンドである。
diff ファイル1 ファイル2のような形で、
ファイルを2つ引数にとって実行する。

    1. diffコマンドの実行結果(3,4行目が異なることがわかる)
[ec2-user@localhost ~]$ cat sample1.txt
Tokyo
Osaka
Nagoya
Sendai
Sapporo

[ec2-user@localhost ~]$ cat sample2.txt
Tokyo
Osaka
Fukuoka
Yokohama
Sapporo

[ec2-user@localhost ~]$ diff sample1.txt sample2.txt
3,4c3,4
< Nagoya
< Sendai --- > Fukuoka
> Yokohama

42. ssh

sshは、外部のサーバーにsshプロトコルで接続をする場合に用いる。
-p: ポート番号の指定
-i: 秘密鍵ファイルの指定
を行う

ssh –p 11000 test@192.111.11.11 # 192.111.11.11のアドレスにtestユーザで11000のポート番号を用いてsshプロトコルで接続する

43. scp

scpは、SSHプロトコルで、ファイルの送信をするコマンドである。
-p: パーミッションを保持したままコピー
-r: ディレクトリの中を再帰的にコピー
-P: ポート番号を指定

scp コピー元ファイル [ユーザ名@]コピー先ホスト:[コピー先ファイル名]
例) scp /etc/file sample.com:/tmp/file

44. sed

sedは、ストリームエディターのことで、テキストを一括で編集するコマンドである。
一部の行を削除したり、ファイル内の文字列を別の文字列に変換する場合などに用いられる。

    1. ファイルの2行目と3行目を削除して標準出力
[ec2-user@localhost ~]$ sed "2,3d" file.txt
1
4
5
    1. ファイルのabcをABCに変換して標準出力
[ec2-user@localhost ~]$ sed "s/abc/ABC/g" file.txt
ABC

45. xargs

xargsコマンドは、他のコマンドの標準出力結果を別のコマンドの引数に渡す場合に用いる。
|(パイプ)の後に、xargsを用いて、利用する。
-Iオプションを用いると、標準出力に別名を与え、変数化して実行できる。

    1. xargsでファイルを削除する
[test@localhost ~]$ ls
file1 file2 file3
[test@localhost ~]$ ls | xargs rm # lsの結果がrmの引数として渡され、rm file1 file2 file3 が実行される
[test@localhost ~]$ ls
    1. -Iで引数に別名を与える
[test@localhost ~]$ date "+%Y/%m/%d %H:%M:%S" -d "1 years ago"
2021/01/07 15:18:11
[test@localhost ~]$ date "+%Y/%m/%d %H:%M:%S" -d "1 years ago" | xargs -I @ touch -d "@" tmp.txt
[test@localhost ~]$ ls -l tmp.txt
-rw-rw-r--. 1 test test 0 1月 7 2021 tmp.txt

46. ping

pingは、IPアドレスやホスト名を指定して、ICMPプロトコルで指定先にネットワークが疎通するのか確認をするコマンドである。
ping6は、IPv6のアドレスへの疎通確認を行う

[test@localhost ~]$ ping google.com
PING google.com (172.217.26.238) 56(84) bytes of data.
64 bytes from nrt12s51-in-f14.1e100.net (172.217.26.238): icmp_seq=1 ttl=114 time=10.9 ms

47. tracepath

tracepathは、IPアドレスまたはホスト名を指定して宛先までUDPメッセージが通ったルート(ゲートウェイ)のアドレスを表示する
経路上のどこまで到達してどこに問題があるのか調べたい場合に用いる。
-nのオプションで、ホスト名をIPアドレスにして表示する

[test@localhost ~]$ tracepath -n google.com
1?: [LOCALHOST] pmtu 1500
1: 10.0.2.2 0.315ms
1: 10.0.2.2 0.470ms

48. tar

tar(ター)は、ファイルを圧縮・解答するコマンドである。
-f: 対象のファイル名を指定
-c: ファイルの圧縮
-x: ファイルの解凍
-v: 処理の詳細を表示

    1. ファイルの圧縮
[test@localhost ~]$ tar -cvf tmp.txt.tar tmp.txt
tmp.txt
[test@localhost ~]$ ls
tmp.txt tmp.txt.tar
    1. ファイルの解凍
[test@localhost ~]$ ls
tmp.txt.tar
[test@localhost ~]$ tar -xvf tmp.txt.tar
tmp.txt
[test@localhost ~]$ ls
tmp.txt tmp.txt.tar

49. zip, unzip

zip, unzipは、ファイル、ディレクトリをzip形式で圧縮・解凍するコマンドである。
zipはwindowsで特によく用いられる、フォーマットである。
-rを用いるディレクトリの中身をまとめて圧縮できる

    1. zip形式に圧縮
[test@localhost ~]$ ls
dir1
[test@localhost ~]$ zip -r dir1.zip dir1/
adding: dir1/ (stored 0%)
adding: dir1/file1 (stored 0%)
adding: dir1/file2 (stored 0%)
adding: dir1/file3 (stored 0%)

[test@localhost ~]$ ls
dir1 dir1.zip
    1. zip形式を解凍
[test@localhost ~]$ ls
dir1.zip
[test@localhost ~]$ unzip dir1.zip
Archive: dir1.zip
creating: dir1/
extracting: dir1/file1
extracting: dir1/file2
extracting: dir1/file3

[test@localhost ~]$ ls
dir1 dir1.zip

50. shutdown

shutdown は、OSのシャットダウンや再起動を行うコマンドである。
-hでシャットダウンを行い、-rで再起動をする
shutdown -h nowとすると、すぐにシャットダウンされる。

[test@localhost ~]$ shtudown -h now # すぐにシャットダウンされる
[test@localhost ~]$ shtudown -r now # すぐに再起動される

Filed Under: IT・プログラミング, Linux

Primary Sidebar

注目記事

プロのエンジニアが選ぶPython入門者、初心者向けの書籍10選
元SEが語る、システムエンジニア(SE)ってどんな仕事?きつくてつらいのか?
元SEが語る、システムエンジニアの良いところ

スポンサーリンク