便利なコマンド
STEP 1
- 正規表現を理解する。
- 実は、正規表現と言うよりは「ファイル名置換」です。
- 正しい「正規表現」は別に学びます。
ワイルドカード (Glob)
*(アスタリスク) は 0 個以上の任意の文字に置き換えられます。?(クエスチョンマーク) は 1個の任意の文字に置き換えられます。[]鍵括弧内の任意の1文字に置き換えられます。- 他にもいろいろの置き換えがあります。詳しくは
特殊文字のエスケープ
echo *とすると、ファイル名置換が行われます。- 置換が行われないようにするには、以下のようにします
echo '*' echo "*" echo \*
- 教科書にはシェル変数を示す $ をエスケープする例も出ています。
STEP 2
- 便利なコマンド
find
- ファイルを名前や属性で探します
- glob など特殊文字をエスケープする必要があります。
-printを省略することができます。$ find . -name q\*
- 他にも、「X日以上前に作成したファイル」などの条件で探すこともできます。
grep
- Global Regular Expression Pattern (大域正規表現パターン) の略
- 実は、
grep 文字列 探すファイルではなく、grep 正規表現パターン 探すファイルなのですが、詳しくは、man grep を読んでください。 - 教科書ではファイルを探す使い方が書いてありますが、ファイルから必要な行を取り出す用途にも使えます。
$ grep root /etc/passwd
more (less)
- 次のふたつのコマンド実行を比べてください。
$ cat /etc/services $ more /etc/services
man
- オンラインマニュアルを読む
$ man man
&& ||
- コマンドを連続して使うには、この他に | (パイプ) を使う方法を習っています。また、 ; を使うと、無条件でコマンドを連続実行します。
$ ls qq ; echo "Hello" qq Hello $ ls qqq ; echo "Hello" ls: qqq: No such file or directory Hello
バックグラウンドでの実行
- 次のコマンドを実行してみてください。
$ ( sleep 10 ; echo "Hello" ) &
コマンドを強制終了する
- ps でプロセス番号を調べ、kill でその番号のプロセス(コマンド)を終了させます。
- X ウィンドウを起動して、次の例を試してみてください。
$ xclock -update 1 & [1] 595 $ ps PID TT STAT TIME COMMAND 528 p1 S+ 0:00.07 -bash 579 p2 Ss 0:00.05 bash 595 p2 S 0:00.14 xclock -update 1 $ kill 595 $
- kill で終了しない場合には、kill -KILL プロセス番号を使う。
- 教科書のように番号(-9)で指定しないこと
章末問題(再掲)
- ホームディレクトリで以下の操作を実行してください。
- ファイル名が q で始まるファイル名を一覧表示してください。
- ファイル名が q で始まり、2文字目が数字で、ファイル名が2文字であるファイル名を 一覧表示してください。
- ファイル名の2文字目が数字でファイル名が2文字以上であるファイル名を一覧表示 してください。
- ファイル名が3文字であるファイル名を一覧表示してください。
- ファイル名が q で始まるファイルをすべて削除してください。
- Skip
- Skip
- 解答は メールで送信 してください