Guía de comandos básicos - Parte I

Sintaxis de los comandos en código abierto

El uso de la línea de comandos en sistemas operativos de código abierto es muy frecuente, su ejecución se realiza desde un terminal. Para la ejecución de un terminal existen según el sistema operativo distintas opciones. Algunas de ellas:
Barra de herramientas superior.
Aplicaciones en la barra de herramientas
Botón derecho sobre el escritorio.

Así es la sintaxis de los comandos sobre los sistemas operativos de código abierto:
Comando opción argumento
Los comandos pueden ser usados solos o con opciones o argumentos:
 
Item Descripción
Comando Especifica que hara el sistema (ejecutable)
Opción Especifica como se ejecuta el comando (modificador), se usa generalmente un guión (-)
Argumento Especifica que es afectado (archivo, directorio, texto, etc)



Ejemplo solo comando

dario@Leona:~$ ls
archivo archivo2 directorio1_ren directorio3 directorio5 dir_umask
archivo1 directorio1 directorio2 directorio4 directorio6 dir_umask1

Ejemplo comando con opciones

dario@Leona:~$ ls -l
total 36
-rw------- 1 dario dario 0 2009-11-07 18:41 archivo
-rw------- 1 dario dario 0 2009-11-07 18:42 archivo1
-rw------- 1 dario dario 0 2009-11-07 18:42 archivo2
dr--r--r-- 2 dario dario 4096 2009-10-30 15:51 directorio1
drwxr-xr-x 4 dario dario 4096 2009-11-07 18:38 directorio1_ren

Ejemplo de comando con opciones y argumentos

dario@Leona:~$ ls -l /usr/local
total 32
drwxr-xr-x 2 root root 4096 2009-04-20 09:29 bin
drwxr-xr-x 2 root root 4096 2009-04-20 09:29 etc
drwxr-xr-x 2 root root 4096 2009-04-20 09:29 games
drwxr-xr-x 2 root root 4096 2009-04-20 09:29 include
drwxr-xr-x 3 root root 4096 2009-04-20 09:29 lib
lrwxrwxrwx 1 root root 9 2010-07-15 19:49 man -> share/man
drwxr-xr-x 2 root root 4096 2009-04-20 09:29 sbin
drwxr-xr-x 11 root root 4096 2009-04-20 09:38 share
drwxr-xr-x 2 root root 4096 2009-04-20 09:29 src

De igual manera se pueden ejecutar múltiples comandos separados por el carácter especial “;”

Ejemplo de ejecución de múltiples comandos

dario@Leona:~$ cal;date
March 2010
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Thu Mar 11 20:00:32 VET 2010

La salida del conjunto de comandos anterior muestra el calendario del mes configurado en la maquina ademas de la fecha que este configurada en el sistema operativo (vale la pena destacar que en el orden en que los coloquemos así serán ejecutados).


Manejando ayuda sobre la línea de comandos

El comando man


Abreviatura de manual, dicho comando ofrece información detallada de comandos y como usarlos.
Una página de manual se ejecuta usando la palabra reservada man seguido del comando sobre el que se quiera obtener información.

Ejemplo:
dario@Leona:~$ man ls
LS(1) User Commands LS(1)

NAME
ls - list directory contents

SYNOPSIS
ls [OPTION]... [FILE]...

DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options
too.

-a, --all
do not ignore entries starting with .

-A, --almost-all
do not list implied . and ..

--author
with -l, print the author of each file
(SALIDA CORTADA POR CUESTIONES DE ESPACIO)
dario@Leona:~$ man cal
CAL(1) BSD General Commands Manual CAL(1)

NAME
cal, ncal - displays a calendar and the date of easter

SYNOPSIS
cal [-3jmy] [[month] year]
ncal [-jJpwy] [-s country_code] [[month] year]
ncal [-Jeo] [year]

