02- GESTIÓN DE ARCHIVOS Y DIRECTORIOS
Comandos para la gestión de archivos y directorios en ambientes Linux.
TIPOS DE FICHEROS
- --> fichero regular d --> directorio l --> enlace c --> dispositivos especiales de caracteres p --> canales s --> shocket
COMANDOS
PWD --> Print Working Directory. Indica el directorio en el que estamos trabajando.
FILE --> Da informacion del tipo de archivo que hemos seleccionado.
P.E: file /bin/sync
LS --> List directory contents. Lista los elementos en el directorio.
-l
--> nos da más información sobre los archivos.
-a
--> incluye archivos y directorios ocultos.
-R
--> incluye los subdirectorios de cada directorio.
SORT --> Lista ordenadamente del contenido de los elementos de un directorio o una serie de archivos.
P.E: sort 1.txt 2.txt 3.txt
-b
--> ignora los espacios en blanco iniciales
-d
--> solo tiene en cuenta espacios y alfanumerico
-f
--> ignora mayusculas o minusculas
-r
--> saca el listado inverso
TREE --> Lista en forma de arbol los directorios y subdirectorios desde el directorio en el que me encuentro, para abajo.
GREP --> Busqueda global. Busca una letra o palabra en el texto que sale por
pantalla. ---------> BUSCAR MAN POR QUE TIENE MIL POSIBILIDADES.
grep [opciones] [patron] [archivo]
-i
--> no distingue entre mayusculas y minusculas
-r
--> busqueda recursiva (busca en todos los archivos del directorio)
-c
--> muestra cuantas lineas coinciden con el patron.
-n
--> añade el numero de linea delante.
-v
--> muestra por pantalla las lineas del documento que no coinciden con el texto buscado.
-l
--> muestra el nombre de los archivos que SI tienen coincidencias.
-L
--> muestra el nombre de los archios que NO tienen coincidencias.
-o
--> muestra solo las palabras que coinciden, no toda la linea (util si busco varias palabras).
-q
--> no muestra nada como salida (util para escribir codigos como el P.E.2)
P.E.1 --> grep -i comando /Desktop/01_Guias/Terminal/00_Guia_Basicos
(muestra por pantalla el texto de las lineas del documento que incluyen la palabra comando).
P.E.2 -->grep -ir comando /Desktop/ && echo SI || echo NO
(muestra por pantalla (SI y las lineas de texto que lo incluyen) si en alguno de los documentos de texto del directorio Desktop aparece la palabra comando (sin tener en cuenta mayusculas o minusculas). En caso contrario imprime (NO).
EGREP --> Busqueda extendida
egrep 'auto|iface|comando' /etc/network/interfaces #me busca las lineas que tienen cada una de las palabras
FIND --> Encontrar. Busca un archivo en el sistema.
find [directorio inicio][opciones][que buscar]
P.E. -->find / -iname "nombre de archivo"
/ --> significa empezar a buscar en la raiz (~ sirve para buscar en home)
-name
--> busca por nombre
-iname
--> busca por nombre sin tener en cuenta mayus
-user
--> busca por usuario propietario
-group
--> busca por grupo propietario
-type
--> busca por tipo de archivo (según los tipos de este tema)
-amin
--> archivos modificados en los ultimos [-amin 3] minutos
-atime
--> archivos modificados en los ultimo [-atime 10] dias
-syze
--> busca por tamaño
!
--> NOT. Busca lo contrario de lo que se pone en la opcion de despues. Un ! por opcion.
LOCATE --> Encontrar ficheros en el sistema. Necesita tener una base de datos actualizada.
updatedb
--> actualiza la base de datos del sistema para usarla en locate.
locate [que buscar]
--> busca en todo el sistema muy rapido.
-i
--> no distingue entre mayusculas y minusculas.
WHEREIS --> Para ver la ruta de un archivo.
-b
--> nos muestra solo la ruta de archivos binarios.
-m
--> muestra la ruta de los manuales
-s
--> muestra la ruta de la fuente.
CD --> Change Directory. Cambia al directorio que seleccionemos
P.E.--> cd Escritorio/ #puedo utilizar tambien rutas absolutas
cd
--> me manda directamente a la carpeta de usuario.
cd ..
--> me manda a la carpeta del nivel superior.
MKDIR --> Make Directory (crea una carpeta en la ruta seleccionada)
-p
--> permite crear un sistema de directorios
-m
--> permite añadir permisos al directorio
P.E: mkdir -p test/{test1,test2,test3/{test3.1,test3.2}}/
genera el directorio test con test1,2 y 3 en su interior y test3.1 y 3.2 dentro de test3.
P.E: mkdir -m 550 test
genera el directorio test con permisos de lectura y ejecución para usuario y grupo propietario.
RMDIR --> Remove Directory. Borra un directorio vacio.
-p
--> elimina carpetas y subcarpetas.
TOUCH --> Crea un archivo vacio en la ruta seleccionada. Si el archivo ya existe le cambia la fecha de modificacion.
CP --> Copy. Copia el archivo en la ruta absoluta seleccionada.
P.E.--> cp prueba.txt /home/username/Escritorio
DD --> Data Duplicator. Permite copiar de manera secuencial.
Se utiliza mucho en analisis forense. Es muy potente.
dd if=$inputdata of=$outputdata [opciones]
bs= [tamaño de los paquetes]
count= [cantidad de bloques a copiar]
MV --> Move. Mueve un archivo a la ruta absoluta seleccionada.
RM --> Remove. Elimina un archivo en la ruta seleccionada o en la carpeta actual.
-r
--> Si queremos borrar una carpeta no vacía.
-f
--> fuerza la accion.
-i
--> pregunta antes de ejecutar
SPLIT --> Permite dividir un paquete en archivos mas pequeños
-a
--> marca la longitud del sufijo
-d
--> utiliza sufijos numericos empezando en 0, no alfabeticos
-c
--> marca el tamaño maximo de los archivos de salida en BYTES.
-l
--> marca el tamaño maximo de los archivos de salida en LINEAS.
P.E: split -d -c 20k imagen.iso
CAT --> Concatenate. Muestra el contenido de un archivo.
-n
--> numera los renglones
-b
--> numera solo las lineas que no estaban en blanco
-E
--> marca el final de las lineas con $ (util para programar)
-s
--> muestra solo la primera linea en blanco si hay muchas.
>
--> permite dar contenido a un documento. (termina con CTRL+D)
>>
--> permite aumentar el contenido de un documento (termina con CTRL+D)
TAC --> Invierte la salida de CAT. (la ultima linea pasa a ser la primera).
NL --> Como cat pero numerando las lineas.
WC --> Da informacion del contenido de un fichero.
N (Lineas) N (palabras) N (caracteres)
-W --> cuenta solo las lineas.
DIFF --> Busca diferencias entre dos archivos.
P.E: diff 1.txt 2.txt
-b
--> No hace caso de las diferencias por espacio en blanco
-B
--> No hace caso de las diferencias por lineas en blanco
-q
--> Solo informa de si difieren o no, sin mostrar los cambios
-r
--> Recursivo en directorios. Compara dos ficheros cualesquiera
-y
--> Emplea el formato de lado a lado.
UNIQ --> Muestra las lineas no repetidas de un conjunto de archivos.
-c
--> pone antes de cada linea el numero de coincidencias
-d
--> muestra las lineas repetidas solo una por duplicidad
-D
--> muestra TODAS las lineas duplicadas
-i
--> ignora diferencia entre mayus y minus
-u
--> muestra solo las lineas unicas
COLUMN --> Pone el contenido por columnas.
-t
--> utiliza los espacios como separadores
-s
--> Se utiliza con -t para utilizar otro separador que no sea el espacio
P.E: column -t -s ":"
CUT --> elimina secciones de cada fila de un fichero ------> tiene muchas opciones. Ver man.
-c [a,b,c]
--> elimina solo las letras a, b y c.
-d " "
--> marca el delimitador entre campos en un tabla (en este caso el espacio)
solo puede ser un unico caracter. Sirve para utilizar la opcion -f.
-f [3]
--> coge solo la tercera columna (los espacios en blanco se consideran columnas en las tablas
en este caso)
P.E: cut -d " " -f 3
TEE --> lee de entrada estandar y escribe a salida estandar y fichero.
En resumen: saca el resultado por pantalla y por fichero.
P.E: ps aux | tee ps.txt #sale por pantalla y por fichero ps.txt
BASENAME --> Muestra nombre del archivo especificado en una ruta.
STAT --> Muestra informacion de un fichero. Sin opciones pone fechas de acceso, modificacion y cambio.
stat -c%U test.txt
-- Usuario propietario
-c%u
--> PID usuario propietario
-c%G
--> Grupo propietario
-c%g
--> PID grupo propietario
-c%n
--> nombre completo del archivo
-c%F
--> tipo de fichero
-c%A
--> permisos
-c%a
--> permisos en octal
-c%x
--> ultima fecha de acceso
-c%y
--> ultima fecha de modificacion (cambian las caracteristicas P.E: permisos)
-c%z
--> ultima fecha de cambio (cambia el contenido)
MORE --> Como cat pero va mostrando poco a poco el texto. Cat mejorado.
enter
--> muestra la siguiente linea
space
--> muestra la siguiente pagina
d
--> se mueve 11 lineas hacia delante
5s
--> se mueve 5 lineas hacia delante
5f
--> se mueve 5 lineas hacia detras
v
--> abre el editor vim en la posicion del cursor
h
--> muestra ayuda
q
--> lo quita
LESS --> Muy parecido al more, pero se mueve el contenido con los cursores.
HEAD --> Muestra las primeras lineas de un fichero.
TAIL --> Muestra las ultimas lineas de un fichero.
LN --> Link. Crea enlaces entre archivos.
-s
--> crea enlaces simbólicos
Los ficheros en linux, se almacenan en el disco duro y se crea un puntero en la ruta seleccionada con acceso a esa informacion. Cuando hago un link, existen dos tipos principales: Hard link --> Crea otro puntero a esa informacion que se almacena en el disco. No se pueden generar entre particiones. Simbolic link --> Crea un puntero al puntero de la informacion en el disco (como un shortcut) Se pueden crear de una particion a otra.
SED --> Editor de flujos y ficheros de forma no interactiva.
Permite modificar el contenido de las lineas de un fichero en base a comandos.
-e
--> añade un script al comando
-f
--> añade el script del archivo al comando
s --> sustituir
sed 's/a/A/g' hola.txt #sustituye(s) todas(g) las (a) por A.
sed '1,10s/a/A/g' hola.txt #solo hace la sustitución en las filas de 1 al 10.
d --> eliminar
sed '1,5d' hola.txt #Elimina las filas de la 1 a la 5.
TR --> filtro de sustitucion.
-s
--> permite cambiar un conjunto de caracteres iguales por uno igual.
Sirve para convertir un tabulador en un espacio
tr -s " " #Sustituye conjuntos de espacios en un espacio
-c
--> Sustituye en la salida todos los caracteres excepto los indicados en el argumento1 por los especificados en el argumento2.
tr -c '[a-f][A-F][1-5]' x <> test.txt #Sustituye todo menos los tres conjuntos del arg1 por la letra x. Toma como entrada el archivo test.txt y como salida el mismo (de ahí ese <>).
-d
--> Suprime los caracteres asignados en el argumento-1.
echo "Hola a todos" | tr -d o #Elimina la letra o en el output.
PASTE --> Concatena el contenido de varios archivos añadiendolos tabulados.
-d
--> cambia el separador P.E: -d "," #en vez de tabulador pone comas.
-s
--> concatena el contenido de varios archivos poniendo el contenido de cada uno en una fila.
EXPAND --> Modifica un tabulador convirtiendolo en 8 espacios.
-t
--> marca en cuantos espacios se convierte el tabulador
HEXDUMP --> transforma un archivo a hexadecimal
-C
--> Para sacar el hexadecimal y el ASCII (legible).
OD --> transforma un archivo a octal
ICONV --> permite convertir el codeset de un fichero.
--list
--> lista los codeset disponibles.
P.E: iconv -f UTF-8 -t ISO-8888 fichero.tx
Para saber más sobre los codesets aquí:
https://www.w3.org/International/articles/definitions-characters/index.es
NANO --> Editor de texto. Permite editar archivos de texto desde la terminal.
VIM --> Editor de texto de linea de comandos. Muy potente pero más complicado de utilizar que el nano.
GEDIT --> Editor de texto grafico. Tipo bloc de notas. (Cada distribución de Linux tiene uno por defecto, éste es el de Debian).
Última actualización