ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Bash Shell 脚本100例-001~005

2022-06-05 15:00:42  阅读:214  来源: 互联网

标签:Shell x86 fc36 001 64 updates 005 mariadb php


001.Hello world

#!/bin/bash
# 一个bash脚本的标准开头

echo hello world
# 现在的echo很智能,即使中间有空格,也可以正常输出
# 当变量的值有空格时,为了避免出错,必须用引号扩起来

echo “hello world”
# 被双引号扩起来的字符性质不会发生改变。如:$表示变量的值、反引号表示引用的命令...

echo ‘hello world’
# 被单引号扩起来的都是普通字符,即使是特殊的字符也不再有特殊的含义

查看echo的man帮助:
1. help echo
2. /bin/echo —help

运行脚本:

[root@fedora ~]# ./helloworld.sh 
hello world
“hello world”
‘hello world’

002.奇偶判断

#! /bin/bash
# 判断输入的整数是奇数还是偶数
clear
# echo "Please enter a number"
echo -n "Please enter a number:"
read x
y=`expr $x % 2`
if test $y -eq 0 ; then
	echo "Number is even"
else
	echo "Numner is odd"
fi

echo -n 输出后不换行
read x 读取键盘的输入,并把它保存到变量x中
expr 计算表达式的值
变量x在使用时前面要加$
在算数运算符中:
% 取余
* 乘
/ 除
test 检查文件类型并比较值
-eq 比较两个整数,若两数相等,则返回true
if 和 then 若写在同一行,之间需用 ; 隔开

反引号:
如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含,这条命令才会执行

运行脚本:

[root@fedora ~]# ./evenodd.sh 
Please enter a number:7
Numner is odd
[root@fedora ~]# ./evenodd.sh 
Please enter a number:6
Number is even

003.添加用户

#! /bin/bash
# 通过位置变量来创建新用户
# $1是第一个参数,$2是第二个参数...
# 在使用时,将第一个参数设置为用户名,第二个参数设置为密码
useradd $1
echo "$2" | passwd --stdin "$1"

# 遗留问题
# 1.如果执行脚本的用户不是root,应当提示并退出
# 2.如果用户提供的参数不是两个,应当提示并退出
# 3.如果用户已经存在,应当提示并退出
# 4.屏蔽useradd和passwd命令提示使用自定义的提示信息

useradd -p 加密后的新账户密码

运行脚本:

[root@fedora ~]# ./useradd.sh Bob 123456
更改用户 Bob 的密码 。
passwd:所有的身份验证令牌已经成功更新。

004.备份多个目录

#! /bin/bash
# 备份多个目录到NFS中

# 设置要备份的目录
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# 设置存储备份文件的目录
dest=/mnt/backup

# 生成归档文件名
day=$(date +%F)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# 打印开始的状态信息
echo "Backing up $backup_files to $dest/$archive_file"
date
echo

# 使用tar命令来进行备份
# echo "tar -czf $dest/$archive_file $backup_files"
tar -czf $dest/$archive_file $backup_files

# 打印结束的状态信息
echo 
echo "Backup finished"
date

# 列出在$dest中的文件以检查文件大小
ls -lh $dest

# 后续操作
# 检查脚本执行无误后,使用crontab -e 编写计划任务,执行备份
[root@fedora ~]# ./backup.sh 
Backing up /home /var/spool/mail /etc /root /boot /opt to /mnt/backup/fedora-2022-06-04.tgz
2022年 06月 04日 星期六 20:38:35 CST

tar: 从成员名中删除开头的“/”
tar: 从硬连接目标中删除开头的“/”

Backup finished
2022年 06月 04日 星期六 20:39:15 CST
总用量 342M
-rw-r--r--. 1 root root 342M  6月  4 20:39 fedora-2022-06-04.tgz

005.内卷的安装软件

install-v1.sh

#! /bin/bash
# 一键部署LAMP软件包
# 使用yum来进行安装,需要事先部署好yum源

yum -y install httpd
yum -y install mariadb mariadb-devel mariadb-server
yum -y install php php-mysql

systemctl enable httpd mariadb
systemctl start httpd mariadb 
[root@fedora ~]# ./install-v1.sh 
上次元数据过期检查:0:48:18 前,执行于 2022年06月05日 星期日 10时34分30秒。
软件包 httpd-2.4.53-1.fc36.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
上次元数据过期检查:0:48:20 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
================================================================================
 软件包                           架构    版本                   仓库      大小
