1週間でLPICの基礎が学べる本〈5日目〉
シェルにとって特別な意味を持つ文字をメタキャラクタという。
メタキャラクタとはファイルを検索するときに役立つ、ファイル名のパターンを表す特殊な記号のこと。
~主なメタキャラクタ~
メタキャラクタ | 意味 |
---|---|
* | 0文字上の任意の文字 |
? | 任意の1文字 |
[ ] | [ ]内の任意の1文字、「-」を使って範囲指定できる |
\ | メタキャラクタの打ち消し |
コマンドの標準出力を端末画面でなはなく任意のファイルに切り替えられるのをリダイレクト。
コマンド>ファイル名
ファイルの末尾に追記する場合は「>>」を使う。
標準エラー出力をリダイレクする場合は「2>」や「2>>」を使う。
エラーメッセージだけを別のファイルの保存するといったことができる。
コマンドの実行結果を別のコマンドの処理できるのがパイプ「|」。
コマンド|コマンド
パイプは1画面に収まりきらない出力を[less]コマンドで表示するときなどに使う。
コマンドには別名をつけられる。
この別名のことをエイリアスという。
エイリアスを設定するには[alias]コマンドを使う。
[alias (別名)(=コマンド)]
[alias]のみ実行すると設定済みのエイリアスが出てくる。
エイリアスはシェルが終了すると同時に消える。
ユーザーが利用する言語やプロンプトの形などシェルが動作するうえで必要となるさまざまな情報は変数に保存される。
~シェルの主な変数~
変数 | 意味 |
---|---|
HOME | ユーザーのホームディレクトリ |
HOSTNAME | ホスト名(コンピュータ名) |
LANG | 言語処理方式 |
PATH | コマンドを検索するディレクトリリスト |
PS1 | プロンプトの書式 |
PWD | カレントディレクトリのパス |
UID | ユーザーID |
USER | ユーザー名 |
変数に値を設定するときは
変数名=値
変数の内容は[echo]コマンドで確認できる。
[echo $変数名]
変数の内容はシェルが終了すると失われる。
変数の有効範囲は変数を定義したシェルの中だけ。
変数をエクスポートすると定義したシェルの中から起動したシェルや実行したコマンドから変数の値を参照できるようになる。これを環境変数という。
環境変数に対し、1つのシェルの中だけで使える変数をシェル変数という。
環境変数を設定するには[export]コマンド。
[export (変数名)(=値)]
イメージとしては別のbashにエクスポートって感じ。
新しいシェルやコマンドを起動したときにその値がコピーされデフォルトで利用できるようになる変数てこと。
設定されている環境変数を表示する[printenv]コマンド。
設定されているシェル変数と環境変数をすべて表示する[set]コマンド。
コマンドには組み込みコマンドと外部コマンドがある。
〈組み込みコマンド〉
~bashの主な組み込みコマンド~
コマンド | 意味 |
---|---|
alias | エイリアスを作成 |
bg | ジョブをバックグラウンドで実行 |
cd | ディレクトリを移動 |
echo | 引数の内容を表示 |
exit | シェルを終了 |
export | 環境変数を設定 |
fg | ジョブをフォアグラウンドで実行する |
history | コマンド履歴 |
jobs | ジョブで表示する |
kill | プロセスにシグナルを送信 |
pwd | カレントディレクトリ表示 |
unalias | エイリアス削除 |
〈外部コマンド〉
[which]コマンドを使うとコマンドの実行ファイルがどこにあるか確認できる。
外部コマンドはファイルを絶対パスで指定する必要がある。
コマンド名だけを入力すれば対応する実行ファイルを検索て実行できる仕組みが用意されている。
シェルは変数PASHに格納されているディレクトリの中をかたっぱしから検索し、コマンド名に一致する実行ファイルを見つけたらそれを実行する。
これをコマンドサーチパス(パス)という。
ファイル名を探したいとき
[locate ファイル名パターン]
リアルタイムでファイルを検索したいとき
[find (検索対象パス) (検索式)]
~主な検索式~
検索式 | 説明 |
---|---|
-name | ファイル名を指定する |
-size | ファイルサイズを指定する |
-atime | ファイルの最終アクセス日を指定する |
-amin | ファイルの最終アクセス時刻を○分前で指定 |
-mtime | ファイルの最終修正日を指定する |
-mmin | ファイルの最終更新時刻を○分前で指定する |
-perm | ファイルのアクセス権を指定 |
-type | ファイルタイプを指定する |
[find]コマンドに[-exes]をつけると何らかの操作を加えることができる。
消去とかね。
[find (検索対象パス) (検索式) -exec 実行コマンド {} ¥;]
文字列のパターンを表記するための手法、正規表現。
正規表現では様々なメタキャラクタを利用できる。
~正規表現の主なメタキャラクタ~
メタキャラクタ | 説明 |
---|---|
. | 任意の1文字にマッチする |
* | 直前にある文字の0回以上の繰り返しにマッチする |
[ ] | [ ]内の任意の1文字にマッチする |
^ | 行頭にマッチする |
$ | 行末にマッチする |
\ | 直後に続くメタキャラクタの意味を解除する |
※シェルのメタキャラクタと混同しないように注意!
(シェルの「?」は正規表現では「.」で表す。)
~正規表現の例~
例 | 説明 |
---|---|
a.c | 「abc」「a1c」などにマッチ |
.* | 0文字以上の文字列にマッチ |
[A-Z] | 大文字のアルファベットにマッチ |
[0-9][0-9] | 2桁の数字にマッチ |
^$ | 空行にマッチ |
^# | 行頭の「#」という文字にマッチ |
\ .txt | 「.txt」という文字にマッチ |
[grep]はテキストファイルの内容を検索し、指定した正規表現にマッチする行があれば表示するコマンド。
[grep (オプション) (文字列パターン) (ファイル名)]
~[grep]のオプション~
オプション | 説明 |
---|---|
-F | 文字列パターンを正規表現ではなく単なる文字列として扱う |
-c | マッチした行数だけを表示 |
-i | 大文字と小文字を区別しない |
-I | マッチした行のあるファイル名のみ表示 |
-n | 行番号をあわせて表示 |
-v | マッチしなかった行を表示 |
[head]はファイルの先頭だけを表示するコマンド。
[head (-行数) (ファイル名)]
行数のデフォルトは先頭10行。
パイプを使って他のコマンドの出力の先頭部分だけを表示することもできる。
[tail]はファイルの末尾部分だけを表示するコマンド。
[tail (-行数) (ファイル名)]
こっともデフォルト10行。
[sort]はファイルの内容をソート(並び替え)して表示するコマンド。
[sort (オプション) (ファイル名)]
~[sort]のオプション~
オプション | 説明 |
---|---|
-n | 文字列ではなく数字を数値としてソート |
-r | 逆順にソート |
[nl]は行番号をつけてファイル内容を出力する。
[nl (ファイル名)]
[wc]はファイルの行数、単語数、バイト数を表示する。
[wc (オプション) (ファイル名)]
しばらく更新が空いてしまった、、
が、しかし進展はありました。
今年は何かと出会いの多い年であります。
これをどう生かせるかきちんと考えなくては。
目標を明確に。