Linux のディレクトリ構造と基本的なコマンド

ディレクトリ構造

Linux のディレクトリ構造は Filesystem Hierarchy Standard (FHS) に従っており、異なる Linux ディストリビューション間で一貫性を保っています。主なディレクトリとその用途は以下の通りです。

  • / (ルートディレクトリ)
    システムのすべてのファイルとディレクトリのルートとなる場所です。
  • /bin (バイナリ)
    基本的なユーザーコマンドのバイナリファイル(例: ls, cp, mv)が格納されています。
  • /boot
    ブートローダー関連のファイル、カーネル、およびブート設定ファイルが保存されています。
  • /dev (デバイス)
    システム内の各種デバイスを表すデバイスファイルが含まれています。
  • /etc
    システム管理や設定ファイル(ネットワーク設定、ユーザーアカウント情報など)が格納されています。
  • /home
    各ユーザーのホームディレクトリ。ユーザーデータファイルは通常ここに保存されます。
  • /lib (ライブラリ)
    システムとプログラムに必要な共有ライブラリファイル、およびカーネルモジュールが含まれています。
  • /media
    CD-ROM、USB などのリムーバブルメディアデバイスを一時的にマウントするためのポイントです。
  • /mnt
    ファイルシステムを一時的にマウントするためのポイントです。
  • /opt (オプション)
    追加のアプリケーションソフトウェアをインストールするために使用されます。
  • /proc
    仮想ファイルシステムで、システムプロセスやカーネル情報が格納されています。
  • /root
    スーパーユーザー(root ユーザー)のホームディレクトリです。
  • /run
    システム起動以降の情報を保存するために使用されます。
  • /sbin (システムバイナリ)
    root ユーザーのみが実行できるシステム管理コマンドのバイナリファイルが格納されています。
  • /srv (サービス)
    サービスに関連するデータファイルが保存されています。
  • /tmp (一時的)
    一時ファイルが保存されます。システム再起動後はクリアされる可能性があります。
  • /usr (ユーザー)
    ユーザーアプリケーションとファイルのサブディレクトリ(例: /usr/bin, /usr/lib)が含まれています。
  • /var (可変)
    頻繁に変化するファイル(ログファイル、キャッシュ、メールなど)が含まれています。

基本的なコマンド形式

Linux コマンドの基本的な形式は以下の通りです。

