Instructivo

Almacenamiento de Conocimiento

Herramientas de usuario

Herramientas del sitio


linux:linea_de_comando

5. Línea de comandos

Objetivos

Incorporar las técnicas y conocimientos necesarios para utilizar y aprovechar la línea de comandos, así como conocer el manejo de los procesos y aprender a detectar problemas.

5.1. [ ] ¿Por qué usarla?

La línea de comandos o shell permite operar el sistema operativo en su totalidad sin perder tiempo, sobre conexiones lentas o defectuosas, con mínimo gasto de recursos y con la seguridad de que las operaciones funcionarán como es debido.

Entre muchísimas operaciones habituales se puede, desde ver el estado del sistema, su carga, el listado de procesos, copiar o listar archivos, hasta grabar DVDs, navegar la web, escanear documentos, imprimir o retocar imágenes.

Tan poderosa como confiable, se caracteriza por su rapidez y versatilidad. Cuenta con innumerables comandos y utilitarios, y es fácilmente adaptable, mejorable y ampliable.

5.2. [ ] Bash: introducción, principales características, combinaciones de teclas

El Bourne Again Shell es uno de los más difundidos intérpretes de comandos disponibles en entornos Linux. Se caracteriza por ser fácil de usar, posibilidad de editar las líneas y crear funciones, disponer de histórico de comandos, aliases, control de tareas, y aritmética de enteros entre otras características.

La edición de líneas se realiza utilizando las teclas estándares al efecto: teclas de cursores, backspace, delete, home, end.

Algunas combinaciones de teclas prácticas:

  • C-l: limpia la pantalla y reescribe la línea actual dejándola en la parte superior
  • A-f: avanza una palabra
  • A-b: retrocede una palabra
  • C-r: búsqueda hacia atrás en el histórico
  • C-s: búsqueda hacia adelante en el histórico
  • C-k: borra todo desde la posición del cursor hasta el final de la línea
  • C-u: borra todo desde la posición del cursor hasta el principio de la línea
  • C-y: restaura lo borrado con alguno de los comandos anteriores

5.3. [ ] Comandos básicos: ls, rm, cp, mv, mkdir, cat, grep, ln, find, locate, tar, chmod, vi, nano, passwd

Los comandos disponibles son muchísimos. Los más comunes pueden ser:

  • ls: lista archivos
  • rm: borra archivos
  • cp: copia archivos
  • mv: mueve o renombra archivos
  • mkdir: crea un directorio
  • cat: visualiza por stdout un archivo de texto
  • grep: comando de búsqueda de texto
  • ln: creación de enlaces duros o simbólicos entre archivos
  • find: comando avanzado de búsqueda de archivos
  • locate: comando simple de búsqueda de archivos basado en base de datos
  • tar: comando de archivado
  • chmod: permite cambiar los permisos de los archivos
  • vi: complejo editor de texto
  • nano: editor de texto simple
  • passwd: cambia la contraseña del usuario

5.4. [ ] Procesos: listar procesos, pasar procesos a ejecución de fondo y a primer plano, cómo realizar multitarea

El comando ps se utiliza para listar los procesos que se están ejecutando en el sistema. Brinda una instantánea de lo que ocurre con ellos en ese instante.

Ejecutado sin parámetros, muestra un listado de los procesos que dependen de la terminal actual:

ps

Para listar todos los procesos del sistema, con la información de qué usuario está ejecutando cada uno:

ps aux

Si se desea además elaborar un árbol de jerarquías de procesos:

ps auxf

El ps es un comando complejo, con gran cantidad de modificadores.

En la línea de comandos, se puede ejecutar procesos de manera que se pueda volver a tomar el control de la misma, y continuar trabajando. Para ello, se agrega un ampersand (&) al final de la línea, por ejemplo:

tar czf /tmp/lib.tar.gz /lib &

Para ver el listado de tareas en background:

jobs

Para volver una tarea a primer plano:

fg <tarea>

donde <tarea> es el número de la tarea que se desea controlar, indicado por el comando jobs.

Si se desea en cambio pasar a segundo plano (background) una tarea que está en primer plano, primero se debe pulsar la combinación de teclas C-z para enviar una señal STOP y luego ejecutar el comando bg:

bg <tarea>

donde <tarea> es el número devuelto al ponerlo en STOP.

5.5. [ ] Histórico de comandos y autocompletar

