1. Comando ls

Es la abreviatura de "list". Con el comando ls no solo se pueden ver los archivos contenidos en una carpeta de Linux, sino también los permisos de archivos (incluidos directorios, carpetas y permisos de archivos), ver información del directorio, etc.

Combinaciones de parámetros comunes:

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

Ejemplos:

(1) Ordenar en orden cronológico inverso de forma legible y mostrar información detallada de los archivos.

ls -lhrt

(2) Mostrar información detallada de los archivos en orden inverso por tamaño.

ls -lrS

(3) Listar el contenido detallado de todos los directorios que comienzan con "t" en el directorio actual.

ls -l t*

(4) Listar rutas absolutas de archivos (sin incluir archivos ocultos).

ls | sed "s:^:`pwd`/:"

(5) Listar rutas absolutas de archivos (incluyendo archivos ocultos).

find $pwd -maxdepth 1 | xargs ls -ld

2. Comando cd

Sintaxis del comando cd (changeDirectory):

cd [目录名]

Descripción: Cambia el directorio actual a dirName.

Ejemplos:

(1) Entrar al directorio deseado.

cd /

(2) Entrar al directorio "home".

cd ~

(3) Entrar al directorio de trabajo anterior.

cd -

(4) Usar el parámetro del comando anterior como parámetro de cd.

cd !$

3. Comando pwd

El comando pwd se utiliza para ver la ruta del directorio de trabajo actual.

Ejemplos:

(1) Ver la ruta actual.

pwd

(2) Ver la ruta real de un enlace simbólico.

pwd -P

4. Comando mkdir

El comando mkdir se utiliza para crear carpetas.

Opciones disponibles:

  • -m: Establecer permisos de acceso para el nuevo directorio; también se pueden establecer con el comando chmod.
  • -p: Puede ser un nombre de ruta. Si algunos directorios en la ruta aún no existen, con esta opción el sistema creará automáticamente esos directorios faltantes, es decir, se pueden crear varios directorios de una vez.

Ejemplos:

(1) Crear una carpeta llamada t en el directorio de trabajo actual.

mkdir t

(2) Crear el directorio con la ruta test/t1/t en el directorio tmp; si no existe, crearlo:

mkdir -p /tmp/test/t1/t

5. Comando rm

Elimina uno o más archivos o directorios dentro de un directorio. Si no se usa la opción -r, rm no eliminará directorios. Si se usa rm para eliminar archivos, generalmente aún se puede restaurar el archivo a su estado original.

rm [选项] 文件…

Ejemplos:

(1) Eliminar cualquier archivo .log, preguntando confirmación uno por uno antes de eliminar:

rm -i *.log

(2) Eliminar el subdirectorio test y todos los archivos en el subdirectorio, sin confirmar uno por uno:

rm -rf test

(3) Eliminar archivos que comienzan con -f.

rm -- -f*

6. Comando rmdir

Elimina uno o más subdirectorios de un directorio. Para eliminar un directorio, también se deben tener permisos de escritura en su directorio padre.

Nota: No se pueden eliminar directorios no vacíos.

Ejemplos:

(1) Si el subdirectorio parent queda vacío después de eliminar su subdirectorio, elimínelo también de paso:

rmdir -p parent/child/child11

7. Comando mv

Mueve archivos o cambia el nombre de archivos, según el tipo del segundo parámetro (si es un directorio, mueve el archivo; si es un archivo, renombra el archivo).

Cuando el segundo parámetro es un directorio, el primer parámetro puede ser múltiples archivos o directorios separados por espacios, y luego mueve los múltiples archivos especificados por el primer parámetro al directorio especificado por el segundo parámetro.

Ejemplos:

(1) Renombrar el archivo test.log a test1.txt.

mv test.log test1.txt

(2) Mover los archivos log1.txt, log2.txt, log3.txt al directorio test3 en la raíz.

mv llog1.txt log2.txt log3.txt /test3

(3) Renombrar el archivo file1 a file2; si file2 ya existe, preguntar si sobrescribir.

mv -i log1.txt log2.txt

(4) Mover todos los archivos de la carpeta actual al directorio padre.

mv * ../

8. Comando cp

