$ lv ~/.bashrc . . . # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt #force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac . . . |
$ lv sugoi_gazou.gif GIF89ah^Aü^@õ5^@^P^P^P^[^[^["""(((---111333888AAADDDUUU___fffnnnwwwxxx{{{}}}<9D>SS<9A>\\<97>ff<90>xx¤AA JJÿw<81><81><81><84><84><84><88><88><88><8A><8A><8A><94><94><94><96><96><96><99><99><99>ªªª>>>>>>ÿ<88><88>ÿ<8F>ÿ<99><99>ÿ<9F><9F>ÿ££ÿ¤¤ÿ ªªÿ‾‾ÿ>>>>ÌÌÌÏÏÏÑÑÑÝÝÝÿÀÀÿÌÌÿÝÝîîîÿîîÿÿÿ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@!ù^D^@^^^@^@^@!þ4 Image generated by GPL Ghostscript (device=pnmraw) ^@!ÿ^KNETSCAPE2.0^C^A^@^@^@,^@^@^@^@h^Aü^@^@^FþÀ<9A>pH,^ZH¤rÉl:<9F>?¨tJ-Z‾جvËíz¿à°xL.<9B>Ïè´zÍn>>ßð,|N‾Ûïø 1/4 ~Ïïûÿ<80><81><82><83><84><85><86><87><88><89><8A><8B><8C><8D><8F><90><91><92>W^L‾<95>?^L <98> /^\^\μ<96>¡¡ <93>ª<<ª??<95>μ^\?¤?‾ ¤μ ! ^\"¬ÀÁ<8B>®°?´<99>‾ ±? £¬©ÂÒÓ<81><95><98>μ<9A> 1/4 <95> Ý ¢ÖÔäåùÆæéê<86>¿ëîïðñòóôõö÷øò<98>×ùýþ×?æ<8C>úǰà^Sôè<84>´àÀàÁ<87><87>^P£Ê<9C>ȱ¢Å<8B>^X?êÜȱ£Ç Ã<8A>^\É?£^F<86>^LÜÌ ,^@<86>ÃÊ<98>àá^B^E ^UJFD ?gþE<9E>><83>B^D*4(Ñ¢#O2^X°`N1ZC^Bp¡±bÅ<88>< |
$ vi [ファイル名]引数のファイル名は既に存在するファイル名, あるいはこれから作りたい新規のファイル名を入力します.
:wqファイルの編集作業を保存したり, 終了してコマンドプロンプトに戻るには幾つかの方法があります.
:q
| vi を終了する |
:q!
| バッファでの編集内容を放棄し vi を強制的に終了する |
:w |
バッファの内容をファイルに保存 |
:w (ファイル名) |
バッファの内容を指定したファイル名で保存 |
:w! |
バッファの内容を強制的にファイルに保存 |
:wq |
バッファの内容をファイルに保存し, vi を終了する. |
ZZ |
バッファの内容をファイルに保存し, vi を終了する. |
$ vi rensyu.txt i : : |
<-- rensyu.txt という名前の新規ファイルを viで開く <-- 挿入モードへ移る(現在いるカーソルの左側に挿入) <-- 編集 |
以下のコマンドで書き込んだ内容が表示されましたか? 表示されれば OK です.
$ cat rensyu.txt
先ほど編集したファイルを vi で開いて, 文字の削除, 行の挿入・削除などを行い, 別名(rensyu2.txt)で保存してみましょう. 一文字削除や一行削除は コマンドモードからできます. (以下はその例)
$ vi rensyu.txt : : |
<-- [練習1] で作成した rensyu.txt を viで開く <-- 適宜, 操作・編集してみましょう |
以下のコマンドで変更した内容が表示されましたか? 表示されれば OK です.
$ cat rensyu2.txt
どうですか? うまく作成できましたか?
初歩的な vi の使い方はなんとなく理解できたでしょうか? 実際にはもっといろいろな使い方があるのですが 一度に覚える必要はありません. 実際にファイルの編集をしながら, "かゆい"ところがあったら その都度新しい命令, 機能を調べてゆけば良いです. 最低限, ファイルのオープンクローズ, 挿入モードとコマンドモード間の移り方("a,i,o"コマンドと ESC キー), 1文字削除("x"), コマンドモードでのカーソルの動かし方が わかっていれば, なんとかなります. もう少し高度な使い方をしたい人は自分で調べてみましょう.
では, 次はエディタを用いてシェルスクリプトを作成してみましょう.
「コマンドモード」で実行する基本的なコマンドは次の通りです.
h
j
k
l
a
A
i
I
o
O
x
dd
u
/文字
?文字
n
N
:r ファイル名
「挿入モード」で実行する基本的なコマンドは次の通りです.
ESC キー
DEL キー
上で紹介したのは, vi を使用する上での基本的な事項だけです. 以下の内容は授業では説明しませんが, より便利に vi を使う参考として時間と興味のある方は御一読を.
※以下は断りのない限り「コマンドモード」で使用するコマンドです.
※いきなりですが, これは「コマンドモード」とは関係ありません.
$ vi +18
[ファイル名] |
ファイルをオープンし, 行18に位置づける |
$ vi +/"mustard greens"
[ファイル名] |
ファイルをオープンし, 最初の"mustard greens"にカーソルを移動 |
$ vi -r
[ファイル名] |
クラッシュしたファイルを回復し読み込む |
$ view [ファイル名]
|
読むだけのためにファイルを読み込む |
w
W
b
B
Enter キー
Backspace キー
スペース キー
H
M
L
Ctrl-F
Ctrl-D
Ctrl-B
Ctrl-U
G
21G
D
:5,10 d
yy |
行の取り込みまたはコピー |
Y |
行の取り込みまたはコピー |
dd |
行の削除 |
P |
取り込みまたは削除された行を現在行の上に挿入 |
p |
取り込みまたは削除された行を現在行の下に挿入 |
:1,2 co 3 |
行1から行2までを行3の下へコピー |
:4,5 m 6 |
行4から行5までを行6の下へ移動 |
:set nu |
行番号の表示 |
:set nonu |
行番号の非表示 |
:set ruler |
ルーラーの表示 |
:set noruler |
ルーラーの非表示 |
:set showmode |
入力モードの表示 |
:set noshowmode |
入力モードの非表示 |
Ctrl-G |
ファイル名, 行数, 位置の表示 |
Ctrl-L |
画面の再描画 |
vi 以外にもテキストエディタは数多く存在します. たとえば, vi と並ぶ代表的なエディタとして emacs があります. emacs は vi とは対照的に, 動作が多少重いながらも使いやすくなおかつ多機能であることを特徴としています. ちなみに vi 信者と emacs 信者の対立は計算機関係者の間では有名であり, いずれも自らが最高のエディタであると主張して譲りません. 興味を持った方は「エディタ戦争」について調べてみるとよいでしょう. (ただしもちろん実習後に!)
実習では最低限知っておくべきエディタとして vi を取り上げましたが, 好みに応じて他のエディタを使ってもけっこうです.
最終更新日: 2014/04/17(荻原弘尭) 若干加筆 |