Solaris


vi操作

Solaris/Linux系OSにはWindowsのメモ帳的なエディターとしてviコマンドというものが存在する。
ファイル編集をする場合に必ずといって必要となるので覚えておく必要がある。
抜け道としてWindowsのメモ帳で記載してサーバ上にftpする方法もあるが凄いめんどくさいです。

私が新人の頃(Windows3.1/98の時代だが)はメモ帳でviコマンドが使用出来るエディターで強制的に勉強されられました。
以下に記載するだけのvi操作を覚えればどこでも十分通用します。

1.コマンドモードと入力モードの違い
コマンドモード:検索や、置換、終了などを行えるモード
入力モード:カーソルの位置に対して書き込めるモード

2.ファイル拡張子
Solaris/Linuxではファイル拡張子はあまり意味がありません。
l.ogならログファイルとわかりやすい様に作成する以下のルール例が存在する程度です。
※一部ミドルウェアはWindowsと共通にするために決めうちで拡張子が必要なものがあります
拡張子 用途
log 各種ログファイル
conf 設定ファイル
ini 設定ファイル(ORACLEとかini好きですよね)
sh/csh 実行ファイル
html htmlファイル
php phpファイル
cgi cgiファイル
拡張子なし テキストファイルかバイナリファイル
.
3.vi設定
solarisのコンソールではviが正常に表示されない場合は環境変数を変更する必要がある。
$ export TERM=vt100
$ export EDITOR=vi
通常のTera Term接続の場合は以下
$ export TERM=xterm
$ export EDITOR=vi

4.viの起動
ここでは/tmp配下にtestというファイルを作成している。
$ vi /tmp/test
viエディタ起動時はカーソルが左上で点滅をしているコマンドモードです。


5.入力モードに変更
小文字の 「i」を打つ。
カーソルが左上で点滅のまま全く画面は変わりませんが入力モードとなります。


6.文字を書き込む
testと入力するとカーソルの位置に文字が表示されます。


7.入力モードを終了する。
「ESC(エスケープ)」を打つと入力モードが終了し、コマンドモードに戻ります。


8.viを終了する。
コマンドモードで「:wq」を打つと書き込み終了となります。


後は下の表を見て基本「vi」操作一覧を覚えて下さい。

基本「vi」操作一覧
コマンドモード 結果 意味(半分適当)
:wq
:w
:q
書き込み終了
書き込み
書き込みしないで終了
Write Quit
Write
Quit
:wq! read権限ファイルなどに強制書き込み終了 Write Quit !(強制)
i (小文字) カーソルの位置から書き込み Insert
I (大文字) 行の先頭から書き込み Insert
r (小文字) カーソルの上の一文字を上書き Re write
R (大文字) カーソルの位置から続けて書き込み Re write
o (小文字) カーソル行の下に一行挿入し、書き込み Over Write
O (大文字) カーソル行の上に一行挿入し、書き込み Over Write
yy カーソル行をバッファにコピー
p コピーしたバッファ内の行をカーソルの下の行にペースト paste
u (小文字) 直前の実施状態に戻る undo
x (小文字)
10x
カーソルの一文字削除
カーソルの一文字から十文字までを削除

dd (小文字)
10dd
カーソルの行削除
カーソルの行から下に十行削除
delete
0 行頭にジャンプ
$ 行末にジャンプ
G ファイルの最終行の行頭までジャンプ
:数字 指定行にジャンプ
/文字
n (小文字)
カーソル位置から下に文字を検索
下に順検索


N (大文字)
カーソル位置から上に文字を検索
上に順検索

「Ctrl」+u (小文字) 表示している一画面分上にスクロール
「Ctrl」+d (小文字) 表示している一画面分下にスクロール

上級「vi」操作一覧
コマンドモード 結果
:s%/文字/もじ/g 文字をもじに全置換
:%s@/tmp/test@/var/log@g /tmp/testを/var/logなどにパスも使用可能な全置換
cw カーソルのカラムのみを書き込み変換
:read ファイル名 カーソル行の下に指定のファイルないを読み込み
:set number 全行頭に行番号を入力
:set list
:set nolist (戻す時)
スペースはそのままスペースで表示
タブは$で表示


先頭のページ 前へ 次へ ページ末尾へ