まるもの勉強日記。

実はSE目指してます。

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」という文字にマッチ

 

正規表現Linuxのいくつかのコマンドで利用できる。

[grep]はテキストファイルの内容を検索し、指定した正規表現にマッチする行があれば表示するコマンド。

[grep (オプション) (文字列パターン) (ファイル名)]

~[grep]のオプション~

オプション 説明
-F 文字列パターンを正規表現ではなく単なる文字列として扱う
-c マッチした行数だけを表示
-i 大文字と小文字を区別しない
-I マッチした行のあるファイル名のみ表示
-n 行番号をあわせて表示
-v マッチしなかった行を表示

 

[head]はファイルの先頭だけを表示するコマンド。

[head (-行数) (ファイル名)]

行数のデフォルトは先頭10行。
パイプを使って他のコマンドの出力の先頭部分だけを表示することもできる。

 

[tail]はファイルの末尾部分だけを表示するコマンド。

[tail (-行数) (ファイル名)]

こっともデフォルト10行。

 

[sort]はファイルの内容をソート(並び替え)して表示するコマンド。

[sort (オプション) (ファイル名)]

~[sort]のオプション~

オプション 説明
-n 文字列ではなく数字を数値としてソート
-r 逆順にソート

 

[nl]は行番号をつけてファイル内容を出力する。

[nl (ファイル名)]

 

[wc]はファイルの行数、単語数、バイト数を表示する。

[wc (オプション) (ファイル名)]

 

しばらく更新が空いてしまった、、

が、しかし進展はありました。

 

今年は何かと出会いの多い年であります。

これをどう生かせるかきちんと考えなくては。

目標を明確に。