はじめに
作業中にふと、「初心者の頃に、よく使うコマンドだけまとまった、メモ書き的な記事があれば便利だったかもなー」と思い立ったので、AWS EC2(Amazon Linux release 2)でWordpressを利用しているときによく使うコマンドをまとめました。
今回の内容は、AWSでCUI(Tera Termなどの黒い画面)を初めて操作する方や、少し慣れてきた方が対象になると思います。
では前置きはこの程度にして内容に移ります。
前提知識
- Linux:サーバー用のOS 今回はAmazon EC2(Amazon Linux release 2)の環境を想定
- ディレクトリ:クライアント PCでいうフォルダに当たるもの
- カレントディレクトリ:現在開いているフォルダのこと
※2023年5月2日時点の情報です。
コマンドまとめ
カレントディレクトリの確認・移動
現在のディレクトリ(パス)を確認
$ pwd
今どのディレクトリにいるのかを確認してくれます。
視覚的に操作できるクライアントPCと違って、CUIの黒い画面で作業していると、ディレクトリ間の移動で現在地を見失う時もあります。
そんなわけで、迷子になったら一先ずこれを入力します。
ディレクトリ間の移動
$ cd 任意のディレクトリパス
指定したディレクトリに移動するためのコマンドで、クライアントPCでいう、今いるフォルダから別のフォルダへ移動する操作に当たります。
以下のような使い方も多様することになると思います。
- 任意のパスを入力せず $ cd のみでホームディレクトリへ移動
- $ cd.. で一つ上のディレクトリに移動
ファイルとディレクトリの編集
ファイル作成
■空のファイルを作成する
$ touch ファイル名
touchはファイルの作成日時などの時刻に関する情報を編集するコマンドですが、中身がカラの新しいファイルを作成することもできます。
ファイル名には、既存のファイルでは使ってない名前をつける必要があります。
■ファイルの作成と編集を同時に行う時
$ vi ファイル名
viはLinuxのテキストエディタで、既存のファイル名を入力した場合はそのファイルを開き、使われていないファイル名を入力すれば、入力した名前で新しいファイルを作成してくくれます。
viはよく使うエディタですが、使い方が少しわかりにくいのが玉にキズ
この記事では詳しい使い方は省きますが、エディタの簡単な特徴だけ紹介しておきます。
- カーソル位置の移動なども含めて、全てをキーボードだけで操作する必要がある(マウスが使用できない)
- エディタを起動した段階では”コマンドモード”になっていて、文字を入力するには”入力モード”に切り替える必要がある
- 文字入力以外の編集はコマンドモードで編集に割り当てられたキーを押して行う
コマンドモードでよく使うキーは、この辺りを覚えておけばひとまずは大丈夫です。
入力モード(インサート)に切り替える | 「i」キー |
コマンドモードに戻る | 「Esc」キー |
カーソル位置の移動 | 「←」「↑」「→」「↓」各キー |
カーソル位置の文字を削除する | 「x」キー |
文字列の検索 | 「/」キー |
編集したファイルを保存して終了 | 「:」「w」「q」キーを順番に押す |
保存せずに終了 | 「:」「q」「!」キーを順番に押す |
ディレクトリ作成
$ mkdir ディレクトリ名
カレントディレクトリに新しいディレクトリを作成します。
WindowsのPCでいえば新しいフォルダの作成ですね。
マトリョーシカのように、子に当たるディレクトリをまとめて作成することもできます。
$ mkdir -p ディレクトリ1/ディレクトリ2
ファイルのコピー
$ cp コピー元ファイル名 コピー先ディレクトリパス
指定したディレクトリにファイルをコピーするコマンドです。
“sample.txt”をホームディレクトリにコピーするならこんな感じに。
$ cp sample.txt /home/
ファイル名変更
$ mv変更前ファイル名 変更後ファイル名
ファイル名を変更するときはmvコマンドを使います。
test.textというファイル名をsample.textに変えるならこう。
$ mv test.txt sample.txt
注意点として、mvコマンドは変更後のファイル名と同じ名前のファイルが既にあった時は、内容を上書きしてしまうという落とし穴があります。
例えば、”A”という名前のテキストファイルを”B”という名前に変えたいけど、既に”B”という名前のテキストファイルがある時は、”B”の内容を”A”で上書きしてしまい、もともとあったファイル”B”の内容は消えてしまいます。
「-i」オプションをつけておくと、上書きしてよいか確認してくれるようになります。
$ mv -i test.txt sample.txt
ファイル移動
$ mv 移動させるファイル名 移動先ディレクトリ名
mvコマンドは指定したファイルを別のディレクトリへ移動する機能も持っています。
複数のファイルをまとめて移動することもできます
$ mv ファイル1 ファイル2 ファイル3 移動先ディレクトリ名
しかしここにも落とし穴があり、mvコマンドは移動先に指定したディレクトリ名が無かった場合、ファイル名を変更する機能のほうが働いてしまいます。
ディレクトリ名の入力ミスなどで誤ってファイル名を変えられるのが面倒な時は、「/.」を入れて、移動先ディレクトリ直下へのファイル移動を指定しておきましょう。
(この「/.」にはディレクトリ直下を指定する意味があります。)
$ mv sample.txt dir /.
ファイルとディレクトリの削除
空のディレクトリ削除
$ rmdir 削除するディレクトリ名
ディレクトリを指定して削除できます。
削除できるのは中身がカラの時だけなので、ファイルが入っているフォルダは”Directory not empty”のエラーメッセージが出てしまいます。
中身ごと削除する場合は次のrmコマンドと、そのオプションを利用することで削除できます。
ファイルとディレクトリを削除するrmコマンド
$ rm 削除するファイル名
指定したファイルを削除するコマンドです。
クライアントPCと違って削除されたファイルは復元するのが難しいので、削除する際はよく確認することが大切。
大事なファイルは削除する前にバックアップを取っておくとよいです。
$ rm sample*
ワイルドカードの「*」をつけると、指定した文字を名前に含むファイルを全て削除できます。
特に文字を指定せずに「$ rm *」だけ入力すると、カレントディレクトリの全ファイルをまとめて消してくれます。
$ rm -r ディレクトリ名
“-r”はディレクトリと中のファイルを消すオプション。
rmdirは空のディレクトリしか削除できませんでしたが、こちらは中身ごと強引に削除することが可能です。
この操作は特に必要なファイルが入っているのを忘れたまま誤って消してしまうのが怖いです。
消す前に中身を確認するなどして、最大限注意しましょう。
ディレクトリの中身を確認
$ ls ディレクトリ名
lsコマンドは指定したディレクトリにどんなファイルがあるか、一覧で表示してくれます。
ディレクトリ名を入れずに実行するとカレントディレクトリにある全ファイルを確認できます。
前述のrmコマンドでファイルを消す前にこちらで一度確認しておくと安心。
パーミッション(権限)の確認と変更
パーミッションの確認
$ ls -l
パーミッションとはファイルの編集権限のことで、lsコマンドは、”-l” オプションをつけることで、このパーミッションがどうなっているのかを確認することができます。
入力すると、こんな感じに謎の呪文が出てきます・・・
-rwxrw-r—
意味がよくわからない状態で見ていると不安になってきますが、読み方がわかればそんなに難しい話でもありません。
最初の1文字目はファイルの種別を表していますが、今回ここはスルー。
次の2文字目からは、3文字で一つの塊になっていて、表示される位置がユーザーのグループを、文字が与えられた権限を表しています。
数えてみると、
2文字目からの3文字は「所有者」を表し
5~7文字目は「所有グループ」を
8~10文字目は「その他」を表しており、
数えてみると計9文字あるはずです(最初の1文字と合わせると10文字)。
2~8文字目には、権限がある場合には下の表の文字が、ない場合は ”-“ が入力されます。
モード(アルファベット) | 権限 |
R | 読み取り |
W | 書き込み |
X | 実行 |
では、今回表示された呪文を分解してみます。-rwxrw-r--
の場合は - / rwx / rw- / r--
と区切って、
1文字目の ”-“
は無視
次からの3文字「所有者」部分にはrwx
とあるので、所有者は読み取り・書き込み・実行すべての権限があります。
同様に、次の3文字「所有グループ」はrw-で実行部分が ”-“
の表示なので、所属グループには・書き込み権限はありますが、実行権限はなし。
最後の3文字「その他」はr--
で、後ろの2つが ”-“
の表示のため、その他のユーザーは読み込み権限だけでがあることがわかります。
パーミッションの変更
$ chmod モード 適用するファイル名
ファイルの権限に変更が必要な場合はchmodコマンドを使います。
今度は「モード」なる怪しげな単語が見えますが、実際の使用例から読み解いていきます。
$ chmod 764 sample.txt
「モード」部分に表示される3つの数字は、それぞれ
左端は「所有者」の権限
中央は「所有グループ」の権限
右端は「その他」の権限
を表しています。
それぞれに与えたい権限を、下の票から、与えたい分だけ足した数値で入力します。
読み取りだけなら”4”を
書き込みまでなら”6”を
全部与えるなら”7”を入力すればOKです。
モード(数字) | 権限 |
4 | 読み取り |
2 | 書き込み |
1 | 実行 |
今回入力した$ chmod 764 sample.txt
の場合は、sample.txt
というファイルへ
「所有者」には ”7” の読み取り・書き込み・実行すべての権限を
「所有グループ」には ”6” の読み取り・書き込み権限を
「その他」には “4” で読み込みだけの権限を付与したことになります。
さいごに
最初はApache関連も一緒に紹介する予定でしたが、文字数がかさばってきたため、今回はLinuxに絞ることにしました。
私自身、いちいち1つずつ調べていた時期は煩わしく感じていたので、参考として使っていただけると嬉しく思います。
特に、慣れてきたくらいの「あの操作ってどのコマンドだっけ?」な方や、たまにしか使わない方など、是非!
長文になってしまいましたが、最後までお読みいただいた方、ありがとうございます。
Apacheについても、まとまったら記事にしたいと思っています。
では、今回はここまで。