Está en la página 1de 16

Capítulo 2: Usando el Shell

Este capítulo cubrirá los siguientes objetivos del examen:


103.1: Trabajar en la línea de comando v2
Peso: 4
Los candidatos deben poder interactuar con shells y comandos mediante la línea de
comandos. El objetivo asume el caparazón Bash.
Áreas clave de conocimiento:

 Use comandos de un solo shell y secuencias de comandos de una línea para


realizar tareas básicas en la línea de comandos.
| Sección 2.1 | Sección 2.2 | Sección 2.2.1 | Sección 2.2.2 | Sección 2.3 | Sección
2.3.1 | Sección 2.3.1.1 | Sección 2.3.2 | Sección 2.4 | Sección 2.5 | Sección 2.6 | Sección
2.7 | Sección 2.8

Chapter 2: Using the Shell


Quoting

Enclosing special characters in quotes will prevent the shell from interpreting
special characters. Double quotes will prevent the shell from interpreting some of
these special characters; single quotes prevent the shell from interpreting any
special characters.
Section 2.3.1.1

echo

Echo the STRING(s) to standard output. Useful with scripts.


Section 2.3.1.1

man

An interface to the on-line reference manuals.


Section 2.9 | Section 2.9.1 | Section 2.9.2 | Section 2.9.3 | Section 2.9.4 | Section 2.9.5 | Section
2.9.6 | Section 2.9.6.1 | Section 2.9.6.2 | Section 2.9.6.3 | Section 2.9.6.4

pwd

Print the name of the current working directory.


Section 2.6

uname

Print certain system information such as kernel name, network node hostname,
kernel release, kernel version, machine hardware name, processor type, hardware
platform, and operating system, depending on options provided.
Section 2.5

2.1 Interfaz de línea de comandos


La mayoría de los sistemas operativos de consumo están diseñados para proteger al
usuario de los "entresijos" de la CLI. La comunidad de Linux es diferente en el sentido de
que celebra positivamente la CLI por su potencia, velocidad y capacidad para realizar una
amplia gama de tareas con una sola instrucción de línea de comandos.
Cuando un usuario se encuentra por primera vez con la CLI, puede encontrarlo desafiante
porque requiere memorizar una cantidad vertiginosa de comandos y sus opciones. Sin
embargo, una vez que un usuario ha aprendido la estructura de cómo se usan los
comandos, dónde se encuentran los archivos y directorios necesarios y cómo navegar por
la jerarquía de un sistema de archivos, puede ser inmensamente productivo. Esta
capacidad proporciona un control más preciso, mayor velocidad y la capacidad de
automatizar tareas más fácilmente a través de secuencias de comandos.
Además, al aprender la CLI, un usuario puede ser productivo casi instantáneamente en
CUALQUIER sabor o distribución de Linux, lo que reduce la cantidad de tiempo necesario
para familiarizarse con un sistema debido a las variaciones en una GUI.

2.2 Comandos
¿Qué es un comando? La respuesta más simple es que un comando es un programa de
software que, cuando se ejecuta en la línea de comandos, realiza una acción en la
computadora.
Cuando considera un comando usando esta definición, realmente está considerando lo
que sucede cuando ejecuta un comando. Cuando escribe un comando, el sistema
operativo ejecuta un proceso que puede leer entradas, manipular datos y producir
resultados. Desde esta perspectiva, un comando ejecuta un proceso en el sistema
operativo, que luego hace que la computadora realice un trabajo .
‌ in embargo, hay otra forma de ver qué es un comando: mirar su fuente . La fuente es de
S
donde "viene" el comando y hay varias fuentes diferentes de comandos dentro del shell de
su CLI:
 Comandos internos : también llamados comandos integrados , estos comandos
están integrados en el propio shell. Un buen ejemplo es el cdcomando (cambiar
directorio) ya que es parte del shell Bash. Cuando un usuario escribe
el cdcomando, el shell Bash ya se está ejecutando y sabe cómo interpretar ese
comando, por lo que no es necesario iniciar programas adicionales.
 Comandos externos : estos comandos se almacenan en archivos que el shell
