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コマンドでディレクトリを移動した後に今どのディレクトリにいるのか確認する場合に用いられることも多い。
/home/test
3. date
これは、現在時刻を表示する際に用いられるコマンである。
また、現在時刻だけでなく、様々な時刻をフォーマット付きで表示することもできる。
それぞれ、以下に示す。
-
- 現在時刻を表示する
2021年 12月 7日 火曜日 14:23:40 JST
-
- フォーマット付きで表示する
20211207-143010
-
- 前日を表示する
2021年 12月 6日 月曜日 14:31:34 JST
4. echo
これは、引数として渡した値をターミナル上に標準出力するコマンドである。
または、>, >>とすることでファイル上に書き込むこともできる。
以下に利用方法を示す。
-
- 画面上に標準出力する
Hello World
-
- ファイルに書き込む(追記)
5. cd
これは、ユーザーが作業しているディレクトリを変更(移動)するコマンドである。
cd ○○として、ディレクトリの中に入ったり、絶対パスでrootディレクトリから指定してディレクトリを移動することができる。
-
- ディレクトリの中に入る
[root@localhost dir1]# pwd
/root/dir1
-
- 親ディレクトリに移る(../)
/home/test
[test@localhost ~]$ cd ../
[test@localhost home]$ pwd
/home
-
- ルートディレクトリから指定して移る
[test@localhost home]$ cd /tmp/dir1/
[test@localhost dir1]$ pwd
/tmp/dir1
6. ls
ディレクトリ内に存在するファイル、ディレクトリの一覧を表示するコマンド。
デフォルトでは、現在ユーザーのいるディレクトリ上のものを表示し、ディレクトリを指定して表示することもできる。
-
- 今いるディレクトリ上のファイル、ディレクトリ一覧を表示
dir1 dir2 test.sh tmp.log
-
- ディレクトリを絶対パスで指定して表示
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をオプションにすると、ディレクトリの中のディレクトリも同時に作成することができる
-
- mkdirコマンドの実行例
[test@localhost ~]$ ls
dir1 test.sh tmp.log
-
- mkdir -pコマンドの実行例
8. touch
touchコマンドは、空ファイルを作成するコマンドである。
touch ファイル名と入力することで、ファイルを作成できる。
[test@localhost ~]$ ls
test.txt
9. rmdir
rmdirは、空ディレクトリを削除するコマンドである。
ちなみに、後述するrmコマンドでは空でないディレクトリでも削除できるため、空のディレクトリの場合だけを削除したいというときに使用する。
[test@localhost ~]$ ls
10. rm
rmはremoveの意味で、ファイルを削除するコマンドである。
オプションを付けることで、ディレクトリを削除することもできる。
削除するファイルを戻すことはできないので、使用する際は十分な注意(ダブルチェック)が必要。
-
- rmでファイルを削除
[test@localhost ~]$ rm file.txt
[test@localhost ~]$ ls # ファイルがなくなる
-
- rm -r でディレクトリを削除
[test@localhost ~]$ ls
-
- rm -rf だと、どんなファイルでも強制的に削除できる
[test@localhost ~]$ ls
11. mv
mvコマンドは、ファイルの移動とファイル名の変更に用いられる
ファイル名の移動をしたい場合には、mv ファイル 移動先、として実行して
ファイル名の変更をしたい場合には、mv ファイル 新しいファイル名、として実行する。
-
- mvでファイルを移動
[test@localhost ~]$ ls dir1
file.txt
-
- mvでファイル名を変更
[test@localhost ~]$ ls
file_new.txt
12. cp
cpコマンドは、ファイルやディレクトリのコピーをする際に用いられる。
また、-pをオプションにすると、ディレクトリの中のディレクトリも同時に作成することができる
-
- mkdirコマンドの実行例
[test@localhost ~]$ ls
dir1 test.sh tmp.log
-
- mkdir -pコマンドの実行例
8. touch
touchコマンドは、空ファイルを作成するコマンドである。
touch ファイル名と入力することで、ファイルを作成できる。
[test@localhost ~]$ ls
test.txt
9. rmdir
rmdirは、空ディレクトリを削除するコマンドである。
ちなみに、後述するrmコマンドでは空でないディレクトリでも削除できるため、空のディレクトリの場合だけを削除したいというときに使用する。
[test@localhost ~]$ ls
10. rm
rmはremoveの意味で、ファイルを削除するコマンドである。
オプションを付けることで、ディレクトリを削除することもできる。
削除するファイルを戻すことはできないので、使用する際は十分な注意(ダブルチェック)が必要。
-
- rmでファイルを削除
[test@localhost ~]$ rm file.txt
[test@localhost ~]$ ls # ファイルがなくなる
-
- rm -r でディレクトリを削除
[test@localhost ~]$ ls
-
- rm -rf だと、どんなファイルでも強制的に削除できる
[test@localhost ~]$ ls
11. mv
mvコマンドは、ファイルの移動とファイル名の変更に用いられる
ファイル名の移動をしたい場合には、mv ファイル 移動先、として実行して
ファイル名の変更をしたい場合には、mv ファイル 新しいファイル名、として実行する。
-
- mvでファイルを移動
[test@localhost ~]$ ls dir1
file.txt
-
- mvでファイル名を変更
[test@localhost ~]$ ls
file_new.txt
12. cp
cpコマンドは、ファイルやディレクトリのコピーをする際に用いられる。
-rをつけるとディレクトリをコピーすることができる。
-
- cpでファイルをコピー
[test@localhost ~]$ ls
file1 file2
-
- -rでディレクトリをコピーする
[test@localhost ~]$ ls
dir1 dir1_new
13. cat
catコマンドは、ファイルの中身をターミナル上に表示する(標準出力する)コマンドである。
catとは、concatenate(連結する)の意味で、複数のファイルを選択すれば、複数のファイルの中身を連結して表示することができる。
-
- catでファイルの中身を表示
a
b
c
d
-
- catでa.txt, b.txtを連結してc.txtに出力
14. chmod
chmodは、ファイルの権限を変更するコマンドである。
権限には、read(読込み)、write(書き込み)、execute(実行)の権限があり、
chmod ○○○ ファイル名とすることで、ファイルに対するユーザー、グループ、その他のユーザーに対する権限を変更できる。
-Rのオプションを付与するとディレクトリとその中身に対しても権限が変更される。
-
- chmodでfile.txtに対して、権限を変更する
[test@localhost ~]$ ls -l
合計 0
-rwxr-xr-x. 1 test test 0 12月 8 14:25 a.txt # 権限がrwx(ユーザー)、rx(グループ)、rx(その他)になる
-
- chmodでディレクトリに対して、権限を変更する
15. chown
chownは、ファイルやディレクトリの所有者、所有グループを指定したものに変更するコマンドである。
chown ユーザー:グループ ファイル名として実行する。
-Rのオプションを付与するとディレクトリとその中身も同じように所有者、所有グループを変更する。
-
- chownでfile.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になる
-
- chownでディレクトリに対して、所有者、所有グループを変更する
[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ユーザー(管理者権限を持つユーザー)に変更される。
-
- rootユーザーにログインする(su -)
パスワード:
最終ログイン: 2021/12/09 (木) 07:57:23 JST日時 pts/0
[root@localhost ~]#
-
- testユーザーでログインする(su - test)
最終ログイン: 2021/12/09 (木) 16:03:44 JST 10.0.2.2から開始日時 pts/0
[test@localhost ~]$
17. sudo
sudoは、root権限(管理者権限)が必要でコマンドやタスクを一般ユーザーでも実行できるようにするコマンドである。
一般ユーザーでも管理者権限で処理を実行するので、取り扱いには注意が必要。
[sudo] test のパスワード:
[test@localhost ~]$
18. less
lessは、ファイルの中身を表示するコマンドである。
サイズの大きなファイルでも中身を確認できる。
dボタンで下に、uボタンで上に移動して、qで画面操作を終了する。
a
b
c
d
efile.txt (END)
19. head
headは、ファイルの最初の何行かを表示したい場合に用いる。
デフォルトでは、最初の10行を表示して、head -n ○○とすると表示する行数を変更できる。
-
- headでファイルの最初の10行を表示する(デフォルト)
1
2
3
4
5
6
7
8
9
10
-
- headでファイルの最初の5行を表示する
1
2
3
4
5
20. tail
これは、headと対になったコマンドで、ファイルの末尾からの何行かを表示したい場合に用いる。
行数を指定しない場合には、末尾の10行が表示され、
tail -n 5とすると、末尾の5行が表示される。
-
- tailでファイルの末尾の10行を表示(デフォルト)
6
7
8
9
10
11
12
13
14
15
-
- tailでファイルの末尾の5行を表示(tail -n 5)
11
12
13
14
15
21. vi
viは、テキストエディターを表示して、ファイルを編集して保存するコマンドである。
実行すると、コマンドモードと入力モードに分かれる。
コマンドモードでは、行や文字の削除やペースト
入力モードでは、文字の入力を主に行う。
コマンドモードから入力モードに移るには、iボタンを押下する。
入力モードからコマンドモードに移るには、Escボタンを押下する。
編集した内容を保存して終了するには、コマンドモードから:wqとしてEnter。
編集した内容を破棄して終了するには、コマンドモードから:q!としてEnterを押下する。
-
- viでファイルを編集する
~
~
"file.txt" [新ファイル] 0,0-1 全て
-
- iボタンで編集モードに移る
~
~
-- 挿入 -- 1,4 全て
-
- Escでコマンドモードに移る
~
~
1,2 全て
-
- :wqでファイルを保存して終了
~
~
:wq
22. grep
grepは、入力から、特定の文字を含む行(あるいは含まない行)を取り出すコマンドである。
grep blue notepad.txtとして実行すると、notepad.txtファイルからblueを含む行だけ取り出すことができる。
オプションの-vをつけると、特定の文字を含まない行だけ取り出すことができる。
-
- 特定の文字を含む行を取り出す
apple
apple pie
-
- 特定の文字を含む行以外を取り出す
grape
lemon
banana
melon
23. find
findは、ファイル、ディレクトリを検索するコマンドである。
find 検索したいディレクトリ オプション 検索内容
のように記述する。
最も、多いのはファイル名で検索することで、-nameをオプションとして使用する。
また、前方一致、後方一致で検索したい場合には、*(アスタリスク)を用いる
./dir1/file1.txt
24. history
historyは、ユーザーが過去に利用したコマンドの履歴を表示するコマンドである。
システム開発の作業の特性上、同じサーバーに対しては、同じコマンドを実行することが多いので、historyコマンドを実行して過去に実行されたコマンドを参考にすることは非常に便利である。
283 vi file.txt
284 vim file.txt
285 grep apple file.txt
286 grep -v apple file.txt
25. top
topは、実行されているプロセスの一覧とそのプロセスがどれほどCPUを使用しているのかを表示するコマンドである。
リソースの使用状況を確認して、どのプロセスを削除すればリソースを確保できるのか確認する場合に用いる。
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 MemPID 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ファイル内にユーザー情報が書き込まれる。
-
- useraddコマンドでユーザーを追加する
[root@localhost ~]# cat /etc/passwd | grep my_user
my_user:x:1004:1004::/home/my_user:/bin/bash
-
- usermodコマンドでユーザーにコメントを追加する
[root@localhost ~]# cat /etc/passwd | grep my_user
my_user:x:1004:1004:Add Comment:/home/my_user:/bin/bash
-
- userdelコマンドでユーザーを削除する
[root@localhost ~]# cat /etc/passwd | grep my_user
[root@localhost ~]#
27. passwd
passwdは、ユーザーログインに使用するパスワードを変更するコマンドである。
rootユーザーで、passwd ユーザー名として実行すると特定のユーザーのパスワードを変更し、
ユーザーにログインして、passwdを実行するとログインしたユーザーのパスワードを変更できる。
-
- rootからpasswdコマンドで、特定のユーザーのパスワードを変更する
ユーザー test のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
-
- ユーザーにログインして、passwdコマンドでパスワードを変更する
最終ログイン: 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 ○○とすることで、別名を削除できる。
-
- aliasだけで実行すると、別名一覧が表示される
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
:
-
- aliasで別名を付与する
[test@localhost ~]$ la
. .bash_history .bash_profile .config .viminfo dir1 tmp.log
.. .bash_logout .bashrc .lesshst day7_exam file.txt
-
- unaliasで別名を削除する
[test@localhost ~]$ la
-bash: la: コマンドが見つかりません
29. export, unset
exportコマンドは、作成したシェル変数を環境変数に設定するコマンドである。
unsetコマンドは、シェル変数や環境変数を削除するコマンドである。
-
- exportで環境変数を設定する
[test@localhost ~]$ export user
[test@localhost ~]$ export user="Taro" # シェル変数の宣言をしてそのまま一度に設定する
30. which
whichは、コマンドの実体がどのディレクトリに存在するのか、そのパスを表示するコマンドである。
which コマンド名として、実行する。
-
- whichコマンド実行結果
/usr/bin/echo
31. uname
unameは、OSの情報を表示するコマンドである。
uname -aを用いると、より詳細な情報を表示でき、こちらのほうが利用されやすい
-
- unameでOS情報を表示する
Linux
-
- 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のことで、インターネットを経由してデータを取得するコマンドである。
33. df
dfコマンドは、システムのファイルシステムが使用しているディスクの容量や使用率と使用可能領域を表示するコマンドである
df -h をつけると、わかりやすく表示できる
-
- 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
ファイルシス サイズ 使用 残り 使用% マウント位置
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 ./*として実行すると、ディレクトリの容量は合計が表示され、非常に見やすくなる。
-
- du -hコマンド実行結果
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
-
- 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は、現在ユーザーが利用しているシェルの動かしているプロセスの一覧を表示するコマンドである。
[1]+ 停止 sleep 100
36. ps
psは、プロセスの一覧を表示するコマンドである。
-eオプションを付けると、接続しているユーザーの持っているプロセスだけでなく、全プロセスを表示できる。
-fオプションをつけると、詳細な情報も表示できる。
ps -efとして実行することが多い。
-
- psコマンド実行結果
PID TTY TIME CMD
1466 pts/0 00:00:00 bash
1620 pts/0 00:00:00 ps
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)とした場合は、プロセスを一時停止する。
-
- killコマンド実行結果
-
- kil -9コマンド実行結果
38. wc
wcは、word countのことで、ファイルの行数、記述されている単語の数、ファイルのサイズを取得するコマンドである。
wc -l で、行数
wc -w で、単語数
wc -m で、文字数
を取得する。
37 207 1000 long.txt # 37行、単語数207、1000バイト
39. awk
awkコマンドは、数行でテキスト処理をしたい場合に用いるコマンドである。
標準出力やファイルを指定して、その一部を取り出す際に用いられることが多い。
例えば、以下のように、空白で区切られたテキストの1列目と3列目だけを取り出したい場合に、用いられる。
-
- awkで取り出すファイル
1 apple 100円
2 banana 200円
3 lemon 300円
-
- awkでファイルの1列目と2列目をスペースを入れて取り出す('print $1 " " $2')
1 apple
2 banana
3 lemon
40. cut
cutは、標準出力やファイルから一部を取り出したい場合に用いる。
cut -cで、何文字目を取り出すのか指定する。
cut -f -dで、どのフィールドを取り出すのか指定する。
-
- cut -cで何文字目か指定して取り出す(例の場合1文字目と6文字目)
?a
[ec2-user@localhost ~]$ echo '?foobar' | cut -c 1-6
?fooba
-
- cut -d -fでカンマ区切りのファイルから一部の列を取り出す
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つ引数にとって実行する。
-
- diffコマンドの実行結果(3,4行目が異なることがわかる)
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: 秘密鍵ファイルの指定
を行う
43. scp
scpは、SSHプロトコルで、ファイルの送信をするコマンドである。
-p: パーミッションを保持したままコピー
-r: ディレクトリの中を再帰的にコピー
-P: ポート番号を指定
例) scp /etc/file sample.com:/tmp/file
44. sed
sedは、ストリームエディターのことで、テキストを一括で編集するコマンドである。
一部の行を削除したり、ファイル内の文字列を別の文字列に変換する場合などに用いられる。
-
- ファイルの2行目と3行目を削除して標準出力
1
4
5
-
- ファイルのabcをABCに変換して標準出力
ABC
45. xargs
xargsコマンドは、他のコマンドの標準出力結果を別のコマンドの引数に渡す場合に用いる。
|(パイプ)の後に、xargsを用いて、利用する。
-Iオプションを用いると、標準出力に別名を与え、変数化して実行できる。
-
- xargsでファイルを削除する
file1 file2 file3
[test@localhost ~]$ ls | xargs rm # lsの結果がrmの引数として渡され、rm file1 file2 file3 が実行される
[test@localhost ~]$ ls
-
- -Iで引数に別名を与える
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のアドレスへの疎通確認を行う
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アドレスにして表示する
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: 処理の詳細を表示
-
- ファイルの圧縮
tmp.txt
[test@localhost ~]$ ls
tmp.txt tmp.txt.tar
-
- ファイルの解凍
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を用いるディレクトリの中身をまとめて圧縮できる
-
- zip形式に圧縮
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
-
- zip形式を解凍
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 -r now # すぐに再起動される