Linux リテラシ 2006 第3回 エディタ、シェル Faculty of Computer and Information Sciences, Hosei University Resource Administration Team CIS RAT 1 Table of Contents テキスト処理 エディタを起動する モード シェル bash リダイレクト パイプ グロブ エイリアス シェルスクリプト CIS RAT 2 テキスト処理 Linuxでテキストを処理するエディタ vi emacs その他 ほとんどの設定はテキストで行う テキストエディタの習得が必須 CIS RAT 3 vi 代表的なテキストエディタ シンプルながら多彩な機能を持つ ほとんどのLinux環境で使用できる コマンドがちょっと複雑 Windowsでいう「メモ帳 (notepad)」 CIS RAT 4 エディタ (vi) を起動する 「vi ファイル名」でエディタを起動できる sample.txt というファイルを開く $ vi sample.txt 存在しないファイル名を指定した場合、 新規作成される CIS RAT 5 vi のモード ノーマルモード ファイルや文字列の編集を行うためのモード コピー 保存 & ペースト など 挿入モード 文字を入力するためのモード vi 起動直後は「ノーマルモード」 CIS RAT 6 挿入モード 文字を入力するためのモード ノーマルモードから「i」と入力 左下に「-- 挿入 --」とモード表示 自由にテキストを入力できる CIS RAT 7 挿入モードの例 (1) 「i」と入力 CIS RAT 8 挿入モードの例 (2) 好きに書ける CIS RAT 9 ノーマルモード テキストの編集を行うためのモード 挿入モードから「Esc」キーを入力 左下の「-- 挿入 --」が消える 様々なコマンドを入力できる CIS RAT 10 ノーマルモードへの移行 「Esc」キーを入力 CIS RAT 11 カーソルの移動 カーソルを移動する (ノーマルモード) 上へ移動: 「↑」 または 「k」キー 下へ移動: 「↓」 または 「j」キー 左へ移動: 「←」 または 「h」キー 右へ移動: 「→」 または 「l」キー 古いシステムでは「↑↓←→」は使えない H J CIS RAT K L 12 カット & ペースト カーソル位置を削除 : カーソル位置を一行削除 : カーソル位置を一行コピー : 貼り付け : [x] [dd] [yy] [p] vi は「削除 = 切り取り」 削除、コピーしたものは[ p ]で貼り付けられる CIS RAT 13 やり直し 手前の操作を取り消す [ u ] CIS RAT 14 検索 /検索したい文字列 処理中のテキストから文字列を探す (下方向) 検索中に [ n ] : 下方向に再度検索 検索中に [ N ] : 上方向に再度検索 CIS RAT 15 保存と終了 現在の内容を保存する (write) [ :w ] 保存してviを終了する (write and quit) [ :wq ] 保存しないでviを終了する [ :q! ] CIS RAT 16 vi まとめ コマンドラインから「vi ファイル名」で起動 起動時はノーマルモード ノーマルモードから「i」で挿入モードへ 挿入モードでは文字を自由に書ける 挿入モードから「Esc」でノーマルモードへ [ :wq ] で保存して終了 [ :q! ] で保存しないで終了 CIS RAT 17 シェル 今までにコマンドを入力してた画面 Linuxの複雑な制御を簡単なコマンドで操作す る「殻(= shell)」の役割 シェルにも色々ある bash tcsh zsh など CIS RAT 18 bash 皆さんの環境で標準的に使われるシェル オートコンプリートが便利 途中まで入力して [Tab]キーを押す 例えば $ unz[TAB] $ unzip unz まで入力後 Tabキーを押す unzipになる CIS RAT 19 標準入出力 プログラムは標準入力と標準出力がある 通常は「キーボードから入力」→標準入力 通常は「画面へ出力」→標準出力 これまで「出力」と書いていたのは 「標準出力へ書き出す」を意味している CIS RAT 20 標準入出力のイメージ 例えば $ echo Hello, world! echoは「引数に書かれた文字列を標準出力へ出力」 CIS RAT 21 $ echo Hello, world! 引数を画面上に表示 Hello, world と画面に表示される CIS RAT 22 リダイレクト(1) 標準出力先をファイルに変更する 通常は画面に出力 コマンド名 > リダイレクト先ファイル 例えば $ echo Hello, world > hello.txt CIS RAT 23 $ echo … > hello.txt $ echo Hello, world > hello.txt “Hello, world” リダイレクト hello.txt echo “Hello, world” と書き込まれた hello.txt が完成 画面には何も表示されない CIS RAT 24 リダイレクト (2) $ echo Hello, world > hello.txt $ echo Hello, world > hello.txt と2回入力しても、1回分しか残っていない リダイレクト先に指定すると、毎回消去される そんなときは「追記モード」のリダイレクト コマンド名 >> リダイレクト先ファイル ファイルの最後から書き込み始める CIS RAT 25 追記モード $ echo Hello3 > hello.txt $ echo Hello2 >> hello.txt $ echo Hello1 >> hello.txt $ cat hello.txt Hello3 > ではなく >> Hello2 Hello1 3行すべて 表示される CIS RAT 26 リダイレクト (3) ファイルを標準入力として使える 通常はキーボード コマンド名 < リダイレクト元ファイル 例えば $ sort < hello.txt sortは「標準入力を読んで順番に並べて表示」 CIS RAT 27 $ sort < hello.txt こんなファイルも リダイレクトすれば 並び替えて表示 $ cat hello.txt Hello3 Hello2 Hello1 $ sort < hello.txt Hello1 Hello2 Hello3 CIS RAT 28 パイプ あるコマンドの標準出力を 次のコマンドの標準入力に流す コマンド1 | コマンド2 コマンド1の出力を、コマンド2の入力へ流す 例えば $ echo Hello, world | rev revは「標準入力を読んで逆順に表示」 CIS RAT 29 $ echo Hello, world! | rev Hello, world dlrow ,olleH echo 標準入力 rev 標準出力 echo echo 標準出力 rev rev 標準入力 echo した文字列が逆順に出力される CIS RAT 30 パイプのイメージ コマンド1 | コマンド2 CIS RAT 31 複雑な入出力 $ echo Hello, world > input $ cat input | rev | rev > output $ cat output パイプやリダイレクトは組み合わせられる なにが画面に表示される? CIS RAT 32 グロブ シェルが特殊記号を解釈し、該当するファイル 名に展開する abc* – “abc”から始まる全てのファイル名 * は全ての文字列 abc? – “abc”から始まり4文字のファイル名 ? は何か1文字 CIS RAT 33 グロブの例 abc* ○ abcdefg : * → defg ○ abc : * は0文字でもよい × abdaaaa : abc が先頭に来ない abc? ○ abcd × abc × abcde :?→d : ? は0文字になれない : ? は de になれない CIS RAT 34 エイリアス (別名) コマンドに別名を付ける 頻繁に使うコマンドを短く書ける alias 別名='コマンド' 例えば $ alias la='ls -a' ls -a というコマンド(+引数)にlaという別名 CIS RAT 35 エイリアスの使用 エイリアスコマンドは、通常コマンドと同じように 扱える 例えば $ la 先ほど定義したので、 ls -a と同じ CIS RAT 36 エイリアス関係のコマンド 現在定義しているエイリアスを確認 alias 引数なし 定義しているエイリアスを取り消す unalias 別名 CIS RAT 37 シェルスクリプト ファイルにコマンド列を書いて、そのファイルを実行する 書かれたコマンド列を順番に実行してくれる 複雑な操作を繰り返し行う場合などに便利 今まで使ってきたコマンドをファイルに書けばよい CIS RAT 38 シェルスクリプト [ex.sh] ex.sh という名前のシェルスクリプトを作る *.sh という名前にするのが慣例 まずはテキストエディタで ex.sh を開く $ vi ex.sh CIS RAT 39 シェルスクリプト [ex.sh] viで下記の内容のテキストを作成 [ i ] で挿入モードへ 下記の内容を記述する [ Esc ] でノーマルモードへ戻る [ :wq ] で保存して終了 #!/bin/sh #comment echo sample shell script CIS RAT 41 シェルスクリプト [ex.sh] (続き) vi を終了したら、シェルスクリプトを動かす そのままでは動かない アクセス権限のうち「実行権限」が必要 「./シェルスクリプト名」で実行できる $ chmod a+x ex.sh $ ./ex.sh sample shell script CIS RAT 42 シェルスクリプトの解説 #!/bin/sh #comment echo … 一行目 シェルスクリプトであることを表す「おまじない」 二行目 # から始まる行は「コメント」として無視される 三行目 echo "…" を実行する CIS RAT 43 シェルのまとめ コマンドを打ち込んでいる環境が「シェル」 リダイレクトで出力結果をファイルに保存 パイプでコマンドとコマンドを接続 グロブで複数のファイル名を指定 エイリアスでコマンド入力を簡単に シェルスクリプトで複雑な処理を簡単に CIS RAT 44 演習問題 講義資料のURL http://rat.cis.k.hosei.ac.jp/article/rat/linuxli teracy/2006/editor_shell.html 演習問題のURL http://rat.cis.k.hosei.ac.jp/article/rat/linuxli teracy/2006/editor_shell_question.html CIS RAT 45
© Copyright 2025 ExpyDoc