DESCRIPTION
The cal utility displays a simple calendar in traditional format and ncal
offers an alternative layout, more options and the date of easter. The
new format is a little cramped but it makes a year fit on a 25x80 termi‐
nal. If arguments are not specified, the current month is displayed.

The options are as follows:

-3 Print the previous month, the current month, and the next month
all on one row. This flag will only work if you are not display‐
ing Julian days (see -J below).

-J Display Julian Calendar, if combined with the -e option, display

(SALIDA CORTADA POR CUESTIONES DE ESPACIO)

Si necesitamos averiguar si existe una página del man a partir de una palabra ejecutamos el comando man seguido de la opción -k seguido de la palabra clave.

Ejemplo:
dario@Leona:~$ man -k calculator
bc (1) - An arbitrary precision calculator language
dc (1) - an arbitrary precision calculator
gcalctool (1) - a desktop calculator
gnome-calculator (1) - a desktop calculator
xcalc (1) - scientific calculator for X

A continuación una tabla que muestra algunas opciones de como moverse dentro del man:
Tecla de movimiento Acción
Barra espaciadora Despliega la proxima pantalla de una página del man
Enter Despliega la proxima línea de una página del man
b Mueve de regreso una pantalla completa
f Mueve hacia adelante una página completa
/patrón Busca hacia adelante por un patrón
n Encuentra la próxima ocurrencia de un patrón después de haber usado /patrón
N (mayuscula) Encuentra la próxima ocurrencia hacia atras de un patrón después de haber usado /patrón
h Provee una descripción de movimiento
q Salida de la página del man


Listando - visualizando archivos y directorios

El comando ls

El comando ls es una abreviatura de “list” (lista) sería la traducción, dicho comando permite como su nombre lo indica listar o mostrar información detallada de archivos o directorios en el interprete de comandos o terminal.

El comando ls puede ser ejecutado con o sin opciones, con o sin argumentos:
El comando ls sin opciones lista el contenido del directorio donde este posicionado el usuario, la salida sera mostrada sin detalle acerca de los archivos o directorios.

El comando ls con la opción -l muestra en detalle el contenido del directorio.

Ejemplo:
dario@Leon:~/ejemplos$ ls -l
total 8 (fila 1)
-rw-r--r-- 1 dario dario 0 2009-10-23 21:06 archivo (fila 1)
drwxr-xr-x 2 dario dario 4096 2009-10-23 21:06 directorio1 (fila 3)
drwxr-xr-x 2 dario dario 4096 2009-10-23 21:07 directorio2
dario@Leon:~/ejemplos$

La salida anterior muestra
Fila 1:
total 8 cantidad de enlaces duros (hardlink en íngles), refiere a la cantidad de archivos o directorios que existen donde se ejecutó el comando incluyendo los archivos.

Fila 2 y fila 3:
  • El caracter “-” indica que es un archivo, el caracter “d” significa directorio.
  • El conjunto de caracteres “rw- “, indican la permisología que ejerce el usuario sobre el archivo o directorio. El caracter “r” significa que el bit de lectura esta activo osea el usuario dueño del archivo dario puede leer el documento, el caracter “w” significa que el bit de escritura esta activo y el usuario dueño del documento puede escribir sobre el, finalmente el caracter “-” nos especifica que el bit de ejecución esta apagado para el usuario dueño del archivo.
  • El conjunto de caracteres “r-- “ representan la permisología para el grupo, la distribución del conjunto de caracteres nos enseña que solo esta permitida la lectura para el grupo dueño del archivo, los bits de escritura y ejecución están apagados
  • El ultimo conjunto de caracteres “r--” manejan la permisología para el resto de usuarios, lectura para cualquier otro usuario, pero escritura y ejecución apagados.
  • El número “1” indica la cantidad de enlaces simbólicos (mas adelante se explicara que es un enlace simbólico)
  • dario usuario dueño del archivo
  • dario grupo dueño del archivo
  • 0 representa el tamaño del archivo.
  • 2009-10-23 21:06 Fecha de creación del archivo
  • archivo es el nombre del archivo.


