■ はじめに
めちゃくちゃいまさらながら、 lnコマンド / update-alternativesコマンドについてメモ。 ついでに、あいまいだった Linux のハードリンク(hard link)と シンボリックリンク(Symbolic link) について学んでおく。
目次
【1】lnコマンド 1)ハードリンク (オプションなし) 2)シンボリックリンク (-sオプション) 【2】update-alternativesコマンド 1)オプション 2)コマンド例 【3】unlinkコマンド 【4】Linux のリンク 1)ハードリンク(hard link) 2)シンボリックリンク(Symbolic link) 補足:iノード(i Node)
【1】lnコマンド
* ファイルのリンクを作成するためのコマンド
1)ハードリンク (オプションなし)
* オプションなしで、ハードリンクを作成
構文
ln ファイル名 ハードリンク名
2)シンボリックリンク (-sオプション)
* -sオプションで、シンボリックリンクを作成
構文
ln -s ファイル名 シンボリックリンク名
コマンド例
https://dk521123.hatenablog.com/entry/2018/06/28/222959
sudo ln -s /usr/local/bin/git /usr/bin/git
補足:確認方法
https://dk521123.hatenablog.com/entry/2022/07/01/000000
$ ls -l l rwx rwx rwx - --- --- --- 1 2 3 4 # 1) ファイル種別(ファイル(-)/ディレクトリ(d)/シンボリックリンク(l))
【2】update-alternativesコマンド
* シンボリックリンクを管理してデフォルトのコマンドを決定する => 例えば、JavaやPythonのような複数バージョンを入れたい場合に使用
https://graziegrazie.hatenablog.com/entry/2015/11/14/101050
1)オプション
Options | Explanations |
---|---|
--install | シンボリックリンクの作成・登録 |
--config | 使用するシンボリックリンクの設定(一覧から選択) |
--set | 使用するシンボリックリンクの設定(コマンド設定) |
--display | 現在選択されているシンボリックリンクの内容を表示 |
2)コマンド例
https://dk521123.hatenablog.com/entry/2024/01/13/002637
# sudo update-alternatives --install <作成するシンボリックのパス> <グループ名> <実体へのパス> <優先度> sudo update-alternatives --install /usr/bin/sbt sbt /usr/local/sbt/bin/sbt 100 update-alternatives --display sbt
https://dk521123.hatenablog.com/entry/2019/11/10/205535
# バージョンを切り替えるためにシンボリックリンクを設定 # sudo update-alternatives --install <作成するシンボリックのパス> <グループ名> <実体へのパス> <優先度> sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2 # sudo update-alternatives --config <グループ名> sudo update-alternatives --config python3 2 << を選択 (python3.7) # 選択なしで行う場合 # sudo update-alternatives --set <グループ名> <実体へのパス> # sudo update-alternatives --set python3 /usr/bin/python3.7 # Pythonのバージョンを確認 (python3.7 になっているはず) python -V
【3】unlinkコマンド
* ハードリンクを削除するコマンド
https://qiita.com/ko1nksm/items/dccd33cbdf52412568f1
【4】Linux のリンク
* 以下の2つ。 1)ハードリンク(hard link) 2)シンボリックリンク(Symbolic link)
イメージ
[ファイル] -> [ファイルのiノード] -> [ディスク上の実体] ↑ ↑ シンボリック ハードリンク リンク
1)ハードリンク(hard link)
* ファイルの iノード(※)に関するリンク => ファイルを削除しても実体は残る
2)シンボリックリンク(Symbolic link)
* ファイル自体のリンク * Windows の ショートカットのようなもの => ファイルを削除すると実体も削除される
補足:iノード(i Node)
* ファイルの管理情報(※)が格納されている部分
※
* 所有者 * 更新日時 * アクセス権 など
関連記事
SBT ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2024/01/13/002637
Git ~ 初期設定 / Linux 編 ~
https://dk521123.hatenablog.com/entry/2018/06/28/222959
Linux ~ ユーザに関わるコマンド ~
https://dk521123.hatenablog.com/entry/2016/06/26/233349
Linux ~ 権限/所有 に関わるコマンド ~
https://dk521123.hatenablog.com/entry/2016/06/10/233349
Linux ~ パーミッション / アクセス権限 ~
https://dk521123.hatenablog.com/entry/2022/07/01/000000
Linux ~ 環境変数あれこれ ~
https://dk521123.hatenablog.com/entry/2015/07/16/103501
シェル ~ Shebang ~
https://dk521123.hatenablog.com/entry/2024/02/02/000000
シェル ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2018/03/03/210642
Linuxログイン時に独自のメッセージ表示を表示するには
https://dk521123.hatenablog.com/entry/2017/06/22/214918