Presentation is loading. Please wait.

Presentation is loading. Please wait.

シェル シェルスクリプト 最低限 vi 山下 達也 (北大理・宇宙理学専攻) 20 10/05/07 ( 金 ) INEX 第4回 / 最低限 UNIX(Linux) その3.

Similar presentations


Presentation on theme: "シェル シェルスクリプト 最低限 vi 山下 達也 (北大理・宇宙理学専攻) 20 10/05/07 ( 金 ) INEX 第4回 / 最低限 UNIX(Linux) その3."— Presentation transcript:

1 シェル シェルスクリプト 最低限 vi 山下 達也 (北大理・宇宙理学専攻) 20 10/05/07 ( 金 ) INEX 第4回 / 最低限 UNIX(Linux) その3

2 目次 シェル シェルスクリプト vi ( ブイアイ )

3 シェル

4 シェルとは? シェルはカーネルとユーザとの仲介役 カーネル OS の中核となる部分 ソフト・ハードの仲介役 [ 第3回 ] シェルとは「殻」の意味 シェル カーネル ユーザ 仲介 リクエス ト レスポン ス 仲介

5 シェルの役割 ユーザインターフェイス ( コマンド・インタプ リタ ) アプリケーションが使用する環境情報の設定 プログラミング言語

6 ユーザインターフェース ユーザとカーネルの橋渡し役 プロンプトの表示 ユーザからのコマンドを待ち受ける コマンドの読み込み → 解釈 → 実行 この機能を「コマンド・インタプリタ」と呼ぶ カーネルからの返答をユーザに返す Kterm × hoge@joho:~$ OS ユーザ Terminal × hoge@joho:~$ カーネル カーネル ユーザ ↑ プロンプトの表示 (コマンド受け付け) (コマンド受け付け)

7 ユーザインターフェース シェルの動作例 : date コマンドで Linux カーネルから現在の日時を取得 シェルは date コマンドを読み込み, 解釈して カーネルに渡す Kterm × hoge@joho:~$ OS ユーザ Terminal × hoge@joho:~$ hoge@joho:~$ date 今何時? カーネル カーネル ↑コマンド入力 ユーザ

8 シェルの動作例 : date コマンドで Linux カーネルから現在の日時を取得 シェルはカーネルの機械語での応答を人間語に 解釈して返す ユーザインターフェース Kterm × hoge@joho:~$ OS ユーザ Kterm × hoge@joho:~$ hoge@joho:~$ date OS ユーザ 今何時? Terminal × hoge@joho:~$ hoge@joho:~$ date Fri May 7 13:25:14 JST 2010 hoge@joho:~$ カーネル カーネル 1010101 0001001 1100110 ↑ 日時の表示 ユーザ

9 環境情報の設定と参照 アプリケーションソフトウェア ( ブラウザ, メーラ, エディタ など ) で使用する環境情報 を設定・参照 ユーザ名, ホームディレクトリ, 言語環境,... 「環境変数」 に文字列を代入することで設定 例 : 言語環境 LANG=C ターミナル TERM=xterm 設定には export コマンドを使用 詳しくは実習編で !!

10 プログラミング言語としての シェル スクリプトを解釈する論理的な制御機能を 持つ 一連の手続き ( コマンド ) を書き込んだファ イル ( シェル ) スクリプトファイル 拡張子を.sh とするのが慣習 実行すると一連の手続きが行われる 「シェルスクリプト」編で詳しく紹介

11 代表的なシェル Unix 系 OS (Linux, Mac OS, FreeBSD, Solaris...) : sh, bash, csh, tcsh, ksh, zsh, (ssh)[ 第 10 回 ], … ユーザはシェルを選択可能 chsh コマンドでシェルを変更可能 それぞれ異なる機能を持つ Windows : Explorer, Explorer 互換シェル コマンドプロンプト (NT 系 ), DOS プロンプト (9x 系 ) Mac OS : Finder

12 bash の特徴 bash ・・・ Bourne Again Shell Unix 系 OS のシェルの一種, Linux での標準 ユーザの操作環境を向上させる機能が豊富 リダイレクト : 入出力先の指定 メタキャラクタ : 任意の文字列を指定する為の特殊 文字 ジョブ管理 : 実行したコマンドの管理 補完機能 : 長いファイル・コマンド名の補完など ヒストリ機能 : 過去に実行したコマンドを記録・表 示 エイリアス : コマンド ( 群 ) に別名をつける 環境変数, シェル変数 : 環境を設定する為の変数 実習で bash の機能を体験してみましょう

13 シェルスクリプ ト

14 シェルスクリプトの目的 単純な作業の繰り返しを自動処理させる 自分は楽をする 既存のコマンドの組み合わせで新しいコマ ンドを作る 例:ファイルのバックアップをとる $ date ‘+%Y-%m-%d’ 2010-05-07 $ cp file.txt file_2010-05-07.txt $ ls file.txt file_2010-05-07.txt ← 現在の日付を表示 ↑ ファイルをコピー ↑ 手動で作成されたファイル

