Linux alias使用
在 Linux 系统中,alias
命令用于为命令创建别名。别名可以简化命令的输入,特别是对于那些长且复杂的命令。以下是一些关于 alias
命令的基本用法和示例。
基本用法
创建别名
alias shortname='long command'
例如,将 ls -al
命令创建一个别名 ll
:
alias ll='ls -al'
执行ll指令将执行 ls -al
命令,并显示当前目录的详细列表。
查看当前别名
alias
查看特定别名
alias shortname
移除别名
unalias shortname
例如,移除 ll
别名:
unalias ll
永久保存别名
常见的可以配置别名的文件
~/.bashrc:适用于交互式非登录 shell。通常在你打开一个新的终端窗口或 tab 时加载。
~/.bash_profile 或 ~/.profile:适用于登录 shell。通常在你登录系统时加载,例如通过 SSH 或在控制台登录。
/etc/profile:系统范围的配置文件,适用于所有用户的登录 shell。
在 ~/.bashrc
中添加别名
其他文件中添加别名类似
# 打开 .bashrc 文件
vi ~/.bashrc# 添加别名定义
alias ll='ls -al'# 保存文件并退出编辑器
# 重新加载 .bashrc 文件
source ~/.bashrc
定义别名时不改变程序当前运行路径
如果自己编译的程序,放置在Linux下的某个文件夹下,想使用alias的方式,可以在随意的目录调用该程序,且不想改变该程序的运行路径(该程序可能在运行时会使用相对路径的方式调用配置文件),alias的编写如下:
编译的程序放置的目录:/home/test_folder/your_program.bin
vi ~/.bashrc
# 增加如下
alias pm='(cd /home/test_folder/ && ./your_program.bin)'
source ~/.bashrc
这样程序的当前运行名录就是:/home/test_folder了
带参数的命令如何在全局运行
如果自己编译的软件,需要输入option,这时候就不能使用alias指令了,因为alias指令不支持传参,可以在软件所在的目录创建一个myprogram.sh脚本。
vi myprogram.sh
增加的内容如下:
#!/bin/bash
# 获取脚本所在的目录
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
# 切换到脚本所在的目录
cd "$SCRIPT_DIR"
# 运行软件并传递所有参数
./mysoftware "$@"
设置脚本的启动权限
chmod +x /folder_path/mysoftware.sh
编辑你的 shell 配置文件,例如 ~/.bashrc
或 ~/.bash_profile
:
1. 在文件的末尾添加下面的配置:
export PATH=$PATH:/opt/mysoftware
/opt/mysoftware :软件以及启动软件的sh脚本所在的路径
重新加载配置文件:
source ~/.bashrc
这样软件可以在全局执行,并且不会改变软件的当前运行路径。
脚本解释:
SCRIPT_DIR=$(dirname "$(readlink -f "$0")") 是一个常见的 Bash 语句,用于获取当前脚本所在的目录。让我们逐步解析这条语句的含义:
$0:这是一个特殊变量,表示当前脚本的名称。如果脚本是通过相对路径调用的,那么 $0 也会包含相对路径。
readlink -f "$0":readlink 命令用于解析符号链接,并返回目标文件的绝对路径。-f 选项表示返回文件的绝对路径。如果 $0 是一个相对路径,readlink -f "$0" 会将其转换为绝对路径。
$(...):这是命令替换语法,用于执行括号中的命令,并将其输出作为结果返回。在这个例子中,$(readlink -f "$0") 会返回当前脚本的绝对路径。
dirname ...:dirname 命令用于去掉文件名,返回目录部分。dirname "$(readlink -f "$0")" 会返回当前脚本所在的目录的绝对路径。
SCRIPT_DIR=...:将上述命令的输出赋值给变量 SCRIPT_DIR,即当前脚本所在的目录。
2. 使用alias方式
alias shortCMD='/opt/mysoftware/mysoftware.sh'
重新加载配置文件:
source ~/.bashrc