================================================================================
安装:
 mariadb                          x86_64  3:10.5.16-1.fc36       updates  1.6 M
 mariadb-devel                    x86_64  3:10.5.16-1.fc36       updates  1.0 M
 mariadb-server                   x86_64  3:10.5.16-1.fc36       updates   11 M
安装依赖关系:
 mariadb-common                   x86_64  3:10.5.16-1.fc36       updates   31 k
 mariadb-connector-c-devel        x86_64  3.2.6-1.fc36           fedora    55 k
 mariadb-errmsg                   x86_64  3:10.5.16-1.fc36       updates  214 k
 mysql-selinux                    noarch  1.0.4-4.fc36           fedora    35 k
 openssl-devel                    x86_64  1:3.0.3-1.fc36         updates  2.9 M
 perl-DBD-MariaDB                 x86_64  1.22-1.fc36            updates  151 k
 perl-DBI                         x86_64  1.643-11.fc36          fedora   704 k
 perl-File-Copy                   noarch  2.35-486.fc36          fedora    25 k
 perl-Math-BigInt                 noarch  1:1.9998.30-1.fc36     updates  199 k
 perl-Math-Complex                noarch  1.59-486.fc36          fedora    52 k
 perl-Sys-Hostname                x86_64  1.23-486.fc36          fedora    22 k
 zlib-devel                       x86_64  1.2.11-31.fc36         fedora    44 k
安装弱的依赖:
 mariadb-backup                   x86_64  3:10.5.16-1.fc36       updates  6.5 M
 mariadb-connector-c-doc          noarch  3.2.6-1.fc36           fedora    98 k
 mariadb-cracklib-password-check  x86_64  3:10.5.16-1.fc36       updates   16 k
 mariadb-gssapi-server            x86_64  3:10.5.16-1.fc36       updates   19 k
 mariadb-server-utils             x86_64  3:10.5.16-1.fc36       updates  214 k

事务概要
================================================================================
安装  20 软件包

总下载:25 M
安装大小:127 M

完毕!
上次元数据过期检查:0:48:59 前,执行于 2022年06月05日 星期日 10时34分30秒。
未找到匹配的参数: php-mysql
错误:没有任何匹配: php-mysql
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

查询一下 php-mysql ,安装php-mysqlnd

[root@fedora ~]# dnf search php-mysql
上次元数据过期检查:0:49:31 前,执行于 2022年06月05日 星期日 10时34分30秒。
============================= 名称 匹配:php-mysql =============================
php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases

[root@fedora ~]# dnf -y install php-mysqlnd
上次元数据过期检查:0:54:55 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
================================================================================
 软件包              架构           版本                  仓库             大小
================================================================================
安装:
 php-mysqlnd         x86_64         8.1.6-1.fc36          updates         217 k
安装依赖关系:
 php-common          x86_64         8.1.6-1.fc36          updates         828 k
 php-pdo             x86_64         8.1.6-1.fc36          updates         116 k
 ......

完毕!

将脚本中的 php-mysql 修改为 php-mysqlnd 

再次执行测试

[root@fedora ~]# ./install-v1.sh 
上次元数据过期检查:0:57:17 前,执行于 2022年06月05日 星期日 10时34分30秒。
软件包 httpd-2.4.53-1.fc36.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
上次元数据过期检查:0:57:18 前,执行于 2022年06月05日 星期日 10时34分30秒。
软件包 mariadb-3:10.5.16-1.fc36.x86_64 已安装。
软件包 mariadb-devel-3:10.5.16-1.fc36.x86_64 已安装。
软件包 mariadb-server-3:10.5.16-1.fc36.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
上次元数据过期检查:0:57:19 前,执行于 2022年06月05日 星期日 10时34分30秒。
软件包 php-8.1.6-1.fc36.x86_64 已安装。
软件包 php-mysqlnd-8.1.6-1.fc36.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!

install-v2.sh

#! /bin/bash
# 在安装之前检查一下是否已安装
pkgarr=(httpd mariadb mariadb-devel mariadb-server php php-mysqlnd)
# dnf -y update
for i in ${pkgarr[*]}; do
	# echo $i
	rpm -q $i &>/dev/null
	if [ $? == 0 ]; then
		echo Package $i already installed
	else
		echo $i is not installed !
		dnf -y install $i
	fi