Copia archivos fuente al archivo destino, o copia múltiples archivos fuente al directorio destino.

Nota: En la copia por línea de comandos, si el archivo destino ya existe, se preguntará si sobrescribir. Sin embargo, en scripts de shell, si no se añade el parámetro -i, no se preguntará y se sobrescribirá directamente.

-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样

Ejemplos:

(1) Copiar a.txt al directorio test, conservando la fecha del archivo original; si el archivo original existe, preguntar si sobrescribir.

cp -ai a.txt test

(2) Crear un enlace (acceso directo) para a.txt.

cp -s a.txt link_a.txt

9. Comando cat

cat tiene principalmente tres funciones:

1. Mostrar todo el archivo de una vez:

cat filename

2. Crear un archivo desde el teclado:

cat > filename

Solo se pueden crear archivos nuevos, no editar archivos existentes.

3. Combinar varios archivos en uno solo:

cat file1 file2 > file
  • -b Muestra números de línea solo para líneas no vacías.
  • -n Muestra números de línea para todas las líneas.

Ejemplos:

(1) Agregar números de línea al contenido del archivo log2012.log y escribir el resultado en el archivo log2013.log.

cat -n log2012.log log2013.log

(2) Agregar números de línea (sin numerar líneas en blanco) al contenido de log2012.log y log2013.log, y luego añadir el contenido a log.log.

cat -b log2012.log log2013.log log.log

(3) Usar here doc para generar un nuevo archivo.

cat >log.txt <<EOF
>Hello
>World
>PWD=$(pwd)
>EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test

(4) Mostrar en orden inverso.

tac log.txt
PWD=/opt/soft/test
World
Hello

10. Comando more

Su función es similar a cat; more muestra el contenido página por página para que el usuario pueda leer cómodamente. La instrucción básica es presionar la barra espaciadora para avanzar a la siguiente página, y presionar la tecla b para retroceder una página.

Parámetros del comando:

+n      从笫 n 行开始显示
-n       定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 
-c       从顶部清屏,然后显示
-d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l        忽略Ctrl+l(换页)字符
-p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s       把连续的多个空行显示为一行
-u       把文件内容中的下画线去掉

Comandos de operación comunes:

Enter    向下 n 行,需要定义。默认为 1 行
Ctrl+F   向下滚动一屏
空格键  向下滚动一屏
Ctrl+B  返回上一屏
=       输出当前行的行号
:f     输出文件名和当前行的行号
V      调用vi编辑器
!命令   调用Shell,并执行命令
q       退出more

Ejemplos:

(1) Mostrar el contenido del archivo a partir de la línea 3.

more +3 text.txt

(2) Mostrar información detallada del directorio de archivos listado, usando una tubería para mostrar 5 líneas a la vez.

ls -l | more -5

Presionar espacio muestra las siguientes 5 líneas.

11. Comando less

less es similar a more, pero con less se puede navegar libremente por el archivo, mientras que more solo puede avanzar y no retroceder. Además, less no carga todo el archivo antes de visualizarlo.

Parámetros comunes del comando:

-i  忽略搜索时的大小写
-N  显示每行的行号
-o  <文件名> 将less 输出的内容在指定文件中保存起来
-s  显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / o  ? 有关)
N:反向重复前一个搜索(与 / o  ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页

Ejemplos:

(1) Usar ps para ver información de procesos y mostrarla paginada mediante less.

ps -aux | less -N

(2) Ver múltiples archivos.

less 1.log 2.log

Se puede usar n para ver el siguiente y p para ver el anterior.

12. Comando head

head se utiliza para mostrar el inicio de un archivo en la salida estándar. Por defecto, el comando head imprime las primeras 10 líneas del archivo correspondiente.

Parámetros comunes:

-n<行数> 显示的行数(行数为复数表示从最后向前数)

Ejemplos:

(1) Mostrar las primeras 20 líneas del archivo 1.log.

head 1.log -n 20

(2) Mostrar los primeros 20 bytes del archivo 1.log.

head -c 20 log2014.log

(3) Mostrar las últimas 10 líneas de t.log.

head -n -10 t.log

13. Comando tail

Se utiliza para mostrar el contenido final de un archivo especificado. Si no se especifica un archivo, procesa la información de entrada. Se usa comúnmente para ver archivos de registro.

Parámetros comunes:

-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)

