4.1 editor de texto Vim
Modo de comando: controle el movimiento del cursor, copie, pegue, elimine y busque texto.
Modo de entrada: entrada de texto normal.
Modo de última línea: guarde o salga del documento y configure el entorno de edición.
[root@myserver ~]# vim new.txt
[root@myserver ~]# cat new.txt
This is a test
Vim tiene tres modos visuales.
Cuando se usa Vim para editar texto, el modo visual es muy útil para identificar el bloque de texto que se va a manipular. El modo visual de Vim tiene tres modos: carácter, línea y bloque. Las claves para ingresar a cada modo son:
Modo de caracteres: v (minúsculas)
Modo de línea: V (mayúsculas)
Modo de bloque: Ctrl + v
命令 用途
Esc 退回到普通模式
v 激活面向字符的可视模式
V 激活面向行的可视模式
Ctrl + v 激活面向列块的可视模式
gv 重选上次的高亮选区
o 切换到高亮选区的活动端
(1) Presione la tecla v para ingresar al modo de caracteres visuales. La palabra VISUAL aparecerá en la parte inferior de la pantalla. Utilice las flechas para resaltar el texto deseado. Puede utilizar otros comandos de navegación, como w para resaltar el comienzo de la siguiente palabra y $ para incluir el resto de la línea. Una vez resaltado el texto, presione d para eliminar el texto. Si elimina demasiado o no lo suficiente, presione u para deshacer y comenzar de nuevo. Mueva el cursor a la nueva ubicación y presione p para pegar el texto. También puede resaltar un fragmento de texto para reemplazarlo.
w seleccione algunas palabras, luego d, luego u cancele el efecto como se muestra en la figura:
(2) Coloque el cursor en cualquier lugar de la primera o última línea del texto que se va a utilizar. Presione V para ingresar al modo de línea. La palabra LÍNEA VISUAL aparecerá en la parte inferior de la pantalla. Utilice los comandos de navegación (teclas de flecha hacia arriba y hacia abajo) para resaltar varias líneas de texto. Después de resaltar el texto deseado, use comandos para manipularlo. Presione d para eliminar, luego mueva el cursor a una nueva posición, presione p para pegar el texto, el resultado es como se muestra a continuación
(3) Presione Ctrl + v para ingresar al modo de bloque de visualización. La palabra BLOQUE VISUAL aparecerá en la parte inferior de la pantalla. Presione las teclas arriba y abajo del teclado para resaltar la línea que se anotará primero, luego haga clic en la I grande y luego anote y luego presione la tecla esc, el efecto es el siguiente:
4.1.2 Configurar el nombre de host
Paso 1 : Utilice el editor de Vim para modificar el archivo de nombre de host "/ etc / hostname".
Paso 2 : Elimine el nombre de host original y agregue "linuxprobe.com". Tenga en cuenta que después de usar el editor Vim para modificar el archivo de nombre de host, debe ejecutar el comando: wq! En el modo de última línea para guardar y salir del documento.
Paso 3 : guarde y salga del documento, y luego use el comando hostname para verificar si la modificación es exitosa
或者 hostnamectl set-hostname linuxprobe
[root@myserver c]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.88 myserver
[root@myserver c]#
4.1.3 Configurar la información de la tarjeta de red
Paso 1 : Primero cambie al directorio / etc / sysconfig / network-scripts (almacene el archivo de configuración de la tarjeta de red).
Paso 2 : Utilice el editor Vim para modificar el archivo de la tarjeta de red ifcfg-eno160, escriba los siguientes parámetros de configuración uno por uno y guarde y salga. Dado que el hardware y la arquitectura de cada dispositivo son diferentes, utilice el comando ifconfig para confirmar el nombre predeterminado de la tarjeta de red respectiva
设备类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static
网卡名称:NAME=eno160
是否启动:ONBOOT=yes
IP地址:IPADDR=192.168.1.88
子网掩码:NETMASK=255.255.255.0
网关地址:GATEWAY=192.168.1.2
DNS地址:DNS1=114.114.114.114
Paso 3 : reinicie el servicio de red y pruebe si la red está conectada
[root@myserver c]# nmcli connection reload
[root@myserver c]# ping www.baidu.com
PING www.wshifen.com (103.235.46.39) 56(84) bytes of data.
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=5 ttl=128 time=372 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=6 ttl=128 time=371 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=7 ttl=128 time=371 ms
^C
--- www.wshifen.com ping statistics ---
7 packets transmitted, 3 received, 57.1429% packet loss, time 128ms
rtt min/avg/max/mdev = 371.288/371.707/372.365/0.685 ms
[root@myserver c]#
4.1.4 Configurar Yum Warehouse
Paso 1 : Ingrese al directorio /etc/yum.repos.d/ (porque este directorio almacena los archivos de configuración del almacén de software de Yum).
Paso 2 : Utilice el editor Vim para crear un nuevo archivo de configuración llamado rhel7.repo (el nombre del archivo puede ser arbitrario, pero el sufijo debe ser .repo), escriba los siguientes parámetros de configuración en negrita uno por uno y guarde y salga (no escriba la siguiente anotación en chino)
Paso 3 : Monte el CD de acuerdo con la ruta de los parámetros de configuración y escriba la información de montaje del CD en el archivo / etc / fstab.
Paso 4 : Use el comando "yum install httpd -y" para verificar si el repositorio de software de Yum está disponible.
Configurar la fuente de yum local
[root@myserver c]# cat /etc/yum.repos.d/redhat.repo
#
# Certificate-Based Repositories
# Managed by (rhsm) subscription-manager
#
# *** This file is auto-generated. Changes made here will be over-written. ***
# *** Use "subscription-manager repo-override --help" if you wish to make changes. ***
#
# If this file is empty and this system is subscribed consider
# a "yum repolist" to refresh available repos
#
[localREPO]
name=localhost8
baseurl=file:///media/BaseOS
enable=1
gpgcheck=0
[localREPO_APP]
name=localhost8_app
baseurl=file:///media/AppStream
enable=1
gpgcheck=0
[root@myserver c]#
Pruebe la validez de la fuente de yum
[root@myserver c]# yum install -y httpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Extra Packages for Enterprise Linux Modular 8 - x86_64 1.4 kB/s | 9.1 kB 00:06
Extra Packages for Enterprise Linux 8 - x86_64 4.3 kB/s | 7.6 kB 00:01
localhost8 2.7 MB/s | 2.7 kB 00:00
localhost8_app 3.1 MB/s | 3.2 kB 00:00
Dependencies resolved.
============================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================
Installing:
httpd x86_64 2.4.37-10.module+el8+2764+7127e69e localREPO_APP 1.4 M
Installing dependencies:
redhat-logos-httpd noarch 80.7-1.el8 localREPO 25 k
apr x86_64 1.6.3-9.el8 localREPO_APP 125 k
apr-util x86_64 1.6.1-6.el8 localREPO_APP 105 k
httpd-filesystem noarch 2.4.37-10.module+el8+2764+7127e69e localREPO_APP 34 k
httpd-tools x86_64 2.4.37-10.module+el8+2764+7127e69e localREPO_APP 101 k
mod_http2 x86_64 1.11.3-1.module+el8+2443+605475b7 localREPO_APP 156 k
Installing weak dependencies:
apr-util-bdb x86_64 1.6.1-6.el8 localREPO_APP 25 k
apr-util-openssl x86_64 1.6.1-6.el8 localREPO_APP 27 k
Enabling module streams:
httpd 2.4
Transaction Summary
============================================================================================================================================================
Install 9 Packages
Total size: 2.0 M
Installed size: 5.4 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : apr-1.6.3-9.el8.x86_64 1/9
Running scriptlet: apr-1.6.3-9.el8.x86_64 1/9
Installing : apr-util-bdb-1.6.1-6.el8.x86_64 2/9
Installing : apr-util-openssl-1.6.1-6.el8.x86_64 3/9
Installing : apr-util-1.6.1-6.el8.x86_64 4/9
Running scriptlet: apr-util-1.6.1-6.el8.x86_64 4/9
Installing : httpd-tools-2.4.37-10.module+el8+2764+7127e69e.x86_64 5/9
Running scriptlet: httpd-filesystem-2.4.37-10.module+el8+2764+7127e69e.noarch 6/9
Installing : httpd-filesystem-2.4.37-10.module+el8+2764+7127e69e.noarch 6/9
Installing : redhat-logos-httpd-80.7-1.el8.noarch 7/9
Installing : mod_http2-1.11.3-1.module+el8+2443+605475b7.x86_64 8/9
Installing : httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64 9/9
Running scriptlet: httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64 9/9
Verifying : redhat-logos-httpd-80.7-1.el8.noarch 1/9
Verifying : apr-1.6.3-9.el8.x86_64 2/9
Verifying : apr-util-1.6.1-6.el8.x86_64 3/9
Verifying : apr-util-bdb-1.6.1-6.el8.x86_64 4/9
Verifying : apr-util-openssl-1.6.1-6.el8.x86_64 5/9
Verifying : httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64 6/9
Verifying : httpd-filesystem-2.4.37-10.module+el8+2764+7127e69e.noarch 7/9
Verifying : httpd-tools-2.4.37-10.module+el8+2764+7127e69e.x86_64 8/9
Verifying : mod_http2-1.11.3-1.module+el8+2443+605475b7.x86_64 9/9
Installed products updated.
Installed:
httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64
apr-util-openssl-1.6.1-6.el8.x86_64 redhat-logos-httpd-80.7-1.el8.noarch
apr-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64
httpd-filesystem-2.4.37-10.module+el8+2764+7127e69e.noarch httpd-tools-2.4.37-10.module+el8+2764+7127e69e.x86_64
mod_http2-1.11.3-1.module+el8+2443+605475b7.x86_64
Complete!
[root@myserver c]#
4.2 Secuencia de comandos de shell
交互式(Interactive):用户每输入一条命令就立即执行。
批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令
Si desea ver la información actual de htop, use el comando para ejecutar de la siguiente manera (htop se instala usando la fuente epel-release)
Recibir parámetros de usuario
[root@myserver c]# cat example.sh
#!/bin/bash
#output message
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别是$*。"
echo "第1个参数为$1,第5个为$5。"
[root@myserver c]# sh example.sh 1 2 3 4 5
当前脚本名称为example.sh
总共有5个参数,分别是1 2 3 4 5。
第1个参数为1,第5个为5。
[root@myserver c]#
Juzgar los parámetros del usuario
[root@myserver c]# [ -d /etc/fstab ]
[root@myserver c]# echo $?
1
[root@myserver c]# [ -f /etc/fstab ]
[root@myserver c]# echo $?
0
[root@myserver c]# [ -e /dev/cdrom ] && echo "Exist"
Exist
[root@myserver c]# [ $USER = docker ] || echo "user"
user
[root@myserver c]#
Los operadores de comparación de enteros son solo operaciones con números, no se pueden operar con números, cadenas, archivos, etc., y no se pueden juzgar mediante el uso de signos iguales, signos mayores que y signos menores que en la vida diaria por sentado. Debido a que el signo igual entra en conflicto con el carácter del comando de asignación, el signo mayor que y el signo menor que entran en conflicto con el carácter del comando de redirección de salida y el carácter del comando de redirección de entrada respectivamente. Así que asegúrese de utilizar los operadores de comparación de enteros estándar para operar
[root@myserver c]# free -m
total used free shared buff/cache available
Mem: 1966 1095 223 8 646 683
Swap: 2095 261 1834
[root@myserver c]# free -m | grep Mem:
Mem: 1966 1095 223 8 646 683
[root@myserver c]# free -m | grep Mem: | awk '{print $4}'
223
[root@myserver c]# FreeMem=`free -m | grep Mem: | awk '{print $4}'`
[root@myserver c]# echo $FreeMem
223
[root@myserver c]# [ $FreeMem -lt 1024 ] && echo "Insufficient Memory"
Insufficient Memory
[root@myserver c]#
4.3 Declaración de control de flujo
si declaración de prueba condicional
La instrucción de prueba condicional if permite que el script ejecute automáticamente el comando correspondiente de acuerdo con la situación real. Desde un punto de vista técnico, si las declaraciones se dividen en estructura de rama única, estructura de rama doble y estructura de rama múltiple, su complejidad aumenta con la flexibilidad.
La estructura de rama única de una instrucción condicional if se compone de palabras clave if, then y fi, y el comando preestablecido se ejecuta solo después de que se cumple la condición, que es equivalente al coloquial "if ... then ..." . El enunciado if de rama única pertenece al tipo más simple de estructura de juicio condicional El formato de sintaxis se muestra en la Figura 4-17.
El script utiliza principalmente el comando ping para probar la conectividad de la red con el host opuesto. El parámetro -c es necesario para especificar el número de intentos, el parámetro -i se utiliza para definir el intervalo de envío de cada paquete de datos y el -W El parámetro se utiliza para definir el tiempo de espera.
En el sistema Linux, read es un comando que se usa para leer la información de entrada del usuario, que puede asignar la información de entrada del usuario recibida a la variable especificada más tarde, y el parámetro -p se usa para mostrar cierta información de solicitud al usuario. En el siguiente ejemplo de secuencia de comandos, solo cuando la puntuación ingresada por el usuario sea mayor o igual a 85 puntos y menor o igual a 100 puntos, se emitirá la palabra "Excelente"; si la puntuación no cumple esta condición (que es decir, la coincidencia no es exitosa), continúe determinando si la puntuación es mayor o igual a 70 puntos Y menor o igual a 84 puntos, en caso afirmativo, envíe la palabra Aprobado; si falla en ambas ocasiones (es decir, las dos las operaciones de coincidencia han fallado), emite la palabra Fail
[root@myserver ~]# cat chkscore.sh
#!/bin/bash
read -p "Enter your score(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is Fail"
fi
[root@myserver ~]# sh chkscore.sh
Enter your score(0-100):80
80 is Pass
[root@myserver ~]# sh chkscore.sh
Enter your score(0-100):60
60 is Fail
[root@myserver ~]# sh chkscore.sh
Enter your score(0-100):70
70 is Pass
[root@myserver ~]#