shortcut
Linux 软链接与命令行快捷键创建指南
补充说明
本文介绍如何通过软链接(符号链接)和 shell 别名创建命令行快捷键,实现快速访问常用命令和脚本。软链接和别名是提升 Linux 终端效率的两种核心手段,前者适用于系统级命令注册,后者适用于用户级快捷方式定制。
参考图示:
![]()
软链接基本概念
软链接(Symbolic Link)类似于 Windows 的快捷方式,是一个指向文件或目录的特殊文件。
| 特性 | 软链接 | 硬链接 |
|---|---|---|
| inode | 不同 | 相同 |
| 跨文件系统 | 支持 | 不支持 |
| 指向目录 | 支持 | 不支持 |
| 原文件删除后 | 链接失效 | 仍然有效 |
| 文件大小 | 存储路径长度 | 与原文件相同 |
创建软链接
基本语法
# 语法
ln -s <目标文件> <链接名称>
# 示例:将脚本注册为系统命令 m
ln -sf /etc/profile.d/mylook.sh /usr/local/bin/m
参数说明
| 参数 | 说明 |
|---|---|
-s |
创建符号链接(软链接) |
-f |
覆盖已有链接 |
-v |
显示操作详情 |
-r |
创建相对路径链接 |
软链接管理
# 查看链接信息
ls -l /usr/local/bin/m
# 输出: lrwxrwxrwx 1 root root 23 ... /usr/local/bin/m -> /etc/profile.d/mylook.sh
# 解析链接真实路径
readlink -f /usr/local/bin/m
# 删除链接(不影响源文件)
unlink /usr/local/bin/m
rm /usr/local/bin/m
创建别名
别名适用于用户级快捷方式,在 shell 配置文件中定义。
# 临时别名(退出终端失效)
alias m='/etc/profile.d/mylook.sh'
# 永久别名(写入配置文件)
echo "alias m='/etc/profile.d/mylook.sh'" >> ~/.bashrc
source ~/.bashrc
# 查看已有别名
alias
alias m
# 删除别名
unalias m
常用示例
系统管理
# 软链接方式
ln -sf /usr/bin/systemctl /usr/local/bin/netrestart
# 别名方式
echo 'alias netrestart="systemctl restart networking"' >> ~/.bashrc
echo 'alias diskspace="du -h --max-depth=1"' >> ~/.bashrc
开发工具
# Python 快捷方式
ln -sf /usr/bin/python3 /usr/local/bin/py
# Git 常用操作
echo 'alias gs="git status"' >> ~/.bashrc
echo 'alias gp="git push"' >> ~/.bashrc
echo 'alias gc="git commit"' >> ~/.bashrc
echo 'alias gl="git log --oneline"' >> ~/.bashrc
自定义脚本
mkdir -p ~/scripts
ln -sf ~/scripts/backup.sh /usr/local/bin/backup
ln -sf ~/scripts/update.sh /usr/local/bin/update
ln -sf ~/scripts/monitor.sh /usr/local/bin/monitor
chmod +x ~/scripts/*.sh
PATH 环境变量
# 查看当前 PATH
echo $PATH
# 添加个人 bin 目录
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 目录优先级说明
/usr/local/bin/ # 用户程序,优先级最高
/usr/bin/ # 系统命令
~/bin/ # 个人脚本
~/.local/bin/ # 用户本地程序
故障排除
# 检查链接是否有效
ls -l /usr/local/bin/m
test -f /etc/profile.d/mylook.sh && echo "存在" || echo "不存在"
test -x /etc/profile.d/mylook.sh && echo "可执行" || echo "不可执行"
# 调试执行
bash -x /usr/local/bin/m
# 查找所有损坏的链接
find /usr/local/bin -type l ! -exec test -e {} \; -print
# 清理损坏链接
find /usr/local/bin -type l ! -exec test -e {} \; -delete
多版本管理
# Python 版本切换
ln -sf /usr/bin/python3.9 /usr/local/bin/python
ln -sf /usr/bin/python3.11 /usr/local/bin/python
# Node.js 版本切换
ln -sf /opt/node-v18/bin/node /usr/local/bin/node
ln -sf /opt/node-v20/bin/node /usr/local/bin/node
注意事项
- 创建软链接使用绝对路径,避免链接移动后失效
- 链接目标文件需有可执行权限(
chmod +x) - 系统级链接放在
/usr/local/bin/,用户级用~/.bashrc别名 rm删除链接时末尾不加斜杠/,否则会删除目录内容- 定期检查并清理失效链接