Linuxの初心者向けによく使用するコマンドと使用例をまとめます。
ファイル・ディレクトリを管理するコマンド
pwd:カレントディレクトの表示
現在作業しているディレクトリ(カレントディレクトリ)を表示
$ pwd /home/ec2-user
ls:ファイル・ディレクトリ一覧の表示
現在作業中のディレクトリにあるファイル・ディレクトリを表示するには、ls を実行します。
一覧表示
下記の例では、text1.txt と text2.txt が一覧表示されています。
$ ls text1.txt text2.txt
現在作業中以外のディレクトリ内の一覧を取得したい場合は、取得したいディレクトリのパスを引数にします。下記は、/var/log 配下のファイル・ディレクトリ一覧を表示します。
$ ls /var/log/ amazon chrony dmesg lastlog secure yum.log ... btmp cron journal sa wtmp
隠しファイルを表示 :-a
隠しファイルは . ではじまります。
$ ls -a . .. .bash_history .bash_logout .bash_profile .bashrc .ssh text1.txt text2.txt
隠しファイルを表示(.と..を除く) :-A
親ディレクトリである . や .. を非表示する場合は、-A を使用します。
$ ls -A .bash_history .bash_logout .bash_profile .bashrc .ssh text1.txt text2.txt
詳細表示 :-l
詳細表示をする場合は、-l を使用します。
$ ls -l 合計 0 -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text1.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text2.txt
作成時刻を降順にして詳細表示 :-lt
更新日付の一番新しいファイルがトップに表示されます。実務でよく使用します。
$ ls -lt 合計 0 -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 05:35 text4.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 05:33 text3.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text2.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text1.txt
作成時刻を昇順にして詳細表示 :-ltr
$ ls -ltr 合計 0 -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text1.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text2.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 05:33 text3.txt -rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 05:35 text4.txt
ファイルタイプを表示 :-F
ディレクトリの場合は、/ が表示されます。
$ ls -F
dir1/ text1.txt text2.txt text3.txt text4.txt text5
touch:空ファイルを作成
空ファイルを作成します、引数にファイル名やタイムスタンプを指定することができます。
ファイル新規作成
file1.txtの空ファイルを新規作成します。
$ touch file1.txt
日付を指定 :-d
$ touch text5.txt -d 2010/10/10
$ ls -l
合計 0
-rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text1.txt
-rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 04:45 text2.txt
-rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 05:33 text3.txt
-rw-rw-r-- 1 ec2-user ec2-user 0 9月 4 05:35 text4.txt
-rw-rw-r-- 1 ec2-user ec2-user 0 10月 10 2010 text5.txt
mkdir:ディレクトリを作成
ディレクトリを作成します。 -p オプションによりパス途中のディレクトリも含め、複数作成することができます。
ディレクトリ新規作成
カレントディレクトリに新規ディレクトリ(dir1)を作成します。
$ mkdir dir1
$ ls -F
dir1/ text1.txt text2.txt text3.txt text4.txt text5
パス途中のディレクトリ含め複数作成 :-p
$ mkdir -p dir2/dir3/dir4 $ ls -F dir1/ dir2/ text1.txt text2.txt text3.txt text4.txt text5 $ ls dir2/ dir3 $ ls dir2/dir3/ dir4
cd:ディレクトリの位置を変更
作業するディレクトリを移動します。下記のようなファイル・ディレクトリ構成で、cdを使用例を確認します。
$ ls -F dir1/ dir2/ text1.txt text2.txt text3.txt text4.txt text5
dir1/にディレクトリを移動します。
$ cd dir1/ $ pwd /home/ec2-user/dir1
1階層上に移動 : ../
元に戻るため、1つ上のディレクトリに移動するには、cd ../ とします。
$ cd ../ $ pwd /home/ec2-user
2階層上に移動 : ../../
../ が1つ上の意味です。2つ上の場合は、../ を2回書きます。
$ pwd /home/ec2-user $ cd ../../ $ pwd /
ホームディレクトリへ移動 : ~
元のユーザのホームディレクトリへ移動するには、~ (チルダ)を使用します。
$ pwd / $ cd ~ $ pwd /home/ec2-user
ルートディレクトリから直接移動
ルートディレクトリからのパスを指定することで、直接移動したいディレクトリを指定することもできます。
$ pwd /home/ec2-user $ cd /var/log/ $ pwd /var/log
rm :ファイル削除
ファイルを削除する場合、rmコマンドを使用します。
ファイル削除
$ ls dir1 dir2 text1.txt text2.txt text3.txt text4.txt text5.txt $ rm text1.txt $ ls dir1 dir2 text2.txt text3.txt text4.txt text5.txt
複数ファイルを一括削除
削除したいファイルを複数指定します。
$ ls dir1 dir2 text2.txt text3.txt text4.txt text5.txt $ rm text2.txt text3.txt $ ls dir1 dir2 text4.txt text5.txt
ファイルを削除してよいか確認 : -i
上書きして良いか確認するには、-i オプションをつけます。 上書きする場合は、yesを入力します。(noを入力するとコマンドがキャンセルされます)
$ rm -i text4.txt rm: 通常の空ファイル `text4.txt' を削除しますか? yes $ ls dir1 dir2 text5.txt
ディレクトリを削除 : -r
指定したディレクトリにファイルやディレクトリが存在していても削除します。
$ ls dir1 dir2 text5.txt $ rm -r dir1 $ ls dir2 text5.txt
cp:ファイル・ディレクトリのコピー
ファイルやディレクトリを複製(コピー)する場合は、cpコマンドを使用します。引数として、コピー元とコピー先を順に指定します。
ファイルをコピー
text1.txt を text10.txt と言う名前でコピーします。
$ ls dir1 dir2 text1.txt text2.txt text3.txt text4.txt text5.txt $ cp text1.txt text10.txt $ ls dir1 dir2 text1.txt text10.txt text2.txt text3.txt text4.txt text5.txt
ディレクトリをコピー : -r
dir1 を dir3にコピーします。
$ ls -F dir1/ dir2/ text1.txt text10.txt text2.txt text3.txt text4.txt text5.txt $ cp -r dir1 dir3 $ ls -F dir1/ dir2/ dir3/ text1.txt text10.txt text2.txt text3.txt text4.txt text5.txt
上書き確認 : -i
text1.txtをtext2.txtに上書きする場合に上書き確認する。
$ ls dir1 dir2 dir3 text1.txt text10.txt text2.txt text3.txt text4.txt text5.txt $ cp -i text1.txt text2.txt cp: `text2.txt' を上書きしますか? yes $
mv:ファイルの移動、ファイル名変更
ファイルやディレクトリの移動やファイル名のリネームをする場合、mvコマンドを使用します。
ファイルの移動
text1.txt を dir1の配下に移動します。
$ ls dir1 dir2 dir3 text1.txt text10.txt text2.txt text3.txt text4.txt text5.txt $ ls dir1 $ $ mv text1.txt dir1 $ ls dir1 dir2 dir3 text10.txt text2.txt text3.txt text4.txt text5.txt $ ls dir1 text1.txt
ファイルのリネーム
text2.txt のファイル名をtext2_change.txt にリネームします。
$ ls dir1 dir2 dir3 text10.txt text2.txt text3.txt text4.txt text5.txt $ mv text2.txt text2_change.txt $ ls dir1 dir2 dir3 text10.txt text2_change.txt text3.txt text4.txt text5.txt
上書き確認 : -i
移動先のフォルダに同じファイルが存在するとき、このオプションをつけないと強制的に上書きされます。
下記のとおり、カレントディレクトリとdir1配下に同じファイル名(text1.txt)が保存されています。
$ touch text1.txt $ ls dir1 dir2 dir3 text1.txt text10.txt text2_change.txt text3.txt text4.txt text5.txt $ ls dir1 text1.txt
カレントディレクトリのtext1.txtをdir1配下に移動すると、強制的に上書きされます。
$ mv text1.txt dir1/ $
上書きして良いか確認するには、-i オプションをつけます。 上書きする場合は、yesを入力します。(noを入力するとコマンドがキャンセルされます)
$ mv -i text1.txt dir1/ mv: `dir1/text1.txt' を上書きしますか? yes $
less : ファイル内容をページ単位で表示
ファイル内容をページ単位で表示するには、lessを使用します。
下記例は、/var/log/messagesの内容をページ単位で出力します。
# less /var/log/messages
下記、画面の中で、使用するキーです。
- e : 1行 下に進む
- f : 1画面分 下に進む
- d : 半画面分 下に進む
- y : 1行上に戻る
- b : 1画面分上に戻る
- u : 半画面分上に戻る
- g : 先頭行に移動
- G : 末尾に移動
- 50G : 50行目まで移動
- q : 終了
- v : 表示中のファイルをviコマンドで編集する
- / : 検索する
ユーザ・グループを管理するコマンド
su -:ルートユーザへ変更
スーパユーザであるrootユーザに変更するには、su – を実行します。
[ec2-user@ip-10-0-1-81 ~]$ su -
パスワード: ルートユーザのパスワードを入力
最終ログイン: 2021/09/05 (日) 02:47:47 UTC日時 pts/1
[root@ip-10-0-1-81 ~]# pwd
/root
id:ユーザ情報の確認
自分がどのユーザでログインしているのかidコマンドで確認します。
# id uid=0(root) gid=0(root) groups=0(root)
ユーザ登録・削除
useradd:ユーザの追加
一般ユーザとして、user01を追加します。ユーザを追加すると、/etc/passwdと/etc/shadowにエントリーが追加され、かつ、ユーザのホームディレクトリが作成されます。
# useradd user01 # tail -1 /etc/passwd user01:x:1001:1001::/home/user01:/bin/bash # tail -1 /etc/shadow user01:!!:18875:0:99999:7::: # ls -F /home/ ec2-user/ user01/
passwd:パスワード設定
user01のログインパスワードを設定します。
# passwd user01 Changing password for user user01. New password:パスワードを入力 Retype new password:パスワードを再入力 passwd: all authentication tokens updated successfully.
パスワードが設定されると、etc/shadowの第2フィールドが ‘ !! ‘から暗号化されたパスワードへ変更されます。
# tail -1 /etc/shadow
user01:$6$HjriImNi$......kKTg1:18875:0:99999:7:::
userdel:ユーザ削除
user01を削除します。何もオプションをつけないと、/etc/passwdと/etc/shadowにエントリーのエントリーが削除されるだけです。-rオプションをつけることで、ホームディレクトリも削除されます。
# userdel -r user01 # ls -F /home/ ec2-user/
グループ追加・削除
groupadd:グループ追加
user_gr1という名前のグループを作成します。作成されると、/etc/groupと/etc/gshadowのエントリーが追加されます。
# groupadd user_gr1 # tail -1 /etc/group user_gr1:x:1002: # tail -1 /etc/gshadow user_gr1:!::
usermod:ユーザの所属グループの変更
ユーザuser01の所属グループをuser_gr1に変更します。現在、user01が所属しているグループはidコマンドで確認できます。
# id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01) # tail -1 /etc/group user_gr1:x:1002: # usermod -G user_gr1 user01 # id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(user_gr1) # tail -1 /etc/group user_gr1:x:1002:user01
usermod –G でグループ変更すると、単一の2次グループに置き換えられます。
# id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(user_gr1) # groupadd user_gr2 # usermod -G user_gr2 user01 # id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1003(user_gr2)
2次グループに複数グループ登録する場合は、usermod –aG を使用します。
# id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(user_gr1) # usermod -aG user_gr2 user01 # id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(user_gr1),1003(user_gr2)
groupdel:グループ削除
グループuser_gr2を削除します。
# id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(user_gr1),1003(user_gr2), # groupdel user_gr2 # id user01 uid=1001(user01) gid=1001(user01) groups=1001(user01),1002(user_gr1)
コメント