(1) Leer cíclicamente el contenido de un archivo que aumenta gradualmente.

ping 127.0.0.1 > ping.log &

Ejecución en segundo plano: se puede ver con jobs -l, o usar fg para llevarlo al primer plano.

tail -f ping.log

(Ver registros)

14. Comando which

En Linux, si necesitas buscar un archivo y no sabes dónde está, puedes usar algunos de los siguientes comandos para buscarlo:

which     查看可执行文件的位置。
whereis 查看文件的位置。
locate  配合数据库查看文件位置。
find        实际搜寻硬盘查询文件名称。

which busca la ubicación de un comando del sistema dentro de la ruta especificada por PATH y devuelve el primer resultado de la búsqueda. Con el comando which, se puede ver si un comando del sistema existe y cuál es la ubicación exacta del comando que se ejecuta.

Parámetros comunes:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

Ejemplos:

(1)Ver si existe el comando ls y cuál se ejecuta.

which ls

(2)Ver which.

which which

(3)Ver cd.

which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)

Ver la configuración actual de PATH:

echo $PATH

O usar env para ver todas las variables de entorno y sus valores correspondientes.

15. Comando whereis

El comando whereis solo se utiliza para buscar nombres de programas, y solo busca archivos binarios (parámetro -b), archivos de documentación de man (parámetro -m) y archivos de código fuente (parámetro -s). Si se omite el parámetro, devuelve toda la información. Tanto whereis como locate se basan en la base de datos integrada del sistema para buscar, por lo que son muy eficientes, mientras que find recorre el disco duro para buscar archivos.

Parámetros comunes:

-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

Ejemplos:

(1)Buscar archivos relacionados con el programa locate.

whereis locate

(2)Buscar el archivo de código fuente de locate.

whereis -s locate

(3)Buscar el archivo de ayuda de locate.

whereis -m locate

16. Comando locate

locate encuentra archivos rápidamente buscando en la base de datos de documentos integrada del sistema; la base de datos es actualizada por el programa updatedb, que es invocado periódicamente por el daemon cron. De forma predeterminada, el comando locate es más rápido al buscar en la base de datos que buscar en todos los datos del disco duro, pero la desventaja es que los archivos encontrados por locate que se hayan creado recientemente o se hayan renombrado pueden no encontrarse. En la configuración predeterminada, updatedb se ejecuta una vez al día; se puede modificar el crontab para actualizar la configuración (etc/crontab).

locate es similar al comando find; se pueden usar comodines como *, ? para realizar búsquedas con coincidencia de patrones.

Parámetros comunes:

-l num(要显示的行数)
-f   将特定的档案系统排除在外,如将proc排除在外
-r   使用正则运算式做为寻找条件

Ejemplos:

(1)Buscar todos los archivos relacionados con pwd (el nombre del archivo contiene pwd).

locate pwd

(2)Buscar todos los archivos que comiencen con sh en el directorio etc.

locate /etc/sh

(3)Buscar archivos que terminen en reason en el directorio /var.

locate -r '^/var.*reason$'(其中.表示一个字符,*表示任务多个;.*表示任意多个字符)

17. Comando find

Se utiliza para buscar archivos en el árbol de archivos y realizar el procesamiento correspondiente.

Formato del comando:

find pathname -options [-print -exec -ok ...]

Parámetros del comando:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

Opciones del comando:

-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group  按照文件所属的组来查找文件。
-type  查找某一类型的文件,诸如:
   b - 块设备文件
   d - 目录
   c - 字符设备文件
   l - 符号链接文件
   p - 管道文件
   f - 普通文件

