cdの履歴保存(ディレクトリスタック)
ArchWikiのZsh
ページにディレクトリスタックの項目があった。
これが結構便利なんだけれど,シェルを複数開いていると機能しない。
そして俺は普段からターミナルのタブを大量に開いているのでこのままじゃ使えない。ので改変した。
やったこと
ArchWikiの記述をベースにしつつ,
シェルを開く毎に個別のディレクトリスタックファイルを作成できるように,.zshrc
へ以下を加筆。
DIRSTACKFILE="$HOME/.cache/zsh/dirs/`\date +%d%M%N`"
if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]]; then
dirstack=( ${(f)"$(< $DIRSTACKFILE)":} )
[[ -d $dirstack[1] ]] && cd $dirstack[1]
fi
chpwd() {
print -l $PWD ${(u)dirstack} >$DIRSTACKFILE
}
DIRSTACKSIZE=20
setopt autopushd pushdsilent pushdtohome
setopt pushdignoredups
setopt pushdminus
DIRSTACKFILE
に時刻の情報を付けて,重複を回避しただけ。
自分の環境だとdate
コマンドにはエイリアスを設定しているので,1行目は\date
にした。
%d%M%N
で日付分ミリ秒
を出力させる。
DIRSTACKSIZE
は何となく20にした。
できたこと
すごーい!いくらでもシェルを開けるんだね!
便利なところ
あちこちcd
していじっている時に
$ cd -
と打ってから<tab>
とかすると幸せになれる。かも。
詳しくはArchWiki参照。
Vimperatorのタブが開かない
VirtualBoxがCOMオブジェクトを作成できなくて死ぬ
後輩のマシンのトラブルシューティング記録。
症状
VirtualBoxを起動すると,
VirtualBox COMオブジェクトの作成に失敗しました。
アプリケーションを終了します。
という風に重大なエラーとやらを吐いて事切れる。
検分
以前にホスト側の起動ボリューム(つまりはCドライブ)が容量超過で書き込めなくなり, その後に発症した模様。
以下の全て(組み合わせ含む)を試したが,状況は変らず。
- OSの再起動
コントロールパネル->プログラムと機能
からVirtualBoxのアンインストール- Webから調達した産地直送採れたてのインストーラによるVirtualBoxインストール
決定打
上のサイトに同様の症状について記載があったため,適宜レファレンスしつつホスト側OSで以下を実行。
- ホームディレクトリ下の
.VirtualBox
へ移動 VirtualBox.xml
を削除VirtualBox.xml-prev
をVirtualBox.xml
にリネーム
贅沢な名だねぇ,今日からお前の名前は(ry
その後VirtualBoxを起動してみると,すんなりマネージャ画面が表示されたので問題解決。
VirtualBoxをアンインストールした後でも,
.VirtualBox
はしっかり残っていたので上記操作は可能。というか残ってたからこんな症状が出るのでは?
まとめ
要するに,仮想マシンの構成情報が書かれたxmlファイルが何故か空になってしまったので,自動生成されている(っぽい)バックアップを使ったというお話。
理屈はともかく,容量超過で書き込みに失敗するとこのような症状が出るらしい。
起動ボリュームの容量には気を付けましょう。
キーボードレイアウトの修正
ArchLinuxのキーボードレイアウトがなぜかUSからJPに変わってしまったので修正したメモ。
結論
Xの設定が変わっていた。
やったこと
折に触れてArchWikiを見ながら下の3つを検証。
システムロケール
$ localectl status
で設定を確認。 システムロケールはus,VCもus。Xもus。特に不審な所無し。次。
IBus
何かこういうときってIMが悪さしているようなイメージがあったので適当にゴチャゴチャと調べた結果, そもそもキーボードレイアウトを指定するような項目が見当らなかったのでスルー。次。
X
$ setxkbmap -print -verbose 10
で色々と出てくる。そしてその中に
layout : JP
を発見。こいつか。。。でもシステムロケールを見たときはusだったのになぜ???
ともかく,
$ setxkbmap -layout us
で設定を変更したら解決した。やったー。
上記をシェルの設定ファイルに書き込んでとりあえず作業終了。
テキストシリーズ土木工学6 線形代数
某が激推ししていたので気になっていた本を図書館で借りて流し読み。
これはすごく丁寧。とっつきやすさに重点を置いているけど,しっかり数学の知識が付きそう。(今は予備知識があるからサクサク読めてる部分は当然あるけど)
学部のときにこれ読みたかったな。。。
Manjaro Linux 15.12 on VirtualBox
半年以上下書きに眠っていたので年が暮れるまえに供養。
参考にしたもの
前提条件
VirtualBox導入済み
ManjaroのISOイメージDL・サムチェック済み
やったこと
ホストOS: Windows10 Pro
ゲストOS: Manjaro Linux Xfce 15.12 64bit
をVirtualBoxで構築。
ついでにいろいろと設定。
手順
ゲストOS用のパーティションを切る。
必須なものだけ用意することにして,
/boot``/``/var``/home
用の場所を確保した。
元になる仮想ディスクファイルは①SSD上②HDD上の2つを用意。
①SSD(静的-20GB)
/boot
を300MB,残りを/
に割り当て。
②HDD(動的-200GB)
/var
に20GB,残りを/home
に割り当て。
以上の操作をgparted等で行った。
なお,後の作業で混乱しないように,
例えば/boot
用のパーティションにはマシン名_boot
といったように,
パーティション毎にわかりやすいラベルを付けた。
Torque導入
海外遠征中にがっつり計算をまわせるようにジョブスケジューラを急ぎ足で導入。
環境はいつものubuntu 14.04 LTSで。
とりあえずたくさん投げておいたジョブを順繰りに消化してくれれば良いので, ジョブ管理サーバがそのまま8ノードのクラスタとして動くような構成。
参考URL
他もググった気がする
ステップ1
apt-get
で拾ってくる。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install torque-server # これがサーバ用パッケージ
$ sudo apt-get install torque-client # これと
$ sudo apt-get install torque-mom # これがノード用らしいけどclientはserverについてきたような...
拾ってくると自動で動き出すので,設定の都合上,
$ sudo service torque-server stop
$ sudo service torque-scheduler stop
$ sudo service torque-mom stop
で止めておいた。止めなくてもよいのかも。
2017-03-23 追記 サービスを止めずにステップ2でサーバ名を変更してステップ3へ進むと,
qmgr
のコマンド実行時に詰む模様。 おそらくtorque-mom
が起動する時に/etc/torque/server_name
のデフォルトを読んでいるので,こちらが設定した新しいサーバ名と食い違うのが原因か。ともかく,上記サービスは停止させておくに越したことはない。
ステップ2
サーバ/ノード設定を行う。
/etc/torque
なるディレクトリができていて,その中に
nodes
とserver_name
というファイルがあるのでそれを確認する。
できてなかったら多分つくればよい。
$ cat nodes
サーバ名 np=xx # 自分のマシンのホスト名とノード数xxがあっていなければ直す
$ cat server_name
torqueserver # torqueserverの部分をnodesのサーバ名と同じにする
編集にはsudoが必要だったかもしれない。
ステップ3
キュー(ジョブを投げる窓口)の設定を行う。
2017-03-23 追記 このタイミングで
torque-server
を起動しておかないと、qmgr
が文句を言う。
使うのはqmgr
というコマンド。
基本sudoを付けて使っていく。
例としてtest01
なるキューを作る。
$ sudo qmgr
Max open servers: xxx
Qmgr: create queue test01
Qmgr: exit
$
これでキューが作られる。
qmgr
実行中はプロンプトがQmgrになるので注意。
しかしこれだけだとほとんど意味がないので,
Qmgr: set 適用先 設定変数 = 値
みたいな感じでコンフィグを行う。
適用先はserver
が全体設定,queue test01
でtest01キューにのみ設定,といった具合に書く。
詳しくはman
とか参考URLで確認してつかぁさい。
設定した項目の一覧は
$ qmgr -c "p s"
とすると一覧で出てくるので,リダイレクトすればテキストファイル等に保存しておける。
2015-07-06 修正 何故か
-c
が-s
になっていたので訂正。
qmgr
実行中にp s
と打っても同じだが,リダイレクトはできないのであまり意味がないような。
逆に,リダイレクトしたテキストファイルを使って
$ qmgr < torqueconfig03
のように一括設定をすることも可能。
ステップ4
動作確認。
ステップ1の終わりで止めていたので,
$ sudo service torque-server start
$ sudo service torque-scheduler start
$ sudo service torque-mom start
で復活させる。
2017-03-23 追記 ステップ3で既に
torque-server
を起動した場合は最初の1行を無視。
qstat -q
あたりでキューの状態を確認したら,
$ echo 'sleep 30' | qsub
等でお試しジョブを投げて確認。
うまく投げられなかった場合,サーバ名やキュー名が正しいかチェックしていくときっと問題点が見つかる。はず。
ステップ5
ブン回す。
とりあえずジョブ35個投げられたので,これで心置きなく海外遠征できそうです。めでたし。