shell脚本和一些常用的Linux命令

目录

累加求和输出100-200求和

如果硬盘使用率超过%20,执行脚本就会报警

简单脚本for语句批量解压缩

各种压缩格式和解压格式

在根分区搜索hosts文件

查看系统进程 可以通过修改 /etc/resolv.conf 文件来设置 DNS 地址。该文件记录了该系统的 DNS 解析器 IP 地址

设置dns地址114.114.114.114

修改系统时间

crontab 设置定时任务,每天凌晨2点20分,服务器自动重启

grep、find、rpm命令

查看数据库3306端口是否处于监听状态

raid不同模式的原理

在centos7中安装mysql数据库,设置密码,登录数据库,创建数据库


累加求和输出100-200求和

#!/bin/bash
s=0
c=0
for ((i=100;i<=200;i++));do
((s+=i))
((c=$c+1))
echo "第$c次循环 和为:$s"
done
echo "100+101+***+200的和:$s"

#!/bin/bash:这是脚本的第一行,用于指定解释器的路径,表示使用bash shell来执行该脚本。

s=0:创建一个变量$s并将其初始化为0。用于记录数字相加的结果。

c=0:创建一个变量 $c并将其初始化为0 。用于记录循环的次数。

for ((i=100;i<=200;i++)):这是一个for循环,变量 i赋值 100,循环体内有两个加操作符,表示 i每次循环增加1。循环条件为i小于等于 200。即该循环完成100到200之间所有的循环。

((s+=i)):在每次循环中,将 s的值加上 i。

((c=$c+1)):在每次循环中,将c的值加1。

echo "第$c次循环 和为:$s":在每次循环中输出这次循环的数字总和,其中c表示当前循环次数,s表示当前数字的总和。

echo "100+101+***+200的和:$s":最后输出100到200之间所有数字的总和,其中$s表示所有数字的总和。

这个脚本实现的功能是计算100-200之间所有数字的和,并输出每次循环的数字总和和最终的总和

如果硬盘使用率超过%20,执行脚本就会报警

#!/bin/bash
a=$(df -h|grep "/dev/sda1" |awk '{print $5}'|cut -d"%" -f1)
if [ $a -ge 20 ]
        then
echo "硬盘使用率超过20%"
        else
echo "警告硬盘使用率没有超过20%"
fi

给设定使用率报警

#!/bin/bash
if [ "$#" -ne 1 ]; then
   echo "输入"
   exit
   fi
lv=$1
a=$(df -h|grep "/dev/sda1" |awk '{print $5}'|cut -d"%" -f1)
if [ $a -ge $lv ]
	then
echo "硬盘使用率超过$lv%"
	else
echo "警告硬盘使用率没有超过$lv%"
#
fi

简单脚本for语句批量解压缩

#!/bin/bash
for i in 1.tar.gz 2.tar.gz ;do 
	tar -zxvf $i 
done

根据list文件内容的解压文件(list内容是要解压的文件名字)将押解日志输出>yajielog文件中

#!/bin/bash
for i in $(cat ./list);do
        tar -zxvf $i & >./yajielog
done
echo "已经将list文档中的文件全解压到ls文件中"

遍历当前文件在进行对应的解压命令

#!/bin/bash

# 定义源文件目录和解压缩目录
SRC_DIR="./"
DEST_DIR="./"

