Linux命令:bash

bash 命令

基本介绍

bash (Bourne-Again Shell) 是 Linux 和 Unix 系统中最常用的命令行解释器。它是 GNU 项目的一部分,兼容原始的 Bourne Shell,并添加了许多新功能,如命令历史、命令补全、别名、函数等。bash 是大多数 Linux 发行版的默认 shell。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

bash 复制代码
bash [选项] [脚本文件]

启动选项

选项 说明
-c <command> 执行指定的命令后退出
-i 启动交互式 shell
-l 作为登录 shell 启动
-r 启动受限 shell
-s 从标准输入读取命令
-v 显示读取的输入行
-x 执行命令前显示命令及其参数

常用内置命令

文件和目录操作

命令 说明
cd <dir> 切换目录
pwd 显示当前目录
ls 列出目录内容
mkdir <dir> 创建目录
rmdir <dir> 删除空目录
rm <file> 删除文件或目录
cp <src> <dst> 复制文件
mv <src> <dst> 移动或重命名文件

变量和环境

命令 说明
export <var>=<value> 设置环境变量
set 显示所有变量和函数
unset <var> 删除变量
env 显示环境变量
echo <text> 输出文本
read <var> 读取用户输入

流程控制

命令 说明
if ... then ... fi 条件判断
case ... esac 多条件分支
for ... do ... done 循环
while ... do ... done 条件循环
until ... do ... done 直到条件满足
break 跳出循环
continue 继续下一次循环

函数和脚本

命令 说明
function <name> { ... } 定义函数
<name>() { ... } 定义函数(简化形式)
return <n> 从函数返回
source <file> 执行脚本文件
./<script> 执行脚本文件

作业控制

命令 说明
&amp; 后台执行命令
jobs 显示后台作业
fg 将后台作业调至前台
bg 将前台作业放至后台
kill <pid> 终止进程
Ctrl+C 终止当前命令
Ctrl+Z 挂起当前命令

使用示例

1. 启动交互式 shell

bash 复制代码
bash

2. 执行单个命令

bash 复制代码
bash -c "echo 'Hello World'"

3. 执行脚本文件

bash 复制代码
bash script.sh

4. 作为登录 shell 启动

bash 复制代码
bash -l

5. 调试脚本(显示执行的命令)

bash 复制代码
bash -x script.sh

6. 读取并执行标准输入

bash 复制代码
echo "echo 'Hello'" | bash -s

7. 启动受限 shell

bash 复制代码
bash -r

8. 显示命令历史

bash 复制代码
history

9. 设置别名

bash 复制代码
alias ll='ls -la'

10. 定义函数

bash 复制代码
greet() { echo "Hello, $1!"; }
greet World

11. 后台执行命令

bash 复制代码
sleep 10 &amp;

12. 查看后台作业

bash 复制代码
jobs

13. 条件判断

bash 复制代码
if [ -f "/etc/passwd" ]; then echo "File exists"; fi

14. 循环遍历文件

bash 复制代码
for file in *.txt; do echo "$file"; done

配置文件

系统级配置

  • /etc/profile - 全局登录 shell 配置
  • /etc/bashrc - 全局 bash 配置
  • /etc/profile.d/ - 额外配置脚本目录

用户级配置

  • ~/.bash_profile - 用户登录 shell 配置
  • ~/.bashrc - 用户 bash 配置
  • ~/.bash_history - 命令历史记录
  • ~/.bash_logout - 退出时执行的命令

特殊变量

变量 说明
$0 脚本名
$1-$9 位置参数
$* 所有位置参数(作为单个字符串)
$@ 所有位置参数(作为独立字符串)
$# 参数数量
$$ 当前进程 ID
$? 上一条命令的退出状态
$- 当前 shell 的选项标志
!$ 上一条命令的最后一个参数

命令行快捷键

快捷键 说明
Ctrl+A 移动到行首
Ctrl+E 移动到行尾
Ctrl+U 删除光标到行首
Ctrl+K 删除光标到行尾
Ctrl+W 删除光标前的单词
Ctrl+Y 粘贴删除的内容
Ctrl+R 搜索命令历史
Tab 命令补全
Ctrl+D 退出 shell

实用技巧

1. 查看命令历史

bash 复制代码
history | grep "apt"

2. 执行历史命令

bash 复制代码
!5      # 执行第5条命令
!apt    # 执行最近以apt开头的命令
!!      # 执行上一条命令

3. 命令替换

bash 复制代码
echo "当前目录: $(pwd)"

4. 管道和重定向

bash 复制代码
ls -la | grep ".txt" > output.txt

5. 后台执行并输出到日志

bash 复制代码
nohup ./script.sh > output.log 2>&1 &

6. 设置永久别名

bash 复制代码
echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrc

相关命令

命令 说明
sh Bourne Shell(原始 shell)
csh C Shell
tcsh TENEX C Shell
zsh Z Shell
ksh Korn Shell

注意事项

  1. 脚本执行权限:脚本需要执行权限(chmod +x script.sh
  2. shebang 行 :脚本开头应添加 #!/bin/bash
  3. 路径问题 :当前目录不在 PATH 中时,需使用 ./script.sh
  4. 引号使用:单引号不展开变量,双引号展开变量
  5. 特殊字符 :特殊字符如 $, \, | 需要转义
  6. 脚本调试 :使用 bash -x script.sh 进行调试

总结

bash 是 Linux 系统中最常用的命令行 shell,提供了丰富的功能和灵活的脚本编程能力。掌握 bash 的基本用法是使用 Linux 系统的基础。