概要
Webサイト・サーバー運用時に使うであろうLinuxコマンド集です。
フロントエンドユーザーやバックエンドユーザーではソフトウェアやアプリを開発する際はIDE(統合開発環境)などを使用したりするので余りコマンドラインでの操作は明るくないかと思われます。
恐らくLinuxコマンドを使用するタイミングといえば本番環境下のOSがLinux系のリモートサーバーだと思いますので、そんな時の早見表として使っていただけたら幸いです。
コマンドは殆どの場合下記のように実行します。
$ コマンド -オプション 引数
実行環境 |
---|
Linux系 |
「clear:クリア」コマンドで作業画面(ターミナル)内のコマンドラインを画面上部に移動させることができます。
※「echo:エコー」コマンドはメッセージを表示させるコマンドです。
$ echo コマンドを
コマンドを
$ echo 実行していくと
実行していくと
$ echo コマンドラインが
コマンドラインが
$ echo 画面下部に移動していきます
画面下部に移動していきます
$ echo そのコマンドラインを画面上部に移動させるには
そのコマンドラインを画面上部に移動させるには
$ clear
上記をターミナルとして見た場合、作業ラインが段々と画面下部に流れていってしまいます。それだと視界に様々な情報が入ってしまい作業に支障が出るのでそれを一旦クリア(clear)にします。すると下記のようにターミナル上部に作業ラインが移動されて画面上はまっさらな状態へとなり作業がしやすくなります。
$
「pwd(print working directory):ピーダビュリューディー」コマンドでは、現在位置つまり作業ディレクトリのフルパスを表示します。
$ pwd
/home/username/
$
「man(manuals):マン」コマンドで特定のインストールされているソフトウェアのコマンド詳細を表示させることができます。
manコマンドでmanコマンドを調べます。
$ man man
デフォルトの動作では一覧画面へと切り替わります。「Ctrl+C」もしくわ「q」で一覧画面を抜けられます。
MAN(1) Manual pager utils MAN(1)
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
...
「--help」オプションでコマンドのオプションを表示させることができます。
$ man --help
Usage: man [OPTION...] [SECTION] PAGE...
-C, --config-file=FILE use this user configuration file
-d, --debug emit debugging messages
-D, --default reset all options to their default values
--warnings[=WARNINGS] enable warnings from groff
...
$
【hostname】コマンドではサーバーのIPアドレス及び名前解決されているドメイン名を取得できます。
$ hostname
zerofromlight.com
「hostname -i」でIPアドレスを取得できます。
hostname -i
111.222.33.444
他にも「ip addr」コマンドによってIPアドレスの取得が行えます。こちらの実行結果ではデバイスごとのアドレスを取得できます。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether ...
inet 111.222.33.444/44 brd 111.222.33.444 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
...
「inet」の行がアドレスとなので、アドレスだけ取得したいといった場合は「grep」コマンドで検索します。
$ ip addr | grep inet
inet 127.0.0.1/8 scope host lo
inet 111.222.33.444/44 brd 111.222.33.444 scope global noprefixroute eth0
【ping:ピング】コマンドでは、指定したIPアドレスまたはドメイン名を与えることで、ローカルサーバーから相手サーバーまでの疎通確認ができます。
※ 以下はドメイン名を指定しています。このコマンドの実行から抜けるには「Ctrl+C」を打ちます。
$ ping zerofromlight.com
PING zerofromlight.com (133.167.65.223) 56(84) bytes of data.
64 bytes from zerofromlight.com (133.167.65.223): icmp_seq=1 ttl=54 time=14.4 ms
64 bytes from zerofromlight.com (133.167.65.223): icmp_seq=2 ttl=54 time=15.6 ms
64 bytes from zerofromlight.com (133.167.65.223): icmp_seq=3 ttl=54 time=14.9 ms
64 bytes from zerofromlight.com (133.167.65.223): icmp_seq=4 ttl=54 time=15.1 ms
64 bytes from zerofromlight.com (133.167.65.223): icmp_seq=5 ttl=54 time=15.6 ms
^C
--- zerofromlight.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 14.490/15.174/15.670/0.465 ms
$
「ssh(secure shell):エスエスエイチ」コマンドでは、セキュリティ上安全な通信によるリモートサーバーへのログインを行えます。
※以下の指定はユーザー名に続きIPアドレスを指定しています。IPアドレスではなくドメイン名でも実行できます。
$ ssh username@111.222.33.444
'username@111.222.33.444's password:
ポート番号を変更している場合は、オプション「-p」で番号を指定します。
$ ssh -p 1111 username@111.222.33.444
'username@111.222.33.444's password:
「host:ホスト」コマンドでは、DNS(Domain Name System)サーバーに登録されているホスト名(IPアドレス及びドメイン)を検索します。IPアドレスは何らかのドメインに対応づけられているので、IPア
ドレスもしくわドメインに検索をかけるとその要素に名前解決された要素が表示されます。
※以下はドメイン名を指定して検索しています。
$ host zerofromlight.com
zerofromlight.com has address 133.167.65.223
zerofromlight.com mail is handled by 10 zerofromlight.com.
「dig:ディーアイジー」コマンドでは、特定のドメイン名の詳細情報をDNS(Domain Name System)サーバーに問い合わせます。名前解決がされているかの問い合わせにも使います。
$ dig zerofromlight.com
; <<>> DiG OSname <<>> zerofromlight.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17463
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
...
...以下省略
$
「ss(socket statistics):エスエス】コマンドでは、パケット通信(ネットワーク接続)の状態を表示します。オプションを使用することにより柔軟な詳細表示を行えます。
※以下のコマンドオプションは現在進行形で利用している各パケットの表示です。ポート番号などが記載されているため、他人には見せるべきではない内容です。
$ ss -natu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.1:323 *:*
udp UNCONN 0 0 [::1]:323 [::]:*
tcp LISTEN 0 128 *:80 *:*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 128 127.0.0.1:8000 *:*
...
...省略
$
ちなみに、「netstat」コマンドでも同じ表示内容を実行することができます。
$ netstat -natu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323 :::*
...
...省略
$
「mkdir(make directories):エムケーディア、メイクディア」コマンドでディレクトリを作成します。
$ mkdir new_dir
$
$ mkdir new_dir_1 new_dir_2
カレントディレクトリ(現在作業中のディレクトリ)内に「new_dir、new_dir_1、new_dir_2」というディレクトリ(フォルダ)が作成されています。
「ls(list directory contents):エルエス」コマンドで特定のディレクトリの中身を一覧表示することができる。
$ ls
$
$ mkdir new_dir
$ mkdir new_dir_1 new_dir_2
$
$ ls
new_dir new_dir_1 new_dir_2
$
「cd(change directory):シーディー」コマンドはディレクトリ(階層)を移動することができます。
$ ls
new_dir new_dir_1 new_dir_2
$
$ cd new_dir_1
new_dir_1$
new_dir_1$ cd ..
$
移動したいディレクトリを指定し移動します。手前のディレクトリに戻りたい場合はドット2つ「..」を指定して戻ります。
「rmdir(remove empty directories):リムディア」コマンドで指定したディレクトリを削除できます。
$ ls
new_dir new_dir_1 new_dir_2
$
$ rmdir new_dir
$
$ ls
new_dir_1 new_dir_2
$
$ rmdir new_dir_1 new_dir_2
$
$ ls
$
「touch(change file timestamps):タッチ」コマンドでファイルを新規作成できます。
$ ls
$
$ touch new_file
$
$ touch new_file_1 new_file_2
$
$ ls
new_file new_file_1 new_file_2
$
「cat:キャット」コマンドでファイルの中身を表示することができます。
※echoコマンドでのメッセージを演算子の大なり記号(>)でファイルにメッセージを書き込んでいます。
$ echo 'Hello World!' > new_file
$
$ ls
new_file
$
$ cat new_file
Hello World!
$
「less:レス」コマンドではファイルの中身を一覧画面で表示させることができます。
$ less new_file
一覧画面としてファイルの中身が表示される。
「Ctrl+C」もしくわ「q」で一覧画面を抜けれます。
Hello World!
new_file (END)
「head:ヘッダ、ヘッド」コマンドではファイルの中身の上部を表示できます。
※デフォルトでは上部10行目までを表示します。
$ cat new_file
1
2
3
4
5
6
7
8
9
10
11
$
$ head new_file
1
2
3
4
5
6
7
8
9
10
$
「tail:テイル」コマンドはファイルの中身の下部を表示できます。
※デフォルトでは下部から10行目を表示します。
$ tail new_file
2
3
4
5
6
7
8
9
10
11
$
「sort:ソート」コマンドではファイル内の各行を規格順に並べ替えることができます。
$ cat new_file
9
8
7
6
5
4
3
2
1
$
$ sort new_file
1
2
3
4
5
6
7
8
9
$
「uniq:ユニーク」コマンドでは行単位で前後に重複している要素を片方だけ削除し単一に表示することができます。
※sortコマンドとセットで使用することにより、前後での重複を確認することができます。
$ cat new_file
9
9
8
8
7
7
6
6
5
5
4
4
3
3
2
2
1
1
$
$ uniq new_file
9
8
7
6
5
4
3
2
1
$
「wc(word count):ダビュルーシー」コマンドではファイル内の行数、文字数、ファイルサイズを表示します。
$ cat new_file
1 1
2 2
3 3
4 4
5 5
$
$ wc new_file
5 10 20 new_file
$
wcコマンドの表示結果では、左から「行数」「文字数」「ファイルサイズ(バイト単位)」となります。
「file:ファイル」コマンドで指定したファイルのタイプや文字コードを表示
$ ls
new_dir new_file
$
$ file new_dir
new_dir: directory
$
$ file new_dir new_file
new_dir: directory
new_file: ASCII text
$
「stat(status):ステート」コマンドでは、ファイル自体の詳細情報を表示できます。「ls -l ファイル」としても各ファイルの詳細情報を表示できます。
$ ls
new_dir new_file
$
$ stat new_dir
File: new_dir
Size: 4096 Blocks: 0 IO Block: 4096 directory
Device: 2h/2d Inode: 12384898976201929 Links: 1
Access: (0755/drwxr-xr-x) Uid: ( 1000/ username) Gid: ( 1000/ groupname)
Access: 2022-03-13 11:15:53.225818000 +0900
Modify: 2022-03-13 11:15:53.225818000 +0900
Change: 2022-03-13 11:15:53.225818000 +0900
Birth: -
$
$ stat new_dir new_file
File: new_dir
Size: 4096 Blocks: 0 IO Block: 4096 directory
Device: 2h/2d Inode: 12384898976201929 Links: 1
Access: (0755/drwxr-xr-x) Uid: ( 1000/ username) Gid: ( 1000/ groupname)
Access: 2022-03-13 11:15:53.225818000 +0900
Modify: 2022-03-13 11:15:53.225818000 +0900
Change: 2022-03-13 11:15:53.225818000 +0900
Birth: -
File: new_file
Size: 20 Blocks: 0 IO Block: 4096 regular file
Device: 2h/2d Inode: 12666373952913746 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ username) Gid: ( 1000/ groupname)
Access: 2022-03-13 12:17:35.754678800 +0900
Modify: 2022-03-13 12:17:35.754678800 +0900
Change: 2022-03-13 12:17:35.817166500 +0900
Birth: -
$
ちなみに限られた詳細情報の表示は「ls -l」で表示できます。
$ ls -l
total 0
drwxr-xr-x 1 user group 4096 Mar 13 11:15 new_dir
-rw-r--r-- 1 user group 20 Mar 13 12:17 new_file
$
補足
ファイル名「new_dir」の例
「drwxr-xr-x 1 user group 4096 Mar 13 11:15 new_dir」
d:ファイルのタイプで「d」はディレクトリの意
rwx...:権限(パーミッション)、「rwx」で表され、読み書きや表示、実行などの権限を付けられる
1:ハードリンクされている数。リンク元のファイルが削除されてもアクセスできるように
user:ユーザー名
group:所属するグループ名
4096:ファイルサイズ
Mar 13 11:15:タイムスタンプ(作成日)
new_dir:ファイル名
「cp(copy):コピー、シーピー」コマンドでディレクトリやファイルをコピーできます。
$ ls
new_dir new_file
$
$ cp new_file copy_file
$
$ ls
copy_file new_dir new_file
$
「scp(secure copy):エスシーピー」コマンドでは、sshでの暗号化された通信によってファイルをコピーしてくれます。ローカルサーバーからリモートサーバーへ、その逆のリモートからローカルへのファイルの転送(コピー)を行えます。
※作業環境はローカルマシン(自身のCUI)からの例です。
ローカルマシンのコマンドラインから、ローカル→リモートへとファイルを転送(コピー)します。
$ ls
local_file
$
$ scp -P 1234 local_file username@111.222.33.444:/home/username/remote_file
'username@111.222.33.444's password:
local_file 100% 20 1.3KB/s 00:00
$
補足
「scp」コマンドの実行内容の詳細です。
-P 1234:ポート番号です。デフォルトでは「22」番で通信されるので、変更していたら必要なオプションです。
local_file:ローカルからリモートへ転送したいファイル名です。
username:ユーザー名です。
111.222.33.444:リモートサーバーのIPアドレスです。ドメイン名(example.com)に置き換えることもできます。
/home/username/:リモート先のディレクトリです。
remote_file:リモートへ転送(コピー)された任意のファイル名です。
リモートサーバー内の「/home/username/」ディレクトリに「remote_file」としてローカルからファイルが転送されました。
次はリモートサーバー内に存在するファイルをローカルへと転送(コピー)します。
※作業環境はローカルマシン(自身のCUI)からの例です。
$ scp -P 1234 username@111.222.33.444:/home/username/remote_file local_file
'username@111.222.33.444's password:
remote_file 100% 20 1.3KB/s 00:00
$
$ ls
local_file
$
「rsync:アールエスワイエヌシー」コマンドは高速で用途の広いファイル転送ツールです。「scp」コマンドと同様にSSHプロトコルで通信します。
※作業環境はローカルマシン(自身のCUI)からの例です。
ローカルマシンのコマンドラインから、ローカル→リモートへとファイルを転送(コピー)します。
$ rsync -e 'ssh -p 1234' local_file username@111.222.33.444:/home/username/remote_file
'username@111.222.33.444's password:
$
「-e」オプションでSSHプロトコルのポート番号を指定することができます。
次はリモートサーバー内に存在するファイルをローカルへと転送(コピー)します。
※作業環境はローカルマシン(自身のCUI)からの例です。
$ rsync -e 'ssh -p 1234' username@111.222.33.444:/home/username/remote_file local_file
'username@111.222.33.444's password:
$
sftp(SSH File Transfer Protocol)とはSSHによって暗号化されたファイル専用の通信規格です。こちらの通信では「sftp >」コマンドラインでの作業となり、ある程度のLinuxコマンドを使用してリモートやローカルの環境を操作できるので便利です。
$ sftp username@example.com
username@example.com's password:
sftp>
SSH通信のポート番号を変えている場合は「-o」オプションを付けてポート番号を入力します。
$ sftp -o port=1234 username@exsample.com
username@example.com's password:
sftp>
リモートサーバーのディレクトリにあるファイル一覧を確認するには「ls」と実行します。
sftp> ls
... remote_file ...
ローカルサーバーのディレクトリにあるファイル一覧を確認するには「lls」と実行します。
sftp> lls
... local_file ...
リモートサーバーからローカルサーバーへファイルを転送するには、「get ファイル名」と実行します。
sftp> get remote_file
Fetching /home/username/remote_file to remote_file
/home/username/remote_file
ローカルサーバーからリモートサーバーへファイル転送するには、「put ファイル名」と実行します。
sftp> put local_file
Uploading local_file to /home/username/local_file
local_file
sftpコマンドラインを抜けるには「quit」を実行します。
sftp> quit
$
「find:ファインド」コマンドでは指定したディレクトリ内などに特定のファイルおよびディレクトリ等の結果を階層ごとに表示します。
※下記の「find -type d,f」コマンドではカレントディレクトリ内にある各階層のディレクトリ及びファイル群を表示するように指定しています。
$ ls
dir_1 dir_2 dir_3 search_file
$
$ find -type d,f
.
./dir_1
./dir_1/dir_1_1
./dir_1/dir_1_1/search_file
./dir_2
./dir_2/dir_2_1
./dir_2/dir_2_1/test_file
./dir_3
./dir_3/dir_3_1
./dir_3/test_file
./search_file
$
上記の実行はこれから実装するのに分かりやすくするために各階層構造を表示しただけです。
特定のディレクトリやファイルがあるか調べたい場合は、「-name」オプションを使用すると便利です。
$ find -name search_file
./dir_1/dir_1_1/search_file
./search_file
$
このコマンドのデフォルトの動作は、カレントディレクトリ内を探索します。「-name」を外すとカレントディレクトリのみ検索、「-name」を付けるとカレントディレクトリ内にある全ディレクトリに検索をかけます。
注意
一番上(rootディレクトリ)の階層で「-type d,f」や「-name」といったオプションでディレクトリやファイルの検索をかけてしまうと、デフォルトの設定上カレントディレクトリを出発点として目的のファイルを探してしまうので、だいぶ時間を取られてしまいます。
以下はディレクトリを指定してからファイルの検索を実行しています。
$ find dir_2 -name test_file
dir_2/dir_2_1/test_file
$
「grep:グリップ」コマンドでは、ファイル内の文字列の検索及びパイプ(|)などで出力された結果内の文字列を検索することができます。
※ファイル内の内容は人工知能 - Wikipediaの概要を一部抜粋した内容です。
$ cat search_file
人間の知的能力をコンピュータ上で実現する、様々な技術・ソフトウェア・コ
ンピュータシステム。
応用例としては、自然言語処理(機械翻訳・かな漢字変換・構文解析・文章要
約等)、専門家の推論・判断を模倣するエキスパートシステム、画像データを
解析し特定のパターンを検出・抽出する画像認識等がある。
1956年にダートマス会議でジョン・マッカーシーにより命名された。
現在では、記号処理を用いた知能の記述を主体とする情報処理や研究でのアプ
ローチという意味あいでも使われている。
家庭用電気機械器具の制御システムやゲームソフトの思考ルーチンもこう呼ば
れることもある。
プログラミング言語 LISP による「ELIZA」というカウンセラーを模倣したプログラム(人工無脳)がしばしば引き合いに出されるが、計算機に人間の専門家
の役割をさせようという「エキスパートシステム」と呼ばれる研究・情報処理
システムの実現は、人間が暗黙に持つ常識の記述が問題となり、実用への利用
が困難視されている。
人工的な知能の実現へのアプローチとしては、「ファジィ理論」や「ニューラ
ルネットワーク」などのようなアプローチも知られているが、従来の人工知能
であるGOFAI (Good Old Fashioned AI) との差は記述の記号的明示性にある。
その後「サポートベクターマシン」が注目を集めた。
また、自らの経験を元に学習を行う強化学習という手法もある。
「この宇宙において、知性とは最も強力な形質である(レイ・カーツワイル)
」という言葉通り、知性を機械的に表現し実装するということは極めて重要な
作業である。
画像処理におけるディープラーニングの有用性が競技会で世界的に認知された2012年頃から急速に研究が活発となり、第三次人工知能ブームが到来。
2016年から2017年にかけて、ディープラーニングを導入したAIが完全情報ゲー
ムである囲碁などのトップ棋士、さらに不完全情報ゲームであるポーカーの世
界トップクラスのプレイヤーも破り、麻雀では「Microsoft Suphx (Super Phoenix)」がAIとして初めて十段に到達するなど最先端技術として注目されている
。
$
上記のファイル内から特定の文字列を検索してみます。
$ grep '人工' search_file
プログラミング言語 LISP による「ELIZA」というカウンセラーを模倣したプログラム(人工無脳)がしばしば引き合いに出されるが、計算機に人間の専門家 の役割をさせようという「エキスパートシステム」と呼ばれる研究・情報処理 システムの実現は、人間が暗黙に持つ常識の記述が問題となり、実用への利用 が困難視されている。
人工的な知能の実現へのアプローチとしては、「ファジィ理論」や「ニューラ ルネットワーク」などのようなアプローチも知られているが、従来の人工知能 であるGOFAI (Good Old Fashioned AI) との差は記述の記号的明示性にある。
画像処理におけるディープラーニングの有用性が競技会で世界的に認知された2012年頃から急速に研究が活発となり、第三次人工知能ブームが到来。
$
検索結果は見つかった文字列の行全体が表示されることがわかります。
$ grep '第三次人工知能' search_file
画像処理におけるディープラーニングの有用性が競技会で世界的に認知された2012年頃から急速に研究が活発となり、第三次人工知能ブームが到来。
$
パイプ(|)を使用することで、柔軟な検索をすることができます。
$ ls
test.html test.js test.py test.txt
$
$ ls | grep '.py'
test.py
$
$ ls | grep 'test'
test.html
test.js
test.py
test.txt
$
パイプ(|)で区切ることによって、左側の表示結果を元に検索をかけることができます。
「which:ウィッチ」コマンドでは、コマンドファイルの在り処を検索します。
$ which ls
/bin/ls
$
$ which python3
/usr/bin/python3
$
「ps(processes snapshot):ピーエス」コマンドは、現在実行中のプロセスを表示します。
以下のコマンドのオプションは使用頻度が高いと思われるコマンドです。
$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 8940 328 ? Ssl 05:29 0:00 /init
root 8 0.0 0.0 8940 224 tty1 Ss 05:29 0:00 /init
username 9 0.0 0.0 16940 3480 tty1 S 05:29 0:00 -bash
username 28 0.0 0.4 240456 20348 tty1 Sl 05:30 0:08 /mnt/c/.../bin/python3 /mnt/c/Users/warik/Document
username 33 0.1 2.4 882308 98760 ? Ssl 05:31 0:20 /mnt/c/.../bin/python3 -m ipykernel_launcher -f /h
root 55 0.0 0.0 8940 156 tty2 Ss 06:44 0:00 /init
username 56 0.0 0.0 16940 3236 tty2 S 06:44 0:01 -bash
username 280 0.0 0.0 17656 2024 tty2 R 10:59 0:00 ps -aux
$
「top:ティーオーピー」コマンドは、実行中のプロセスをリアルタイムで表示します。
$ top
上記を実行すると、一覧画面で表示されます。
※「Ctrl+C」または「q」で一覧画面を抜けることができます。
top - 11:11:31 up 5:42, 0 users, load average: 0.52, 0.58, 0.59
Tasks: 8 total, 1 running, 7 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.7 us, 5.8 sy, 0.0 ni, 88.0 id, 0.0 wa, 3.5 hi, 0.0 si, 0.0 st
KiB Mem : 4092036 total, 266956 free, 3595728 used, 229352 buff/cache
KiB Swap: 12582912 total, 8629596 free, 3953316 used. 362576 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8940 328 284 S 0.0 0.0 0:00.31 init
8 root 20 0 8940 224 180 S 0.0 0.0 0:00.00 init
9 username 20 0 16940 3480 3364 S 0.0 0.1 0:00.13 bash
28 username 20 0 240456 20348 7624 S 0.0 0.5 0:08.01 jupyter-note+
33 username 20 0 882308 98760 32552 S 0.0 2.4 0:20.07 python3
55 root 20 0 8940 156 112 S 0.0 0.0 0:00.00 init
56 username 20 0 16940 3236 3108 S 0.0 0.1 0:01.49 bash
288 username 20 0 17632 2032 1488 R 0.0 0.0 0:00.03 top
「free:フリー」コマンドでメモリ・スワップの使用状況を表示する
$ free
total used free shared buff/cache available
Mem: 4092036 3593572 269112 17720 229352 364732
Swap: 12582912 3952740 8630172
$
人間が理解しやすい単位に表示させるには「-h」オプションを使います。
$ free -h
total used free shared buff/cache available
Mem: 3.9G 3.4G 257M 17M 223M 350M
Swap: 12G 3.8G 8.2G
$
「df(disk filesystem):ディフ・ディーエフ」コマンドは、現在使用されているディスクの空き容量を表示します。
パーティションごとに表示されるので、どの区域が容量をおおく使用しているかが分かる。
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 1012692 0 1012692 0% /dev
tmpfs 1023448 0 1023448 0% /dev/shm
tmpfs 1023448 107024 916424 11% /run
tmpfs 1023448 0 1023448 0% /sys/fs/cgroup
/dev/vda4 47708864 8135420 39573444 18% /
/dev/vda2 508580 236768 271812 47% /boot
tmpfs 204692 0 204692 0% /run/user/1000
$
人間が理解しやすい単位に表示させるには「-h」オプションを使います。
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 989M 0 989M 0% /dev
tmpfs 1000M 0 1000M 0% /dev/shm
tmpfs 1000M 105M 895M 11% /run
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/vda4 46G 7.8G 38G 18% /
/dev/vda2 497M 232M 266M 47% /boot
tmpfs 200M 0 200M 0% /run/user/1000
$
「du(disk usage):ディーユー」コマンドはディスクストレージの使用量を表示します。
$ ls
dir_1 search_file test.html test.js test.py test.txt
$
$ du
4 ./dir_1
8 .
$
何も引数などを与えないと、カレントディレクトリ内にあるディレクトリやファイル群のディスク使用量を表示します。
指定することによって個々のファイルがどれほどのディスクストレージを使用しているかが分かります。
$ du -h search_file test.html test.js test.py test.txt
4.0K search_file
0 test.html
0 test.js
0 test.py
0 test.txt
$
「w:ダブリュー」コマンドで現在ログインしているユーザーが、その端末で実行しているプロセスの情報を表示します。
$ w
13:51:49 up 1022 days, 14:50, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
username pts/1 servername 13:46 5.00s 0.04s 0.00s w
$
「who:フー」コマンドでは、自身のユーザー情報を表示します。
$ who
username pts/1 2022-03-14 13:46 (servername)
$
「lastlog:ラスログ」コマンドでは、各ユーザーの最終ログイン情報を表示することができます。
$ lastlog
ユーザ名 ポート 場所 最近のログイン
root pts/0 月 2月 28 08:22:55 +0900 2022
bin **一度もログインしていません**
daemon **一度もログインしていません**
adm **一度もログインしていません**
lp **一度もログインしていません**
sync **一度もログインしていません**
shutdown **一度もログインしていません**
halt **一度もログインしていません**
mail **一度もログインしていません**
operator **一度もログインしていません**
games **一度もログインしていません**
ftp **一度もログインしていません**
nobody **一度もログインしていません**
systemd-network **一度もログインしていません**
dbus **一度もログインしていません**
polkitd **一度もログインしていません**
libstoragemgmt **一度もログインしていません**
abrt **一度もログインしていません**
rpc **一度もログインしていません**
postfix **一度もログインしていません**
tss **一度もログインしていません**
sshd **一度もログインしていません**
ntp **一度もログインしていません**
chrony **一度もログインしていません**
tcpdump **一度もログインしていません**
username pts/1 servername 月 3月 14 13:46:02 +0900 2022
$
「|:パイプ」を組み合わせることによって、コマンドによる表示結果を別のコマンドで処理することができます。
※パイプで区切られた左側の結果を元に右側へ処理が実行されます。
$ ls
search_file test.html test.js test.py test.txt
$
$ ls | grep 'test'
test.html
test.js
test.py
test.txt
$
$ ls | grep 'test' | grep 'py'
test.py
$
「>・>>:リダイレクト」では、コマンドによる実行結果をファイルに書き込む事ができます。「>」では書き込みで、「>>」では追記となります。
$ echo 'Hello World' > redirect.txt
$
$ ls
redirect.txt
$
$ cat redirect.txt
Hello World
$
$ echo 'Hello Linux' >> redirect.txt
$
$ cat redirect.txt
Hello World
Hello Linux
$
「&&・;:アンド・セミコロン」では、コマンドを連結させることができます。
$ ls
redirect.txt
$ cat redirect.txt && cat redirect.txt
Hello World
Hello Linux
Hello World
Hello Linux
$
$ cat redirect.txt ; cat redirect.txt
Hello World
Hello Linux
Hello World
Hello Linux
$
「*:ワイルドカード」では、引数に指定した文字列と組み合わせることで検索対象の文字列の照合範囲を広げることができます。「find」や「grep」コマンドいった検索する際に使用したりします。
$ ls
file_1.txt file_3.py test_1.txt test_3.py
file_2.html file_4.js test_2.html test_4.js
$
$ find *.html
file_2.html
test_2.html
$
$ ls | grep 'file_*'
file_1.txt
file_2.html
file_3.py
file_4.js
$
以上となります。
他にも多くのコマンドが存在しますが、適宜追加していきます。
ありがとうございました。