Curso de R

Línea de comandos en Linux

Shell y bash

El Shell es un programa que toma comandos desde el teclado y los pasa al Sistema Operativo para realizar alguna operación.

Casi todos las distribuciones Linux,proporcionan un shell, desde el proyecto GNU, llamado bash, que reemplaza al original shell de Unix, llamado sh.

Más información en:

Emuladores de terminal

Cuando estamos usando una interfaz de usuario gráfica, necesitamos otro programa llamado emulador de terminal (terminal emulador) o simplemente terminal para interactuar con el shell.

Por ejemplo para interfaces como KDE Gnome

  • KDE konsole.
  • GNOME gnome-terminal.

Primeros pasos

Normalmente podemos lanzar el terminal escribiendo alt + F2

[nombre-usuario@linux~]$

Esto puede variar de la distribución y usualmente incluye nombre-usuario@nombre-maquina, seguido por el actual directorio de trabajo y un signo de dolar.

Algunas veces en lugar del signo dolar, aparece el signo #, esto significa que el terminal tiene previlegios de super usuario. Eso significa que tu estas logeado como el usuario root o has seleccionado un terminal con permisos de superusuario.

Comandos linux

La forma general de los comandos Linux

<comando><opciones><argumentos>
  • <comando> es la acción que queremos que la computadora tome.
  • <opciones> o flag modifica el compartamiento del comando.
  • <argumentos> son las cosas que queremos sobre que el comando actúe.

Consejos

  • Si hay espacios en los nombres de archivo o directorio, utilice el símbolo “” para anotar los caracteres de espacio, o simplemente coloque la ruta completa del archivo entre comillas.
  • Después de escribir las primeras letras de un nombre de archivo o directorio, puede pulsar Tab para completar automáticamente el nombre.
  • Utilice las teclas de flecha arriba y abajo para navegar por los comandos previamente escritos.

Ruta de archivos

  • Una ruta de archivo relativa especifica la ruta de acceso a un archivo, teniendo en cuenta su directorio de trabajo actual. Por ejemplo, si le dieras a alguien instrucciones relativas a su casa, le daría direcciones desde su ubicación actual (la ruta relativa es desde donde están ellos hasta donde estás tu).
  • Una ruta de archivo absoluta especifica la ruta completa a un archivo, haciendo caso omiso del directorio de trabajo actual. Por ejemplo, si diera a alguien direcciones absolutas a su casa, empezaría diciéndoles que estuvieran en la tierra, luego vaya a su continente, luego vaya a su país, luego vaya a su región, etc.

Comandos básicos

  • pwd prints working directory (muestra el directorio actual de trabajo).

  • ls lista todos los archivos y directorios del actual directorio de trabajo.

    • ls -a, lista todos los archivos, incluyendo los archivos ocultos.
    • ls -l, lista todos los archivos en un formato con información extra (permisos, tamaño, fecha de modificación, etc.)
    • ls *,lista los contenidos de los subdirectorios (un nivel de profundidad) en tu directorio de trabajo.
    • ls <ruta>, lista los archivos en un directorio específico (sin cambiar tu directorio de trabajo)
  • clear Borra toda la salida de la consola.

Comandos básicos(1)

  • cd

    • cd <ruta> cambia el directorio a la ruta que se especifique, que puede ser una ruta relativa o una ruta absoluta.
    • cd.. mueve hacia un directorio padre.
    • cd se mueve a tu directorio home.
  • mv

    • mv <nombrearchivo> <nueva ruta> mueve un archivo desde la localización local a moves a <nueva ruta>.
    • mv <nombrearchivo> <nueva ruta > cambia el nombre de un archivo sin cambiar su ubicación.

Comandos básicos(2)

  • mkdir

    • mkdir <nombredirectorio> crea un directorio llamado <nombredirectorio>.
  • rm -i

    • rm <nombrearchivo> remueve (elimina) un archivo permanentemente.
    • rm -i <nombrearchivo> remueve archivos en modo interactivo.
    • rm -ir <nombredirectorio> elimina un directorio y elimina recursivamente todo su contenido.

