シェル,エディタ vi
神⼾⼤学理学部惑星学科 B4
流体地球物理学教育研究分野
⽥村 笙

⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash について

2. エディタ: vi◦◦

テキストエディタとはvi とは

OS の構成(復習)カーネル◦ OS の中核をなすソフトウェア(狭義の OS を指すこともある)◦ ハードウェアの管理・制御を⾏う◦ プロセス管理を⾏う◦ ユーザが直接命令できない

シェル◦ ユーザとカーネルの仲介役

⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash について

2. エディタ: vi◦◦

テキストエディタとはvi とは

シェル(shell: 殻)とは？
カーネルとユーザ(アプリケーション)の仲介役◦ ユーザはシェルを通して計算機に作業を要求する◦ そのためのユーザインターフェース(UI) を提供する◦ アプリケーションソフトが利⽤する環境情報を設定する
概念的なイメージ
シェル
カーネル
ハードウェア⽬次
1. シェルとは？
◦ユーザインターフェース◦◦◦

シェルの基本的な機能
代表的なシェル
bash の特徴

2. エディタ: vi◦◦

テキストエディタとは
vi とはユーザインターフェース(UI)
CUI (Character User Interface)◦ 主にキーボードからの⽂字⼊⼒で操作を⾏う◦ コマンドさえ覚えればキーボードだけで何でもできる◦ 計算機への負担が⼩さい◦ サーバ業務やトラブルに強い

GUI (Graphical User Interface)◦ 主に画⾯上に表⽰された図形や画像などをマウス・キーボードの操作や画⾯へのタッチなどで指定して操作を⾏う◦ 直感的に操作を⾏えるが、計算機への負担は⼤きい⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash について

2. エディタ: vi◦◦

テキストエディタとはvi とは

シェルの基本的な機能
コマンドインタプリタ◦ プロンプトを表⽰し、そこにユーザーが⼊⼒した ⽂字列(コマンド)を解釈して対応するプログラムを起動する

環境設定◦ アプリケーションソフトウェア間で共⽤のデータを保持し、必要に応じて参照させる

シェルスクリプトの実⾏◦ ⼀連の処理をファイルに記述し, ⼀括して連続的に実⾏する

シェルの基本的な機能
コマンドインタプリタ◦ プロンプトを表⽰し、そこにユーザーが⼊⼒した ⽂字列(コマンド)を解釈して対応するプログラムを起動する

環境設定◦ アプリケーションソフトウェア間で共⽤のデータを保持し、必要に応じて参照させる

シェルスクリプトの実⾏◦ ⼀連の処理をファイルに記述し, ⼀括して連続的に実⾏する

コマンドインタプリタ
カーネルとユーザの通訳
プロンプトの表⽰◦ コマンドを待ち受ける

Terminal
hoge@joho: ~$プロンプトの表⽰(コマンド受付)×

カーネルコマンドインタプリタ
例:◦ ユーザが「pwd」 を⼊⼒(Linux カーネルからカレントディレクトリを取得)◦ シェルは⽂字列(pwd) をコマンドとして解釈し、カーネルに渡す

今いる
ディレクトリは?

Terminal
hoge@joho: ~$ pwd×

今いるディレクトリを聞かれてるよ

カーネルコマンドインタプリタ
例:◦ ユーザが「pwd」 を⼊⼒(Linux カーネルからカレントディレクトリを取得)◦ シェルは⽂字列(pwd) をコマンドとして解釈し、カーネルに渡す◦ 返ってきたカーネルからの返答をユーザに伝える
ここですよTerminal
hoge@joho: ~$ pwd/home/hoge

×

どこかわかったよ

カーネルシェルの基本的な機能
コマンドインタプリタ◦ プロンプトを表⽰し、そこにユーザーが⼊⼒した ⽂字列(コマンド)を解釈して対応するプログラムを起動する

環境設定◦ アプリケーションソフトウェア間で共⽤のデータを保持し、必要に応じて参照させる

シェルスクリプト◦ ⼀連の処理をファイルに記述し, ⼀括して連続的に実⾏する環境設定
複数のアプリケーションソフトウェア (ブラウザ, メーラ, エディタ,etc. ...) で使⽤する環境情報を設定する◦ シェルにより環境情報を環境変数に設定◦ アプリケーションは起動時に, 環境変数を参照
環境情報

環境変数

ホームディレクトリ

HOME

エディタのコマンド名

EDITOR⾔語環境

LANG

コマンドの検索パス

PATH

例： hoge@joho: ~$ export LANG=ja_JP.EUCJP(⽂字コードを ja_JP.EUCJP に変更する)

シェルの基本的な機能
コマンドインタプリタ◦ プロンプトを表⽰し、そこにユーザーが⼊⼒した ⽂字列(コマンド)を解釈して対応するプログラムを起動する

環境設定◦ アプリケーションソフトウェア間で共⽤のデータを保持し、必要に応じて参照させる

シェルスクリプトの実⾏◦ ⼀連の処理をファイルに記述し, ⼀括して連続的に実⾏するシェルスクリプトの実⾏制御構造を含めたシェルコマンドが記述されたスクリプト(シェルスクリプト)を逐次実⾏する.

