随机
Enter 搜索 ↑↓ 切换 Esc 清空

shortcut

命令

Linux 软链接与命令行快捷键创建指南

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

注意事项

相关命令