Linux debería aprender de esta manera: editor VIM

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.

Capítulo 4 Editor de Vim y secuencia de comandos de shell.  Capítulo 4 Editor de Vim y secuencia de comandos de shell.

[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.
Capítulo 4 Editor de Vim y secuencia de comandos de shell.  Capítulo 4 Editor de Vim y secuencia de comandos de shell.

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 ~]# 

 

Supongo que te gusta

Origin blog.csdn.net/yanghuadong_1992/article/details/112443896
Recomendado
Clasificación