2013年10月26日土曜日

bashでタブの出力:echo と printf

echo
$ echo -e "foo\tbar"
foo bar
printf
$ printf "foo\tbar\n"
foo bar

ただし、環境によっては echo の '-e' オプションが使えないとの意見あり(シェルの仕様に依存する)。

2013年9月19日木曜日

bash の brace expansion で数列生成できる

中括弧(brace)を使ったイディオム、たとえば

$ cp /foo/bar{,.orig}
はよく使っていた。でも数列まで扱えるとは知らなかった。

数列を作るときは seq コマンドを使って

seq 1 10
などと打っていた。

これも間違いではないが、中括弧を使えば seq 無しで、すなわち、

{1..10}
と書けるのだった。おそらく中括弧を使ったほうがスッキリきれいに書ける場面が多いだろう(キーボードを打つ回数だけ比較したらあまり変わらないかもしれないが。。。)

この brace expansion で数列を作る具体例のほとんどは「LinuxTips 連番ファイルをコマンド一発で作成する」に書いてあるのであまり付記することは無い。強いて挙げるならば、増分(increment)も指定できる点。以下がその例。

$ echo {1..10..2}
1 3 5 7 9
$ echo {z..a..5}
z u p k f a



2013年9月16日月曜日

Linuxの仮想コンソール切り換え(VMware Fusionにて)

MacBook に VMware Fusion を入れ、ゲストOSに Linux を入れ、コンソールで作業している場合の話。


別のコンソールに切り替えようとすると大抵は間違ったキーを押してしまう。たとえばただ単に B や C の文字がぽつんと表示されておしまいである。これがMacでなければ Alt + F1(F2,...,F6) キーで間違うことはないのだが。。。


この環境で打つべき正しい組み合わせは次のとおり:

optionキー + fnキー + F1(F2,...,F6)


失敗の原因は「option」でなく「command」を押してしまうこと。Macのoptionキーにはよく見ると "alt" という文字も書いてあるので見れば分かるというのに。。。とはいうもののキーボードの表面などは滅多に見ないのだからしかたがない。

2013年2月9日土曜日

外付HDDにWindows 7でチェックディスク(chkdsk) --> メモリ消費すごい

システムドライブ以外のドライブに対して「不良セクターのスキャンと回復」を有効にしてエラーチェックつまり "chkdsk /r" コマンドを実行するとメモリを大量に消費する。


What we do with a bug report? - Engineering Windows 7 - Site Home - MSDN Blogs


うちの Windows7(RAM 12GB搭載)でも確かに再現。2TBの外付けハードディスクドライブに対して chkdsk /r を実行し、しばらくするとメモリ使用量が8GB近く、システム全体で10GBほどに上がった。ここまで上がるとある意味楽しい。そして一晩寝かすと途中で強制終了されていた。

しかたないのでVMに入っている Windows Server 2008 で同じ chkdsk /r を試してみたら、問題は起こらなかった。

2013年1月27日日曜日

psコマンドの結果をgrepするときのtips

こじんまりした話題だが、、、grepコマンド自身がプロセスのリストに表示されるのがわずらわしいとき、いちいち「grep -v grep」を通してた。これは正規表現を使って簡潔にできる。

tips適用前
ps aux | grep mingetty | grep -v grep
適用例1
ps aux | grep mingett[y]
適用例2
ps aux | grep [m]ingetty

昔から脈々と受け継がれているらしい。2006年にはブログに書いている人がいるから。

ちなみに自分の場合は「プロのためのLinuxシステム・10年効く技術」という本で知りました。