読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】さっき打った長いコマンドをもう一回使いたい。history と !、man のセクション、uname【LPICレベル1】

17レスカテゴリ:Linux
1: 名無しさん

長いコマンドを打ち直すのがしんどい
前に打ったやつを呼び出す方法ある?

2: 名無しさん

前提のおさらい。コマンドは「コマンド オプション 引数」を空白で区切って打ち、! はダブルクォートの中でも特別な意味が残る(bash の man の QUOTING)

3: 名無しさん

>>1
上矢印で1つずつ戻れる。Ctrl+R で打った文字を含むものを後ろから探せる。history で番号つきの一覧

4: 名無しさん

>>3
! を使う呼び出し(履歴展開)
!! 直前のコマンド
!n 番号 n のコマンド
!-2 2つ前
!文字列 その文字列で始まる一番新しいコマンド
!$ 直前のコマンドの最後の引数

5: 名無しさん

>>4
試したらこうなった
echo last arg here のあとに echo !$ → echo here に置き換わってから実行された

6: 名無しさん

>>4
!echo o は「echo で始まる最新の履歴」のあとに o が付く。直前が echo two やったら echo two o が動く

7: 名無しさん

>>1
履歴はどこに保存されるん?

8: 名無しさん

>>7
~/.bash_history。シェルを終了するときに書き込まれる。場所は HISTFILE、覚えておく数は HISTSIZE、ファイルに残す行数は HISTFILESIZE

9: 名無しさん

>>8
HISTSIZE の既定は500(bash の man)。Debian の /etc/skel/.bashrc は HISTSIZE=1000、HISTFILESIZE=2000 にしてある。ディストリビューションの初期設定で違う

10: 名無しさん

>>1
man で passwd を引いたらコマンドの説明が出たけど、/etc/passwd の書式が見たい

11: 名無しさん

>>10
man はセクションに分かれてる。man 5 passwd でファイルの書式のほうが出る
1 一般のコマンド
5 ファイルの書式
8 管理用のコマンド
(ほかに 2 システムコール、3 ライブラリ関数、7 その他)

12: 名無しさん

>>11
キーワードで探すのは man -k キーワード(apropos と同じ)、短い説明は man -f 名前(whatis と同じ)

13: 名無しさん

>>11
man の中は less と同じで、/ で検索、q で終わり

14: 名無しさん

>>1
問題文に uname もあったけど、何を表示するん?

15: 名無しさん

>>14
システムの情報。オプションなしは -s と同じでカーネル名(Linux)
-r カーネルのリリース
-m ハードウェア名(x86_64 など)
-n ホスト名
-a 全部

16: 名無しさん

>>15
uname -r は、モジュールの置き場所 /lib/modules/(カーネルのリリース)/ を調べるときに使うな

17: 名無しさん

>>4
!! と !$ と Ctrl+R で打ち直しがだいぶ減るわ

管理人のひとこと