HCRM博客

如何在CentOS 7上高效使用Bash脚本?

CentOS 7 bash 使用指南

一、简介

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

如何在CentOS 7上高效使用Bash脚本?-图1
(图片来源网络,侵权删除)

二、基本命令

1. 文件与目录操作

cd:切换目录

  • cd /path/to/directory

pwd:显示当前工作目录

  • pwd

ls:列出目录内容

  • ls
  • ls l
  • ls a

mkdir:创建目录

  • mkdir dir_name
  • mkdir p /path/to/dir_name

rmdir:删除空目录

如何在CentOS 7上高效使用Bash脚本?-图2
(图片来源网络,侵权删除)
  • rmdir dir_name

rm:删除文件或目录

  • rm file_name
  • rm r directory_name

cp:复制文件或目录

  • cp source_file destination_file
  • cp r source_directory destination_directory

mv:移动或重命名文件或目录

  • mv old_name new_name
  • mv /path/to/source /path/to/destination

touch:创建空文件或更新时间戳

  • touch new_file

cat, less, more, head, tail, grep:查看文件内容

  • cat file_name
  • less file_name
  • more file_name
  • head file_name
  • tail file_name
  • grep 'pattern' file_name

2. 文件权限与所有权

如何在CentOS 7上高效使用Bash脚本?-图3
(图片来源网络,侵权删除)

chmod:修改文件权限

  • chmod 755 file_name

chown:更改文件所有者

  • chown user_name file_name

chgrp:更改文件组

  • chgrp group_name file_name

3. 文本处理工具

grep:搜索文本

  • grep 'pattern' file_name

sed:流编辑器,用于文本替换

  • sed 's/pattern/replacement/' file_name

awk:强大的文本分析工具

  • awk '/pattern/ {action}' file_name

4. 打包与压缩

tar:打包工具

  • tar cvf archive.tar file_name
  • tar xvf archive.tar
  • tar czvf archive.tar.gz file_name
  • tar xzvf archive.tar.gz

gzip & gunzip:压缩与解压工具

  • gzip file_name
  • gunzip file_name.gz

bzip2 & 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."
  • fi

2. 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
  • done

2. while 循环

  • while [ condition ]; do
  • commands
  • done

示例:输出 1 到 10

  • #!/bin/bash
  • i=1
  • while [ $i le 10 ]; do
  • echo $i
  • ((i++))
  • done

3. 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:粘贴先前删除的内容。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/10234.html

分享:
扫描分享到社交APP
上一篇
下一篇