エイリアスをさらせ!

「アイドルを探せ」みたいでしょ。
シルビー・バルタン、良いですよねー。

UNIX にログインすると、
.*shrc やら .profile やらがロードされますが、
これは外せない!という設定があります。
(ちなみに 私は tcsh ユーザ)

set prompt="`hostname`[`whoami`@`pwd`]> "

rootになることもあるので、自分の名前は必須。
カレントもフルパスで出ていないとイヤ。
いちいち pwd するなんて面倒くさすぎ。
記憶のバッファが小さいので、
カレントを覚えていられないだけだけど。

ということで、cd も以下みたいに変えます。
alias cd 'cd \!* ; set prompt="`hostname`[`whoami`@`pwd`]> "'

alias + 'pushd \!* ; set prompt="`hostname`[`whoami`@`pwd`]> "
alias - 'popd ; set prompt="`hostname`[`whoami`@`pwd`]> "'

これはダンナに教えてもらったのだけど、
大変便利ですよ。
+ と - というインタフェースがわかりやすいです。
プロンプトも変えてあります。

alias ls 'ls -AFlt \!* | more'
alias lls 'ls -AFLt \!* | more'

よく使う ls は、カスタマイズする人が多い部分でしょう。
私はデフォルト more 付きで、
less は余り使いません。
シンボリックリンクを、リンク先のファイルで表示したい時に、
lls の方を使います。

bindkey '^p' history-search-backward
bindkey '^n' history-search-forward

emacsユーザな人には便利。
Ctrl-p と Ctrl-n でコマンドの履歴を表示できるわけ。
ひょっとして、大体のキーバインドが、
デフォルトで emacs 風なのかな?

お気に入りや便利なエイリアスがあったら、
教えて下さい。
[PR]
Commented by snowdrop99 at 2004-05-25 21:08
専門じゃないのにUNIXマシンです。
超初心者の質問ですが、エイリアスってコマンドのことですか?
(ほとんど自作のしか使ってません。)
Commented by xiaoxia at 2004-05-25 21:24
はい、コマンドに別名を付ける事です。
例えば、上の ls は、
ls -AFlt . | more
のように毎度打つのが面倒なので、ls だけでこのコマンドが入力できるようにしてあります。
Commented by iceday at 2004-05-25 22:27
なるほど! 理解できたのは5%未満ですが、
角質について考えさせられました。
ってこんなコメントすんなよ、とお怒りになられぬよう、今から
お祈りに出かけてきます。
Commented by fireorsky at 2004-05-25 23:01
こんばんは
言われてみれば、使える手ですねぇ~。
ふむふむ。
仕事では、ポリシーの制約上試せませんが、自宅でやってみます。
Commented by tshirorn at 2004-05-26 00:55
alias... 懐かしい響きです。もう2年ほどUNIXと遊んでません…私は常にpwd打ってました。ユーザ名はだしてましたね。+と-もわかりやすいですね。うんうん、いいかも。
私は、history コマンドのオプションをいろいろaliasにいれてたことはありました。詳しく覚えてないけど。あはは。
Commented by 死せる詩人 at 2004-05-26 09:21 x
はじめまして死せる詩人ともうします。

> ひょっとして、大体のキーバインドが、
> デフォルトで emacs 風なのかな?

