Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
man
pwd
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.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.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.
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:
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.
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:
El lscomando, por otro lado, permite especificar una ruta y/o un nombre de archivo como
argumento, pero no es obligatorio.
ls [ ARCHIVO ]...
sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos
sysadmin@localhost : ~ $ ls /etc/ppp
ip-down.d ip-up.d
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
cp FUENTE ...DESTINATION
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 .
sysadmin@localhost : ~ $ ls
Escritorio Documentos Descargas Música Imágenes Público Plantillas
Videos
sysadmin@localhost : ~ $ echo hola mundo!!
echo hola mundo
hola mundo
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
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
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:
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:
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.
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.
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
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 : ~ $
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 : ~ $
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
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.