别名不能替代函数,带参数或逻辑判断的命令需用函数;临时别名仅当前终端有效,永久生效须正确写入shell配置文件并source加载。

别名不是万能的,带参数或需要逻辑判断的命令必须用函数替代;永久生效要写对配置文件,否则新开终端就失效。
临时设置别名只在当前终端有效
直接运行 alias 命令即可,比如 alias ll='ls -la'。注意等号两边不能有空格,命令部分建议用单引号包裹,避免变量提前展开或空格截断。
- 执行后立刻可用,输入
ll就等价于ls -la - 关闭终端或退出 Shell 后自动消失
- 验证是否成功:运行
alias ll查看定义,或直接执行ll - 别名中若含变量(如
$HOME),要用双引号,但得小心变量在定义时就展开还是执行时才展开
永久生效必须写入正确的 Shell 配置文件
别名不会自动跨会话保留,必须存到初始化文件里,并确保该文件被加载。关键不是“写哪儿”,而是“谁加载了它”。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先确认 Shell 类型:
echo $SHELL,输出/bin/bash就改~/.bashrc,/bin/zsh就改~/.zshrc - 别往
~/.bash_profile或~/.profile里乱加——它们不一定被交互式非登录 Shell 加载(比如你日常开的 GNOME 终端默认就是) - 推荐做法:把别名集中写进
~/.bash_aliases,并在~/.bashrc末尾加上:if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases; fi - 改完必须执行
source ~/.bashrc才能立即生效,否则得新开终端
绕过别名执行原始命令的几种方式
有些别名(比如 alias rm='rm -i')会影响脚本行为或自动化流程,这时候得跳过它。
- 加反斜杠:
\rm file.txt—— 最常用、最可靠 - 用绝对路径:
/bin/rm file.txt—— 适合知道可执行文件位置的情况 - 在别名末尾加空格:
alias sudo='sudo '(注意空格),之后sudo apt update中的apt才不会被当成别名参数处理 - 别名定义里用了
$@或其他扩展语法?那已经不是纯 alias,是函数了,绕过方式不同
别名不支持参数传递,复杂逻辑请用函数
alias 本质是字符串替换,无法接收 $1、$2 这类位置参数。想实现 ll /tmp 或 mkcd project 这种效果,必须用函数。
- 在
~/.bashrc里写:ll() { ls -la "$@"; },然后source ~/.bashrc -
"$@"保证参数原样转发,带空格、通配符都安全 - 函数还能加判断,比如:
grep() { command grep --color=auto "$@"; },用command调用原始命令,避免递归调用自己 - 别名和函数同名时,函数优先级更高,但容易引发混淆,尽量避免重名
最容易被忽略的是:别名定义里的引号类型、变量展开时机、以及配置文件是否真被 source 过——光写进文件不等于生效,很多问题其实卡在这一步。










