vi editor command list

2009/05/12 11:18 | Posted by 양황귀
viコマンド一覧表
区分 コマンド 説明
カーソル移動 h
カーソル移動 j
カーソル移動 k
カーソル移動 l
カーソル移動 5l 文字モジ右にカーソルを移動イドウする
カーソル移動 Shift + g ファイルの最後の行の先頭に移動
カーソル移動 gg ファイルの先頭に移動
カーソル移動 $ 行の最後に移動
カーソル移動 0 ゼロ ギョウ先頭セントウ移動イドウ
カーソル移動 ^ 行の最初の空白でない文字に移動
カーソル移動 G  ファイルの末尾マツビ移動イドウ
カーソル移動 Ctrl + f ページアップ
カーソル移動 Ctrl + b ページダウン
カーソル移動 M カーソルを画面ガメン中心チュウシン移動イドウ
実行ジッコウレイ dd 移動イドウ p dd 移動イドウ p 行目ギョウメと6行目ギョウメえる。
ファイルサイ :e! 編集ヘンシュウ破棄ハキしてファイルのサイ
ファイル保存ホゾン :wq 現在編集中の内容を元のファイルに書き込んで終了
ファイル保存ホゾン終了シュウリョウ :w 編集ヘンシュウ結果ケッカ保存ホゾン
ヘルプ :help + エンター オンラインヘルプ表示ヒョウジ
編集ヘンシュウ:UNDO u  直前チョクゼン編集ヘンシュウ状態ジョウタイモド
編集ヘンシュウ検索ケンサク / 前方ゼンポウ
編集ヘンシュウ検索ケンサク ? 後方コウホウ
編集ヘンシュウ検索ケンサク n  前方ゼンポウサイ検索ケンサク
編集ヘンシュウ検索ケンサク N   後方コウホウサイ検索ケンサク
編集ヘンシュウ削除サクジョ x 現在カーソルのある文字を削除
編集ヘンシュウ削除サクジョ 3x 現在カーソルのある文字を削除 カウントの使用シヨウ
編集ヘンシュウ削除サクジョ X  カーソル直前チョクゼン文字モジ削除サクジョ
編集ヘンシュウ削除サクジョ D  カーソル以降イコウ削除サクジョ
編集ヘンシュウ削除サクジョ dw 現在カーソルのある単語を削除
編集ヘンシュウ削除サクジョ Shift + d カーソルから行末までを削除
編集ヘンシュウ削除サクジョ dd 現在カーソルのある行を削除(カット)
編集ヘンシュウ削除サクジョ 100dd 現在カーソルのある行を削除 カウントの使用シヨウ
編集ヘンシュウ置換チカン s/xxx/yyy/ xxxをyyyに置換チカン
編集ヘンシュウ置換チカン :s/xxx/yyy/g カーソルギョウゼン範囲ハンイとして、xxxをyyyに置換チカン
編集ヘンシュウ置換チカン :%s/xxx/yyy/g ファイルをゼン範囲ハンイとして、xxxをyyyに置換チカン
編集ヘンシュウ置換チカン :%s/xxx/yyy/gc ファイルをゼン範囲ハンイとして、xxxをyyyに置換チカン  確認カクニンしながら。
編集ヘンシュウ:ペースト p カーソルギョウシタにペースト
編集ヘンシュウ:ペースト 3p カーソルギョウシタにペースト バッファーが3カイペーストされる。
編集ヘンシュウ:ペースト P  カーソルギョウウエにペースト
編集ヘンシュウ文字モジ入力ニュウリョク i インサートモードになり、カーソルの前に文字列を挿入可能
編集ヘンシュウ文字モジ入力ニュウリョク a インサートモードになり、カーソルの後ろに文字列を挿入可能
編集ヘンシュウ文字モジ入力ニュウリョク o カーソル行の下に一行空白行を挿入
編集ヘンシュウ文字モジ入力ニュウリョク Shift + o カーソル行の上に一行空白行を挿入
編集ヘンシュウ文字モジ入力ニュウリョク ESC インサートモードからコマンドモードに戻る
編集ヘンシュウ文字モジ入力ニュウリョク I  カーソルギョウ先頭セントウから入力ニュウリョク開始カイシ
編集ヘンシュウ文字モジ入力ニュウリョク A  カーソルギョウ末尾マツビから入力ニュウリョク開始カイシ
編集ヘンシュウ文字モジ入力ニュウリョク r カーソルジョウ文字モジ置換チカン
編集ヘンシュウ文字モジ入力ニュウリョク R  以降イコウ入力ニュウリョク上書ウワガ状態ジョウタイ
編集ヘンシュウ文字モジ入力ニュウリョク O  カーソルギョウの上に一行空白行を挿入
編集ヘンシュウ文字モジ入力ニュウリョク J  カーソルギョウ直下チョッカギョウ連結レンケツ
編集ヘンシュウ:ヤンク yy カーソルギョウをヤンク(コピー)
編集ヘンシュウ:ヤンク 3yy カーソルギョウをヤンク(コピー) カウントの使用シヨウ
モードについて 起動直後 コマンドモード
モードについて i コマンド -> インサート モード
モードについて ESC インサート -> コマンド モード
モードについて : コマンド -> exラインエディタ モード
モードについて ESC exラインエディタ -> コマンド モード
起動 $ vi file.txt  
終了 :q! 編集ヘンシュウ結果ケッカ破棄ハキして強制終了
終了 :wq file_name 現在編集中の内容を指定されたファイルに書き込んで終了
終了 :wq! file_name 現在編集中の内容を指定されたファイルに上書きして終了