# 使用 for 循环遍历源文件目录中的所有压缩文件
for FILE in "$SRC_DIR"/*
do
  # 对每一个压缩文件执行解压缩操作
  if [ -f "$FILE" ]; then
    echo "提取了 $FILE"
    # 判断压缩文件的类型并进行相应的解压缩操作
    if [[ "$FILE" =~ \.tar\.gz$ ]]; then
    tar -zxvf "$FILE" -C "$DEST_DIR"
    elif [[ "$FILE" =~ \.tgz$ ]]; then
    tar -zxvf "$FILE" -C "$DEST_DIR"
    elif [[ "$FILE" =~ \.tar$ ]]; then
    tar -xvf "$FILE" -C "$DEST_DIR"
    elif [[ "$FILE" =~ \.zip$ ]]; then
    unzip "$FILE" -d "$DEST_DIR" 
    else
      echo "不支持押解的文件类型: $FILE"
    fi
  fi
done

各种压缩格式和解压格式

缩成 .gz 格式:使用 gzip 命令

# 压缩 file.txt 文件
gzip file.txt

# 解压缩 file.txt.gz 文件
gzip -d file.txt.gz

压缩成 .tar格式:使用tar命令

# 压缩 dir 目录
tar -cvf archive.tar dir

# 解压缩 archive.tar 文件
tar -xvf archive.tar

压缩成 .tgz.tar.gz 格式:使用 targzip 命令配合使用

# 压缩 dir 目录
tar -czvf archive.tgz dir

# 或者
tar -czvf archive.tar.gz dir

# 解压缩 archive.tgz 文件
tar -xzvf archive.tgz

# 或者
tar -xzvf archive.tar.gz

压缩成 .zip 格式:使用 zip 命令

# 压缩 dir 目录
zip -r archive.zip dir

# 解压缩 archive.zip 文件
unzip archive.zip

在根分区搜索hosts文件

使用find命令

  find / -name "hosts" -type f -print 
  # find /  -- 指定从根目录 / 开始搜索
  #-name "hosts" --搜索文件名为hosts的文件
  #-type f  --限定搜索对象只为普通文件
  #-print 输出所有搜索到的文件路径
  #find /  -name "hosts"  -print  --直接这样子就行了

查看系统进程 可以通过修改 /etc/resolv.conf 文件来设置 DNS 地址。该文件记录了该系统的 DNS 解析器 IP 地址

ps
#查看当前活跃的进程列表,包括进程的 PID(进程 ID),状态,占用的资源等

ps aux
#以完整的格式显示所有进程信息,包括 USER(进程所属的用户)、PID(进程 ID)、%CPU(占用 CPU 的百分比)、%MEM(占用内存的百分比)、VSZ(虚拟内存大小)等信息

ps -ef
#以长格式显示所有进程信息,包括 UID、PID、PPID(父进程 ID)、C(CPU 占用率)、STIME(进程启动时间)等信息

设置dns地址114.114.114.114

可以通过修改 /etc/resolv.conf 文件来设置 DNS 地址。该文件记录了该系统的 DNS 解析器 IP 地址

可以手动编辑

vi /etc/resolv.conf
#编辑内容nameserver 114.114.114.114

echo命令写入

echo "nameserver 114.114.114.114" >> /etc/resolv.conf
#>是覆盖文件内容,>>是添加文件内容

然后重启network使dns生效

systemctl restart network

修改系统时间

使用 date 命令查看当前系统时间

date

使用 date 命令修改系统时间

date --set="2023-05-30 16:35:00"
#将系统时间修改为 2023 年 5 月 30 日下午 4 点 35 分

crontab 设置定时任务,每天凌晨2点20分,服务器自动重启

编辑 crontab 文件

crontab -e

在打开的编辑器中添加以下一行内容

20 2 * * * /sbin/shutdown -r now
#/sbin/shutdown -r now:表示执行自动

cron表达式

* * * * *
| | | | |
| | | | +---- 一周中的哪一天 (0 - 6),0 表示星期日,1 表示星期一。
| | | +------ 月份 (1 - 12)。
| | +-------- 一个月中的哪一天 (1 - 31)。
| +---------- 小时 (0 - 23)。
+------------ 分钟 (0 - 59)。

/n:表示每隔 n 个时间单位执行一次任务,例如 */5 表示每隔 5 分钟执行一次任务

*:表示所有值,例如 * 表示每个时间单位都执行

?:只用于日和周两个字段中,表示未指定的值,可以用于协调两个时间字段的含义

