0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux操作 基本

Last updated at Posted at 2025-01-18

Linuxコマンドをいちいち調べるのが面倒なため自分用にメモ

ディレクトリ操作

カレントディレクトリの確認

cmd
$ pwd
/home/ubuntu

ディレクトリの確認

- オプション無し

cmd
$ ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

- オプション有り(詳細表示)

cmd
$ ls -l
drwxr-xr-x 2 root root 4096 Feb  2 10:29 dir1
drwxr-xr-x 2 root root 4096 Feb  2 10:34 dir2
-rw-r--r-- 1 root root    0 Feb  2 10:29 file1
ls表示内容見方
左から 説明
d ディレクトリ(ファイルの場合は「-」、シンボリックリンクの場合は「l」)
rwxr アクセス権
2 ディレクトリはファイル数、ファイルはハードリンク数
root 所有者
root 所有グループ
4096 サイズ
Feb 2 10:29 最終更新日時
dir1 ファイル名、フォルダ名

- オプション有り(隠しファイル表示)

cmd
$ ls -a
.  ..  ubuntu

- オプション有り(隠しファイル&詳細表示)

cmd
$ ls -al
drwxr-xr-x 3 root   root   4096 Dec 13 02:14 .
drwxr-xr-x 1 root   root   4096 Jan 12 11:18 ..
drwxr-x--- 2 ubuntu ubuntu 4096 Dec 13 02:14 ubuntu

作成

- 指定したディレクトリの作成

cmd
$ mkdir dirName
+ dirName

注意
複数階層のディレクトリは作成できない

- 複数階層ディレクトリの作成

cmd
$ mkdir -p dirName/dirName2/dirName3
+ dirName
+ dirName/dirName2
+ dirName/dirName2/dirName3

削除

- 空のディレクトリ削除

cmd
$ rmdir dirName
- dirName

注意
ディレクトリの中が空で無い場合は削除できない

コピー

コピーコマンドに「-r」オプションを付けてる

cmd
$ cp -r fromDirName copyDirName
+ copyDirName

ディレクトリ移動

指定して移動

- 絶対パス

cmd
$ cd /home/ubuntu

- 相対パス

cmd
$ cd ./home/ubuntu
$ cd home/ubuntu

ホームディレクトリに移動

複数のコマンドで移動が可能
一つ目と二つ目が一般的?

cmd
$ cd
$ cd ~
$ cd /home/ユーザー名

一つ前のカレントディレクトリに移動

cmd
$ cd -

ファイル操作

作成

cmd
$ touch newFile
+ newFile

補足
ファイルが存在する場合はタイムスタンプが更新される

作成(ブレース展開)

- 複数指定して作成

「,」で区切って指定を行う

cmd
$ touch newFile{1,3}
+ newFile1
+ newFile3

- 範囲指定して作成

「..」で範囲して行う

cmd
$ touch newFile{1..4}
+ newFile1
+ newFile2
+ newFile3
+ newFile4

削除

cmd
$ rm delFile
- delFile

注意
ハードリンクが複数ある場合はハードリンクのみ削除される

削除(パス名展開)

cmd
$ ls
file1 file2 file3 file4

$ rm file*
- file1
- file2
- file3
- file4

コピー

cmd
$ cp コピー対象 コピー後ファイル名(または格納ディレクトリ)
+ copyFileName

$ cp copyFrom.txt copyTo.txt

ファイル名変更

cmd
$ mv 対象ファイル名 変更後ファイル名
対象ファイル名 → 変更後ファイル名

格納ディレクトリ移動

cmd
$ mv 対象ファイル 移動先ディレクトリ
- 対象ファイル
+ 移動先ディレクトリ/対象ファイル

検索

findコマンド

指定したでディレクトリ配下から、検索条件に当てはまる検索結果が表示される

- オプション

cmd
$ find ディレクトリ 検索条件

$ find . -name "*.txt"
./file1.txt
./file2.txt
./file3.txt

$ find . -type d
.
./ubuntu
op名 説明
-name 検索名をワイルドカードなどで指定
-type ファイル種別の指定

- typeコマンドの種別

cmd
$ find . -type d -name "user*"
$ find . -type f
$ find . -type l
入力値 種別
d ディレクトリ
f ファイル
l シンボリックリンク

grepコマンド

正規表現を使った検索

cmd
$ grep ディレクトリ 正規表現

ハイフン(-)の検索
grep -でハイフンを含む文字列の検索はできない
ハイフンの検索を行う場合は、grep - -で実行する

パーミッションの変更

数値

全ての権限をまとめて変更が可能
設定したい権限パターンを数値で指定する

権限パターンは7種類存在しており、
それぞれの権限パターンの数値は以下となる

読み取り(r) 書き込み(w) 実行(x) 権限パターン(cmd)
- - 4
- - 2
- - 1
- 6
- 3
- 5
7
cmd
$ chmod 764 change.sh

シンボル

一部の権限の変更が可能
「誰に」、「設定する」、「権限」を指定する

シンボル: 誰に

誰に cmd
オーナー u
グループ g
その他のユーザー o
全てのユーザー a

シンボル: 設定するか

設定するか cmd
権限追加 +
権限削除 -
指定した権限に設定する =

