Linux シェル:基本
シェルとは
UNIXコマンドインタプリタ
=コマンド(命令)を解釈、カーネルへ伝達するプログラム
カーネルを包むシェルターの意味
bash、zsh、tcsh等のシェルが一般的
再利用可能にファイル化したシェルをシェルスクリプトと呼ぶ
利点
・履歴が残る(呼び出し可能)
・軽い
・リダイレクト、パイプ機能を使って複雑な入出力が可能
・自動化が容易
起動
echo $shell
起動シェル確認
起動シェル変更
chsh
例) new shell ~: /bin/bash
シェルコマンド一覧
for x in ${PATH//:/ } do ls -l $x done | sort | uniq
for x in ${PATH//:/ }
do
ls -l $x
done
| sort
| uniq
標準入力・標準出力
標準(=画面)
画面から入力 ⇒ 画面へ出力
$ ls
リダイレクト
入力・出力を標準から別のメディアへ切り替え
・画面から入力 ⇒ ファイルへ出力
$ ls > list ※上書き
$ ls >> list ※追加
・ファイルから入力 ⇒ 画面へ出力
$ ls < list ※上書き
$ ls << list ※追加
パイプ処理
ある命令による出力を、別の命令の入力へと繋ぐ
「|」で繋ぐ
Linuxでは「↑」キーで前回のコマンドを呼び出せるので呼び出し&パイプで、
簡単に追加の処理命令を記述できる
$cat /etc/passwd
⇒passwdの中身が画面に表示される
passwdの中身をgrepへの入力とする
grepでは「/bin」を含む行のみを抽出
$ cat /etc/passwd | grep /bin
↑を更にcutへの入力とする
cutでは文字列を’:’で分割し、1番目の列のみ抽出
$ cat /etc/passwd | grep /bin | cut -d ‘:’ -f 1
↑を更にsortへの入力とする
sortでは文字列をアルファベット順にソート
$ cat /etc/passwd | grep /bin | cut -d ‘:’ -f 1 | sort
↑を更にwcへの入力とする
wcでは文字列の行数を取得
$ cat /etc/passwd | grep /bin | cut -d ‘:’ -f 1 | sort | wc -l
⇒行数のみ画面へ表示される