ターミナル(シェル)のエイリアス登録という便利機能をご存知でしょうか??
エイリアスとはショートカットのようなもので、
いつものコマンドの短縮コマンドを登録しておくことができます。
Linuxのコマンド自体は短いものが多いですが、
よく使うオプションまで含めて登録してしまうととても便利です。
#サクッとやってみる
##例①:常にディレクトリの中身をわかりやすく表示したい
例えばディレクトリの中身を表示するlsコマンド1には-F
というオプションがあります。
これはファイル種別を表示するオプションです。
-F
オプションはよく使うので、ターミナルを開いて
$ alias ls='ls -F'
を実行し、$ ls
としてエイリアスを登録すると..
$ ls
app/ bootstrap/ composer.lock database/ phpunit.xml readme.md routes/ storage/ vendor/
artisan composer.json config/ package.json public/ resources/ server.php tests/ webpack.mix.js
という感じにディレクトリ名には/
が表示され、
$ ls
を実行しただけで、ファイルなのかディレクトリなのか分かりやすく表示することができるようになりました。
(このほうが見やすいですよね..?)
※追記
コマンドで登録した場合、PCをシャットダウンするとエイリアスがリセットされるので、
永続化する方法も後述しています。
##例②:隠しファイルを簡単に表示したい
$ ls -a
は隠しファイルも含めてディレクトリ内の全てのファイルとディレクトリを表示するオプションです。
こちらもよく使うので、
$ alias la='ls -a'
のように今度は$ la
としてエイリアスを登録すると..
$ la
./ .env* .gitattributes app/ composer.json database/ public/ routes/ tests/
../ .env.example .gitignore artisan composer.lock package.json readme.md server.php vendor/
.editorconfig .git/ .styleci.yml bootstrap/ config/ phpunit.xml resources/ storage/ webpack.mix.js
というように、$ la
を実行するだけで.envファイルや.gitディレクトリなどの隠しファイルが表示されるようになりました。
##登録したエイリアスを削除したい
登録したエイリアスを削除するには、
$ unalias ls
$ unalias la
のように登録したエイリアス名を引数にして、$ unalias
というコマンドを実行すればエイリアスの登録が削除されます。
##登録したエイリアスを一時的に無視したい
エイリアスの登録は削除したくないけど、
一時的に解除して元のコマンドを実行したい場合は、コマンドの前に\
を付けて実行するだけでOKです。
$ \ls
app bootstrap composer.lock database phpunit.xml readme.md routes storage vendor
artisan composer.json config package.json public resources server.php tests webpack.mix.js
普通に$ ls
を実行したときと同じ結果になりました。(ディレクトリ名に/
が表示されない)
蛇足ですがこの\ls
は、
$ command ls
#または
$ /bin/ls
のようにしても同様です。
##補足:シャットダウンすると消えてしまう..永続化したい場合
先程までのようにターミナルのコマンドでサクッと登録もできるのですが、
留意点としてPCをシャットダウンせっかく登録したエイリアスが消えて無くなってしまいます。。
しかしviエディタ等で設定ファイルを直接編集してあげれば、
エイリアスを永続的にマシンに登録することもできます。
ログインシェルがbash(2019年秋以前のMacの標準)なら
$ vi ~/.bashrc
で、
ログインシェルがzsh(2019年秋以降のMacの標準)なら
% vi ~/.zshrc
で編集することができます。
そこに、
# User specific aliases and functions
alias ls='ls -F'
alias la='ls -a'
のように追記して保存した後、
$ source ~/.bashrc
#または
$source ~/.zshrc
で反映させてあげればOKです。(これ自身をエイリアス登録しても良いかも)
####viエディタ補足
「vi
って何?」という方に簡単に使い方だけざっくり補足すると、、
- 開いた時はコマンドモード(移動できるモード)になっています。
-
h, j, k, l
キーが、それぞれ十字キーの左上下右として使えます。(十字キーも使えるけど) - これで移動して、
i
キーで編集モード(文字入力できるモード)にできます。 - 普通に打ち込んで、編集が完了したら
esc
キーを押して、最初の移動のモードに戻します。 -
:wq
と打ち込んでEnterで、保存して終了することができます。 - 保存したくない場合は
:q!
と打ち込むんでEnterで、保存せずに終了することができます。
##おまけ
同様に、基本コマンドでエイリアス登録しておくと便利なオプションを少し紹介しておきます。
# ディレクトリ内の詳細を表示する
alias ll='ls -l'
# rmコマンドで削除前に常に確認するようにする
alias rm='rm -i'
# cpコマンドで上書き前に常に確認するようにする
alias cp='cp -i'
# mvコマンドで上書き前に常に確認するようにする
alias mv='mv -i'
# mkdirコマンドで深い階層のディレクトリも一気に作成できるようにする
alias mkdir='mkdir -p'
こんな感じで、
間違えたらまずいコマンドは-i
オプションで常に確認するようにすると安全です。
また最後のmkdir -pが分かりづらいので例を示すと、
例えば/parent
や/child
というディレクトリが存在しない状態で、
「parent/child/grandchild」というディレクトリ構成を一気に作りたい場合。
普通に、
$ mkdir parent/child/grandchild
と実行すると「そんなディレクトリは存在しないよ〜」というエラーになるかと思います。
この場合は-p
オプションを付けて、
$ mkdir -p parent/child/grandchild
とするとエラーにならずに一撃で「parent/child/grandchild」という構成を作れます。
なので、常に-p
オプション付きで実行されるように
alias mkdir='mkdir -p'
でエイリアス登録してしまうと便利ですね。
以上、初歩的な記事ではありますが、
良かったらLGTMもしていただけると今後の励みになります(^_^)
-
以降では、
$ コマンド名
で実行するコマンドを示します。 ↩