15 シェルスクリプトの目的 単純な作業の繰り返しを自動処理させる 自分は楽をする 既存のコマンドの組み合わせで新しいコマ ンドを作る 例:ファイルのバックアップをとる $ lv makebackup.sh #!/bin/sh NICHI=`date ‘+%Y-%m-%d’` cp file.txt file_${NICHI}.txt ← 日付をシェル変数に代 入 ↑ ファイルをコピー ← シェルスクリプト ファイルの中身を見る ファイルの中身を見る ← 実行するシェルを指定

16 シェルスクリプトの目的 単純な作業の繰り返しを自動処理させる 自分は楽をする 既存のコマンドの組み合わせで新しいコマ ンドを作る 例:ファイルのバックアップをとる $./makebackup.sh $ ls file.txt file_2010-05-07.txt makebackup.sh ← シェルスクリプト ファイルを実行 ファイルを実行 ↑ シェルスクリプトによって 自動的に作成されたファイル

17 シェルスクリプトの概要 複数のコマンドを順に書き記す シェル変数を利用して汎用性を持たせる 構造化プログラミング ( 制御構造を持たせ る ) 順次構造 判断構造 繰り返し構造 課題として実際に作成してもらいます 処理 B 処理 A 処理 C

18 シェルスクリプトの概要 複数のコマンドを順に書き記す シェル変数を利用して汎用性を持たせる 構造化プログラミング ( 制御構造を持たせ る ) 順次構造 判断構造 if, case 繰り返し構造 処理 B 処理 A 処理 C 課題として実際に作成してもらいます 処理 A YES NO 処理 B 条件

19 シェルスクリプトの概要 複数のコマンドを順に書き記す シェル変数を利用して汎用性を持たせる 構造化プログラミング ( 制御構造を持たせ る ) 順次構造 判断構造 繰り返し構造 for, while 課題として実際に作成してもらいます ループ開始 処理 A ループ終了 処理 B

20 テキストエディ タ vi

21 テキストエディタ テキストを作成するためのソフトウェ ア vi, emacs, nano などがある テキストが書かれているファイルをテ キストファイルという 通常のテキストファイルの拡張子は.txt 例: filename.txt

22 vi ( ブイアイ ) とは ? vi = Visual extended editor UNIX 系 OS における基本的なテキストエ ディタ vi が入っていないシステムはほとんど無い !! トラブル時に利用する / できる可能性が最も高 い システムへの負荷が小さく, 軽快 X Window System ( 第 11 回 ) が無くても使える 必ず使用法を身に付けるべきツール 但し操作方法が直感的でない ( 慣れが必要 ) プログラマー, 一部の研究者には人気らしい ?

23 vi の特徴 テキスト作成の効率化の徹底的追求 単純な文字入力で様々な操作が可能 UNIX のコマンドも自由に呼び出せる vi の基本 : モード vi ではキー入力が二つの意味を持つ コマンドモード キー入力 = 編集命令 ( 削除,改行, etc) 挿入モード キー入力 = 文字入力

24 vi の操作 困ったら ESC キー でコマンドモードへ シェル vi ( コマンドモード ) vi ( 挿入モード ) a, A, i, I, o, O キー $ vi [filename] ESC キー :wq, :q!

25 まとめ シェル ユーザとカーネルの橋渡し 実習で機能を体験, 学習. 今回は bash を使用. シェルスクリプト 単純な作業の繰り返しを自動処理 課題として実際に作成 vi 必修のテキストエディタ シェルスクリプト作成に使用しつつ覚えよう !!

26 参考文献・参考 URL Cameron Newham, Bill Rosenblatt 著, 遠藤美 代子 訳, 1998: 入門 bash 第 2 版, オライリー ジャパン, 341 pp. Linda Lamb 著, 福崎俊博 訳, 1992: vi 入門, ア スキー出版局, 206 pp. zsh 公式サイト http://www.zsh.org/

27 付録

28 各シェルの概要 (1) sh (Bourne shell) Steven Bourne 氏が考案した伝統的なシェル lenny では /bin/sh から /bin/bash にリンクが貼ら れている bash (Bourne again shell) 本編参照

29 各シェルの概要 (2) csh (C shell) Bill Joy 氏が考案 C 言語に類似した構文を持つ tcsh (TENEX C Shell) csh を拡張させたもの

30 各シェルの概要 (3) ksh (Korn shell) David Korn 氏が考案 実行が高速 2000 年以降, オープンソース化 zsh (Z shell) 補完機能などが充実 機能のみならず付属マニュアルが充実 ssh (Secure shell) 遠隔のマシンにログインする為のプログラム


Download ppt "シェル シェルスクリプト 最低限 vi 山下 達也 (北大理・宇宙理学専攻) 20 10/05/07 ( 金 ) INEX 第4回 / 最低限 UNIX(Linux) その3."

Similar presentations


Ads by Google