Galería de mapas mentales Operación y mantenimiento de Linux.
Este es un mapa mental sobre cómo aprender la operación y el mantenimiento de Linux del viejo, que incluye una introducción a la línea de comandos de Linux, los comandos de operación de archivos y directorios, el filtrado de archivos y los comandos de edición y procesamiento de contenido, etc.
Editado a las 2024-01-16 11:24:10,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Aprenda la operación y el mantenimiento de Linux del viejo
Capítulo 1 Introducción a la línea de comandos de Linux
Descripción general de la línea de comandos de Linux
Introducción a la línea de comandos de Linux
El signo # es el mensaje al final de la línea de comando después de iniciar sesión como superusuario root, y el signo $ es el mensaje al final de la línea de comando después de iniciar sesión como usuario normal.
Los superusuarios tienen todos los permisos para administrar el sistema. Los usuarios comunes tienen permisos relativamente limitados y solo pueden realizar operaciones como ver información básica del sistema y no pueden cambiar las configuraciones del sistema ni los servicios de administración.
Los caracteres delante de la línea de comando @ representan el usuario actualmente conectado (puede ser consultado por whoami), los caracteres después de @ son el nombre del host (puede ser consultado por el nombre del host) y la ubicación de ~ es la ruta del usuario actual en la ventana.
El símbolo del sistema de Linux está controlado por la variable de entorno PS1. establecer | grep PS1 PS1='[\u@\h\W]\$'
Comandos de apagado, reinicio y cierre de sesión de Linux
Comando de reinicio o apagado: apagado
apagado [OPCIÓN]... HORA [MENSAJE]
Tenga en cuenta que debe haber al menos un espacio entre el comando de apagado y las siguientes opciones.
Normalmente, el comando de apagado que ejecutamos es apagado-h ahora o apagado-r ahora.
Comandos de apagado y reinicio: detener/apagar/reiniciar
reiniciar [OPCIÓN]... detener [OPCIÓN]... apagado [OPCIÓN]...
Capítulo 2 Comandos de operación de archivos y directorios
pwd: muestra la ubicación actual
contraseña [opciones]
cd: cambiar directorio
cd [opciones] [directorio]
Al utilizar el comando cd, si utiliza la función de autocompletar de la tecla "Tab" del teclado, puede mejorar la velocidad y precisión de la entrada. La función de autocompletar de la tecla "Tab" también se aplica a otros comandos.
Para comprender el concepto de ruta, por ejemplo, una ruta relativa es una ruta que no comienza desde "/" (barra oblicua), sino que comienza desde el directorio actual o un directorio específico, como por ejemplo: data/, mnt/oldboy; La ruta absoluta es una ruta que comienza desde "/" "(barra oblicua) ruta que comienza desde la raíz, como por ejemplo: /data/, /mnt/oldboy.
Cuando necesite cambiar al directorio donde se ubicó por última vez el usuario actual, utilice "cd-" (tenga en cuenta el espacio); cuando necesite cambiar al directorio de inicio del usuario actual, utilice "cd~" (tenga en cuenta el espacio); ); cuando necesite cambiar a Al especificar la ruta al directorio de nivel superior del directorio actual, utilice "cd..." (tenga en cuenta el espacio).
árbol: muestra el contenido del directorio en una estructura de árbol
árbol [opciones] [directorio]
mkdir: crear directorio
mkdir [opciones] [directorio]
El comando mkdir puede crear varios directorios al mismo tiempo, en el formato mkdir dir1 dir2…
Cree directorios de forma recursiva con el parámetro -p (mkdir -p oldboy/test)
Agregue el parámetro -v para mostrar el proceso de creación del directorio. (mkdir -pv oldboy2/prueba)
Puede utilizar el parámetro -m al crear un directorio para establecer los permisos predeterminados para el directorio. (mkdir -m 333 dir2)
Cree varios directorios y subdirectorios de varios niveles al mismo tiempo. (mkdir -pv viejo/{dir1_1,dir1_2}/{dir2_1,dir2_2} )
toque: cree un archivo vacío o cambie el atributo de marca de tiempo del archivo
El comando táctil tiene dos funciones: una es crear un nuevo archivo vacío y la otra es cambiar el atributo de marca de tiempo de un archivo existente.
toque [opciones] [archivo]
Crear archivo (toque a.txt b.txt)
Cambiar el atributo de marca de tiempo de un archivo
touch -a oldboy.txt #<==-un parámetro cambia la hora del último acceso.
touch -m oldboy.txt #<==-m parámetro cambia la hora de la última modificación.
Especificar atributos de tiempo para crear/modificar archivos
touch -d 20201001 oldboy.txt #<==Especifique la modificación del archivo después de crearlo
touch -r a.txt oldboy.txt #<==Utilice el parámetro -r para hacer que el atributo de tiempo de oldboy.txt sea coherente con a.txt.
touch -t 201512312234.50 oldboy.txt #<==Use la opción -t para configurar el archivo en formato de hora 201512312234.50
ls: muestra el contenido y la información de atributos relacionados del directorio
ls [opciones] [<archivo o directorio>]
Utilice el parámetro -a para mostrar todos los archivos, especialmente los archivos ocultos
ls -a#<== Descripción: Agregar el parámetro -a mostrará el contenido que comienza con "." El primer punto que se muestra aquí representa el directorio actual, que es el directorio de prueba en sí, y los dos puntos representan el directorio superior del directorio actual, que aquí representa el directorio raíz. El conocimiento sobre un punto y dos puntos se explicará en detalle en el comando ln más adelante.
ls -A #<==Enumere todos los archivos, incluidos los archivos ocultos, pero excluyendo los directorios "." y ".."
Utilice el parámetro -l para mostrar información detallada.
ls -l #<==La columna de atributo de tiempo aquí muestra la hora de la última modificación del archivo de forma predeterminada. #<==Explicación: Este parámetro -l es el parámetro más utilizado, lo que significa enumerar el tipo de archivo, los permisos, el número de conexiones, el propietario (grupo) y la información de tiempo de creación y modificación en el directorio en formato largo. Es necesario dominar el significado de los atributos de cada columna aquí, y la información de estos atributos se analizará en detalle más adelante.
Parámetro --time-style=long-iso que muestra el atributo de tiempo completo.
ls -l --time-style=long-iso #<==Mostrar la hora en modo iso largo El resultado de este comando es excelente.
Los valores de parámetros opcionales de --time-style son los siguientes, como full-iso, long-iso, iso y locale. El valor predeterminado es la configuración regional.
En escenarios de producción, a menudo nos encontramos con el problema de la visualización inconsistente de archivos y directorios en el mismo directorio, por lo que debemos usar ls-l--time-style=long-iso para realizar ajustes. parámetros y es difícil de recordar, entonces se puede configurar una gestión de alias.
Cabe mencionar que al ejecutar comandos como ls-l, se muestra por defecto la hora de la última modificación del archivo (si es un archivo nuevo, es la hora de creación).
ls--full-time se utiliza para mostrar el tiempo completo, lo que equivale a ls-l--time-style=full-iso.
Ejecute el comando ls con parámetros que muestran el atributo de tiempo de acceso del contenido.
ls -l --time-style=long-iso --time=atime #<==Agregue el parámetro --time= atime para mostrar el tiempo de acceso.
Los comandos relacionados incluyen ls-l--time-style=long-iso--time=ctime, que se utiliza para mostrar la hora en que cambian los archivos.
El conocimiento sobre la columna de tiempo del archivo y mtime, atime y ctime se explicó anteriormente al presentar el comando táctil.
Ejecute el comando ls con el parámetro -F (esto es muy similar al -F del comando de árbol).
ls -F#<==Explicación: Con -F agregado, podemos ver claramente que se agrega una barra diagonal / al final de todos los directorios. ¿Qué utilidad tiene tal función para el trabajo? Por supuesto que es útil. Por ejemplo: si queremos filtrar todos los directorios, entonces sólo necesitamos filtrar los que tienen barras.
Utilice el parámetro -d para mostrar solo información sobre el directorio en sí.
ls -ld dir1 #<==Agregue el parámetro -d para obtener lo que desea.
Utilice el parámetro -R para ver directorios de forma recursiva.
ls -R dir1 #<== Similar pero no tan fácil de usar como el árbol.
Conocimiento sobre los alias del comando ls y la configuración de alias de ls.
alias lst='ls -l --time-style=long-iso' #<==Configurar alias de comando.
Encuentra archivos actualizados recientemente.
ls -lrt /etc/ #<== -t está ordenado por tiempo, -r está en orden inverso, es decir, ordenado por tiempo en orden inverso.
Haga una copia de seguridad de la base de datos del escenario de producción y obtenga una lista de nombres de bases de datos.
ls -F /usr/local/mysql/data|egrep "/"|awk -F "/" '{print $1}' >/root/dbfilename.list#<== Consejo: En este script de copia de seguridad de la tabla de base de datos, se utiliza el comando combinado de ls -F más egrep para filtrar el nombre del directorio de la base de datos.
Eliminar la basura que ocupa los nodos de inodo en escenarios de producción.
ls|xargs rm -f #<==Si hay demasiados archivos, no se pueden eliminar directamente con rm -fr *.
Conocimiento ampliado del comando ls-F.
Agregue "*" para representar un archivo ordinario ejecutable
Agregue "/" para indicar el directorio
Agregue "=" para indicar enchufes
Agregue "|" para indicar FIFO
Agregue "@" para indicar un enlace simbólico
Interpretación de los atributos del contenido de salida del comando ls
ls -lhi #<== El parámetro -l se ha explicado en detalle anteriormente. La función del parámetro -h es mostrar el tamaño del archivo de una manera legible por humanos. Puede conocer fácilmente el tamaño del archivo. "4.0K" a continuación Tamaño, el parámetro -i se utiliza para mostrar el valor de inodo del archivo.
cp: copiar archivos o directorios
cp [opciones] [archivo fuente] [archivo destino]
cp -a file1.txt file5.txt #<==Utilice el parámetro -a para copiar file1.txt a file5.txt. Las propiedades copiadas con el parámetro -a no se modifican.
Cuando se utiliza el parámetro -a para copiar, el atributo de tiempo del archivo no cambia. La función del parámetro -a incluye la función del parámetro -p para mantener los atributos del archivo.
cp -i file1.txt file5.txt #<== Utilice el parámetro -i para copiar el archivo. Se le preguntará si desea sobrescribir el archivo.
El sistema CentOS establece un alias para el comando cp de forma predeterminada, es decir, se agrega el parámetro -i. Sin embargo, al ejecutar cp en un script de shell, si no hay un parámetro -i, no preguntará si desea sobrescribir. Esto se debe a que las variables de entorno al ejecutar la línea de comandos y los scripts de shell son diferentes.
cp -r dir1 dir2/ #<==Si usa el parámetro -r, copie el directorio de forma recursiva y copie todos los subdirectorios y carpetas bajo el directorio.
cp /etc/ssh/sshd_config{,.ori}#<==El principio de este método es que la operación de expansión de llaves de bash /etc/ssh/sshd_config{,.ori} se expande a /etc/ssh/sshd_config / etc. /ssh/sshd_config.ori y luego páselo al comando cp.
mv: mover o cambiar el nombre de archivos
mv [opciones] [archivo fuente] [archivo destino]
mv file6.txt file7.txt #<==Si file7.txt no existe, cambie el nombre de file6.txt a file7.txt.
mv file5.txt file7.txt #<==Si file7.txt existe, sobrescriba file5.txt con file7.txt.
\mv file4.txt file7.txt #<==Utilice \ para proteger el alias del sistema y no se le preguntará si desea sobrescribir.
mv file7.txt dir1/ #<==dir1 es un directorio y existe, luego mueva file7.txt a dir1. Si dir1 no existe, cámbiele el nombre a un archivo normal en dir1.
mv -t dir1/ file1.txt file2.txt file3.txt file7.txt #<== Utilice el parámetro -t para intercambiar el origen y el destino, -t seguido del directorio y, finalmente, el archivo que se va a mover.
rm: eliminar un archivo o directorio
rm [opciones] [<archivo o directorio>]
rm -f file3.txt #<==-f parámetro fuerza la eliminación sin preguntar.
rm -r dir1 #<==Utilice -r para eliminar de forma recursiva, pero aparecerá un mensaje de confirmación. Puede utilizar -f para forzarlo.
Experiencia práctica sobre la eliminación.
Utilice mv en lugar de rm. No lo elimine rápidamente, muévalo primero a la papelera de reciclaje/tmp.
Asegúrese de hacer una copia de seguridad antes de eliminarla, preferiblemente una copia de seguridad entre máquinas. Puede restaurarla en cualquier momento si hay un problema.
Si debe eliminarlo, utilice buscar en lugar de rm, incluida la limpieza de archivos mediante tareas programadas del sistema.
Si debe eliminarlo mediante el comando rm, primero cambie el directorio y luego elimínelo. Si puede prescindir de comodines, no los utilice. Está prohibido utilizar "nombre de archivo rm-rf" para eliminar archivos, porque no aparecerá ningún mensaje cuando "rm-rf" elimine accidentalmente un directorio, lo cual es muy peligroso. Utilice "nombre de archivo rm-f" como máximo y se recomienda "nombre de archivo rm".
rmdir: eliminar directorios vacíos
rmdir [opciones] [directorio]
El comando rmdir se utiliza para eliminar directorios vacíos. Cuando el directorio no está vacío, el comando no funciona.
rmdir -p -v dir1/a/b/ #<== La eliminación recursiva aún requiere enumerar todas las estructuras de directorios.
ln: enlace duro y enlace suave
ln [opciones] [archivo o directorio de origen] [archivo o directorio de destino]
enlace duro
En el sistema de archivos de Linux, es normal y se permite que varios nombres de archivos apunten al mismo nodo de índice (inodo). El archivo en este caso se llama enlace físico.
Varios archivos con el mismo número de nodo de inodo son archivos de enlace físico entre sí.
Elimine el archivo de enlace físico o el archivo fuente, pero la entidad del archivo no se elimina.
La entidad del archivo se eliminará solo si se eliminan el archivo fuente y todos los archivos de enlace físico correspondientes del archivo fuente.
Cuando se eliminan todos los archivos de enlace físico y los archivos de origen, el espacio de este archivo se ocupará cuando se almacenen nuevos datos, o el sistema también reciclará los datos eliminados cuando se verifique el fsck del disco.
Un archivo de enlace físico es otra entrada al archivo (equivalente a la puerta principal y la puerta trasera del supermercado).
Puede evitar que archivos importantes se eliminen accidentalmente estableciendo archivos de enlace físico en archivos.
Ejecute el comando "en el archivo de enlace físico del archivo fuente" para completar la creación del enlace físico.
Los archivos de enlace físico se pueden eliminar usando el comando rm.
Para archivos estáticos (archivos que no están siendo llamados por un proceso), cuando el número de enlaces físicos correspondientes es 0 (i_link), el archivo se eliminará. El método de visualización de i_link es ls-lih y la tercera columna del resultado de la visualización es el número de enlaces físicos.
Directorio, no se pueden crear enlaces duros
Hay un enlace físico "." debajo de cada directorio y un enlace físico ".." correspondiente al directorio de nivel superior.
Cree un subdirectorio en el directorio principal y aumente la cantidad de enlaces en el directorio principal en 1 (los subdirectorios tienen ".." para apuntar al directorio principal). Pero cuando se crea un archivo en el directorio principal, la cantidad de enlaces en el directorio principal no aumentará.
enlace suave
Los enlaces suaves son similares a los atajos de Windows (puede ver sus direcciones mediante el siguiente comando readlink).
Un enlace suave es similar a un archivo de texto, que almacena la ruta del archivo fuente y apunta a la entidad del archivo fuente.
Incluso si se elimina el archivo fuente, el archivo de enlace suave todavía existe, pero no se puede acceder al contenido de la ruta del archivo fuente señalado.
Cuando falla, normalmente parpadeará con letras blancas y un fondo rojo.
Ejecute el comando "archivo de enlace suave del archivo fuente ln-s" para completar la creación del enlace suave (el nombre del archivo del enlace suave no puede existir de antemano).
Los enlaces blandos y los archivos fuente son diferentes tipos de archivos, diferentes archivos y tienen diferentes números de inodo.
Para eliminar archivos de enlace suave, use el comando rm.
readlink: ver el contenido de archivos de enlace simbólico
enlace de lectura [opciones] [archivo]
readlink /usr/bin/awk #<==Puede ver el contenido real de este archivo de enlace suave.
readlink -f /usr/bin/awk #<==El uso del parámetro -f mostrará el último archivo de enlace no simbólico.
buscar: buscar archivos en un directorio
buscar [opciones] [ruta] [declaración de operación]
find . -atime -2 #<== "." representa el directorio actual. Utilice la opción atime para buscar archivos a los que se accedió dentro de dos días.
encontrar descripción del tiempo de búsqueda
-4 indica que el archivo se modificó dentro de 4 días a partir de ahora.
4 significa que el archivo se modificó hace 4 días.
4 significa dentro de 4 días.
find /var/log/ -mtime 5 -name '*.log' #<==Busca archivos que terminen en ".log" hace 5 días en el directorio /var/log/.
find ! -type d #<== "!" significa negación, busque archivos que no sean directorios, preste atención a la posición del signo de exclamación.
find /data/ -perm 755 #<==Buscar archivos según los permisos del archivo, 755 son permisos
find . -size 1000c #<==Busca archivos con un tamaño de archivo superior a 1000 bytes en el directorio actual.
find /data -path "/data/dir3" -prune -o -print #<==El parámetro -path especifica el estilo de la ruta y el parámetro -prune se utiliza para excluir el directorio especificado.
find /data \( -path /data/dir2 -o -path /data/dir3 \) -prune -o -print Utilice paréntesis para combinar varias expresiones, pero los paréntesis tienen un significado especial en la línea de comando, por lo que "\" es usado para escapar aquí, lo que le dice a bash que no analice el siguiente carácter "()", sino que lo deje al comando de búsqueda para su procesamiento. Además, hay un espacio entre el corchete izquierdo y la ruta en "\(-path", y hay un espacio entre dir3 y el corchete derecho en "dir3\)".
buscar. -usuario nadie #<==Buscar archivos cuyo usuario no sea nadie.
find . -nouser#<==Buscar archivos que no correspondan a ningún usuario.
buscar. -grupo nadie #<==Esta función es similar al ejemplo anterior, aquí se refiere a buscar archivos con el grupo de usuarios nadie.
find . -nogroup#<==Buscar archivos que no correspondan a ningún grupo de usuarios.
find . -newer file1.txt ! -newer file2.txt#<==Buscar archivos cuya hora de cambio sea posterior a file1.txt pero anterior a file2.txt.
find . -max Depth 1 -type d #<==-max Depth 1 busca el directorio de primer nivel, similar al árbol -L 1.
find . -max Depth 1 -type d ! -name "." #<==Utilice el signo de exclamación (!) para negar y no generar líneas cuyos nombres sean puntos.
find . -max Depth 1 -type d ! -name "." -o -name "oldboy"#<==-o significa o mostrar todos los directorios o archivos llamados oldboy excepto "."
find . -max Depth 1 -type d ! -name "." -a -name "ext"#<==-a significa y busca directorios que no sean puntos y cuyo nombre sea ext. Directorio llamado ext.
find . -type f -exec ls -l {} \;#<==El comando de búsqueda busca todos los archivos comunes en el directorio actual y usa el comando ls -l en la opción -exec para enumerarlos.
find . -type f -mtime 14 -exec rm {} \; #<==el comando find busca archivos en el directorio que se modificaron hace más de 14 días y utiliza el comando rm en la opción -exec para eliminarlos.
find /var/log/ -name "*.log" -mtime 5 -ok rm {} \;#<==El comando de búsqueda encuentra todos los nombres de archivos que terminan en ".log" y la hora de cambio en /var/log / archivos del directorio que tengan más de 5 días y elimínelos. Hasta ahora, la función de -ok es la misma que la de -exec, pero -ok también tiene la función de avisar antes de eliminarlos. Presione la tecla y para eliminar el archivo y presione la tecla n para no eliminar el archivo, lo que será más seguro.
find . -type f|xargs ls -l #<== Pase los archivos ordinarios encontrados por el comando find al comando ls para su ejecución a través del símbolo de canalización y el comando xargs. Preste atención al formato del comando. Aquí se utiliza el símbolo de canalización "|". xargs es un comando y un filtro para pasar parámetros a otros comandos. Puede leer el capítulo sobre el comando xargs antes de leer esta parte.
find . -name "*.txt"|xargs -i mv {} dir2/ #<==Utilice el parámetro -i de xargs para que {} represente los archivos encontrados por find. Coloque estos archivos como parámetros después del comando mv como. El archivo fuente que se va a mover se mueve al directorio dir2. Para obtener más métodos, consulte la Sección 2.13.3 "Ampliar conocimientos: varios métodos para mover archivos encontrados a ubicaciones específicas".
find dir2 -name "file*"|xargs -p rm -f#<== Nota: Al usar la opción -p del comando xargs se le pedirá que confirme si desea ejecutar el siguiente comando.
xargs: convierte la entrada estándar en argumentos de línea de comando
xargs [opciones] El comando xargs es un filtro que pasa parámetros de línea de comando a otros comandos. Puede convertir los datos pasados por la tubería o la entrada estándar en los parámetros de línea de comando del comando que sigue al comando xargs.
xargs < test.txt#<== convierte todos los números en una línea. Tenga en cuenta que xargs no puede conectarse directamente a los archivos y debe combinarse con el carácter de redirección de entrada "<".
xargs -n 3 < test.txt#<== Genera hasta 3 por línea.
echo splitXsplitXsplitXsplitX|xargs -d X -n 2 #<==Utilice X como delimitador y genere hasta 2 por línea.
find . -name "*.log"|xargs -i mv {} dir1/ #<==Usar la opción -i de xargs permite que {} reemplace el archivo o directorio encontrado por el comando de búsqueda anterior.
find . -name "file*"|xargs -I [] cp [] dir2 La opción -I puede especificar otros caracteres en lugar de {}, como [].
find . -type f -name "*.txt" -print0|xargs -0 rm -f #<==xargs piensa erróneamente que su delimitador es un espacio. La solución es separar la salida con el carácter nulo y usar -. 0 opción.
cambiar nombre: cambiar el nombre del archivo
cambiar el nombre de al archivo
cambiar el nombre de "_finished" "" * #<==Reemplazar _finished de todos los archivos con vacío.
cambiar el nombre de .jpg .oldboy *.jpg #<==Reemplace .jpg en todos los archivos con .oldboy.
nombre base: muestra el nombre del archivo o el nombre del directorio
nombre base [<archivo o directorio>] [sufijo]
nombre base /data/dir1/file1.txt #<==Elimine la parte de la ruta, es decir, solo se muestra el nombre del archivo.
dirname: muestra la ruta del archivo o directorio
nombredir [<archivo o directorio>
dirname /data/dir1/file1.txt #<==Solo muestra la ruta donde se encuentra el archivo. /datos/dir1
chattr: cambia los atributos extendidos de un archivo
chattr [opciones] [modo] [<archivo o directorio>]
chattr una prueba #<== aAgregar atributos adicionales.
chattr i file1.txt #<==Utilice el parámetro i para bloquear el archivo.
lsattr: Ver atributos de extensión de archivo
lsattr [opciones] [<archivo o directorio>]
lsattr file1.txt #<==Ver los atributos extendidos predeterminados del archivo.
lsattr -d dir2 #<==Utilice la opción -d para ver los atributos extendidos del directorio.
archivo: muestra el tipo de archivo
archivo [opciones] [<archivo o directorio>]
archivo oldboy oldboy: directorio #<==oldboy es un directorio.
md5sum: Calcula y verifica el valor MD5 del archivo
md5sum [opciones] [archivo]
md5sum oldboy.txt #<==El comando md5sum puede conectar directamente el archivo para obtener el valor MD5 del archivo.
chown: cambia el usuario y el grupo de usuarios de un archivo o directorio
chown [opciones] [usuario:grupo] [<archivo o directorio>]
El ":" se puede sustituir por ".".
Los nombres de usuario y grupo que se van a autorizar deben existir realmente en el sistema Linux.
chown oldboy file1.txt #<==Autorizar al usuario oldboy, el usuario oldboy debe crearse con anticipación.
chown .oldboy file1.txt #<==Autorice el grupo de usuarios oldboy. Tenga cuidado de no perderse el punto. El punto aquí también se puede reemplazar con dos puntos.
raíz chown:archivo raíz1.txt #<==Puedes usar ":" o ".".
chown -R oldboy.oldboy dir2/ #<==Utilice el parámetro -R para autorizar de forma recursiva.
chmod: cambia los permisos de archivos o directorios
El comando chmod es un comando que se utiliza para cambiar los permisos de archivos o directorios, pero solo el propietario del archivo y el superusuario root pueden ejecutar este comando.
chmod [opciones] [modo] [<archivo o directorio>]
chmod a= file1.txt #<==Establezca todos los (a) permisos en vacío (sin caracteres después del signo igual).
chmod u x file1.txt #<==Establece el permiso de ejecución del propietario del archivo de usuario.
chmod g w file1.txt #<==Establezca los permisos de escritura del grupo de usuarios del archivo grupal.
chmod o r file1.txt #<==Establezca otros permisos de lectura para otros usuarios.
chmod ug r,o-r file1.txt #<==Se pueden utilizar varias operaciones de permiso juntas, separadas por comas. ug r es la abreviatura de u r y g r.
chmod u=rwx,g=rx,o=x file1.txt #<== "=" revoca todos los permisos originales y luego otorga los permisos otorgados.
chmod 000 file1.txt #<==Esto tiene el mismo efecto que el ejemplo anterior chmod a= file1.txt.
chmod 753 file1.txt #<==Todos deben dominar la conversión de permisos numéricos y permisos de letras.
chmod -R 777 dir2/ #<==Otorgar permisos de forma recursiva al directorio de archivos 777.
chgrp: cambiar el grupo de usuarios del archivo
chgrp [opciones] [grupo de usuarios] [<archivo o directorio>]
chgrp oldboy install.log #<==El grupo de usuarios que modifica el archivo install.log es oldboy.
chgrp -R root dir1/ #<==Parámetro -R autorización recursiva.
umask: muestra o establece una máscara de permiso
umask [opciones] [modo]
Capítulo 3 Comandos de procesamiento de filtrado de archivos y edición de contenido
cat: fusionar archivos o ver el contenido del archivo
gato [opciones] [archivo]
cat >test.txt<<EOF EOF #<== Tienes que presionar Enter para finalizar. Además, EOF debe aparecer en pares, pero también se puede reemplazar con otras etiquetas emparejadas. Por ejemplo: etiqueta de carácter oldboy, de forma predeterminada, el EOF final debe escribirse en mayúsculas.
cat -n test.txt#<==Nota: Como se puede ver en el ejemplo anterior, la opción -n es numerar el contenido del archivo según la línea e imprimir el resultado, incluidas las líneas en blanco.
cat -b test.txt#<== Nota: Como se puede ver en el ejemplo anterior, la opción -b es similar a la opción -n, pero la opción -b no numera las líneas vacías.
cat -E test.txt#<== Nota: Como se puede ver en el ejemplo anterior, la opción -E muestra el símbolo $ del identificador final oculto al final del archivo. Incluso si es una línea en blanco, hay un identificador final al final, por lo que todos deben prestar atención a esto.
cat -s test.txt#<==Originalmente había tres líneas en blanco aquí. Ahora, debido a la opción -s, se convierte en una línea en blanco.
gato >test3.txt
Las redirecciones Cat y ">" dirigen la salida estándar a un archivo, que es una forma especial de editar archivos.
Para finalizar la edición, puede usar la tecla de método abreviado Ctrl d o Ctrl c para salir, pero primero debe ejecutar Enter y colocar el cursor en una nueva línea sin ingresar.
Al escribir de esta manera, encontrará que si comete un error y simplemente presiona la tecla Retroceso, no podrá eliminarlo. Debe mantener presionada la "tecla Ctrl Retroceso" para eliminarlo.
Esta operación es un método de edición especial, mencionado como un punto de conocimiento extendido, y rara vez se utiliza en entornos de producción reales.
cat web01_access_20130522.log web02_access_20130522.log > web_access_20130522.log Utilice cat para conectar varios archivos para fusionar registros de clústeres web.
tac: muestra el contenido del archivo al revés
tac [opciones] [archivo]
más: Mostrar el contenido del archivo en páginas
más [opciones] [archivo]
más /etc/services #<==No acepta ningún parámetro y muestra el contenido del archivo en pantalla completa.
more -5 /etc/services #<==En este momento, el contenido del archivo no se muestra en la pantalla completa, solo se muestran 5 líneas de contenido.
más 888 /etc/services #<==En este momento, el contenido del archivo se muestra directamente desde la línea 888.
ls /etc/|more -10 #<==Todos deben saber que hay muchos directorios de archivos en /etc. La vista directa de ls mostrará demasiado contenido, por lo que puede usar el comando more para mostrarlo en páginas.
menos: muestra el contenido del archivo en páginas
menos [opciones] [archivo]
less /etc/services #<==No acepta ningún parámetro y muestra el contenido del archivo en pantalla completa.
less -N /etc/services #<==Hay un número de línea delante de cada línea.
ls /etc/|less #<==Ver el contenido de los archivos del directorio etc en páginas.
head: muestra el encabezado del contenido del archivo
encabezado [opciones] [archivo]
head /etc/passwd #<==Cuando el comando head no recibe ningún parámetro, las primeras 10 líneas del archivo se mostrarán de forma predeterminada.
head -n 5 /etc/passwd #<==El primer formato especifica las primeras 5 líneas que se mostrarán.
head -5 /etc/passwd #<==El segundo formato también especifica las primeras 5 líneas que se mostrarán, pero esta forma de escritura es más simplificada.
head -c 10 /etc/passwd #<==Lee los primeros 10 bytes del archivo. El método de escritura anterior es en unidades de fila, mientras que -c es en bytes. Esta característica no se usa comúnmente.
head -n -21 /etc/passwd #<==El número aquí es un valor negativo y este método de escritura no se usa comúnmente.
tail: muestra la cola del contenido del archivo
cola [opciones] [archivo]
tail /etc/passwd #<==El comando tail no toma parámetros y muestra las últimas 10 líneas de forma predeterminada.
tail -n 5 /etc/passwd #<==Mostrar las últimas 5 líneas de texto
tail -5 /etc/passwd #<==Se muestra la segunda forma de escribir las últimas 5 líneas del texto. Esta forma de escritura es más sencilla.
tail -n 15 /etc/passwd #<==Muestra el archivo a partir de la línea 15. Uso extendido, pero no de uso común.
tail -f /application/nginx/logs/access.log #<==tail -f monitorea los cambios de archivos en tiempo real. Un escenario común en producción es monitorear archivos de registro.
tail -f oldboy #<==Utilice el parámetro -f Cuando el archivo no existe, se informará un error y el comando se cerrará.
tail -F oldboy #<==Utilice el parámetro -F Cuando el archivo no existe, se devolverá un error, pero aún esperará a que se genere el archivo y no saldrá del comando.
tailf: archivos de registro de seguimiento
tailf [opciones] [archivo]
El comando tailf es casi equivalente a tail-f. La diferencia con tail-f es que si el archivo no crece, no accederá al archivo del disco y no cambiará el tiempo de acceso del archivo.
tailf /application/nginx/logs/access.log #<== puede verificar fácilmente el archivo de registro cambiante.
cortar: extrae un fragmento de texto del texto y lo genera
cortar [opción] [archivo]
cut -b 3 oldboy.txt #<==Solo genera el tercer byte.
cut -b 3-5,10 oldboy.txt #<==-b admite la escritura en forma de 3-5, y varias posiciones están separadas por comas.
cut -b -3 oldboy.txt #<==-3 significa desde el primer byte hasta el tercer byte.
cut -b 3- oldboy.txt #<==3- significa desde el tercer byte hasta el final de la línea.
cut -b -3,3- oldboy.txt #<==Esta forma de escribir generará la línea completa y no habrá dos letras superpuestas consecutivas a.
cut -b 2-10 oldboy.txt#<==Nota: Al usar la opción -c se utilizarán caracteres como unidad y la salida será normal. La opción -b solo calculará en bytes (8 bits binarios) y la salida será confusa. Cuando encuentre caracteres de varios bytes, puede usar la opción -n -n se usa para indicarle a cut que no divida caracteres de varios bytes.
cut -d : -f 1 /etc/passwd #<==La opción -d especifica ":" como separador y la opción -f especifica la primera área que se mostrará.
dividir: dividir archivo
dividir [opciones] [archivo de entrada] [prefijo del nombre del archivo de salida]
split -l 10 inittab new_#<== divide cada 10 líneas y el nombre del archivo dividido comienza con new_.
split -l 10 -a 3 inittab new2_#<==El parámetro -a especifica la longitud del sufijo.
split -l 10 -d inittab num_#<== El parámetro -d usa un sufijo numérico.
split -b 500K -d lvm lvm_#<==Divida el archivo cada 500 KB.
pegar: fusionar archivos
pegar [opciones] [archivo]
pegar test1 test2 #<==2 archivos se fusionan línea por línea.
pegar -d: prueba1 prueba2 #<==Utilice ":" como separador.
pegar -s prueba1 #<==Utilice la opción -s para convertir el contenido de 1 columna en 1 fila.
pegar -s prueba1 prueba2 #<==Cada archivo ocupa una línea.
ordenar: clasificación de texto
ordenar [opciones] [archivo]
sort oldboy.txt #<== no recibe ningún parámetro, convertirá el contenido del archivo en código ASCII y luego lo comparará. Debido a que en el código ASCII el orden de los números es el mismo que nuestra percepción, el resultado es el siguiente.
sort -n oldboy.txt #<==Utilice la opción -n para ordenar números directamente de pequeño a grande.
sort -nr oldboy.txt #<== Similar a esta función, ya la hemos aprendido en el comando ls. La opción -r significa inversa. El comando de clasificación ordena de forma predeterminada en orden ascendente (de pequeño a grande). Si usa la opción -r, cambia a orden descendente (de grande a pequeño).
sort -u oldboy.txt #<==Utilice la opción -u para eliminar líneas duplicadas del archivo. Más adelante aprenderá un comando uniq, que también puede eliminar líneas duplicadas.
sort -t " " -k2 oldboy1.txt #<== La opción -t especifica un espacio como separador, y la opción -k seguida de 2 significa ordenar según la segunda columna.
unirse: fusionar dos archivos por los mismos campos
unirse [opciones] [archivo1] [archivo2]
join a.txt b.txt#<==Nota: El requisito para usar join para fusionar archivos es que los dos archivos deben estar ordenados.
uniq: eliminar filas duplicadas
uniq [opciones] [archivo o entrada estándar]
uniq oldboy.txt #<==Eliminar líneas duplicadas sin tomar ningún parámetro.
uniq -c oldboy.txt #<==El parámetro -c muestra el número de apariciones de la línea correspondiente.
sort -n oldboy.txt|uniq -c#<==uniq solo puede deduplicar líneas duplicadas adyacentes, por lo que debe usar sort para procesar el archivo primero y luego deduplicar.
wc: cuenta el número de líneas, palabras o bytes del archivo
wc [opciones] [archivo]
wc/etc/inittab 26 149 884 /etc/inittab #<==Si no acepta ningún parámetro, ¿qué significa el número mostrado?
wc -l /etc/inittab #<==Número de líneas.
wc -m /etc/inittab #<==Número de caracteres.
wc -w /etc/inittab #<==Número de palabras.
wc -L /etc/inittab #<==La longitud de la línea más larga.
iconv: el formato de codificación del archivo convertido
iconv [opciones] [codificación original] [nueva codificación] [archivo de entrada]
iconv -f gb2312 -t utf-8 GB2312.txt #<== Utilice el parámetro -f para especificar la codificación original del archivo como gb2312 y utilice el parámetro -t para especificar la codificación que se convertirá a utf-8.
dos2unix: convierte archivos de formato DOS a formato UNIX
dos2unix [archivo]
diff: compara las diferencias entre dos archivos
diferencia [opciones] [archivo1] [archivo2]
prueba de diferencia1 prueba2 1,3d0 #<==Eliminar la línea 1 a la línea 3 del archivo 1, eliminar la línea 0 del archivo 2, es decir, no eliminar.
6a4,5 #<==Agregue las siguientes 2 líneas de texto a la línea 6 del archivo 1, es decir, las líneas 4 y 5 del texto 2.
El formato de visualización predeterminado de diff tiene los siguientes tres mensajes. ·a-añadir ·c-cambio ·d-eliminar
diff -y test1 test2 #<==Utilice el parámetro -y para generar resultados uno al lado del otro.
diff -y -W 30 test1 test2 #<==Si cree que lo anterior es demasiado ancho, puede usar el parámetro -W para especificar el ancho.
diff /etc/rc3.d/ /etc/rc6.d/ #<==diff no solo puede comparar las diferencias en el contenido del archivo, sino también comparar las diferencias en los archivos en el directorio.
vimdiff: herramienta de comparación visual
vimdiff [opciones] [archivo1] [archivo2]
Vimdiff llama a vim para abrir archivos. Puede abrir 2, 3 o 4 archivos al mismo tiempo, hasta 4 archivos, y usará diferentes colores para distinguir las diferencias entre los archivos.
vimdiff prueba1 prueba2 #<==Para salir de la interfaz vimdiff, debe ejecutar la operación de salir de vim dos veces seguidas (: q). El comando vim se explicará en detalle más adelante. Debido a que el comando vimdiff llama a la función vim, la operación de salida es la misma que la de vim.
rev: Invertir el contenido del archivo de salida
rev [archivo]
echo {1..10}|rev #<==Los caracteres de arriba están escritos al revés.
rev oldboy.txt #<==Puedes compararlo con el comando tac que aprendiste antes.
tr: reemplazar o eliminar caracteres
tr [opciones] [char1] [char2]
El comando tr reemplaza, reduce o elimina caracteres de la entrada estándar y escribe los resultados en la salida estándar.
tr 'abc' 'xyz' < oldboy.txt #<==El comando tr para conectar archivos es especial y requiere el símbolo de redirección "<".
tr '[a-z]' '[A-Z]' <oldboy.txt #<==Convertir minúsculas a mayúsculas.
tr '[0-9]' '[a-j]' < oldboy.txt #<==Reemplace el número 0 con a, reemplace 1 con b...correspondencia uno a uno.
tr -d 'oldboy'<oldboy.txt #<==Utilice el parámetro -d para eliminar caracteres.
tr -d ' \t' < oldboy.txt #<== Utilice el parámetro -d para eliminar todos los caracteres de nueva línea y tabulación. Todas las líneas se convierten en una sola línea y las letras están conectadas entre sí.
echo 'oooolllddbbboyyyyy' |tr -s oldboy #<==Utilice el parámetro -s para comprimir caracteres consecutivos en uno.
tr '0-9' '*' < oldboy.txt #<==Reemplace todos los números con *.
tr -c '0-9' '*' < oldboy.txt #<==Use el parámetro -c, excepto los números, otros caracteres, incluidas las nuevas líneas, se reemplazarán con *.
od: Mostrar archivos en diferentes bases
od [opciones] [archivo]
Tee: orientación múltiple
camiseta [opciones] [archivo]
ls|tee ls.txt #<==el comando ls toma el control del canal y el comando tee, muestra el resultado de ls en la pantalla y escribe el resultado en ls.txt.
ls|tee -a ls.txt #<==Utilice el parámetro -a para agregar contenido al archivo sin borrar el contenido existente en el archivo.
vi/vim: editor de texto plano
vim [opciones] [archivo]
Tres modos de vim
Modo normal
modo de edición
Las operaciones de entrada de edición no se pueden realizar en el modo normal. Solo puede ingresar al modo de edición presionando letras como "i, I, o, O, a, A, r, R, s, S" (de las cuales "I" es la. (más comúnmente utilizado) Realizar operaciones de edición como ingresar texto. Una característica importante para verificar si el archivo está en modo de edición es que debe haber una marca de inserción "--INSERT--" o "--INSERT--" en la esquina inferior izquierda de la ventana.
modo comando
En el modo normal, cuando ingresa ":" o "/" o "?", el cursor ubicará automáticamente esa línea. En este modo, puede guardar, salir, buscar, reemplazar, mostrar números de línea y otras operaciones relacionadas.
Resumen de cómo abrir archivos en vim
Archivo vim: abre/crea un nuevo archivo, coloca el cursor al principio de la línea 1 y archivo es cualquier nombre de archivo.
Archivo vim n: abra el archivo, coloque el cursor al comienzo de la enésima línea, n es un número natural.
Archivo vim: abra el archivo y coloque el cursor al principio de la última línea.
archivo vim/patrón: coloque el cursor en la primera cadena que coincida con el patrón, y el patrón es cualquier cadena.
Capítulo 12 Comandos integrados de uso común en sistemas Linux
Ejemplos de comandos integrados de Linux de uso común
ayudaVer ayuda de comando incorporada
ayuda [opciones] [comando integrado]
ayuda #<==Utilice el comando de ayuda para ver todos los comandos integrados de Linux.
ayuda ayuda #<== El formato "comando integrado de ayuda" le permite ver la ayuda para los comandos integrados, y la ayuda en sí también es un comando integrado.
help cd #<==Ver la documentación de ayuda para el comando cd.
help -d cd #<==Envíe una breve descripción del comando integrado.
ayuda -m cd #<==Mostrar en formato de ayuda manual.
help -s cd #<==Solo genera la sintaxis del comando.
Marcador de posición":"
if [ $i -eq 1 ] #<==Expresión condicional. entonces : #<==Si se usa la declaración de juicio if en el script de Shell, generalmente se realizarán ciertas operaciones después de que el juicio sea exitoso, pero a veces no se sabe qué operaciones realizar o ciertas operaciones no es necesario realizarlas. Sin embargo, debido al formato de sintaxis fijo de la declaración if, tengo que escribir un comando para ocupar el espacio, porque si esta línea no tiene contenido, se informará un error de sintaxis. En este momento, se mostrará el marcador de posición ":". usado, pero no te preocupes, este comando no tendrá ningún impacto en tu script de shell, es un poco como el campo pass en otros lenguajes de programación. demás eco "Hola mundo" fi
"." y fuente
"." y fuente se utilizan a menudo para cargar o ejecutar scripts de Shell, pero son diferentes del método convencional de ejecutar scripts de Shell. Echemos un vistazo a la comparación a continuación.
·El primer método, bash script-name o sh script-name, es un método que se utiliza a menudo cuando el archivo de script en sí no tiene permisos ejecutables (es decir, el bit x del atributo de permiso del archivo es -). El intérprete no se especifica al principio del archivo de secuencia de comandos. También es necesario cuando es necesario.
·El segundo método es nombre de script de origen o .nombre de script. Este método generalmente usa fuente o "." (punto) para leer o cargar el archivo de script de Shell especificado (como san.sh) y luego, en secuencia, ejecutar. todas las declaraciones en el archivo de script de Shell especificado san.sh. Estas declaraciones se ejecutarán en el proceso padre.sh del script de Shell principal actual (varios otros modos iniciarán un nuevo proceso para ejecutar el script secundario). Por lo tanto, el uso de fuente o "." puede pasar el valor de la variable o el valor de retorno de una función en el script san.sh al script de Shell padre actual, padre.sh, para su uso.
Prueba condicional "[" y prueba
·El formato de sintaxis de la prueba condicional es: prueba<expresión de prueba> ·El formato de sintaxis de [] prueba condicional es: [<expresión de prueba>]
Debe haber espacios en ambos extremos de los corchetes. [] es equivalente a prueba, es decir, todas las opciones de juicio de prueba se pueden usar directamente en [], pero se recomienda usar [].
test -f file && echo true || echo false #<== Es verdadero si el archivo existe y es un archivo normal. Debido a que el archivo no existe, se genera false.
[ -f /tmp/oldboy.txt ] && echo 1 || echo 0 #<== Verdadero si el archivo /tmp/oldboy.txt existe y es un archivo normal, debido a que el archivo no existe, se genera 0.
Alias de comando alias y unalias
alias [alias de comando]=[declaración de comando] unalias [alias de comando]
alias #<==Sin ningún parámetro, se muestran todos los alias de comando.
alias rm='echo "No usar rm."' #<==Defina un nombre de alias rm para la instrucción de comando echo "No usar rm", y la instrucción de comando entre comillas simples debe ser ejecutable.
alias rm #<==Consulta la declaración de comando señalada por rm.
alias eth0='cat /etc/sysconfig/network-scripts/ifcfg-eth0' #<==Defina el alias eth0.
·Agregue algunos parámetros de protección a comandos peligrosos para evitar errores humanos, como el alias de rm. ·Convierta muchas cadenas o comandos complejos en una cadena o comando simple, como el alias de eth0.
unalias eth0 #<==Eliminar alias usando unalias
Comandos relacionados con tareas en segundo plano bg/fg/jobs
El comando bg se usa para transferir las tareas de ejecución en primer plano al fondo, o ejecutar las tareas suspendidas en segundo plano; el comando fg es lo opuesto al comando bg; transfiere las tareas en segundo plano al primer plano para su ejecución; para ver la lista de tareas en segundo plano.
bg [número de secuencia de tarea] fg [número de secuencia de tarea] trabajos
salir del circuito
#!/bin/bash para((i=0; i<=5; i )) hacer si [$i -eq 3]; entonces break; #<==Salte del ciclo completo y continúe ejecutando el programa fuera del ciclo. fi eco $i hecho eco "está bien"
continuar en el siguiente bucle
#!/bin/bash para((i=0; i<=5; i )) hacer si [$i -eq 3]; entonces continuar; #<==Termina este ciclo y continúa con el siguiente. fi eco $i hecho eco "está bien"
eval ejecuta parámetros como comandos
echo `hostname -I` #<==Si desea ejecutar comandos entre comillas, debe usar comillas invertidas, también llamadas comillas invertidas.
echo '`hostname -I`' #<==Las comillas invertidas están entre comillas simples. La función de las comillas simples es que lo que ves es lo que obtienes, por lo que el resultado es `hostname -I`. `nombre de host -I`
eval echo '`hostname -I`' #<==Agregue un comando de evaluación al comienzo del comando, ¡las comillas simples no son válidas! Porque el comando eval puede analizar o ejecutar variables o comandos entre comillas simples primero.
salir sale de la línea de comando de Shell
salir #<==Para salir de la línea de comando de Shell, puede usar el comando de salida, la tecla de método abreviado Ctrl D o el comando de cierre de sesión.
#!/bin/bash para((i=0; i<=5; i )) hacer si [$i -eq 3]; entonces exit #<==Una vez que se ejecuta el comando de salida, se cerrará todo el script y el contenido restante del script no se volverá a ejecutar. fi eco $i hecho eco "está bien"
exportarVer o establecer variables globales
exportar [opciones]
export -p #<==Utilice la opción p para imprimir todas las variables de entorno.
export MYENV=7 #<==Solo las variables configuradas mediante el comando de exportación son variables globales.
historial Ver historial de comandos
historia [opciones]
historial #<==Muestra todos los registros históricos del comando.
historial 10 #<== El comando de historial seguido del número n indica que se mostrarán los n registros de comando más recientes.
History -d 991 #<== "history -d número de secuencia del comando histórico" puede borrar el comando histórico del número de secuencia especificado.
historial -c #<==Utilice la opción -c para borrar el historial de todos los comandos.
leer variable de asignación interactiva
El comando de lectura lee una línea de la entrada estándar y asigna el valor de cada campo de la línea de entrada a una variable de Shell.
leer [opción] [nombre de variable]
leer #<==Ejecute el comando leer y la línea de comando está esperando entrada. oldboy #<==Ingrese la cadena oldboy.
echo $REPLY #<==readLa entrada obtenida se almacena en la variable REPLY por defecto.
read one #<==read va seguido de un nombre de variable y los datos de entrada se asignarán a esta variable.
leer uno dos #<==read puede ir seguido de varios nombres de variables. n1 n2 #<== De forma predeterminada, los espacios se utilizan como separadores. El primer párrafo n1 se asigna a la primera variable uno y el segundo párrafo n2 se asigna a la segunda variable dos.
leer uno dos m1 m2 m3 #<==Si los datos de entrada exceden el número de variables, entonces todos los valores finales se asignarán a la última variable, m1 se asignará a la variable uno y "m2 m3" será asignados a la variable dos juntos.
leer -p "Ingrese su edad:" edad #<==¡Debe haber al menos un espacio delante de la variable edad! Utilice el parámetro -p para definir las instrucciones que se muestran en la línea de comando, que es más fácil de usar.
leer -t 3 -p "Ingrese su edad:" edad #<==Use el parámetro -t para especificar la cantidad de segundos a esperar. Después de este tiempo, el comando finalizará automáticamente.
La opción -s evita que los datos ingresados en el comando de lectura se muestren en pantalla, como las contraseñas.
leer -n 3 -p "Solo puedes ingresar 3 caracteres. Si no me crees, inténtalo:" num
El tipo determina el tipo de comando.
escriba [opción] [comando]
escriba ls #<== sin ningún parámetro, muestra la información principal de ls.
escriba -a ls #<==Mostrar toda la información relevante.
ulimit modifica los límites de uso de recursos del sistema
El comando ulimit se utiliza para verificar el uso de los recursos del sistema. También puede modificar la cuota asignada a los recursos del sistema por procesos o usuarios.
ulimit [opciones]
ulimit -a muestra todos los límites de uso de recursos del sistema actuales.
ulimit -n 1024 #<==El número máximo predeterminado de archivos abiertos (también llamados descriptores de archivos) en el nuevo sistema es 1024. Este valor es demasiado pequeño para el servidor en el entorno de producción, por lo que este valor generalmente se ajusta durante la optimización del servidor. . grande.
ulimit -n 65535 #<==La cantidad de ajuste es 65535, pero el ajuste mediante el comando solo tiene efecto para la ventana actual, por lo que es necesario modificar el archivo de configuración.
echo '* - nofile 65535' >> /etc/security/limits.conf #<==Modifique el archivo de configuración y surta efecto permanentemente.
desarmado borra variables
unset OLDBOY oldgirl #<==el comando unset puede borrar el valor de la variable.
Capítulo 11 Comandos de administración del sistema Linux
lsof: Ver archivos abiertos por un proceso
lsof [opciones]
lsof /var/log/messages muestra los procesos que utilizan el archivo.
lsof -c rsyslog #<==Utilice la opción -c para mostrar los archivos abiertos por el proceso especificado.
lsof -p 1277 #<==Utilice la opción -p para mostrar archivos abiertos por el número de proceso especificado.
lsof -i #<==Ver todos los procesos.
lsof -i tcp #<==Muestra información del proceso de todas las conexiones de red tcp.
lsof -i :22 #<==Muestra el proceso con el puerto 22. Este comando se usa con mucha frecuencia.
lsof -i tcp:22 #<==Mostrar procesos que cumplen con TCP y el puerto 22.
lsof -u oldboy #<==Utilice la opción -u para mostrar los archivos utilizados por el usuario oldboy.
lsof -U #<==Utilice la opción -U para mostrar todos los archivos de socket.
uptime: muestra el tiempo de ejecución y la carga del sistema
tiempo de actividad
gratis: ver información de la memoria del sistema
gratis [opción]
free #<==Sin parámetros, la visualización predeterminada es el número de bytes, lo cual es difícil de entender.
free -m #<==Utilice la opción -m para mostrar el uso de memoria en MB.
free -h #<==Utilice la opción -h para convertir automáticamente en unidades de KB, MB y GB según el tamaño real para mostrar el uso de memoria.
free -h -s 10 #<==Utilice la opción -s para actualizar el uso de la memoria con regularidad, en segundos.
iftop: muestra dinámicamente información de tráfico de la interfaz de red
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum -y instalar iftop
iftop [opciones]
si arriba interfaz: eth0 #<==La primera tarjeta de red del sistema de monitoreo se usa de forma predeterminada. Puede usar la opción -i para especificar la tarjeta de red de monitoreo.
iftop -nNBP ·-n: No realiza resolución DNS y muestra la dirección numérica IP. ·-N: Muestra el número de puerto en forma numérica. ·-P: Muestra el número de puerto. ·-B: De forma predeterminada, el tráfico se muestra en unidades de bits, que deben calcularse para ajustarse a nuestro entendimiento. Sin embargo, al usar la opción -B se mostrará directamente el tráfico en bytes.
vmstat: estadísticas de memoria virtual
vmstat [opciones] [intervalo [número de veces]]
1) En el comando vmstat y opciones posteriores, debe haber al menos un espacio entre cada elemento. 2) el retraso representa el intervalo entre dos salidas. 3) el recuento representa el número de estadísticas según el intervalo de tiempo especificado por el retraso.
vmstat #<==Si se omiten los parámetros "intervalo" y "número de veces", el informe solo se mostrará una vez y luego saldrá.
vmstat 5 #<== significa que la información de salida se actualiza cada 5 segundos, la salida se repite y se presiona la combinación de teclas Ctrl C para detener la salida.
vmstat 5 6 #<== significa que la información de salida se actualiza cada 5 segundos y la salida se detiene después de contar 6 veces.
vmstat -a 2 5 muestra la memoria activa e inactiva.
vmstat -s Ver detalles de uso de memoria.
vmstat -d Ver lecturas/escrituras del disco.
vmstat -p /dev/sda1 Ver las estadísticas de lectura y escritura del disco /dev/sda1.
mpstat: estadísticas de información de la CPU
mpstat [opciones] [intervalo de tiempo [número de veces]]
1) En el comando mpstat y opciones posteriores, debe haber al menos un espacio entre cada elemento. 2) el retraso representa el intervalo de tiempo entre dos salidas. 3) el recuento representa el número de estadísticas según el intervalo de tiempo especificado por el retraso.
mpstat #<==Si se omiten los parámetros "intervalo de tiempo" y "número de veces", el informe solo se mostrará una vez y luego saldrá.
mpstat 5 6 #<== significa que la información de salida se actualiza cada 5 segundos y la salida se detiene después de contar 6 veces.
mpstat -P 0 #<==Muestra la información de la primera CPU.
iostat: estadísticas de información de E/S
iostat [opciones] [intervalo [número de veces]]
1) En el comando iostat y opciones posteriores, debe haber al menos un espacio entre cada elemento. 2) intervalo representa el intervalo entre dos salidas. 3) el recuento representa el número de estadísticas según el intervalo de tiempo especificado por el retraso.
iostat #<==Si se omiten los parámetros "intervalo de tiempo" y "número de veces", el informe solo se mostrará una vez y luego saldrá.
iostat 2 3 #<==Actualiza la pantalla cada 2 segundos y muéstrala 3 veces en total.
iostat -d #<==La opción -d solo muestra estadísticas del disco.
iostat -d -k #<==La opción -k muestra datos en kB.
iostat -d -m #<==La opción -m muestra datos en MB.
iostat -d -x -k #<==La opción -x muestra información extendida.
iostat -c #<==La opción -c se usa para mostrar solo las estadísticas de la CPU del sistema.
iotop: muestra dinámicamente estadísticas de E/S de disco
iotop [opciones]
iotop
sar: recopilar información del sistema
sar [opciones] [intervalo [número de veces]]
1) En el comando sar y opciones posteriores, debe haber al menos un espacio entre cada elemento. 2) intervalo representa el intervalo entre dos salidas. 3) el recuento representa el número de estadísticas según el intervalo de tiempo especificado por intervalo.
sar -u 2 3 #<==Utilice la opción -u para mostrar el estado de carga de todas las CPU en el sistema durante el tiempo de muestreo, seguido de 2 3 que indica estadísticas una vez cada 2 segundos y 3 veces.
sar -q 2 3 #<==Utilice la opción -q para mostrar el tamaño de la cola de ejecución.
sar -r 2 3 #<==Utilice la opción -r para mostrar el uso de la memoria del sistema durante el tiempo de muestreo.
sar -b 2 3 #<==Utilice la opción -b para mostrar el uso del búfer durante el tiempo de muestreo.
sar -n DEV 2 3 #<==Utilice -n DEV para mostrar información de la interfaz de red.
sar -n EDEV 2 3 #<==Utilice -n EDEV para mostrar estadísticas de errores de red.
sar -n SOCK 2 3 #<==Utilice -n SOCK para mostrar información del socket.
sar -d 2 3 #<==Utilice la opción -d para mostrar el estado de uso de todos los dispositivos de disco duro en el sistema durante el tiempo de muestreo.
chkconfig: Administrar el servicio de arranque
chkconfig [opciones]
chkconfig --list #<==Utilice la opción --list directamente para ver el estado de todos los servicios.
chkconfig --list sshd #<==Especifique el nombre del servicio del sistema para mostrar el estado de inicio de este servicio.
chkconfig sshd off #<==Utilice off para desactivar el servicio sshd e iniciarlo automáticamente en los niveles 2, 3, 4 y 5.
chkconfig sshd on #<==Utilice on para permitir que el servicio sshd se inicie automáticamente en los niveles 2, 3, 4 y 5.
chkconfig --level 3 sshd off #<==Utilice --level para especificar desactivar el servicio sshd e iniciarlo automáticamente en el nivel 3.
chkconfig --level 3 sshd on #<==Use --level para especificar que el servicio sshd se iniciará automáticamente en el nivel 3.
ntsysv: administrar el servicio de arranque
ntsysv [opciones]
ntsysv
configuración: herramienta de gestión del sistema
El comando de configuración es una herramienta de administración del sistema basada en una interfaz de texto que integra la administración de autenticación de usuarios, administración de firewall, administración de redes y administración de servicios del sistema.
configuración
ethtool: Consultar parámetros de tarjeta de red
ethtool [dispositivo de tarjeta de red]
ethtool eth0 #<==Conecte la tarjeta de red especificada para mostrar los parámetros de la tarjeta de red.
mii-tool: Gestiona el estado de las interfaces de red
mii-tool [opciones] [interfaz de red]
mii-tool eth0 #<==No aceptar ninguna opción y mostrar información simplificada.
mii-tool -v eth0 #<==Utilice la opción -v para mostrar información detallada.
dmidecode: Consultar información del hardware del sistema
dmidecode [opciones]
dmidecode -s system-product-name #<==El modelo de servidor del autor es Dell 2950. PowerEdge 2950
dmidecode -s system-serial-number #<==Ver la palabra clave del número de serie system-serial-number.
dmidecode -t memoria #<==-Utilice la opción -t seguida de la palabra clave memoria para ver solo la información de la memoria. Se pueden ver más palabras clave a través del comando dmidecode -t.
lspci: muestra todos los dispositivos PCI
lspci [opciones]
lspci -s 02:04.0 #<==02:04.0 Del ejemplo 1, podemos conocer el número del dispositivo de la tarjeta de red.
lspci -s 02:04.0 -v #<==Ver información detallada.
ipcs: muestra el estado de las instalaciones de comunicación entre procesos.
ipcs [opciones]
ipcrm: borrar información relacionada con ipc
ipcrm [opciones]
ipcrm -s 0 #<==Elimina la señal configurada con un semid especificado de 0.
rpm: administrador de paquetes RPM
rpm [opciones]
rpm -qpi lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Muestra la versión del paquete rpm, la fecha de creación y otra información.
rpm -qpl lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Ver los archivos en el paquete rpm.
rpm -qpR lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Ver los archivos necesarios para instalar este paquete rpm.
rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Instale el paquete rpm y use el parámetro -h para mostrar la barra de progreso. #<==rpm también admite la instalación en línea, conéctese directamente a una dirección URL
rpm -qa lrzsz #<==El parámetro -p no se usa aquí porque lrzsz es el nombre del software y no termina en ".rpm".
rpm -e lrzsz #<== Utilice el parámetro -e para desinstalar el paquete de software. Este parámetro es más peligroso. Generalmente, intente no desinstalar el paquete de software si no es necesario, porque es muy probable que algunos archivos necesarios. el sistema se eliminará por error y finalmente causará daños al sistema.
rpm -qf $(cuál ifconfig) #<== A veces encontrará que el sistema no tiene ciertos archivos o comandos, pero no sabe a qué paquete de software pertenece el archivo o comando. En este caso, puede usar el. -f parámetro a consultar (en Consulta en el sistema que tiene este archivo). Por ejemplo, en este ejemplo, el comando ifconfig pertenece al paquete de software net-tools.
yum: herramienta automatizada de gestión de paquetes RPM
yum [opciones] [comando] [paquete]
mmm instalar httpd
yum list httpd #<==Compruebe la lista de instalación de httpd.
yum search httpd #<==Buscar paquetes que contengan la cadena httpd.
yum grouplist #<==Ver grupos de paquetes instalados y desinstalados.
yum groupinstall "Soporte SNMP" -y #<==Instalar grupo de paquetes, buscar desde yum grouplist.
Capítulo 10 Comandos de administración de red de Linux
ifconfig: configura o muestra información de la interfaz de red
ifconfig [interfaz de red] [opciones]
interfaz es el nombre de la interfaz de red. Los nombres de la interfaz de red en Linux son similares a eth0, eth1, lo, etc., que representan respectivamente la primera tarjeta de red, la segunda tarjeta de red y la interfaz loopback. Esta es una opción opcional. Si no agrega esta opción, se mostrará toda la información de la tarjeta de red en el sistema. Si agrega esta opción, se mostrará la información de la tarjeta de red especificada.
El uso del comando ifconfig para configurar la información de la tarjeta de red solo tendrá efecto temporalmente. Reiniciar la configuración de la red o del servidor lo invalidará.
El comando ifconfig debe ejecutarse como usuario root al configurar la información de la tarjeta de red.
ifconfig #<==Muestra toda la información de la tarjeta de red en el sistema.
El comando ifconfig eth0 #<== está conectado al nombre de la tarjeta de red para especificar la información de la tarjeta de red que se mostrará.
ifconfig -a #<==Utilice la opción -a para ver toda la información de la tarjeta de red.
ifconfig eth1 up #<==Suma después del nombre de la tarjeta de red para iniciar la tarjeta de red.
ifconfig eth1 down #<==Agregue abajo después del nombre de la tarjeta de red para apagar la tarjeta de red.
ifconfig eth0 192.168.120.56 #<==Conecte la dirección IP directamente a la tarjeta de red que debe configurarse.
ifconfig eth0:0 10.0.0.8 máscara de red 255.255.255.0 up#<== Formato de sintaxis: Alias Dirección IP Máscara de subred Activar tarjeta de red
ifconfig eth0:1 10.0.0.9/24 up #<==Agregue un segundo alias de IP, 10.0.0.9/24 tiene el mismo efecto que 10.0.0.9 máscara de red 255.255.255.0, 24 es la máscara de subred 255.255.255.0 Otra forma de expresión .
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE#<==Palabras clave para modificar la dirección MAC hw (establecer dirección MAC) ether (tipo de dispositivo de red).
ifup: Activar interfaz de red
ifup [interfaz de red]
ifup eth0 #<==Activar la interfaz de red eth0. Debido a que eth0 ya comenzó a ejecutarse, el mensaje es el siguiente. RTNETLINK responde: El archivo existe
ifup eth1 #<==Active la interfaz de red eth1. En circunstancias normales, no hay salida.
fup eth2 #<==Active la interfaz de red eth2 e informe un error No se puede encontrar el archivo de configuración de eth2.
ifdown: deshabilita la interfaz de red
ifdown [interfaz de red]
ifdown eth1 #<==Cierre la tarjeta de red eth1.
ruta: muestra o administra tablas de enrutamiento
ruta [opciones]
ruta #<==De forma predeterminada, el comando de ruta realizará la resolución DNS en la dirección IP para generar un nombre de host.
route -n #<==Utilice la opción -n para no realizar la resolución DNS, lo que acelerará la visualización.
ruta del valor predeterminado #<==Eliminar método de puerta de enlace 1.
ruta agregar gw predeterminado 10.0.0.2 #<== Agregar método de puerta de enlace 1, debe especificar la dirección de puerta de enlace 10.0.0.2 u otra dirección correcta.
ruta del default gw 10.0.0.2 #<==Eliminar método de puerta de enlace 2.
route add default gw 10.0.0.2 dev eth0#<==Agregar método de puerta de enlace 2, use dev para especificar el dispositivo de red, adecuado para hosts con múltiples dispositivos de red.
arp: gestiona el caché arp del sistema
arp [opciones]
arp #<==Muestra todas las entradas en el caché de arp.
arp -n #<==Utilice la opción -n para mostrar numéricamente todas las entradas en el caché de arp.
arp -n 10.0.0.1 #<==Especifique para consultar la información de arp de 10.0.0.1.
arp -s 10.0.0.100 00:0c:29:c0:5a:ef #<==Vincular dirección IP y dirección MAC.
arp -d 10.0.0.100 #<==Eliminar enlace ARP estático.
ip: herramienta de configuración de red
ip [opciones] [objeto de red] [comando de operación]
ip link show dev eth1 #<==Muestra las propiedades de la tarjeta de red eth1.
ip -s link show dev eth1 #<==Mostrar atributos detallados.
ip -s -s link show dev eth1 #<==Utilice dos -s para mostrar atributos más detallados.
ip link set eth1 up #<==Active la tarjeta de red eth1.
ip link set eth1 down #<==Apague la tarjeta de red eth1.
enlace ip establece la dirección eth1 0:0c:29:13:10:11 #<==Modificar la dirección MAC.
ip a #<==El efecto es el mismo que la dirección IP. Los resultados mostrados incluyen tarjetas de red activadas e inactivas.
ip a add 172.16.1.12/24 dev eth1 #<==Use la opción agregar para agregar una dirección IP 172.16.1.12, máscara de subred 255.255.255.0, abreviada como 172.16.1.12/24, y use la opción dev para especificar la red dispositivo como eth1.
ip a add 172.16.1.13/24 dev eth1 #<==Puede agregar varias direcciones IP, que se denominan IP auxiliares. El alias creado por el comando ifconfig anterior es IP. Hoy en día, el software de alta disponibilidad de uso común, como heartbeat y keepalive, utiliza IP auxiliar.
ip a del 172.16.1.12/24 dev eth1 #<==Elimine la IP principal, elimine la dirección IP configurada por el comando ip y cambie directamente la opción Agregar en el comando Agregar anterior a del.
·Eliminar la dirección IP principal de la tarjeta de red también eliminará todas las direcciones IP de la tarjeta de red. ·Eliminar la dirección IP auxiliar de la tarjeta de red no afectará otras direcciones IP de la tarjeta de red.
ip a add 10.0.0.20/32 dev eth1 label eth1:1 #<== Utilice la opción de etiqueta para crear un alias de IP.
ip route|column -t #<==Use el comando de columna para formatear, opción -t, de forma predeterminada, el número de columnas en la fila de entrada se determina en función de la separación de espacios para crear una tabla.
ruta ip agregue 10.1.0.0/24 a través de 10.0.0.253 dev eth0 #<==Agregar ruta estática.
ip route del 10.1.0.0/24 #<==Eliminar ruta estática.
ip vecino #<==Utilice el comando vecino para ver el caché arp.
ip vecino agregar 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0 #<==Agregar ARP estático.
ip vecino del 192.168.1.100 dev eth0 #<==Eliminar ARP estático.
netstat: Ver el estado de la red
netstat [opciones]
netstat -an #<== Las combinaciones de uso común -a y -n muestran toda la información de conexión.
netstat-lntup La función de la instrucción de comando anterior es mostrar toda la información de la conexión de escucha TCP y UDP. ·-l: muestra todas las conexiones de red en estado ESCUCHAR. ·-n: muestra la dirección IP sin resolución DNS en nombre de host y nombre de dominio. ·-t: Muestra todas las conexiones TCP. ·-u: Muestra todas las conexiones UDP. ·-p: Muestra el número de proceso y el nombre del proceso.
netstat -rn #<==Utilice la opción -r para mostrar información de la tabla de enrutamiento. La opción -n no realiza la resolución DNS para acelerar la ejecución del comando.
ss: Ver el estado de la red
El comando ss es una herramienta similar y reemplazará a netstat. Puede usarse para ver información del estado de la red, incluidas conexiones TCP, UDP, puertos, etc. Su ventaja es que puede mostrar información cada vez más detallada sobre el estado de la conexión de red y es más rápido y eficiente que netstat.
Si el sistema no tiene el comando ss, debe instalarlo. El comando ss pertenece al paquete iproute, por lo que el comando de instalación es yum-y install iproute.
ss [opciones] [filtro]
ss -an #<==Mostrar todas las conexiones de socket.
ss -an|column -t #<==El resultado anterior será un poco desordenado cuando se escriba en el documento. Vamos a formatearlo con columna.
ss -lntup|column -t #<==Muestra todas las conexiones TCP y UDP de escucha.
ss -s #<== Cuente el número actual de sockets TCP establecidos, cerrados, huérfanos y en espera.
ping: prueba la conectividad de red entre hosts
ping [opciones] [host de destino]
ping www.oldboyedu.com #<==El comando ping está conectado directamente al nombre de dominio o IP, y el resultado del ping siempre se mostrará.
ping -c 3 -i 3 -s 1024 -t 255 www.oldboyedu.com ·-c 3: Envía paquetes ICMP 3 veces. ·-i 3: El intervalo de tiempo entre cada envío de paquetes es de 3 segundos. ·-s 1024: establece el tamaño del paquete enviado en 1024 bytes. ·-t 255: establece el valor ttl del paquete de datos enviado en 255.
traceroute: seguimiento del estado de enrutamiento de transmisión de datos
traceroute [opciones] [nombre de host o IP] [tamaño del paquete]
arping: enviar solicitud arp
Arping [opciones]
arping -f 10.0.0.1 #<== Utilice la opción -f para salir cuando se reciba la primera respuesta para detectar si el host de destino está vivo.
arping -f 10.0.0.3 #<==Un host que no se está ejecutando no responderá y el comando espera hasta que Ctrl C finalice.
Telnet: inicio de sesión remoto en el host
telnet [opciones] [nombre de host o IP] [puerto]
telnet 10.0.0.12 22 #<==Reemplace 10.0.0.12 aquí con la propia IP del lector, y 22 es el número de puerto predeterminado del servicio SSH.
nc: herramienta de red multifuncional
nc es una herramienta de red simple, confiable y poderosa que puede establecer conexiones TCP, enviar paquetes UDP, escuchar cualquier puerto TCP y UDP, realizar escaneo de puertos y procesar paquetes IPv4 e IPv6. Si el sistema no tiene el comando nc, puede instalarlo manualmente. El comando de instalación es yum-y install nc.
nc [opciones]
nc -l 12345 >oldboy.nc #<==Escuche el puerto 12345 y escriba datos en oldboy.nc. #<==Después de ejecutar el comando anterior, la ventana actual se bloquea. #<==Abre una nueva ventana para ejecutar el comando.
nc 10.0.0.12 12345 <oldboy.log #<==Utilice el comando nc para transferir el archivo oldboy.log al puerto 12345 del host 10.0.0.12.
nc -z 10.0.0.12 20-30 #<==Escanee los puertos 20 a 30 del host 10.0.0.12.
nc -z 10.0.0.12 22 #<==El host puede seguir una única dirección o rango de direcciones.
nc -z -v 10.0.0.12 20-30 #<==Utilice la opción -v para mostrar el proceso de escaneo en detalle.
ssh: inicie sesión de forma segura en un host de forma remota
ssh [opciones] [usuario@][nombre de host o dirección IP] [comando ejecutado de forma remota]
ssh 10.0.0.29 #<==Este es el comando abreviado para el inicio de sesión remoto en el servidor, que equivale a ssh -p 22 root@10.0.0.29 #<==Las siguientes cuatro líneas solo aparecerán cuando se conecte al servidor remoto por primera vez y no cuando se conecte nuevamente.
ssh -p 22 oldboy@10.0.0.29 #<== Utilice el usuario oldboy para iniciar sesión en el servidor remoto. Este usuario debe ser un usuario existente en el servidor remoto.
ssh 10.0.0.29 "free -m" #<== Simplemente coloque el comando que se ejecutará de forma remota al final. Utilice comillas para hacerlo más estandarizado. Aquí está la información de la memoria del servidor donde lo está viendo.
ssh -v root@10.0.0.19 #<==Utilice la opción -v para ingresar al modo de depuración.
wget: herramienta de descarga de línea de comando
· Admite la función de descarga de puntos de interrupción. · Admite métodos de descarga FTP y HTTP. ·Soporte de servidor proxy. ·Muy estable, tiene una gran adaptabilidad en situaciones con ancho de banda muy estrecho o red inestable. Si la descarga falla por motivos de red, wget continuará intentándolo hasta que se descargue el archivo completo. Si el servidor interrumpe el proceso de descarga, se conectará nuevamente al servidor y continuará la descarga desde donde se detuvo. Esto es útil para descargar archivos grandes desde servidores con tiempos de conexión limitados.
wget [opciones] [dirección de descarga]
wget http://www.oldboyedu.com/favicon.ico #<==wget simplemente conéctese a la dirección de descarga.
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #<==Este es un comando para actualizar la fuente de epel, será epel-6 Descargue el repositorio y colóquelo en el directorio /etc/yum.repos.d/ y cámbiele el nombre a epel.repo.
wget --limit-rate=3k http://www.oldboyedu.com/favicon.ico #<==Utilice el parámetro --limit-rate para establecer la velocidad máxima de descarga en 3K/s.
wget -c Utilice el parámetro -c para reanudar la carga desde un punto de interrupción.
wget -b http://www.oldboyedu.com/favicon.ico Utilice wget-b para descargar archivos en segundo plano.
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, como Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.oldboyedu. com/favicon.ico #<==Utilice el parámetro --user-agent para especificar el tipo de cliente.
wget -q -T 3 --tries=1 --spider www.baidu.com #<== Utilice acceso silencioso, tiempo de espera de 3 segundos, vuelva a intentarlo una vez, simule el acceso del rastreador.
mailq: muestra la cola de transferencia de correo
mailq [opciones]
mailq #<==Ver la cola de correo.
correo: enviar y recibir correo
correo [opciones]
mail -s "Hola desde oldboyedu" zhangyao@oldboyedu.com #<==Se solicita al destinatario que la cambie a su propia dirección de correo electrónico. hola, este es el contenido del correo. #<==Ingrese manualmente dos líneas de contenido del correo. Bienvenido a www.oldboyedu.com. EOT #<== Ingrese Ctrl D en una nueva línea en blanco para finalizar la entrada y enviar el correo electrónico.
echo -e "hola, este es el contenido del correo. bienvenido a www.oldboyedu.com."|mail -s "Hola desde oldboyedu" zhangyao@oldboyedu.com Descripción del comando: al eco le sigue el cuerpo del correo electrónico.
#<==Enviar un solo archivo adjunto. [root@oldboy ~]# echo "prueba"|mail -s "prueba" -a favicon.jpg zhangyao@oldboyedu.com
#<==Enviar varios archivos adjuntos. [root@oldboy ~]# echo "prueba"|mail -s "prueba" -a favicon.jpg -a web.sh zhangyao@oldboyedu.com
nslookup: herramienta de consulta de nombres de dominio
nslookup [opciones] [nombre de dominio/IP] [servidor DNS]
·Modo interactivo: los usuarios pueden consultar el servidor de nombres de dominio para obtener información sobre varios hosts y nombres de dominio, o generar una lista de hosts en el nombre de dominio. ·Modo no interactivo: obtenga sólo nombres específicos o información requerida para un host o nombre de dominio.
nslookup - 223.5.5.5 #<==Puede especificar directamente la dirección del servidor para la resolución del nombre de dominio en la línea de comando, pero preste atención a la escritura y no se pierda el "-".
nslookup www.oldboyedu.com 223.5.5.5 #<==Consulta no interactiva nombre de dominio www.oldboyedu.com.
dig: herramienta de consulta de nombres de dominio
cavar [opción]
cavar www.oldboyedu.com
dig @223.5.5.5 www.oldboyedu.com #<==Utilice @ para especificar el servidor DNS para la consulta.
dig -x 101.200.195.98 #<==Utilice la opción -x para la resolución inversa de nombres de dominio.
dig -t MX oldboyedu.com #<==Utilice la opción -t para seleccionar el tipo de consulta.
dig @223.5.5.5 www.oldboyedu.com trace #<==Muestra el proceso completo de resolución de nombres de dominio en IP.
dig nocmd nocomment nostat www.oldboyedu.com #<== Simplifique alguna información de descripción.
cavar breve www.oldboyedu.com
host: herramienta de consulta de nombres de dominio
anfitrión [opciones]
host www.oldboyedu.com #<==el comando host se puede conectar directamente al nombre de dominio.
host -a www.oldboyedu.com #<==Utilice la opción -a para consultar información detallada.
host -a www.oldboyedu.com 223.5.5.5 #<== Conéctese directamente a la IP del servidor DNS especificado.
host -t MX oldboyedu.com #<==Utilice la opción -t para seleccionar el tipo de consulta.
nmap: herramienta de sondeo de red y escáner de puertos/seguridad
nmap [tipo de escaneo] [opciones generales] {objetivo de escaneo}
nmap 10.0.0.12 #<==nmap se conecta directamente al host de destino y escanea los primeros 1~1000 puertos de forma predeterminada.
nmap -p 1024-65535 10.0.0.12 #<==-p opción especifica el rango de escaneo.
nmap 10.0.0.0/24 #<==Escanee la LAN usando el formato de segmento de red.
nmap -sn 10.0.0.0/24 #<==Utilice la opción -sn para no escanear el puerto.
nmap -sn 10.0.0.1-10 #<== Este rango de direcciones se puede utilizar para escanear.
nmap -O -sV 10.0.0.12 #<==-sV muestra el número de versión del servicio. #<==-O muestra la versión del sistema, pero el comando nmap compara la huella digital TCP/IP detectada con su propia base de datos de huellas digitales. Si el sistema no está en la base de datos de huellas dactilares, no será reconocido.
tcpdump: monitorear el tráfico de la red
tcpdump [opciones] [expresión]
tcpdump #<==De forma predeterminada, iniciar tcpdump directamente monitoreará todos los paquetes que fluyen en la primera interfaz de red.
tcpdump -q #<==De forma predeterminada, el comando tcpdump genera más información. Para mostrar información simplificada, puede usar la opción -q.
tcpdump -c 5 #<==Use la opción -c para especificar la cantidad de paquetes a monitorear, por lo que no es necesario usar Ctrl C.
tcpdump -i eth0 #<==Use la opción -i para especificar la tarjeta de red a monitorear
tcpdump -n host 10.0.0.1 #<==Utilice la opción -n para no realizar la resolución DNS y acelerar la visualización. La palabra clave para monitorear el host especificado es host, seguida del nombre del host o la dirección IP. La función de este comando es monitorear todos los paquetes de datos recibidos y enviados por el host 10.0.0.1.
tcpdump -n src host 10.0.0.1 #<==Solo escucha los paquetes de datos enviados desde 10.0.0.1, es decir, la dirección de origen es 10.0.0.1 y la palabra clave es src (fuente, dirección de origen).
tcpdump -n dst host 10.0.0.1 #<==Solo escuche los paquetes de datos recibidos por 10.0.0.1, es decir, la dirección de destino es 10.0.0.1 y la palabra clave es dst (destino, destino).
tcpdump -nn puerto 22 #<==El uso de la opción -n no realiza la resolución DNS, pero convertirá algunos protocolos y puertos, como el puerto 22 a ssh. Los lectores pueden comparar los resultados de salida del Ejemplo 10-4. Por lo tanto, este ejemplo utiliza la opción -nn. La palabra clave para monitorear el puerto especificado es puerto, seguida del número de puerto.
tcpdump -n arp #<==Escuche los paquetes ARP, para que la expresión se pueda escribir directamente en arp.
tcpdump -n icmp #<==Escuche los paquetes de datos icmp (si desea ver los datos de monitoreo a continuación, puede usar otras máquinas para hacer ping a esta máquina)
tcpdump -n ip host 10.0.0.12 y ! 10.0.0.1 #<==Obtiene los paquetes ip con los que el host 10.0.0.12 se comunica con todos los hosts (excepto el host 10.0.0.1).
Capítulo 9 Comandos de gestión de procesos de Linux
ps: ver proceso
pd [opciones]
ps -ef #<== Parámetros de formato UNIX, use el parámetro -e para mostrar todos los procesos, use el parámetro -f para mostrar adicionalmente los campos UID, PPID, C y STIME.
ps -ef|grep ssh #<==Utilice grep para buscar la palabra clave ssh.
ps aux #<== Parámetros de formato BSD, use la opción a y la opción x para mostrar todos los procesos, y use la opción u para mostrar la información de usuario del proceso.
ps -u root #<==Parámetro de formato UNIX, use el parámetro -u para mostrar información del proceso relacionada con el usuario especificado.
ps -l #<== parámetro de formato UNIX, use el parámetro -l para mostrar el estado del proceso en un formato detallado.
ps -eH #<==Parámetros de formato UNIX, use el parámetro -e para mostrar todos los procesos y use el parámetro -H para mostrar el árbol de procesos.
ps axf #<==Parámetros de formato BSD, use los parámetros ayx para mostrar todos los procesos y use el parámetro f para mostrar el árbol de procesos.
ps -o pid,ppid,pgrp,session,tpgid,comm #<==-o va seguido de los campos que se mostrarán, que se pueden comparar con la primera línea del resultado del comando.
pstree: muestra el árbol de estado del proceso
pstree [opciones] [ID de proceso/usuario]
pstree #<==Si no se especifica el número PID del proceso, o no se especifica el nombre de usuario, el proceso de inicio se utilizará como proceso raíz y se mostrará toda la información del proceso del sistema.
pstree mysql #<==mysql es el nombre de usuario del sistema.
pstree -c -p mysql #<==Use la opción -c para mostrar todos los procesos, incluidos los procesos secundarios y principales, y use la opción -p para mostrar el número de proceso del proceso.
pstree -u #<==Utilice la opción -u para mostrar el nombre de usuario correspondiente al proceso.
pgrep: Encuentra procesos que coincidan con las condiciones
pgrep [opciones] [criterios coincidentes]
pgrep crond #<==El comando pgrep puede verse como una combinación del comando ps y el comando grep. El comando pgrep especifica el filtrado del campo crond y obtiene el número de proceso del proceso crond.
pgrep -u root #<==Utilice la opción -u para mostrar todos los números de proceso del usuario root especificado.
matar: terminar el proceso
matar [opciones] [número de proceso]
kill -l #<==El parámetro -l muestra todas las señales del sistema.
kill -l SIGKILL #<== Puede utilizar el parámetro -l para intercambiar nombres de señales y señales digitales.
kill -s 15 2203 #<==Este formato usa el parámetro -s para especificar explícitamente enviar una señal con un valor de 15, y el efecto es el mismo que kill 2203.
kill -9 2203 #<==La señal 9 finalizará el proceso por la fuerza, lo que traerá algunos efectos secundarios, como la pérdida de datos, o el terminal no se puede restaurar al estado normal, por lo que debe evitarse tanto como sea posible a menos que el proceso no se puede terminar usando otras señales.
Killall: finaliza el proceso por nombre de proceso.
Killall [opciones] [nombre del proceso]
killall crond #<==El uso de killall para finalizar el proceso se puede ejecutar varias veces. crond: ningún proceso finalizado #<==Cuando ve este resultado, demuestra que el proceso está inactivo, siempre que el nombre sea correcto.
killall -w crond #<==Utilice el parámetro -w y verá que la operación del comando finaliza después de esperar unos segundos.
killall -u oldboy nginx #<==Este método puede finalizar todos los procesos nginx que pertenecen al usuario oldboy
pkill: finaliza el proceso por nombre de proceso
pkill [opciones] [nombre del proceso]
pkill crond #<== Finaliza el proceso de la tarea programada.
pkill -t tty1 #<==Utilice la opción -t para finalizar el proceso del terminal especificado.
pkill -u oldboy #<==Utilice la opción -u para eliminar todos los procesos del usuario especificado. Es mejor especificar el nombre del proceso a eliminar al mismo tiempo para evitar eliminar accidentalmente el servicio.
arriba: visualización en tiempo real del uso de recursos de cada proceso en el sistema
arriba [opciones]
top #<==El uso del comando superior generalmente no requiere ningún parámetro. Si necesita otras funciones más potentes, debe cooperar con comandos interactivos.
top -a #<==Utilice el parámetro -a para ordenar los procesos según el uso de la memoria.
top -b #<==Utilice el parámetro -b para ver que los resultados de la ejecución del comando se actualicen continuamente hacia abajo.
top -c #<==Utilice el parámetro -c para mostrar la ruta de comando completa del proceso en lugar de solo el nombre del comando.
top-d 3#<==Use el parámetro -d para especificar el período de actualización en 3 segundos, lo que significa que los resultados del comando se actualizan cada 3 segundos.
top -n 2 #<==Use el parámetro -n para especificar el número de actualizaciones a 2 veces, lo que significa que el resultado del comando se actualizará dos veces antes de salir. El parámetro -n se puede usar junto con el parámetro -d. .
top -p 15456 #<==Utilice la opción -p seguida del número de proceso especificado para mostrar solo la información de este proceso.
agradable: ajusta la prioridad del programa cuando se está ejecutando
agradable [opción] [declaración de comando]
Cuando el comando nice #<== no recibe ningún contenido, muestra que la prioridad de ejecución del programa predeterminado del sistema actual es 0.
nice nice #<== Entre ellos, el primer comando nice ajusta la prioridad del segundo comando nice con el valor predeterminado de 10, es decir, agrega 10 a la prioridad de ejecución predeterminada del programa del sistema de 0 para obtener un nuevo programa con prioridad de ejecución 10 y luego ejecute el segundo comando nice con prioridad 10. Finalmente, el segundo comando nice muestra que la prioridad de ejecución actual del programa es 10.
nice -n -10 vim test2 & #<==Use nice para ajustar a -10.
Renice: ajustar la prioridad de los procesos en ejecución.
renice [opciones]
renice -n 5 -p 2711 #<==Utilice el parámetro -p de renice para especificar el proceso con un valor de 2711 y ajuste su valor NI a 5.
nohup: El usuario sale del proceso del sistema y continúa trabajando
nohup [opciones]
nohup ping www.oldboyedu.com nohup: ignorando la entrada y agregando la salida a `nohup.out'#<==La terminal actual se ha colgado. Si cierra a la fuerza la terminal actual (como cerrar la etiqueta o la herramienta del cliente SSH), el comando ping aún se ejecutará. en el fondo.
nohup ping www.oldboyedu.com & #<==En el trabajo, generalmente ejecutamos el comando nohup con el signo comercial para permitir que el programa se ejecute directamente en segundo plano.
strace: seguimiento de llamadas al sistema de un proceso
traza [opciones]
strace -tt -f /application/nginx/sbin/nginx #<== El parámetro -f rastrea el proceso de destino y todos los procesos secundarios creados por el proceso de destino. El parámetro -tt agrega información de tiempo antes de cada línea en la salida, de manera precisa. a microsegundos, y finalmente la declaración de comando que se detectará /application/nginx/sbin/nginx es el comando para iniciar el servicio Nginx.
strace -tt -f -e trace=file /application/nginx/sbin/nginx #<==-e trace=file se usa para rastrear solo llamadas al sistema relacionadas con operaciones de archivos.
strace -tt -f -e trace=file -p 1909 #<==Utilice el parámetro -p para rastrear solo el proceso de trabajo y el resultado será más optimizado.
strace -c /application/nginx/sbin/nginx #<==Utilice el parámetro -c para realizar un análisis estadístico de todas las llamadas al sistema del proceso.
strace -c -o tongji.log /application/nginx/sbin/nginx #<==Utilice la opción -o para enviar los resultados de strace a un archivo.
strace -T /application/nginx/sbin/nginx #<==Use la opción -T para imprimir el tiempo dedicado a cada llamada al sistema. El tiempo dedicado a cada llamada se encuentra en el corchete angular más a la derecha de la línea de llamada.
ltrace: seguimiento de llamadas de procesos a funciones de biblioteca
ltrace [opciones]
ltrace /application/nginx/sbin/nginx #<==ltrace va seguido directamente de la declaración de comando que se va a detectar.
ltrace -p 3892 #<==Utilice -p para especificar el número de proceso.
nivel de ejecución: genera el nivel de ejecución actual
nivel de ejecución [opciones]
nivel de ejecución número 3
·0: apagado ·1: Modo de usuario único ·2: Modo multiusuario sin red ·3: Modo multiusuario ·4: No utilizado ·5: Modo multiusuario de interfaz gráfica ·6: Reiniciar
init: Inicializa el proceso de Linux
inicio [opciones]
inicio 0 #<==Apagar
inicio 6 #<==Reiniciar.
servicio: servicio del sistema de gestión
servicio [nombre del servicio] [comando de ejecución]
Los valores opcionales para el comando incluyen inicio, parada, estado, reinicio, etc.
service --status-all #<==Mostrar todo el estado del servicio.
service crond #<==La información de ayuda se mostrará cuando la instrucción del comando no finalice. crond es el nombre del servicio de tareas programado.
service crond stop #<==Detener el servicio.
service crond start #<==Iniciar el servicio.
reinicio crond del servicio #<==Reinicie el servicio.
estado del crond del servicio #<==Ver estado del servicio.
Este comando fue reemplazado por systemctl en CentOS 7.
Capítulo 8 Comandos de administración de sistemas de archivos y discos de Linux
fdisk: herramienta de partición de disco
fdisk [opciones] [nombre del dispositivo]
fdisk -l #<==Ver la información de partición de todos los discos en el sistema actual.
fdisk /dev/sdb #<==Sin parámetros, la partición se puede realizar conectando directamente el nombre del dispositivo.
partprobe: actualiza la información de la tabla de particiones del disco duro del kernel
sonda parcial [opciones]
partprobe /dev/sdb #<==Es mejor agregar un disco específico; de lo contrario, se puede informar un error. Muchas personas ejecutan esto directamente y terminan informando un error, por lo que deben reiniciar el sistema.
tune2fs: ajusta los parámetros del sistema de archivos ext2/ext3/ext4
tune2fs [opciones]
tune2fs -l /dev/sda1|grep -i Mount#<== Verifique el número de montajes del dispositivo sda1, es decir, la partición /boot.
tune2fs -C 30 /dev/sda1 #<==El parámetro -C establece el número de veces que se ha montado el sistema de archivos.
tune2fs -c 40 /dev/sda1 #<==El parámetro -c establece el número de montajes para la autoprueba forzada.
tune2fs -c -1 /dev/sda1 #<==Desactiva la verificación automática y otras funciones.
tune2fs -l /dev/sda1|grep -i check #<==Ver el período de verificación.
tune2fs -i 10 /dev/sda1 #<==La configuración del parámetro -i se verifica cada 10 días.
tune2fs -i 0 /dev/sda1 #<==Restaurar al estado normal.
parted: herramienta de partición de disco
separado [opciones] [nombre del dispositivo]
parted -l #<==Mostrar información sobre todas las particiones del disco.
mkfs: crear un sistema de archivos Linux
mkfs [opciones] [nombre del dispositivo]
mkfs -t text4 -v /dev/sdb #<==Utilice el parámetro -v para mostrar información detallada.
mkfs.ext4 /dev/sdb #<==Esta forma de escribir es más simple y el efecto es el mismo.
dumpe2fs: Exporta información del sistema de archivos ext2/ext3/ext4
dumpe2fs [opciones] [nombre del dispositivo]
resize2fs: cambiar el tamaño del sistema de archivos ext2/ext3/ext4
resize2fs [opciones] [nombre del dispositivo]
fsck: comprobar y reparar sistemas de archivos Linux
fsck [opciones] [sistema de archivos]
El sistema de archivos debe desmontarse antes de poder comprobarlo; de lo contrario, pueden producirse errores. No es necesario utilizar este comando para verificar el disco en momentos normales. Solo debe ejecutarse cuando se muestra un error de disco cuando se enciende el sistema.
1) Además de seguir las indicaciones de inicio para reparar, también puede usar el disco del sistema para ingresar al modo de rescate o al modo de usuario único para reparar fallas del sistema. 2) Nunca ejecute fsck para verificar el disco cuando la computadora esté iniciada y funcionando normalmente, porque esto puede causar que el disco normal falle. 3) Cuando el último número de columna en /etc/fstab sea 1 o 2, se leerá fsck para realizar una autoprueba en estos discos del sistema cuando el sistema esté encendido. 4) No ejecute comandos de reparación de disco como fsck en un sistema de archivos ya montado, ya que esto puede provocar fallas.
dd: convertir o copiar archivos
dd [opciones]
dd if=/dev/sda1 of=dev_sda1.img #<==Use if para leer datos de /dev/sda1 y use of para especificar la salida a dev_sda1.img en el directorio actual.
dd if=/dev/zero of=test.data bs=1M count=2 #<==Leer datos de /dev/zero y escribirlos en test.data El tamaño del archivo generado test.data es bs*count. =1M *2=2M.
dd if=test.txt conv=ucase of=test.txt_u#<==Utilice el parámetro conv para configurar ucase para convertir minúsculas a mayúsculas.
montar: montar el sistema de archivos
montar [opciones] [dispositivo] [directorio]
El directorio montado debe existir de antemano y preferiblemente está vacío. Si el directorio no está vacío, el contenido del directorio anterior se cubrirá después de montar el dispositivo, pero el contenido del directorio original no se dañará, por lo tanto, si el dispositivo correspondiente. desinstalado, se podrá acceder nuevamente al contenido del directorio anterior.
mount #<== Ingrese el comando de montaje directamente y presione Entrar para ver la información de montaje del sistema.
mount -l #<==El parámetro -l también puede ver información de montaje.
mount /dev/cdrom /mnt #<==-t iso9660 no se especifica aquí, pero el comando mount lo reconocerá automáticamente. mount: el dispositivo de bloque /dev/sr0 está protegido contra escritura, montando solo lectura#<== Indica que el dispositivo está protegido contra escritura y montado como solo lectura.
mount -o remount,rw / #<==remount intenta volver a montar "/" como rw (legible y escribible).
umount: Desmonta el sistema de archivos
desmontar [opciones] [directorio|dispositivo]
La desinstalación de umount puede conectarse al directorio del punto de montaje o a los archivos del dispositivo.
umount /mnt #<== se puede desinstalar conectándose al punto de montaje, y umount /dev/cdrom también se puede desinstalar.
umount /mnt/ #<== Debido a que actualmente se encuentra en el directorio mnt, no se puede desinstalar. Aquí, realice el método uno para salir del directorio actual y desinstalarlo.
umount -lf /mnt/ #<==Método 2: utilice el parámetro -lf para forzar la desinstalación.
df: informar el uso de espacio en disco del sistema de archivos
df [opciones] [<archivo o directorio>]
Si no se especifica el parámetro del archivo después del comando, se mostrará el uso de todas las particiones del disco. Si se proporciona un archivo, se mostrará el uso de la partición del disco donde se encuentra el archivo.
df #<==Si no especifica los parámetros del archivo después del comando, se mostrará el uso de todas las particiones del disco.
mkswap: crear partición de intercambio
mkswap [opciones] [archivo de dispositivo]
mkswap /dev/sdb #<==De forma predeterminada, no se puede utilizar todo el disco como partición de intercambio.
mkswap -f /dev/sdb #<==Utilice el parámetro -f para forzar el uso de todo el disco como partición de intercambio.
swapon: Activar partición de intercambio
intercambio [opción]
swapon /dev/sdb #<==Activar partición de intercambio.
swapon -s #<==Utilice la opción -s para ver que hay dos particiones de intercambio.
swapoff: desactiva la partición de intercambio
intercambio [opción]
Al cerrar la partición de intercambio, asegúrese de que no esté en uso. De lo contrario, el sistema mostrará el mensaje de error "el dispositivo está ocupado".
swapoff /dev/sdb #<==Cierre la partición de intercambio /dev/sdb.
swapoff -a #<==Cerrar todas las particiones de intercambio.
sincronización: vacía el búfer del sistema de archivos
sincronización [opciones]
sync #<== Ejecute el comando de sincronización varias veces sin ningún resultado.
Capítulo 7 Comandos de consulta de información de usuario y gestión de usuarios de Linux
useradd: crear usuario
agregar usuario [opciones] [nombre de usuario] agregar usuario -D [opciones]
Cuando useradd ett crea un usuario, también crea un grupo de usuarios con el mismo nombre de usuario. En este ejemplo, agregamos un usuario del sistema llamado ett. Al ver el directorio /home/, encontraremos que el sistema creó automáticamente un directorio ett, que es el directorio de inicio del usuario después de iniciar sesión, es decir, el directorio de inicio.
useradd -g sa -u 901 oldgirl #<==El usuario oldgirl creado pertenece al grupo sa y el uid es 901.
useradd -M -s /sbin/nologin tingting #<==-M no crea un directorio de inicio, -s especifica el shell después de que el usuario inicia sesión, aquí está /sbin/nologin, lo que significa que el inicio de sesión está prohibido. Este ejemplo se utiliza a menudo al implementar servicios como Nginx y MySQL en escenarios de producción.
useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2017/07/12" -f 2 -d /tmp/inca inca #<==Agregar usuario inca y configurar la información de comentarios del usuario es "SysUser", el UID se especifica como 806, Pertenece al grupo de usuarios root y a los miembros sa, su tipo de shell es /bin/sh, el directorio de inicio está configurado en /tmp/inca, el tiempo de vencimiento del usuario es 2017/07/12 y los derechos del usuario se suspenderán dos días después del vencimiento.
useradd -D -s /bin/sh #<==Modificar el shell de inicio de sesión predeterminado.
useradd -D -e "2018/07/12" #<==Modificar el período de validez predeterminado del usuario.
La función de useradd-D se puede reemplazar completamente editando y modificando vim/etc/default/useradd.
usermod: modifica la información del usuario
usermod [opciones] [nombre de usuario]
usermod -u 888 -s /sbin/nologin -c TmpUser -G root,sa,tech -e "2018/07/12" -f 30 -d /home/inca inca #<==la información de comentarios del usuario de inca se modifica a "TmpUser", el UID se cambia a 999, la propiedad se cambia a la raíz del grupo de usuarios, sa y miembros técnicos, su tipo de Shell es /sbin/nologin, el directorio de inicio se establece en /home/inca, la caducidad del usuario El tiempo es el 12/07/2018, la suspensión expiró después de 30 días.
userdel: eliminar usuario
userdel [opciones] [nombre de usuario]
userdel zuma #<==Eliminar usuario zuma.
userdel -r oldgirl #<== Elimina el usuario oldgirl con el parámetro -r.
groupadd: crea un nuevo grupo de usuarios
agregar grupo [opciones] [grupo de usuarios]
groupadd -g 123 test1 #<==Agregue el grupo de usuarios test1 con GID 123.
groupdel: eliminar grupo de usuarios
groupdel [grupo de usuarios]
groupdel root #<==Error al eliminar el grupo de usuarios raíz porque el usuario raíz todavía existe.
groupdel no puede eliminar el grupo de usuarios principal al que pertenece el usuario.
passwd: cambiar la contraseña del usuario
contraseña [opciones] [nombre de usuario]
·El usuario root puede cambiar la contraseña de cualquier usuario, y los usuarios normales sólo pueden cambiar su propia contraseña. ·Cuando el usuario root cambia la contraseña, si no cumple con las reglas de contraseña del sistema, se mostrará un mensaje de advertencia, pero la configuración de la contraseña seguirá teniendo efecto. Cuando los usuarios normales cambian sus contraseñas, si se utiliza una contraseña débil, se mostrará un mensaje de advertencia y el cambio no será válido.
contraseña -S vieja Solo el root puede hacer eso. #<==Solicita que este parámetro solo se pueda ejecutar bajo el root.
echo "123456"|passwd --stdin oldgirl #<==--el parámetro stdin puede obtener la contraseña de la entrada estándar.
passwd -n 7 -x 60 -w 10 -i 30 oldgirl #<==oldgirl El usuario no puede cambiar la contraseña dentro de los 7 días y debe cambiarla después de 60 días. Se notifica al usuario 10 días antes del vencimiento y se le notifica al usuario. Tiene prohibido iniciar sesión después de 30 días.
cambio: Modificar el período de validez de la contraseña del usuario
cambiar [opciones] [nombre de usuario]
chage -m 7 -M 60 -W 10 -I 30 oldboy #<==los usuarios de oldboy no pueden cambiar sus contraseñas dentro de los 7 días y deben cambiarlas después de 60 días. Los usuarios de Oldboy serán notificados 10 días antes del vencimiento, y los usuarios lo harán. Se le prohibirá iniciar sesión después de 30 días.
chage -m7 -M60 -W10 -I30 oldboy #<==La segunda forma de escribir.
chpasswd: actualización por lotes de contraseñas de usuario
chpasswd [opciones]
chpasswd #<==Ingrese chpasswd en la línea de comando y presione Enter. root:123456 #<==Formatear nombre de usuario: Contraseña, el usuario debe existir. oldboy:123456 #<==Uno por línea #<==Ingrese Ctrl D en una nueva línea en blanco para finalizar la entrada.
su: cambiar de usuario
su [opciones] [nombre de usuario]
1) Para cambiar de un usuario normal a un usuario root, puede usar su- o su-root, pero se debe ingresar la contraseña de root para completar el cambio. 2) Para cambiar del usuario root a un usuario normal, puede utilizar el método de escritura "nombre de usuario superior". No es necesario ingresar ninguna contraseña para completar el cambio. En CentOS 5. /sbin y otros comandos siguientes), debe utilizar la ruta completa para ejecutar o ajustar el contenido de la variable PATH para que los usuarios normales de CentOS 6 y CentOS 7 no tengan este problema. 3) Si solo desea ejecutar comandos bajo un determinado usuario sin cambiar directamente a ese usuario, puede usar el "comando" su-username-c.
visudo: editar el archivo sudoers
visudo [opciones]
visudo -c #<==Utilice la opción -c para comprobar la sintaxis.
sudo: ejecuta el comando como otro usuario
sudo [opciones]
Mostrar información de usuarios y grupos de usuarios
id [opciones] [nombre de usuario]
id #<== no acepta parámetros de usuario, el valor predeterminado es el usuario que ha iniciado sesión actualmente.
id oldboy #<==Especifica mostrar la información del usuario oldboy.
id -g #<==Mostrar GID del grupo de usuarios.
id -u #<==Mostrar ID de usuario.
id -un #<==Mostrar nombre de usuario (el parámetro -n significa no mostrar números, sino mostrar el nombre).
w: Muestra la información del usuario registrado
w [opciones] [usuario]
w #<== generalmente se puede utilizar sin ningún parámetro.
w -h #<==Utilice el parámetro -h para no mostrar las dos primeras líneas de información del encabezado.
quién: muestra la información del usuario que ha iniciado sesión
quien [opción]
who #<== generalmente se puede utilizar sin ningún parámetro.
who -b #<==Mostrar hora de inicio.
who -d #<==Mostrar usuarios desconectados.
who -l #<==Muestra el proceso de inicio de sesión.
quién -H #<==Mostrar título.
ho -H -a #<==Use el parámetro -H para mostrar el título y use el parámetro -a para mostrar toda la información.
usuarios: muestra los usuarios registrados
usuarios #<==Si el mismo usuario inicia sesión varias veces, el nombre de usuario se mostrará varias veces.
whoami: muestra el nombre de usuario actualmente conectado
El comando whoami se utiliza para mostrar el nombre de usuario actualmente conectado. Este comando puede considerarse como la abreviatura de la frase en inglés who am i.
último: Mostrar la lista de inicio de sesión de usuarios
ultima opcion]
El último #<== mostrará muchas líneas.
last -10 #<==Especifica el número de líneas que se mostrarán y también se puede usar con el comando less a través de tuberías.
last oldboy #<==Muestra el estado de inicio de sesión del usuario oldboy, pero el usuario oldboy no ha iniciado sesión, por lo que la pantalla está vacía.
lastb: muestra registros de errores de inicio de sesión del usuario
últimob [opciones]
lastb #<==Debe prestar más atención a los resultados de la ejecución de este comando. Si encuentra información de falla de inicio de sesión desconocida, debe considerar si el sistema ha sido pirateado violentamente para iniciar sesión.
lastlog: muestra los registros de inicio de sesión recientes de todos los usuarios
Capítulo 6 Comandos de compresión y copia de seguridad de archivos
tar: copia de seguridad del paquete
tar [opciones] [archivo o directorio]
tar zcvf www.tar.gz ./html/ #<==La opción v mostrará el proceso de empaquetado. Debe recordar la combinación de comandos de empaquetado comúnmente utilizada zcvf. opción v, es decir, la combinación de opciones es zcf.
tar ztvf www.tar.gz #<==Use la opción t para ver el contenido del paquete comprimido sin descomprimir y la opción v para mostrar los atributos del archivo.
tar tf www.tar.gz #<==Si no se especifica la opción z, el comando tar también determinará automáticamente el tipo de paquete comprimido y llamará automáticamente al comando gzip.
tar zxvf www.tar.gz -C /tmp/ #<==La opción C especifica la ruta de descompresión. Si no se agrega C, la descompresión se realizará en el directorio actual.
tar xf www.tar.gz -C /tmp/ #<==Si no desea ver demasiado resultado, puede eliminar la opción v y la función no se verá afectada. Al mismo tiempo, la opción z también se puede omitir. Siempre que esté involucrada la operación de descompresión, el comando tar puede identificar automáticamente el tipo de compresión del paquete comprimido, pero se debe agregar la opción z al comprimir.
tar zcvf www.tar.gz ./html/ --exclude=html/oldboy/test #<==No agregue / al final del directorio de prueba, de lo contrario no tendrá éxito.
tar zcvf www.tar.gz ./html/ --exclude=html/oldboy/test --exclude=html/oldboy #<== Método para excluir más de 2 directorios: use múltiples --exclude en paralelo.
tar zcvfX paichu.tar.gz list.txt ./html/ #<==Utilice el parámetro X para conectar la lista de archivos que se excluirán.
Cuando se utiliza la opción general zcf de tar para empaquetar un archivo, si el archivo es un archivo de enlace como /etc/rc.local, entonces tar solo empaquetará el archivo de enlace en sí, no el archivo real al que apunta el archivo de enlace, por lo que es adicional uso: la opción h empaqueta el archivo de entidad correspondiente al archivo de enlace suave
Si el directorio que se va a empaquetar es una ruta relativa, solo se puede seguir la ruta relativa después de --exclude. ·Si el directorio que se va a empaquetar es una ruta absoluta, --exclude puede ir seguido de una ruta absoluta o relativa. ·Por conveniencia, la ruta seguida por --exclude y la ruta del paquete deben tener la misma forma, ya sea rutas relativas o rutas absolutas.
tar zcvf etc.tar.gz 'find etc/ -type f' #<== Utilice buscar para buscar todos los archivos normales y anide una instrucción de comando de búsqueda entre comillas invertidas en la instrucción del comando tar.
gzip: comprimir o descomprimir archivos
gzip [opciones] [archivo]
gzip *.html #<==Utilice el comando gzip para comprimir todos los archivos que terminan en ".html" en el directorio actual.
gzip -l *.gz #<== Utilice el parámetro -l para mostrar la información de compresión del archivo sin descomprimir. Debido a que todos los archivos de origen son archivos vacíos, la tasa de compresión es del 0,0%.
gzip -dv *.gz #<==Use el parámetro -d para descomprimir el archivo y use el parámetro -v para mostrar el proceso de descompresión.
gzip -c servicios >servicios.gz #<== Utilice la opción -c con el símbolo de redirección de salida para dirigir la salida a servicios.gz.
zcat services.gz|head #<==el comando zcat puede conectar directamente el archivo comprimido para leer el paquete comprimido.
zcat services.gz >services #<== también se puede descomprimir directamente y redirigir al archivo.
zip: empaquetar y comprimir archivos
zip [opciones] [archivo o directorio]
zip services.zip ./services #<==Formato: nombre del paquete comprimido zip archivo comprimido.
zip tmp.zip ./tmp/ #<==Esto solo comprime el archivo en el directorio y los archivos en el directorio no están comprimidos.
zip -r tmp.zip ./tmp/ #<==Utilice la opción -r para comprimir de forma recursiva.
zip -r tmp1.zip ./tmp/ -x tmp/services.zip #<==-x opción especifica archivos sin comprimir.
descomprimir: descomprimir el archivo zip
descomprimir [opciones] [archivo comprimido]
unzip -l tmp.zip #<==Utilice la opción -l para ver la lista de archivos en el paquete comprimido.
descomprima tmp.zip #<==Extraiga el archivo directamente en la raíz. Debido a que el archivo fuente aún existe, aparecerá el siguiente mensaje. #<==Si reemplazar archivos, y sí nno AReemplazar todos los archivos NNo reemplazar todos los archivos rRenombrar
unzip -v tmp.zip #<==Muestra información al descomprimir.
unzip -o tmp.zip #<==No pregunta si se sobrescribe al descomprimir.
unzip -d /tmp tmp.zip #<==Puede usar la opción -d para conectar el directorio y especificar el directorio de descompresión.
scp: copia remota de archivos
scp [opciones] [usuario@host1:archivo1] [usuario@host2:archivo2]
scp /etc/services 10.0.0.9:/tmp#<==scp Nombre del archivo transferido Dirección IP del host de destino: el directorio al que desea transferir.
scp -p /etc/services 10.0.0.9:/tmp #<== Utilice la opción -p para mantener los atributos del archivo transferidos.
scp -rp /tmp 10.0.0.9:/tmp #<==Necesita usar la opción -r para copiar el directorio
scp 10.0.0.9:/etc/services . #<== Simplemente invierta el orden de los comandos enviados y descargue el archivo /etc/services desde el host 10.0.0.9 al directorio actual.
scp -rp 10.0.0.9:/tmp #<== Lleve el directorio tmp del host 10.0.0.9 al directorio actual.
rsync: herramienta de sincronización de archivos
1) Modo local: rsync [opciones] [archivo fuente] [archivo destino]
2) A través del modo de acceso remoto al shell: Extraer: rsync [opciones] usuario@host:archivo fuente [archivo de destino] Push: rsync [opciones] [archivo fuente] usuario@host:archivo de destino
3) modo demonio rsync Jalar: rsync [opciones] usuario@host::archivo fuente [archivo de destino] rsync [opciones] rsync://usuario@host:puerto/archivo fuente [archivo de destino] Empujar: rsync [opciones] [archivo fuente] usuario@host::archivo de destino rsync [opciones] [archivo fuente] rsync://usuario@host:puerto/archivo de destino
rsync -av /data1/ /data2 #<==Si hay una barra al final del directorio de origen, se copiará el contenido del directorio en lugar del directorio en sí.
rsync -av /data1 /data2 #<==Si el directorio de origen no tiene una barra diagonal, se copiará el directorio en sí y el contenido del directorio.
rsync -av /etc/hosts /tmp #<==El archivo fuente /etc/hosts y el directorio de destino /tmp están ambos en el mismo host.
rsync -av --delete /null/ /tmp/ #<== opción --delete hace que el contenido del directorio tmp sea consistente con el directorio vacío. Se eliminarán diferentes archivos y directorios, es decir, lo que esté en nulo se eliminará. en tmp. Si hay algún contenido que no está en nulo pero sí en tmp, debe eliminarse. Debido a que el directorio nulo está vacío, este comando eliminará todo el contenido en el directorio /tmp.
rsync -av 10.0.0.9:/tmp/ /tmp #<== Pull.
rsync -av /tmp/ 10.0.0.9:/tmp/ #<==Push.
rsync -av -e 'ssh -p 22' /tmp 10.0.0.9:/tmp/ #<== En el caso anterior, los datos sincronizados mediante rsync se transmiten en texto sin cifrar. En escenarios donde se requiere seguridad de datos, -e. se puede utilizar La opción utiliza el túnel SSH para cifrar y transmitir datos. -p es la opción del comando SSH y especifica el número de puerto para la transmisión SSH como 22. El resultado de este comando es enviar los datos al archivo /tmp local. directorio a 10.0.0.9 a través del túnel cifrado SSH El directorio /tmp del host. De la misma manera, ejecute "rsync -av -e 'ssh -p 22' 10.0.0.9:/tmp/ /tmp" para extraer datos del directorio /tmp del host 10.0.0.9 al directorio /tmp local a través del Túnel cifrado SSH.
Capítulo 5 Comandos de archivos de búsqueda y visualización de información de Linux
uname: muestra información del sistema
nombre [opción]
uname -a #<==Muestra toda la información relevante sobre el sistema.
uname -m#<==arquitectura de hardware de 64 bits.
uname -n#<==El nombre del host es oldboy.
uname -r#<==Número de versión de lanzamiento del kernel.
uname -s #<==Nombre del kernel.
uname -v#<==número de versión del kernel.
uname -p#<==El tipo de procesador es CPU de 64 bits.
uname -o#<==Nombre del sistema operativo.
uname -i#<==plataforma de hardware.
nombre de host: muestra o establece el nombre de host del sistema
nombre de host [opciones]
nombre de host #<==Si no se toman parámetros, se mostrará el nombre del host.
El nombre de host Se puede utilizar un comando #<==hostname para modificar temporalmente el nombre de host agregando un nombre de host.
vi /etc/sysconfig/network #<==Solo modificando el archivo de configuración el nombre de host modificado puede seguir siendo válido después de reiniciar el sistema.
Cabe señalar que en el sistema CentOS7, el archivo de configuración del nombre de host se cambia a /etc/hostname. La modificación de /etc/sysconfig/network no tendrá efecto.
nombre de host -s #<==Mostrar nombre de host en formato corto.
nombre de host -a #<==Muestra el alias del host.
nombre de host -i #<==Cuando la red no es muy buena, los resultados serán muy lentos.
nombre de host -I #<== Se recomienda usar -I para obtener la dirección IP del sistema. La cantidad de direcciones IP se mostrará tantas tarjetas de red (con direcciones IP) como haya.
dmesg: Diagnóstico de anomalías en el inicio del sistema
dmesg [opciones]
dmesg|less #<==Ver el contenido del búfer en la paginación mediante el comando less, que se utiliza para ver información como fallas de hardware.
stat: muestra el estado del archivo o del sistema de archivos
stat [opciones] [archivo o directorio]
du: Estadísticas de uso de espacio en disco
du [opciones] [archivo o directorio]
du -a #<==Muestra el tamaño de todos los archivos en el directorio actual (incluidos los archivos ocultos y todos los archivos en subdirectorios).
du -s #<==Muestra el tamaño total del directorio actual.
Los parámetros du -h #<==-h se convertirán en resultados fáciles de leer y comprensibles, como K, M y G.
du -sh #<==-sh es una combinación de comandos de uso común y un método recomendado.
du -sh /usr/local/ #<==Muestra el tamaño total del directorio especificado.
du -h --max- Depth=1 /usr/local/ #<==Solo muestra el tamaño del directorio de primer nivel.
du -h --max- Depth=2 /usr/local/ #<==Solo muestra el tamaño de los directorios de primer y segundo nivel.
du -h --max- Depth=2 /usr/local/ --exclude=/usr/local/share #<==No mostrar el tamaño del directorio /usr/local/share.
fecha: muestra y configura la hora del sistema
fecha [opciones] [formato de fecha]
fecha %y #<==Mostrar año (formato corto).
fecha %Y #<==Mostrar año (formato largo).
fecha %m #<==Mostrar mes.
fecha %d #<==Mostrar el día.
fecha %H #<==Mostrar la hora.
fecha %M #<==Mostrar minutos.
fecha %S #<==Mostrar segundos.
fecha %F #<==Mostrar fecha en formato especial (año-mes-día).
fecha %T #<==Mostrar hora en formato especial (hora: minuto: segundo).
fecha %F -d "-1day" #<==Mostrar ayer (escritura concisa).
fecha %F -d "yesterday" #<==Mostrar ayer (escritura en inglés).
fecha %F -d "-2day" #<==Mostrar anteayer.
fecha %F -d "1día" #<==Mostrar mañana.
fecha %F -d "mañana" #<==Mostrar mañana (escritura en inglés).
fecha %F -d "2day" #<==Mostrar 2 días después.
fecha %F -d "1mes" #<==Se muestra 1 mes después.
fecha %F -d "1 año" #<==Se muestra 1 año después.
date -s 20170706 #<== se establece en 20170706 y la hora específica está vacía, que es 00:00:00.
date -s 00:00:03 #<==Establezca la hora específica y la fecha no se cambiará.
date -s "00:00:03 20170706" #<==Esto puede configurar el tiempo completo.
eco: muestra una línea de texto
eco [opciones] [texto]
echo ¡Hola mundo! #<==echo recibe directamente el texto que desea generar.
echo "hola mundo" >>hello.txt #<== Utilice el símbolo de redirección adjunto ">>" para escribir texto en el archivo.
echo -n "oldboy";echo "oldboy" #<==Utilice la opción -n para generar el resultado en una línea sin romper la línea.
ver: monitorear la ejecución del comando
mirar [opciones] [comando]
watch -n 1 -d netstat -ant #<==netstat se explicará en detalle más adelante, -n especifica la ejecución de comandos cada segundo y -d resalta.
watch cat oldboy.log<#==Supervise los cambios en el archivo oldboy.log en el directorio actual.
watch -t cat oldboy.log -t parámetro no muestra el título
cual: muestra la ruta completa del comando
cual [opción] [nombre del comando]
what date #<==Ver la ruta completa del comando de fecha.
cual cual #<==Si se establece un alias para el comando especificado, el uso de la función which también mostrará el alias.
Which cd #<== El comando integrado de Bash no puede usar Which.
cual -a mysql #<==Se muestran todas las rutas que contienen comandos mysql.
Whereis: muestra la ruta completa del comando y sus archivos relacionados.
donde está [opciones] [nombre de archivo]
dondeisvn
donde está -b svn #<==Busca solo archivos ejecutables.
donde está -m svn #<==Busca solo el archivo de ayuda del hombre.
donde está -s svn #<==Busca solo archivos de código fuente.
localizar: localizar rápidamente rutas de archivos
localizar [opciones] [nombre de archivo]
localizar pwd #<== va seguido directamente del nombre del archivo que desea buscar. Siempre que contenga la cadena pwd, se puede encontrar.
localizar -c pwd #<==Solo muestra el número de líneas coincidentes.
localizar /etc/sh #<==Salida siempre que parte de ella coincida.
localizar /etc/sh* #<== También puedes usar comodines.
localizar -c /etc/*sh*
actualizadob: actualiza la base de datos mlocate
actualizadob [opciones]
actualizadob -vU /root/ #<==-v muestra el proceso de actualización, -U especifica la ruta de actualización.
Capítulo 4 Los tres mosqueteros del procesamiento de textos
grep: herramienta de filtrado de texto
El comando grep es uno de los comandos más importantes en el sistema Linux. Su función es filtrar líneas y datos coincidentes de archivos de texto o flujos de datos de canalización.
grep -v "oldboy" test1.txt #<== Filtre las líneas que no contienen la cadena oldboy. Preste atención a la cadena filtrada y utilice comillas dobles tanto como sea posible.
grep -n "oldboy" test2.txt #<== Genera las líneas que contienen la cadena oldboy y muestra el número de línea.
grep -n "." test2.txt #<== muestra los números de línea de todas las líneas (similar a cat -n test2.txt aquí significa hacer coincidir cualquier carácter, es decir, hacer coincidir todo el contenido). , muestra los números de línea de todas las líneas.
grep -i "alex" test2.txt #<==Utilice el parámetro -i para filtrar alex sin distinguir entre mayúsculas y minúsculas.
grep -Ei "oldboy|alex" test2.txt #<== No distingue entre mayúsculas y minúsculas y filtra cadenas que contienen oldboy y alex.
grep -Ei --color=auto "oldboy|alex" test2.txt #<==Agregue el parámetro --color. #<== Las cadenas coincidentes se mostrarán en color rojo.
grep -c "oldboy" test2.txt cuenta el número de cadenas coincidentes
sed: editor de flujo de caracteres
sed [opciones] [caracteres de comando integrados de sed] [archivo de entrada]
sed '2a 106,dandan,CSO' people.txt #<==Aquí se utiliza el comando integrado sed y una función de adición.
sed '2i 106,dandan,CSO' people.txt #<==Aquí se utiliza la función de inserción del comando integrado sed i.
sed '2a 106,dandan,CSO 107,bingbing,CCO' person.txt agrega varias líneas de texto después de la línea especificada en el archivo.
sed '2d' person.txt #<==El comando incorporado sed d se usa aquí para implementar la función de eliminación, especificando la eliminación del texto en la línea 2
sed '2,5d' person.txt #<== "2,5" es una combinación de direcciones numéricas, separadas por comas. Su función es eliminar la segunda a la quinta línea del archivo (eliminar varias líneas) de texto. incluyendo las filas 2 y 5, por lo que solo queda la fila 1.
sed 's#zhangyao#dandan#g' person.txt #<==El comando integrado sed s se usa aquí para implementar la función de reemplazo, y el indicador de reemplazo global g se usa para reemplazar todas las cadenas que coinciden con zhangyao en el archivo . Debe prestar atención al formato gramatical. Coloque el texto "zhangyao" que debe reemplazarse entre el primer y el segundo "#", y coloque el texto reemplazado "dandan" entre el segundo y el tercer "#". El resultado es que "zhangyao" en la segunda línea se reemplaza por "dandan".
sed '2p' person.txt #<== El comando integrado sed p se usa aquí para implementar la función de consulta, y el contenido de la línea 2 se especifica en combinación con la dirección numérica. Sin embargo, encontraremos que el resultado. no es solo la salida de la línea 2, sino también el resto del archivo. El contenido también se muestra porque el comando sed tiene una función de salida predeterminada.
sed -n '2p' person.txt #<== Para resolver el problema del comando anterior que muestra contenido redundante, use la opción -n para cancelar la salida predeterminada y solo generar el texto de la línea coincidente, de modo que solo Debe recordar usar el comando p con la opción requerida - n.
sed -n '2,3p' person.txt #<==Por supuesto, puede usar el rango de direcciones "2,3" para ver el contenido de las líneas 2 a 3.
Comenzando con los conceptos básicos de awk
awk [parámetro] archivo 'condición {acción}'...
awk 'NR==5' oldboy.txt #<==En comparación con el contenido anterior, de hecho es la línea 5.
awk 'NR==2,NR==6' viejo.txt
awk '{print NR,$0}' oldboy.txt agrega un número de línea antes de cada línea del archivo.
awk 'NR==2,NR==6 {print NR,$0}' oldboy.txt #<==Muestra las líneas 2 a 6 del archivo oldboy.txt e imprime el número de línea.
awk -F ":" '{print $1,$3,$NF}' oldboy.txt muestra la primera, tercera y última columna del archivo oldboy.txt.
awk '{gsub("/sbin/nologin","/bin/bash",$0);print $0}' oldboy.txt Reemplace /sbin/nologin en el archivo con /bin/bash (práctica de la función awk).