Bash(Bourne Again Shell)是 Linux 和其他类 Unix 系统上最常用的命令行解释器和脚本语言。以下是 Bash 的一些基础知识和常用技巧,帮助你高效地使用和编写 Bash 脚本。
Bash 基础命令
1. 文件和目录操作
-
ls
:列出目录内容。ls ls -l # 详细信息 ls -a # 显示隐藏文件
-
cd
:切换目录。cd /path/to/directory cd ~ # 切换到用户主目录 cd - # 切换到前一个目录
-
pwd
:显示当前工作目录。pwd
-
cp
:复制文件或目录。cp source_file destination_file cp -r source_directory destination_directory # 递归复制目录
-
mv
:移动或重命名文件或目录。mv old_name new_name mv source_file target_directory
-
rm
:删除文件或目录。rm file rm -r directory # 递归删除目录
-
mkdir
:创建目录。mkdir new_directory
-
rmdir
:删除空目录。rmdir empty_directory
2. 文件查看
-
cat
:连接并显示文件内容。cat file
-
less
:分页查看文件内容。less file
-
head
:显示文件开头的内容。head file head -n 10 file # 显示前 10 行
-
tail
:显示文件结尾的内容。tail file tail -n 10 file # 显示最后 10 行
3. 重定向和管道
-
重定向输出:
command > file # 将输出写入文件(覆盖) command >> file # 将输出追加到文件
-
重定向输入:
command < file # 从文件读取输入
-
管道:
command1 | command2 # 将 command1 的输出作为 command2 的输入
4. 查找文件
-
find
:查找文件和目录。find /path/to/search -name "filename" find /path/to/search -type d -name "directoryname" # 查找目录 find /path/to/search -type f -name "filename" # 查找文件
-
grep
:搜索文件中的内容。grep "search_term" file grep -r "search_term" /path/to/search # 递归搜索
5. 文件权限
-
chmod
:修改文件权限。chmod 644 file # 赋予文件 rw-r--r-- 权限 chmod +x script # 赋予文件可执行权限
-
chown
:修改文件所有者。chown user:group file
6. 压缩和解压缩
-
tar
:归档文件。tar -cvf archive.tar file_or_directory # 创建 tar 归档 tar -xvf archive.tar # 解压 tar 归档 tar -czvf archive.tar.gz file_or_directory # 创建 gzip 压缩的 tar 归档 tar -xzvf archive.tar.gz # 解压 gzip 压缩的 tar 归档
-
zip
和unzip
:压缩和解压文件。zip archive.zip file_or_directory unzip archive.zip
Bash 脚本编写
1. 脚本基本结构
-
创建一个脚本文件(例如
script.sh
)并添加以下内容:#!/bin/bash # 脚本说明 echo "Hello, World!"
-
赋予脚本可执行权限:
chmod +x script.sh
-
运行脚本:
./script.sh
2. 变量
-
定义变量:
NAME="John" echo "Hello, $NAME"
-
读取用户输入:
echo "Enter your name:" read NAME echo "Hello, $NAME"
3. 条件判断
-
if
语句:if [ condition ]; then # 代码块 elif [ condition ]; then # 代码块 else # 代码块 fi
-
示例:
if [ "$NAME" == "John" ]; then echo "Hello, John!" else echo "Hello, Stranger!" fi
4. 循环
-
for
循环:for i in {1..5}; do echo "Number $i" done
-
while
循环:COUNT=1 while [ $COUNT -le 5 ]; do echo "Number $COUNT" ((COUNT++)) done
5. 函数
- 定义和调用函数:
function greet { echo "Hello, $1" } greet "John"
6. 数组
-
定义数组:
NAMES=("Alice" "Bob" "Charlie")
-
访问数组元素:
echo ${NAMES[0]} # 输出 Alice
-
遍历数组:
for NAME in "${NAMES[@]}"; do echo "Hello, $NAME" done
7. 常用快捷键
-
命令行编辑:
Ctrl + a
:移到行首。Ctrl + e
:移到行尾。Ctrl + k
:删除从光标到行尾的内容。Ctrl + u
:删除从光标到行首的内容。
-
命令历史:
Ctrl + r
:反向搜索命令历史。!!
:执行上一条命令。!n
:执行历史中的第 n 条命令。!string
:执行最后一个以 string 开头的命令。
掌握这些 Bash 的基础知识和技巧,可以帮助你高效地在 Linux 系统上操作和编写脚本。如果你有任何问题或需要进一步的指导,请随时告诉我。