03. Ubuntu Server 向け Linux コマンドラインをマスターする

コマンドラインは、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”

コメントを残す