Ubuntu + NFSサーバでファイル共有

2009/05/12 10:40 | Posted by 양황귀
Ubuntu7.10 + NFSでファイル共有した際の設定メモ。
 

■NFSとは

Network File Systemの略で、ネットワークを介してUNIXシステム間でファイル共有を可能にする機能。リモートのファイルシステムをローカルファイルシステムと同じように扱うことができるようになる。元はSunが開発したもの。
 

■必要なパッケージ

$ sudo apt-get install portmap nfs-common nfs-kernel-server
 
NFSサーバにはkernel組込み版と通常daemon版の2種類がある。kernelサーバ版はkernel内部にカーネルスレッドとして組み込まれ ているのでパフォーマンスがよく、ファイルのロック機構も有効になる。nfs-user-serverは通常のdaemon版で、速度的にはkernel 版に劣るが柔軟な設定が可能なのが特徴。
 
サービスは以下のような感じ。
$ sysv-rc-conf --list | grep -E 'nfs|portmap'
nfs-common 0:off 1:off 2:on 3:on 4:on 5:on 6:off S:on
nfs-kernel-s 0:off 1:off 2:on 3:on 4:on 5:on 6:off
portmap 0:on 1:off 2:on 3:on 4:on 5:on 6:on S:on
nfs-kernel-sで表示が切れてるが本当はnfs-kernel-server。
 

■起動順序

Ubuntuではインストールすると勝手にサービスに登録されて起動したが、手動で起動する場合は起動順序に気をつける必要がある。起動順序に関して検索するとportmap→nfslock→nfsの順に起動しろという記述を目にするが、現在のバージョンではサービス名が変わっているようで、portmap→nfs-common→nfs-kernel-serverの順でいいと思う。一応/etc/rc3.d内のファイル名からサービス起動順序が確認できる。
portmapとnfs-common、nfs-kernel-serverの起動順序
itmst@mv1c3e:/etc/rc3.d$ ls *{portmap,nfs*}
S17portmap S20nfs-common S20nfs-kernel-server
nfs-commonやnfs-kernel-serverよりも先にportmapが起動していないとまずいことが分かる。RPCベースのサービスはportmapサービスに依存するので当然。
 

■RPC

portmapはRPC(Remote Procedure Call)を管理する。NFSサービスはRPCで提供される。 RPCはリモートマシンに用意されているなんらかのサービスを、別のマシンから呼び出して使えるようにする機能。 RPCサービスはプログラム番号で識別される。サービス名とプログラム番号の対応は/etc/rpcで設定されている。
(省略)
portmapper 100000 portmap sunrpc
rstatd 100001 rstat rstat_svc rup perfmeter
rusersd 100002 rusers
nfs 100003 nfsprog
(省略)
 

