当前位置: 首页 > news >正文

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

在文件的末尾添加下面的配置:

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,即当前脚本所在的目录。

相关文章:

  • Ant-Design-Vue:Button按钮SVG图标垂直未居中问题
  • 深度学习R4周:LSTM-火灾温度预测
  • 【Deepseek 零门槛指南】DeepSeek 教程和常见问题解答 | 大白技术控
  • 一文理解蓝牙Core 6.0 channel sounding精确测距
  • Python学习心得数据的验证
  • Python 程序护盾:异常处理的易错漏洞修补 -- 6. 异常处理
  • 128最长连续序列
  • 【力扣 - 简单题】88. 合并两个有序数组
  • 【AI实践】deepseek支持升级git
  • JVM-Java程序的运行环境
  • 华为小艺助手接入DeepSeek,升级鸿蒙HarmonyOS NEXT即可体验
  • 时间序列分析(四)——差分运算、延迟算子、AR(p)模型
  • springboot整合mybatis-plus【详细版】
  • Mybatis高级
  • 利用亚马逊云科技RDS for SQL Server配置向量数据存储
  • ubuntu20.04声音设置
  • 使用EVE-NE-锐捷实现NAT+ACL服务限制
  • DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)
  • 系统思考—慢就是快
  • 解锁二进制数组:JS、TS、ArkTS 解析
  • 广东韶关一镇干部冲进交通事故火海救人,获授“见义勇为”奖励万元
  • 27岁杨阳拟任苏木镇党委副职,系2020年内蒙古自治区选调生
  • 新疆交通运输厅厅长西尔艾力·外力履新吐鲁番市市长候选人
  • 俄乌释放停火和谈信号,克宫:将组建“相应级别”谈判代表团
  • 印巴开始互袭军事目标,专家:冲突“螺旋式升级”后果或不可控
  • 昆明一学校门外小吃摊占满人行道,城管:会在重点时段加强巡查处置