Linuxのaliasを知らずに同じ長いコマンドを3年間打ち続けていた話|現役講師が語る「小さな効率化」を後回しにした代償

HOMEリナックスマスター.JP 公式ブログLinux学習ガイド > Linuxのaliasを知らずに同じ長いコマンドを3年間打ち続けていた話|現役講師が語る「小さな効率化」を後回しにした代償
宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「また今日も、同じ長いコマンドを一文字も省略せずにフルで打っている……」

Linuxを使い始めて数年、私はそんな非効率な作業を毎日繰り返していました。ls -alF、git status、systemctl status、同じコマンドを何百回、何千回とフルタイプしながら「これが普通のやり方だ」と思い込んでいたのです。

この記事では、20年以上Linuxサーバーを運用してきた経験から、alias(コマンドに短い別名をつける機能)を知らずに損をしていた自分の話と、.bashrcへの正しい登録方法、そしてsudoやcronでaliasが「効かない」と現場で混乱したトラブルの対処法を解説します。

この記事のポイント

・aliasはコマンドに短い別名をつける機能で.bashrcに書けば恒久化できる
・sudo実行やcron・シェルスクリプトではaliasは基本的に効かない
・alias rm='rm -i' など安全確認系aliasは事故防止に直結する
・「効かない」ときはtypeコマンドでalias展開の有無を確認する


Linuxのaliasを知らずに同じ長いコマンドを3年間打ち続けていた話|現役講師が語る「小さな効率化」を後回しにした代償
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

3年間、私が「非効率」に気づかなかった理由

2001年にIT業界へ入った当時、私はまず「コマンドは省略せず正確に打つのが基本」と教わりました。先輩からは「変な近道を覚えると、本番作業で忘れたときに困るぞ」と言われ、その言葉を鵜呑みにしていた私は、alias(コマンドに短い別名をつける機能)という存在をほとんど意識せずに何年も過ごしていました。

SE時代、私が毎日打っていたコマンドを数えてみると、ls -alF、cd /var/log、git status、systemctl status httpd あたりは1日に何十回も入力していました。1回あたりの差はほんの数秒でも、積み重なれば大きな時間になる。それに気づいたのは、恥ずかしながら現場に出て3年以上経ってからでした。

きっかけは、隣の席の先輩が私よりも明らかに速いスピードで作業をこなしていたことです。「なんでそんなに速いんですか」と聞くと、先輩の.bashrc(ログインシェル起動時に自動で読み込まれる設定ファイル)には数十個のaliasがびっしり書き込まれていました。「え、こんなの勝手に登録していいんですか」と驚いた私に、先輩は「むしろ登録しない理由がない。手が覚えているコマンドほど短くしておくのが鉄則だ」と笑いながら言いました。

振り返ると、私が長年alias化を避けていた本当の理由は「正確さへのこだわり」ではなく、単に「知らなかった」「調べようとしなかった」だけでした。現場で3,100名以上を指導してきた今だからこそ言えますが、こうした「小さな効率化の先送り」は、初心者だけでなく中堅エンジニアにも驚くほど多い落とし穴です。

初めてエイリアスを設定して衝撃を受けた日

先輩に背中を押され、私はその日の夜、自宅の検証機で初めてaliasを設定しました。その体験は今でもはっきり覚えています。

1. まずはaliasコマンドで一時的に試す

いきなり設定ファイルを書き換えるのが不安だったので、最初はシェル上でその場限りのaliasを試しました。

# alias ll='ls -alF' $ alias ll='ls -alF' $ ll total 32 drwxr-xr-x 6 tomo tomo 4096 8月 20 09:12 . drwxr-xr-x 22 tomo tomo 4096 8月 19 21:40 .. -rw-r--r-- 1 tomo tomo 807 8月 20 09:00 .bashrc -rw-r--r-- 1 tomo tomo 220 8月 19 21:40 .bash_logout

たった数文字打つだけで、あの長いオプション付きコマンドと同じ結果が返ってくる。当たり前のことなのに、実際に自分の手で試すと「なぜ今まで知らなかったんだ」という悔しさに近い感情がこみ上げてきました。ただし、この方法には注意点があります。alias -pのように一時的に登録したaliasは、シェルを終了すると消えてしまいます。

2. .bashrcに書いて恒久化する

毎回入力し直すのは本末転倒なので、次にホームディレクトリの.bashrcへ恒久登録しました。

# vi ~/.bashrc alias ll='ls -alF' alias la='ls -A' alias grep='grep --color=auto' alias df='df -h' :wq $ source ~/.bashrc

.bashrcを編集した直後は反映されないため、source(設定ファイルを現在のシェルに読み込み直すコマンド)で反映させるか、いったんログアウトして入り直す必要があります。ここで一度sourceを忘れて「あれ、設定したのに反映されない」と数分焦ったのも、今となっては懐かしい思い出です。

3. 効果を実感するまでにそう時間はかからなかった

登録した翌日から、体感で作業スピードが明らかに変わりました。それまで無意識に「ls -alF」とフルタイプしていた指が、自然に「ll」と打つようになっていく。最初の数日は頭で意識していたコマンドが、1週間もすると完全に手が覚えている状態になりました。

セミナーで受講生に「一番地味だけど効果が大きいTipsは何ですか」と聞かれたとき、私は必ずこのalias化の話をします。派手なテクニックではありませんが、20年以上サーバーを運用してきた経験から言えるのは、日々の小さな摩擦を減らす工夫こそが、長期的な生産性を大きく左右するということです。

現場で使い続けている実務Tips — 安全と効率を両立するalias活用術

alias化に目覚めてから、私は次のような使い方を現場で徹底するようになりました。

