UNIX(ディレクトリ基本操作ディスクとマウントファイル操作テキスト処理コマンド履歴・再実行プロセス・ジョブプリントアウトセキュリティ使用容量リンクエイリアスコマンドを調べる解凍・圧縮ネットワークシステム管理シェル変数・環境変数その他)、 EmacsLatexプログラミング関連その他

UNIX/LINUXコマンド

★ディレクトリ基本操作
pwd 現在ディレクトリのフルパス表示
cd ホームディレクトリへ移動
 (dir) 指定ディレクトリへ移動
mkdir (dir) 新規ディレクトリを作成
mkdir -p (dir) 新規ディレクトリを再帰的に作成
rmdir (dir) 空のディレクトリを削除
rm -r (dir) 指定ディレクトリを中のファイルごと削除
cp -r (dirA) (dirB) ディレクトリAをディレクトリBにコピー
mv (file) (dir) ファイルをディレクトリへ移動
ls 現在ディレクトリのファイル一覧表示
 (dir) 指定ディレクトリのファイル一覧表示
 -d (dir) 指定ディレクトリ自身の情報を表示
 -a 隠しファイルも含む全てのファイル表示
 -l 詳細情報を表示
 -F ファイルの種類を示すマークを付けて表示
 -R ディレクトリ下層までたどって表示
 -1 1行に1つの結果を表示
cd - 直前のディレクトリへ移動(1つまでしか戻れない)
pushd (dir) 現在ディレクトリをディレクトリスタックに積み、ディレクトリ移動
popd ディレクトリスタック先頭のディレクトリへ移動して、スタックから降ろす

★ディスクとマウント
fdisk -l パーティションテーブルの表示(デバイスとディレクトリの対応確認)
mount (dev) (dir) 指定されたデバイスのファイルシステムをdirにマウント
umount (dir) 指定されたディレクトリ以下のファイルシステムをアンマウント
mountpoint (dir) 指定ディレクトリがマウントポイントかどうかを返す(戻り値:マウントポイントなら0、そうでなければ非零)
findmnt すべてのマウントポイントとデバイス、ファイルシステムの対応を確認

★ファイル操作
cat (file) ファイルの内容表示
 -n 行番号を付加して表示
cat (fileA) (fileB) > (file) ファイルを結合
rm (file) ファイルを削除
 -i ファイル削除の確認をする
cp (fileA) (fileB) ファイルAをファイルBにコピー
 -i ファイル上書きの確認をする
 -p 最終変更日時や所有者などの属性を変えずにコピー
mv (fileA) (fileB) ファイルAの名前をファイルBに変更
 -i ファイル上書きの確認をする
touch (file) 空のファイルを作成
touch (既存file) ファイル更新日時を変更
file (file) ファイルの種類を調べる

★ファイル検索
find (dir) 指定ディレクトリ以下のファイルを列挙
 -name (文字列) 指定した文字列に一致するファイル・ディレクトリを検索
  (※「文字列」にはワイルドカード文字を使用できる。その時は文字列を""で囲む。)
  (例:find / -name "*.txt" で、拡張子.txtのファイルをルート以下から再帰的に検索。)
 -user (user) 指定ユーザ名が所有者のファイル・ディレクトリを検索
 -size (サイズ) 指定サイズのファイル・ディレクトリを検索
  (※サイズは「+5k(5キロバイト以上)」「-512c(512バイト以下)」などと指定。)
 -type (種類) 指定した種類のファイル・ディレクトリを検索
  (※f:ファイル d:ディレクトリ)
 -amin (分) 最終アクセスが指定分に該当するファイル・ディレクトリを検索
 -exec (cmd) \; findで見付かった対象それぞれに対してコマンドを実行(対象を {} で参照)
locate (文字列) 指定文字列を名前に含むファイル・ディレクトリを列挙

★テキスト処理
more (file) ファイルの内容表示(ページごとに止まる)
less (file) ファイルの内容表示(スクロール操作できる)
lv (file) ファイルの内容表示(ページごとに止まる+α)
head (file) ファイルの先頭10行を表示
 -(行数) ファイルの先頭指定行数を表示
tail (file) ファイルの末尾10行を表示
 -(行数) ファイルの末尾指定行数を表示
 +(行数) ファイルの末尾指定行以降を表示
grep (検索文字列) (file) 指定文字列を含む行だけを表示
※コマンドの出力を「|」で渡して使うことが多い
 -c 指定文字列を含む行数を表示
 -v 指定文字列を含まない行を表示
 -A (数) 指定文字列を含む行の後ろの行(指定した分)も表示
 -B (数) 指定文字列を含む行の前の行(指定した分)も表示
 ※grepの正規表現
 ^ 行頭
 $ 行末
 . 任意の1文字
 .* 任意の文字列(0文字以上)
 [0-9] 文字範囲
 [^0-9] 文字範囲否定
