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
⇒行数のみ画面へ表示される