busca. Si escribe el lscomando, el shell busca en una lista predeterminada de
directorios para intentar encontrar un archivo con un nombre lsque pueda
ejecutar. Estos comandos también se pueden ejecutar escribiendo la ruta completa
al comando.
 Alias : un alias puede anular un comando integrado, una función o un comando
que se encuentra en un archivo. Los alias pueden ser útiles para crear nuevos
comandos creados a partir de funciones y comandos existentes.
 Funciones : las funciones también se pueden crear utilizando comandos
existentes para crear nuevos comandos, anular comandos integrados en el shell o
comandos almacenados en archivos. Los alias y las funciones normalmente se
cargan desde los archivos de inicialización cuando se inicia el shell por primera
vez, lo que se analiza más adelante en esta sección.

 2.2.1 Comandos Externos


 Los comandos que se almacenan en archivos pueden tener varias formas que
debe tener en cuenta. La mayoría de los comandos están escritos en el lenguaje
de programación C, que inicialmente se almacena en un archivo de texto legible
por humanos. Estos archivos fuente de texto luego se compilan en archivos
binarios legibles por computadora, que luego se distribuyen como archivos de
comando.
 Los usuarios que estén interesados en ver el código fuente del software compilado
con licencia GPL pueden encontrarlo a través de los sitios donde se originó. El
código con licencia GPL también obliga a los distribuidores de los binarios
compilados, como RedHat y Debian, a poner a disposición el código fuente. A
menudo se encuentra en los repositorios de los distribuidores.
 Nota
 Es posible ver los paquetes de software disponibles, programas binarios que se
pueden instalar directamente en la línea de comandos. Escriba el siguiente
comando en la terminal para ver los paquetes fuente disponibles (código fuente
que se puede modificar antes de compilarlo en programas binarios) para la
colección de compiladores GNU:
 sysadmin@localhost : ~ $ apt-cache buscar gcc | grep source
 gcc-4.8- source - Fuente de la colección de compiladores GNU
 gcc-5- source - Fuente de la colección de compiladores GNU
 gcc-6- source - Fuente de la colección de compiladores GNU
 gcc-7- source - Fuente de la colección de compiladores GNU
 gcc-8- source - Fuente de la colección de compiladores GNU
 gcc-arm-none-eabi- source - Compilador cruzado GCC para
procesadores ARM Cortex-A/R/M ( fuente )

 El apt-cachecomando nos permite mostrar información de la caché de la base de


datos APT. Se usa comúnmente para encontrar información sobre los programas
que desea instalar y los componentes necesarios para que funcionen.
 Aunque hay una gran cantidad de programas gratuitos y de código abierto
disponibles, muy a menudo el código binario que necesitará como administrador de
Linux no existirá para la distribución particular que está ejecutando. Dado que las
licencias de código abierto le dan acceso al código de estos programas, una de
sus tareas será compilar y, a veces, modificar ese código en programas
ejecutables que se pueden instalar en los sistemas que administra. La Free
Software Foundation (FSF) distribuye GNU Compiler Collection (GCC) para facilitar
este proceso. El GCC proporciona un sistema compilador (los programas
especiales que se utilizan para convertir el código fuente en programas binarios
utilizables) con interfaces para muchos lenguajes de programación diferentes. De
hecho, la FSF no limita estas herramientas solo a Linux. Hay versiones de GCC
que se ejecutan en Unix, Windows, MacOS,
 La administración de paquetes de Linux se tratará con mayor detalle más adelante
en el curso.
 Nota
 Los archivos de comandos también pueden contener texto legible por humanos en
forma de archivos de script . Un archivo de script es una colección de comandos
que normalmente se ejecuta en la línea de comandos.
 La capacidad de crear sus propios archivos de secuencias de comandos es una
característica muy poderosa de la CLI. Si tiene una serie de comandos que escribe
regularmente para realizar alguna tarea, entonces puede crear fácilmente un script
de shell Bash para ejecutar estos múltiples comandos escribiendo solo un
comando: el nombre de su archivo de script. Simplemente necesita colocar estos
comandos en un archivo y hacer que el archivo sea ejecutable .