-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n   查找系统中最后N分钟访问的文件
-atime n  查找系统中最后n*24小时访问的文件
-cmin n   查找系统中最后N分钟被改变文件状态的文件
-ctime n  查找系统中最后n*24小时被改变文件状态的文件
-mmin n   查找系统中最后N分钟被改变文件数据的文件
-mtime n  查找系统中最后n*24小时被改变文件数据的文件
(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

Ejemplos:

(1)Buscar archivos modificados en las últimas 48 horas.

find -atime -2

(2)Buscar en el directorio actual los archivos que terminen en .log..Representa el directorio actual.

find ./ -name '*.log'

(3)Buscar archivos con permiso 777 en el directorio /opt.

find /opt -perm 777

(4)Buscar archivos de más de 1K.

find -size +1000c

Buscar archivos de exactamente 1000 caracteres.

find -size 1000c 

Después del parámetro -exec va el comando command, y su terminación se marca con ;, por lo que el punto y coma al final de este comando es indispensable. Teniendo en cuenta que el punto y coma puede tener diferentes significados en distintos sistemas, se le antepone una barra invertida. Las llaves {} representan el nombre del archivo encontrado anteriormente por find.

Ejemplos:

(5)Buscar en el directorio actual archivos cuya fecha de modificación sea anterior a 10 días y eliminarlos (sin aviso).

find . -type f -mtime +10 -exec rm -f {} \;

(6)Buscar en el directorio actual todos los archivos cuyo nombre termine en .log y cuya fecha de modificación sea superior a 5 días, y eliminarlos, pero pidiendo confirmación antes de eliminarlos. Presione y para eliminar el archivo, presione n para no eliminarlo.

find . -name '*.log' mtime +5 -ok -exec rm {} \;

(7)Buscar en el directorio actual archivos cuyo nombre comience con passwd y cuyo contenido contenga la cadena "pkg".

find . -f -name 'passwd*' -exec grep "pkg" {} \;

(8)Usar la opción exec para ejecutar el comando cp.

find . -name '*.log' -exec cp {} test3 \;

-xargs: el comando find pasa los archivos coincidentes al comando xargs, y el comando xargs solo toma una parte de los archivos a la vez, no todos, a diferencia de la opción -exec. De esta manera, puede procesar primero la primera parte de los archivos obtenidos, luego el siguiente lote, y así sucesivamente.

Ejemplos:

(9)Buscar cada archivo normal en el directorio actual y luego usar xargs para determinar el tipo de archivo.

find . -type f -print | xargs file

(10)Buscar todos los archivos normales en el directorio actual que terminen en js y que contengan la cadena 'editor'.

find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;
find -type f -name '*.js' | xargs grep -lF 'editor'

(11)Usar xargs para ejecutar el comando mv.

find . -name "*.log" | xargs -i mv {} test4

(12)Usar el comando grep para buscar la palabra hostnames en todos los archivos normales del directorio actual y marcar la línea donde aparece:

find . -name \*(转义) -type f -print | xargs grep -n 'hostnames'

(13)Buscar en el directorio actual archivos que comiencen con una letra minúscula y terminen con un número del 4 al 9 seguido de .log.

find . -name '[a-z]*[4-9].log' -print

(14)Buscar en el directorio test, no buscar en el subdirectorio test4.

find test -path 'test/test4' -prune -o -print

(15)Ejemplo 1: Buscar archivos cuya fecha de modificación sea más reciente que el archivo log2012.log pero más antigua que el archivo log2017.log.

find -newer log2012.log ! -newer log2017.log

Usar la opción depth:

La opción depth permite que, al hacer una copia de seguridad del sistema de archivos en una cinta con el comando find, se desee respaldar primero todos los archivos y luego los archivos de los subdirectorios.

Ejemplo: el comando find comienza desde el directorio raíz del sistema de archivos para buscar un archivo llamado CON.FILE. Primero coincidirá con todos los archivos y luego entrará en los subdirectorios para buscar.

find / -name "CON.FILE" -depth -print

18. Comando chmod

Se utiliza para cambiar los permisos de acceso de archivos o directorios en el sistema Linux. Se usa para controlar los permisos de acceso de archivos o directorios. Este comando tiene dos formas de uso: una es el método de configuración simbólica, que incluye letras y operadores; la otra es el método de configuración numérica, que incluye números.

Los permisos de acceso de cada archivo o directorio se dividen en tres grupos, cada uno representado por tres posiciones: los permisos de lectura, escritura y ejecución del propietario del archivo; los permisos de lectura, escritura y ejecución de los usuarios del mismo grupo que el propietario; y los permisos de lectura, escritura y ejecución de otros usuarios del sistema. Se puede usar ls -l test.txt para consultarlos.

Tomando el archivo log2012.log como ejemplo:

-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

La primera columna tiene 10 posiciones; el primer carácter especifica el tipo de archivo. En un sentido general, un directorio también es un archivo. Si el primer carácter es un guion, indica un archivo que no es un directorio. Si es d, indica un directorio. Desde el segundo carácter hasta el décimo hay 9 caracteres, agrupados de 3 en 3, que representan los permisos de los 3 grupos de usuarios sobre el archivo o directorio. En los caracteres de permisos, el guion representa permiso vacío, r representa solo lectura, w representa escritura y x representa ejecución.

Parámetros comunes:

-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件

Alcance de permisos:

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

Códigos de permisos:

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限

Ejemplos:

(1)Agregar permiso de ejecución para todos los usuarios al archivo t.log.

chmod a+x t.log

(2)Revocar todos los permisos originales, luego dar al propietario permiso de lectura y mostrar la información del proceso.

chmod u=r t.log -c

(3)Asignar al propietario de file permisos de lectura, escritura y ejecución (7); al grupo de file permisos de lectura y ejecución (5); y a otros usuarios permiso de ejecución (1).

chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)

