2. Todo es un archivo
Practicamente todo en linux es un archivo
Archivos regulares Dispositivos y perifericos
Lee y escribe en los
Directorios dispositivos como si fueran
archivos
Los directorios son solo
archivos enlistando otros Pipes
usado para concatenar
archivos programas
cat *.log | grep error
links simbolicos
Sockets
Archivos que refieren a Procesos de comunicaciones
otros archivos internas
3. Nombres de archivo
El sistema de archivos existe desde el comienzo de unix
Case sensitive
No hay un limite de tamaño obvio (arriba de los 2mil
caracteres)
Pueden contener cualquier caracter (incluyendo espacion
en blanco, excepto /).
Los tipos de archivo se almacentan dentro del archivo
(“magic numbers”).
La extencion de archivo, no se ocupa ni se necesita, es
solo para conveniencia del usuario
Ejemplos de archivos:
README .bashrc
Windows Buglist
index.htm index.html index.html.old
4. Paths de archivos
Un path es una serie de carpetas anidadas en otras
carpetas, separadas por /, al final apuntan a un archivo o
carpeta
Path relativo: documents/cids.html
Relativo al directorio actual
Path absoluto: /home/laptop/crash9402031614568
/ : directorio root.
Inicio del path absoluto de todos los archivos del sistema
(Incluso para memorias USB y dispositivos).
5. GNU / Linux estructura FS
No es totalmente impuesto, podría variar ligeramente entre
distribuciones y se pueden cambiar al instalar
/ Root
/bin/ Basico, esencialmente comandos de
sistema
/boot/ Imágenes del Kernel, initrd y archivos de
configuración
/dev/ Representación de dispositivos
/dev/hda: Primer disco
duro
/etc/ Archivos de configuración de sistema
/home/ Directorio de usuarios
/lib/ Librerías básicas de sistema
6. GNU / Linux Estructura FS
/lost+found Archivos corruptos que el sistema intenta
recuperar
/media Puntos de montaje de medios:
/media/usbdisk,
/media/cdrom
/mnt/ Punto de montaje temporal de HD
/opt/ Herramientas especificas
instaladas por el sysadmin
/usr/local/ tambien se usa para
esto
/proc/ Acceso a info del sistema
/proc/cpuinfo, /proc/version
/root/ home del usuario root
/sbin/ Comandos solo del administrador
/sys/ Controles de dispositvos
(Frecuencia CPU, Fuentes de poder, etc.)
7. GNU / Linux Estructura FS
/tmp/ Archivos temporales
/usr/ Herramientas regulares del sistema
(no excenciales del sistema)
/usr/bin/, /usr/lib/, /usr/sbin...
/usr/local/ Software especifico del sysadmin
(se prefiere mas que /opt/)
/var/ Datos usados por el sistema o server
/var/log/, /var/spool/mail (mail entrante), /var/spool/lpd
(print jobs)...
La estructura de archivos esta definida en Filesystem Hierarchy
Standard (FHS):
http://www.pathname.com/fhs/
8. Unix and GNU / Linux Línea de
comando
Shells y manejos de archivos
9. Interpretes de linea de comando
Shells: herramienta para ejecutar comandos
Se llaman “shells” por que ocultan detalles de
la superficie.
Comandos, son lineas de texto que realizan una
funcion.
Los resultados tambien se muestran en la
terminal, no se necesita GUI.
Los Shells pueden usar scripts, dando todo para
escribir programas complejos (variables,
condicionales, etc).
10. Shells conocidos
Los shells mas populares y conocidos
sh: The Bourne shell (obsoleto)
El shell tradicional, escrito por Steve Bourne.
csh: The C shell (obsoleto)
Alguna vez fue popular, usa sintaxis de C.
tcsh: The TC shell (Aun popular)
Usa sintaxis de C, con propiedades avanzadas (Completado
de comando, history, entre otras cosas...)
bash: The Bourne Again shell (mas popular)
una mejora de sh, con todavia mas cosas.
11. fish: Shell
Un nuevo shell user-friendly
http://www.fishshell.org/
Caracteristicas estandar: history, Completado de
comandos y archivos
Nuevas caracteristicas: completado de comandos,
muestra descripcion al completar, resalta errores de
sintaxis..
Mas facil abrir archivos, se usa el comando open y abre
diferentes formatos.
Sintaxis mas simple y consistente
Hace mas facil crear shells scripts.
12. Comando ls
Enlista los archivos en el directorio actual, en orden alfanumerico,
exepto archivos que inicien con el caracter “.”
ls -a (all) ls -S (size)
muestra todos los archivos, Enlista los archivos
incluso los que empiezen empezando por el mas
con . grande
ls -l (long) ls -r (reverse)
Listado extendido (tipo, Invierte el orden
fecha, tamaño, dueño,
permisos) ls -ltr (las opciones se
pueden combinar)
ls -t (time)
Enlista primero los archivos
mas nuevos
13. Substitucion de archivos
ls *txt
Muestra todos los archivos que terminen en txt
ls -d .*
Muestra todos los archivos y directorios que empiezen
con .
-d indica que no muestren los archivos de los directorios.
cat ?.log
Muestra todos los archivos de 1 sola letra y terminen en
.log
14. Directorios especiales
./
El directorio actual, util para comar argumentos de
directorios y tambien para ejecutar archivos
Asi que ./readme.txt and readme.txt son equivalentes.
../
El directorio padre (el dueño). Siempre le pertenece al
directorio (see ls -a). Solo hace referencia a ese directorio
Uso tipico:
cd ..
15. Directorios especiales(2)
~/
No un directorio en si, un substituto para
indicar el directorio Home.
No se puede usar en los programas y no
es un directorio real.
~scott/
Substitucion del home de scott.
16. Comandos CD y PWD
cd <dir>
cambia el directorio a <dir>.
cd -
Se regresa al ultimo directorio.
pwd
Muestra el directorio actual.
17. Comando cp
cp <source_file> <target_file>
copia el source al target.
cp file1 file2 file3 ... dir
Copia los archivos al directorio (ultimo
argumento).
cp -i (interactive)
Pide confirmacion si el archivo existe
cp -r <source_dir> <target_dir>
(recursive)
Copia todo el directorio.
18. Comandos mv and rm
mv <old_name> <new_name> (move)
Renombra el archivo.
mv -i (interactive)
pregunta antes de reemplazar
rm file1 file2 file3 ... (remove)
remueve todos los archivos.
rm -i (interactive)
siempre pide confirmación.
rm -r dir1 dir2 dir3 (recursive)
Remueve los directorios y sus contenidos.
19. Creando y borrando directorios
mkdir dir1 dir2 dir3 ... (make dir)
crea directorios con los nombres dados.
rmdir dir1 dir2 dir3 ... (remove dir)
Remueve los directorios, pero solo si
estan vacios
Alternativa rm –rf borra los directorios
aunque contengan archivos
20. Mostrando contenido del archivo
Muchas formas de hacerlo.
cat file1 file2 file3 ... (concatenate)
Concatena todos los archivos y los muestra
more file1 file2 file3 ...
Cuando se completa una pagina, pide que presiones una
tecla para pasar a la siguiente
less file1 file2 file3 ...
No espera a leer todo el documento antes de abrirlo,
permite subir paginas
21. Comandos head and tail
head [-<n>] <file>
Muestra las primeras n lineas del archivo (por default 10)
tail [-<n>] <file>
Muestra las ultimas lineas del archivo, no necesita cargar el archivo a
ram, muy util para archivos grandes.
tail -f <file> (follow)
Muestra las ultimas lineas y te deja ver los cambios en tiempo real.
Ejemplos
head windows_bugs.txt
tail -f outlook_vulnerabilities.txt
22. El comando GREP
grep <pattern> <files>
Escanea los archivos y busca las lineas que tengan el pattern.
grep error *.log
muestra todas las lineas que contengan la palabra error en todos los
logs
grep -i error *.log
igual, pero case sensitive
grep -ri error .
Igual, pero recursivo, busca dentro de los subdirectorios
grep -v info *.log
Muestra todas las lineas, excepto las que contengan info.
23. El comando sort
sort <file>
Acomoda las lineas del archivo en orden.
sort -r <file>
Igual pero inverso.
sort -ru <file>
u: Igual, pero con lineas unicas
Entre muchas mas posibilidades
24. Links simbolicos
Un link simbolico es un archivo nos sirve para
referenciar a otro archivo o directorio:
Util para reducir la complejidad y ahorrar espacio si
los archivos contienen lo mismo.
Example:
biografia1 -> Listadelibros
Como identificar los links simbolicos:
ls -l archivo -> El link referenciado.
GNU ls Lo muestra de otro color.
25. Creating symbolic links
Creando links simbolicos(mismo orden
que cp):
ln -s file_name link_name
Para crear un link en otro archivo
ln -s ../README.txt
Para crear multiples links de un directorio
ln -s file1 file2 file3 ... dir
Para remover un link:
rm link_name
Esto no borra el archivo linkeado
26. Hard links
El comportamiento de ln es crear hard
links
Es un archivo que contiene el mismo
contenido fisico
Estos no se pueden distinguir del mismo
archivo
Si remueves el archivo original no impacra
en el HL
27. Permisos de archivos
Usa ls –l para ver los permisos
3 tipos de permisos 3 tipos de niveles de acceso
Acceso lectura (r) Usuario (u): El dueño del
archivo
Acceso escritura (w)
Grupo (g): El grupo es una
Permiso de ejecucion(x)
lista de usuarios
Otros (o): para los demas
usuarios
28. Reglas de los accesos
X no se puede usar sin R.
X y R son permisos que ocupan los directorios tambien.
No puedes renombrar, mover o copiar si no tienes el
permiso W.
Si tienes permiso W, puedes eliminar o mover el archivo,
aunque no puedas abrir el archivo con R
29. Ejemplos de Accesos
-rw-r--r--
Lee y escribe el dueño, pueden leerlo los otros
-rw-r-----
Solo Lee y escribe el dueño y los que compartan el grupo
drwx------
Directorio solo accesible por su dueño
-------r-x
Puede ser ejecutado por todos, pero nadie puede
modificarlos, ni leerlos, a veces se usa para poner trampas