今の登録状況を確認する:aliasコマンドを引数なしで実行すると、現在有効なaliasが一覧表示されます
一時的に無効化する:unalias ll のようにunaliasコマンドで個別に解除できます
危険なコマンドには確認プロンプトを仕込む:alias rm='rm -i' のように-iオプション付きにしておくと、削除前に確認が入ります
設定ファイルを分割する:.bashrcが肥大化してきたら、alias専用の.bash_aliasesファイルを作り、.bashrc側でsourceする構成にすると管理しやすくなります

【重要】特に効果が大きいのが、破壊的なコマンドへの安全確認aliasです。rm、mv、cpのように上書き・削除を伴うコマンドにalias rm='rm -i'(削除前に確認を求めるオプション)を仕込んでおくと、うっかり操作による事故をかなりの確率で防げます。実務では「本番サーバーだけは安全alias、検証サーバーは素のコマンド」のように使い分けている現場もありますが、私は初心者のうちは全環境で安全aliasを使うことを強く推奨しています。事故を経験してから対策するのでは遅いというのが、20年以上運用してきた率直な感想です。

一方で、alias化には「やりすぎ注意」の側面もあります。あまりに独自色の強いaliasを大量に登録すると、他人のサーバーや新しい検証機で作業するときに「あれ、いつものコマンドが効かない」と戸惑うことになります。私は最低限、ll・la・grepの色付け・df -hの4つだけは全サーバー共通で登録し、それ以外は必要最小限にとどめるようにしています。

「エイリアスが効かない」というトラブルとその対処法

alias化に慣れてきた頃、私は新しい壁にぶつかりました。「.bashrcに登録したはずのaliasが、なぜか効かない」という現象です。原因は主に2つありました。

1. sudoを付けるとaliasが効かない

# sudo ll sudo: ll: command not found # type ll ll is aliased to `ls -alF'

sudoを付けた瞬間にaliasが認識されなくなり、最初は「なぜ?」と混乱しました。原因はシンプルで、sudoはコマンドを別のシェル環境(root権限で新しく起動される非対話シェル)として実行するため、実行しているユーザーの.bashrcで定義したaliasを引き継がない仕様になっているからです。

対処法として私が使っているのは、alias sudo='sudo ' のように、sudo自体をaliasに登録し、末尾に半角スペースを1つ入れる方法です。bashにはaliasの直後の単語も再度alias展開を試みる仕様があるため、この一手間で「sudo ll」も正しく展開されるようになります。ただし、これはあくまで対話シェルでの利便性のためのTipsであり、本番の自動化スクリプトでの利用は次の理由から避けるべきです。

2. cronやシェルスクリプトの中でaliasが効かない

もうひとつ、私が実際に本番環境で経験したのが、cronから実行するシェルスクリプトの中でaliasを使おうとして「command not found」エラーに悩まされたケースです。原因はaliasの仕組みそのものにあります。

aliasは対話シェル(人間がキーボードでコマンドを打つことを想定したシェル)向けの機能で、bashのデフォルト設定では、cronやスクリプト実行のような非対話シェル(対話操作を伴わずコマンドを自動実行する環境)では.bashrcが読み込まれず、aliasも展開されません。この仕様を知らずに「サーバーで動いたのに、cronで実行すると動かない」というトラブルは、現場で本当によく見かけます。

私が実務で徹底しているのは、次の3つのルールです。
cron・スクリプトの中ではaliasを使わず、フルパスのコマンドをそのまま書く(例:ll ではなく ls -alF )
どうしてもalias相当の短縮記法が必要な場合は、aliasではなくシェル関数(function)として.bashrcやスクリプト内に定義する
対話シェルでない場所でaliasを検証したい場合は、bashに shopt -s expand_aliases を明示的に指定してからaliasファイルをsourceする

この経験は、本番サーバーで一度肝を冷やしてから身についた鉄則です。動作確認を対話シェルでしか行わず、いざ自動実行に切り替えたら動かなかった、という失敗は誰にでも起こりえます。alias化で得られる効率と、それが「どの実行環境でも通用するわけではない」という限界の両方を理解しておくことが、実務では欠かせません。

まとめ

3年間、私は「知らなかった」というだけの理由で、地味だけれど確実に生産性を左右するalias化を先送りにしていました。この経験から得た教訓を整理すると、次のようになります。

状況 確認・対処方法
頻繁に使う長いコマンドを短縮したい alias ll='ls -alF' を.bashrcに追記してsource ~/.bashrcで反映
破壊的コマンドの誤操作を防ぎたい alias rm='rm -i' のように確認プロンプト付きで登録する
sudoを付けるとaliasが効かない alias sudo='sudo '(末尾スペース必須)で対話シェルのみ対応
cron・スクリプトでaliasが効かない alias化せずフルコマンドを書くか、シェル関数(function)で代替する

セミナーで3,100名以上を指導してきた中で、alias化のような「地味な効率化」を後回しにしている方を数え切れないほど見てきました。派手な新技術を学ぶことも大切ですが、日々手で打っているコマンドを見直すだけで、現場での作業効率は確実に変わります。
私が3年間気づかなかったこの小さな工夫が、皆さんの明日からの作業を少しでも楽にできれば嬉しく思います。
aliasのような日々の効率化Tipsも含めて、Linuxサーバー運用を体系的に学びたい方は、ぜひ下のリンクから無料マニュアルを受け取ってください。

「同じコマンドを毎回フルで打っている」その積み重ねを、体系立てて見直しませんか?

aliasのような小さな効率化は、Linuxサーバー運用の全体像を理解して初めて「どこで使うべきか」が見えてきます。
ネットの断片的な情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。