Introducción a la Terminal


  • Una terminal es un programa cuyo objetivo principal es leer comandos y ejecutar otros programas.
  • Las principales ventajas de la terminal son su alta relación acción-tecla, su soporte para la automatización de tareas repetitivas, y que puede utilizarse para acceder a otras máquinas en una red.
  • Las desventajas principales de la terminal son su naturaleza primordialmente textual y que sus comandos y operación pueden llegar a ser muy crípticos.

Navegación de archivos y directorios


  • El sistema de archivos es responsable de administrar la información en el disco.
  • La información se almacena en archivos, que a su vez se almacenan en directorios (carpetas).
  • Los directorios también pueden almacenar otros directorios, formando un árbol de directorios.
  • cd path cambia el directorio de trabajo actual.
  • ls path imprime un listado de un archivo o directorio específico; ls por si solo lista el contenido del directorio de trabajo actual.
  • pwd imprime el directorio de trabajo actual del usuario.
  • whoami muestra la identidad actual del usuario.
  • / es el directorio raíz de todo el sistema de archivos.
  • Una ruta relativa especifica una ubicación desde la ubicación actual.
  • Una ruta absoluta especifica una ubicación desde la raíz del sistema de archivos.
  • Los nombres de directorio en una ruta están separados por ‘/’ en Unix, pero por \ en Windows.
  • ‘..’ significa ‘el directorio por encima del actual’; ‘.’ significa ‘el directorio actual’.
  • La mayoría de los nombres de los archivos son algo.extension. La extensión no es necesaria y no garantiza nada, pero normalmente se utiliza para indicar el tipo de datos en el archivo.
  • La mayoría de los comandos toman opciones (flags) que comienzan con un ‘-’.

Trabajando con archivos y directorios


  • cp old new copia un archivo.
  • mkdir path crea un nuevo directorio.
  • mv old new mueve (renombra) un archivo o directorio.
  • rm path elimina un archivo.
  • El uso de la tecla Control puede ser descrito de muchas maneras, incluyendoCtrl-X, Control-X y^ X.
  • El shell no tiene una papelera de reciclaje o bote de basura: una vez que algo se elimina, se borra completamente.
  • Dependiendo del tipo de trabajo que se requiera, puede ser necesario utilizar un editor de textos más poderoso que Nano.

Pipes y filtros


  • cat muestra el contenido de sus entradas.
  • head muestra las primeras líneas de su entrada.
  • tail muestra las últimas líneas de su entrada.
  • sort ordena sus entradas.
  • wc cuenta líneas, palabras y caracteres en sus entradas.
  • * coincide con cero o más caracteres en un nombre de archivo, por lo que*.txt coincide con todos los archivos que terminan en .txt.
  • ? Coincide con un solo carácter en un nombre de archivo, así que ?.txt coincide con a.txt pero no any.txt.
  • command > file redirige la salida de un comando a un archivo.
  • first | second es un pipeline: la salida del primer comando se utiliza como entrada para el segundo.
  • La mejor manera de usar la terminal es utilizar pipes para combinar programas sencillos de propósito único (filtros).

Bucles


  • Un bucle for repite comandos una vez para cada elemento de una lista.
  • Cada bucle for necesita una variable para referirse al elemento en el que está trabajando actualmente.
  • Uso de $name para expandir una variable (es decir, obtener su valor). También se puede usar ${name}.
  • No utilizar espacios, comillas o caracteres especiales como ‘*’ o ‘?’ en nombres de directorios, ya que complica la expansión de variables.
  • Proporcionar a los archivos nombres coherentes que sean fáciles de combinar con los caracteres especiales para facilitar la selección de los bucles.
  • Utilizar la tecla de flecha hacia arriba para desplazarse por los comandos anteriores para editarlos y repetirlos.
  • UsarCtrl-R para buscar a través de los comandos previamente introducidos.
  • Usar history para mostrar comandos recientes, y !number para repetir un comando por número.

Scripts de la terminal


  • Guardar comandos en archivos (normalmente llamados scripts de la terminal) para su reutilización.
  • bash filename ejecuta los comandos guardados en un archivo.
  • $@se refiere a todos los parámetros de la línea de comandos de un script de la terminal.
  • $1, $2, etc., se refieren al primer parámetro de la línea de comandos, al segundo parámetro de la línea de comandos, etc.
  • Coloque las variables entre comillas si los valores tienen espacios en ellas.
  • Dejar que los usuarios decidan qué archivos procesar es más flexible y más consistente con los comandos de Unix.

Encontrando archivos


  • find encuentra archivos con propiedades específicas que coinciden con los patrones especificados.
  • grep selecciona líneas en archivos que coinciden con los patrones especificados.
  • --help es un indicador usado por muchos comandos bash y programas que se pueden ejecutar desde dentro de Bash, se usa para mostrar más información sobre cómo usar estos comandos o programas.
  • man command muestra la página del manual de un comando.
  • $(comando) contiene la salida de un comando.