条件偽

真*制御構造処理A処理B繰り返し, 条件分岐といった命令の実⾏順序を定めたもの
条件分岐のフローチャート

⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash について

2. エディタ: vi◦◦

テキストエディタとはvi とは代表的なシェルUnix 系 OS (Linux, FreeBSD, Solaris...)◦ sh, bash, ksh, csh, tcsh, zsh, …
◦ X Window SystemMicrosoft Windows◦ コマンドプロンプト (WinNT系)◦ Windows PowerShell (次世代のコマンドラインシェル)◦ Explorer, その他 (互換シェル？)macOS◦ Finder⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash について

2. エディタ: vi◦◦

テキストエディタとは
vi とはbash について
bash (Bourne Again Shell)◦ Unix 系 OS のシェルの⼀種. 多くの Linux に搭載.
◦ ユーザが楽に操作するための機能が豊富.
◦ 機能の例◦ リダイレクト (>, >>, etc.)◦ メタキャラクタ (*, ?, etc.)◦ ジョブ管理 (jobs, kill, fg, bg, etc.)◦ 補完機能, 編集機能, ヒストリ機能◦ エイリアス

実習で bash の機能を体験してみよう前半のまとめシェルとは…
◦ カーネルとユーザの仲介役◦ シェルの機能◦ ユーザインタフェースの提供◦ コマンドインタプリタ◦ 環境設定◦ シェルスクリプトの実⾏

⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash の特徴

2. エディタ: vi◦◦

テキストエディタとはvi とは

⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash の特徴

2. エディタ: vi◦◦

テキストエディタとはvi とはテキストエディタとはアプリケーションソフトウェアのひとつ◦ テキストファイルの編集を⽬的とする◦ もとはプログラム作成ソフトウェア◦ 通常の⽂書からプログラムや各種設定ファイルの作成・編集まで幅広く使うことができる◦ ⽂書作成ソフトウェア (MS Word 等) とは異なる

いろいろな種類がある◦ vi, emacs, gedit, メモ帳(windows), テキストエディット(macOS)◦ 好みに応じて使ってよい◦ 実習では vi を使⽤する

⽬次
1. シェルとは？
◦◦◦◦

ユーザインターフェース
シェルの基本的な機能
代表的なシェル
bash の特徴

2. エディタ: vi◦◦

テキストエディタとはvi とは

vi とはUnix 系 OS における標準的なテキストエディタ◦ vi が⼊っていないシステムはまずない

トラブル時に利⽤する/できる可能性が最も⾼い◦ システムへの負荷が⼩さく, 軽快◦ X Window System がなくても利⽤できる

必ず使⽤法を習得すべきツール◦ しかし操作が直感的ではない(慣れが必要)◦ 極めるとすごい(らしい)Vim について◦ vi から派⽣した⾼機能なエディタ

vi の操作「モード」によってキーの役割が異なる◦ ノーマルモード◦ 編集命令(カーソル移動, 削除,改⾏, 保存…)
◦ 挿⼊モード◦ ⽂字⼊⼒テキスト作成の効率化を追求◦ 単純なキー⼊⼒で様々な操作が可能◦ Unix コマンドの呼び出しも可能

シェル$ vi [filename]:wq, :q!

vi (ノーマルモード)
a, A, i, I, o, Oキー

ESC キーvi (挿⼊モード)

vi の操作「モード」によってキーの役割が異なる◦ ノーマルモード◦ 編集命令(カーソル移動, 削除,改⾏, 保存…)
◦ 挿⼊モード◦ ⽂字⼊⼒シェル

困ったときはESC キーでノーマルモードへ!

テキスト作成の効率化を追求◦ 単純なキー⼊⼒で様々な操作が可能◦ Unix コマンドの呼び出しも可能

a, A, i, I, o, Oキー

ESC キーvi (挿⼊モード)

後半のまとめ
テキストエディタとは◦ テキストファイルを編集するためのアプリケーションソフト

vi について◦ Unix 系 OS における標準的なテキストエディタ◦ ⼤きく分けてノーマルモードと挿⼊モードの⼆つのモードがある◦ 困ったときはESC キー

実際に vi を使って学習しよう参考⽂献
神⼾⼤理学部 ITPASS 実習 2018
「シェル, エディタ vi」◦ https://itpass.scitec.kobe-u.ac.jp/exp/fy2018/180806/lecture_shell-editor/pub/

北⼤理学院 情報実験第三回 INEX 2016(三上峻)「最低限 Unix (Linux) II シェル・テキストエディタ」◦ http://www.ep.sci.hokudai.ac.jp/~inex/y2016/0506/lecture/pub/index.html
IT⽤語辞典 e-Words 「シェル 【 shell 】」◦ http://e-words.jp/w/%E3%82%B7%E3%82%A7%E3%83%AB.html

Newham, Rosenblatt 著, QUIPU LLC 遠藤美代⼦ 訳「⼊⾨ bash 第2版」オライリー・ジャパン (1998)
Linda Lamb 著, 福崎俊博 訳「 vi ⼊⾨」株式会社アスキー (1992)