Linuxで「ショートカット」と呼ばれるものには、ファイルシステムのリンクと、デスクトップ環境のアプリケーション起動定義があります。代表的なのがシンボリックリンクと.desktopファイルです。
1. シンボリックリンク#
シンボリックリンクは、ファイルやディレクトリへのパスを保存する特殊なファイルです。ln -sで作成し、ターミナルやスクリプトから別のパスとして利用します。
sudo ln -s /opt/myapp/myapp_executable /usr/local/bin/myappこれで、/opt/myapp/myapp_executableを毎回入力せず、次のように実行できます。
myapp
ls -l /usr/local/bin/myapp/usr/local/binがPATHに含まれていれば、シェルはこのリンクをコマンドとして見つけられます。
シンボリックリンクはファイルシステムの機能であり、アイコン、表示名、カテゴリ、引数入力画面などのGUI情報は持ちません。リンク先を移動・削除すると、リンクが壊れることがあります。
2. .desktopファイル#
.desktopファイルは、Linuxデスクトップ環境がアプリケーションをメニューやランチャーへ登録するための定義ファイルです。実行ファイルのパスに加えて、表示名、説明、アイコン、カテゴリ、端末で実行するかどうかなどを記述できます。
ユーザー単位で登録する場合は、通常~/.local/share/applications/へ保存します。
mkdir -p ~/.local/share/applications
nano ~/.local/share/applications/myapp.desktop内容の例は次のとおりです。
[Desktop Entry]
Version=1.0
Type=Application
Name=MyApp
Comment=My custom application
Exec=/opt/myapp/myapp_executable
Icon=/opt/myapp/myapp_icon.png
Terminal=false
Categories=Utility;保存後、必要に応じて実行権限を付けます。
chmod +x ~/.local/share/applications/myapp.desktopアプリケーションメニューを開き、MyAppを検索して起動します。デスクトップへ直接表示する方法はデスクトップ環境によって異なります。GNOMEなどでは、デスクトップへコピーした後に「起動を許可」する操作が必要になる場合があります。
3. 主な違い#
| 項目 | シンボリックリンク | .desktopファイル |
|---|---|---|
| 主な役割 | ファイルやディレクトリへの別名を作る | GUIからアプリケーションを起動する定義を作る |
| 利用場所 | ファイルシステム、シェル、スクリプト | アプリケーションメニュー、ランチャー、デスクトップ |
| 作成方法 | ln -s | .desktop形式のテキストを作成 |
| アイコン | 持たない | Icon=で指定できる |
| 引数・端末設定 | 持たない | Exec=、Terminal=などで指定できる |
| GUIの必要性 | 必要ない | デスクトップ環境で利用する |
4. /usr/local/binにリンクを置く理由#
/usr/local/binは、ディストリビューションのパッケージ管理下にないローカルのプログラムやスクリプトを置くための標準的なディレクトリです。多くのLinux環境でPATHに含まれているため、ここにリンクを置くと絶対パスを入力せずに実行できます。
echo "$PATH"/binや/usr/binへ個人用プログラムを直接置くと、パッケージ管理やシステム更新と競合する可能性があります。ローカルに管理するプログラムは、/usr/local/binまたはユーザー用の~/.local/binへ置く方が安全です。
5. 使い分け#
- ターミナルやスクリプトで短い名前から実行したい場合は、シンボリックリンクを使う。
- アプリケーションメニューへ表示し、アイコンや説明を付けて起動したい場合は、
.desktopファイルを使う。 - 同じアプリケーションに対して、シンボリックリンクと
.desktopファイルを同時に作ることもできる。
両者は似た「ショートカット」に見えますが、シンボリックリンクはファイルシステムの仕組み、.desktopファイルはデスクトップ環境のアプリケーション登録情報です。

