最終更新日: 2026-08-29
TOP(About this memo)) > 一覧(Linux) > シェル・基本コマンド
man <コマンド> … マニュアルを表示
man archhistory … コマンド履歴alias … 設定されているエイリアスを確認which <コマンド> … コマンドの実体のパスを確認echo
-e エスケープシーケンスを解釈する-E エスケープシーケンスを解釈しない-E(解釈しない)がデフォルトだが、zshのビルトインは解釈する側がデフォルトになっている。
echo -e "あ\nい\nう"$(コマンド) もしくは `コマンド`$( ) の方が推奨される。sort
-n 文字列を数値と見なして並べ替える / -r 逆順で並べ替えるdu -sh ./* | sort -nrenvset -a; source .env; set +a;
set -a で、以降の変数定義を export 扱い(環境変数として定義)にできる。env で表示すると想定どおり上書きされていないことがあった。シェルの起動プロセスが分かれている場合(Dockerのentrypoint経由など)、set -a を実行したシェルとは別のプロセスでコマンドが動いていることが原因になりやすい。env LANG=C dateenv は省略できる
LANG=C date$$ … 自分自身のPID
echo $$echo $SHELL#!/bin/bash -login のように書くことで、ログインシェルとしての初期化(~/.bash_profile の読み込み)を意図的に行わせることができる。- または --login が付加された際に起動するシェル。ssh user@host、su - [user]、bash --login、macOS Terminal.appの新規ウィンドウ/タブ、tmuxの新規ウィンドウなどで起動する。~/.bash_profile を実行する。
~/.bash_profile の中に ~/.bashrc を実行する記述がある。ログインシェルでは .bashrc が自動実行されるわけではないため。-c を付加されずに起動され、標準入出力が(仮想)端末に接続されているシェル。インタラクティブシェルの全てがログインシェルであるとは限らない。su [user]bash~/.bashrc を実行する。
~/.bashrc の中からシステム標準のbashrc(例: /etc/bashrc。ディストリビューションにより異なる)も実行するよう記述されている。su user -c /path/to/command、bash -c /path/to/command などで起動するシェル。コマンド1 ; コマンド2
コマンド1 | コマンド2
コマンド1 || コマンド2
コマンド1 && コマンド2
コマンド1 & コマンド2
sh /home/user/batch.sh >> /var/log/batch.log & vi /home/user/memo.txt
コマンドA | xargs コマンドB
-- の意味npm run dev -- --watch
npm run コマンド自身へのオプション指定なのか、npm run 以降に指定したnpm-scriptsへのオプション指定なのか区別が付かないため、ダブル・ダッシュで境界を明示する。rm -- -some.txt
Ctrl-A 行頭へCtrl-E 行末へCtrl-U カーソル位置から行頭まで削除Ctrl-K カーソル位置から行末まで削除Ctrl-W カーソル位置の直前の単語を削除
mv コマンドで引数の順序を間違えたときなど、単語単位で消せると速い。Ctrl-H カーソルの左の1文字を削除Ctrl-Y 直前に削除した文字列を貼り付けCtrl-R コマンド履歴の検索Ctrl-D 入力途中に押すとカーソル位置の文字を削除。何も入力していない状態で押すと入力の終了(EOF)Ctrl-C 実行中のコマンドを中断sh など)では、矢印キーがそのままコントロールコードとして表示されてしまう。/bin/bash や /bin/zsh など、行編集機能(readline等)を持つシェルを使えば解決する。somecommand --optionA=xxxx \
--optionB=yyyy \
--optionC=zzzz \
--optionD=wwww