タグ: server

  • プロセス管理

    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 コマンドの仕組み ↩︎