VirtualBoxにGuest Additionsディスクを追加する

VirtualBoxのバージョンアップをしたら、Guest Additionsもアップデートするようなメッセージが表示されました。

このVirtualBoxには2つのDebianが入っているのですが、表示されるのはどうも1つのほうだけです。

GuestAdditions.isoがなかった

とりあえずVirtualBoxのメニューDeviceからInsert Guest Additions CD image …を選ぶと、なんだかCDがマウントされていないと怒られてしまいます。設定のストレージから何とかしろという感じ。

実際にマウントを見ても/mediaの中にはcdromがありますが、中身は空です。

そこでVM VirtualBoxマネージャーの設定を開いてストレージを見ると、コントローラ:IDEには何もありません。

1016a

もう一つのゲストOSの設定にはVBoxGuestAdditions.iosが設定されています。

どうも、以前にこの項目を削除してしまったんですね。なんとなく記憶があります。

GuestAdditions.isoを設定する

もともとこのファイルは最初から用意されていたファイルですから、設定を変えればもう一度現れるでしょう。

そこで、コントローラ: IDEの 1016b をクリックして表示されるダイアログボックスから「空のままにする」を選んでOKで保存します(デフォルトの「ディスクを作成」ではありません)。

1016d

1016e

このままゲストOSを起動して、再びVirtualBoxのメニューDeviceからInsert Guest Additions CD image …を選びます。

$ ls /media/cdrom

とするとGeuest Additions一式が表示されました。

ゲストOSはDebianなので、rootになって

# sh VBoxLinuxAdditions.run

を実行すれば無事インストールが終わります。

1015k

設定のストレージにもVBoxGuestAdditions.iosも表示されていました。

1016f

gvのキーバインディング

gvは、たぶんとってもマイナーなPSプレビューワでしょう。

このgvのページ移動に関するキーバインディングをまとめてみました。。PSプレビューワといっても、Ghostscriptのフロントエンドです。

Linux専用マシンのときは無意識に使っていた機能なんですが、ViertualBox上のLinuxで操作したり、Mac用gvを使うようになってからいつのまにかキーバインディングを忘れてしまいました。

わたしのGhostscriptのフォント設定は、ほんとうのフォントではなくて、ほとんど代替フォントを表示するようにしているので、gvでの表示はあくまでもはみ出しを見たり、罫線やアミカケの配置の確認用になっています。

そこに必要なのはページ移動くらいなんですが、ページを前後して見たいのにいちいちマウスを使うのは効率が悪い。

そこでgnuのページを参考に、ページ移動のみ調べてみました。

説明されているキーバインディングを実際に使ってみると、Mac用のgvとVirtualBoxのLinuxのgvとは微妙に異なっています。もしかすると自分の環境設定が原因かもしれませんが。

前のページ

複数のバインディングがあります。

Shift + ↑

b

Ctrl + bShift + bも同じ (Mac版のみ)

Space

次のページ

複数のバインディングがあります。

Shift + ↓

f

Ctrl + fShift + f も同じ (Mac版のみ)

Ctrl + Space (Mac版は無効)

5ページ分戻る

Ctrl + ←

5ページ分進む

Ctrl + →

gnuのページには「Home」「End」キーがあって、ファイルの先頭や末尾にジャンプできるようですが、わたしのキーボードにはないので、チェックしませんでした。

ディレクトリの文字コードを表示する

コマンドラインだけでディレクトリにあるファイルの文字コードを表示する方法です。

そのコマンドは

find -name '*.tex' -print0 | xarg -0 nkf -g

これだけです。

0711

この流れを簡単に説明すると、「find」コマンドではtexという拡張子を探してこれを「|」の右側に渡します。
パイプに渡すと言ったりしますね。

で、xargxコマンドは標準入力の代わりにパイプから引き数を受け取って、それをさらにnkfコマンドの引き数として展開する、
という仕組みです(今さら説明する仕組みでもないかもしれませんが)。

ちなみに、’*.tex’はたまたま拡張子texのファイルを探しただけなので、それ以上の意味はありません。

「-print0」はprint0を使うというオプションです。このオプションは何かというと、
「find -name ‘*.tex’」だけだとファイル名に空白があった場合、たとえば「aa bb.tex」というファイル名だったら
“aa” “bb.tex”という2つの文字列がパイプに渡されて、xargsは2つの文字列が渡されたとして判断されてしまいます。

文字列の最後の指標は通常は「\0」なのですが、このオプションを使うとprint0は、「\0」を別のものに置き換えるらしいです
(何に置き換えるのか調べてませんが)。

それを受けるxarg側も「-0」オプションを指定することによって、文字列の終わりを「\0」以外で判断するので、結果として「aa bb.tex」を一塊の文字列として判断することができます。

でもって、その引き数を文字コード変換コマンドnkfに渡します。nkfの「-g」オプションはguess(推測)の意味です。nkfに渡されたファイルの文字コードをnkfが推測して出力してくれる、というわけです。

もしかしたら、もっと便利なアプリもあるのかもしれないので、もしかすると「レガシーコマンド」なのかもしれませんけどね。