--/--/-- (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2010/09/11 (土)
do_ypcall: clnt_call: RPC: Timed outというエラーが出てやたら重くなったときは。

たぶんNISを使ってるんだと思うけど。

vi /etc/nsswitch.conf

hosts: files dns nis
の行を
hosts: files dns

にすれば直るはず。

なぜかは、ここでは説明しない。
スポンサーサイト
2010/09/10 (金)
kvmをvirt-manaer(仮想マシンマネージャー)で使用するとき、OSやVNCの接続方法によっては、
実際のポインタと仮想上のポインタがずれる場合がある。

そんなときは、virt-managerの仮想マシンのビューワからAdd Hardwareを選び、
タブレットを追加する。

するとマウスポインタのずれが解消される。

なぜかはよくわからないが、こんなことでポインタのズレを解決できるとは思わなかったw
2010/09/07 (火)
ここ1年くらいずっとvimばっかり使い続けてきたが、
そろそろ本気でemacsを使ってみようと思う。

別にvimに不満な点があるわけではなく、
というかむしろテキスト整形はvimのほうが上だと思ってるんだが、
ここいらで、emacsもvimぐらい極めればまた違う視点から学ぶことも多いかなと思って。

とりあえず、vimで多様してるショートカットを一通り覚えて
プラグイン(emacsではプラグインとは言わないのかな?)をアサってみよう。

でもemacsって突き詰めるところLispなんだよね。
今の時代にLispをマスターするのってちょっと癪。
vimみたいにperlとかpython、rubyを流し込めると便利なんだけど。
2010/09/05 (日)
ちょっと、便利な技をまとめてみた。

・前回コマンドの引数を挿入

例えば以下

% mv hoge.c project/main/arc/test
% cd project/main/arc/test

なんてことをしたい時、project…を二度入力するのは無駄というもの。
そういうときは[ESC-.]を入力すると前回コマンドの最後の引数を挿入できる。

% cd [ESC-.]

シェル依存かもしれないが、[ESC-2][ESC-.]などで後ろから2番目の引数も指定できたりする。
ヒストリの変数選択$$なんかを使ってもできるが、上記の方法だとインタラクティブで良い。


・ファイルのフルパスを表示

% readlink ../../lib/hoge.o(hoge.oはリンクファイル)

みたいな感じでリンクファイルを入力するとそのファイルの絶対パスが表示される。
ls -l | grep hoge.oとかでも良いんだけど、こういうコマンドもある。
知らなきゃ一生知らないコマンドかもしれない。

・名前でkill

firefoxがバグったときとかに
% pkill firefox

でプロセスを殺せる。
一昔前までは、psコマンドからプロセスIDを調べてkillする必要があった。
最近はデフォルトでpkillコマンドがインストールされている。


・コマンドを擬似的にスタックする

% gcc hoge.c
と入力したところで、あ、hoge.cを中身を確認しておこうかな、なんて思ったときに
% echo gcc hoge.c
みたいに入力することで、ヒストリに入れて再度呼び出せる。
実際には、[Ctrl-a]で先頭に移動したり、
コマンドを再度入力するときは^echoでechoのみを抜き出したコマンドを実行できる。
echoを使用することで、ファイルグロブも展開されてわかりやすくなる。
cshなんかだと先頭にechoの代わりに:を入れる方法もある。:はコメントアウトのようなもの。
zshでは[Esc-q]で機能的なスタックができる。


・テキストの文字コードを知る

% nkf --guess

常識といえば常識なんだけど、nkfコマンドってなかなか使い方を学ぶ機会がない。
nkfの文字コード・改行コード変換とかも一通りマスターしておくと便利かも。


・実行終了を知る

% make && eject

この方法を知ったとき笑ってしまった。
ejectコマンドはCD/DVDトレイを出すコマンドである。
makeなどで長い処理をするときに最後に「&& eject」を入れることで、処理終了とともにCDトレイが出てくる。
突然CDトレイが飛び出てくると驚くかもしれないが、別作業などをしてたときにすぐ気づく。
2010/09/05 (日)
zshのコマンドヒストリについてまとめておこうと思う。

ヒストリ参照は以下のフォーマット

!ヒストリ選択:引数選択:ヒストリ編集子1:ヒストリ編集子2…

が基本形である。
良く"vi !$"といったコマンドを目にするが、これらはあくまで省略形である。

・ヒストリの選択
ヒストリ選択 動作
!! 直前のコマンドを選択
!N イベント番号Nのコマンドを選択
!-N N個前のコマンドを選択
!String Stringで始まる最近のコマンドを選択
!?String? Stringを含む最近のコマンドを選択

{}を使うと明示的にコマンドをわけることができる。
例)
% vi tmp/test
% !{vi}.c
→ vi tmp/text.c

勘違いし易いのが、上記は「特殊なコマンド」ではなくて、あくまで「ヒストリの選択」である。
どういう事かと言うと
% !emacs はヒストリ中のemacsで始まる最近のコマンドの実行を表すが、
後に紹介する引数選択と合わせて
% vi !emacs:2 !emacs:4 といった実行もできる。
!emacsはコマンドとして認識するのではなく、ヒストリを選択しているという意味なのだ。

・引数の選択
引数選択 動作
N 第N引数を選択
^ 第1引数
$ 最後の引数
% !!?String?使用時のStringを含む引数
M-N 第M引数から第N引数。片方省略可。
* 引数全体
M* 第M引数から最後の引数
M- 第M引数から最後から2番目の引数

・ヒストリ編集子
ヒストリ編集子 動作
h ディレクトリ名だけを取り出す
t ファイル名のみ
r 拡張子を取り除いた部分
e 拡張子部分のみ
s substitute
& 直前の置換と同じ置換を繰り返す
p 実行するコマンドを確認する
q クォート?
x クォート?
Q
l 全て小文字にする
u 全て大文字にする

substituteは直前のコマンドに限り
^OLD^NEW
というコマンドが使用可能。
!!:s/OLD/NEW/
と同義

以上、ヒストリ選択・引数選択・ヒストリ編集子の3つを使うことで
自由自在にヒストリを呼び出すことができる。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。