Comandos básicos(3)

  • cp

    • cp <nombrearchivo><nueva ruta> remueve (elimina) un archivo permanentemente.
    • cp <nombrearchivo><nuevoarchivo remueve archivos en modo interactivo.
  • touch

    • touch <nombrearchivo> crea un archivo vacío llamado <nombrearchivo.
    • Esto es útil para crear archivos vacíos que se editarán posteriormente..
    • Puede crear varios archivos vacíos con un solo comando: touch <nombrearchivo1> <nombrearchivo2>

Comandos intermedios

  • head

    • head <nombrearchivo>, imprime el encabezado (las primeras 10 lineas) de un archivo.
    • head -n20 <nombrearchivo, imprime las primeras 20 lineas de un archivo.
    • Esto es útil para previsualizar el contenido de un archivo sin abrirlo.
  • tail

    • tail <nombrearchivo> imprime las últimas 10 líneas de un archivo .

Comandos intermedios(1)

  • cat

    • cat <nombrearchivo>, imprime un archivo.
  • less

    • less <nombrearchivo> permite desplazarse por el archivo .
    • Pulse la barra de espacio para ir hacia abajo de una página, use las teclas de flecha para desplazarse hacia arriba y hacia abajo y pulse q para salir.
  • |

    • <comando1>|<comando2> canaliza los resultados de <comando 1> en <comando 2> y a continuación, los resultados del <comando 2> se imprimen en la consola.

Comandos intermedios(2)

  • wc

    • wc <nombrearchivo> devuelve el conteo de líneas, palabras y caracteres en un archivo .
    • wc -l <nombrearchivo, solo cuenta líneas.
    • wc -w <nombrearchivo solo cuenta las palabras.
    • wc -c <nombrearchivo> solo cuenta caracteres.
    • Una “palabra” se define como cualquier conjunto de caracteres delimitados por un espacio.
  • >

    • <comando> > <nombrearchivo> toma la salida de y la guarda en <nombrearchivo>. Esto sobrescribirá el archivo si ya existe.

Comandos intermedios(3)

  • grep

    • grep <patron><nombrearchivo> busca en un archivo un patrón de expresión regular e imprime las líneas coincidentes que debe estar entre comillas para permitir varias palabras. El patrón es sensible a mayúsculas y minúsculas por defecto, pero puede usar la opción -i para ignorar el caso.
    • grep -r <patron> <ruta> hace una búsqueda recursiva de la ruta (verifica los subdirectorios) para encontrar coincidencias dentro de los archivos
    • grep <patron> realiza una búsqueda global (de todo el equipo) por coincidencias. Pulsa ctrl + c si se desea cancelar la búsqueda.
    • Pueden usarse patrones mucho más complejos de adaptación de cadenas.

Comandos intermedios(4)

  • find

    • find <ruta> -name <nombre> buscará recursivamente la ruta de acceso especificada (y sus subdirectorios) y encontrará archivos y directorios con un <nombre>. Usa . para especificar el directorio de trabajo.
    • Para <nombre>, puede buscar una coincidencia exacta o utilizar caracteres comodín para buscar una coincidencia parcial, usando * y ?.
  • >>

    • <comando> >> <nombrearchivo> toma la salida de <comando> y lo agrega a <nombrearchivo>. Esto creará un archivo si aún no existe.

Directorios Importantes

El diseño del sistema de archivos en los sistemas Linux es muy similar al de otros sistemas Unix. El diseño es en realidad especificado en un estándar llamado Linux Filesystem Hierarchy Standard y mucho de los más interesantes archivos están en archivo de texto.

Veamos una lista de los directorios más importantes del sistema de archivos de Linux:

  • /: Directorio raiz. Donde todo empieza.
  • /bin: Contiene programas (binarios) que deben estar presente en el sistema para que arranque y corra.