El histórico de comandos se accede con las teclas de cursores hacia arriba y hacia abajo. Una vez encontrada la línea en cuestión, la misma se puede editar desplazando el cursor hacia la izquierda y la derecha utilizando las teclas al efecto. Las teclas de edición son las estándares: suprimir, retroceso, Ctrl + cursores izquierda y derecha.

Además, utilizando la combinación C-r se puede realizar una búsqueda hacia atrás en el histórico. La combinación C-s se emplea para la búsqueda hacia adelante; si esta combinación está asignada a XOFF, se debe activarlo (XON) pulsando C-q. Si se desea desactivar definitivamente XON/XOFF, agregar el comando stty -ixon en /etc/profile. Este comando desactiva el uso de XON/XOFF.

La funcionalidad de autocompletar se invoca pulsando la tecla Tab. Permite autocompletar comandos y rutas del sistema de archivos. Por ejemplo, para escribir el comando yumdownloader basta con tipear las cuatro primeras letras “yumd” y pulsar Tab.

Esta tecla también sirve como ayudamemoria. Si uno no recuerda cómo se escribe un comando, puede empezar tipeando algo, y luego pulsar dos veces seguidas Tab. Por ejemplo, si se tipea “yum” y se pulsa dos veces la tecla Tab, se visualizarán todos los comandos existentes que comiencen con esas tres letras.

De la misma manera se emplea con los directorios.

5.6. [ ] Archivos y directorios: administración básica

Los comandos principales de administración de archivos y directorios son los siguientes:

  • cat: muestra el contenido de un archivo de texto. Ej.: cat /etc/fstab
  • cp: copia archivos y directorios. Ej.: cp -iv archivo1 /tmp/
  • ln: crea enlaces a archivos y directorios. Hay dos tipos: duros y blandos; los primeros sólo pueden ser creados sobre archivos y en el mismo sistema de archivos, mientras que los segundos no tienen tal limitación. Ej.: ln -s /ruta/archivo /otraruta/archivo
  • ls: lista archivos. Ej.: ls -lA /bin
  • mkdir: crea un directorio; con el parámetro -p crea los directorios parentales si no existen. Ej.: mkdir -p /tmp/uno/dos/tres
  • mv: se emplea para mover archivos o renombrarlos. Ej.: mv -iv archivo /tmp/
  • rm: elimina archivos y directorios. Se debe tener cuidado al utilizarlo, dado que un error puede provocar un desastre en un microsegundo. En Linux no hay manera de recuperar archivos eliminados. Ej.: rm /tmp/archivo

5.7. [ ] Fecha y hora: husos horarios, cambiar la fecha

Por obvias razones, es muy importante que el sistema esté en hora. Lo correcto es sincronizar la hora del sistema mediante NTP.

El comando para ver la fecha y hora, así como para configurarla es date.

El huso horario se puede cambiar creando un enlace simbólico en /etc/localtime a la información de huso horario correspondiente, presente en /usr/share/zoneinfo, por ejemplo:

ln -sf /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime

5.8. [ ] Logs: qué son, para qué sirven, cómo visualizarlos

Linux tiene un excelente sistema de logs o registros. En general son archivos de texto que se actualizan inmediatamente ante un evento. Se guardan en /var/log y se utilizan para identificar inconvenientes de todo tipo, desde errores de programas y servicios a fallas en hardware o ruteo de correo electrónico, así como para monitorear actividad normal como el envío de correo electrónico, faxes, spoolers de impresión, etc.

Ante cualquier falla en el sistema, se recomienda revisarlos a conciencia. El demonio encargado de guardarlos se llama rsyslogd en CentOS. Algunos servicios, como ejemplo MySQL, graban por sí mismos los registros, aunque suelen enviar algún dato a syslog también.

Para revisarlos, se puede usar algún visualizador como less. Para hacerlo en tiempo real, se puede utilizar la siguiente línea:

tail -F /var/log/messages

Algunos archivos de registro que se encuentran en /var/log en CentOS son:

  • dmesg: información de inicio del kernel, hasta que init toma el control
  • maillog: mensajes relacionados con el envío y recepción de correo electrónico
  • messages: es el registro principal donde van a parar la mayoría de los mensajes
  • secure: mensajes relacionados con seguridad, como apertura y cierre de sesiones de usuario o accesos por SSH
  • wtmp: es binario, y registra los accesos de usuarios y reinicios del sistema. Se visualiza con el comando last

Una herramienta práctica para visualizarlos es multitail. Por ejemplo, para visualizar los logs messages y secure simultáneamente:

multitail /var/log/secure /var/log/messages
linux/linea_de_comando.txt · Última modificación: 2017/03/07 11:32 (editor externo)