在 Linux 系统中,alias 下令用于为下令创建别名。别名可以简化下令的输入,特别是对于那些长且复杂的下令。以下是一些关于 alias 下令的基本用法和示例。
基本用法
创建别名
- alias shortname='long command'
复制代码 比方,将 ls -al 下令创建一个别名 ll:
实行ll指令将实行 ls -al 下令,并显示当前目录的详细列表。
检察当前别名
检察特定别名
移除别名
比方,移除 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:
在文件的末尾添加下面的配置:
- 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,即当前脚本所在的目录。
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |