これって私の感想です
1. Vimの基本操作:dw
,x
, X
の違い
-
dw
:カーソル位置から1単語削除 -
x
:カーソル上の1文字削除(Delete) -
X
:カーソルの左側を1文字削除(Backspace)
躓きポイント:
- OSによって「カーソルの位置(文字の上か間か)」の扱いが異なり、思わぬ結果に。
- UbuntuとCentOSで削除される範囲が違って見えるのはこのため。
2. less / cat の違い
-
cat
はファイル全体を一気に表示 -
less
はページ送り可能、スクロール自在、"less is more (少ない方がより豊か)"からきている(less
はmore
の改良版)
使い分けの基準:
- 小さいファイル:
cat
- 大きいファイル:
less
学び:
- すべて
less
で開けばいいのではという疑問があったが、less
は抜けるための動作が必要 - とりあえず
cat
で開いて、こりゃかなわんとなったらless
で開いてみる
3. パイプとリダイレクトの違い
-
|
は「標準出力 → 標準入力」へつなぐ -
>
は「標準出力 → ファイル」へ流す
例:
ll | grep test
→ llの出力結果を、grepの入力として渡す
4. stdin / stdout / stderr
- stdin(0)、stdout(1)、stderr(2)は「ファイルディスクリプタ」で管理されている
-
/dev/stdin
をhead
で開くと無反応になるのは「キーボード入力待ち」だから
5. grepと正規表現
-
.
,*
,.*
をgrepで実験 -
.*
は「任意の文字が0回以上繰り返される」
躓きポイント:
-
a123c
やaXbc
がa.*c
にマッチする理由が直感的にわからなかった -
.*
では.
が0回以上繰り返される、すなわち.
の位置に相当する文字の繰り返しではなく、.
というパターンの繰り返し
6. クォートとシェルの関係
-
grep 'apple'
のようにクォートは必要か? - 特殊文字(
*
,|
,$
,()
)を含むとき、Bashが誤解釈するのを防ぐためにクォートが必要
学び: クォートは「正規表現のため」ではなく「シェルのための防御策」。grepで文字列を検索しておくときは常にクォートしておくのが安全。