alias コマンドってご存知ですか?
コマンドの別名を登録するコマンドです。ただそれだけですが、使い方によっては非常に便利なコマンドです。
どんなコマンド?
コマンドの別名とは、例えば、
ずっとWindowsが大好きで、コマンドプロンプトで
dir コマンドを打ちまくってた人が、急にMacやLinux環境に移行した際に、どうしても ls じゃなくて dir って打ちたい時などに、
alias dir='ls'
と設定しておくと、
シェルは、
dir というコマンドは、ls と同じと解釈してくれるようになります。
もちろん、Windowsコマンドプロンプトの
dir コマンドと、ls コマンドでは、オプションや使い方は全然違いますので、本当の意味で dir コマンドが使えるようになったわけではないです。
どうやって使うのか?
上記のとおりですが、
alias 別名='指定するコマンド+オプションなど ...'
のように使います。 例えば上記の例であれば、そのままターミナルで実行すれば直ぐに有効になります。
$ alias dir='ls'
きちんと設定されたかを確認する場合は、 オプションなしで実行すると現在の設定が表示されます。
$ alias
alias dir='ls'
...
...
あとは、ターミナルで
dir を実行すれば使えるはずです。
設定をずっと反映させる
上記の方法で
alias を設定してもターミナルを終了させると次回は忘れています。
便利なコマンドはいつでも忘れないようにするためには(例えば)ホームディレクトリにある
.bashrc というファイルに定義を追加しておきます。
vi ~/.bashrc
注意 共用のサーバでは、意図しないコマンドが実行されないように alias の定義を追加する前に、必ず一緒に作業するメンバーに確認してから行ってください。
設定を無効にする
一時的に無効にする
例えば一時的に素の
ls が入力したいこともあります。
その際は
¥ をコマンドの先頭に付与することによって alias の定義を無視して、素のコマンドが実行されます。
¥ls
つまり、
¥ll なんて入力すると、「そんなコマンドないです!」と怒られることになります。
ずっと無効にする
~/.bashrc の定義があれば削除して、unalias コマンドで定義を無効にします。
いつも使っている?alias
CentOSやAmazon Linuxといったディストリビューションでは、最初からaliasが設定されているものもあります。例えば、
alias grep='grep --color=auto'
alias ll='ls -l --color=auto'
などがあります。
この定義の
grep コマンドは、出力結果で検索にヒットした文字列の色が変わります。
デフォルトの
grep コマンド(つまり、¥grep)では、文字列の色は変わらないのですが、
--color=auto オプションを alias で指定することによって、grep と入力するだけで無意識にこの結果になるわけです。便利ですね。
ll コマンドの例も同様に、ls -lとするのが面倒であり、サクッと入力できるようになっています。
便利かもしれない alias の例
rm, mvインタラクティブな実行
rmの削除時とmvの上書き時に「やっていいですか?」確認してくれるようになります。
alias rm='rm -i'
alias mv='mv -i'
いろいろな ls
隠しファイル表示、新しいものを最後にソート、詳細な時間表記にする。
alias lla='ls -la'
alias ltr='ls -ltr'
alias llt='ls -l --full-time'
自分のグローバルIPアドレスを知る
外部のIPを教えてくれるサイトの結果を返します。
alias getipaddr='curl 自分のIPアドレスを返却してくれるURL'
よくつかうAWSコマンドなど
awscli単体だけでなく jq の組み合わせなど。
alias aws-iam-account='aws iam list-account-aliases'
alias aws-ec2-types='aws ec2 describe-instances --output json | jq -r ".Reservations[].Instances[] | .InstanceType + \"\t\" + .State.Name"'
ログを追う
よくある定形の調査など(1)
alias log-error-list='tail -f /var/log/xxx/xxx.log | grep ERROR | cut -d" " -f 3-6'
今日の集計
よくある定形の調査など(2)
alias today-success-list='grep SUCCESS `date +%Y%m%d`.log | cut -d" " -f4,5,10 | sort | uniq -c'
ファイルの頭とお尻が見たい
head + tailなので heil。ファイルの中身をざっくり見るには意外と便利。
function _heil() {
head -1 $1
tail -1 $1
}
alias heil='_heil'
武政
釣りとカレーと犬と音楽(プログレ)が好きです。
オンプレミス、プライベートクラウドのインフラ業務を行った後、AWS移行プロジェクトに参画。設計、構築、全体の管理などを担当。
たまに開発もやります。