A lo largo del curso, estos son los apuntes que he tomado. Espero puedan servirte de guía amig@.
man [comando]
(manual = permite ver el manual del directorio seleccionado)- Existen dos tipos de archivos:
- binarios: no pueden ser leídos humanamente, pero si abiertos y más.
- texto: pueden ser leídos humanamente.
- Los ejecutables de cada comando estan en un path, que es el directorio desde donde la terminal tiene permiso de ejecutar este tipo de binarios.
###Arbol de directorios y navegación
- ls (listar archivos y directorios)
- -l (lisar hacia abajo)
- -h (legible para humanos)
- -a (mostrar todos los archivos + secretos)
- ls [directorio] (lista los archivos y directorios del directorio seleccioando)
- pwd (path working directory = muestra la dirección al directorio actual)
- cd [directorio] (change directory = cambiar directorio)
- Si escribes una o varias letras del directorio y presionas TAB, autocompleta, si hay varias opciones, haciendo TABx2 muestra las opciones para completar.
- El directorio (punto .) es el directorio actual.
- El directorio (puntox2 …) es el directorio padre del actual.
- El directorio (~) es el home del usuario actual.
- (cd) sin ningún parametro tambien te envía al home del usuario actual.
###Manipulación y modificación del árbol de directorios
- mkdir [directorio] (make directory = crea un directorio)
- touch [directorio] (crea un archivo con la extensión que coloques. Si el archivo que describes ya existe, cambia la fecha de creación del archivo)
- clear (limpia la pantalla)
- mv [file actual] [dir destino] (lo que hace es mover un archivo, sin embargo, sirve para renombrarlos también, si finges que lo mueves al mismo dir, simplemente cambiando el nombre: ej. mv nombre1 nombre2)
- rm [archivo] (remove = eliminar. solamente para archivos o enlaces)
- rm -rf [directorio] (recursivamente = borra el directorio y todos los subdirectorios / force = forzar sin preguntar nada)
- cp [file] [dir destino] (copy/paste = copia el archivo nombrado y lo pega en el directorio seleccionado)
- pushd [directorio] (te envía temporalmente a un directorio. Puedes regresar al directo inicial con popd)
<h3>Herramientas básicas</h3>
- open [file] (abrir archivo con el programa por defecto)
- more [file] (muestra las primeras 10 filas contenidas en un archivo)
- cat [file] (muestra toda la info contenida en un archivo)
- cat > [file]
- Pegar informacion en la terminal
- Ctrl+c
- Este procedimiento introduce toda la información pegada en la terminal al cat y posteriormente la envía al archivo seleccionado al inicio
- tail [file] (muestra las ultimas 10 lineas del documento)
- tail -15 [file] (las últimas 15 lineas)
- tail -f [file] (la última linea en tiempo real)
<h3>Variables y entorno</h3>
- which [comando] (muestra el directorio donde esta el binario que se ejecuta con ese comando)
- las variables empiezan con $
- .bash_profile esta ubicado en el home del usuario. Contiene la configuración de los path de las terminales y la configuración de la consola en general.
- alias [nombre]=’[comando + parametros]’ (encapsula el comando y sus parametros en un nuevo comando más fácil de usar)
<h3>Streams</h3>
- Existen tres tipos de streams.
- input-stream
- output-stream
- error-stream
- [algo] > [file] (Esto escribe algo sobre un archivo, si el archivo no existe, lo crea)
- [algo] >> [file] (Esto continúa escribiendo luego de la última linea del archivo, no borra el contenido previo del archivo)
- php [file.php] > [file] (cuando esto se hace, envía los output-streams al archivo seleccionado)
- php [file.php] 1> [file1] 2> [file2] (cuando esto se hace, envía los output-streams al file1 y envía los error-streams al file2)
- php [file.php] > [file] 2>&1 (cuando esto se hace, envía los output-streams al file y envía los error-streams a la misma dirección del apuntador 1, es decir, al mismo file)
###Procesos desde la terminal
- top (Muestra todos los procesos actuales corriendo en la computadora)
- o [elemento(cpu,pid,mem,etc] (ordena por consumo de CPU, memoria, por PID, etc)
- kill -9 [PID] (kill = matar el proceso / -9 = por completo, sin preguntar)
- Cuando ejecutas un proceso desde la terminal y colocas al final & lo ejecuta en segundo plano y te ofrece el PID para que tengas control sobre el.
- Ctrl+C (termina, no mata, TERMINA el proceso)
- Para ejecutar un proceso despues de que el anterior termine, se separan con ; (punto y coma)
Ej. echo “hola”; echo "continua; echo “basta” - ps -wA (mac) ps -wS (linux) (muestra una lista de procesos simlar a la del administrador de tareas)
- ps -wS | wc -l (wc = word count / sirve para contar la cantidad de procesos activos)
###Power Tools: Comandos poderosos de busqueda
- grep -n -r [directorio] -e [expresión]
- grep = comando de búsqueda, busca incluso dentro de los achivos.
- -v = no imprime esto
- -i = no importa el case sensitive de las letras
- -n = muestra el número de línea donde se encontró la expresión que se buscaba.
- -r = recursivamente (en los subdirectorios también busca. Se usa . (punto) para el dir actual)
- -e = la siguiente expresión [expresión]
- find [directorio] -name [nombre de lo que buscas] -type [tipo de archivo: f,d] (comando de busqueda de archivos o directorios)
- [comando] | wc -l (wc = word count / sirve para contar la cantidad de lineas que lee el comando ejecutado)
<h3>Power Tools: curl, zip y tar</h3>
- curl [url] (busca el archivo en internet y lo imprime en pantalla, tambien puedes mandarlo a imprimir en un archivo nuevo con > [file])
- zip [new file.zip] [archivos] (Comprime los archivos seleccionados en un archivo nuevo.zip)
- unzip [parametros] [file.zip] (descomprime un archivo .zip)
- -vl (muestra una lista en pantalla de los archivos comprimidos dentro del .zip)
- tar cfz [new.tar.gz] [archivos] (cfz es sólo si quieres comprimir los archivos con zip al mismo tiempo. Tar no suele comprimir, solo agrupa los archivos)
- tar xfz [file.tar.gz] (descomprime desde zip, el file)
<h3>Pipe |</h3>
- Con el pipe " | " lo que haces es concatenar comandos. Envía el “std output” del primer comando al “std input” del siguiente comando.
###Crontab: herramienta para automatizar tareas desde la terminal
- crontab -l (muestra lo que esta instalado en el crontab)
- crontab -e (permite editar el crontab. Una vez en el editor, al colocar el apuntador sobre el valor que quieres editar, presionas i para “insertar”")
- Formato del crontab
- minuto (0-59) | hora (0-23) | dia del mes (1-31) | mes del ano (1-12) | dia de la semana (0-7 {0 y 7 son Domingo}) | comando(s) a ejecutar
###Links
- du -h (disk usage = muestra la cantidad de disco duro en uso para este directorio)
- -d 1 // --max-depth 1 (indica que solo mostrara el uso en disco de 1 solo nivel de subdirectorios)
- ln -s [directorio destino] [nuevo enlace] (crea un nuevo enlace SIMBOLICO hacia el directorio de destino. Como es simbolico, cuando elimines este nuevo enlace, no se elimina el directorio de destino)
<h3>Usuarios y permisos</h3>
- whoami (me dice que usuario soy)
- formato de archivo
- r = read / w = write / x = execute
- [dir/link/file {d/l/-}] [owner {rw-}] [group {r–}] [anyone {—}]
- Ej. -rwxrw-r-- (Es un archivo que puede ser leído, escrito y ejecutado por mi. Puede ser leído y escrito por usuarios en mi grupo. Puede ser solamente leído por usuarios fuera de mi grupo)
- rwx tienen su transformacion en binario. Donde rwx equivalen a 421 respectivamente.
- r-- = 4
- rw- = 6
- r-x = 5
- –x = 1
- -wx = 3
- entonces:
- 666 = rw-rw-rw-
- 750 = rwxr-x—
- chmod [código de permisos ej.740] [file] (sirve para cambiar los permisos del archivo)
- sudo [comando] (super user do = te permite ejecutar como si fueras el usuario root)