bashはデフォルトがemacs風キーバインドですね。
zshも、そうだった気がします。
Commented by code_air_edge at 2004-05-26 15:22
こんにちは〜♪
私はエイリアスはあまり活用できてないですね…アハハ(汗
bashを使ってるんですけど、デフォルトで設定してあるエイリアスくらいですね。プロンプトは.bashrcに設定があるようですのでカレントディレクトリとユーザ名が表示してあります。
pushdとpopdは便利そうなんですけど、結構ど忘れして使ってないですね(苦笑)
代わりにbashでは $ cd - と打つことで直前に居たディレクトリに戻れます。ただ、ログアウトすると設定は残ってないんですけどね(苦笑) エイリアスは活用してなかったので、参考にさせて頂きますね♪
Commented by xiaoxia at 2004-05-26 19:21
●icedayさま
ああ、私も角質にういては、毎日考えておるのです。改めて考えて頂けて光栄です。
こんな返事するなよと呆れられそうです。私も祈りの踊りをしなくては。
●fireorskyさま
そか、ポリシーがある場合がありますね。私も.cshrcを変えてはいけないと言われたことがありました。変えなきゃ良いんだろ?とばかりに、.cshrc相当を作って、ログインの度にsourceコマンドで実行していました。ダメだったかもしれません(^^;;
●tshirornさま
UNIX をお使いだった頃があるのですね。ふふふ。ひょっとして同業者さんでしょうか。
hitory系ですか。Ctrl-Pとかで済ませてしまうので、重視していませんでした。ちゃんとmanを見てみることにします。
Commented by xiaoxia at 2004-05-26 19:21
●死せる詩人さま
いらっしゃいませ。お若いのですねー!!Blogを見せて頂いて、驚きました(^^;;
Linux の標準は bash ですから、インストールして最初は泣く泣く bash を使うハメになります。bash スクリプトは何かを見ながら出ないと書けないので、キーバインドがemacs風なのが唯一の救いです。
●code_air_edgeさま
rootなどをやることを考えると、本当はエイリアスに慣れてしまうのは危険だろうなぁとは思うのですよ。pushd や popd はちょっと動きたい時に便利ですが、最近は面倒くさくてついつい別のktermを起動してしまうので、私も余り使わないかも、です(^^;; 「cd -」は tcsh でも可能みたいですよ。
Commented by code_air_edge at 2004-05-26 21:56
ほぇ〜、tcshでも使えたんですか、でも私bash以外にまともに触れたこと無いので全然知らないんですよね(苦笑)
エイリアスは便利だと思うんですけど、自分でどんなエイリアスを設定したかをよく忘れるんです(爆) んで結局 「$ alias」 で調べるんですよね〜。それでも引数の多いエイリアスなんかだと充分便利ですけども。
これ中々難しいところで、多少長いコマンド(たとえばtarとか)はしょっちゅう使うので長くても指が憶えちゃうんですよね。
逆にあまり使わないコマンドになって来ると憶えてないのでエイリアス設定してるんですけど、その設定を忘れてる(爆)
人間って以外と不便な生き物ですよね(ぇ
Commented by 死せる詩人 at 2004-05-27 00:37 x
bashにはプロンプト用のエスケープシーケンスが沢山用意されているので

export PS1="\h[\u@\w]>"

と書くだけで、カレントディレクトリが変更される度に、そのフルパスを含んだ動的なプロンプトを設定できますね。

僕もbashのスクリプトは書けません。シェルスクリプトなんでBourne shellのものが書ければ良い、と思って若造の癖に開きなおってます。

ではでわ
Commented by 死せる詩人 at 2004-05-27 00:40 x
ありゃりゃ、なんかバックシュラッシュが消えてしまいました。

export PS1="h[u@w]>"

のh、u、wの前には、それぞれバックシュラッシュが付きます。

連続で失礼しました。
Commented by code_air_edge at 2004-05-27 20:03
お、おろ? その御返事は…オウム返しでしょうか?(爆)
な、なんかいけないことでも書いちゃったのかなぁ…。
Commented by xiaoxia at 2004-05-27 20:19
うぁぁ~、ごめんなさい~(滂沱
編集中ので、間違った部分をコピペしまいました~!!上げなおします~!!
(投稿もお返事も、全て下書きしているのです)
Commented by xiaoxia at 2004-05-27 20:25
●code_air_edgeさま
普通 Linux を使われる方でしたら、bash が使えれば十分ですよね。お客さんの中には Ksh が好きだとか、tcsh じゃなくて csh でとか、色々な方がいるので、仕方なく色々触る羽目になります。
そう言えば、私も tar などはコマンド打っていますねー。ls や rm のような使用頻度の高いものだけ、エイリアスを切ってあったのですね。自分で気付きました(笑)
沢山設定しても忘れますね。久しぶりに .*shrc を見て、ありゃこんな設定が?とか、良くやります。

●死せる詩人さま
そうでした、bash には¥hとか書いて、設定したような覚えがあります。あれは便利ですね。tcshにも欲しいです。
スクリプトは、困った時は、/etc/rc*.d/ のファイルを見ながら書きます。書式がわからないだけですから。そう考えると、1種類のshが書ければ、基本的なことなら応用で何とかなりそうです。
Commented by code_air_edge at 2004-05-27 22:05
おぉ、わざわざ下書なさっているんですね!私はいつも直接思ったことを書き込むので誤字脱字が…(爆)
コメントに関しては、ちょっとビックリしました(笑) ここで(多分私に宛てて下さったのだと思われる)死せる詩人さんのコマンド説明の部分でIEのスクリプトエラーが起きちゃったみたいですね(苦笑)
一体何のエラーなんでしょうかねぇ?
Commented by plus at 2004-05-27 22:25 x
始めまして plus と申します。
私も tcsh を使っています。プロンプトはこんなのを設定しています。
if (! $?WINDOW) then
setenv WINDOW NO
endif
set prompt = "%n@%m[$WINDOW]<%~>[%h]: "
多分 bash の \w は tcsh の %/ ですね。
ホームディレクトリ下では少しでも短く表示して欲しいので私は %~ を使っています。
$WINDOW は screen のナンバーです。何かあったらすぐに別画面を開くため、今どこにいるのかわからなくなってしまいますので。

他に良く使っているのは history のインクリメンタルサーチですね。
stty stop undef
bindkey '^r' i-search-back
bindkey '^s' i-search-fwd
次の変数も設定して重複した history の消去と複数の shell history のマージもやっています。
set history = 4096
set histdup = erase
set savehist = (4096 merge)

御参考になれば幸いです。
Commented by xiaoxia at 2004-05-28 18:17
●code_air_edgeさま
文を書く瞬発力がないのですよ>下書き
言いたいことが沢山あるので、とりあえずざーっと書いて、減らす方向で推敲します。実はこれでも減らしているのです。下書きしても誤字脱字だらけで、アフォっぽいです(涙
コピペのミスで驚かしてしまい、済みませんでした(((((^^;;
IEのエラーについては、全然わかりません・・・。

●plusさま
いらっしゃいませ。色々教えて頂きまして有難うございます。tcshにもbashのような短い指定方法があったのですね。全然知りませんでした。自分のメモのために書きますが、こんな感じですね。
  %n = `whoami`
  %m = `hostname`
  $WINDOW = これはscreen番号を設定
  %~ = 自分のホームからのパス
  %h = コマンド番号
history でインクリメンタルサーチができるのも、全然知りませんでした。教えて頂いた物を、ごっそり設定しました(笑)
色々とお詳しいですね。もしHPをお持ちでしたら、差し支えなければ、是非お教え下さい。
Commented by plus at 2004-05-30 08:38 x
plusです。反応悪くてすみません。

>history でインクリメンタルサーチができるのも、全然知りませんでした。教えて頂いた物を、ごっそり設定しました(笑)
>色々とお詳しいですね。もしHPをお持ちでしたら、差し支えなければ、是非お教え下さい。

お役に立てたようでよかったです。
HP の件は、文章を書いてちゃんと纏めるというのが苦手なので作っておりません。
…改めて先の文章を読み返してみると、やはり説明不足で非常にわかり難かったですね。
特にプロンプト部分の説明がほとんどできてませんので少し補足します。

「%なんとか」については xiaoxia さんがお書きになった通りです。
$WINDOW は screen で使用される環境変数です。
ご存知かも知れませんが screen とは仮想端末操作を行なうソフトです。
これがあればターミナルを余分に開かずにシェルを複数起動する事が出来ます。
動作についてわかり易く解説したサイトがありますので、そちらを参照して頂く方がいいですね。
http://www.dekaino.net/screen/
http://risky-safety.org/~zinnia/screen/

あとは以前上げた以外の便利そうな設定はこれぐらいですか。
alias rm '¥rm -i'
alias cp '¥cp -i'
alias mv '¥mv -i'
set noclobber リダイレクト ">" でファイルを上書きしない。ちなみに強制で上書きしたい時は ">!" を使います
set ignoreeof Ctrl-d でシェルが終了されてしまうのを防ぐ
set autolist Tab キーでファイル名補間リストを表示する

私の tcsh の Tips はこれで打止めです。
他の Tips としては Emacs に関する物がありますが、こちらは又の機会に。
最も Meadow Memo さん(http://www.bookshelf.jp/)の設定をコピー&ペーストしているのが大半だったりしますが。

では。
Commented by xiaoxia at 2004-05-31 21:14
再びのお運び、有難うございます。
rm や cp に確認を出すのは、私もやっております。それでも年に1度くらいは「rm *」と打って、何も考えずに y を入力して、途中で、あーっ!!!!と思うことがあります。これじゃ意味ないですねー(^^;;
私もemacs使いなので、emacsのTIPSには大変興味があります。そのうち、emacsな記事も書くと思いますので、その時は是非色々ご教授下さい。
by xiaoxia | 2004-05-25 20:55 | コンピュータ関係 | Comments(20)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