Open6

【CLI Tips】LinuxコマンドTips📝

まさぴょん🐱まさぴょん🐱

topコマンド:CPU使用率/プロセスなどを調べるコマンド

https://qiita.com/k0kubun/items/7368c323d90f24a00c2f

topコマンドは、Unix系システム(Linux、macOSなど)で使用されるコマンドラインツールで、システムのプロセスやリソース使用状況をリアルタイムで監視します。実行中のプロセスのリストを表示し、CPU使用率、メモリ使用量、実行時間、ユーザー、プロセスID(PID)などの情報を提供します。

主な特徴

  • リアルタイム更新: デフォルトで数秒ごとに画面が更新され、最新のシステム状態を確認可能。
  • 対話型インターフェース: キーボードショートカット(例: qで終了、kでプロセス終了)で操作可能。
  • リソース監視: CPU、メモリ、スワップ使用量、タスクの状態(実行中、スリープ中など)を表示。
  • カスタマイズ可能: 表示項目やソート順を変更可能(例: fでフィールド管理)。

基本的な使い方

top
  • 実行後、端末に表形式でプロセス情報が表示される。
  • 終了するにはqを押す。

主な表示項目

  • PID: プロセスのID。
  • USER: プロセスを実行しているユーザー。
  • %CPU: CPU使用率。
  • %MEM: メモリ使用率。
  • TIME+: プロセスが開始してからの累積実行時間。
  • COMMAND: 実行中のコマンド名。

よく使うオプション

  • -u <ユーザー名>: 特定ユーザーのプロセスのみを表示。
  • -p <PID>: 特定のプロセスIDを監視。
  • -n <回数>: 指定した回数だけ更新して終了。

例:

top -u myuser  # myuserのプロセスのみを表示

類似ツール

  • htop: より視覚的で使いやすい代替ツール。
  • ps: 静的なプロセス情報を表示。
  • glances: システム全体のリソース監視。

システム管理やパフォーマンス監視で非常に役立つツールです。詳細はman topで確認できます。

まさぴょん🐱まさぴょん🐱

ファイル/ディレクトリ操作系

ファイル削除

rm ファイル名

ディレクトリを強制削除する📝

rm -rf ディレクトリ名

ファイルのCopy

  • 単一のファイルをコピーする場合
cp  /Users/userName/.ssh/id_rsa.pub /Users/userName/Desktop
  • ディレクトリ内のファイルをすべてコピーする場合
cp -r /Users/userName/.ssh/* /Users/userName/Desktop
まさぴょん🐱まさぴょん🐱

whichコマンドで installしたライブラリの場所を探す📝

which node

# 結果
/usr/local/bin/node
まさぴょん🐱まさぴょん🐱

source コマンド📝

source コマンドとは?

sourcePOSIX シェル系(bash, zsh など)に備わる組み込みコマンド で、
指定したファイルの中身を「現在のシェルプロセス」上で順番に実行します。
その結果、ファイル内で定義・変更された 環境変数・シェル変数・関数・エイリアスなどが、そのまま呼び出し元のシェルに残る のが最大の特徴です。

基本構文

source ファイル名   # bash / zsh
. ファイル名        # POSIX 互換(ドットコマンド)
  • source.(ドット)は同義ですが、POSIX 標準に含まれるのはドットの方です。
    したがって sh や dash など最小限のシェル環境では . を使う必要があります。

何が嬉しいのか?(主な用途)

典型シーン 具体例
設定の再読み込み . ~/.bashrc – 端末を開き直さずに .bashrc の変更を即反映
環境変数のまとめ読み込み source ./env/dev.env – プロジェクトごとに複数の変数を一括でセット
シェル関数/エイリアスのライブラリ化 . scripts/git-aliases.sh – よく使う関数群を共有
仮想環境・SDK の切り替え source venv/bin/activatesource ~/.nvm/nvm.sh
プロセス置換と組み合わせるワンライナー source <(kubectl completion bash) – 補完スクリプトをその場で読込

「実行」じゃダメなの?

  • ./script.shsh script.sh子プロセスを起動します。
    その子プロセス内で変えた変数は 親シェルには伝わりません
  • 「設定を現在のシェルに反映させたい」場合は source が必須です。
$ cat setenv.sh
export FOO=bar

$ sh setenv.sh      # 子プロセスで実行
$ echo $FOO         # 何も出力されない

$ source setenv.sh  # 現在のシェルで実行
$ echo $FOO
bar

小技・注意点

  1. 戻り値

    • source したスクリプトが exit 1 などで終了すると、source 自体もその終了ステータスを返します。
      例えば if source config.sh; then ... fi のように条件分岐に利用可能。
  2. 安全対策

    • 誰かの書いたスクリプトを安易に source すると、現在のシェルが汚染・破壊されるリスクがあります。
      パスや権限に注意し、内容を確認してから読み込みましょう。
  3. zsh の補足

    • zsh では source. に加えて autoload(関数の遅延読み込み)など独自機能もあります。
  4. fish シェル

    • fish には独自構文が多く、source の動きもやや異なります(. filename は使えません)。

まとめ

  • source / . = 「ファイルを読み取って現在のシェルで一行ずつ実行」コマンド
  • 設定や環境を即反映したいときの定番手段
  • 子プロセスを作らないので、変数・関数が呼び出し元に残る
  • POSIX ポータビリティを意識するなら ドット記法 (. ファイル名) を覚えておくと安心

これさえ押さえれば、.bashrc 再読み込みも仮想環境の有効化もスムーズに行えます。