grep、find、rpm命令

  1. grep命令是一个文本搜索工具,它可以在指定的文件中查找特定的文本字符串,并以各种方式输出搜索结果。grep在命令行中最常用的格式是:grep [选项] 匹配模式 [文件名],选项包括-i(忽略大小写)、-c(输出匹配行的数量)、 -v(输出不匹配的行)等。

  2. find命令是用来在指定目录下查找文件的工具,可以通过文件名、类型、时间、权限等多种方式进行搜索。find最常见的格式是:find [路径] [表达式],表达式包括-name(按名称搜索)、-type(按类型搜索)、-mtime(按修改时间搜索)等。

  3. rpm命令是用来管理RPM软件包的工具,可以用于安装、卸载、升级rpm包。常用的格式为:rpm [选项] [操作] [包],操作包括-i(安装)、-e(卸载)、-U(升级)等,选项包括-v(输出详细信息)、-h(安装时显示进度)等。

查看数据库3306端口是否处于监听状态

yum install net-tools -y

安装net-tools工具

sudo netstat -tuln | grep 3306

该命令将显示所有正在监听的TCP和UDP端口列表。我们可以使用管道符号(“|”)和grep命令来限制输出并查找3306端口。如果输出中包含"3306",则表示数据库3306端口正在监听。如果输出为空,则表示该端口未被监听。请注意,使用sudo命令是因为只有root用户才能列出所有的端口信息

raid不同模式的原理

RAID(Redundant Array of Independent Disks)是通过组合多个硬盘驱动器,以提供数据冗余、数据备份、性能改进、容量提升等技术。不同的RAID模式提供不同的性能和数据冗余水平,下面是几种常见的RAID模式及其原理:

  1. RAID 0:RAID 0将多个硬盘驱动器组合起来,通过条带化技术将数据分成多个块然后分别存储在不同的硬盘驱动器上。因此,RAID 0可以改善系统的读写速度,但并不能提供数据冗余机制,如果任何一块硬盘驱动器出现问题,整个阵列的数据将会丢失。

  2. RAID 1:RAID 1是镜像阵列模式,它将两个硬盘驱动器对等镜像,复制相同的数据到两个磁盘上,因此可以提供数据冗余机制,即使一个硬盘出现故障,另一个仍然可以使用。RAID 1没有改善系统的读写速度,但提高了可靠性,一般用于重要数据的备份。

  3. RAID 5:RAID 5将多个硬盘驱动器组合而成,在组成磁盘阵列时,每个硬盘驱动器的一部分被用来存储校验码。当有任何一个硬盘驱动器损坏时,系统可以利用校验码重建坏掉的磁盘驱动器上的数据,从而保证数据的完整性。RAID 5提供了比RAID 1更高的数据读写性能,同时也提供了较好的数据冗余保护。

  4. RAID 6:RAID 6是在RAID 5的基础上发展起来的,它增加了第二个校验码来容忍更多的故障磁盘。RAID 6在组成磁盘阵列时,比RAID 5用了更多的磁盘空间来储存原始数据和校验码,因此能够容忍更多的硬盘损坏,提供更高的数据冗余保护。但是,RAID 6的读写性能比RAID 5更低效,而且需要更高的硬件要求。

在centos7中安装mysql数据库,设置密码,登录数据库,创建数据库

  1. 安装MySQL数据库

可以使用以下命令在CentOS 7上安装MySQL数据库。

yum install mysql-server

2.启动MySQL服务和设置开机自启动

systemctl enable mysqld --now

3.设置MySQL root用户密码

mysql -u root

然后输入以下命令以设置MySQL root用户的密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';

注意将"your_password"替换为您设置的实际密码,密码强度应该足够强,既不容易猜到,也不容易记错

4.登录MySQL数据库

mysql -u root -pyour_password

输入之前设置的MySQL root用户密码即可登录

5.创建数据库

用以下命令在MySQL数据库中创建一个数据库

CREATE DATABASE my_database;

也可以添加字符集来创建数据库

CREATE DATABASE my_database CHARACTER SET utf8 COLLATE utf8_general_ci;

这将创建一个名为"my_database"的数据库。成功后,可以执行以下命令进行查看

SHOW DATABASES;

这将显示所有可用数据库,其中应包括新创建的"my_database"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值