(4)Agregar permiso de lectura a todos los archivos del directorio test y sus subdirectorios.

chmod u+r,g+r,o+r -R text/ -c
19. Comando tar.

Se utiliza para comprimir y descomprimir archivos. tar en sí no tiene función de compresión, solo tiene función de empaquetado; la compresión y descompresión se realizan invocando otras funciones.

Aclaremos dos conceptos: empaquetar y comprimir. Empaquetar significa convertir una gran cantidad de archivos o directorios en un solo archivo; comprimir es convertir un archivo grande en un archivo pequeño mediante algunos algoritmos de compresión.

Parámetros comunes:

-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程

Sobre la compresión con gzip y bzip2:

gzip 实例:压缩 gzip fileName .tar.gz 和.tgz  解压:gunzip filename.gz o  gzip -d filename.gz
          对应:tar zcvf filename.tar.gz     tar zxvf filename.tar.gz

bz2实例:压缩 bzip2 -z filename .tar.bz2 解压:bunzip filename.bz2或bzip -d filename.bz2
       对应:tar jcvf filename.tar.gz         解压:tar jxvf filename.tar.bz2

Ejemplos:

(1)Empaquetar todos los archivos en un paquete tar.

tar -cvf log.tar 1.log,2.log 或tar -cvf log.*

(2)Empaquetar todos los archivos y directorios bajo /etc en el directorio especificado y comprimirlos con gz.

tar -zcvf /tmp/etc.tar.gz /etc

(3)Ver el contenido del archivo recién empaquetado (asegúrese de agregar z, porque está comprimido con gzip).

tar -ztvf /tmp/etc.tar.gz

(4)Comprimir y empaquetar /home y /etc, pero no /home/dmtsai.

tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

20. Comando chown

chown cambia el propietario del archivo especificado al usuario o grupo especificado. El usuario puede ser un nombre de usuario o un ID de usuario; el grupo puede ser un nombre de grupo o un ID de grupo; los archivos son una lista de archivos cuyos permisos se van a cambiar, separados por espacios, y se admiten comodines.

-c 显示更改的部分的信息
-R 处理指定目录及子目录

Ejemplos:

(1)Cambiar el propietario y el grupo, y mostrar la información del cambio.

chown -c mail:mail log2012.log

(2)Cambiar el grupo del archivo.

chown -c :mail t.log

(3)Cambiar el propietario y el grupo de la carpeta y sus subdirectorios a mail.

chown -cR mail: test/

21. Comando df

Muestra el uso del espacio en disco. Obtiene información como cuánto espacio del disco duro está ocupado y cuánto espacio queda actualmente. Si no se especifica un nombre de archivo, se mostrará el espacio disponible de todos los sistemas de archivos montados actualmente. De forma predeterminada, el espacio en disco se muestra en unidades de 1KB, a menos que se especifique la variable de entorno POSIXLY_CORRECT, en cuyo caso se mostrará en unidades de 512 bytes:

-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型

Ejemplos:

(1)Mostrar el uso del disco.

df -l

