$ 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で開く <-- "i" で挿入モードへ移る(現在いるカーソルの左側に挿入) <-- 編集(上記の文章を入力) |
以下のコマンドで書き込んだ内容が表示されましたか? 表示されれば OK です.
$ cat rensyu.txt With a screen editor you can scroll the page, move the cursor, delete lines, and more, while seeing the result of your edits as make them.
先ほど編集したファイルを vi で開いて, 以下のように文字の削除, 行の挿入・削除などを行い, 別名(rensyu2.txt)で保存してみましょう. 一文字削除や一行削除は ノーマルモードからできます.
$ vi rensyu.txt : : |
<-- [練習1] で作成した rensyu.txt を viで開く
|
以下のコマンドで変更した内容が表示されましたか? 表示されれば OK です.
$ cat rensyu2.txt We will modify this file ! With a screen editor we can scroll the page, and more, while seeing the result of your edits as make them.
どうですか? うまく作成できましたか?
初歩的な 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
:4,5 m 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 の機能を拡張してより使いやすくなった vim というエディタもあります. また,コマンド等が分かりやすく画面に書かれている nano というエディタもあります.
実習では最低限知っておくべきエディタとして vi を取り上げましたが, 好みに応じて他のエディタを使ってもけっこうです. nano は情報実験機にプレインストールされています. emacs はインストールされていないので,使ってみたい方は担当 VTA に声を掛けてください.
最終更新日: 2019/04/19(松岡 亮) |