
Shell 脚本
东方隐
这个作者很懒,什么都没留下…
展开
-
官网 RPM 包安装 MySQL 5.7
#!/bin/bashmysql_common='mysql-community-common-5.7.33-1.el7.x86_64.rpm'mysql_libs='mysql-community-libs-5.7.33-1.el7.x86_64.rpm'mysql_client='mysql-community-client-5.7.33-1.el7.x86_64.rpm'mysql_server='mysql-community-server-5.7.33-1.el7.x86_64.rpm'原创 2021-07-16 16:44:34 · 279 阅读 · 0 评论 -
CentOS 7.8 2003 二进制安装 mariadb-10.5.4-linux-systemd-x86_64.tar.gz
命令方式# 确认是否有 mysql 用户[root@localhost ~]# getent passwd mysql# 创建用户[root@localhost ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql# 创建目录及授权[root@localhost ~]# mkdir -p /data/mysql[root@localhost ~]# chown mysql:mysql /data/mysql# 准备文件## 下载.原创 2020-07-04 18:15:46 · 1762 阅读 · 0 评论 -
Shell脚本 - 编程进阶09
1、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序;升序脚本#!/bin/bashwhile :do declare -a NUMS read -p "请输入一个数字( e 结束输入,q 退出程序 ):" N if [ $N == "q" ];then break elif [ $N == "e" ];then L=${#NUMS[*]} if [ $L == 0 ];then ec原创 2020-06-02 20:11:49 · 226 阅读 · 0 评论 -
Shell脚本 - 编程进阶08
1、编写函数实现两个数字做为参数,返回最大值函数 functionsmaxnum(){ MAX=0 if [ $# != 2 ] then echo "参数个数不对,请提供两个参数。" elif [[ ! $1 =~ ^[[:digit:]]+$ ]] then echo "第一个参数不是数字,请重新输入。" elif [[ ! $2 =~ ^[[:digit:]]+$ ]] then ech原创 2020-06-02 20:11:12 · 266 阅读 · 0 评论 -
Shell脚本 - 编程进阶07
1、编写脚本 /root/bin/copycmd.sh(1)提示用户输入一个可执行命令名称;(2)获取此命令所依赖到的所有库文件列表;(3)复制命令至某目标目录(例如 /mnt/sysroot )下的对应路径下, 如:/bin/bash ==> /mnt/sysroot/bin/bash,/usr/bin/passwd ==> /mnt/sysroot/usr/bin/passwd;(4)复制此命令依赖到的所有库文件至目标目录下的对应路径下, 如:/lib64/ld-linux-x86-原创 2020-06-02 20:10:35 · 221 阅读 · 0 评论 -
Shell脚本 - 编程进阶06
1、编写服务脚本 /root/bin/testsrv.sh,完成如下要求(1)脚本可接受参数:start, stop, restart, status;(2)如果参数非此四者之一,提示使用格式后报错退出;(3)如是star,则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功”;考虑:如果事先已经启动过一次,该如何处理?(4)如是stop,则删除/var/lock/subsys/SCRIPT_NAME, 并显示“停止完成”;考虑:如果事先已然停止过了,该如何处理?(5原创 2020-06-02 20:09:35 · 222 阅读 · 0 评论 -
Shell脚本 - 编程进阶05
1、编写函数,实现 OS 的版本判断;#!/bin/bashos-version(){ echo OS Version : `cat /etc/redhat-release | sed -nr 's/^.* ([0-9]+).*/\1/p'`}os-version执行结果# CentOS 6[root@localhost ~]# ./os-version.shOS Version : 6# CentOS 7[root@centos7 ~]# ./os-version.原创 2020-06-02 20:08:54 · 221 阅读 · 0 评论 -
Shell脚本 - 编程进阶04
1、扫描 /etc/passwd 文件每一行,如发现 GECOS 字段为空,则将用户名和单位电话为 62985600 填充至 GECOS 字段,并提示该用户的 GECOS 信息修改成功。#!/bin/bashwhile read userinfodo user=`echo $userinfo | cut -d: -f1` memo=`echo $userinfo | cut -d: -f5` if [[ ! $memo ]] then usermod $原创 2020-06-02 20:08:10 · 282 阅读 · 0 评论 -
Shell脚本 - 编程进阶03
1、每隔 3 秒钟到系统上获取已经登录的用户的信息;如果发现用户 hacker 登录,则将登录时间和主机记录于日志 /var/log/login.log 中,并退出脚本;脚本#!/bin/bashwhile :do echo "<----`date +'%F %T'`----No Information !---->" if [[ `who | grep hacker` ]] then echo User Hacker was logined原创 2020-06-02 20:07:41 · 590 阅读 · 0 评论 -
Shell脚本 - 编程进阶02( while 循环 )
1、编写脚本,求 100 以内所有正奇数之和;脚本#! /bin/bashSUM=0i=1while [ $i -lt 100 ]do if [ $[i%2] != 0 ] then #echo $i let SUM+=i fi let i++doneecho $SUM执行结果[root@centos7 ~]# ./while_sum.sh25002、编写脚本,提示请输入网络地址,如 192.168.0.0,判断输入的网段中主机在线状态,并统计在线和离线主原创 2020-06-02 20:07:03 · 619 阅读 · 0 评论 -
Shell脚本 - 编程进阶01( for循环 )
1、判断 /var/ 目录下所有文件的类型;脚本#! /bin/bashpath='/var'for files in `ls $path`;do filetype='None' file=$path/$files [ -b $file ] && filetype=Block [ -c $file ] && filetype=Char [ -d $file ] && filetype=Dirtory [ -f $file ] &原创 2020-06-02 20:05:53 · 900 阅读 · 0 评论 -
Shell 脚本 - 编程基础05
1、让所有用户的 PATH 环境变量的值多出一个路径,例如:/usr/local/apache/bin[root@centos7 yinxd]# echo 'PATH=/usr/local/apache/bin:$PATH' >> /etc/profile2、用户 root 登录时,将命令指示符变成红色,并自动启用如下别名:rm=‘rm –i’cdnet=‘cd /etc/sysconfig/network-scripts/’editnet=‘vim /etc/sysconfig/n原创 2020-05-26 19:49:53 · 275 阅读 · 0 评论 -
Shell 脚本 - 编程基础04
1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的 id 号等信息;脚本#!/bin/bashif [ $# == 0 ];then echo "请指定一个用户名作为参数。"elif `id $1 &> /dev/null`;then echo "用户名为$1的用户已存在。"else sudo useradd $1 &> /dev/null &am原创 2020-05-26 19:49:12 · 359 阅读 · 0 评论 -
Shell 脚本 - 编程基础03
1、编写脚本 argsnum.sh,接受一个文件路径作为参数;如果参数个数小于 1,则提示用户“至少应该给一个参数”,并立即退出;如果参数个数不小于 1,则显示第一个参数所指向的文件中的空白行数;脚本#!/bin/bashif [ $# -lt 1 ];then echo "至少应该给一个参数"elif [ -f $1 ];then echo "第一个参数指向的文件中空白行数:`grep '^$' $1 | wc -l`"else echo "指原创 2020-05-26 19:48:39 · 865 阅读 · 0 评论 -
Shell 脚本 - 编程基础02
1、编写脚本 sumid.sh,计算 /etc/passwd 文件中的第 10 个用户和第 20 用户的 UID 之和;脚本#!/bin/bashUID10=`getent passwd |head | tail -1 | cut -d: -f3`UID20=`getent passwd |head -20 | tail -1 | cut -d: -f3`echo UID10=$UID10echo UID20=$UID20echo Sum is $[UID10+UID20]执行结果原创 2020-05-25 20:11:56 · 349 阅读 · 0 评论 -
Shell 脚本 - 编程基础 01
1、编写脚本 systeminfo.sh,显示当前主机系统信息,包括主机名、IPv4 地址、操作系统版本、内核版本、CPU 型号、内存大小、硬盘大小;脚本#!/bin/bashecho -e "hostname:\t `hostname`"echo -e "IPv4 Address:\t `hostname -I`"echo -e "OS Version:\t `cat /etc/redhat-release`"echo -e "Kernel Version:\t `uname -r`"e原创 2020-05-25 20:10:50 · 221 阅读 · 0 评论 -
Shell 脚本 - 使用脚本创建用户 user1-50 ,并指定家目录为/data/user[1-50]
脚本#!/bin/bashfor i in `seq 50`;do if id system$i &> /dev/null;then echo 用户system$i已存在。 else useradd -d /data/system$i system$i echo 用户system$i创建成功。 fidone原创 2020-05-19 14:48:58 · 1583 阅读 · 0 评论 -
Shell 脚本 - 写一个脚本,生成 10 个随机数,并从小到大排序
脚本#!/bin/bashdeclare -a NUMSfor i in `seq 0 9`;do NUMS[$i]=$[RANDOM%1000]doneecho 原始顺序:${NUMS[*]}for i in `seq 1 9`;do for j in `seq $i 9`;do MIN=${NUMS[$i-1]} if [[ $MIN -gt ${NUMS[$j]} ]];then NUMS[$i-1]=${NUMS[$j]}.原创 2020-05-19 14:22:24 · 2949 阅读 · 0 评论