Linuxの基本操作

代表的なディレクトリへのショートカット

コマンド ディレクト
. カレントディレクト
.. ディレクト
~ ホームディレクトリ(デフォルト)
/ ルートディレクト

cd (change directory)

ディレクトリの移動

cd [opt]

例: ルートディレクトリに移動

cd /

pwd (print name of working directory)

カレントディレクトリの表示

pwd

ls (list)

カレントディレクトリの子の階層のファイルやディレクトリの一覧を表示

ls [opt]

例1. 拡張子がhtmlのファイルを表示する

ls *.html

例2. binディレクトリの中にある、zからはじまる4文字のファイルを表示する

ls /bin/z???

例3. ファイルの詳細情報も併せて表示

ls -l

例4. 隠しファイルも含めた全てのファイルを表示

ls -a

例5. ファイル種別も表示

ls -F

mkdir (make directory)

ディレクトリの作成

mkdir [opt] <ディレクトリ名>

例: test/2023/09/のディレクトリを作成する(-pをつけると深いディレクトリを一度に作成できる。)

mkdir -p test/2023/09

rmdir (remove directory)

rmdir <ディレクトリ名>

例:

rmdir test/2023/09

cat (concatenate)

ファイルの中身を表示する

cat [opt] <ファイル名>

例: -nで行番号を表示してetc/hostsの中を表示

cat -n etc/hosts

less (opposite of more)

ファイルの中身をスクロール表示する(長いファイルの中身を見るときにつかう)

less <ファイル名>

スクロール画面でのショートカット

コマンド 内容
スペース or f 1画面下にスクロール
b 1画面上にスクロール
j 1行下にスクロール
k 1行上にスクロール
q lessコマンドを終了
/文字列 下に向かって検索
? 上に向かって検索
n 次の検索結果に移動
N 前の検索結果に移動

tail

ファイルの末尾から指定された行数、バイト数などを表示する

tail [opt] <ファイル名>

例: -n出力する行数を指定して表示する

tail -n 2 file

例: -c 出力する文字数を指定して表示

tail -c 10 file

touch

空のファイルを作成する。同じ名前のファイル名があっても上書きしないところが、touchコマンドのいいところ。

touch <新規ファイル1> <新規ファイル名2>
touch README.md

rm (remove)

ファイルを削除する。ディレクトリを削除する場合中のファイルも削除してしまいたいことが多いが、そういう場合はrmコマンドを実行する。空のディレクトリしか削除したくない場合は、rmdirを使う。 rmを実行すると、ゴミ箱に入るのではなく本当に削除されるので、よく確認してから削除する。

rm [opt] <ファイル名>

例1.

rm README.md

例2: -rディレクトリの中のファイルやディレクトリもまとめて削除する場合。recursionのr。

rm -r dir

例3: 警告文を表示せずにファイルを削除する場合。ちょっと危険。警告文が多い場合に使う。

rm -f file

例4: ファイルの削除前に確認が入る

rm -i file

mv (move)

mv [opt] <移動元><移動先>

ファイル名を変更する場合

mv file file 1

ファイルを移動する場合

mv file1 dir/

上書きする前に確認したい場合 -iオプション。

mv -i file file1

cp (copy)

cp [opt] <コピー元><コピー先>

ファイルをコピー (コピー先がすでに存在していると上書きされてしまう)

cp file new file

ディレクトリをコピーする時は-r(-rがないとエラーになる)

cp -r file dir/
  • リンクとは: ファイルに別名をつけることをLinuxでは「リンクを貼る」という。Windowsでいうショートカットのようなもの。リンクには2種類ある
    1. ハードリンク:
      • 1つのファイルの実体に複数の名前をつける機能。元のファイルを削除しても消えない。すべてのハードリンクがなくなると削除される。オプションがないとハードリンクになる。
      • いくつか制限がある(異なるディスクを跨いで使えない、ディレクトリに対して使用できない、など。)
    2. シンボリックリンク
      • リンク先のパス名が書かれた特殊ファイル。リンク先がファイルの実体になる。シンボリックリンクを残したままでファイルの実体を削除したり、ファイルを移動してしまうとファイルを参照できなくなる。オプション -sをつけるとシンボリックリンクになる。
      • シンボリックリンクの方がよくつかう。 いつリンクを使うのか?
  • 長いパス名を省略したい時
  • 複数のバージョンを共存させて最新を区別したい時 file1にfile2というハードリンクを貼る。
ln file1 file2

file1にfile3というシンボリックリンクを作成する。

ln -s file1 file3

find

find <検索開始ディレクトリ><検索条件><アクション>

カレントディレクトリ以下の README.meというファイルを見つけて、パス名を表示する場合

find . -name README.md -print

ワイルドカードを使ってhtmlファイルを検索

find . -name '*.html' -print

大文字小文字を問わずに検索。

find . -iname readme.md

検索条件色々 - -type f 通常ファイルを検索 - -type lシンボリックリンクを検索 - -type dディレクトリを検索 - -a&検索

chmod(change moder)

所有者、グループ、その他のユーザーの権限を変更する

chmod [ugoa] [+-=] [rwx] <ファイル名>
記号 内容
u 所有者権限
g グループの権限
o その他のユーザーの権限
a 全ユーザーの権限
+ 権限を追加
- 権限を削除
= 記述した権限にする
記号 意味 数値
r read読み取り 4
w write書き込み 2
x execute実行 1
chmod rw-r--r-- /Users/suzuki/work/readme.md
chmod u+r file
オーナー グループ その他
rwx r-x r-x
421 41 41
7 5 5

8進数の数値で指定する場合次のようになる。通常指定は相対指定、数値指定は絶対指定。

chmod 755 file

chown (change owner)

rootユーザーとしてファイルやディレクトリの所有権を変更するコマンド

chown [opt] <ユーザー名orグループ名> <ファイルorディレクトリ>
ls -l user
# ファイルの所有者と所用グループを表示

su
# rootユーザーへ移行してパスワードを入力
# ↓

chown hoge user
# hoge(ユーザー)を所有者に変更

ps (process status)

実行中のプロセスを表示するコマンド

$ps [opt]

↓結果

PID TTY           TIME CMD
59511 ttys007    0:00.07 /bin/zsh -il

例: 詳細情報を表示 (optだけど -をつけない)

$ps aux

たくさんのプロセスが同時に大量に実行されていることがわかる。

kill

プロセスとジョブを終了する。

kill [opt] %<ジョブID>
kill [opt] <プロセスID>

例:

kill %1
kill 4965 

ctrl + c と killの違い - ctrl + c : foregroundで実行中のジョブを終了する - kill: 停止中 or backgroundのジョブを終了する

正確に言えばkillはシグナルを送信するコマンド。

kill -<シグナル名> <プロセスID>

デフォルトでは「TERM」という終了を指示するシグナルを送信している。以下の2つは同じ動作を意味している

kill 4965
kill -TERM 4965

たまに -SIGKILL(強制終了)のシグナルを使う。以下の2つは同じ動作を意味している。(最終手段であることに注意。)

kill -SIGKILL 4965
kill -9 4965