【AWSのCloudShellを起動】
・グロブ
→特殊記号を使用して、ファイル名を指定すること
以下は、「aかbで始まり、その後は任意の文字列」(アスタリスク)で指定
[cloudshell-user@ip-10-130-60-84 ~]$ ls -l [ab]*
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 a1
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 b1
[cloudshell-user@ip-10-130-60-84 ~]$
※ a~cを指定する場合、[a-c](ハイフン)とすることで指定できる
※ [^ab](キャレット)とすることでab以外を指定できる
※ t?.shを指定した場合、?は任意の一文字として指定される
※ {b*,c*,*est*}を指定した場合、波括弧&カンマで複数条件で指定できる
・grepコマンド
→ファイルまたは入力ストリームから、あるパターンに一致する行を表示する
以下は、/etc/passwdディレクトリ内のrootに一致する行を表示している
[cloudshell-user@ip-10-130-60-84 ~]$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[cloudshell-user@ip-10-130-60-84 ~]$
・iオプション
→大文字・小文字を区別しない
・vオプション
→一致しない行を表示する
・正規表現
・.(ドット)は任意の一文字
・*(アスタリスク)は直前の繰り返し
・lessコマンド
→非常に大きなファイルを表示する際に使用するコマンド
cloudshell-user@ip-10-130-60-84 ~]$ less /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
/etc/passwd (END) ←Qキーで終了できる(プロンプトに戻る)
※ スペースキー(表示を進める)、B(1画面分戻る)、F(1画面分進む)
→moreの拡張版がlessコマンド
→lessでファイル表示中に検索ができる→?を入力した後に指定する
※ N(ヒットした箇所へ移動)
・headコマンド
→ファイルの先頭部分を表示するのに便利なコマンド
以下は、/etc/passwdの中身を20行表示するように指定している
[cloudshell-user@ip-10-130-60-84 ~]$ head -20 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/usr/sbin/nologin
systemd-oom:x:998:998:systemd Userspace OOM Killer:/:/usr/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/usr/sbin/nologin
cloudshell-user:x:1000:996::/home/cloudshell-user:/bin/bash
[cloudshell-user@ip-10-130-60-84 ~]$
・tailコマンド
→末尾を表示(最新のログ等を表示するのに便利)
・権限について(パーミッション)
→どの種類のオーナーがこのファイルに対して何ができるか
例)-rwxr-xr-x 1 root root
「-」ファイルの種類
「rwxr-xr-x」パーミッションの設定状態
※ 所有者 | 同グループ | その他
r ... Read 読み取り権限
w ... Write 書き込み権限
x ... Excute 実行権限
- ... 権限なし
「1」ファイルがリンクされている数
「root root」所有者がrootユーザー、所有グループがrootユーザー
※ -rwxrwxrwx(フル権限)-777(2進数で表記されることも)r4,w2,x1
・chmodコマンド
→権限変更する際に使用するコマンド
・スーパーユーザ(ルートユーザ)への切り替え方法
以下は、セキュリティの高いファイルをcatコマンドで表示しようとした結果、
現在のアカウント(cloudshell-user)では開く権限がないと表示された
[cloudshell-user@ip-10-130-60-84 ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[cloudshell-user@ip-10-130-60-84 ~]$
→sudoコマンドでスーパーユーザとしてコマンドを実行するように指定し、開けた
[cloudshell-user@ip-10-130-60-84 ~]$ sudo cat /etc/shadow
root:*LOCK*:14600::::::
bin:*:19387:0:99999:7:::
daemon:*:19387:0:99999:7:::
adm:*:19387:0:99999:7:::
lp:*:19387:0:99999:7:::
sync:*:19387:0:99999:7:::
shutdown:*:19387:0:99999:7:::
halt:*:19387:0:99999:7:::
mail:*:19387:0:99999:7:::
operator:*:19387:0:99999:7:::
games:*:19387:0:99999:7:::
ftp:*:19387:0:99999:7:::
nobody:*:19387:0:99999:7:::
dbus:!!:19859::::::
systemd-network:!*:19859::::::
systemd-oom:!*:19859::::::
systemd-resolve:!*:19859::::::
cloudshell-user:!!:19859:0:99999:7:::
[cloudshell-user@ip-10-130-60-84 ~]$
→ sudo su - を実行すると、ルートユーザーに切り替わる
[cloudshell-user@ip-10-130-60-84 ~]$ sudo su -
[root@ip-10-130-60-84 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@ip-10-130-60-84 ~]# exit
logout
[cloudshell-user@ip-10-130-60-84 ~]$
※ 「su 」(スイッチユーザー)、「- 」(設定を引き継ぐ)
「exit」一つ前のユーザーに戻る
→sudoersファイルに指定されていない場合、passwordを入力するよう求められる
ctrl + c で入力待ち状態を解除できる
→ネットワークを介してコンピューターに安全に接続をして操作するためのツール
(パスワード認証が必要)
・MacでEC2へ接続する方法
ssh -i linux-server-key.pem ec2-user@[パブリックIPアドレスを入力]
確認メッセージが表示されるため、yesを入力
権限が緩いと警告が表示されるため、chmodで権限変更
chmod 400 linux-server-key.pem(所有者のみ読み取れる)
ssh -i linux-server-key.pem ec2-user@[パブリックIPアドレスを入力]
→EC2インスタンスへログインすることができる
・Windowsは「Teraterm」というソフトウェアを使ってログインする
Teratermを起動
ホストにパブリックIPアドレスを入力し、OK
サーバー名「ec2-user」を入力し、秘密鍵を選択し、設定した鍵を選択
サーバーに接続完了
※ ログの取得、ログの取得を中断、一時停止することができる
※ Linuxに対するファイルの送受信も可能
→鍵ファイルをドラッグアンドドロップすると送信先を指定できる(/tmpを指定)
[ec2-user@ip-172-31-32-225 ~]$ cd /tmp
[ec2-user@ip-172-31-32-225 tmp]$ ls
AWS_Key.pem
systemd-private-a944e37c7d144b73bb287233b3cda674-chronyd.service-AIsClk
systemd-private-a944e37c7d144b73bb287233b3cda674-dbus-broker.service-YHAhsw
systemd-private-a944e37c7d144b73bb287233b3cda674-policy-routes@enX0.service-aYlCYf
systemd-private-a944e37c7d144b73bb287233b3cda674-systemd-logind.service-1twLeZ
systemd-private-a944e37c7d144b73bb287233b3cda674-systemd-resolved.service-OPEiuk
[ec2-user@ip-172-31-32-225 tmp]$
→ダウンロードもできる(/tmp/AWS_Key.pemと指定するとDLできる)
※ ls -l → 「ll」ショートカットコマンドがある
→ls -aコマンドで隠しファイルを表示できる
→ls -laコマンドで隠しファイルを詳細表示できる
・リダイレクションについて
→リダイレクション「>」は、llコマンドの実行結果をbファイルに書き込んでいる
※ 上書きされる
[cloudshell-user@ip-10-134-27-201 ~]$ ll > b
[cloudshell-user@ip-10-134-27-201 ~]$ ll
total 4
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 13:02 a
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 a1
-rw-r--r--. 1 cloudshell-user cloudshell-user 464 Jun 23 13:02 b
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 b1
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 c1
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 t2.sh
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 test1.txt
[cloudshell-user@ip-10-134-27-201 ~]$ cat b
total 0
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 13:02 a
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 a1
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 13:02 b
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 b1
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 c1
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 t2.sh
-rw-r--r--. 1 cloudshell-user cloudshell-user 0 Jun 23 11:01 test1.txt
[cloudshell-user@ip-10-134-27-201 ~]$
→「>>」は追記の動きをするコマンド
※ 出力内容を指定したファイルの最後に追記する
・パイプについて
→一つのコマンドの出力を別のコマンドの入力として渡す
例)ls | grep b
lsで表示された内容をgrepに渡して、bが含まれる行を抽出する動きとなる
[cloudshell-user@ip-10-134-27-201 ~]$ ls | grep b
b
b1
[cloudshell-user@ip-10-134-27-201 ~]$
→ps auxコマンドは、現在Linux機で動いているプロセス(実行中のプログラム)を
一覧表示できる
[cloudshell-user@ip-10-134-27-201 ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
cloudsh+ 1 0.0 1.0 619896 43092 ? Ssl 13:00 0:00 node /var/lib/amazon/cloudshell/on-container-launch.js
cloudsh+ 21 0.0 0.0 7168 3296 ? Ss 13:00 0:00 /bin/sh -c sudo dockerd | sudo tee /var/log/docker-daemon.log
root 23 0.0 0.2 17620 7876 ? S 13:00 0:00 sudo dockerd
root 24 0.0 0.1 17620 7728 ? S 13:00 0:00 sudo tee /var/log/docker-daemon.log
root 29 0.0 0.0 7864 1280 ? S 13:00 0:00 /usr/bin/coreutils --coreutils-prog-shebang=tee /usr/bin/tee /var/log/
root 31 0.0 1.9 1391224 77896 ? Sl 13:00 0:00 dockerd
root 50 0.4 1.1 1215072 44684 ? Ssl 13:00 0:07 containerd --config /var/run/docker/containerd/containerd.toml
cloudsh+ 161 0.0 0.0 4284 2904 pts/0 Ss+ 13:00 0:00 tmux -l -f /var/lib/amazon/cloudshell/tmux.conf new-session -A -D -s 7
cloudsh+ 168 0.0 0.0 4428 2960 ? Rs 13:00 0:00 tmux -l -f /var/lib/amazon/cloudshell/tmux.conf new-session -A -D -s 7
cloudsh+ 169 0.0 0.1 7564 4396 pts/1 Ss 13:00 0:00 -bash
cloudsh+ 197 0.0 0.0 7648 2936 pts/1 R+ 13:25 0:00 ps aux
[cloudshell-user@ip-10-134-27-201 ~]$
・wcコマンド(Word Count)
→何行あるか表示するコマンド