El comando ls con la opción -a permitirá mostrar archivos o directorios ocultos, en codigo abierto estos comienzan con un punto (.)

Ejemplo:
dario@Leon:~/ejemplos$ ls -la
total 16
drwxr-xr-x 4 dario dario 4096 2009-10-25 21:58 .
drwxr-xr-x 36 dario dario 4096 2009-10-23 21:08 ..
-rw-r--r-- 1 dario dario 0 2009-10-23 21:06 archivo
-rw-r--r-- 1 dario dario 0 2009-10-25 21:58 .archivooculto
drwxr-xr-x 2 dario dario 4096 2009-10-23 21:06 directorio1
drwxr-xr-x 2 dario dario 4096 2009-10-23 21:07 directorio2

Donde . representa al directorio actual, .. representa al directorio superior .archivooculto a un archivo oculto.

Cuando necesitamos conocer información acerca de un directorio pero sin desplegar su contenido usamos el comando ls seguido de la opción -d y el nombre del directorio.

Ejemplo:
dario@Leon:~$ ls -ld ejemplos/
drwxr-xr-x 4 dario dario 4096 2009-10-25 21:58 ejemplos/
dario@Leon:~$ 

 

El comando more

Opciones que permiten navegar una vez desplegada la información dentro del archivo:

Tecla de movimiento Acción
Barra espaciadora Despliega la proxima pantalla de una página del archivo
Enter Despliega la proxima linea dentor del archivo
b Mueve de regreso una pantalla completa
f Mueve hacia adelante una página completa
/patrón Busca hacia adelante por un patrón
n Encuentra la próxima ocurrencia de un patrón después de haber usado /patrón
N (mayuscula) Encuentra la próxima ocurrencia hacia atras de un patrón después de haber usado /patrón
h Provee una descripción de movimiento
q Salida del archivo
 
 


El comando less

Su nombre proviene del juego de palabras “mas hacia atras” en íngles backward more



Tecla de movimientoAcción
Barra espaciadoraDespliega la proxima pantalla de una página del archivo
EnterDespliega la proxima linea dentor del archivo
bMueve de regreso una pantalla completa
fMueve hacia adelante una página completa
/patrónBusca hacia adelante por un patrón
nEncuentra la próxima ocurrencia de un patrón después de haber usado /patrón
N (mayuscula)Encuentra la próxima ocurrencia hacia atras de un patrón después de haber usado /patrón
hProvee una descripción de movimiento
qSalida del archivo



Nota: Cuando se realiza la búsqueda utilizando el comando anterior las coincidencias serán resaltadas.



El comando cat

El curioso nombre proviene de “CATenate” en íngles, ya que una de sus funciones es permitir la concatenación de archivos. Algunas de sus funciones son:
Permite visualizar la información dentro de un archivo.

Ejemplo:
dario@Leona:/etc/default$ cat cron
# Cron configuration options

# Uncomment this option for LSB name support in /etc/cron.d/
#LSBNAMES='-l'

# Whether to read the system's default environment files (if present)
# This will make cron set a proper charset for the mails it sends
# Comment this or set it to something other than 'yes' to prevent
# cron from reading it.
READ_ENV="yes"

# Extra options for cron, see cron(8)
# For example, set a higher log level to audit cron's work
# EXTRA_OPTS="-L 2"

Es importante destacar que si se usa para la lectura de archivos, estos deben ser de un tamaño reducido ya que no tiene las opciones de los comandos descritos anteriormente, respecto a avance de páginas, avance de líneas, etc.


Nota: si la intención es obtener salidas como la de los comandos previos hay que utilizar redirección.
Otras funciones incluyen:

Comando cat sin opciones