2.2.2 Alias
Se puede usar un alias para asignar comandos más largos a secuencias de teclas más
cortas. Cuando el shell ve que se está ejecutando un alias, sustituye la secuencia más
larga antes de proceder a interpretar los comandos.
Por ejemplo, el comando ls -lsuele tener un alias lo ll. Debido a que estos comandos
más pequeños son más fáciles de escribir, se vuelve más rápido ejecutar la ls -llínea de
comandos.
Para determinar qué alias están configurados en el shell actual, use el aliascomando:

sysadmin@localhost : ~ $ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la ='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

Los alias de los ejemplos anteriores fueron creados por archivos de inicialización. Estos
archivos están diseñados para que el proceso de creación de alias sea automático.
Se pueden crear nuevos alias usando el siguiente formato, donde namees el nombre que
se le dará al alias y commandes el comando que se ejecutará cuando se ejecute el alias.

nombre de alias = comando

Por ejemplo, el cal 2030comando muestra el calendario para el año 2030. Suponga que
termina ejecutando este comando con frecuencia. En lugar de ejecutar el comando
completo cada vez, puede crear un alias llamado mycaly ejecutar el alias, como se
muestra en el siguiente gráfico:

sysadmin@localhost : ~ $ alias mycal="cal 2030"


sysadmin@localhost : ~ $ mycal
2030
enero febrero marzo do lu
ma mi ju vi sá do lu ma mi ju vi sa do lu ma mi ju vi sa
1 2 3 4 5 1 2 1 2 6
7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9 13 14 15 16 17 18 19 10 11
12 13 14 15 16 10 11 12 13 14 15
16
20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 19 20 21 22 23 27 28
29 30 31 24 25 26 27 28 24 25 26 27 28 29
30
31

abril mayo junio


do lu lu ju jue lu ma mi ju vi sá do lu ma mi ju vi sá
1 2 3 4 5 6 1 2 3 4 1
7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 14 15 16 17
18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 21 22 23 24 25 26 27
19 20 21 22 23 24 25 16 17 18
19 20 21 22
1 2 3
4
5 1

2
1 2 3 4 5 6 7 6
7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14 13 14 15 16 17 18 19
10 11 12 13 14 15 16 15 16 17 18 19 20
21
20 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28 27 28 29 30
31 24 25 26 27 28 29 30
29 30 31

Los alias creados de esta manera solo persisten mientras el shell está abierto. Una vez
que se cierra el shell, los nuevos alias se pierden. Además, cada shell tiene sus propios
alias, por lo que los alias creados en un shell no estarán disponibles en un nuevo shell que
se abra.

2.3 Sintaxis básica de comandos


Para ejecutar un comando, el primer paso es escribir el nombre del comando. Haz clic en
el terminal de la derecha. Escribe lsy presiona Enter . El resultado debe parecerse al
siguiente ejemplo:

sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos

Nota
Por sí mismo, el lscomando enumera los archivos y directorios contenidos en el directorio
de trabajo actual. En este punto, no debe preocuparse demasiado por la salida del
comando, sino centrarse en comprender cómo formatear y ejecutar los comandos.
El  lscomando se cubrirá con mayor detalle más adelante en el curso.
Muchos comandos se pueden usar solos sin necesidad de más entradas. Algunos
comandos requieren una entrada adicional para ejecutarse correctamente. Esta entrada
adicional viene en dos formas: opciones y argumentos . Los comandos suelen seguir un
patrón simple de sintaxis:

comando [ opciones ...] [ argumentos ...]

Al escribir un comando que se va a ejecutar, el primer paso es escribir el nombre del


comando. El nombre del comando a menudo se basa en lo que hace el comando o en lo
que el desarrollador que creó el comando cree que describirá mejor la función del
comando.
Por ejemplo, el lscomando muestra una lista de información sobre archivos. Asociar el
nombre del comando con algo mnemotécnico por lo que hace puede ayudarlo a recordar
los comandos más fácilmente.
Tenga en cuenta que cada parte del comando normalmente distingue entre mayúsculas y
minúsculas, por lo que LSes incorrecta y fallará, pero lses correcta y tendrá éxito.