done
[root@fedora ~]# ./install-v2.sh 
Package httpd already installed
mariadb is not installed !
上次元数据过期检查:1:07:13 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
================================================================================
 软件包                 架构        版本                     仓库          大小
================================================================================
安装:
 mariadb                x86_64      3:10.5.16-1.fc36         updates      1.6 M
安装依赖关系:
 mariadb-common         x86_64      3:10.5.16-1.fc36         updates       31 k
 perl-Sys-Hostname      x86_64      1.23-486.fc36            fedora        22 k

完毕!
mariadb-devel is not installed !
上次元数据过期检查:1:08:36 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
================================================================================
 软件包                       架构      版本                   仓库        大小
================================================================================
安装:
 mariadb-devel                x86_64    3:10.5.16-1.fc36       updates    1.0 M
安装依赖关系:
 mariadb-connector-c-devel    x86_64    3.2.6-1.fc36           fedora      55 k
 openssl-devel                x86_64    1:3.0.3-1.fc36         updates    2.9 M
 zlib-devel                   x86_64    1.2.11-31.fc36         fedora      44 k
安装弱的依赖:
 mariadb-connector-c-doc      noarch    3.2.6-1.fc36           fedora      98 k

完毕!
mariadb-server is not installed !
上次元数据过期检查:1:09:09 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
================================================================================
 软件包                           架构    版本                   仓库      大小
================================================================================
安装:
 mariadb-server                   x86_64  3:10.5.16-1.fc36       updates   11 M
安装依赖关系:
 mariadb-errmsg                   x86_64  3:10.5.16-1.fc36       updates  214 k
 mysql-selinux                    noarch  1.0.4-4.fc36           fedora    35 k
 perl-DBD-MariaDB                 x86_64  1.22-1.fc36            updates  151 k
 perl-DBI                         x86_64  1.643-11.fc36          fedora   704 k
 perl-File-Copy                   noarch  2.35-486.fc36          fedora    25 k
 perl-Math-BigInt                 noarch  1:1.9998.30-1.fc36     updates  199 k
 perl-Math-Complex                noarch  1.59-486.fc36          fedora    52 k
安装弱的依赖:
 mariadb-backup                   x86_64  3:10.5.16-1.fc36       updates  6.5 M
 mariadb-cracklib-password-check  x86_64  3:10.5.16-1.fc36       updates   16 k
 mariadb-gssapi-server            x86_64  3:10.5.16-1.fc36       updates   19 k
 mariadb-server-utils             x86_64  3:10.5.16-1.fc36       updates  214 k

完毕!
php is not installed !
上次元数据过期检查:1:28:09 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
=====================================================================================
 软件包                  架构          版本                     仓库            大小
=====================================================================================
安装:
 php                     x86_64        8.1.6-1.fc36             updates         15 k
安装依赖关系:
 nginx-filesystem        noarch        1:1.22.0-1.fc36          updates         10 k
 php-common              x86_64        8.1.6-1.fc36             updates        828 k
安装弱的依赖:
 php-cli                 x86_64        8.1.6-1.fc36             updates        5.3 M
 php-fpm                 x86_64        8.1.6-1.fc36             updates        1.8 M
 php-mbstring            x86_64        8.1.6-1.fc36             updates        518 k
 php-opcache             x86_64        8.1.6-1.fc36             updates        613 k
 php-pdo                 x86_64        8.1.6-1.fc36             updates        116 k
 php-sodium              x86_64        8.1.6-1.fc36             updates         59 k
 php-xml                 x86_64        8.1.6-1.fc36             updates        211 k

完毕!
php-mysqlnd is not installed !
上次元数据过期检查:1:28:15 前,执行于 2022年06月05日 星期日 10时34分30秒。
依赖关系解决。
=====================================================================================
 软件包               架构            版本                    仓库              大小
=====================================================================================
安装:
 php-mysqlnd          x86_64          8.1.6-1.fc36            updates          217 k

完毕!

再次运行查看

[root@fedora ~]# ./install-v2.sh 
Package httpd already installed
Package mariadb already installed
Package mariadb-devel already installed
Package mariadb-server already installed
Package php already installed
Package php-mysqlnd already installed

标签:Shell,x86,fc36,001,64,updates,005,mariadb,php
来源: https://www.cnblogs.com/simplerude/p/16342765.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有