刚接触 Linux 的时候,很多人对着黑乎乎的终端窗口发呆,不知道该敲什么。其实 Bash 就像一把万能钥匙,掌握了它,服务器管理、日常自动化这些事儿都能变得轻松很多。
Bash(Bourne-Again SHell) 是 Unix 类系统的默认命令行 shell,集自动化、进程管理和脚本编写于一身。这篇速查表会覆盖你日常最常用的内容:文件导航、I/O 重定向、变量、循环、条件判断,还有一些能让你效率翻倍的小技巧。
不管你是刚入门想搞懂终端怎么玩,还是老手需要一份随时能翻的参考手册,这篇都能派上用场。
变量是 Bash 的基础积木,搞懂了它,后面的脚本编写才能顺畅。
本地变量 只在当前会话有效:
bash
name="User" # 注意等号两边不能有空格
echo $name # 输出: User
导出变量 让子进程也能访问:
bash
export EDITOR=nano # 设置默认编辑器
几个特殊变量值得记住:
$? — 上一条命令的退出码(0 表示成功)
$$ — 当前进程的 PID
$PATH — 可执行文件的搜索路径
变量替换让你的脚本更灵活:
${var:-default} — 如果 var 未设置,返回 default
${str// /_} — 把所有空格替换成下划线
小贴士:把常用的环境变量配置写进 ~/.bashrc,这样每次开终端都自动生效。
说到配置环境,如果你需要一个稳定的 Linux 服务器来练手,👉 Serverspace 提供即开即用的云服务器,几分钟就能搭好环境开始折腾。
服务器跑着各种进程,会管理它们是运维的基本功。
后台运行,在命令后面加 &:
bash
sleep 30 & # 让命令在后台执行
暂停和恢复:
Ctrl+Z — 暂停当前进程
fg — 把进程拉回前台继续
bg — 让进程在后台继续跑
终止进程:
Ctrl+C — 优雅地停止(发送 SIGINT)
kill -9 PID — 强制终止(SIGKILL)
查找进程:
bash
pgrep firefox # 按名字找 PID
ps aux | grep ssh # 过滤查找
数据流控制是 Bash 的精髓之一,搞懂这几个符号能让你的命令组合威力大增。
Bash 有三个标准数据流:stdin(输入)、stdout(输出)、stderr(错误)。
常用操作符:
> — 输出到文件(覆盖)
>> — 追加到文件
2> — 重定向错误信息
&> — 同时重定向输出和错误
| — 管道,把前一个命令的输出送给下一个命令
bash
script.sh &> output.log # 把输出和错误都存进日志
Bash 处理字符串和做简单计算也很顺手。
字符串操作:
${var//search/replace} — 替换字符串中的内容
${file##*/} — 提取文件名
列表生成:
bash
echo file.{txt,log} # 输出: file.txt file.log
算术运算:
bash
echo $((10 / 2)) # 输出: 5
熟练使用快捷键能让你的终端操作快很多,这几个最值得记:
命令行编辑:
Ctrl+A / Ctrl+E — 跳到行首/行尾
Ctrl+W / Alt+D — 删除光标左/右边的单词
Ctrl+T — 交换两个字符
历史命令:
Ctrl+R — 搜索历史命令
!! — 重复上一条命令
!$ — 引用上一条命令的最后一个参数
自动补全:
Tab — 补全文件名或命令
连按两下 Tab — 显示所有可能的选项
别名让长命令变短:
bash
alias ll='ls -alh' # 加到 ~/.bashrc 永久生效
历史命令搜索:
bash
history | grep "git" # 找出所有跟 git 相关的命令
快速纠错:
bash
^old^new # 把上一条命令里的 "old" 换成 "new" 再执行
这些技巧在日常服务器管理中特别实用。如果你经常需要远程操作服务器,👉 Serverspace 的全球节点覆盖能给你更稳定的连接体验。
Bash 和其他 shell 有什么区别?
Bash 是最通用的选择,几乎所有 Linux 发行版都默认安装。它的语法成熟、文档丰富,学会 Bash 之后再学其他 shell(比如 zsh)也很容易上手。
变量定义时等号两边能加空格吗?
不能。name = "value" 这样写会报错,必须是 name="value"。这是 Bash 新手最常踩的坑之一。
怎么让一个脚本在后台持续运行?
除了 &,还可以用 nohup 命令,这样即使你关闭终端,进程也不会被终止:
bash
nohup ./script.sh &
如何调试 Bash 脚本?
在脚本开头加 set -x 可以打印每条命令的执行过程,方便排查问题。用完记得去掉或改成 set +x。
Bash 的东西确实多,但不用一口气全记住。先把最常用的几个命令和快捷键练熟,遇到新需求再查手册,慢慢就形成肌肉记忆了。