2.3.1 Especificación de argumentos


comando [opciones] [ argumentos ]

Se puede usar un argumento para especificar algo sobre lo que actuará el


comando. Después de un comando, se permiten o se requieren los argumentos deseados
según el comando. Por ejemplo, el touchcomando se usa para crear archivos vacíos o
actualizar la marca de tiempo de los archivos existentes. Requiere al menos un argumento
para especificar el nombre del archivo sobre el que actuar.

toque ARCHIVO ...


sysadmin@localhost : ~ $ toque archivo nuevo

El lscomando, por otro lado, permite especificar una ruta y/o un nombre de archivo como
argumento, pero no es obligatorio.

ls [ ARCHIVO ]...

Un ejemplo de un escenario donde se permite un argumento pero no se requiere es el uso


del lscomando. Si el lscomando se usa sin un argumento, listará el contenido del
directorio actual:

sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos

Si al lscomando se le da el nombre de un directorio como argumento, listará el contenido


de ese directorio. En el siguiente ejemplo, el /etc/pppdirectorio se usa como
argumento; la salida resultante es una lista de archivos contenidos en
el /etc/pppdirectorio:

sysadmin@localhost : ~ $ ls /etc/ppp
ip-down.d ip-up.d

El lscomando también acepta múltiples argumentos. Para enumerar el contenido de los


directorios /etc/pppy /etc/ssh, páselos como argumentos:

sysadmin@localhost : ~ $ ls /etc/ppp /
/etc/ppp:
ip-down.d ip-up.d
/etc/ssh:
módulos ssh_host_ecdsa_key ssh_host_rsa_key
ssh_config ssh_host_ecdsa_key.pub ssh_host_rsa_key.pub
ssh_host_dsa_key
ssh_host_ids_key_im_key publicación ssh_host_ed25519_key.pub
sshd_config

Algunos comandos, como el cpcomando ( copiar archivo) y el mvcomando


( mover archivo), siempre requieren al menos dos argumentos: un archivo de origen y un
archivo de destino.

cp FUENTE ...DESTINATION

En el siguiente ejemplo, copiaremos la clave pública ssh rsa


llamada ssh_host_rsa_key.pubque reside en el /etc/sshdirectorio,
al /home/sysadmin/Documentsdirectorio y verificaremos que esté allí:

sysadmin@localhost : ~ $ cp /etc/ssh/ssh_host_rsa_key.pub
/home/sysadmin/Documents
sysadmin@localhost : ~ $ ls ~/Documents
School alpha.txt linux.txt profile.txt
Work animals.txt longfile.txt red. txt
adjetivos.txt comida.txt nuevo hogar.txt ortografía.txt
alfa-primero.txt hola.sh números.txt ssh_host_rsa_key.pub
alfa-segundo.txt oculto.txt os.csv palabras
alfa-tercero.txt letras.txt personas.csv

Considera esto
Una clave ssh rsa es un archivo que contiene una credencial de autenticación (similar a
una contraseña) que se utiliza para verificar la identidad de una máquina en la que se
inicia sesión con el sshcomando. El sshcomando permite a los usuarios de un sistema
conectarse a otra máquina a través de una red, iniciar sesión y luego realizar tareas en la
máquina remota.
El  sshcomando se cubre con mayor detalle más adelante en NDG Introducción a Linux
2 .

2.3.1.1 Quoting (comillas)


Los argumentos que contienen caracteres inusuales, como espacios o caracteres no
alfanuméricos, generalmente deberán citarse , ya sea encerrándolos entre comillas dobles
o simples. Las comillas dobles evitarán que el shell interprete algunos de estos caracteres
especiales; las comillas simples evitan que el shell interprete cualquier carácter especial.
En la mayoría de los casos, las comillas simples se consideran más seguras y
probablemente deberían usarse siempre que tenga un argumento que contenga caracteres
que no sean alfanuméricos.
Para entender la importancia de las comillas, considere el echocomando. El echocomando
muestra texto en el terminal y se usa ampliamente en secuencias de comandos de shell.

