基本的なLinuxコマンドをいくつか使いながらサーバー上での操作を学んでいきましょう。
なお、このページの内容は前回「AWSのサーバーにログインしてみよう」でサーバーに接続している前提で進めます。
目次
pwd : 現在位置(カレントディレクトリ)を確認する
今自分がサーバー上のどこにいるのかを確認してみましょう。以下のコマンドを入力してください。
pwd
以下のように表示されたと思います。
/home/ec2-user
これが現在の自分のサーバー上での位置(カレントディレクトリ)を表しています。
「home」というディレクトリの中にある「ec2-user」というディレクトリの中にいることを表しています。
LinuxなどCLIではフォルダのことを「ディレクトリ」と呼びます。
イメージとしては、WindowsのファイルエクスプローラーでCドライブ直下の「home」というフォルダの中の「ec2-user」というフォルダを開いているような状態です。
cd : 現在位置から移動する(カレントディレクトリを変更する)
今度は違うディレクトリに移動してみましょう。以下のコマンドを入力してください。
cd /var/log/
cd
は違うディレクトリに移動するためのコマンドです。cd
を実行した後にpwd
を実行してみてください。カレントディレクトリが変更されているのが分かると思います。
cd
コマンドに/var/log/
という値を付けていますが、コマンドに送る値を「引数」と呼びます。
cd
コマンドには引数として移動先の場所(パス)を指定します。
パスの指定方法には絶対パスと相対パスとがあります。詳しくは以下のページを参考にしてください。
なお、cd
コマンドを引数なしで実行すると、ホームディレクトリ(ログインしたときに最初にいるディレクトリ)に移動することができます。
一旦ホームディレクトリに戻っておきましょう。
cd
「~」でもホームディレクトリを表すことが出来ます。
cd ~/
touch : 空ファイルを作成する
ホームディレクトリに新しいファイルを作成してみます。
touch test.txt
これでカレントディレクトリに「test.txt」というファイルを作成できます。
mkdi r: ディレクトリを作成する
今度はホームディレクトリに新しいディレクトリ(フォルダ)を作成してみます。
mkdir test_dir
これでカレントディレクトリに「test_dir」というディレクトリを作成できます。
ls : ファイル・ディレクトリの一覧を表示する
先ほど作った test.txt と test_dir がちゃんと作れているのか確認してみましょう。
ls
lsコマンドはカレントディレクトリに存在するファイルやディレクトリを一覧表示します。
ファイル名だけだと寂しいので各ファイルの詳細情報も一覧表示してみましょう。
ls -l
以下のような表示が出たと思います。
合計 0 -rw-rw-r-- 1 ec2-user ec2-user 0 8月 30 08:28 test.txt drwxrwxr-x 2 ec2-user ec2-user 6 8月 30 08:27 test_dir
「-l」をコマンドの「オプション」と呼びます。Linuxコマンドはオプションを指定することによって動作を少し変えることができます。
lsコマンドの場合は「-l」をつけることで詳細情報を表示するようになります。
詳しくは以下のページを参考にしてみてください。
vim(vi) : ファイルを編集する
一般的なPCでいうところの「メモ帳」にあたるものです。
ですが使い方がとても独特で使い方の説明だけで本が1冊書けるほどなので、 まずは、下記サイトを参考にして以下の作業の仕方を覚えてください。
- カーソル移動
- ファイル書き換え
- ファイル保存
- (書き換えせずに)強制終了
参考サイト
試しに、先ほどホームディレクトリに作った test.txt を適当に書き換えて保存してみましょう。
vim test.txt
cat : ファイルの中身を表示
cat
コマンドは、ファイルの中身をターミナル上に出力します。
試しに、先ほど書き換えた test.txt を出力してみましょう。
cat test.txt
サーバーからログアウトしてみよう
サーバーからログアウトしてみましょう。
ターミナルに以下のコマンドを入力してください。
exit
以下のように表示されます。
logout Connection to {サーバーIP} closed.
ログアウトできました。
管理者権限について
通常、SSHでログインできるユーザーは一般ユーザーで管理者権限を持っていません。
Linuxでは、サーバーにソフトウェアをインストールするといった作業は、管理者ユーザー(root)でなければ行えない仕組みになっています。
このような作業は以下のコマンドで一時的に管理者ユーザーになることで行います。
sudo su -
試しに、いくつかコマンドを実行してみましょう。
# ホームディレクトリが変わる pwd # つくったファイルの所有者がrootになる touch /tmp/test_root.txt ls -l /tmp/test_root.txt
管理者ユーザーから元のユーザーに戻るには以下のコマンドを実行します。
exit
今後のAWS入門記事では必要に応じて管理者ユーザーになって作業してください。
Linuxコマンドを自分で調べて実行してみよう
以上のようにLinuxでは様々なコマンドによって操作していきます。
Linuxでの操作に慣れるためには、やりたいことを実現するコマンドを自分で調べていくことが一番の近道です。練習として以下の操作を行うコマンドを調べて実行してみましょう。オプションや引数に注意してください。
やりたいこと | 調べるキーワード |
---|---|
test.txtをコピーする | ファイルをコピーする |
コピーしたファイル名を変える | ファイルの名前を変更する |
コピーしたファイルを削除する | ファイルを削除する |
test_dirを削除する | ディレクトリを削除する |
コマンドに慣れるには「Progate」というプログラミング学習サービスもオススメです。
作業を早くするために
以下の記事で紹介されているLinuxの機能を扱いこなせると、作業のスピードが大幅に向上します。 今のうちに覚えておきましょう。
以前のコマンドを呼び出す:↑
またはCtrl+p
長いファイル名・コマンド名を自動補完: (入力途中で)tab
履歴探索:(入力途中で)Ctrl+r
カーソル移動(先頭):Ctrl+a
カーソル移動(末尾):Ctrl+e
課題
コマンドに慣れるため以下の課題を試してください。
SSHでサーバに接続してから行ってください。
- 管理者(root)権限で作った/tmp/test_root.txtを、管理者ではないec2-userで削除してみましょう
- 削除できたでしょうか?
- どんなエラーが表示されるでしょうか
- 管理者(root)になって
/tmp/test_root.txt
を削除してみましょう- 削除できたでしょうか?
- ホームディレクトリでtabキーによる自動補完を適当に試してみましょう
ls test_(TABキー押下)
- 何が表示されましたか?
- 続けて
Ctrl+r
や↑
キーによる履歴探索も適当に試してみましょう(Ctrl-r押下) ls
- 何が表示されましたか?
- ホームディレクトリに作成したファイル(test.txt)、ディレクトリ(test_dir)を削除してみましょう
- 削除できたでしょうか?
基礎的な内容のみとなりますが、Linuxコマンドの紹介は以上です。