8

Resumen Introducción a Terminal y Línea de Comandos

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)
Escribe tu comentario
+ 2