eco [ CADENA ]...


Considere el siguiente escenario en el que desea enumerar el contenido del directorio
actual usando el lscomando y luego use el echocomando para mostrar la cadena hello
world!!en la pantalla.
Primero puede probar el echocomando sin comillas, desafortunadamente sin éxito:

sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos
sysadmin@localhost : ~ $ echo hola mundo!!
echo hola mundo
hola mundo

El uso de comillas no falló porque el shell interpreta los !!caracteres como caracteres


especiales del shell; en este caso, significan "reemplazar el !!con el último comando que
se ejecutó". En este caso, el último comando fue el lscomando, por lo que lsse
reemplazó !!y luego echose mostró el comando hello worldlsen la pantalla.
Es posible que desee probar los "caracteres de comillas dobles para ver si bloquearán la
interpretación (o expansión) de los !!caracteres de exclamación. Las comillas dobles
bloquean la expansión de algunos caracteres especiales, pero no de
todos. Desafortunadamente, las comillas dobles no bloquean la expansión de los !!
caracteres de exclamación:

sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos
sysadmin@localhost : ~ $ echo "¡¡Hola mundo!!"
echo "hola mundos"
hola mundos

El uso de comillas dobles conserva el valor literal de todos los caracteres que encierran,
excepto los metacaracteres, como el $carácter de signo de dólar, el `carácter de comilla
invertida, el \carácter de barra invertida y el !carácter de signo de exclamación. Estos
caracteres, llamados comodines , son caracteres de símbolo que tienen un significado
especial para el shell. Los caracteres comodín se utilizan para englobar y son
interpretados por el propio shell antes de intentar ejecutar cualquier comando. Los
caracteres globales son útiles porque le permiten especificar patrones que facilitan la
coincidencia de nombres de archivos en la línea de comandos. Por ejemplo, el
comando ls e??enumeraría todos los archivos en ese directorio que comienzan con uney
tiene dos caracteres después de él. Sin embargo, debido a que el shell interpreta los
caracteres globales de manera diferente, deben encerrarse adecuadamente para que se
interpreten literalmente.
Nota
Globbing se tratará con mayor detalle más adelante en el curso.
Si incluye texto entre 'comillas simples, todos los caracteres tienen su significado literal:

sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos
sysadmin@localhost : ~ $ echo '¡¡Hola mundo!!'
¡¡Hola Mundo!!

2.3.2 Opciones
comando [ opciones ] [argumentos]

Las opciones se pueden usar con los comandos para expandir o modificar la forma en que
se comporta un comando. Si es necesario agregar opciones, se pueden especificar
después del nombre del comando. Las opciones cortas se especifican con un guión -
seguido de un solo carácter. Las opciones cortas son cómo se especificaban
tradicionalmente las opciones.
En el siguiente ejemplo, la -lopción se proporciona al lscomando, lo que da como
resultado una salida de pantalla larga :

sysadmin@localhost : ~ $ ls -l
total 0
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Escritorio
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Documentos
drwxr-xr-x 1 sysadmin sysadmin 0 18 de sep. 22:25 Descargas
drwxr-xr-x 1 sysadmin sysadmin 0 18 de sep. 22:25 Música drwxr
-xr-x 1 sysadmin
sysadmin 0 18 de sep. Público
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Plantillas
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Videos

A menudo, el carácter se elige para que sea mnemotécnico para su propósito, como elegir
la letra l para largo o r para reverso . De forma predeterminada, el lscomando imprime los
resultados en orden alfabético, por lo que agregar la -ropción imprime los resultados en
orden alfabético inverso.

sysadmin@localhost : ~ $ ls -r
Vídeos Plantillas Imágenes públicas Música Descargas Documentos
Escritorio

En la mayoría de los casos, las opciones se pueden utilizar junto con otras opciones. Se
pueden dar como opciones separadas como -l -ro combinadas como -lr. La
combinación de estas dos opciones daría como resultado una salida de lista larga en
orden alfabético inverso:

sysadmin@localhost : ~ $ ls -l -r
total 0
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Videos
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Plantillas
drwxr-xr-x 1 sysadmin sysadmin 0 18 sep. 22:25 Público
drwxr-xr-x 1 sysadmin sysadmin 0 18 sep. 22:25 Imágenes
drwxr-xr-x 1 sysadmin sysadmin 0 18 sep. 22:25 Música
drwxr-xr-x 1 sysadmin sysadmin 0 18 sep. 22 :25 Descargas
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Documentos
drwxr-xr-x 1 sysadmin sysadmin 0 18 de septiembre 22:25 Escritorio

Se pueden dar múltiples opciones individuales como opciones separadas -a -l -ro


combinadas como -alr. El resultado de todos estos ejemplos sería el mismo:

ls -l -a -r
ls -rla
ls -a -lr

Generalmente, las opciones cortas se pueden combinar con otras opciones cortas en
cualquier orden. La excepción a esto es cuando una opción requiere un argumento.
Por ejemplo, la -wopción del lscomando especifica el ancho de la salida deseada y, por lo
tanto, requiere un argumento. Si se combina con otras opciones, la -wopción se puede
especificar en último lugar, seguida de su argumento y seguir siendo válida, como en ls -
rtw 40, que especifica un ancho de salida de 40 caracteres. De lo contrario, la -wopción
no se puede combinar con otras opciones y se debe dar por separado.

sysadmin@localhost : ~ $ ls -lr -w 40
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Videos

drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Plantillas

drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Público

drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Imágenes

drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Música

drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Descargas

drwxr-xr-x 4 sysadmin sysadmin 4096 22 de febrero 16:32 Documentos

drwxr-xr-x 2 sysadmin sysadmin 4096 22 de febrero 16:32 Escritorio

Si usa varias opciones que requieren argumentos, no las combine. Por ejemplo, la -
Topción, que especifica el tamaño de la pestaña , también requiere un argumento. Para
dar cabida a ambos argumentos, cada opción se da por separado:

sysadmin@localhost : ~ $ ls -w 40 -T 12
Escritorio Música Plantillas
Documentos Imágenes Videos
Descargas Público

Algunos comandos admiten opciones adicionales que son más largas que un solo
carácter. Las opciones largas para los comandos están precedidas por un guión doble --y
el significado de la opción suele ser el nombre de la opción, como la --allopción, que
enumera todos los archivos, incluidos los ocultos. Por ejemplo:

sysadmin@localhost : ~ $ ls --todos
. .bashrc .selected_editor Descargas Público
.. .cache Escritorio Música
Plantillas
.bash_logout .profile Documentos Imágenes Videos

Para los comandos que admiten opciones largas y cortas, ejecute el comando usando las
opciones largas y cortas al mismo tiempo:

sysadmin@localhost : ~ $ ls --all --reverse -t


.profile Plantillas Música Escritorio ..

.bash_logout Descargas públicas .selected_editor .cache


Vídeos Imágenes Documentos .bashrc .

Los comandos que admiten opciones largas a menudo también admiten argumentos que
se pueden especificar con o sin un símbolo igual (el resultado de ambos comandos es el
mismo):

ls --sort tiempo
ls --sort=tiempo
sysadmin@localhost : ~ $ ls --sort=time
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos

Existe una opción especial, la única -- opción de doble guión, que se puede utilizar para
indicar el final de todas las opciones del comando. Esto puede ser útil en algunas
circunstancias en las que no está claro si el texto que sigue a las opciones debe
interpretarse como una opción adicional o como un argumento del comando.
Por ejemplo, si el touchcomando intenta crear un archivo llamado --badname:

sysadmin@localhost : ~ $ touch --badname
touch: opción no reconocida '--badname'
Pruebe 'touch --help' para obtener más información.
El comando intenta interpretarse --badnamecomo una opción en lugar de un
argumento. Sin embargo, si la --opción de doble guión solitario se coloca antes del
nombre del archivo, lo que indica que no hay más opciones, entonces el nombre del
archivo se puede interpretar correctamente como un argumento:

sysadmin@localhost : ~ $ touch -- --badname


sysadmin@localhost : ~ $ ls
--badname Documentos Música Público Videos

Escritorio Descargas Imágenes Plantillas

Considera esto
El nombre de archivo del ejemplo anterior se considera incorrecto porque poner guiones al
principio de los nombres de archivo, aunque está permitido, puede causar problemas al
intentar acceder al archivo. Por ejemplo, usar el lscomando sin ninguna opción para
enumerar la ruta del --badnamearchivo anterior generará un error:
sysadmin@localhost : ~ $ ls --badname
ls: opción no reconocida '--badname'
Pruebe 'ls --help' para obtener más información.

Para eliminar el --badnamearchivo del directorio de inicio, utilice el comando rm eliminar :


sysadmin@localhost : ~ $ rm -- --nombre incorrecto

El  rmcomando se cubrirá con mayor detalle más adelante en el curso.


Existe un tercer tipo de opción para unos pocos comandos seleccionados. Mientras que
las opciones utilizadas en la versión AT&T de UNIX usaban un solo guión y el puerto GNU
de esos comandos usaba dos guiones, la versión Berkeley Software Distribution
(BSD) de UNIX usaba opciones sin ningún guión.
Esta sintaxis sin guión es bastante rara en la mayoría de las distribuciones de Linux. Un
par de comandos notables que admiten las opciones de estilo BSD UNIX son
los comandos psy ; tarambos comandos también admiten el estilo de opciones de guión
simple y doble.
En el terminal a continuación, hay dos comandos similares, el primer comando se ejecuta
con una opción de estilo UNIX tradicional (con guiones simples) y el segundo comando se
ejecuta con una opción de estilo BSD (sin guiones).

sysadmin@localhost : ~ $ ps -u sysadmin
PID TTY TIME CMD
79 ? 00:00:00 fiesta
122 ? 00:00:00 ps sysadmin@localhost : ~ $ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT HORA DE INICIO COMANDO
sysadmin 79 0.0 0.0 18176 3428 ? S 20:23 0:00 -bash
sysadmin 120 0.0 0.0 15568 2040 ? R+ 21:26 0:00 pd

2.4 Scripts
Una excepción a la sintaxis de comando básica utilizada es el exec comando, que toma
otro comando para ejecutar como argumento. Lo especial de los comandos que se
ejecutan exec es que reemplazan el shell que se está ejecutando actualmente.
Un uso común del exec comando es en lo que se conoce como scripts de envoltura . Si el
propósito de una secuencia de comandos es simplemente configurar e iniciar otro
programa, entonces se conoce como secuencia de comandos contenedora.
Una secuencia de comandos contenedora a menudo usa lo siguiente como la última línea
de la secuencia de comandos para ejecutar otro programa.

exec program

Un script escrito de esta manera evita que un shell continúe ejecutándose mientras se
ejecuta el programa que inició, el resultado es que esta técnica ahorra recursos (como
RAM).
Aunque la redirección de entrada y salida a una secuencia de comandos se analiza en otra
sección, también se debe mencionar que el exec comando se puede usar para provocar
la redirección de una o más declaraciones en una secuencia de comandos.

2.5 Visualización de información del


sistema
El unamecomando muestra información del sistema. Este comando se generará Linuxde
forma predeterminada cuando se ejecute sin ninguna opción.

sysadmin@localhost : ~ $ uname
Linux

El unamecomando es útil por varias razones, incluso cuando necesita determinar el nombre
de la computadora y la versión actual del kernel que se está utilizando.
Para mostrar información adicional sobre el sistema, puede usar una de las muchas
opciones disponibles para el unamecomando. Por ejemplo, para mostrar toda la
información sobre el sistema, use la -aopción con el unamecomando:

sysadmin@localhost : ~ $ uname -a
Linux localhost 4.4.0-72-generic #93~14.04.1-Ubuntu SMP Vie 31 de
marzo 15:05:15 UTC
2017 x86_64 x86_64 x86_64 GNU/Linux

Para mostrar información sobre qué versión de kernel está ejecutando el sistema, use la -
ropción:

sysadmin@localhost : ~ $ uname -r
4.4.0-72-genérico

Las opciones para el unamecomando se resumen a continuación:


Opción corta Opción larga Huellas dactilares

-a --all Toda la informacion

-s --kernel-name Nombre del núcleo

-n --node-name Nombre de nodo de red

-r --kernel-release Lanzamiento del núcleo

-v --kernel-version Versión del núcleo

-m --machine Nombre del hardware de la máquina

-p --processor Tipo de procesador o desconocido

-i --hardware-platform Plataforma de hardware o desconocida

-o --operating-system Sistema operativo

--help información de ayuda

--version Información de versión

2.6 Directorio actual


Uno de los comandos más simples disponibles es el pwdcomando, que es un acrónimo
de imprimir directorio de trabajo . Cuando se ejecuta sin ninguna opción, el pwdcomando
mostrará el nombre del directorio donde el usuario se encuentra actualmente en el sistema
de archivos. Cuando un usuario inicia sesión en un sistema, normalmente se coloca en
su directorio de inicio donde residen los archivos que crea y controla. A medida que
navega por el sistema de archivos, a menudo es útil saber en qué directorio se encuentra.

sysadmin@localhost : ~ $ pwd
/inicio/sysadmin

Observe que nuestras máquinas virtuales emplean un aviso que muestra el directorio de
trabajo actual, resaltado con el color azul. En el primer mensaje anterior, el ~carácter de
tilde azul es equivalente a /home/sysadmin, que representa el directorio de inicio del
usuario:
admin@localhost : ~ $

Después de cambiar de directorio, la nueva ubicación también se puede confirmar en el


nuevo indicador mediante el pwdcomando, y se muestra nuevamente en azul:

sysadmin@localhost : ~ $ cd Documentos/
sysadmin@localhost : ~/Documentos $ pwd
/home/sysadmin/Documentos

Para volver al directorio de inicio después de cambiar a una nueva ubicación, use el
comando cd de cambio de directorio sin ningún argumento:

sysadmin@localhost : ~/Documentos $ cd
sysadmin@localhost : ~ $

2.7 Command Information


El typecomando muestra información sobre un tipo de comando. Por ejemplo, si
ingresó type lsen el símbolo del sistema, devolverá que el lscomando es en realidad un
alias para el ls --color=autocomando:

sysadmin@localhost:~$ type ls
ls is aliased to `ls --color=auto'

