Prefacio: Para ordenar algunos comandos que uso habitualmente, no será muy detallado, pero es muy práctico.
Tabla de contenido
- 1. Ver estructura de carpetas
- 2. Comandos del administrador de archivos
- 3. Ver el tamaño de la carpeta
- 4. Permisos de archivos y carpetas
- 5. Encuentra archivos
- 6. Encuentra contenido específico en un archivo
- 7. Compresión y descompresión de archivos
- 8. Montaje y desmontaje del sistema de archivos
- 9. Entrada y salida estándar
- 10. Ver información del archivo
- 11. Salida del contenido del archivo a la terminal
- 12. Comando de copia de archivo cp
1. Ver estructura de carpetas
usar | Orden | nota |
---|---|---|
Ver estructura de carpetas (no muestra archivos ocultos) | árbol | Necesita instalar el árbol: sudo apt-get install tree |
Ver estructura de carpetas (mostrar archivos ocultos) | árbol -a | |
Ver estructura de carpetas (solo se muestran las carpetas) | árbol -d | |
Ver estructura de carpetas (mostrar carpeta especificada) | carpeta de destino del árbol | Por ejemplo: árbol mydir |
Ver la estructura de archivos del directorio de primer nivel | árbol -L 1 | Agregue "-a" después para mostrar todos los archivos (incluidos los archivos ocultos) |
2. Comandos del administrador de archivos
● Ejemplo: Abra la carpeta en la ruta actual en la terminal
nautilus .
3. Ver el tamaño de la carpeta
● Ejemplo 1: mostrar el tamaño de la carpeta actual (si desea enumerar todos los subdirectorios del directorio actual, establezca la profundidad en 1)
du -h --max-depth=0
● Ejemplo 2: mostrar la carpeta de ruta o el tamaño de archivo especificado
du -sh 指定路径文件夹/文件
● Ejemplo 3: Mostrar el tamaño de todos los directorios de primer nivel en una carpeta (excluyendo archivos y carpetas ocultos)
● Ejemplo 4: Ver el tamaño de todos los archivos y carpetas ocultos en el directorio actual
du -sh .[!.]*
● Ejemplo 5: du -sh con sort
sun@sun-pc:~/project/AOSP$ du -sh ./* | sort -h
0 ./Android.bp
0 ./bootstrap.bash
0 ./vbmeta.img.info
4.0K ./disregard
4.0K ./Makefile
...
1.9G ./frameworks
26G ./prebuilts
72G ./out
Explicación:
si sort no agrega -h, habrá una situación en la que 4.0k esté por debajo de 1.9G, porque el comando sort se ordena de acuerdo con el código ascii de la primera columna de caracteres de forma predeterminada, obviamente el contenido generado por du -sh no se puede ordenar.
sort -h : usa números de legibilidad (por ejemplo: 2K 1G), de hecho, el factor de unidad también se considera al ordenar.
4. Permisos de archivos y carpetas
1. Descripción del permiso
En el sistema de archivos de Linux, los archivos o carpetas tienen tres conjuntos de permisos rwx.Los siguientes ejemplos ilustran:
sun@sun-pc:~$ ls -l
rw-r-xr-x 1 sun sun 0 5月 9 18:20 1.txt
Contando de izquierda a derecha, los tres grupos de permisos representan:
(1) Los permisos del archivo 所属用户
al archivo, incluidos los permisos de lectura, escritura y no ejecutables (rw-)
(2) Los 用户组
permisos del archivo al que pertenece el archivo. pertenece, incluido el ejecutable Lectura, no escritura, ejecutable (rx)
(3) 其他用户
Permisos para el archivo, incluidos los permisos de lectura, no escritura y ejecutable (rx)
2. Cambiar permisos
Use el comando chmod para cambiar los permisos de archivos o carpetas, o use el 1.txt anterior como ejemplo:
#为所属用户添加可执行权限
chmod u+x 1.txt
#为所属用户组添加可写权限
chmod g+w 1.txt
#为其他用户添加可写权限
chmod o+w 1.txt
#为所有用户添加写权限
chmod a+w 1.txt
#为所属用户和用户组添加写权限
chmod ug+w 1.txt
#为所属用户和用户组添加读写权限
chmod ug+rw 1.txt
Además de los métodos anteriores, también puede usar directamente números para representar permisos. - - - Puede considerarse como el número binario 000 y rwx como el número binario 111. Cuando use chmod para agregar permisos, simplemente convierta el número binario a octal. Cabe señalar que el número representa completamente todos los permisos, y un determinado permiso no se puede agregar por separado. Por lo tanto, cuando cambie los permisos, preste atención al cálculo de los números de permiso de acuerdo con las necesidades reales, para evitar cambiar un permiso que no necesita. quiero cambiar por error.
#更改所属用户权限为r-x,用户组权限为--x,其他用户权限为rw-
chmod 516 1.txt
5. Encuentra archivos
Ejemplo: busque el archivo test.txt
5.1 localizar
sun@sun-pc:~/myProjects$ locate /test.txt #locate只能查找文件名包含test.txt的文件,所以这里加上路径分割符号“/”
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/assets/test.txt
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/assets/subdir/subsubdir/test.txt
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/assets2/test.txt
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/res/raw/test.txt
/home/sun/Share/frameworks/compile/mclinker/unittests/test.txt
/home/sun/test.txt
Nota:
(1) localizar es buscar un determinado archivo en la base de información del sistema, la velocidad es rápida y el nombre del archivo distingue entre mayúsculas y minúsculas.
(2) Si se confirma que existe un determinado archivo, pero no se encuentra ninguna ubicación, debe ser causado por la falta de actualización de la base de información.Ejecute el siguiente comando para actualizar la base de información:
sudo updatedb //一般时间较久,建议空闲时间执行
5.2 encontrar
Ejemplo 1: busque el archivo test.txt
find -name "test.txt"
Ejemplo 2: Excluir un determinado directorio al buscar el archivo test.txt-path 要排除的目录 -prune -o
Si desea excluir varios directorios, simplemente escriba algunas oraciones más.
find ./ -path ./out -prune -o -name test.txt //在当前目录下查找test.txt,查找的时候排除当前目录下的out目录
Ejemplo 3: busque el archivo en el directorio A con el mismo nombre que el archivo en el directorio B
find A目录路径 -type f | sed 's/.*\///' | xargs -L 1 find -name
Los tres comandos anteriores están conectados a través de símbolos de tuberías y se explican por separado:
- encuentre la ruta del directorio A -escriba f
para encontrar todos los archivos en el directorio A - sed 's/.*///'
elimina la ruta en la salida del comando anterior, dejando solo el nombre del archivo - xargs -L 1 find -name
-L 1
significa tomar el resultado del procesamiento del comando anterior una línea a la vez comofind -name
parámetro
Ejemplo 4: limitar el nivel de búsqueda recursiva
Si en el ejemplo 3 no busca archivos en subdirectorios recursivos, puede utilizar -maxdepth
parámetros para limitar el nivel de directorio de búsqueda.
-maxdepth 0
Representa el directorio de nivel 0, es decir, no busca;
-maxdepth 1
representa el directorio de primer nivel, que es el directorio raíz de la ruta de destino; y así sucesivamente...
find A目录路径 -maxdepth 1 -type f | sed 's/.*\///' | xargs -L 1 find -maxdepth 1 -name
Nota:
(1) El comando de búsqueda busca un archivo directamente desde el disco, por lo que la velocidad es relativamente lenta.
(2) A veces, cuando find busca recursivamente un archivo en un directorio, aparecerán errores como "No existe tal archivo o directorio". Si no desea ver estos mensajes de error, puede usar el error estándar [2] con el carácter de redirección [>] para filtrar los mensajes de error:
find -name "test.txt" 2> /dev/null //把错误信息输入到空设备中,注意2和>之间没有空格
6. Encuentra contenido específico en un archivo
● Ejemplo 1: en todos los archivos en el directorio de la cámara (incluidos los archivos en todos sus subdirectorios), busque el nombre de la cadena: "libhidlbase"
grep -r 'name: \"libhidlbase\"' ./camera
● Ejemplo 2: busque el nombre de la cadena en archivos cuyo sufijo sea mk en el directorio y subdirectorios actuales
grep -r "name" --include="*.mk" ./*
● Ejemplo 3: lista de todos los subdirectorios de primer nivel en este directorio
ls -l | grep ^'d' //这个筛选原理是根据ls -l列出文件和目录的时候前边有类型符号,d开头的就是目录,-开头代表文件
parámetro | nota |
---|---|
-r | Búsqueda recursiva, el archivo de enlace no se incluye de forma predeterminada, a menos que la ruta del archivo de enlace se especifique después del comando |
-R | Búsqueda recursiva, incluidos los archivos vinculados |
-norte | mostrar número de línea |
-l | Excluir búsquedas en archivos binarios |
–incluir= | Indica en qué archivos buscar y, cuando se incluyen varios archivos, use {} para encerrar los archivos. Tenga en cuenta que la redacción aquí son dos barras horizontales seguidas de "include=", y no puede haber espacios antes y después del signo igual. (por ejemplo: –include={*.c,test.h} ) |
–excluir= | Indica qué archivos no se van a buscar, el uso es –include= el mismo que |
Nota:
1. Cuando busque un símbolo, debe agregar un carácter de escape delante de la coincidencia\
(por ejemplo: \" significa ")
2. Para encontrar una barra invertida\
, debe usar tres barras invertidas como carácter de escape, tales como: grep -rn "\ \\\”
2. Al escribir solo-r
sin especificar el rango de búsqueda, el directorio actual se buscará de forma predeterminada, por lo que./*
no es necesario escribir en el ejemplo anterior 2
7. Compresión y descompresión de archivos
7.1 Usar paquete de compresión tipo 7z
Ejemplo de compresión
: comprima los tres archivos 1.txt 2.txt 3.txt en el archivo test.7z
7z a test.7z 1.txt 2.txt 3.txt
Ejemplo de descompresión
: Descomprima el archivo test.7z
7z x test.7z
parámetro | nota |
---|---|
a | Representa la adición de archivos/carpetas al archivo |
X | Representa archivos descomprimidos y se descomprime de acuerdo con el árbol de directorios original |
-o | Es para especificar el directorio a descomprimir, no hay espacio después de -o, conectar directamente al directorio |
7.2 Usar paquete de compresión tipo alquitrán
compresión:
tar -zcvf test.tar.bz2 1.txt 2.txt
Abrir la cremallera:
tar -zxvf test.tar.bz2
parámetro | nota |
---|---|
-C | Crear un archivo comprimido en nombre de |
-X | Descomprime el archivo |
-t | Ver los archivos en el paquete comprimido |
-z | Comprimir/descomprimir con gzip |
-j | Comprimir/descomprimir con bzip2 |
-v | Mostrar barra de progreso de compresión/descompresión |
-F | Use el nombre del archivo (nota: no tome parámetros después de f, -zxfv es incorrecto, debe escribirse como -zxvf) |
7.3 Usar paquete de compresión tipo rar
compresión:
rar a test.rar 1.txt 2.txt
Abrir la cremallera:
unrar e test.rar //把压缩包里所有的文件都解压到当前目录
unrar x test.rar //把压缩包正常解压到当前路径
7.4 Usa el tipo zip para comprimir el paquete
compresión:
zip -r test.zip 1.txt 2.txt
Abrir la cremallera:
unzip test.zip
8. Montaje y desmontaje del sistema de archivos
Hable brevemente sobre lo que es el montaje.El montaje se refiere a vincular el archivo del dispositivo con la carpeta en el sistema operativo, de modo que se pueda acceder a la información del dispositivo accediendo a esta carpeta. En circunstancias normales, después de que el dispositivo esté conectado al sistema operativo, el sistema operativo lo montará automáticamente. Por ejemplo, si insertamos una unidad flash USB en la computadora normalmente, el sistema lo montará automáticamente y aparecerá una partición de disco, para que podamos leer y escribir la unidad flash USB, etc. Operado. En algunos casos especiales, los desarrolladores necesitan montar y desmontar manualmente, luego se necesitan los comandos de montaje y desmontaje.
El formato básico del comando de montaje: montaje [-t tipovfs] [-o opciones] directorio del dispositivo
● Ejemplo 1: /dev/sdb1
montar el dispositivo en /mnt
el directorio
mount /dev/sdb1 /mnt //这里没有指定vfstype,因为系统会自动匹配合适的文件系统类型
● Ejemplo 2: /system
Vuelva a montar el dispositivo montado y hágalo legible y escribible
mount -o remount,rw /system //这里使用"-o"指定了两个选项(remount和rw),选项之间用逗号分隔开
● Ejemplo 3: desinstalar el/dev/sdb1
umount -v /dev/sdb1 或者 umount -v /mnt //两种方式都可以,-v表示执行时显示详细信息
Nota:
1. Los resultados de montaje y desmontaje se puedendf -ah
ver
a través de comandos. 2. A veces, el dispositivo no se puede desmontar porque un proceso está usando el dispositivo. En este momento, puede ejecutar el siguiente comando para ver el proceso ocupado y usar el comando kill comando para matar el procesofuser -m /dev/sdb1
9. Entrada y salida estándar
tee:读取标准输入的内容并输出到标准输出和文件
Ejemplo: complete el contenido "deb [trusted=yes] http://10.1.1.4/debian ./" al final del archivo source.list en la línea de comando y redirija el resultado de la ejecución a un dispositivo vacío
echo "deb [trusted=yes] http://10.1.1.4/debian ./" | tee -a /etc/apt/sources.list > /dev/null
Nota: La opción -a significa agregar al archivo dado, pero no sobrescribir
10. Ver información del archivo
10.1 comando ls
Orden | significado |
---|---|
ls | Listar todos los archivos y directorios visibles en el directorio actual |
ls -l | Enumere todos los archivos y directorios visibles en el directorio actual en forma de lista |
todos | Enumere todos los archivos y directorios visibles en el directorio actual en forma de lista, incluidos ./ y .../ |
ls-lt | Enumere todos los archivos y directorios visibles en el directorio actual en forma de lista, ordenados por tiempo en orden descendente |
ls-lrt | -r significa orden inverso, opuesto a ls -lt clasificación |
ls -F | Visualización distinguida, diferentes tipos tienen diferentes características de visualización Archivos ordinarios: blanco, sin ningún símbolo especial Archivos vinculados: azul cielo, con carpeta @ al final: azul, archivos con/con permiso de ejecución al final: verde, con * al final fin |
Extensión:
eliminar todos los subdirectorios de este directorio
sun@sun-pc:~/temp$ ls -F | grep /$ | xargs rm -rv
removed directory 'test1/'
removed directory 'test2/'
removed directory 'test3/'
removed directory 'test4/'
10.2 comando de estadísticas
11. Salida del contenido del archivo a la terminal
cat filename #将文件filename的内容输出到终端上
cat filename | grep xxx #筛选包含字符串"xxx"的内容到输出到终端上
cat filename | grep xxx -n #输出包含字符串"xxx"的行数到终端上
cat filename | tail -n 10 #输出的最后10行内容
cat filename | head -n 10 #输出的头10行内容
cat filename | tail -n +10 #输出第10行及以后的内容
cat filename | tail -n +10 | head -n 20 #输出第10~20行内容
12. Comando de copia de archivo cp
Todo el mundo está familiarizado con el comando de copia cp, y el uso especial se presenta de la siguiente manera
● Ejemplo 1: copiar main.mk a a/build/make/core/
yb/build/make/core/
echo a/build/make/core/ b/build/make/core/ | xargs -n 1 cp -v main.mk
Nota:
echo
La función aquí es imprimir el directorio de destino para que lo use xargs
xargs -n 1
: limite el número máximo de parámetros para cada comando a 1 y pase los parámetros al comando cp
cp -v
: el significado de -v es mostrar información detallada cuando proceso de copiar
● Ejemplo 2: 多个文件(1.txt,2.txt)
Copiar a/home/user/temp
cp 1.txt 2.txt /home/user/temp
● Ejemplo 3: 1.txt
copie todos los archivos y directorios en la ruta actual a/home/user/temp
cp -rf !(1.txt) /home/user/temp
#扩展:上面是排除1.txt一个文件,排除多个文件如下
cp -rf !(1.txt|2.txt) /home/user/temp