■RPCとportmap

RPCの各サービスのTCP/IPポート番号は実行時に動的に割り当てられる。それを管理するのがportmapサービス。 クライアントからサービス番号を受け取り対応するサービスのポート番号を返す。 現在portmapに登録されているすべてのRPCプログラムを表示するには「rpcinfo -p」を実行する。
$ rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 35772 status
100011 1 udp 630 rquotad
100011 2 udp 630 rquotad
100011 1 tcp 632 rquotad
100011 2 tcp 632 rquotad
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 32780 nlockmgr
100021 3 udp 32780 nlockmgr
100021 4 udp 32780 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 33493 nlockmgr
100021 3 tcp 33493 nlockmgr
100021 4 tcp 33493 nlockmgr
100005 1 udp 32781 mountd
100005 1 tcp 44233 mountd
100005 2 udp 32781 mountd
100005 2 tcp 44233 mountd
100005 3 udp 32781 mountd
100005 3 tcp 44233 mountd
 
nfsはTCP/IPポート2049番に割り当てられているのが確認できる。portmapperは111番。 クライアントは111番のportmapperサービスにnfsのサービス番号100003で問い合わせ、 nfsサービスがTCP/IPの2049番で動作していることを知ることができる。このようにポート番号は動的に割り当てられることになっているが実際のところNFSは2049番ポートで実行されることがほとんどのようです。
 

■portmapのアクセス制御

portmapにはTCPWrappersのライブラリlibwrapが組み込まれているので/etc /hosts.allowと/etc/hosts.denyでアクセス制御が可能。以下のように設定することで192.168.0.0/24ネットワーク からのみportmapサービスにアクセスできるようにすることができる。ただしportmapサービスのアクセス制御はRPCベースのすべてのサービス に影響することに注意する。
 
□192.168.0.*からのアクセスを許可する
/etc/hosts.allow
 ALL:127.0.0.1
portmap:192.168.0.
lockd:192.168.0.
mountd:192.168.0.
statd:192.168.0.
□その他のアクセスを拒否する。
/etc/hosts.deny
 portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
上記の設定は以下を参考。
NFS サーバの設定
 

■公開ディレクトリの設定ファイル

公開ディレクトリは「/etc/exports」で設定する。
/etc/exportsの書式
<公開ディレクトリ> <アクセス許可ホスト>(<カンマ区切りオプション>)
 
□主なオプション一覧
ro 読み取りのみ許可
rw 読み取り・書き込みともに許可
root_squash リモートrootをnobodyユーザとして扱う。明示的に指定しなくてもデフォルトで有効になる。no_root_squashオプションで無効にできるが、特別な理由がない限り避けるべき。
no_root_squash リモートrootをローカルrootとして扱う。クライアント側のroot権限をNFSでマウントしたファイルシステムにも有効にする。セキュリティホールになり得るので特別な理由がない限りこのオプションは使うべきではない。
all_squash 全てのユーザを不特定ユーザとして扱う。 全てのユーザを匿名ユーザ(nobody)として扱う
anonuid 不特定ユーザ用にローカルユーザIDを指定 匿名ユーザ用のUIDを指定する
anongid 不特定ユーザ用にローカルグループIDを指定する 匿名ユーザ用のグループIDを指定する
no_subtree_check サブツリーのチェックを無効
 
その他オプションは以下参照
Manpage of EXPORTS
 
実際の例として、/home/itmst/Desktopをlanドメインからのすべてのアクセスを許可し、読み書き可、root権限なし、サブツリーチェック無効で公開する場合、
/home/itmst/Desktop *.lan(rw,root_squash,no_subtree_check)
となる。ひとつのディレクトリに対して複数の公開対象ホストを設定する場合はスペース区切りで続けて記述する。
/home/itmst/Desktop *.lan(rw,root_squash,no_subtree_check) *.lan2(ro)

