山下 達也 (北大理・宇宙理学専攻) 2010/05/07 (金)

Slides:



Advertisements
Similar presentations
Nano 北海道大学大学院 理学院 宇宙理学専攻 修士課程 1 年 堺 正太朗 nano. nano ?? Curses を用いたテキストエディタの一種 スクリーンエディタ CUI を用いて編集可能.
Advertisements

情報処理基礎演習Ⅱ 地球環境学科 伊藤,小黒 TA 川野,馬場. 講義の内容 UNIX 系の OS の使い方( Linux の使い方) (始めのうちは慣れないため扱いづらいか も・・・) 起動・終了 ディレクトリ(フォルダ)の構造 基本的なコマンドの使い方 エディタ( vi ) ファイルの操作,管理.
Debian の世界へようこそ! 北大 理学院 宇宙理学専攻 惑星宇宙グループ M1 三上 峻.  Debian GNU/Linux  Debian プロジェクト  GNU プロジェクト  Debian GNU/Linux とは  Debian インストール  パッケージ  Debian.
最低限 UNIX (2) パーミッション・シェル・ テキストエディタ 2012 年度 INEX TA 高橋康人.
Faculty of Computer and Information Sciences, Hosei University Resource Administration Team CIS RAT 1 Linux リテラシ 2006 第 3 回 エディタ、シェル.
北海道大学大学院 理学院 宇宙理学専攻 高橋康人.  シェル  シェルとは何か?  シェルの機能  シェルスクリプト  テキストエディタ  テキストエディタとは何か?  vi の使い方  まとめ.
シェル シェルスクリプト 最低限 vi 山下 達也 (北大理・宇宙理学専攻) 20 10/05/07 ( 金 ) INEX 第4回 / 最低限 UNIX(Linux) その3.
シェル シェルスクリプト 最低限 vi 山下 達也 (北大理・宇宙理学専攻) 20 10/05/07 ( 金 ) INEX 第4回 / 最低限 UNIX(Linux) その3.
Viva !! vi 北海道大学大学院 理学院宇宙理学専攻 宇宙惑星グループ 修士 1 年 近藤 奨.
P HI T S スクリプト言語を用いた PHITS の連続 実行 Multi-Purpose Particle and Heavy Ion Transport code System title 年 2 月改訂.
北海道大学大学院 理学院 宇宙理学専攻 荻原 弘尭.  OS の大まかな構造  カーネル  シェル  シェルとは何か ?  シェルの機能  シェルスクリプト  テキストエディタ  テキストエディタとは何か ?  vi の使い方  まとめ.
BBT大学 Ruby on Rails開発環境セットアップマニュアル
UNIX利用法.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
UNIX利用法 情報ネットワーク特論資料.
知能機械工学科 担当:長谷川晶一 TA:新・後藤・ナンバ
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Unix生活 Vol.1
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
物理実験 I 情報実験第9回 Modified 2005/12/2 徳永 義哉Original 2003/12/12 中神 雄一
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
RGWS Unix生活 テキストエディタと便利ツール
第3回 ファイルとフォルダ 伊藤 高廣 計算機リテラシーM 第3回 ファイルとフォルダ 伊藤 高廣
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Advanced Unix Commands
情報処理 第12回の教材 プレゼンテーションソフト PowerPoint 高知大学 共通教育 理学部 対象 担当教員 : 塩田
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
コンピュータ演習Ⅰ 8月7日(日) 1限目 ファイルの種類.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
ファイルシステムとコマンド.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第1回 イントロダクション 担当:青木義満
xxxxxx . yyy xxxxxx Linuxにおける情報管理 一般的なファイル UNIX における情報管理の単位 ファイルの種類を表す
情報科学1(G1) 2016年度.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
スクリプト言語を用いたPHITSの連続実行
データベース設計 第9回 Webインタフェースの作成(1)
鯖管のすヽめ.
第1回プログラミング入門.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
計算物理学基礎 第1回 UNIXの基礎 C言語の基本.
情報処理概論Ⅰ 2007 第4回 2018/11/30 情報処理概論Ⅰ 第4回.
OSの仕組みとその機能 1E16M001-1 秋田 梨紗 1E16M010-2 梅山 桃香 1E16M013-3 大津 智紗子
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
平成30年度高知工科大学教職科目 微分方程式特論I 11 高知大学教育学部技術教育コース 北川 晃.
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
パソコンのしくみ ハードウェア OS(Operating System) アプリケーション NEC DOS
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
スイッチを入れる前に… 講習を受けていない人は、まだスイッチを入れないこと。 まず講習を受けてセットアップを行ってください 注意.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
UNIX演習 情報ネットワーク特論.
Nanoってなんなの 北大理学院 高橋康人.
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
Linux の世界に 触れてみよう! 情報実験 第 3 回 (2005/10/21)
C言語 はじめに 2016年 吉田研究室.
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
プログラミング演習I 2003年7月2日(第11回) 木村巌.
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
C#プログラミング実習 第1回.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

