CentOS 7 Bash 使用指南
一、简介
CentOS 7 是企业级 Linux 发行版,广泛用于服务器环境,Bash(Bourne Again Shell)是大多数Linux系统默认的 shell,它功能强大且灵活,适合各种日常操作与脚本编写任务,本文旨在详细介绍如何在 CentOS 7 下高效使用 Bash,包括基本命令、变量、条件判断、循环及函数等。

二、基本命令
1. 文件与目录操作
cd:切换目录
cd /path/to/directorypwd:显示当前工作目录
pwdls:列出目录内容
ls
ls l
ls amkdir:创建目录
mkdir dir_name
mkdir p /path/to/dir_namermdir:删除空目录

rmdir dir_namerm:删除文件或目录
rm file_name
rm r directory_namecp:复制文件或目录
cp source_file destination_file
cp r source_directory destination_directorymv:移动或重命名文件或目录
mv old_name new_name
mv /path/to/source /path/to/destinationtouch:创建空文件或更新时间戳
touch new_filecat, less, more, head, tail, grep:查看文件内容
cat file_name
less file_name
more file_name
head file_name
tail file_name
grep 'pattern' file_name2. 文件权限与所有权

chmod:修改文件权限
chmod 755 file_namechown:更改文件所有者
chown user_name file_namechgrp:更改文件组
chgrp group_name file_name3. 文本处理工具
grep:搜索文本
grep 'pattern' file_namesed:流编辑器,用于文本替换
sed 's/pattern/replacement/' file_nameawk:强大的文本分析工具
awk '/pattern/ {action}' file_name4. 打包与压缩
tar:打包工具
tar cvf archive.tar file_name
tar xvf archive.tar
tar czvf archive.tar.gz file_name
tar xzvf archive.tar.gzgzip & gunzip:压缩与解压工具
gzip file_name
gunzip file_name.gzbzip2 & bunzip2:另一种压缩方式
bzip2 file_name
bunzip2 file_name.bz2三、变量与常量
在 Bash 中,变量无需声明即可直接使用,注意赋值时不要有空格。
1. 定义变量
variable_name=value VAR2="This is a string" VAR3='This is also a string'
2. 使用变量
echo $variable_name echo $$ # 当前 shell 的进程 ID echo $? # 上一个命令的退出状态
3. 环境变量
export VAR_NAME=value env # 查看环境变量 unset VAR_NAME # 删除环境变量
4. 只读变量
readonly READONLY_VAR=value READONLY_VAR=new_value # 只读变量不能被重新赋值
四、条件判断结构
Bash 支持多种条件判断结构,如 if、case 语句。
1. if 语句
if [ condition ]; then
commands
elif [ another_condition ]; then
other_commands
else
more_commands
fi示例:判断两个数是否相等
#!/bin/bash
read p "Enter first number: " num1
read p "Enter second number: " num2
if [ $num1 eq $num2 ]; then
echo "The numbers are equal."
else
echo "The numbers are not equal."
fi2. case 语句
case $variable in
pattern1)
commands1;;
pattern2)
commands2;;
*)
default_commands;;
esac示例:根据用户输入显示星期几
#!/bin/bash
read p "Enter a number (17): " day_num
case $day_num in
1) echo "Monday";;
2) echo "Tuesday";;
3) echo "Wednesday";;
4) echo "Thursday";;
5) echo "Friday";;
6) echo "Saturday";;
7) echo "Sunday";;
*) echo "Invalid day number";;
esac五、循环结构
Bash 提供了多种循环结构,如 for、while、until。
1. for 循环
for var in item1 item2 item3; do
commands
done示例:输出 1 到 10
#!/bin/bash
for i in {1..10}; do
echo $i
done2. while 循环
while [ condition ]; do
commands
done示例:输出 1 到 10
#!/bin/bash
i=1
while [ $i le 10 ]; do
echo $i
((i++))
done3. until 循环
until [ condition ]; do
commands
done示例:输出 10 到 1
#!/bin/bash
i=10
until [ $i lt 1 ]; do
echo $i
((i))
done六、函数定义与使用
Bash 支持函数,可以简化代码复用。
1. 定义函数
function func_name {
commands
}或者简写为:
func_name() {
commands
}2. 调用函数
func_name [arguments]
示例:定义并调用一个函数,计算两个数的和
sum() {
local result=$(($1 + $2))
echo "Sum: $result"
}
sum 3 5 # 输出: Sum: 8七、常用快捷键与编辑技巧
Tab:自动补全命令、文件名等。
Ctrl+L:清屏。
Ctrl+U:清除光标所在行之前的内容。
Ctrl+W:清除光标所在单词之前的内容。
Alt+.:重复上一个命令的最后一个参数,输入cd 后按Alt+.,会自动补全为cd /home/user。
Ctrl+R:历史命令搜索,输入部分命令后按Ctrl+R,可以搜索历史记录中的相关命令。
Ctrl+A:光标移到行首。
Ctrl+E:光标移到行尾。
Ctrl+K:删除光标后的内容。
Ctrl+Y:粘贴先前删除的内容。