command [オプション] [引数]
  • command: コマンド名(例: ls, cd, mkdir
  • オプション: コマンドの動作を変更するオプションで、通常 - または -- で始まります(例: -l, --help)。
  • 引数: コマンドが操作する対象(ファイル名やディレクトリ名など)。

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

  • ls: ディレクトリの内容を一覧表示します。
    ls /var/log
    ls -la /etc
    • ls: 指定されたディレクトリの内容を一覧表示します。ディレクトリが指定されていない場合は、現在のディレクトリの内容を表示します。
    • -l: 長い形式でディレクトリの内容を表示し、ファイルの詳細情報(パーミッション、所有者、ファイルサイズ、最終更新日時など)を表示します。
    • -a: すべてのファイルを表示します。隠しファイル(. で始まるファイル)も含まれます。
  • cd: 現在のディレクトリを変更します。
    cd /var/log
    cd ..
    cd ~
    • cd /path/to/directory: 指定されたディレクトリに移動します。
    • cd ..: 一つ上の親ディレクトリに移動します。
    • cd ~ または cd: 現在のユーザーのホームディレクトリに移動します。
  • pwd: 現在の作業ディレクトリを表示します。
    pwd
    • pwd: 現在の作業ディレクトリの絶対パスを表示します。
  • mkdir: 新しいディレクトリを作成します。
    mkdir project_docs
    • mkdir directory_name: directory_name という名前の新しいディレクトリを作成します。
  • rmdir: 空のディレクトリを削除します。
    rmdir old_folder
    • rmdir directory_name: directory_name という名前の空のディレクトリを削除します。
  • rm: ファイルまたはディレクトリを削除します。
    rm temp_file.txt
    rm -rf backup_folder
    • rm file_name: file_name という名前のファイルを削除します。
    • -r: ディレクトリとその内容を再帰的に削除します。
  • cp: ファイルまたはディレクトリをコピーします。
    cp /etc/hosts /tmp/hosts_copy
    • cp source destination: ファイルをコピーします。
    • -r: ディレクトリとその内容を再帰的にコピーします。
  • mv: ファイルまたはディレクトリを移動または名前を変更します。
    mv old_config.conf new_config.conf
    mv report.pdf /home/user/documents/
    • mv old_name new_name: ファイルまたはディレクトリの名前を変更します。
    • mv file_name destination: ファイルを指定されたディレクトリに移動します。

ファイルの表示と編集

  • cat: ファイルの内容を表示します。
    cat /etc/passwd
    • cat file_name: ファイルの内容を表示します。
  • more: ファイルの内容をページ単位で表示します。
    more large_log_file.log
    • more file_name: ファイルの内容をページ単位で表示します。スペースキーでページを進められます。
  • less: ファイルの内容をページ単位で表示し、前後のページ移動が可能です。
    less /var/log/syslog
    • less file_name: ファイルの内容をページ単位で表示します。上下矢印キーでスクロールできます。
  • head: ファイルの先頭行を表示します。
    head -n 3 /etc/hosts
    • head file_name: ファイルの先頭 10 行を表示します。
    • -n: 表示する行数を指定します。
  • tail: ファイルの末尾行を表示します。
    tail -f /var/log/nginx/access.log
    • tail file_name: ファイルの末尾 10 行を表示します。
    • -n: 表示する行数を指定します。
    • -f: ファイルの新しい内容をリアルタイムで追跡します。

ファイルのパーミッション

  • chmod: ファイルまたはディレクトリのパーミッションを変更します。
    chmod 644 private_file.txt
    • chmod permissions file_name: ファイルまたはディレクトリのパーミッションを変更します。644 は、ファイル所有者は読み書き可能、その他のユーザーは読み込みのみ可能を意味します。
  • chown: ファイルまたはディレクトリの所有者を変更します。
    chown user2:dev_group project_file.txt
    • chown user:group file_name: ファイルまたはディレクトリの所有者とグループを変更します。
  • chgrp: ファイルまたはディレクトリのグループを変更します。
    chgrp developers shared_folder/
    • chgrp group_name file_name: ファイルまたはディレクトリのグループを変更します。

システム管理

  • ps: 現在実行中のプロセスを表示します。
    ps aux | grep sshd
    • ps: 現在実行中のプロセスを表示します。
    • aux: すべてのプロセスの詳細情報を表示します。
  • top: システムリソースの使用状況とプロセス情報をリアルタイムで表示します。
    top
    • top: システムリソースの使用状況とプロセス情報をリアルタイムで表示します。`q` キーで終了できます。
  • kill: プロセスを終了させます。
    kill 1234
    kill -9 1234
    • kill PID: 指定された PID のプロセスを終了させます。
    • -9: 指定された PID のプロセスを強制的に終了させます。
  • df: ファイルシステムのディスク使用量を表示します。
    df -h /
    • df: ファイルシステムのディスク使用量を表示します。
    • -h: 人間が読みやすい形式(KB, MB, GB)でディスク使用量を表示します。
  • du: ディレクトリまたはファイルのディスク使用量を表示します。
    du -sh /home/user1
    • du: ディレクトリまたはファイルのディスク使用量を表示します。
    • -h: 人間が読みやすい形式でディスク使用量を表示します。
    • -s: ディレクトリの総ディスク使用量を表示します。
  • free: システムのメモリ使用量を表示します。
    free -h
    • free: システムのメモリ使用量を表示します。
    • -h: 人間が読みやすい形式でメモリ使用量を表示します。
  • uname: システム情報を表示します。
    uname -r
    • uname: システム情報を表示します。
    • -r: カーネルのリリース情報を表示します。

ネットワーク関連

  • ping: ネットワーク接続をテストします。
    ping 8.8.8.8
    • ping host: ネットワークホストに ICMP ECHO_REQUEST パケットを送信し、ネットワーク接続をテストします。
  • ifconfig: ネットワークインターフェースを表示または設定します(新しい Linux バージョンでは ip コマンドに置き換えられています)。
    ifconfig
    • ifconfig: ネットワークインターフェースを表示または設定します。
  • ip: ネットワークインターフェースを表示または設定します。
    ip addr show
    • ip: ネットワークインターフェースを表示または設定します。
    • a: すべてのネットワークインターフェースの詳細情報を表示します。
  • netstat: ネットワーク接続、ルーティングテーブル、インターフェースの状態などの情報を表示します。
    netstat -tuln
    • netstat: ネットワーク接続、ルーティングテーブル、インターフェースの状態などの情報を表示します。
    • -tuln: すべてのリッスンしているポートを表示します。
  • wget: ネットワークからファイルをダウンロードします。
    wget https://example.com/file.zip
    • wget URL: 指定された URL のファイルをダウンロードします。
  • curl: データを転送し、多种のプロトコルをサポートします。
    curl -O https://example.com/image.png
    • curl -O URL: 指定された URL のファイルをダウンロードしてローカルファイルとして保存します。

テキスト処理

  • grep: テキスト内のパターンを検索します。
    grep "error" /var/log/syslog
    • grep 'pattern' file_name: ファイル内でパターンを検索します。
    • -r: ディレクトリ内のパターンを再帰的に検索します。
  • awk: テキスト処理ツールで、テキストの抽出や処理に使用されます。
    awk '{print $2, $4}' data.csv
    • awk '{print $1}' file_name: ファイルの第一列を表示します。
  • sed: ストリームエディタで、テキストの検索と置換に使用されます。
    sed 's/192.168.1.1/10.0.0.1/g' config.txt
    • sed 's/old/new/g' file_name: ファイル内のすべての oldnew に置き換えます。

アーカイブと圧縮

  • tar: tar アーカイブの作成と展開に使用されます。
    tar -czvf archive.tar.gz /home/user/docs
    • tar -cvf archive.tar directory_name: tar アーカイブを作成します。
    • -xvf: tar アーカイブを展開します。
    • -czvf: gzip で圧縮された tar アーカイブを作成します。
    • -xzvf: gzip で圧縮された tar アーカイブを展開します。
  • zip: ファイルまたはディレクトリを圧縮します。
    zip -r project.zip /var/www/project/
    • zip archive.zip file_name: ファイルを圧縮します。
    • -r: ディレクトリを再帰的に圧縮します。
  • unzip: zip アーカイブを展開します。
    unzip archive.zip -d /tmp/extracted/
    • unzip archive.zip: zip アーカイブを展開します。

タグ: linux filesystem Shell system administration

6月5日 16:35 投稿