grep (検索文字列) -r (dir) 指定ディレクトリ以下を再帰的に検索し、指定文字列を含むファイルの名前と行の内容を表示(ファイル内全文検索)
grep (検索文字列) -rl (dir) 指定ディレクトリ以下を再帰的に検索し、指定文字列を含むファイル一覧を表示(ファイル内全文検索)
sed -e s/(pattern)/(replacement)/g (file) 文字列置換
sed -n '1 p' (file) 指定ファイルの1行目だけを抽出
sed -n '1 !p' (file) 指定ファイルの1行目以外を抽出
wc (file) ファイルの行数、単語数、文字数を表示
diff (fileA) (fileB) fileAとfileBの差分(変更点)を表示
cut (file) 各行から文字を切り出して表示
 -d (文字) 区切り文字(半角のみ)を指定
 -f (数字) 何番目のデータを表示するかを指定(先頭は1番目。「,」「-」で複数指定可)
echo (文字列) | cut -d " " -f (n) 文字列を空白で区切った結果のnフィールド目を出力
m-n, m-, -nのような指定も可。先頭は1
echo (文字列) | cut -c (n) n文字目のみを切り出す
m-n, m-, -nのような指定も可。先頭は1
echo (文字列) | rev 文字列を逆転
uniq (file) 連続している重複行を削除して表示
sort (file) 行単位で並べ替えを行う(アルファベット順)
 -t (文字) 区切り文字を指定(各行が特定の文字で区切られた同じ構造になっている場合に使用)
 +(N1) -(N2) N1〜N2-1番目のデータを比較対象にする(先頭データは0番目)
 -n 数値として比較
 -b 先行ブランク無視
nkf --guess (file) 文字コードを調べる
nkf -e (file) 文字コードをEUCに変換して標準出力に出力
 -j JISに変換
 -s Shift_JISに変換
 -w UTF-8 (BOM無し) に変換
 -Lu 改行コードをLF(UNIX形式)に変換
 -Lw 改行コードをCRLF(Windows形式)に変換
 -Lm 改行コードをCR(Mac形式)に変換
 --overwrite 入力ファイルに上書きして出力
find . -type f -print0 | xargs --null nkf (options) 現在のディレクトリ以下の各ファイルに対してnkf(ファイル名に日本語等を含む場合)
find . -type f | xargs nkf (options) 現在のディレクトリ以下の各ファイルに対してnkf(ファイル名に日本語等を含まない場合)
dos2unix -o (file) 改行コード変換
unix2dos -o (file) 改行コード変換

★コマンド履歴、再実行
history コマンド実行履歴を表示
history -d (履歴リスト中のコマンド番号) コマンド実行履歴から指定したものを削除(.bash_historyからも削除)
!(履歴リスト中のコマンド番号) そのコマンドを再実行
!(文字列) その文字列で始まるコマンドを再実行
!! 直前コマンドを再実行

★プロセス・ジョブ操作と強制終了
ps プロセス一覧表示
jobs ジョブ一覧表示
bg 現在ジョブ(current job)のバックグラウンド実行
fg 現在ジョブ(current job)のフォアグラウンド実行
kill
 (プロセスID) そのプロセスを強制終了
 -9 (プロセスID) 何が何でも強制終了
 -s (signal) (プロセスID) 指定したシグナルの送信
 -s SIGSTOP (プロセスID) プロセスの一時停止
 -s SIGCONT (プロセスID) プロセスの再開
 ※プロセスIDの代わりに「%(ジョブ番号)」でもよい

★プリントアウト
lp
 (file) 印刷
 -d プリンタ番号を指定
lpstat 印刷待ち状態の表示
cancel -u (userID) 自分の印刷要求を全てキャンセル

★セキュリティ
yppasswd パスワード変更
chmod (モード) (対象) アクセス権の変更
xlock 操作防止のためのロックをかける
last ログイン履歴の表示

★使用容量
du 子ディレクトリのディスク使用量表示
 -hs 現在ディレクトリ以下のディスク使用量の合計表示
df ディスクの空き容量表示
 -h 読みやすい単位で表示(human-readable)

★リンク
ln -s (file_path) (link_name) シンボリックリンク(ショートカット)の作成
※file_pathは絶対パスまたは作成するシンボリックリンクからの相対パス

★エイリアス
alias (new_command)='(command)' エイリアス(コマンドの別名)の作成
(※いつも使うものは~/.bashrcに記述しましょう)
alias エイリアス一覧を表示
unalias (command) エイリアスの削除

