SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2005-10-06(Thu) ワンキー・ラン・コマンズ

  ネタがない。ネタがないので、スッゴくクダらないながらも、オイラがスゴく気に入っているTIPSを公開して、お茶を濁すことにする。基本的に「TERATERM」経由で端末作業を使っている人のためのTIPSであるが、その他の環境でも考え方は参考になるものと思う……その他の環境といっても、工事現場では役に立たないと思うが。

  さて、お仕事であちこちのサーバにログインして作業をする場合、自分の環境を設定することが困難である。自分の環境とは、例えばエイリアス。オイラは基本的に、lsは常にls -lrtFであって欲しいし、cpは常にcp -pであって欲しいのだ。そして、プロンプト。オイラがずっと気に入って使っているのは「PS1='\[\033[1;1m\]\n<\u> \d - \t\n$HOSTNAME:$PWD[\!] \$ \[\033[0m\]'」で、若干クドいものの、コマンド間の切れ目がわかりやすく、必要十分な情報が含まれている。

  画像の説明

  世の常として、こーゆー設定は「.bashrc」に書き込むものとされている。しかしながら、サーバの台数が増えるたびに個々に設定しなくてはならないのは非常に面倒だ。イチゲンサンサーバとわかっていれば、設定をFTPでコピーするなどという面倒なことはしないだろうが、こういうサーバに限って、往々にして再度ログインする機会があり、余計なストレスを抱えることになるのだ。

  とはいえ、そうやって毎度コピーするのは面倒ではあるものの、できないコトではない。しかし、新たにちょっと便利なエイリアスを思いついた瞬間に、この努力も一気に破綻するのだ。全てのサーバの「.bashrc」を書き換えなくてはならないからである。機会を見つけて徐々に設定するという気の長い方法で対処するか? 結局、コッチで使えて、アッチでは使えないから……とかやっているうちに、面倒になってそのエイリアスを使わなくなるのがオチである。

  そんな時に、非常に便利に使える機能が「TERATERMのキーマクロ」である。早い話、あらかじめ設定した文字列を、自動的にガシガシと打ち込んでくれる機能だ。その定義ファイルに、好みの設定を書き込んでしまえばいいのだ。そして、ログイン後に実行させるのである。設定を持っているのは、あくまで端末側であるから、どのサーバにログインしても有効である。

  例えば「C:\Program Files\TTERMPRO\profile.ttl」というファイルを作り、その中に以下のようなマクロの記述を行う。

wPrompt     = '$ '
wPrompt2    = '# '
bash        = "bash"
sendln         bash
wait           wPrompt wPrompt2
env         = "export LANG=ja"
sendln         env
wait           wPrompt wPrompt2
alias       = "alias ls='ls -lrtF'; alias cp='cp -p'"
sendln         alias
wait           wPrompt wPrompt2
uuenc       = "function uuenc () { gzip -c $1 | uuencode uuuuuuuu.gz | sed 's/$/!/g'; }"
sendln         uuenc
wait           wPrompt wPrompt2
uudec       = "function uudec () { cat $1 | sed 's/!$//g' | uudecode; gunzip -N uuuuuuuu.gz; rm $1; }"
sendln         uudec
wait           wPrompt wPrompt2
prompt      = "PS1='\[\033[1;1m\]\n<\u> \d - \t\n$HOSTNAME:$PWD[\!] \$ \[\033[0m\]'"
sendln         prompt

  ちなみに、オイラはメニューからキーマクロを起動するのさえも面倒な、ちょっと小粋なハイパーズボラニアンなので、ワンキーでこのマクロを実行できるように設定している。具体的には「C:\Program Files\TTERMPRO\KEYBOARD.CNF」の末尾「[User keys]」の下に以下のような記述を追加する。

; Ctrl + F1 key: Executing a macro file
User1=1083,2,profile.ttl

  こうしておけば、端末にログイン後「Ctrl + F1」キーの一発で、瞬時に自分の環境を構築することができるのである。非常に便利なので、オイラと似たような境遇の人は、ゼヒお試しあれ。

  あ。ちなみに、今日の日記の表題の「ワンキー・ラン・コマンズ」であるが「.bashrc」の「rc」が「Run Commans」の略であるコトから来ている。コレ、知ってた?