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

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 の使い方  まとめ.
0 クイックスタートガイド|管理者編 スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス.
シェル シェルスクリプト 最低限 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利用法 情報ネットワーク特論資料.
山下 達也 (北大理・宇宙理学専攻) 2010/05/07 (金)
知能機械工学科 担当:長谷川晶一 TA:新・後藤・ナンバ
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Unix生活 Vol.1
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
2015年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
物理実験 I 情報実験第9回 Modified 2005/12/2 徳永 義哉Original 2003/12/12 中神 雄一
東京工科大学 コンピュータサイエンス学部 亀田弘之
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
Java I 第2回 (4/18)
須賀 友也 神戸大学 理学研究科 地球惑星科学専攻 M1
RGWS Unix生活 テキストエディタと便利ツール
第3回 ファイルとフォルダ 伊藤 高廣 計算機リテラシーM 第3回 ファイルとフォルダ 伊藤 高廣
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
Advanced Unix Commands
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
ファイルシステムとコマンド.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第1回 イントロダクション 担当:青木義満
xxxxxx . yyy xxxxxx Linuxにおける情報管理 一般的なファイル UNIX における情報管理の単位 ファイルの種類を表す
情報科学1(G1) 2016年度.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
Cygwin の install.
スクリプト言語を用いたPHITSの連続実行
データベース設計 第9回 Webインタフェースの作成(1)
鯖管のすヽめ.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
計算物理学基礎 第1回 UNIXの基礎 C言語の基本.
情報処理概論Ⅰ 2007 第4回 2018/11/30 情報処理概論Ⅰ 第4回.
OSの仕組みとその機能 1E16M001-1 秋田 梨紗 1E16M010-2 梅山 桃香 1E16M013-3 大津 智紗子
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス
パソコンのしくみ ハードウェア OS(Operating System) アプリケーション NEC DOS
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
情報処理概論Ⅰ 2007 第5回 2019/4/7 情報処理概論Ⅰ 第5回.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
UNIX演習 情報ネットワーク特論.
Nanoってなんなの 北大理学院 高橋康人.
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
Linux の世界に 触れてみよう! 情報実験 第 3 回 (2005/10/21)
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
プログラミング演習I 2003年7月2日(第11回) 木村巌.
情報処理概論Ⅰ 2007 第6回 2019/5/16 情報処理概論Ⅰ 第6回.
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
C#プログラミング実習 第1回.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

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

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

シェル

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

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

ユーザインターフェース ユーザとカーネルの橋渡し役 プロンプトの表示 ユーザからのコマンドを待ち受ける コマンドの読み込み → 解釈 → 実行 この機能を「コマンド・インタプリタ」と呼ぶ カーネルからの返答をユーザに返す

ユーザインターフェース シェルの動作例 : date コマンドでカーネル から日時を取得 シェルはユーザからのコマンドを待ち受ける Kterm × OS ユーザ Terminal × カーネル カーネル ユーザ プロンプト(コマンド受け付け)

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

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

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

プログラミング言語 シェルは条件分岐や繰り返しなどの制御機 能を持つ シェルスクリプトファイル 一連の手続き ( コマンド ) を書き込んだファイル 実行すると一連の手続きが行われる 拡張子を.sh とするのが慣習 「シェルスクリプト」編で詳しく紹介

Unix 系 OS の代表的なシェ ル sh, bash, csh, tcsh, ksh, zsh, … それぞれ異なる機能を持つ ユーザはシェルを選択可能 Windows や Mac にもシェルが存在 Windows: Explorer, コマンドプロンプト Mac OS : Finder

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

シェルスクリプ ト

シェルスクリプトの目的 単純な作業の繰り返しを自動処理させる 自分は楽をする 人為ミスを減らす 既存のコマンドの組み合わせで新しいコマ ンドを作る 例:ファイルのバックアップ

シェルスクリプトの目的 直接手でコマンドを打ってみる $ date ‘+%Y-%m-%d’ $ cp file.txt file_ txt $ ls file.txt file_ txt 現在の日付を表示 ファイルをコピー 手動で作成されたファイル

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

シェルスクリプトの目的 例:ファイルのバックアップ シェルスクリプトを実行してみる $./makebackup.sh $ ls file.txt file_ txt makebackup.sh シェルスクリプトファイルを実行 シェルスクリプトによって 自動的に作成されたファイル

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

シェルスクリプト応用編 シェル変数を利用して汎用性を持たせる 制御構造の活用 順次構造 判断構造 if, case 繰り返し構造 処理 B 処理 A 処理 C 処理 A YES NO 処理 B 条件 課題として実際に作成してもらいます

シェルスクリプト応用編 シェル変数を利用して汎用性を持たせる 制御構造の活用 順次構造 判断構造 繰り返し構造 for, while ループ開始 処理 A ループ終了 処理 B 課題として実際に作成してもらいます

テキストエディ タ vi

テキストエディタ テキストファイル [ 第 3 回 ] を作成するた めのアプリケーションソフト vi, emacs, nano などがある シェルスクリプトもテキストファイル なので, vi などで編集

vi ( ブイアイ ) とは ? vi = Visual extended editor テキスト作成の効率化の徹底的追求 修飾キーなしに単純な文字入力で操作が可能 但し操作方法が特徴的で, 慣れが必要 UNIX のコマンドも自由に呼び出せる 一部のプログラマー, 研究者には人気らしい

なぜ vi を使うか ? トラブル時に利用する / できる可能性が最も高 い vi が入っていない UNIX 系 OS はほとんど無い !! システムへの負荷が小さく, 軽快 システム管理者にとっては必修のツール

vi の操作 vi コマンドで起動 vi の基本 : モード vi ではキー入力が 2 つの意味を持つ コマンドモード キー入力 = 編集命令 ( 削除,改行, 保存など ) 挿入モード キー入力 = 文字入力

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

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

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

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

付録

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

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

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