★コマンドを調べる
man (cmd) そのコマンドのマニュアルを表示
man -k (キーワード) キーワード検索
man (セクション) (cmd) そのコマンドのマニュアル(該当セクション)を表示
which (cmd) そのコマンドの実行ファイルがどこにあるか表示

★解凍、圧縮
tar -xvf (file.tar) .tarの解凍
gunzip (file.gz) .gzの解凍
tar -xvzf (file.tar.gz) .tar.gzの解凍
tar -cvzf (file.tar.gz) (file_path) .tar.gzの作成
tar -tvf (file.tar) .tarファイルの中身を表示
p7zip (file) 7z形式で圧縮し、file.7zを生成(圧縮前のファイルは削除)
p7zip -k (file) 7z形式で圧縮し、file.7zを生成

★ネットワーク
※root権限が必要なものがある
ip a 各インタフェースのアドレス表示(ip address show)
ip a add (ip_addr)/(mask) dev (intf) インタフェースのIP設定追加
ip a del (ip_addr)/(mask) dev (intf) インタフェースのIP設定削除
ip route 経路情報の表示
ip neigh 近傍のMACアドレス表示
ip link set (intf) promisc on プロミスキャスモードをオン
ip link set (intf) promisc off プロミスキャスモードをオフ
telnet (host) hostにリモート接続
telnet (host) (port) hostにリモート接続(ポート番号指定)
ssh (host) hostにリモート接続(セキュア)
scp (file) (user@host:dir) リモートへファイル転送
scp (user@host:file) (dir) ローカルへファイル転送
sftp (user@host) hostとの間のファイル転送
 (利用可能コマンド)
 cd, lcd, ls, lls, get (リモートpath), mget (リモートpaths), put (ローカルpath), mput (ローカルpaths), help, exit
 ※↑l付きはローカル、付いてないのはリモート
curl (URL) 指定URLからファイルをダウンロード
curl (URL) -o (file) 指定URLからファイルをダウンロードしてファイルに保存
curl -O (URL) 指定URLからファイルをダウンロードしてリモートと同名のファイルに保存
nmcli ネットワーク設定の表示

★システム管理
※root権限が必要なものがある
su rootになる
shutdown シャットダウン
 -r シャットダウンして再起動する
 -h シャットダウンして停止する
 (hh:mm) 指定した時間にシャットダウン
 +(数字) 指定した分経過後にシャットダウン
reboot 再起動
hostname ホスト名(コンピュータ名)を表示
groups 所属グループを表示
chown (user) (file) ファイルの所有者をuserに変更
chgrp (group) (file) ファイルの所有グループをgroupに変更
useradd (new_user) 新しいユーザを登録
userdel (user) ユーザを削除
groupadd (new_group) 新しいグループを登録
groupdel (group) グループを削除
passwd (user) 指定ユーザのパスワードを設定
who 現在ログインしているユーザを表示
whoami 現在のログイン名を表示

★環境変数・シェル変数
set 全ての変数とその値を表示
printenv 全ての環境変数とその値を表示
($変数) その変数の値を表示
(変数)=(初期値) シェル変数を初期値を指定して宣言
export (変数) 変数の環境変数化
export (変数)=(初期値) 環境変数を初期値を指定して宣言
unset (変数) 変数を削除

★その他コマンド
echo (文字列) その文字列を標準出力に表示(リダイレクト用)
echo (cmd) そのコマンドを(ワイルドカード文字を展開して)表示
echo -n (文字列) 改行文字を含めずecho
source (file) 指定したファイル内に書かれたコマンド列を実行 (例:source ~/.bashrc でbashrcの内容を反映)
watch -n (秒数) (コマンド) そのコマンドを指定秒数ごとに実行して、出力結果を全画面表示
chmail メール転送先設定
※/var/forward/(ユーザ名)に転送先をコンマで区切って直接書いてもよい
stty -a 端末に関する情報を表示
date 現在日時・時刻の表示
watch -n 1 date 時計を常時表示(端末を透過させて前面固定にしておくと、他アプリケーションの全画面表示時にも時刻を確認できて便利)
at -f (file.sh) hh:mm 指定時刻に指定コマンドを実行(1回)
at -f (file.sh) hh:mm MM/DD/YY 指定時刻に指定コマンドを実行(1回)
at -l 実行予定されているコマンドの一覧を表示
atrm (atJobId) 実行予定のキャンセル
notify-send (title) (msg) Linuxデスクトップに通知を送る

★ワイルドカード文字
? 任意の一文字
* 0文字以上の文字列
[(文字セット)] 文字セットに含まれる一文字
(※文字セットは「abcd」や「a-d1-9」というような指定方法)
[!(文字セット)] 文字セットに含まれない一文字
{(文字列,...)} 文字列リストに含まれる文字列