Si se ejecuta sin nombre de archivo todo lo que escribamos al presionar la tecla de enter sera visualizado en la salida por defecto (standard output) osea el monitor, ya que como no se redirecciona a un archivo la salida por defecto es el monitor.
Ejemplo:
dario@Leona:/etc/default$ cat
hola mundo
hola mundo

Nota: Para terminar el uso del cat sin opciones presionamos la tecla en simultaneo con la tecla

Creación de archivos

Esta modo de creación de archivos es mucho mas rápido que usar comandos como vi, nano, etc.
La creación de archivos se realiza entonces usando el comando cat seguido del signo de mayor que indica redirección y el nombre que le vamos a dar al archivo.

Ejemplo:

cat > archivo
Cuando se termina de realizar la edición se presiona D para guardar la información.
dario@Leona:~/ejemplos$ cat > archivocat
hola mundo
Adios
dario@Leona:~/ejemplos$

Nota: Para finalizar la edición se ejecuta la tecla en simultaneo con la tecla D, recordemos que si volvemos a ejecutar el comando se borrara la información ya almacenada.

Añadiendo líneas al final de un archivo


Esto podremos hacerlo ejecutando el comando cat seguido por el signo de redirección >> y el nombre del archivo.

Ejemplo:
dario@Leona:~/ejemplos$ cat >> archivocat
Esto va despues de adios
dario@Leona:~/ejemplos$ cat archivocat
Hola Mundo
Adios
Esto va despues de adios
dario@Leona:~/ejemplos$

Concatenación

Esto nos permite unir varios archivos en uno solo.

Ejemplo:
dario@Leona:~/ejemplos$ more archivocat1 archivocat2
::::::::::::::
archivocat1
::::::::::::::
Hola
::::::::::::::
archivocat2
::::::::::::::
mundo
dario@Leona:~/ejemplos$ cat archivocat1 archivocat2 > archivocatfinal
dario@Leona:~/ejemplos$ more archivocatfinal
Hola
mundo
dario@Leona:~/ejemplos$

Verificando información final de un archivo

El comando tail (algo así como cola o final en español) permite verificar ultimas 10 líneas sobre algún archivo.

Ejemplo:
dario@Leon:~$ tail /var/log/messages
Oct 27 18:43:43 Leon kernel: [317551.621932] scsi 11:0:0:1: CD-ROM Kingston DataTraveler U3 6.16 PQ: 0 ANSI: 0
Oct 27 18:43:43 Leon kernel: [317551.623290] sd 11:0:0:0: [sdb] Attached SCSI removable disk
Oct 27 18:43:43 Leon kernel: [317551.623374] sd 11:0:0:0: Attached scsi generic sg2 type 0
Oct 27 18:43:43 Leon kernel: [317551.629570] sr1: scsi3-mmc drive: 8x/40x writer xa/form2 cdda tray
Oct 27 18:43:43 Leon kernel: [317551.629814] sr 11:0:0:1: Attached scsi generic sg3 type 5
Oct 27 18:43:47 Leon kernel: [317554.979565] sd 11:0:0:0: [sdb] 4003711 512-byte hardware sectors: (2.04 GB/1.90 GiB)
Oct 27 18:43:47 Leon kernel: [317554.980209] sd 11:0:0:0: [sdb] Write Protect is off
Oct 27 18:43:47 Leon kernel: [317554.981849] sd 11:0:0:0: [sdb] 4003711 512-byte hardware sectors: (2.04 GB/1.90 GiB)
Oct 27 18:43:47 Leon kernel: [317554.982424] sd 11:0:0:0: [sdb] Write Protect is off
Oct 27 18:43:47 Leon kernel: [317554.982436] sdb: sdb1
dario@Leon:~$

De la misma manera podemos desplegar las ultimas 10 o 15 usando la opción -n.