山下 達也 (北大理・宇宙理学専攻) 2010/05/07 (金) INEX 第4回/最低限 UNIX(Linux) その3 シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) 2010/05/07 (金) 文字の色は他のスライドを参考にする[済]

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

シェル

シェルとは? シェルはユーザとカーネルとの仲介役 カーネル[第3回] シェルとは「殻」の意味 シェル カーネル リクエスト 仲介 レスポンス OS の中核となる部分 アプリケーションソフト・ハードの仲介役 シェルとは「殻」の意味 カーネルとシェルの絵をどうにかできないものか?

シェルの役割 ユーザインターフェイス (コマンド・インタプリタ) アプリケーションソフトの環境設定 プログラミング言語

ユーザインターフェース ユーザとカーネルの仲介役 プロンプトの表示 コマンドの読み込み → 解釈 → 実行 カーネルからの返答をユーザに返す ユーザからのコマンドを待ち受ける コマンドの読み込み → 解釈 → 実行 この機能を「コマンド・インタプリタ」と呼ぶ カーネルからの返答をユーザに返す 今使っているターミナルは Terminal で OK?[済]->OK!

ユーザインターフェース シェルの動作例 : date コマンドでカーネルから日時を取得 シェルはユーザからのコマンドを待ち受ける OS Kterm         × hoge@joho:~$ OS ユーザ Terminal        × カーネル プロンプト (コマンド受け付け) シェルの動作例 : date コマンドでカーネルから日時を取得 シェルはユーザからのコマンドを待ち受ける 今使っているターミナルは Terminal で OK?[済]->OK!

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

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

アプリケーションソフトの環境設定 アプリケーションソフト (ブラウザ, メーラ, エディタ など) で使用する環境を設定 ユーザ名, ホームディレクトリ, 言語環境, ... 「環境変数」 に文字列を代入することで設定 例: 言語環境 LANG=C ターミナルの種類 TERM=xterm 設定には export コマンドを使用 詳しくは実習編で!! 設定の仕方も書いておいた方が良いかも. [済]

プログラミング言語 シェルは条件分岐や繰り返しなどの制御機能を持つ シェルスクリプトファイル シェル以外にもスクリプトを作成する言語は存在 一連の手続き(コマンド)を書き込んだファイル 実行すると一連の手続きが行われる 拡張子を .sh とするのが慣習 「シェルスクリプト」編で詳しく紹介 シェル以外にもスクリプトを作成する言語は存在 例: perl, ruby, python スクリプトは台本の意味. 拡張子 .sh に関する説明を入れる[済]->拡張子が .sh でなくともスクリプト自体は機能する

Unix 系 OS の代表的なシェル sh, bash, csh, tcsh, ksh, zsh, … それぞれ異なる特徴を持つ ユーザはシェルを選択可能 Windows や Mac にもシェルが存在 Windows: Explorer, コマンドプロンプト Mac OS : Finder シェルそれぞれの違いを強調[済]-> 付録を作成 シェルの変更方法を記述[済] 9x 系 -> 95, 98, Me のこと NT 系 -> 2000, XP, Vista, windows7 のこと 互換シェル -> Explorer と互換性のあるシェルのこと Explorer ->windows マシンのデフォルトのシェル. マウスでの操作が可能 Finder -> 基本的には Explorer の Mac 版と思っていれば良さそう

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

シェルスクリプト

シェルスクリプトの目的 単純な作業の繰り返しを自動処理させる 既存のコマンドの組み合わせで新しいコマンドを作る 自分は楽をする 人為ミスを減らす 既存のコマンドの組み合わせで新しいコマンドを作る 例:ファイルのバックアップ コマンドも実はファイルとして存在することについて言及 %Y を %y に変えると, 下二桁で表示される