★リダイレクトとパイプ
(cmd1) | (cmd2) パイプ(cmd1の標準出力をcmd2の標準入力に)
(cmd) > (file) cmdの結果(標準出力)をfileに書き出す
(cmd) 1> (file) cmdの結果(標準出力)をfileに書き出す
(cmd) 2> (file) cmdの結果(標準エラー出力)をfileに書き出す
(cmd) &> (file) cmdの結果(標準出力、標準エラー出力)をfileに書き出す
(cmd) >&1 cmdの結果(標準出力)を標準出力に書き出す
(cmd) >&2 cmdの結果(標準出力)を標準エラー出力に書き出す
xargs 標準入力をコマンド引数にする
(cmd1) | xargs (cmd2) cmd1の結果(標準出力)をcmd2の引数にする

★その他
\(行末) 次の行にコマンドを継続
(cmd1) ; (cmd2) コマンドの継続実行

Emacs

★基本ウインドウ操作
[Files]-[MakeNewFrame] 新しいウインドウを開く(※同じファイルを開くと一方の変更が他方に反映される)
C-x C-c 終了
M-x line 行数表示

★基本文書操作
C-x C-f ファイルを開く(新規も)
C-x C-s 上書き保存
C-x C-w ファイル名を指定して保存
C-_ アンドゥ
C-Space 選択範囲始点設定
C-w 選択範囲始点からカーソルの前までをカット
M-w 選択範囲始点からカーソルの前までをコピー
C-y ペースト
範囲をLdrag その範囲をコピー
範囲をLdrag+WRclick その範囲をカット
Cclick ペースト

★検索と置換
[Search]-[QueryReplace] 連続文字列置換
(※置換中の操作:y:置換して次へ n:置換せずに次へ q:置換終了)
C-s (文字列) 文字列検索(順方向)(C-s,rを押すたびに次、前へ)
C-r (文字列) 文字列検索(逆方向)(C-s,rを押すたびに次、前へ)

★カーソル、スクロール操作
C-a 行頭へ
C-e 行末へ
Fn+↑(M-v) 一画面上へ
Fn+↓(C-v) 一画面下へ
Fn+←(M-<) 文頭へ
Fn+→(M->) 文末へ
ScrollBarをCdrag 画面のスクロール
wheel 画面のスクロール
M-x goto-line 指定行へジャンプ

★日本語入力、記号入力、特殊入力
C-\ 日本語入力のON/OFF
C-^ 記号入力(Japanese-JISX0208、日本語入力モードでのみ有効)
[Mule]-[Describe Coding Systems] 文字コードの変更
※EUC:euc-japan-unix等
M-x set-buffer-file-coding-system 文字コードの変更
M-i タブ入力
C-d 一文字抹消

★漢字変換時
C-i 文節縮め
C-o 文節伸ばし
M-h 平仮名変換
M-k 片仮名変換

★ウインドウ分割
C-x o 他のウインドウへカーソル移動
C-x (数字) 指定した数にウインドウ分割
C-x 0 カーソルがあるウインドウを消す
C-x 1 カーソルがあるウインドウ以外を消す
下barをCClick そのウインドウ以外を消す

★オートフォーマット
M-x auto-fill-mode 自動改行モードのON/OFF

★ディレクトリモードでの操作
e カーソル位置のファイルを開く
d 削除マークを付ける
u 削除マークを消す
x 削除マーク付きファイルを削除

Latexに関するコマンド

★コンパイル、表示、印刷など
platex (file.tex) .dviファイルを生成
xdvi (file.dvi) .dviファイルを表示
pdf2ps (file.pdf) pdfファイルをpsファイルに変換
ps2epsi (file.ps) psファイルをepsiファイルに変換
dvips (file.dvi) | lp -Tpostscript .dviファイルを印刷(postscript)

プログラミングに関するコマンド

cc,gcc
 (file.[co]) コンパイル、リンクして実行ファイルa.outを生成
 -c コンパイルだけする
 -o (実行ファイル) 実行ファイル名を指定
 -lm 数学関数を使う時必要
(dir)/(file) 自作プログラム実行
make Makefileに従った動作をする
javac (file.java) Javaコンパイラ
java (file.class) Javaインタプリタ

その他

script 端末エミュレータ上の文字列をファイルに記録
exit scriptの終了、端末エミュレータの終了等
xwd Xwindowの表示を標準出力
--(特殊オプション) それ以降の引数をオプションとみなさない
xeyes 目を表示
pdftk PDFファイルの編集 (参考:http://penguinitis.g1.xrea.com/computer/pdftk.html)

※環境によって使えるコマンドに若干の違いがあるかと思います。ご了承ください。


HOME