Ejemplo:
dario@Leon:~$ tail -5 /var/log/messages
Oct 27 18:43:47 Leon kernel: [317554.980209] sd 11:0:0:0: [sdb] Write Protect is off
Oct 27 18:43:47 Leon kernel: [317554.981849] sd 11:0:0:0: [sdb] 4003711 512-byte hardware sectors: (2.04 GB/1.90 GiB)
Oct 27 18:43:47 Leon kernel: [317554.982424] sd 11:0:0:0: [sdb] Write Protect is off
Oct 27 18:43:47 Leon kernel: [317554.982436] sdb: sdb1
Oct 27 18:56:05 Leon -- MARK --
dario@Leon:~$

Si nuestra intención es monitorear algún archivo usamos la opción especial -f para el tail, cada nueva línea aparecerá en tiempo real sobre dicho archivo, para detener el monitoreo del archivo ejecutamos seguido de la tecla C, el comando completo sería tail -f /var/log/messages (ejemplo).

Verificando información del comienzo de un archivo

Para verificar la información correspondiente a la cabecera de un archivo usamos el comando head (cabeza o comienzo en español), Este comando nos muestra las primeras lineas de un archivo.

Ejemplo:
dario@Leon:/var/log/apt$ sudo head -4 /var/log/apt/term.log

Log started: 2009-10-01 20:40:21
(Reading database ... 132248 files and directories currently installed.)
Removing gdm-guest-session ...
dario@Leon:/var/log/apt$

Dónde estamos ubicados

El comando pwd (print working directory) que significa imprimir el directorio de trabajo permite verificar el directorio donde se esta posicionado en un momento dado.

Ejemplo:
dario@Leon:~/ejemplos$ pwd
/home/dario/ejemplos

Moviendose entre directorios

Cuando queremos movernos de un directorio a otro usamos el comando cd (change directory), obviamente este comando nos permite cambiarnos de un directorio a otro como su traducción lo indica. el comando cd sin argumento nos llevara al directorio home del usuario que esta usando la sesión actual.

Ejemplo:
dario@Leon:~/ejemplos$ cd /usr/local/zabbix/
dario@Leon:/usr/local/zabbix$ cd
dario@Leon:~$ pwd
/home/dario
dario@Leon:~$

Como vemos en el ejemplo anterior estamos ubicados en un directorio distinto y ejecutando cd nos lleva al directorio home del usuario dario quien es el usuario que inicio sesión (dependiendo del sistema operativo el home directory del usuario puede ser o /export/home/usuario OpenSolaris o /home/usuario Linux).

Nota: EL home directory de un usuario es la carpeta donde el usuario tiene permisos para almacenar información, música, documentos, crear sus propios scripts, etc, sin verse en la necesidad de usar comandos especiales o que le sean otorgados permisos especiales.

Algunos atajos en el uso del comando cd son:
cd seguido del carácter especial “-” nos lleva al directorio anterior.

Ejemplo:
dario@Leon:~$ pwd
/home/dario
dario@Leon:~$ cd -
/usr/local/zabbix
dario@Leon:/usr/local/zabbix$
cd seguido del caracter especial “.” colocado dos veces “..” nos llevara al directorio inmediatamente superior.

Ejemplo:
dario@Leon:/usr/local/zabbix$ cd ..
dario@Leon:/usr/local$ pwd
/usr/local
dario@Leon:/usr/local$

Si queremos movernos a un directorio distinto y sabemos donde esta en el arbol podemos usar una ruta relativa.

Ejemplo:
dario@Leon:~/ejemplos/directorio1/subdirectorio1$ pwd
/home/dario/ejemplos/directorio1/subdirectorio1
dario@Leon:~/ejemplos/directorio1/subdirectorio1$ cd ../../directorio2/
dario@Leon:~/ejemplos/directorio2$ pwd
/home/dario/ejemplos/directorio2
dario@Leon:~/ejemplos/directorio2$

Esto lo hacemos por conocer la ditribución de directorios dentro del home del usuario dario.

Guía de comandos básicos - Parte II