シェルスクリプトの目的 例:ファイルのバックアップ 直接手でコマンドを打ってみる $ date ‘+%Y-%m-%d’ 2010-05-07 $ cp file.txt file_2010-05-07.txt $ ls file.txt file_2010-05-07.txt 現在の日付を表示 ファイルをコピー 手動で作成されたファイル コマンドも実はファイルとして存在することについて言及 %Y を %y に変えると, 下二桁で表示される

シェルスクリプトの目的 例:ファイルのバックアップ シェルスクリプトを書いてみる $ lv makebackup.sh #!/bin/bash NICHI=`date ‘+%Y-%m-%d’` cp file.txt file_${NICHI}.txt 日付をシェル変数に代入 ファイルをコピー シェルスクリプトファイルの中身を見る インタプリタ(解釈するコマンド)を指定 lv で見ることにしても良いのでは?[済] lenny では /bin/sh から /bin/bash にリンクが貼られている

シェルスクリプトの目的 例:ファイルのバックアップ シェルスクリプトを実行してみる $ ./makebackup.sh $ ls file.txt file_2010-05-07.txt makebackup.sh シェルスクリプト ファイルを実行 シェルスクリプトによって 自動的に作成されたファイル こういうシェルスクリプトを使うと毎日バックアップを取るのに使える

シェルスクリプト応用編 シェル変数を利用して汎用性を持たせる 制御構造の活用 順次構造 判断構造 繰り返し構造 処理 A 処理 B 処理 C 具体例を経験にそくして記述 バックアップの例 課題として実際に 作成してもらいます

シェルスクリプト応用編 シェル変数を利用して汎用性を持たせる 制御構造の活用 順次構造 判断構造 繰り返し構造 NO if, case 条件 処理 B 処理 A 処理 C YES NO 条件 具体例を経験にそくして記述 ディレクトリの中にファイルがあれば消去, そうではなかったら何もしない 課題として実際に 作成してもらいます

シェルスクリプト応用編 シェル変数を利用して汎用性を持たせる 制御構造の活用 順次構造 判断構造 繰り返し構造 ループ開始 for, while ループ開始 処理A ループ終了 処理B 具体例を経験にそくして記述 1 から 10 まで順番に足していく 1 から順番に足していって和が 100 を超えたら止める 課題として実際に 作成してもらいます

テキストエディタvi

テキストエディタ テキストファイル[第3回]を作成するためのアプリケーションソフト vi, emacs, nano などがある シェルスクリプトもテキストではあるが, 拡張子は .sh とするのが慣習となっている nano は vine や mac では標準実装されていない

vi (ブイアイ) とは? vi = Visual extended editor テキスト作成の効率化の徹底的追求 修飾キーなしに単純なキー入力で操作が可能 但し操作方法が特徴的で, 慣れが必要 UNIX のコマンドも自由に呼び出せる 一部のプログラマー, 研究者に人気 Colinux (windows 上で linux を起動する為のアプリケーション)には vi が入っていないという報告事例有り.

なぜ vi を使うか? トラブル時に利用する/できる可能性が最も高い システム管理者にとっては必修のツール vi が入っていない UNIX 系 OS はほとんど無い!! システムへの負荷が小さく, 軽快 システム管理者にとっては必修のツール UNIX コマンドの呼び出しの例 コマンドモードで :r!date :r!cat hogehoge.txt :!cal 5 2010

vi の操作 vi コマンドで起動 vi の基本: モード vi ではキー入力が 2 つの意味を持つ コマンドモード 挿入モード キー入力 = 編集命令 (削除,改行, 保存など) 挿入モード キー入力 = 文字入力 UNIX コマンドの呼び出しの例 コマンドモードで :r!date :r!cat hogehoge.txt :!cal 5 2010

vi の操作 シェル vi (コマンドモード) vi (挿入モード) a, A, i, I, o, O キー $ vi [filename] ESC キー :wq, :q! A, …キー と書いておいた方が良いかも[済]

vi の操作 困ったら ESC キー でコマンドモードへ シェル vi (コマンドモード) vi (挿入モード) a, A, i, I, o, O キー $ vi [filename] ESC キー :wq, :q! 困ったら ESC キー でコマンドモードへ A, …キー と書いておいた方が良いかも[済]

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

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

付録

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

各シェルの概要(2) csh (C shell) tcsh (TENEX C Shell) Bill Joy 氏が考案

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