cli unix2
TRANSCRIPT
Línea de comando deUnix and GNU / Linux
Unix filesystem
Todo es un archivo
Archivos regulares
DirectoriosLos directorios son solo archivos enlistando otros archivos
links simbolicosArchivos que refieren a otros archivos
Dispositivos y perifericosLee y escribe en los dispositivos como si fueran archivos
Pipesusado para concatenar programascat *.log | grep error
SocketsProcesos de comunicaciones internas
Practicamente todo en linux es un archivo
Nombres de archivoEl 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 Buglistindex.htm index.htmlindex.html.old
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.htmlRelativo 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).
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
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.)
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/
Unix and GNU / Linux Línea de comando
Shells y manejos de archivos
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).
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.
fish: ShellUn nuevo shell user-friendlyhttp://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 consistenteHace mas facil crear shells scripts.
Comando ls
ls -a (all)muestra todos los archivos, incluso los que empiezen con .
ls -l (long)Listado extendido (tipo, fecha, tamaño, dueño, permisos)
ls -t (time)Enlista primero los archivos mas nuevos
ls -S (size)Enlista los archivos empezando por el mas grande
ls -r (reverse)Invierte el orden
ls -ltr (las opciones se pueden combinar)
Enlista los archivos en el directorio actual, en orden alfanumerico, exepto archivos que inicien con el caracter “.”
Substitucion de archivos
ls *txtMuestra 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 ?.logMuestra todos los archivos de 1 sola letra y terminen en .log
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 ..
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.
Comandos CD y PWD
cd <dir>cambia el directorio a <dir>.
cd -Se regresa al ultimo directorio.
pwdMuestra el directorio actual.
Comando cp
cp <source_file> <target_file>copia el source al target.
cp file1 file2 file3 ... dirCopia 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.
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.
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 vaciosAlternativa rm –rf borra los directorios aunque contengan archivos
Mostrando contenido del archivoMuchas 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
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.
Ejemploshead windows_bugs.txttail -f outlook_vulnerabilities.txt
El comando GREP
grep <pattern> <files>Escanea los archivos y busca las lineas que tengan el pattern.
grep error *.logmuestra todas las lineas que contengan la palabra error en todos los logs
grep -i error *.logigual, pero case sensitive
grep -ri error .Igual, pero recursivo, busca dentro de los subdirectorios
grep -v info *.logMuestra todas las lineas, excepto las que contengan info.
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
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.
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_nameEsto no borra el archivo linkeado
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
Permisos de archivos
3 tipos de permisos
Acceso lectura (r)
Acceso escritura (w)
Permiso de ejecucion(x)
3 tipos de niveles de acceso
Usuario (u): El dueño del archivo
Grupo (g): El grupo es una lista de usuarios
Otros (o): para los demas usuarios
Usa ls –l para ver los permisos
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
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-xPuede ser ejecutado por todos, pero nadie puede modificarlos, ni leerlos, a veces se usa para poner trampas