(2)Listar todos los sistemas de archivos y sus tipos de forma legible.

df -haT

22. Comando du

El comando du también sirve para ver el espacio utilizado, pero a diferencia del comando df, el comando du de Linux examina el espacio de disco utilizado por archivos y directorios:

Formato del comando:

du [选项] [文件]

Parámetros comunes:

-a 显示目录中所有文件大小
-k 以KB为单位显示文件大小
-m 以MB为单位显示文件大小
-g 以GB为单位显示文件大小
-h 以易读方式显示文件大小
-s 仅显示总计
-c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

Ejemplos:

(1)Mostrar el tamaño de la carpeta y sus subcarpetas de forma legible.

du -h scf/

(2)Mostrar el tamaño de todos los archivos dentro de la carpeta de forma legible.

du -ah scf/

(3)Mostrar el tamaño de espacio en disco que ocupan varios archivos o directorios y también calcular su total.

du -hc test/ scf/

(4)Mostrar el espacio utilizado por cada subdirectorio del directorio actual.

du -hc --max-depth=1 scf/

23. Comando ln

La función es crear un enlace sincronizado para un archivo en otra ubicación; cuando se necesita el mismo archivo en diferentes directorios, no es necesario crear el mismo archivo para cada directorio. Los enlaces creados mediante ln reducen el uso de espacio en disco.

Clasificación de enlaces: enlaces simbólicos y enlaces duros.

Enlace simbólico:

  • 1. El enlace simbólico existe en forma de ruta. Es similar a los accesos directos del sistema operativo Windows.
  • 2. Los enlaces simbólicos pueden abarcar sistemas de archivos; los enlaces duros no pueden.
  • 3. Un enlace simbólico puede enlazar a un nombre de archivo que no existe.
  • 4. Un enlace simbólico puede enlazar directorios.

Enlace duro:

  • 1. El enlace duro existe en forma de copia del archivo, pero no ocupa espacio real.
  • 2. No se permite crear enlaces duros para directorios.
  • 3. Los enlaces duros solo se pueden crear dentro del mismo sistema de archivos.

Nota importante:

  • Primero: el comando ln mantiene la sincronización de todos los archivos enlazados; es decir, sin importar cuál modifiques, los demás archivos experimentarán el mismo cambio.
  • Segundo: los enlaces de ln se dividen en enlaces simbólicos y enlaces duros. Un enlace simbólico es `ln -s archivo_origen archivo_destino`; solo genera una imagen del archivo en la ubicación elegida y no ocupa espacio en disco. Un enlace duro es `ln archivo_origen archivo_destino`, sin el parámetro -s; genera un archivo del mismo tamaño que el archivo original en la ubicación elegida. Tanto con enlaces simbólicos como con enlaces duros, los archivos se mantienen sincronizados.
  • Tercero: el comando ln se usa para enlazar archivos o directorios. Si se especifican dos o más archivos o directorios a la vez, y el destino final es un directorio ya existente, todos los archivos o directorios especificados anteriormente se copiarán en ese directorio. Si se especifican múltiples archivos o directorios a la vez, y el destino final no es un directorio existente, aparecerá un mensaje de error.

Parámetros comunes:

-b 删除,覆盖以前建立的链接
-s 软链接(符号链接)
-v 显示详细处理过程

Ejemplos:

(1) Crear un enlace simbólico para un archivo y mostrar información de la operación.

ln -sv source.log link.log

(2) Crear un enlace duro para un archivo y mostrar información de la operación.

ln -v source.log link1.log

(3) Crear un enlace simbólico para un directorio.

ln -sv /opt/soft/test/test3 /opt/soft/test/test5

24. Comando date

Muestra o establece la fecha y hora del sistema.

Parámetros del comando:

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u  显示GMT.
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC.
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示).
%D 日期(含年月日).
%m 月份(以01-12来表示).
%y 年份(以00-99来表示).
%Y 年份(以四位数来表示).

Ejemplos:

(1) Mostrar el día siguiente.

date +%Y%m%d --date="+1 day"  //显示下一天的日期

(2) Uso del parámetro -d.