El uso de la -aopción con el typecomando devolverá todas las ubicaciones de los archivos
que contienen un comando; también llamado archivo ejecutable :

sysadmin@localhost:~$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

En el resultado anterior, la /bin/lsruta del archivo es la ubicación del archivo


del lscomando.
Este comando es útil para obtener información sobre los comandos y dónde residen en el
sistema. Para los comandos internos, como el pwdcomando, el typecomando los
identificará como componentes de shell:

sysadmin@localhost:~$ type pwd


pwd is a shell builtin

Para comandos externos como el ipcomando, el typecomando devolverá la ubicación del


comando, en este caso, el /sbindirectorio:

sysadmin@localhost:~$ type ip
ip is /sbin/ip

Considera esto
El /bindirectorio contiene programas ejecutables necesarios para iniciar un sistema,
comandos de uso común y otros programas necesarios para la funcionalidad básica del
sistema.
El /sbindirectorio también contiene programas ejecutables; principalmente comandos y
herramientas diseñadas para la administración del sistema.
Si un comando no se comporta como se esperaba o si no se puede acceder a un
comando, debería ser así, puede ser beneficioso saber dónde encuentra el comando el
shell.
El whichcomando busca la ubicación de un comando en el sistema buscando
la PATHvariable.

sysadmin@localhost:~$ which ls
/bin/ls

Nota

La PATHvariable contiene una lista de directorios que se utilizan para buscar comandos
ingresados por el usuario.

La PATHvariable se cubrirá con mayor detalle más adelante en el curso.

También podría gustarte