🤖

Linux基本コマンド

2024/09/06に公開

はじめに

このページではLinux基本コマンドについて記述します。

基本的なLinuxコマンド

Linuxのターミナルでよく使われるコマンドをまとめました。ファイルやディレクトリの操作、システム情報の確認、ネットワーク操作など、日常的な作業に役立つコマンドを幅広く紹介します。

1. ファイルとディレクトリの操作

ls コマンド

ディレクトリ内のファイルとディレクトリを表示します。

ls           # 現在のディレクトリ内の内容を表示
ls -l        # 詳細情報を表示 (long format)
ls -a        # 隠しファイルも含めてすべてのファイルを表示
ls -lh       # ファイルサイズを人間に読みやすい形式で表示

cd コマンド

ディレクトリを移動します。

cd /path/to/directory  # 指定したディレクトリに移動
cd ..                  # 親ディレクトリに移動
cd ~                   # ホームディレクトリに移動
cd -                   # 前のディレクトリに戻る

mkdir コマンド

新しいディレクトリを作成します。

mkdir new_directory  # 'new_directory'という名前の新しいディレクトリを作成
mkdir -p /path/to/new_directory  # 親ディレクトリが存在しない場合でも再帰的に作成

rm コマンド

ファイルまたはディレクトリを削除します。

rm filename          # ファイルを削除
rm -r directoryname  # ディレクトリとその中のすべてのファイルを再帰的に削除
rm -f filename       # 確認なしでファイルを強制削除
rm -rf directoryname # ディレクトリを強制的かつ再帰的に削除

cp コマンド

ファイルやディレクトリをコピーします。

cp source_file destination_file           # ファイルをコピー
cp -r source_directory destination_dir    # ディレクトリを再帰的にコピー
cp -i source_file destination_file        # コピーする際に上書きの確認をする

mv コマンド

ファイルやディレクトリを移動または名前を変更します。

mv old_name new_name                       # ファイルまたはディレクトリの名前を変更
mv /path/to/file /new/path/to/file         # ファイルを移動
mv -i old_name new_name                    # 名前の変更や移動の際に確認を求める

scp コマンド

リモートマシン間でファイルを安全にコピーします(SSHを使用)。

scp source_file user@remote_host:/path/to/destination  # リモートマシンにファイルをコピー
scp user@remote_host:/path/to/source_file /local/destination  # リモートマシンからファイルをコピー
scp -r source_directory user@remote_host:/path/to/destination # ディレクトリを再帰的にコピー

2. ファイル内容の表示と編集

cat コマンド

ファイルの内容を標準出力に表示します。

cat filename  # ファイルの内容を標準出力に表示

less コマンド

大きなファイルをページングして表示します。ファイルの内容を上下にスクロールして閲覧できます。

less filename  # ファイルをページ単位で表示

head コマンド

ファイルの最初の数行を表示します。

head filename          # デフォルトで最初の10行を表示
head -n 5 filename     # 最初の5行を表示

tail コマンド

ファイルの最後の数行を表示します。

tail filename          # デフォルトで最後の10行を表示
tail -n 5 filename     # 最後の5行を表示
tail -f filename       # ファイルの最後の部分をリアルタイムで表示(ログファイルの監視などに使用)

grep コマンド

ファイル内の特定の文字列を検索して表示します。

grep "search_string" filename  # 'filename'内の'search_string'を検索して表示
grep -i "search_string" filename  # 大文字小文字を区別せずに'search_string'を検索
grep -r "search_string" /path/to/directory  # 指定ディレクトリ内のすべてのファイルから検索
grep -n "search_string" filename  # 検索結果の行番号を表示
grep -v "search_string" filename  # 検索結果を除いた内容を表示

nano コマンド

ターミナルベースのテキストエディタです。簡単なテキスト編集に使います。

nano filename  # ファイルをnanoで開く

vi コマンド

より高度なターミナルベースのテキストエディタです。慣れると非常に強力です。

vi filename  # ファイルをviで開く

3. 標準入出力関連のコマンド

標準入出力と標準エラーの基本

標準入出力およびエラー出力は、以下のデバイス番号で管理されます。

  • 標準入力(stdin): 0
  • 標準出力(stdout): 1
  • 標準エラー(stderr): 2