date -d "nov 22"  今年的 11 月 22 日是星期三
date -d '2 weeks' 2周后的日期
date -d 'next monday' (下周一的日期)
date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
date -d last-month +%Y%m(上个月是几月)
date -d next-month +%Y%m(下个月是几月)

25. Comando cal

Permite al usuario mostrar el calendario gregoriano (calendario solar). Si solo hay un parámetro, representa el año (1-9999); si hay dos parámetros, representan el mes y el año:

Parámetros comunes:

-3 显示前一月,当前月,后一月三个月的日历
-m 显示星期一为第一列
-j 显示在当前年第几天
-y [year]显示当前年[year]份的日历

Ejemplos:

(1) Mostrar la fecha de un año y mes específicos.

cal 9 2012

(2) Mostrar el calendario de cada mes de 2013.

cal -y 2013

(3) Usar el lunes como primera columna y mostrar los tres meses: anterior, actual y siguiente.

cal -3m

26. Comando grep

Potente comando de búsqueda de texto; grep (Global Regular Expression Print): búsqueda global de expresiones regulares.

La forma de trabajar de grep es la siguiente: busca una plantilla de cadena en uno o más archivos. Si la plantilla incluye espacios, debe estar entre comillas; todas las cadenas después de la plantilla se consideran nombres de archivo. Los resultados de la búsqueda se envían a la salida estándar y no afectan el contenido del archivo original.

Formato del comando:

grep [option] pattern file|dir

Parámetros comunes:

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹

Expresiones regulares de grep:

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p.  
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.*   #一起用代表任意字符。  
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep. 
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1.   
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p.  
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
\b    #单词锁定符,如: '\bgrep\b'只匹配grep.

Ejemplos:

(1) Buscar el proceso especificado.

ps -ef | grep svn

(2) Contar el número de procesos especificados.

ps -ef | grep svn -c

(3) Leer palabras clave desde un archivo.

cat test1.txt | grep -f key.log

(4) Buscar recursivamente en carpetas líneas que comiencen con grep y listar solo los archivos.

grep -lR '^grep' /tmp

(5) Buscar el contenido de líneas que no comiencen con x.

grep '^[^x]' test.txt

(6) Mostrar las líneas que contengan los caracteres `ed` o `at`.

grep -E 'ed|at' test.txt

27. Comando wc

La función de wc (word count) es contar el número de bytes, palabras y líneas de los archivos especificados, y mostrar el resultado.

Formato del comando:

wc [option] file..

Parámetros del comando:

-c 统计字节数
-l 统计行数
-m 统计字符数
-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串

Ejemplos:

(1) Obtener líneas, palabras, bytes y nombre del archivo.

wc text.txt

Resultado:

7     8     70     test.txt

(2) Contar el número de líneas de la salida.

cat test.txt | wc -l

28. Comando ps

ps (process status) se utiliza para ver el estado de los procesos actualmente en ejecución; es una consulta puntual. Si se necesitan resultados dinámicos y continuos, use `top`.

En Linux, los procesos tienen 5 estados:

  • 1. En ejecución (se está ejecutando o esperando en la cola de ejecución).
  • 2. Interrumpible (en reposo, bloqueado, esperando que se cumpla alguna condición o la recepción de una señal).
  • 3. No interrumpible (no se activa ni se puede ejecutar al recibir una señal; el proceso debe esperar hasta que ocurra una interrupción).
  • 4. Zombi (el proceso ha terminado, pero su descriptor existe hasta que el proceso padre llama a la llamada al sistema wait4() para liberarlo).
  • 5. Detenido (el proceso deja de ejecutarse al recibir las señales SIGSTOP, SIGSTP, SIGTIN, SIGTOU).

El comando ps identifica los 5 estados de los procesos con los siguientes códigos:

D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

Parámetros del comando:

-A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程

Ejemplos:

(1) Mostrar las variables de entorno de todos los procesos actuales y las relaciones entre procesos.

ps -ef

(2) Mostrar todos los procesos actuales.

ps -A

(3) Combinar con grep para buscar un proceso.

ps -aux | grep apache

(4) Encontrar los números PID relacionados con los servicios cron y syslog.

ps aux | grep '(cron|syslog)'

29. Comando `top`

Muestra información relacionada con los procesos que se están ejecutando actualmente en el sistema, incluidos el ID del proceso, el uso de memoria, el uso de CPU, etc.

