Linux 系统作为服务器开发和运维的核心工具,其命令行界面(CLI)是高效操作的关键,而 Bash(Bourne Again Shell)作为 Linux 最默认的 Shell 环境,不仅是用户与系统交互的桥梁,更是自动化任务和脚本编程的基础,掌握 Bash 与 Linux 命令,意味着掌握了系统管理的“钥匙”,无论是日常文件操作、系统监控,还是复杂任务自动化,都能游刃有余。

Bash 基础:交互式与非交互式环境
Bash 是 GNU 项目对 Bourne Shell 的改进,既支持交互式命令输入,也支持脚本执行,在交互模式下,用户通过终端输入命令,Bash 解释并执行后返回结果;非交互模式则常用于脚本执行,例如通过 bash script.sh 运行脚本。
启动 Bash 后,首先会加载配置文件:交互式登录 Shell 依次读取 /etc/profile、~/.bash_profile、~/.bash_login 或 ~/.profile;非登录 Shell 则读取 ~/.bashrc,这些文件中可以定义环境变量(如 PATH 指定命令搜索路径)、别名(如 alias ll='ls -l' 简化常用命令)或函数,提升操作效率。
基础操作中,Tab 键是 Bash 的“利器”:输入命令或文件名前按 Tab 可自动补全,避免手动输入错误;连续按两次 Tab 则列出所有匹配选项。Ctrl+C 可终止当前命令,Ctrl+D 退出 Shell,Ctrl+L 清屏,这些快捷键是日常操作的必备技能。
核心命令:文件与目录管理
Linux 中一切皆文件,掌握文件操作命令是使用 Bash 的第一步。
-
ls:列出文件与目录
ls是最常用的命令之一,配合选项可灵活显示内容:ls -l以长格式显示(包含权限、所有者、大小、修改时间等),ls -a显示隐藏文件(以 开头的文件),ls -h以人类可读格式显示大小(如K、M、G)。ls -la ~/Documents可查看用户主目录下 Documents 文件夹的详细内容,包括隐藏文件。 -
cd:切换目录
cd(change directory)用于在不同目录间跳转:cd ~或cd回到用户主目录,cd ..返回上级目录,cd -在上次目录和当前目录间切换,从/home/user切换到/var/log后,cd -会回到/home/user。 -
cp、mv、rm:复制、移动与删除
cp复制文件或目录:cp file1 file2复制文件,cp -r dir1 dir2递归复制目录(需-r选项);mv移动文件或目录,也可用于重命名(如mv oldname newname);rm删除文件,rm -r递归删除目录,rm -f强制删除(不提示确认),需注意,rm删除的文件无法直接恢复,操作时需谨慎。 -
mkdir、rmdir:创建与删除空目录
mkdir创建目录:mkdir newdir创建单层目录,mkdir -p parent/child递归创建多级目录(若父目录不存在则自动创建);rmdir仅能删除空目录,删除非空目录需用rm -r。
文本处理:从查看内容到流编辑
Linux 中文本处理是核心任务之一,Bash 提供了一系列强大的命令,支持对文本的查看、搜索、编辑和转换。
-
cat、less、more:查看文件内容
cat一次性显示整个文件内容(适合短文件),如cat /etc/passwd查看 Linux 用户信息;less分页显示(支持上下滚动、搜索,按q退出),适合大文件;more是less的简化版,仅支持向前分页。 -
grep:文本搜索
grep使用正则表达式搜索文本,支持全局匹配(-i忽略大小写)、显示行号(-n)、递归搜索目录(-r)。grep -r "error" /var/log在日志目录中搜索包含 “error” 的行,grep -i "linux" README.md不区分大小写查找 README.md 中的 “linux”。 -
sed:流编辑器
sed可对文本进行编辑(替换、删除、插入等),但默认不修改原文件,仅输出处理结果。sed 's/old/new/g' file.txt将文件中所有 “old” 替换为 “new”,sed -i 's/^#//g' config.txt直接修改文件(-i选项),删除行首的 注释。 -
awk:文本分析工具
awk基于字段和行处理文本,支持自定义逻辑。awk '{print $1, $3}' file.txt输出每行的第 1 和第 3 字段(默认以空格分隔),awk -F: '{print $1}' /etc/passwd以 为分隔符,输出用户名列表。
系统管理:监控与控制进程
作为系统管理员,掌握进程管理和系统监控命令是保障系统稳定运行的关键。
-
ps与top:查看进程
ps查看当前进程,ps aux显示所有进程详细信息(包括用户、CPU 占用、内存占用等),ps -ef以完整格式显示进程树;top动态实时监控进程,按q退出,P按 CPU 占用排序,M按内存占用排序。 -
kill与pkill:终止进程
kill通过进程 ID(PID)终止进程,如kill 1234终止 PID 为 1234 的进程;kill -9 1234强制终止(无法忽略);pkill通过进程名终止,如pkill nginx终止所有 nginx 进程。
-
df与du:磁盘使用情况
df查看磁盘分区使用情况,df -h以人类可读格式显示(如50G、100M),默认显示所有挂载点;du查看目录或文件大小,du -sh *显示当前目录下各文件/目录的总大小(-s仅显示总计,-h格式化)。
Bash 进阶:脚本编程与自动化
Bash 脚本是将命令序列组织为可执行文件,实现任务自动化的核心工具,一个简单脚本示例:
#!/bin/bash # 这是一个备份脚本 src_dir=/home/user/documents dest_dir=/backup timestamp=$(date +%Y%m%d) tar -czf $dest_dir/backup_$timestamp.tar.gz $src_dir echo "Backup completed: $dest_dir/backup_$timestamp.tar.gz"
脚本首行 #!/bin/bash 指定解释器, 开头为注释,变量通过 name=value 定义(无需 ),使用时加 (如 $src_dir);$(command) 是命令替换,执行命令并返回结果(如 date 命令的输出)。
流程控制是脚本的核心:if 条件判断(如 if [ -f $file ]; then echo "File exists"; fi)、for 循环(如 for i in {1..5}; do echo $i; done)、while 循环(如 while read line; do echo $line; done < file.txt),函数可通过 function_name() { commands; } 定义,通过 function_name 调用,实现代码复用。
学习路径:从入门到精通
掌握 Bash 与 Linux 命令需循序渐进:
- 基础命令实践:每天练习 5-10 个常用命令(如
ls、cd、grep),通过man命令查看帮助(如man grep); - 脚本编写入门:从简单脚本(如文件备份、批量重命名)开始,逐步学习变量、循环、函数;
- 系统管理实战:通过虚拟机搭建实验环境,练习进程管理、日志分析、服务配置;
- 高级特性探索:学习 Bash 的数组、正则表达式、信号处理,以及
curl、ssh等网络工具的整合使用。
Bash 的强大在于其灵活性和可扩展性,它不仅是命令行工具,更是连接系统与用户的纽带,唯有通过持续实践,才能真正理解其精髓,让 Linux 系统管理高效而自如。









