目次
- 目次
- 概要
- SSH接続する時に使うchmodコマンド
- sshコマンド
- yum updateコマンド
- yum installコマンド
- systemctlコマンド
- digコマンド
- wgetコマンド
- tarコマンド
- cpコマンド
- chownコマンド
- 終わり
- 参考記事
概要
以前AWSを触っていた時によく使ったコマンドをまとめます。
SSH接続する時に使うchmodコマンド
SSH接続する時に、pemファイルをSSHキーとして使用します。 pemファイルをSSHキーとしてSSH接続する場合、必ずpemファイルの権限を変更します。ファイルの権限を変更する場合、chmodコマンド(チェンジモード)を使用します。
chmod 600 pemファイルの相対パス
理由は、AWSからダウンロードした直後のpemファイルの権限が緩すぎるからです。 以下はlsコマンドでみたpemファイルの権限です。
-rw-r--r--@ 1 yuuki_haga staff 1674 Nov 10 19:19 practice_ssh_key.pem
このファイルの所有者はyuuki_haga、所有グループはstaffです。所有者はファイルの読み書きができますが、所有グループとその他のユーザーは読み取りしかできません。この状態でSSH接続をすると、以下のエラーが出ます。
'practice_ssh_key.pem' のパーミッション 0644 は開きすぎています。 秘密鍵のファイルは他人がアクセスできないようにする必要があります。 この秘密鍵は無視されます。 鍵の読み込み "practice_ssh_key.pem": 不正なアクセス権 ec2-user@18.179.9.168: パーミッションが拒否されました (publickey,gssapi-keyex,gssapi-with-mic)。
そのため、自分以外の人が操作できないようにファイルの権限を変更しておきます。
sshコマンド
EC2インスタンスに接続(ログイン)したい時に使用します。
ssh -i pemファイルの相対パス ec2-user@EC2インスタンスのパブリックIPアドレス
(※)ちなみに、ホームディレクトリ配下に.sshというディレクトリを作成して、その配下にpemファイルをmvコマンドで配置します。
# .sshディレクトリの作成 % mkdir ~/.ssh # pemファイルの移動 % mv Downloads/プライベートキーの名前.pem .ssh/
その後、.sshディレクトリ配下にconfigファイルを作成します。 configファイルに以下の内容を書きます。
Host 接続先名 HostName Elastic IPアドレス User ec2-user IdentityFile ~/.ssh/プライベートキーの名前.pem
これで以下ののコマンドを実行するだけで接続できるようになりました。 コマンドを打つ際はカレントディレクトリを.sshにする必要はありません。
ssh 接続先名 # 接続先名がec2_for_ecの場合 ssh ec2_for_ec
yum updateコマンド
EC2インスタンスのAMIをAmazon Linuxにした場合、ライブラリ(パッケージ)をyumで管理しています。EC2インスタンスにSSH接続した直後は、以下のコマンドを実行してライブラリを最新バージョンにアップデートします。ちなみにyumではライブラリをパッケージという単位で管理します。 -yはオプションで全ての問い合わせにyesと答えます。
sudo yum update -y
yum installコマンド
yumでライブラリ(パッケージ)をインストールしたい時に使用します。
sudo yum -y install パッケージ名
systemctlコマンド
systemctl(システムコントロール)コマンドは、指定したサービス(アプリケーション)を起動、停止、再起動させたり、起動状態の確認をするためのコマンドです。ApacheやNginxを起動させるのに使います。サービス名.serviceの後ろの.serviceは省略可能です。
systemctl start
systemctl startを実行すると、サービスを起動させることができます。
sudo systemctl start サービス名
systemctl status
systemctl statusを実行すると、サービスの起動状態を確認することができます。
sudo systemctl status サービス名
(※)statusのコマンド以外にもプロセスを確認することで、サービスが起動しているかを確認できます。プロセスとは、サーバー上で実行中のプログラムのことです。
// 全てのプロセスをCPUやメモリ使用率付きで表示します。 ps -axu
systemctl restart
systemctl restartは、サービスを再起動させるコマンドです。サービスがインストールしたライブラリをちゃんと読み込めるようにするときに使います。
sudo systemctl restart サービス名
systemctl enable
systemctl enableを実行すると、サービスを自動起動するようにできます。サーバーが停止したり再起動してまた起動するときに、自動でサービスが起動するようになります。
sudo systemctl enable サービス名
以下のコマンドを実行して、ちゃんとenabledが出れば自動起動が設定されています。
sudo systemctl is-enabled サービス名
sudo systemctl stop
systemctl stopを実行すると、サービスを停止させることができます。
sudo systemctl stop サービス名
digコマンド
digコマンドは、 ドメインに紐づくIPアドレスの情報や、IPアドレスに紐づくドメインの情報を調べたいときに使用します。 digの後にドメイン名を指定します。ドメインのネームサーバーを知りたいときはNSを指定します。digコマンドはいろいろな情報が表示されるので、シンプルにネームサーバーの情報だけ知りたかったら、+shortというオプションを加えます。 以下のように使うことで、ドメインを管理しているネームサーバーの情報を取得できます。
// ドメインを管理するネームサーバーを知りたいので、NSを指定した dig ドメイン名 NS +short
wgetコマンド
wgetコマンドは URLを指定してファイルをインストールするコマンドです。
wget url名
tarコマンド
tarコマンドは 複数のファイルを圧縮したり解凍するコマンドです。 以下にファイル解凍の例を示します。xzvfはxが解凍、zがgzipを使用、vが圧縮解凍状況を表示、fが圧縮ファイル名を指定するオプションです。
tar xzvf 圧縮ファイル
cpコマンド
cpコマンドはファイルをコピーするコマンドです。以下に例を示します。-r *で現在のディレクトリ以下の全てのファイルとディレクトリを指定しています。/var/www/html/はコピー先です。つまり、カレントディレクトリは以下の全てのファイルとディレクトリを/var/www/html/にコピーしていることを意味しています。
sudo cp -r * /var/www/html/
chownコマンド
chownコマンドは、ファイルの所有者やグループを変更するコマンド
chown [オプション] ユーザー[:グループ] ファイル
終わり
まだあると思うので、今後AWSを使う上でよく使うコマンドがあったら追記します。
参考記事
【yum入門】今すぐ使えるオプション一覧 | UX MILK
Linux【ワイルドカードと正規表現】の違いと変換,展開の動作 ~ ls, grep, findでの具体例の解説~ | SEの道標