コマンドラインは、Linux サーバー管理の心臓部です。初心者であっても、経験豊富なシステム管理者であっても、コマンドライン管理の基本を理解することは、Ubuntu Server を効率的に管理するために不可欠です。この記事では、ファイル、ディレクトリ、サーバー環境を管理するための基本的なコマンド、ツール、テクニックを取り上げ、Linux コマンドラインを詳しく紹介します。
前の記事:
01. Ubuntu Server 入門 – SysOSX: AI & Cloud
02. 初めての Ubuntu Server をセットアップする方法:初心者向けガイド – SysOSX: AI & Cloud
コマンドラインを学ぶ理由
Linux コマンドラインは、ターミナル を介してアクセスでき、オペレーティングシステムと対話するための強力なツールです。グラフィカルインターフェースとは異なり、コマンドラインには次の利点があります:
- 速度:GUI インターフェースよりもコマンドを使う方が、タスクを速く実行できます。
- 柔軟性:スクリプトを使ってプロセスを自動化し、複雑な操作を実行できます。
- 制御:より深いシステム機能にアクセスし、問題を効果的にトラブルシューティングできます。
Ubuntu Server でコマンドラインにアクセスする
Ubuntu Server のインストールには、デフォルトでグラフィカルインターフェースが含まれていないため、すべての操作はターミナルを通じて行われます。コマンドラインにアクセスする一般的な方法は次のとおりです:
1. ローカルコンソールによる直接アクセス
Ubuntu Server にログインすると、ターミナルインターフェースが表示されます。
2. SSH によるリモートアクセス
Secure Shell(SSH)を使ってサーバーにリモートアクセスします:
ssh username@server_ip
初心者向けの基本的な Linux コマンド
1. ファイルシステム内を移動する
Linux ファイルシステムの階層を理解することは、ファイルとディレクトリを管理するうえで重要です。
現在のディレクトリを表示する:pwd
現在の作業ディレクトリを表示します:
pwd
ディレクトリの内容を一覧表示する:ls
現在の場所にあるファイルとディレクトリを一覧表示します:
ls
オプション:
ls -l:権限、所有権、サイズを含む詳細なリスト。ls -a:隠しファイルを含みます(.で始まるファイル)を含みます。
ディレクトリを変更する:cd
別のディレクトリに移動します:
cd /path/to/directory
例:
cd ..:1 つ上のレベルに移動します。cd ~:ホームディレクトリに移動します。
2. ファイルとディレクトリの管理
ディレクトリを作成する:mkdir
新しいディレクトリを作成します:
mkdir directory_name
例:サブディレクトリ構造を作成します。
mkdir -p /home/user/documents/projects
説明:
-pオプションは、親ディレクトリが存在しない場合に作成します(例:documentsとprojects)。
ディレクトリを削除する:rmdir
空のディレクトリを削除します:
rmdir directory_name
例:
rmdir /home/user/old_directory
ファイルをコピーする:cp
ファイルまたはディレクトリをコピーします:
cp source_file destination_file
例:ファイルを新しいディレクトリにコピーします。
cp /home/user/file.txt /home/user/backup/file.txt
ディレクトリ全体をコピーするには:
cp -r /home/user/documents /home/user/backup/documents
ファイルを移動または名前変更する:mv
ファイルを移動または名前変更します:
mv old_name new_name
例:ファイルの名前を変更します。
mv file.txt renamed_file.txt
ファイルを別のディレクトリに移動する:
mv /home/user/file.txt /home/user/backup/
ファイルを削除する:rm
ファイルまたはディレクトリを削除します:
rm file_name
例:ファイルを削除します。
rm /home/user/file.txt
ディレクトリとその内容を削除するには:
rm -r /home/user/old_directory
警告:rm の使用には注意し、誤って削除しないようにしてください。
3. ファイルの表示と編集
ファイルの内容を表示する:cat
ファイルの内容を表示します:
cat file_name
例:
cat /etc/hostname
ファイルの内容をページ送りで表示する:less
ファイルの内容をスクロールして表示できます:
less file_name
例:
less /var/log/syslog
ファイルを作成または編集する:nano
初心者にやさしいテキストエディター:
nano file_name
例:新しいファイルを作成したり、既存のファイルを編集したりします。
nano /home/user/new_file.txt
ファイル内のテキストを検索する:grep
ファイル内の特定の文字列を検索します:
grep "search_term" file_name
例:ログファイル内のエラーメッセージを見つけます。
grep "error" /var/log/syslog
4. システム管理コマンド
ディスク使用量を確認する:df
ディスク容量の使用状況を表示します:
df -h
オプション:
-h:人間が読みやすい形式。
メモリ使用量を確認する:free
メモリ使用量を表示します:
free -h
システムプロセスを監視する:top
実行中のプロセスとシステムリソースの使用状況を表示します:
top
代替手段:
htop:より使いやすいプロセスモニター(sudo apt install htopでインストール)です。
サービスを管理する:systemctl
システムサービスを制御します:
sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name
シャットダウンまたは再起動する:shutdown
サーバーをシャットダウンまたは再起動します:
sudo shutdown now # Immediate shutdown
sudo shutdown -r now # Immediate restart
5. ファイルの権限と所有権
Linux は、ファイルやディレクトリへのアクセスを制御するために権限モデルを使用します。
ファイルの権限を表示する:ls -l
ファイルの権限を詳細形式で表示します:
ls -l
ファイルの権限を変更する:chmod
ファイルの権限を変更します:
chmod 644 file_name
ファイルの所有権を変更する:chown
ファイルの所有権を変更します:
sudo chown new_owner:new_group file_name
6. ファイルの検索と探索
ファイルを探す:locate
locate コマンドはデフォルトではインストールされていません。まずインストールしてください:
sudo apt update
sudo apt install mlocate
データベースを更新します:
sudo updatedb
ファイルを検索します:
locate file_name
ファイルを検索する:find
条件に基づいてファイルを検索します:
find /path -name "file_name"
7. ネットワークコマンド
ネットワーク接続を確認する:ping
ホストへの接続をテストします:
ping google.com
開いているポートを確認する:ss
netstat コマンドは非推奨であり、デフォルトではインストールされていません。代わりに ss を使用してください。これは最新の代替手段です:
ss -tuln
説明:
-t:TCP 接続を表示します。-u:UDP 接続を表示します。-l:リッスン中のポートを表示します。-n:数値アドレスとポートを表示します。
リモート接続をテストする:curl
URL からデータを取得します:
curl http://example.com
コマンドライン管理のための実践的なヒント
1. Tab 補完を使う
Tab を押すと、コマンドやファイル名の入力中にパスやコマンドが自動補完されます。
2. 履歴コマンドを使う
以前に実行したコマンドにアクセスします:
history
履歴から特定のコマンドを実行します:
!number
3. 出力をリダイレクトする
コマンドの出力をファイルに保存します:
command > output_file
4. コマンドを連結する
複数のコマンドを順番に実行します:
command1 && command2
ワークフローの例:Web サーバーをセットアップする
基本的なコマンドを使って Web サーバーをセットアップするためのステップバイステップガイドです。以下の手順に従ってカスタムウェブサイトを設定し、デフォルトの Apache ページが置き換えられるようにしてください。
1. システムを更新する
システムを最新の状態に保つことは、セキュリティと安定性のために不可欠です。次のコマンドを実行して、すべてのパッケージを更新およびアップグレードします:
sudo apt update && sudo apt upgrade -y
2. Apache をインストールする
Apache Web サーバーをインストールします:
sudo apt install apache2 -y
インストールが完了したら、Apache が実行されていることを確認します:
sudo systemctl status apache2
次のようなステータスメッセージが表示されるはずです:Active: active (running)。
3. ウェブサイト用のディレクトリを作成する
ウェブサイトのファイルを保存するディレクトリを作成します。この例では、mywebsite という名前のディレクトリを作成します:
sudo mkdir -p /var/www/mywebsite
4. 権限を設定する
Apache がウェブサイトのファイルにアクセスできるよう、正しい所有権と権限を設定します:
sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite
5. サンプル HTML ファイルを作成する
シンプルな index.html ファイルを追加し、ウェブサイトのホームページとして使用します:
sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
EOF
これにより、「Welcome to My Website」と表示される基本的なページが作成されます。
6. 仮想ホストを設定する
カスタムウェブサイトを提供するには、Apache 用の新しい仮想ホスト設定ファイルを作成します:
sudo nano /etc/apache2/sites-available/mywebsite.conf
次の内容をファイルに貼り付けます:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mywebsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Ctrl+O を押してファイルを保存して終了し、次に Ctrl+X を押します。
7. ウェブサイトを有効化する
新しい仮想ホスト設定を有効化します:
sudo a2ensite mywebsite.conf
ウェブサイトが確実に提供されるよう、Apache のデフォルトサイト設定を無効化します:
sudo a2dissite 000-default.conf
変更を適用するために Apache をリロードします:
sudo systemctl reload apache2
8. 接続をテストする
次を実行して、ウェブサイトが動作しているかどうかを確認します:
curl http://localhost
カスタム index.html ファイルの HTML コンテンツが表示されるはずです:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
あるいは、ブラウザを開いて http://<your-server-ip> に移動し、ウェブサイトを表示することもできます。
トラブルシューティング
デフォルトの Apache ページが引き続き表示される場合や、問題が発生した場合:
- サイトが有効化されていることを確認する
設定が有効であることを確認します:
ls /etc/apache2/sites-enabled/
mywebsite.confが表示されるはずです。表示されない場合は、以下を使用して有効化してください:
sudo a2ensite mywebsite.conf
- Apache ログを確認する
ログ内のエラーを探します:
sudo tail -f /var/log/apache2/error.log
- Apache を再起動する
問題が解決しない場合は、Apache を再起動します:
sudo systemctl restart apache2
まとめ
Linux コマンドラインをマスターすることは、効果的な Ubuntu Server 管理に不可欠です。これらのコマンドを学び、練習することで、サーバー環境の管理、問題のトラブルシューティング、管理タスクの効率的な実行に自信が持てるようになります。
次のステップ:ユーザーと権限の管理
コマンドライン管理の基本に慣れたら、サーバー管理における次の重要なステップは、ユーザー、グループ、権限 を理解することです。ユーザーアカウントとアクセス制御を適切に管理することは、セキュリティを維持し、許可された個人だけがサーバー上の機密ファイルやリソースにアクセスまたは変更できるようにするために不可欠です。
次の記事では、「ユーザーと権限の管理」で、以下を取り上げます:
- ユーザーアカウントの作成、変更、削除の方法。
- 効率的なアクセス制御のためのグループ管理。
- ファイルとディレクトリの権限(読み取り、書き込み、実行)の理解。
- 権限昇格のための
sudoのような高度なツールの使用。 - Ubuntu Server でユーザーアカウントを保護するためのベストプラクティス。
セキュリティとアクセス管理を強化するための実践的な知見にご期待ください!
14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”