シンボル: 権限

権限 cmd
読み取り r
書き込み w
実行 x

例えば、その他のユーザーに実行権限を追加する場合

cmd
$ chmod o+x change.sh

特定文字(意味を持つ文字列)を文字列として扱う

linuxコマンドで意味を持つ「\」「?」「!」..などを文字列として扱いたい場合は以下の方法を使う

バックスラッシュ

全ての特殊文字を文字列として扱うことができる

cmd
$ echo \~
~

シングルコーテーション

バックスラッシュと同様に全ての特殊文字を文字列として扱うことができる

cmd
$ echo '~'
~

ダブルコーテーション

一部の特殊文字のみ文字列として扱うことができr
「!」「$」「`」は文字列として扱われない

cmd
$ echo !2
echo ls -l
ls -l
$ echo "!2"
echo ls -l
ls -l
$ echo "\2"
\2

リンク

ハードリンク

ファイルに別名を追加で結びつける
ディレクトリに対してはハードリンクは使用できない

下記のコマンドで作成した「system2.conf」は「system.conf」と同じファイルを参照することになる

cmd
$ ln sytem.conf system2.conf
$ ls -l
-rw-r--r-- 2 root root    0 Feb  2 10:29 system.conf
-rw-r--r-- 2 root root    0 Feb  2 10:29 system2.conf

「sytem2.conf」を削除した場合どうなるか??

cmd
$ rm sytem2.conf
$ ls -l
-rw-r--r-- 1 root root    0 Feb  2 10:29 system.conf

複数ハードリンクが存在する
ファイルのハードリンクを削除しても実ファイルは削除されない。

この場合、「system2.conf」を削除しても「system.conf」のハードリンクがまだ残っている。
そのため、実ファイルはまだ削除できていない

ただ、「system2.conf」のハードリンクが削除されたことで、「system.conf」のハードリンク数が「2」から「1」に減っている。

そしたら、「system.conf」のハードリンクを削除した場合どうなるか??

cmd
$ rm system.conf
$ ls -l
void

「system.conf」に紐づいていた実ファイルは、紐づくハードリンクを完全に失ったため実ファイルも削除された

シンボリックリンク

名前空間に名前空間を結びつけるのがシンボリックリンク
ハードリンクと違いディレクトリにも使用できる
紐づき先が存在しなくても存在できるなど、windowsのショートカットに近い?

ハードリンク作成コマンドに「-s」オプションを付与することでシンボリックリンクの作成ができる

cmd
$ ln -s sytem.conf system.conf.link
$ ls -l
-rw-r--r-- 1 root root    0 Feb  2 12:33 system.conf
lrwxrwxrwx 1 root root   11 Feb  2 12:33 system.conf.link -> system.conf

注意
リンク先ファイルやディレクトリは絶対パスでの指定を推奨する。相対パスで指定してしまうとシンボリックリンクが格納されているディレクトリ起点のパスとなってしまうため、想定しないファイルやディレクトリに紐づいてしまう

リダイレクト

cmd 結果
< file 入力を指定したファイルに変更
> file 出力を指定したファイルに変更
2> file エラーをファイルに出力する
>> file 出力をファイルの末尾に追記
2>> file エラーをファイルの末尾に追記
>file 2>&1 出力とエラーをファイルの末尾に追記

/dev/nullの活用
デバックでエラーのみ確認したい場合、出力先に/dev/nullを指定することでエラーのみ確認することができる

プロセス管理

プロセス一覧

cmd
$ ps
  PID TTY          TIME CMD
    9 pts/1    00:00:00 bash
   43 pts/1    00:00:00 ps
列名 説明
PID プロセスID
TTY ターミナル識別
デーモンは「?」で表示される
TIME CPU使用時間
CMD コマンドファイル

- 全てのユーザー/デーモンを含める

cmd
$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.4   4944  4192 pts/0    Ss+  05:54   0:00 /bin/bash
root         9  0.0  0.4   4944  4404 pts/1    Ss   05:54   0:00 /bin/bash
root        51  0.0  0.3   5592  3388 pts/1    R+   06:29   0:00 ps aux

プロセス終了

cmd
$ kill プロセスID
  [1]+  Terminated              prosess001

プロセス強制終了

cmd
$ kill -9 プロセスID
  [1]+  Killed              prosess001

- killコマンドの全てのシグナル

cmd
$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

コマンドライン操作

カーソルの移動

操作 cmd 説明
後方に移動 ctrl + b 矢印キー(←)と同じ
前方に移動 ctrl + f 矢印キー(→)と同じ
行頭に移動 ctrl + a コマンドの一番左に移動
行末に移動 ctrl + e コマンドの一番右に移動

文字の削除

操作 cmd 説明
1単語の削除 ctrl + w 単語単位で削除

切り取り(カット)とペースト(ヤンク)

操作 cmd 説明
カーソルから行末を切り取り ctrl + k -
カーソルから行頭を切り取り ctrl + u -
ペースト ctrl + y -

コマンド履歴の確認

cmd
$ history
   1  cd hme
   2  cd /home
   3  l -l
   4  pwd
$ !2 ← 履歴からコマンドを実行
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?