Directorios Importantes(1)

  • /boot: Contiene el Kernel de Linux, disco de imagen RAM inicial y el gestor de arranque. Un archivo importante es /boot/vmlinuz que es el Kernel Linux.
  • /dev: Este es un directorio especial que contiene nodos de dispositivos. Aquí es donde el kernel mantiene una lista de todos los dispositivos que entiende.
  • /etc: Es un directorio contiene todos los archivos de configuración de todo el sistema. También contiene una colección de scripts del shell que inician cada uno de los servicios del sistema en el arranque.
    • /etc/crontab: Un archivo que define cuando un proceso automático deberá ejecutarse.
    • /etc/fstab: Es una tabla de dispositivos de almacenamiento y sus puntos de montajes asociados.
    • /etc/passwd: Contiene una lista de las cuentas de usuario .

Directorios Importantes(2)

  • /home: Directorio del usuario.
  • /lib: Contiene librerias compartidas usadas por los programas centrales del sistema. Son similares a las DLL en windows.
  • /lost + found: Cada partición formateada o dispositivo usando el sistema de archivos ext3 tiene este directorio. Es usado en el caso de una recuperación parcial de un evento de sistemas dañados.
  • /media: Es el directorio, que contiene los puntos de montaje de dispositivos removibles como los USB, CD-ROMs, etc, que son montados automáticamante en la insercción.
  • /mnt: Contiene los puntos de montaje de dispositivos removibles que han sidos montados manualmente.
  • /opt: Es un directorio usado para instalar opcional software.

Directorios Importantes(3)

  • /proc: Es un sistema de archivo virtual mantenido por el Kernel. Los “archivos” que contiene son rendijas en el propio Kernel. Los archivos se pueden leer y le dará una idea de cómo el Kernel ve su computadora.
  • /root: Este es el directorio de la cuenta del usuario root.
  • /sbin: Contiene sistemas binarios, que son programas que llevan tareas vitales que son reservadas al usuario root.
  • /tmp: El directorio /tmp está destinado para el almacenamiento de archivos temporales, creados por diversos programas. Algunas configuraciones causan que este directorio deba ser vaciado cada vez que se reinicia el sistema.
  • /usr: El árbol de directorios /usr probablemente es el más grande en un sistema Linux. Contiene todos los archivos de los programas y de soporte utilizados por los usuarios regulares.

Directorios Importantes(4)

  • Algunos subdirectorios importantes de usr:

    • /usr/bin: Contiene ejecutables instalados en tu distribución.
    • /usr/lib: Librerias compartidas por los programas en /usr/bin.
    • /usr/local: Es el directorio donde se encuentran los programas que no son incluidos con la distribución, pero que están destinados para el uso de todo el sistema. Programas compilados desde el código fuente normalmente se instalan en /usr/local/bin.
    • /usr/sbin: Contiene muchos programas de administración del sistema.

Directorios Importantes(5)

  • Algunos subdirectorios importantes de usr:

    • /usr/share: Es un directorio que contiene toda los datos, usados por los programas en /usr/bin. Esto incluye cosas como archivos de configuración, íconos, archivos de sonido, fondos de pantalla, etc.
    • /usr/share/doc: Documentación de programas del sistema.
  • /var: El árbol de directorios /var es donde se almacenan los datos que probablemente cambien. Varias bases de datos, correo de usuario, etc., se encuentran aquí.

    • /var/log: Contiene los archivos de registro, registros de diversas actividades del sistema. Estos son muy importantes y deben ser vigilados de vez en cuando. El archivo más útil es /var/log/messages.

Comodines

Desde que el shell utiliza nombres de archivo demasiadas veces, proporciona caracteres especiales para ayudar a especificar rápidamente grupos de nombres de archivos. Estos caracteres especiales son llamados comodines.

Los comodines nos permiten seleccionar los nombres de archivo basado en patrones de caracteres. Los principales comodines se muestran a continuación:

  • El comodín * enlaza uno o más caracteres.
  • El comodin ? enlaza un único caracter.
  • [caracteres] enlaza algún caracter que es miembro de caracteres.

Comodines(1)

  • [[:clase:]] enlaza algún caracter que es miembro de una determinada clase. Las clases comunmente usadas son:

    • [:alnum:] enlaza algún caracter alfa numérico.
    • [:alpha:] enlaza algún caracter alfabético.
    • [:digit:] enlaza algún numeral.
    • [:lower:] enlaza alguna letra minúscula.
    • [:upper:] enlaza alguna letra mayúscula.

Lecturas