リダイレクトやパイプを活用することで、これらを効率的に操作できます。

出力リダイレクト (>, >>)

コマンドの実行結果をファイルに出力します。

  • >: ファイルに出力(既存の内容を上書き)
  • >>: ファイルに出力(既存の内容に追記)
echo "Hello, World!" > output.txt
echo "追加の行" >> output.txt

エラー出力リダイレクト

標準エラー出力をリダイレクトします。

  • 2>: エラーをファイルに出力(上書き)
  • 2>>: エラーをファイルに出力(追記)
ls non_existing_file 2> error.log
ls non_existing_file 2>> error.log

標準出力と標準エラーの同時リダイレクト

標準出力と標準エラーを同じファイルにリダイレクトする場合、&> を使用します。

ls valid_file non_existing_file &> combined.log
    or
ls valid_file non_existing_file &> combined.log 2>&1

標準エラーを次のコマンドの入力にする方法

標準出力と標準エラーを同じファイルにリダイレクトする場合、|&1 を使用します。

ls non_existing_file |&1 grep error
    or
ls non_existing_file 2>&1 | grep error

入力リダイレクト (<)

ファイルの内容を標準入力として使用します。

cat < input.txt

パイプ (|)

コマンドの標準出力を次のコマンドの標準入力として渡します。

ls | grep "example"

tee コマンド

標準出力をファイルに保存しつつ、次のコマンドに渡します。

ls | tee output.txt | grep "example"

オプションとして、-a を付けることで追記モードになります。

ls | tee -a output.txt

/dev/null

不要な出力を破棄する場合に使用します。

ls non_existing_file 2> /dev/null

4. ネットワーク関連のコマンド

ping コマンド

ネットワーク接続をテストし、ターゲットへの応答時間を測定します。

ping google.com  # google.comに対してpingを送信

curl コマンド

URLからデータを取得するためのコマンドです。APIのテストなどでよく使用します。

curl http://example.com  # 指定したURLのコンテンツを表示
curl -O http://example.com/file.zip  # 指定したURLのファイルをダウンロード

wget コマンド

ウェブサーバーからファイルをダウンロードします。

wget http://example.com/file.zip  # 指定したURLのファイルをダウンロード
wget -c http://example.com/file.zip  # ダウンロードを再開する

netstat コマンド

ネットワーク接続、ルーティングテーブル、インターフェイス統計を表示します。

netstat -an  # すべてのネットワーク接続を表示

ifconfig コマンド

ネットワークインターフェイスの設定を表示または変更します。

ifconfig  # ネットワークインターフェイスの情報を表示

ssh コマンド

リモートマシンに安全にログインします。

ssh user@remote_host  # リモートマシンにSSHで接続
ssh -p 2222 user@remote_host  # ポート2222でSSH接続

4. プロセスとシステム情報の管理

ps コマンド

現在のプロセス情報を表示します。

ps aux  # すべてのユーザーのプロセスを表示

kill コマンド

プロセスを終了します。

kill PID  # 指定したPIDのプロセスを終了
kill -9 PID  # プロセスを強制終了

top コマンド

システムのリアルタイムのプロセス情報を表示します。

top  # 実行中のプロセスをリアルタイムで表示

htop コマンド

topの改良版で、より使いやすいインターフェースを提供します。

htop  # 実行中のプロセスをリアルタイムで表示

df コマンド

ディスクの空き容量を表示します。

df -h  # 人間が読みやすい形式でディスクの空き容量を表示

du コマンド

ディレクトリの使用容量を表示します。

du -h /path/to/directory  # ディレクトリの使用容量を表示
du -sh /path/to/directory  # 指定したディレクトリの合計サイズを表示

5. パーミッションと所有権の管理

chmod コマンド

ファイルやディレクトリのパーミッションを変更します。

chmod 755 filename  # 'filename'

のパーミッションを755に設定
chmod -R 644 directory  # ディレクトリ内のすべてのファイルを644に設定

chown コマンド

ファイルやディレクトリの所有者を変更します。

chown user:group filename  # 'filename'の所有者を'user'、グループを'group'に変更
chown -R user:group directory  # ディレクトリとその中のファイルの所有者を再帰的に変更

Discussion