管理者権限のないマシンでtmuxを使う
ここを参考にした。
但し、自分の環境の場合は、いくつか追加でインストールが必要だった。 いずれもtarballをscpでサーバにもっていき、--prefixオプションでローカルにインストールした。
nursesのビルドに必要
tmuxのビルドに必要
- autoconf
- automake
- pig-config
そして、tmux を configure する際、CFLAGSにncursesへのパスも足す必要があった。
(なお、私は全てのモジュールを ${HOME}/4tmux/local ディレクトリにインストールした。)
./configure --prefix=${HOME}/4tmux/local LDFLAGS="-L${HOME}/4tmux/local/lib" CFLAGS="-I${HOME}/4tmux/local/include -I${HOME}/4tmux/local/include/ncurses"
また、tmuxのインストールまで済んだ後、起動しようとすると
tmux: invalid LC_ALL, LC_CTYPE or LANG
というメッセージが出て起動できなかった。
.bashrc や .bash_profile で
export LD_LIBRARY_PATH=$HOME/local/lib
をしないようにしたら、正常に動くようになった。
carton exec で実行する際に実行時にモジュール・パスを追加
carton exec -- perl -I path home.pl
vimでクリップボードからコピる際に自動コメントがウザい場合
Webとかからコードコピりたい時に「コメント行の次行も自動でコメントアウト」がウザい時がある。 そういうときは、おとなしく vi 使うのも手。
/bin/vi [file]
google cloud SDK を windows にインストールした場合の設定ファイルの場所
C:\Users\[ユーザ名]\AppData\Roaming\gcloud
expect の使い方メモ(expect eofとか)
expect でコマンドを実行させ、そのコマンドの完了を待って続けて別なコマンドを実行させる場合は"expect eof"を入れるとよい。
# spawn したコマンドが完了してから別なコマンドをspawnする場合は expect eof を挟む。 expect -c " spawn scp hoge@fuga.com:/home/hoge/somefile . expect eof spawn scp hoge@fuga.com:/home/hoge/otherfile . expect eof " # expectコマンドの次にshellとかのコマンドを打つ場合も expect eofする。 # でないと、spawnしたコマンドの完了を待たずに次に行ってしまう。 echo "scp completed."
このような使い方ではなくて、例えば「expectでssh等のコマンドを自動実行し、ログインできたら処理をユーザに戻す」といった場合は、プロンプト文字をexpectして exit するか、spawn した後に interact すればよいっぽい。
expect -c " spawn ssh hoge@fuga.com expect \"password:\" send \"passwd\" expect \"$\" exit "
もしくは
expect -c " spawn ssh hoge@fuga.com expect \"password:\" send \"passwd\" interact "