Parámetros comunes:

-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数

Ejemplos:

(1)

top - 14:06:23 up 70 days, 16:44,  2 users,  load average: 1.25, 1.32, 1.35
Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  3.4%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32949016k total, 14411180k used, 18537836k free,   169884k buffers
Swap: 32764556k total,        0k used, 32764556k free,  3612636k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
28894 root      22   0 1501m 405m  10m S 52.2  1.3   2534:16 java  

Las primeras cinco líneas son el área de información estadística general del estado actual del sistema.

Primera línea: información de la cola de tareas, igual que el resultado del comando `uptime`. Los parámetros específicos se explican a continuación:

14:06:23 — hora actual del sistema.

up 70 days, 16:44 — el sistema ha estado funcionando durante 70 días, 16 horas y 44 minutos (¡el sistema no se ha reiniciado durante este período!).

2 users — actualmente hay 2 usuarios conectados al sistema.

load average: 1.15, 1.42, 1.44 — los tres números después de load average representan la carga de 1 minuto, 5 minutos y 15 minutos, respectivamente.

Los datos de load average se obtienen comprobando el número de procesos activos cada 5 segundos y luego calculando un valor mediante un algoritmo específico. Si este número se divide por la cantidad de CPU lógicas y el resultado es superior a 5, indica que el sistema está funcionando con sobrecarga.

Segunda línea: Tasks — tareas (procesos). La información específica se explica a continuación:

El sistema tiene actualmente 206 procesos, de los cuales 1 está en ejecución, 205 en reposo (sleep), 0 en estado detenido (stoped) y 0 en estado zombi (zombie).

Tercera línea: información del estado de la CPU. Los atributos específicos se explican a continuación:

5.9%us — 用户空间占用CPU的百分比。
3.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
90.4% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.2% si — 软中断(Software Interrupts)占用CPU的百分比

Nota:Aquí el porcentaje de uso de la CPU es diferente del concepto de Windows; es necesario comprender los conocimientos relacionados con el espacio de usuario y el espacio del kernel en sistemas Linux.

Cuarta línea: estado de la memoria. La información específica es la siguiente:

32949016k total — 物理内存总量(32GB)
14411180k used — 使用中的内存总量(14GB)
18537836k free — 空闲内存总量(18GB)
169884k buffers — 缓存的内存量 (169M)

Quinta línea: información de la partición de intercambio swap. La información específica se explica a continuación:

32764556k total — 交换区总量(32GB)
0k used — 使用的交换区总量(0K)
32764556k free — 空闲交换区总量(32GB)
3612636k cached — 缓冲的交换区总量(3.6GB)

Sexta línea: línea en blanco.

Desde la séptima línea en adelante: monitoreo del estado de cada proceso (tarea). La información de las columnas se explica a continuación:

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

Comandos interactivos de top

h 显示top交互命令帮助信息
c 切换显示命令名称和完整命令行
m 以内存使用率排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中
o或者O 改变显示项目的顺序

30. Comando kill

Envía la señal especificada al proceso correspondiente. Si no se especifica el tipo, se envía SIGTERM (15) para terminar el proceso indicado. Si aún no se puede terminar el programa, se puede usar el parámetro "-KILL"; la señal que envía es SIGKILL (9), que forzará la finalización del proceso. Se puede usar el comando ps o jobs para ver el número de proceso. El usuario root puede afectar los procesos de cualquier usuario; los usuarios no root solo pueden afectar sus propios procesos.

Parámetros comunes:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

Ejemplos:

(1) Primero usar ps para buscar el proceso pro1 y luego usar kill para terminarlo.

kill -9 $(ps -ef | grep pro1)

31. Comando free

Muestra el uso de memoria del sistema, incluida la memoria física, la memoria de intercambio (swap) y la memoria del búfer del kernel.

Parámetros del comando:

-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合

Ejemplos:

(1) Mostrar el uso de memoria.

free
free -k
free -m

(2) Mostrar la información de uso de memoria en forma de totales.

free -t

(3) Consultar periódicamente el uso de memoria.

free -s 10

Dirección original: https://www.cnblogs.com/gaojun/p/3359355.html