タグ: shell command

  • xargsとパイプ

    これらのツールは、コマンドラインでの作業を効率化し、複雑なタスクを実行する上で重要な役割を果たします。

    パイプ (|) の使用法

    • パイプの基本概念:コマンドの出力を別のコマンドの入力として使用
    • 基本的な構文:command1 | command2
    • 一般的な使用例:
      • ls | grep .txt
      • cat file.txt | sort | uniq
    • パイプラインの構築:複数のコマンドを連結
    • パイプの利点:効率的なデータ処理、メモリ使用の最適化

    xargsコマンドの活用

    • xargsの目的:標準入力からコマンドライン引数を生成
    • 基本的な構文:command1 | xargs command2
    • 主要なオプション:
      • -n: 一度に処理する引数の数を指定
      • -I: 置換文字列を使用
      • -P: 並列処理
    • 使用例:
      • find . -name "*.txt" | xargs grep "pattern"
      • echo "file1 file2 file3" | xargs rm
    • xargsとfindの組み合わせは以下のような特別な書き方がある
    • 安全な使用法:-print0-0オプションの使用12

    パイプとxargsの組み合わせ

    • 複雑なコマンドラインの構築
    • データ処理パイプラインの作成
    • 実践的な例:ログ分析、ファイル操作、テキスト処理

    これらのトピックを詳しく説明することで、ユーザーはコマンドラインでの作業をより効率的に行えるようになります。また、これらのツールの理解は、シェルスクリプトの作成やシステム管理タスクの自動化にも役立ちます。

    Citations:
    [1] Bashを使いこなすための必須コマンド71選
    [2] Bash Reference Manual
    [3] 【 find 】コマンド(応用編その4)――パーミッションを指定して探す
    [4] findコマンドとは?Linuxコマンドでファイルやディレクトリを検索する方法をご紹介
    [5] An A-Z Index of the Linux command line: bash + utilities.

    1. man 1 find ↩︎
    2. man 1 xargs ↩︎
  • コマンドラインツールを使用したテキスト編集方法

    コマンドラインでのテキスト編集:sed、awk、trの活用

    コマンドラインでのテキスト編集は、大量のデータ処理や自動化スクリプトの作成において非常に有用です。ここでは、主要なツールであるsed、awk、trの使用方法を解説します。

    1. sed (Stream Editor)

    sedは、テキストの置換、削除、挿入などの編集操作を行うためのストリームエディタです。

    基本的な置換

    # 'old'を'new'に置換(最初の出現のみ)
    sed 's/old/new/' file.txt
    
    # 全ての出現を置換
    sed 's/old/new/g' file.txt
    
    # 3行目のみを置換
    sed '3s/old/new/' file.txt
    
    # 元のファイルを直接編集(GNU sed)
    sed -i 's/old/new/g' file.txt

    行の削除

    # 空行を削除
    sed '/^$/d' file.txt
    
    # 特定のパターンを含む行を削除
    sed '/pattern/d' file.txt

    行の挿入

    Vimのインサートモードに移るコマンド1のように、iが行前に挿入で、aが行後に追加です2。但し、小文字です。

    # 2行目の後に新しい行を追加。バックスラッシュで改行
    sed '2a\New line' file.txt

    2. awk

    awkは、テキスト処理や報告書生成に特化したプログラミング言語です。

    フィールドの抽出

    # 2番目と3番目のフィールドを表示
    awk '{print $2, $3}' file.txt
    
    # カンマ区切りのCSVファイル(Comma-Separated Values)を処理
    awk -F',' '{print $1, $3}' file.csv

    条件付き処理

    # 3列目が100より大きい行を表示
    awk '$3 > 100' file.txt
    
    # 特定のパターンを含む行を処理
    awk '/pattern/ {print $0}' file.txt

    計算

    # 数値の合計を計算
    awk '{sum += $1} END {print sum}' file.txt

    3. tr (Translate)

    trは文字の置換や削除を行うシンプルなツールです。

    文字の置換

    # 小文字を大文字に変換
    echo "hello" | tr 'a-z' 'A-Z'
    
    # スペースをタブに変換
    cat file.txt | tr ' ' '\t'

    文字の削除

    # 数字を削除
    echo "abc123" | tr -d '0-9'
    
    # 改行を削除
    cat file.txt | tr -d '\n'

    文字の圧縮

    # 連続する重複文字を1つに圧縮
    echo "hello    world" | tr -s ' '

    実践的な使用例

    1. ログファイルから特定のエラーを抽出し、回数をカウント
    grep "Error" log.txt | awk '{print $4}' | sort | uniq -c
    1. CSVファイルの特定列を抽出し、新しいファイルに保存
    awk -F',' '{print $2 "," $4}' input.csv > output.csv
    1. テキストファイル内の特定の単語を置換し、バックアップを作成
    sed -i.bak 's/oldword/newword/g' file.txt

    これらのツールを組み合わせることで、複雑なテキスト処理タスクを効率的に実行できます。各ツールの詳細なオプションや機能については、manコマンド(例:man sed)で確認することをお勧めします。

    1. vim コマンド集 ↩︎
    2. sed aコマンド、 iコマンドの動作(指定文字列の挿入、追加) 【Linuxコマンド】 ↩︎
  • シェルコマンドでダウンロードする方法

    シェルコマンドを使用してファイルをダウンロードする方法について、主要なツールとサンプルコードを交えて説明します。

    1. wget

    wgetは最も一般的なダウンロードツールの1つです。

    # 基本的な使用法
    wget https://example.com/file.zip
    
    # 出力ファイル名を指定
    wget -O output.zip https://example.com/file.zip
    
    # バックグラウンドでダウンロード
    wget -b https://example.com/largefile.iso
    
    # 再開可能なダウンロード
    wget -c https://example.com/largefile.iso
    1. curl

    curlはURLを使用してデータを転送するためのツールです。

    # 基本的な使用法
    curl -O https://example.com/file.txt
    
    # 出力ファイル名を指定
    curl -o output.txt https://example.com/file.txt
    
    # 進行状況を表示
    curl -# -O https://example.com/file.zip
    
    # リダイレクトに従う
    curl -L -O https://example.com/redirected-file.zip
    1. aria2

    aria2は高速で多機能なダウンロードユーティリティです。

    # 基本的な使用法
    aria2c https://example.com/file.iso
    
    # 複数のURLから同時にダウンロード
    aria2c https://mirror1.com/file.iso https://mirror2.com/file.iso
    
    # トレントファイルからダウンロード
    aria2c file.torrent
    
    # 最大同時ダウンロード数を指定
    aria2c -x 5 https://example.com/file.zip
    1. yt-dlp (YouTube-DLのフォーク)

    yt-dlpは動画サイトからの動画ダウンロードに特化したツールです。

    # Pythonのパッケージ・マネージャでインストール
    pip install --upgrade yt-dlp
    
    # YouTubeビデオをダウンロード
    yt-dlp https://www.youtube.com/watch?v=dQw4w9WgXcQ
    
    # 最高品質の音声のみをダウンロード
    yt-dlp -f 'bestaudio' https://www.youtube.com/watch?v=dQw4w9WgXcQ
    
    # プレイリスト全体をダウンロード
    yt-dlp https://www.youtube.com/playlist?list=PLxxxxxxxxxxxxxxxx

    これらのツールは、それぞれ異なる特徴と使用シナリオがあります。wgetとcurlは一般的なファイルダウンロードに適しており、aria2は複数のソースからの同時ダウンロードに優れています。yt-dlpは動画コンテンツに特化しています。

    使用するツールは、ダウンロードするコンテンツの種類、必要な機能、システムの制約などに応じて選択してください。

  • シェルコマンドとシェルスクリプト

    デフォルトシェルの比較

    Debian/Ubuntu

    DebianとUbuntuのデフォルトのインタラクティブシェルはBashです12。ただし、非インタラクティブシェル(スクリプト実行用)のデフォルトはDashです。これは、/bin/shがDashへのシンボリックリンクになっているためです。

    MacOS

    MacOSはバージョン10.15 (Catalina) 以降、デフォルトシェルをBashからZshに変更しました。これは主にライセンスの問題によるものです。

    シェルコマンドの引数

    1. 引数の順序:多くのコマンドで順序は重要です。一般的に、オプションが先で、操作対象のファイルやディレクトリが後に来ます。
    2. オプション付き引数:
      • 短いオプション: -f value
      • 長いオプション: --file=value または --file value

    引数の渡し方とエラー処理

    #!/bin/bash
    
    # 引数のチェック
    if [ $# -lt 2 ]; then
        echo "Usage: $0 <arg1> <arg2>"
        exit 1
    fi
    
    # 引数の使用
    arg1="$1"
    arg2="$2"
    
    # エラー処理
    if ! command -v somecommand &> /dev/null; then
        echo "Error: somecommand is not installed"
        exit 1
    fi
    
    # コマンド実行とエラーチェック
    if ! somecommand "$arg1" "$arg2"; then
        echo "Error: somecommand failed"
        exit 1
    fi

    最近の傾向

    1. [[]] の使用: if [[ $var == "value" ]]
    2. $(command) の使用: result=$(ls -l)
    3. ヒアドキュメントの活用:
       cat <<EOF > file.txt
       content
       EOF

    シェルスクリプトの書き方と実行

    1. スクリプトの作成:
       #!/bin/bash
       echo "Hello, World!"
    1. 実行権限の付与:
       chmod +x script.sh
    1. 実行:
       ./script.sh

    パーミッションの解説

    3桁表記

    • 例: 755
    • 各桁: ユーザー、グループ、その他
    • 値: 4(読み取り) + 2(書き込み) + 1(実行)

    4桁表記

    • 例: 0755
    • 最初の桁: 特殊な権限(setuid, setgid, sticky bit)
    • 残りの3桁: 3桁表記と同じ

    パーミッション変更コマンド

    chmod 755 file.sh  # 数字による指定
    chmod u+x file.sh  # シンボルによる指定

    このように、シェルスクリプトの基本から高度な使用法まで幅広くカバーしています。パーミッションの理解は特に重要で、セキュリティと適切なファイル管理に不可欠です。

    パーミッションの2進数表現

    パーミッションは実際には3ビットの2進数で表現され、それを10進数に変換しています。

    • 読み取り (r) = 4 (100 in binary)
    • 書き込み (w) = 2 (010 in binary)
    • 実行 (x) = 1 (001 in binary)

    これらを組み合わせることで、0から7までの数字で表現できます:

    • 0 = — (000 in binary)
    • 1 = –x (001 in binary)
    • 2 = -w- (010 in binary)
    • 3 = -wx (011 in binary)
    • 4 = r– (100 in binary)
    • 5 = r-x (101 in binary)
    • 6 = rw- (110 in binary)
    • 7 = rwx (111 in binary)

    例えば、パーミッション755は以下を意味します:

    • ユーザー: rwx (111 in binary = 7)
    • グループ: r-x (101 in binary = 5)
    • その他: r-x (101 in binary = 5)

    特殊なパーミッション:setuid、setgid、sticky bit

    これらの特殊なビットは、通常のパーミッションの前に4桁目として表現されます。

    1. setuid (4):
    • ファイルに対して設定すると、そのファイルは所有者の権限で実行されます。
    • 例:chmod 4755 file
    1. setgid (2):
    • ファイルに設定すると、グループの権限で実行されます。
    • ディレクトリに設定すると、その中に作成されるファイルは親ディレクトリのグループを継承します。
    • 例:chmod 2755 directory
    1. sticky bit (1):
    • ディレクトリに設定すると、その中のファイルは所有者かroot以外が削除できなくなります。
    • 例:chmod 1755 directory

    これらを組み合わせることも可能です。例えば、chmod 7755 fileは、setuid、setgid、sticky bitすべてを設定します。

    これらの特殊なビットは、セキュリティと共同作業の管理に重要な役割を果たします。setuidとsetgidは特定のプログラムに一時的に高い権限を与えるのに使用され、sticky bitは共有ディレクトリでのファイル削除を制御するのに使用されます34567

    testコマンドと[]の関係

    1. testコマンド
      testは条件を評価するためのUNIXコマンドです。
    2. []の使用
      []testコマンドの組み込みバージョンで、より読みやすい構文を提供します。

    例えば、以下の2つの表現は同等です:

    if test -f file.txt; then
        echo "file.txt exists"
    fi
    
    if [ -f file.txt ]; then
        echo "file.txt exists"
    fi

    test[]の特徴

    • 両者は機能的に同じです。
    • []の方が視覚的に分かりやすいため、シェルスクリプトでよく使用されます。
    • []を使用する場合、開き括弧と閉じ括弧の両方にスペースが必要です。

    [[]]との違い

    先ほど触れた[[]]は、[]のさらに拡張された形式です。

    • [[]]はBashの拡張機能で、POSIXには準拠していません。
    • [[]]はより柔軟な構文を提供し、文字列比較やパターンマッチングが容易です。

    例:

    # []を使用
    if [ "$a" = "$b" ]; then
        echo "Strings are equal"
    fi
    
    # [[]]を使用
    if [[ $a == $b ]]; then
        echo "Strings are equal"
    fi

    [[]]では、変数の引用符が不要で、==演算子が使用可能です。

    まとめ

    • test[]は基本的に同じ機能を持ちます。
    • []testの別の構文で、より読みやすいです。
    • [[]]はさらに拡張された形式で、Bashなどの特定のシェルでのみ使用可能です。

    シェルスクリプトを書く際は、使用するシェルの種類や、スクリプトの移植性を考慮して、適切な形式を選択することが重要です。POSIXに準拠したスクリプトを書く場合はtest[]を使用し、Bashの機能を最大限に活用したい場合は[[]]を使用するのが一般的です。

    1. Shell ↩︎
    2. How to change your default shell in debian ubuntu ↩︎
    3. How Do I Set Up Setuid, Setgid, and Sticky Bits on Linux? ↩︎
    4. Linux File Permissions: Understanding setuid, setgid, and the Sticky Bit ↩︎
    5. Linuxの権限について解説。setuidとかsetgidとかスティッキービットとか ↩︎
    6. SetUID, SetGID, and Sticky Bits in Linux File Permissions ↩︎
    7. How to use special permissions: the setuid, setgid and sticky bits ↩︎
  • findコマンド

    findコマンドの基本と活用法

    findコマンドは、ファイルシステム内でファイルやディレクトリを検索するための強力なツールです。様々な条件に基づいて検索を行い、結果に対して操作を実行することができます。

    基本構文

    find [パス] [オプション] [条件] [アクション]

    主な使用例

    1. 名前で検索
       find /home -name "*.txt"

    /homeディレクトリ以下の.txtファイルを検索します。

    1. タイプで検索
       find /var -type d

    /varディレクトリ以下のディレクトリを検索します。

    1. サイズで検索
       find / -size +100M

    ルートディレクトリ以下の100MB以上のファイルを検索します。

    1. 最終更新日時で検索
       find /home -mtime -7

    /homeディレクトリ以下の7日以内に更新されたファイルを検索します。

    1. パーミッションで検索
       find /etc -perm 644

    /etcディレクトリ以下のパーミッションが644のファイルを検索します。

    1. 所有者で検索
       find /home -user john

    /homeディレクトリ以下のjohnが所有するファイルを検索します。

    1. 複数条件の組み合わせ
       find /home -name "*.log" -size +10M -and -mtime +30

    /homeディレクトリ以下の、.logファイルで、10MB以上、かつ30日以上前に更新されたファイルを検索します。

    1. 検索結果に対するアクション
       find /tmp -name "*.tmp" -delete

    /tmpディレクトリ以下の.tmpファイルを検索して削除します。

    1. 検索結果に対してコマンドを実行
       find /home -name "*.jpg" -exec chmod 644 {} \;

    /homeディレクトリ以下の.jpgファイルを検索し、パーミッションを644に変更します。

    以下のようにすると処理が速いという情報もあります1

       find /home -name "*.jpg" -exec chmod 644 {} +
    1. 深さを指定して検索
       find /home -maxdepth 2 -name "*.conf"

    /homeディレクトリから2階層までの深さで.confファイルを検索します。

    注意点

    • 大規模なファイルシステムでの検索は時間がかかる場合があります。
    • rootユーザーでない場合、アクセス権限のないディレクトリやファイルは検索結果に含まれません。
    • -delete-execオプションを使用する際は、意図しないファイルを操作しないよう注意が必要です。
    • find|xargsで使用する場合は特別な書き方があります。manページを参照して下さい。23

    findコマンドは非常に柔軟で強力なツールです。これらの基本的な使用法を理解し、必要に応じてマニュアル(man find)を参照することで、効率的なファイル管理や検索が可能になります。

    1. POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! ↩︎
    2. man 1 find ↩︎
    3. findコマンドの使い方を簡単に理解するための7つのルール+実践的な知識 ↩︎
  • grepの活用

    grepコマンドの種類と使用法

    grepは “global regular expression print” の略で、ファイル内のテキストパターンを検索するための強力なコマンドラインツールです。主に以下の種類があります:

    1. 標準grep
    2. egrep (extended grep)
    3. fgrep (fast grep)

    1. 標準grep

    基本的な正規表現を使用して検索を行います。

    基本構文:

    grep [オプション] パターン [ファイル...]

    主なオプション:

    • -i: 大文字小文字を区別しない
    • -v: マッチしない行を表示
    • -n: 行番号を表示
    • -r: ディレクトリを再帰的に検索

    使用例:

    grep "error" log.txt
    grep -i "warning" *.log

    2. egrep (extended grep)

    拡張正規表現を使用できます。grep -E と同等です。

    使用例:

    egrep "pattern1|pattern2" file.txt
    grep -E "pattern1|pattern2" file.txt

    3. fgrep (fast grep)

    固定文字列のパターンを高速に検索します。正規表現は使用できません。grep -F と同等です。

    使用例:

    fgrep "exact string" file.txt
    grep -F "exact string" file.txt

    高度な使用法

    1. 複数のパターンを検索:
       grep -e "pattern1" -e "pattern2" file.txt
    1. 検索結果の前後の行を表示:
       grep -A 2 -B 2 "pattern" file.txt
    1. ファイル名のみを表示:
       grep -l "pattern" *.txt
    1. マッチした回数を表示:
       grep -c "pattern" file.txt
    1. 正規表現を使用:
       grep "^start" file.txt  # "start"で始まる行
       grep "end$" file.txt    # "end"で終わる行
    1. ディレクトリ内を再帰的に検索:
       grep -r "pattern" /path/to/directory

    grepは非常に柔軟で強力なツールであり、テキスト処理やログ分析などの様々なタスクで活用できます。正規表現の知識を深めることで、より効果的に使用することができます。

  • プロセス管理

    pgrepとは

    プロセス名やその他の属性に基づいてプロセスを検索するコマンドラインツールです。

    pgrep -u root sshd # rootユーザーが実行しているsshdプロセスを検索

    pkillとは

    pkill -u username  # 特定ユーザーの全プロセスを終了
    pkill firefox      # プロセス名がパターンに一致する場合にSIGTERM

    psとは

    現在実行中のプロセスに関する情報を表示するコマンドラインツールです。

    ps aux  # 全ユーザーの全プロセスを詳細表示

    killとは

    プロセスIDを指定してプロセスにシグナルを送信するコマンドラインツールです。

    kill -9 1234  # プロセスID 1234のプロセスを強制終了

    主要なオプションには以下があります:

    • -9 (SIGKILL): プロセスを強制終了します。プロセスは即座に終了し、クリーンアップ処理を行う機会がありません。
    • -15 (SIGTERM): デフォルトのシグナルで、プロセスに正常終了を要求します。
    • -1 (SIGHUP): プロセスに設定の再読み込みを要求します。

    例:kill -9 1234 はプロセスID 1234のプロセスを強制終了します。

    fg, bg, jobsの使い方

    これらのコマンドはジョブ制御に使用されます。

    これらのコマンドを使用することで、複数のジョブを効率的に管理し、シェル上での作業を柔軟に行うことができます。

    jobs

    jobsコマンドは、現在のシェルセッションでバックグラウンドで実行されているジョブのリストを表示します。

    $ jobs
    [1]  + running    sleep 100 &
    [2]  - running    nano file.txt

    fg

    fgコマンドは、バックグラウンドジョブをフォアグラウンドに移動します。

    $ fg %1  # ジョブ番号1をフォアグラウンドに移動

    bg

    bgコマンドは、一時停止されたジョブをバックグラウンドで再開します。

    $ sleep 100
    ^Z
    [1]  + 18653 suspended  sleep 100
    $ bg
    [1]  + 18653 continued  sleep 100

    キー操作

    ジョブをバックグラウンドで実行する方法には、主に2つあります:

    1. コマンド実行時にバックグラウンドで起動する
    2. 実行中のジョブをバックグラウンドに移動する
    コマンド実行時にバックグラウンドで起動する

    コマンドの末尾に `&` を付けることで、そのコマンドをバックグラウンドで実行できます。

    $ sleep 100 &
    [1] 12345

    この場合、sleep 100 コマンドがバックグラウンドで実行され、ジョブ番号と プロセスID が表示されます。

    実行中のジョブをバックグラウンドに移動する

    実行中のジョブをバックグラウンドに移動するには、以下の手順を踏みます:

    1. 実行中のジョブを一時停止する:Ctrl + Z キーを押します。
    2. 一時停止したジョブをバックグラウンドで再開する:bg コマンドを使用します。
    $ sleep 100
    ^Z
    [1]  + 12345 suspended  sleep 100
    $ bg
    [1]  + 12345 continued  sleep 100

    この操作により、フォアグラウンドで実行していたジョブをバックグラウンドに移動できます。

    ^ZとあるのはCtrl + Z キーのことです。

    その他のキー操作
    • Ctrl + C: フォアグラウンドで実行中のジョブを終了します。
    • Ctrl + D: 標準入力の終了(EOF)を送信します。多くのプログラムはこれにより終了します。

    これらのキー操作と jobsfgbg コマンドを組み合わせることで、効率的にジョブを管理できます。バックグラウンドジョブの使用により、複数のタスクを同時に実行しながら、シェルの対話的な使用を継続できます。

  • texinfoとman pageの概要

    Texinfoとは

    Texinfoは、単一のソースファイルから複数の形式(オンラインドキュメントや印刷用出力)を生成できるドキュメンテーションシステムです。主にソフトウェアのドキュメント作成に使用されます。

    man pageとは

    man page(マニュアルページ)は、Unixライクなオペレーティングシステムで使用される、コマンドラインツールやシステム関数のリファレンスマニュアルです。

    Texinfoの使い方

    1. Texinfoソースファイルの作成
    2. makeinfoコマンドでHTML、Info、またはPDF形式に変換
    3. 生成されたドキュメントの配布や公開

    texinfoはGNUプロジェクトの公式ドキュメンテーションシステムであり、Emacsと深い関わりがあります。Emacsは texinfoファイルを編集・閲覧するための機能を内蔵しており、Info modeを使用してtexinfo形式のドキュメントを直接閲覧できます。また、Emacsのドキュメントもtexinfoで書かれています。

    使い方は以下のコマンドで表示できます:

    man texinfo

    man pageの使い方

    1. manコマンドの基本構文:man [セクション] コマンド名
    2. よく使用されるセクション(1: ユーザーコマンド、5: ファイルフォーマット)
    3. man pageの構造(NAME、SYNOPSIS、DESCRIPTION等)

    日本語のパッケージは以下のコマンドでインストールします1

    sudo apt install manpages-ja manpages-ja-dev

    man pageは通常、8つのセクションに分かれています2が、そうでない場合もあります。man manで表示できます。次のコマンドでも概要を読めます。

    man 1 intro
    man 2 intro
    man 3 intro
    man 4 intro
    man 5 intro
    man 6 intro
    man 7 intro
    man 8 intro

    特定のセクションのman pageを参照するには、man [セクション番号] [コマンド名]の形式で指定します。

    1. manで基本的なコマンドの日本語表示がされない原因は? ↩︎
    2. manの読み方(初心者向け) ↩︎
  • DebianとUbuntuのサーバ管理コマンド

    Debian リファレンスにサーバ管理の基本情報が記されています。

    以下に説明するシェルコマンドはGNOME 端末(GNOME Terminal)等の端末エミュレータ、或いはコンソールで実行します。

    Tabキーで入力補完出来ます。複数のコマンドを区切るのはセミコロンです。

    DebianとUbuntuは同じDebian系ディストリビューションであるため、多くのコマンドが共通しています。以下に主要なコマンドを説明します。

    root権限

    Debianではrootユーザとパスワードが設定されますので、管理者権限の必要なコマンドはrootアカウントに切り替えて実行します:

    su -l

    Ubuntuではroot権限にはsudoを使用します。sudoに続けてコマンドを入力し、enterを押します。続けてアカウントのパスワードを入力します。sudo実行権限を付与されているアカウントでログインしていることが前提です。カレントディレクトリを移動せずに何度もコマンドを実行したい場合は以下のようにします:

    sudo -H -s

    OSの停止と再起動

    システムの停止

    以下の何れかのコマンドを実行します1

    sudo shutdown -h now
    sudo poweroff

    システムの再起動

    以下の何れかのコマンドを実行します:

    sudo shutdown -r now
    sudo reboot

    サービスの管理

    DebianとUbuntuの新しいバージョンでは、systemdを使用してサービスを管理します。「メモリー中の全 サービス unit のリスト」を得るには次のようにします:

    systemctl list-units --type=service

    サービスの起動:

    sudo systemctl start <service-name>

    サービスの停止:

    sudo systemctl stop <service-name>

    サービスの再起動:

    sudo systemctl restart <service-name>

    サービスの状態確認:

    sudo systemctl status <service-name>

    古いバージョンのDebian/Ubuntuでは、serviceコマンドも使用できます:

    sudo service <service-name> start/stop

    その他の有用なコマンド

    システム情報の表示:

    uname -a

    ディスク使用量の確認:

    df -h

    メモリ使用量の確認:

    free -h

    プロセス一覧の表示:

    top

    または(要インストール):

    htop

    これらのコマンドを使用することで、DebianやUbuntuのサーバを効率的に管理することができます。サーバーの運用には適切な権限と注意が必要です。重要な操作を行う前には、必ずバックアップを取ることをお勧めします。

    1. reboot コマンド/poweroff コマンドの仕組み ↩︎