SSブログ

コマンドエイリアスを「今だけ」無効にしたい [小技(Linux)]

 意外と知られてないということにびっくりしたのでさくっと書いておく。

 Linuxを使っていると、誰にも何も頼んでいなくても自動的にコマンドエイリアスがいくつか設定された状態になっている。

[root@test-server tmp]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'


 こんな具合に。
 lsコマンドがに表示されてみたり、ファイルを消そうとrmコマンドを実行すると、いちいちファイルを消しますか?みたいな質問をしてくるのである。
 もしかしたら、職場や学校などで設置しているサーバにはこれら以外にも様々なエイリアスを設定し、快適なオペレーション環境を構築しているかもしれない。

 が…

 ごくまれに…

 この便利なはずのエイリアスがとてつもなく邪魔くさく感じられて仕方がないケースもありうる。

 例えば、「なlsコマンドの結果が気に入らないので、色無しで表示させたいが、今実行する1回だけalias ls='ls --color=tty'を無効にしたい!」とかいう場合。

 このようなコマンドエイリアスが指定されていると、例えば

 ls -la /tmp

 と実行した時、実はls --color=tty -la /tmpと実行したことになり、結果的にな表示になるのである。

 コマンドエイリアスを、そのターミナルからログオフするまでずーっと無効にしたいなら、unaliasコマンドを使えばよろしい。
 が、今実行する1回だけという場合は、簡単に明示的にエイリアスを無効にする方法がある。

 それは…



 コマンドの頭に \ を付ける

 だけ。そんだけ。

 つまり、 ls -la と実行したなら、な表示になるところ、 \ls -la と実行すると、地味な表示となるのである。
[root@test-server tmp]# alias rm
alias rm='rm -i'


 こんなエイリアスがある場合、
[root@test-server tmp]# touch testfile
[root@test-server tmp]# rm testfile
rm: remove 通常の空ファイル `testfile'?


 と、聞かれる。まあ、rm -fとすれば良いのだが、こういう場合にも、
[root@test-server tmp]# touch testfile
[root@test-server tmp]# \rm testfile
[root@test-server tmp]#


 と、このようにエイリアスが無かったことになってコマンドが実行されるのである。

 さりげなく使ってみよう!(笑)
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。