はじめに
どうも、yukiです。
この記事では、Linuxの基本的なコマンドについてまとめてみました。
1. cd
コマンド
$ cd [オプション] ディレクトリ
2. pwd
コマンド
$ pwd # 例えば /home/user/Documents と表示される
3. ls
コマンド
$ ls [オプション] ディレクトリ
オプション
-l
: 詳細情報(パーミッション、所有者、サイズなど)を表示
-a
: 隠しファイルも含めてすべてのファイルを表示
-h
: 人間が読みやすい形式で表示
使用例
$ ls -la /home/user/Documents
total 19
drwxr-xr-x 3 user user 4096 Aug 19 12:00 .
drwxr-xr-x 15 user user 4096 Aug 19 10:00 ..
-rw-r--r-- 1 user user 50 Aug 19 10:30 .hiddenfile
-l
オプションで表示する詳細情報の読み方については、後述します。
4. mkdir
コマンド
$ mkdir [オプション] ディレクトリ名
$ mkdir new_folder1
$ mkdir -p /home/user/Documents/new_folder2
# 以下は`-p`を指定していないのでエラー
$ mkdir /home/user/Documents/new_folder_error
5. rmdir
コマンド
$ rmdir ディレクトリ名
$ rmdir old_folder
# using_folderディレクトリが空でない場合、以下はエラー
$ rmdir using_folder
6. cat
コマンド
$ cat [オプション] ファイル名
# file1.txtとfile2.txtを結合してcombined.txtに出力
# 既に出力先のファイルがある場合、上書きされるので注意
$ cat file1.txt file2.txt > combined.txt
リダイレクト演算子について
>
: 標準出力を指定したファイルに上書きします。
>>
: 標準出力を指定したファイルに追記します。
2>
: 標準エラー出力(エラーメッセージなど)を指定したファイルに上書きします。
2>>
: 標準エラー出力を指定したファイルに追記します。
&>
: 標準出力と標準エラー出力を上書きして同じファイルに書き込みます。
&>>
: 標準出力と標準エラー出力を追記して同じファイルに書き込みます。
7. less
コマンド
$ less ファイル名
8. tail
コマンド
$ tail [オプション] ファイル名
オプション
-n
数: 最後の数行を表示(デフォルトは10行)
使用例
$ tail -n 30 file.txt # 最後の30行を表示
9. touch
コマンド
$ touch ファイル名
10. rm
コマンド
$ rm [オプション] ファイル名
オプション
-r
: ディレクトリとその中身を再起的に削除
-f
: メッセージを表示せず強制的に削除
-i
: 削除前に確認メッセージを表示
使用例
# 警告メッセージなしにディレクトリを強制削除。非常に危険なコマンド!!
$ rm -rf directory/
rm
コマンドで削除したファイルはWindowsやMacのようにゴミ箱から元に戻せないので注意しましょう。
11. mv
コマンド
$ mv [オプション] ソース 目標
# ソースに存在しないファイル/ディレクトリ名を指定した場合、目標の名前に変更
$ mv oldname.txt newname.txt
# ソースに存在するファイル/ディレクトリ名を指定した場合、目標へ移動
$ mv file.txt /home/user/Documents/
12. cp
コマンド
$ cp [オプション] ソース 目標
# file.txtを目標へコピー
$ cp file.txt /home/user/Documents/
# directory/ を目標へコピー
$ cp -r directory/ /home/user/backup/
13. ln
コマンド
$ ln [オプション] ソース リンク名
使用例
$ ln -s /home/user/file.txt /home/user/link.txt
リンクの種類
- ハードリンク
- 一つのファイルの実体に複数の名前をつけます。
- 元のファイルを削除しても消えません。
- ファイルを削除したい場合、全てのハードリンクを削除する必要があります。
- シンボリックリンク
- リンク先のパス名が書かれたファイルです。
- リンク先がファイルの実体です。
- このリンクを残したまま実体のファイルを削除/移動すると、(シンボリックリンクの)ファイルを参照できなくなります。
14. find
コマンド
$ find 検索パス [オプション] 検索ディレクトリ/ファイル名
オプション
-name
: 名前に一致するファイルを検索
-type d
: ディレクトリのみを検索
-type f
: ファイルのみを検索
使用例
# user/の拡張子が.txtのものを表示
$ find /home/user -name "*.txt"
# log/の拡張子が.logのファイルを表示
$ find /var/log -type f -name "*.log"
15. chmod
コマンド
$ chmod [オプション] パーミッション ファイル名
# 所有者に読み書き実行、その他に読み取り権限を付与
# 755 = それぞれのパーミッションを8進数表記で足して指定
$ chmod 755 script.sh
# `-rwxr--r-- 1`以降の2単語で確認できます。順にオーナー、グループです。
$ ls -l /home/user/Documents
-rwxr--r-- 1 owner group 4096 Aug 19 12:00 .
-rwxr--r--
は、パーミッションフィールドです。最初の一文字はファイルの種類を意味します。
二文字目以降は、所有者、グループ、その他ユーザーのパーミッションを表しています。
フィールド |
所属 |
説明 |
rwx |
所有者(オーナー) |
読み取り (read)、書き込み (write)、実行権あり (execute) |
r-- |
グループ |
読み取り (read) のみ |
r-- |
その他のユーザー |
読み取り (read) のみ |
例
読み方の例として、-rwxr--r--
のパーミッションフィールドの意味を紐解いてみます。
フィールド |
説明 |
- |
通常のファイル |
rwx |
所有者(オーナー)は、読み取り、書き込み、および実行が可能 |
r-- |
グループは、読み取りのみ可能 |
r-- |
その他のユーザーも、読み取りのみ可能 |
16. chown
コマンド
$ chown [オプション] 新しい所有者/グループ ディレクトリ/ファイル名
$ chown user:group file.txt
17. ps
コマンド
$ ps [オプション]
オプション
aux
: すべてのユーザーのプロセスを表示し、詳細な情報を表示
使用例
# `-`はいらない
$ ps aux
18. kill
コマンド
$ kill [オプション] プロセスID
オプション
-9
: 強制終了 (SIGKILL) ← 非推奨
-15
: 終了 (デフォルト)
おわりに
Linuxでは--help
、man
コマンドで正確なコマンド情報を得ることができるので、まずはこれらのコマンドを試してみましょう!
もし誤記、間違い等ありましたらご指摘よろしくお願いいたしますm(__)m