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/
ln (link)
- リンクとは: ファイルに別名をつけることをLinuxでは「リンクを貼る」という。Windowsでいうショートカットのようなもの。リンクには2種類ある
- 長いパス名を省略したい時
- 複数のバージョンを共存させて最新を区別したい時 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