シェルの使い方 [unix 基礎]

ログインシェルって何?

  • 計算機にログインした時に起動されるシェル
  • シェル起動時にログインシェルと指定されたシェル
  • C-d では終了せず、logout で終了するシェル

~/ って何?

シェルの約束事の1つでログインのディレクトリを意味します。
例えば、~/.login はユーザがログインしたディレクトリの .login という名前のファイルを指します。

設定ファイル

  • 起動時に読み込む設定ファイルの順序
  • tcsh の場合
1. /etc/csh.cshrc
2. /etc/csh.login  (ログインシェルのみ)
3. ~/.tcshrc なければ ~/.cshrc
4. ~/.login        (ログインシェルのみ)
  • bash
1. /etc/profile
2. ~/.bash_profile
3. ~/.bash_login
4. ~/.profile
5. ~/.bashrc      (ログインシェルでない時)
  • csh
1. /etc/csh.cshrc
2. /etc/csh.login (ログインシェルのみ)
3. ~/.cshrc
4. ~/.login       (ログインシェルのみ)
  • sh
1. /etc/profile   (ログインシェルのみ)
2. ~/.profile     (ログインシェルのみ)

基本

  • I/O リダイレクト -- < と > を使って、プログラムの入力と出力をファイルに切り替えることができる
% ls > list.txt  (ls の出力を list.txt というファイルに書く)
% mail < tmp.txt (tmp.txt の内容を mail で送る)
% cat new.txt >> sum.txt (sum.txt に追加する)
% make >& make.log    (csh, tcsh)(エラーも同時に記録する)
$ make 2>&1 make.log  (sh, bash)(エラーも同時に記録する)
  • パイプ -- | を使って、プログラムの出力を別なプログラムの入力に接続することができる
% ps -aux | grep nobody  (プロセス一覧の中から nobody を捜す)
% cat *.dat | sort &gt; newdata (データをソートしてファイルに書く)
  • エイリアス -- 別名を定義することができる
% alias dir 'ls -lF' (csh, tcsh)
$ alias dir='ls -lF' (sh, bash)
  • 環境変数 -- プログラムのパラメータ。代表的なのは PATH, EDITOR, PAGER, PRINTER, DISPLAY, SHELL, TERM, LANG 等。
% setenv EDITOR mule                 (csh, tcsh)
% setenv PATH ${PATH}:/usr/local/bin (csh, tcsh)
$ export EDITOR=mule                 (sh, bash)
$ export PATH=$PATH:/usr/local/bin   (sh, bash)
  • プロセス -- 1プログラム(コマンド) 1プロセス。コマンド行の最後に & を付けると、プログラムの終了を待たずに次のプロンプトを出す
  • メタキャラクタ
* -- 0文字以上の文字列と一致する
? -- 任意の1文字と一致する
[...] -- 括弧の中のいずれかの1文字と一致する
  • sh 以外のシェルにはファイル名を補完する機能がある
csh -- Escape で補完、C-d で候補表示
tcsh -- Tab で補完、C-d で候補表示
bash -- Tab で補完、M-? で候補表示

スクリプト

スクリプトファイルの先頭は #! で始まり、続けて実行させるプログラムの名前(絶対パス名)を書く。
2行め以降はそのプログラムへの入力となる。

#!/bin/sh               ('sh' シェルを使用)
#!/usr/local/bin/perl   ('Perl' を使用)
#!/usr/local/bin/wish   (Tcl/Tk を使用)

スクリプトファイルは実行可能に設定する

% chmod +x myfile

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-11-08 (月) 15:10:54 (5484d)