スペースが区切り文字として認識されるので、「*.lan」と「(rw,」の間にスペースを空けてはいけないことに注意。
 

■設定の反映

/etc/exportsを変更した場合は以下のコマンドを実行して設定を反映させる。
$ sudo service nfs-kernel-server reload
* Re-exporting directories for NFS kernel daemon... [ OK ]
または
$ sudo exportfs -r
でも可。
 

■公開ディレクトリの確認

公開されているディレクトリを確認するにはnfs-commonパッケージに含まれるshowmountコマンドを使う。-eオプションでホストを指定できる。クライアントの設定をするときも目的のホストの公開ディレクトリを確認できる。
$ showmount -e localhost
Export list for localhost:
/home/itmst/Desktop 192.168.0.*
 

■サーバとクライアントでuidとgidを統一させる

NFSではユーザの識別がユーザ名ではなく、ユーザIDによって行われるため、サーバ側とクライアント側でユーザIDを統一しておく。

■NFSクライアント

クライアント側からNFS公開ディレクトリをマウントする。通常のmountとほとんど同じだが、マウント対象 ディレクトリの前に「ホスト名:」をつける。マウントオプションは-oオプションでカンマ区切りで記述する。-tオプションでファイルシステムにnfsを 指定してもいいが無くてもいける。  
□代表的なマウントオプション
hard ハードマウント(デフォルトで有効)
soft ソフトマウント
intr ハードマウント時に割り込みを受け付けるかどうか
rsize=byte 読み込みバッファサイズ デフォルト1024Byte。rsize=4096のように1024の倍数で16384までの範囲でバイト単位で指定。
wsize=byte 書き込みバッファサイズ デフォルト1024Byte。rsize=4096のように1024の倍数で16384までの範囲でバイト単位で指定。
nosuid サーバ上のsuidプログラムの実行を不可にする。クライアント側のroot所有ファイルが書き換えられるの防ぐ。サーバが完全に信用できない場合は有効にすべき。
noexec サーバ上のファイルの実行を禁止する。サーバが信用できない場合、必要なら有効に。
 
実際にマウントする際の例は以下。
$ sudo mkdir /mnt/nfs
$ sudo mount -t nfs -o hard,intr 192.168.0.3:/home/itmst/Desktop nfs
 

■ハードマウントとソフトマウント

ハードマウントの場合は、NFSサーバへの書き込みは保証されるが、サーバ側がダウンした場合クライント側では無限にリトライを繰り返し、 プロセスがハングアップする可能性がある。サーバが復活したらそのまま再接続される。 ソフトマウントの場合は、NFSサーバへの書き込みは保証されないのでファイルが破損する可能性がある。 接続できない場合はタイムアウトするのでハングアップの心配はない。
 
NFSの問題については以下参照。
NFS環境の問題点と自動マウント
 
複数のクライントが接続する場合は負荷が高くなるのでautofsなどを使って通信が発生する場合のみマウントするようにした方が良い。
 

■/etc/fstabに登録して自動起動

書式
<ホスト名>:<リモートディレクトリ> <マウント先ディレクトリ> nfs <カンマ区切りオプション> 0 0
192.168.0.3で公開されている/home/itmst/Desktopを読み書き可、割り込み可でハードマウントする場合は
192.168.0.3:/home/itmst/Desktop /mnt/nfs nfs rw,hard,intr 0 0
という感じになる。

출처: http://itmst.blog71.fc2.com/blog-entry-89.html

Ubuntu 日本語版をインストールしたら、\ (バックスラッシュ) と | が打てないという不具合に直面した。

バックスラッシュは、TeX 使いには必須だし、T-Code ユーザーには入力メソッド切り替えになくてはないらい重要なキー。パイプは、Unix で CUI 使いなら半身が削がれるほど重要なキー。

再現方法と対策を書いておく。

再現方法

  1. 英語キーボード使いで
  2. インストール時の言語設定で「日本語」、キーボード選択で「English」を選択

していると、いけないらしい。

対策

メニューから「システム > 設定 > キーボード」。レイアウト・タブを選んで、「キーボードの型式」を「Generic 101-key PC」に変更する。

이전 1 2 3 4 5 ... 6 다음