(1) El usuario adivina el número
#!/bin/bash

# El script genera un número aleatorio dentro de 100, solicita al usuario que adivine el número y, de acuerdo con la entrada del usuario, solicita al usuario que adivine correctamente,
# Si la suposición es pequeña o grande, el script termina cuando el usuario adivina correctamente.

# RANDOM es una variable del sistema que viene con el sistema, el valor es un número aleatorio de 0-32767
# Use el algoritmo restante para cambiar el número aleatorio a un número aleatorio de 1-100
num=$[RANDOM%100+1]
echo  " $num "

# Use read para pedirle al usuario que adivine el número
# Use if para determinar la relación de tamaño del usuario que adivina el número: -eq (igual), -ne (diferente), -gt (mayor que) , -ge (mayor o igual),
# -lt (menor que), ‐le (menor o igual que)
while  :
do  
 read  -p  "La computadora generó un número aleatorio de 1‐100, lo adivinaste: "  cai  
    if  [  $cai  -eq  $num  ]   
    luego      
        echo  "Felicitaciones, acertaste bien"      
        exit   
     elif  [  $cai  -gt  $num  ]  
     luego       
            echo  "Vaya, supongo que demasiado grande"     
       else       
            echo  "Vaya, supongo que demasiado pequeño"  
  fi
done
(2) Verifique cuántas IP remotas se están conectando a esta máquina
#!/bin/bash

#!/bin/bash
# Verifique cuántas IP remotas se conectan a esta máquina (ya sea a través de ssh, web o ftp) 

# Use netstat ‐atn para ver el estado de todas las conexiones en esta máquina, ‐ a Ver todo,
# -t solo muestra información de conexión tcp, -n formato de número muestra
# Dirección local (la cuarta columna es la IP y la información del puerto de la máquina local)
# Dirección externa (la quinta columna es la IP y la información del puerto del host remoto)
# Use el comando awk para mostrar solo los datos en la quinta columna, y luego muestre la información de la dirección IP en la primera columna
# la clasificación se puede ordenar por número y finalmente use uniq para eliminar duplicados redundantes y cuenta el número de duplicados
netstat -atn | awk   '{print $5}'   | awk   '{print $1}'  | sort -nr | uniq -c
(3) hola mundo


Ejemplo de función #!/bin/bash  {
echo  "¡Hola mundo!"
}
ejemplo
(4) Imprimir el pid de tomcat
#!/bin/sh`

v1= "Hola"
v2= "mundo"
v3= ${v1}${v2}
echo  $v3

pidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v  " grep" |awk  '{print $2}' `
echo  $pidlist
echo  "tomcat Id list : $pidlist "   //mostrar pid
(5) Tijeras de guion, roca, juegos de tela.
#!/bin/bash

juego=(piedra, papel, tijera)
num=$[ALEATORIO%3]
computadora= ${juego[$suma]}

echo  "Seleccione su gesto de puñetazo de acuerdo con los siguientes consejos"
echo  " 1. Roca"
echo  " 2. tijeras"
echo  " 3. tela "

read  -p  "por favor elige 1-3:"  person
case  $persona  en
1)
  if  [  $num  -eq 0 ]
  luego  
    echo  "tie"
    elif  [  $num  -eq 1 ]
    entonces
      echo  "tú ganas"
    else  
      echo  "la computadora gana"
fi ;;
2)
 si  [  $num  -eq 0 ]
 entonces
    echo  "la computadora gana"
    elif  [  $num  -eq 1 ] 
    luego
     echo  "empate"
    else  
      echo  "usted gana"
fi ;;
3)
 if  [  $num  -eq 0 ]
 luego   
   echo  "usted gana"
   elif  [  $num  -eq 1 ]
   luego  
     echo  "la computadora gana"
   else  
      echo  "empate"
fi ;;
*)
  echo  "debe ingresar los números 1-3"
esac
(6) Tabla de multiplicar noventa y nueve
#!/bin/bash

for  i  in  `seq 9`
do  
 for  j  in  `seq  $i `
 do  
 echo  -n  " $j * $i =$[i*j] "
 done
    echo
done
(7) El script usa el código fuente para instalar el servidor Memcached
#!/bin/bash
# Implementación de memcached con un solo clic 

# El script usa el código fuente para instalar el servidor de memcached
# Nota: si el enlace de descarga del software ha caducado, actualice el enlace de descarga de memcached
wget http://www .memcached.org/files/memcached -1.5.1.tar.gz
yum -y install gcc
tar -xf memcached-1.5.1.tar.gz
cd  memcached-1.5.1
./configure
make
make install
(8) Detectar si el usuario actual de la máquina es un superadministrador
#!/bin/bash

# Verifique si el usuario actual de la máquina es un superadministrador, si es un administrador, use yum para instalar vsftpd, si no
# sí, le pedirá que no sea administrador (use una cadena versión de comparación) 
if  [  $ USER  ==  "root"  ] 
luego 
 yum -y install vsftpd
else  
 echo  "Usted no es un administrador y no tiene permiso para instalar software"
fi
(9) si expresión de operación
#!/bin/bash -xv

if  [  $1  -eq 2 ] ; luego
 echo  "wo ai wenmin"
elif  [  $1  -eq 3 ] ; luego  
 echo  "wo ai wenxing "
elif  [  $1  -eq 4 ] ; luego  
 echo  "wo de xin "
elif  [  $1  -eq 5 ] ; luego
 echo  "wo de ai "
fi
(10) La secuencia de comandos elimina el proceso de tomcat y se reinicia
#!/bin/bash

#kill tomcat pid

pidlist=`ps -ef|grep apache-tomcat-7.0.75|grep -v  "grep" |awk  '{print $2}' `   #Encontrar el número PID de tomcat

echo  " tomcat Id list : $pidlist "   //mostrar pid

kill  -9  $pidlist #matar   el proceso mejorado

echo  "KILL  $pidlist :"  //solicitar el proceso y ser eliminado

echo  "service stop success"

echo  "start tomcat"

cd  /opt / apache-tomcat-7.0.75

pwd 

rm -rf trabajo/*

cd  bin

./startup.sh  #;tail -f ../logs/catalina.out
(11) Imprimir un tablero de ajedrez
#!/bin/bash
# Imprimir tablero de ajedrez
# Establecer dos variables, i y j, una para fila y otra para columna, el ajedrez es 8*8 tablero de ajedrez
# i=1 significa listo para imprimir la primera fila del tablero de ajedrez, la primera fila 1 tablero de ajedrez de fila con salida espaciada en gris y azul, 8 columnas en total
# i=1,j=1 representa la fila 1, columna 1; i=2,j=3 representa la fila 2, columna 3
# del tablero de ajedrez La regla es que si i+j es un número par, imprima un bloque de color azul, si es un número impar, imprima un
bloque de color gris
para  i  en  {1..8} para j  en  {  1..8}
do     sum= $[i+j] if  [ $[sum%2] -eq 0 ]; luego echo  -ne  "\033[46m \033[0m" else echo  -ne  "\033[47m \033[0m" fi hecho echo hecho
   
   

  
    
  
   
  
   
   


(12) Cuente cuántas cuentas pueden iniciar sesión en la computadora en el sistema Linux actual
#!/bin/bash

# Cuente cuántas cuentas pueden iniciar sesión en la computadora en el sistema Linux actual #Método
1:
grep  "bash$"  /etc/passwd | wc -l #Método
2:
awk -f :  '/bash $/ {x++}fin{imprimir x}'  /etc/contraseña
(13) Copia de seguridad de los datos de la tabla MySQL
#!/bin/sh

source  /etc/profile
dbName=mysql
tableName=db
echo  [`date + '%Y-%m-%d %H:%M:%S' `] ' empezar a cargar datos...'
mysql -uroot -proot -P3306  ${dbName}  -e  "CARGAR ARCHIVO LOCAL DE DATOS '# /home/wenmin/wenxing.txt' EN LOS CAMPOS DE LA TABLA  ${tableName} TERMINADOS  POR ';'"
echo  [`fecha + '%Y -%m-%d %H:%M:%S' `] ' finaliza la carga de datos...'
sale
de EOF
(14) Use un bucle infinito para mostrar el tráfico de paquetes enviado por la tarjeta de red eth0 en tiempo real
#!/bin/bash

# Use un bucle infinito para mostrar el tráfico de paquetes de datos enviados por la tarjeta de red eth0 en tiempo real 

mientras  :
do  
 echo  'La información de tráfico de la tarjeta de red local ens33 es la siguiente:'
 ifconfig ens33 | grep  " paquete RX"  | awk  '{print $5}'
     ifconfig ens33 | grep  "paquete TX"  | awk  '{print $5}'
 sleep 1
hecho
(15) Escriba un script para probar qué hosts en todo el segmento de red de 192.168.4.0/24 están encendidos y qué hosts están apagados
#!/bin/bash

# Escriba un script para probar qué hosts en todo el segmento de red 192.168.4.0/24 están encendidos y qué hosts están apagados
# (para la versión)
para  i  en  {1..254}
do  
 # cada 0,3 segundos Haga ping una vez, haga ping 2 veces en total y configure el tiempo de espera de ping en 1 milisegundo
 ping -c 2 -i 0.3 -W 1 192.168.1. $i  &>/dev/null
     if  [ $? -eq 0 ]; luego
 echo  "192.168.1. $i  está activo"
 else  
 echo  "192.168.1. $i  está inactivo
 "
hecho
(16) Escriba un script: solicite al usuario que ingrese el nombre de usuario y la contraseña, y el script crea automáticamente la cuenta correspondiente y configura la contraseña. si el usuario
#!/bin/bash
# Escriba una secuencia de comandos: Pida al usuario que ingrese un nombre de usuario y una contraseña, y la secuencia de comandos creará automáticamente la cuenta correspondiente y configurará la contraseña. Si el usuario
# no ingresa el nombre de la cuenta, le pedirá que ingrese el nombre de la cuenta y salga del script; si el usuario no ingresa la contraseña,
se usará el número predeterminado 123456 como contraseña predeterminada.

read  -p  "Ingrese el nombre de usuario:"  usuario
#Use -z para juzgar si una variable está vacía, si está vacía, solicite al usuario que ingrese el nombre de la cuenta y salga del script, el código de salida es 2
#Después del la secuencia de comandos sale
sin ingresar un nombre de usuario  ,  el código  de retorno  visto  por $? la función de eco de shell #Use stty echo para abrir la función de visualización de eco de shell stty - echo read  -p  "Por favor ingrese la contraseña:"  pass stty  echo pass= ${pass:-123456} useradd  " $user "
   
 
 


 

 


echo  " $ contraseña "  | contraseña --stdin  " $usuario "
(17) Use un script para ordenar la entrada de tres enteros
#!/bin/bash

# Pida al usuario que ingrese 3 enteros a la vez, el script clasificará y generará 3 números de acuerdo con el tamaño de los números
read  -p  " Ingrese un entero: "  num1
read  -p  " Ingrese un número entero: "  num2
read  -p  " Ingrese un número entero: "  num3

# No importa quién es más grande o más pequeño, imprima al final echo "$num1, $num2, $num3"
# num1 siempre almacena el valor más pequeño, num2 siempre almacena el valor medio, y num3 siempre almacena el valor máximo
# Si la entrada no está en este orden, cambie el orden de almacenamiento de los números, como: puede intercambiar los valores de num1 y num2
tmp=0
# Si num1 es mayor que num2, intercambie los valores de num1 y num2 para asegurarse de que el valor de num1 se almacena en la variable num1 es el valor mínimo
si  [  $num1  -gt  $num2  ]; entonces
 tmp= $num1
 num1= $num2
 num2 =tmp
fi
# Si num1 es mayor que num3, intercambie num1 y num3 para asegurar el valor mínimo almacenado en la variable num1
if  [  $num1  -gt  $num3  ]; then
 tmp= $num1
 num1= $num3
 num3= $tmp
fi
# Si num2 es mayor que num3, intercambie num2 y num3 para asegurarse de que el valor mínimo se almacene en la variable num2
if  [  $num2  -gt  $num3  ]; luego
 tmp= $num2
 num2= $num3
 num3= $tmp
fi
echo  "Los datos ordenados (de menor a mayor) son: $num1 , $num2 , $num3 "
(18) De acuerdo con la hora actual de la computadora, devuelva el saludo y la secuencia de comandos se puede configurar para que comience en el arranque

Número público de búsqueda de WeChat: seguridad de red y tecnología de piratería, respuesta: los piratas informáticos obtienen datos.

#!/bin/bash
# De acuerdo con la hora actual de la computadora, devuelva el saludo, puede configurar el script para que comience en el arranque 

# 00-12 en punto es mañana, 12-18 en punto es tarde, 18- 24 en punto es la tarde
# Use el comando de fecha para obtener Después de la hora, si juzga el intervalo de tiempo y determina el contenido del saludo
tm=$(fecha +%H)
si  [  $tm  -le 12 ]; luego
 msg= " Buenos Días  $USUARIO "
elif  [  $tm  -gt 12 -a  $ tm  -le 18 ]; then
   msg= "Buenas Tardes  $USUARIO "
else
   msg= "Buenas Noches  $USUARIO "
fi
echo  "La hora actual es: $(fecha +"%Y‐%m‐%d %H:%M: %S") "
echo  -e  "\033[34m $mensaje\033[0m"
(19) Escriba I amo cls en el archivo txt
#!/bin/bash

cd  /home/wenmin/
touch wenxing.txt
echo  "I love cls"  >>wenxing.txt
(20) Secuencias de comandos para el juicio de bucle
#!/bin/bash

s=0;
for ((i=1;i<100;i++))
do 
 s=$[ $s + $i ]
done  

echo  $s

r=0;
a=0;
b=0 ;
para ((x=1;x<9;x++))
hacer 
 a=$[ $a + $x
echo  $x
hecho
para ((y=1;y<9;y++))
hacer 
 b=$[ $ b + $y ]
echo  $y

hecho

echo  $r =$[ $a + $b ]
(21) Secuencias de comandos para el juicio de bucle
#!/bin/bash

for  i  in  "$*"
do  
 echo  "wenmin xihuan  $i "
done

for  j  in  " $@ "
do  
 echo  "wenmin xihuan  $j "
done
(22) El script usa el comando tar para hacer una copia de seguridad de todos los archivos de registro en /var/log cada semana
#!/bin/bash
# Use el comando tar para hacer una copia de seguridad de todos los archivos de registro en /var/log cada 5 semanas
# vim /root/logbak.sh
# Escriba un script de copia de seguridad, el nombre del archivo después de la copia de seguridad contiene una etiqueta de fecha para evitar las copias de seguridad posteriores se sobrescriben Los datos de la copia de seguridad anterior se sobrescriben
# Tenga en cuenta que el comando de fecha debe estar encerrado entre comillas graves, y las comillas graves están encima de la tecla <tabulador> del teclado

tar -czf  log -`date +%Y%m%d `.tar.gz /var/ log  

# crontab -e #Escribe una tarea programada y ejecuta el script de respaldo
00 03 * * 5 /home/wenmin/datas/logbak.sh
(23) Función de operación de la función de suma de escritura de secuencias de comandos xx()
#!/bin/bash

function  sum ()
{
 s=0;
 s=$[ $1 + $2 ]
 echo  $s
}
read  -p  "ingresa tu parámetro"  p1
read  -p  "ingresa tu parámetro"  p2

sum  $p1  $p2

function  multi ()
{
 r=0;
 r=$[ $1 / $2 ]
 echo  $r
}
read  -p  "ingrese su parámetro"  x1
read  -p  "ingrese su parámetro"  x2

multi $x1  $x2

v1=1
v2=2
let  v3= $v1 + $v2
echo  $v3
(24) Caso de secuencias de comandos: expresión de estructura de rama esac
#!/bin/bash 

case  $1  en 
1) 
 echo  "wenmin"
;;
2)
 echo  "wenxing"
;; 
3)  
 echo  "wemchang"
;;
4) 
 echo  "yijun"
;;
5)
 echo  "sinian"
;;
6 )  
 echo  "sikeng"
;;
7) 
 echo  "yanna"
;;
*)
 echo  "danlian"
;; 
esac
(25) # Definir la dirección de la página a monitorear, reiniciar o mantener el estado de tomcat
#!/bin/sh   #   Función   : Supervise automáticamente el proceso de Tomcat   y
reinícielo cuando se cuelgue  -7.0 .75' |grep -v  'grep' |awk  '{imprimir $2}' )   # tomcat_startup   StartTomcat=/opt/apache-tomcat-7.0.75/bin/startup.sh   #TomcatCache=/usr/apache-tomcat -5.5 .23/work   # Definir la dirección de la página para monitorear   WebUrl=http://192.168.254.118:8080/ # Salida de registro   GetPageInfo=/dev/null   TomcatMonitorLog=/tmp/TomcatMonitor.log   Monitor ()     {   echo "[info ] comenzar a monitorear tomcat...[ $(fecha +'%F %H:%M:%S') ]"si





















      
    [  $TomcatID  ]
 luego   
      repite  "[info]el ID del proceso de Tomcat es: $TomcatID ."   
      # Obtener el código de estado de retorno  
      TomcatServiceCode=$(curl -s -o  $GetPageInfo  -m 10 --connect-timeout 10  $WebUrl  -w % { http_code})  
      if  [  $TomcatServiceCode  -eq 200 ]; luego   
          echo  "[info]El código de retorno es $TomcatServiceCode , Tomcat se inició correctamente y la página es normal".   
      else   
          echo  "[error]Error de acceso, el estado el código es $TomcatServiceCode , el registro de errores se envió a $GetPageInfo "   
          echo  "[error] para reiniciar Tomcat"   
          kill  -9  $TomcatID   # Finaliza el proceso original   de Tomcat
          sleep 3  
          #rm -rf $TomcatCache # Limpiar caché  
          de Tomcat $StartTomcat   
      fi   
      else   
      echo  "[error] ¡El proceso no existe! Tomcat se reinicia automáticamente..."   
      echo  "[info] $StartTomcat , espere..."   
      #rm -rf $TomcatCache  
      $StartTomcat   
    fi   
    echo  "------------------------------"  
   }  
   Monitor>> $TomcatMonitorLog
(26) Cree una cuenta y contraseña del sistema Linux a través de variables de ubicación
#!/bin/bash

# Crear una cuenta y contraseña del sistema Linux a través de variables de ubicación

# $1 es el primer parámetro para ejecutar el script, $2 es el segundo parámetro para ejecutar el script

useradd  " $1 "
echo  " $2 "  | passwd --stdin  " $1 "
(27) Número de variables entrantes y salientes e impresión
#!/bin/bash
echo  " $0  $1  $2  $3 "   // pasa tres parámetros
echo  $#     // obtiene el número de parámetros entrantes
echo  $@     // imprime los parámetros entrantes
echo  $* // imprime los parámetros entrantes parámetro
(28) Supervisión en tiempo real de la memoria local y el espacio restante del disco duro. Cuando la memoria restante sea inferior a 500 M y el espacio restante de la partición raíz sea inferior a 1000 M, se enviará un correo electrónico de alarma a la raíz administrador
#!/bin/bash

# Supervise la memoria local y el espacio restante del disco duro en tiempo real. Cuando la memoria restante sea inferior a 500 M y el espacio restante de la partición raíz sea inferior a 1000 M, envíe un correo electrónico de alarma al administrador raíz

# Extraer el espacio restante de la partición raíz
disk_size=$(df / | awk  '/\//{print $4}' )

# Extraer el espacio vacío restante en la memoria
mem_size=$(free | awk  '/Mem/{ print $4}' )
while  :
do  
# Tenga en cuenta que el tamaño de la memoria y la extracción del disco está en forma de Kb es la unidad
if   [   $disk_size  -le 512000 -a  $mem_size  -le 1024000 ]
then
    mail ‐s   "Advertencia"   raíz <<EOF
 Recursos insuficientes, recursos insuficientes
EOF
fi
hecho
(29) Compruebe si hay un archivo correspondiente en el directorio especificado
#!/bin/bash

if [ -f /home/wenmin/datas ]
then 
echo "File exists"
fi
(30)脚本定义while循环语句
#!/bin/bash

if [ -f /home/wenmin/datas ]
then 
echo "File exists"
fi

[root@rich datas]# cat while.sh 
#!/bin/bash

s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s + $i]
        i=$[$i + 1]
done

echo $s
echo $i
(31)一键部署 LNMP(RPM 包版本)
#!/bin/bash 

# 一键部署 LNMP(RPM 包版本)
# 使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败
# 本脚本使用于 centos7.2 或 RHEL7.2
yum -y install httpd
yum -y install mariadb mariadb-devel mariadb-server
yum -y install php php-mysql

systemctl start httpd mariadb
systemctl enable httpd mariadb
(32)读取控制台传入参数
#!/bin/bash
read -t 7 -p "input your name " NAME
echo $NAME

read -t 11 -p "input you age " AGE
echo $AGE

read -t 15 -p "input your friend " FRIEND
echo $FRIEND

read -t 16 -p "input your love " LOVE
echo $LOVE
(33)脚本实现 复制
#!/bin/bash

cp $1 $2
(34)脚本实现文件存在与否的判断
#!/bin/bash

if [ -f file.txt ];then
 echo "文件存在"
else 
 echo "文件不存在"
fi