En este artículo explico cómo usar los comandos de terminal para proporcionar información sobre algunos comandos y lo que hacen.
También proporciono ejemplos para ilustrar el proceso.
La herramienta de línea de comandos es potente. Existen herramientas que convierten un trabajo tedioso de una interfaz gráfica de usuario (GUI) en una tarea que tarda solo unos segundos. Quitar las últimas cuatro líneas de cada fila de un archivo grande sería un proceso largo en una aplicación de interfaz de usuario. Sin embargo, se puede automatizar en la línea de comandos.
Estas son las formas más comunes de abrir una ventana de terminal en Ubuntu Linux:
Hay muchos comandos asociados con el shell del terminal en Ubuntu Linux. El siguiente artículo enumera los más utilizados, en los grupos a los que afectan.
Hay tres comandos principales que usamos para proporcionar toda la información requerida para usar los diversos comandos de terminal.
El comando man muestra el manual de cualquier comando utilizado en el terminal.
La mayoría de los comandos de shell aceptan varias opciones. Para obtener información sobre un comando y una lista de las opciones disponibles, utilice el comando man
- abreviatura de manual. Proporcione el nombre del comando sobre el que desea obtener más información como el argumento. Es decir, en qué comando man
funciona el comando.
Ejemplo: Si ingresa el comando man who
, se muestra el siguiente resultado.
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
Muchos de los manuales tienen varias pantallas. Utilice el cursor o ARROW
o las teclas Re Pág y Av Pág para navegar por el texto. La barra espaciadora muestra la siguiente línea de texto. Al presionar la tecla q se cierra el manual y se regresa al shell.
Podemos ver en la página de los manuales que podemos usar la opción -a
para mostrar más información acerca de las sesiones de usuario activas.
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
También lee archivos de ayuda para programas, el comando man
también puede proporcionar información sobre shells, funciones y bibliotecas.
Si no está seguro de cómo usar un comando específico, ejecútelo con los switches -h
o –help
. Verá información de uso y una lista de opciones que puede usar con el comando.
Ejemplo: Si quiere saber cómo usar el wget
comando, escriba wget –help
o wget -h
.
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
Esto a menudo imprime una gran cantidad de información en el terminal. Puede ser difícil de manejar. Para leer el resultado con mayor facilidad, puede pipe
a través del comando menos. Lo que le permite desplazarse por este con el cursor o con las teclas de flecha en el teclado.
Ejemplo: wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
Presione q para cerrar la utilidad menos cuando haya terminado.
Para encontrar una opción específica, puede pipe
el resultado a través del grep
comando. (Por ejemplo: Utilice el siguiente comando para buscar opciones que contengan la palabra proxy.
)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
Algunos comandos también se documentan dentro del info
sistema. Esta información complementa lo que man
muestra el comando.
Ejemplo: Ingrese el comando info ls,
se muestra el siguiente resultado.
[support@support]$" info ls
Ahora puede ver un manual con información importante sobre el ls
comando.
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
Puede desplazarse hacia abajo en la página presionando la tecla de la barra espaciadora o usando el cursor/ARROW
teclas.
help
, presione Hquit
, presione Q
En un terminal puede hacer casi todo lo que haría desde una interfaz de usuario.
Como se dijo antes, muchos comandos se diseñaron primero para funcionar en el terminal, y luego se puso encima una interfaz de usuario. Es por eso que algunas GUI pueden parecer engorrosas: al principio eran un elemento secundario, ya que la mayoría de las compilaciones de servidores Linux no eran motivo de preocupación.
La ubicación predeterminada para que el terminal se abra desde el menú es en la carpeta de inicio. Conocido como ~
Puede encontrar el directorio actual mediante el .
operador. La mayoría de los comandos distinguen entre mayúsculas y minúsculas cuando actúan en la selección de carpetas actual y operan en comandos, ubicaciones y archivos. /home
no es lo mismo que /HOME
o /Home
.
Utilice la tecla TAB para completar los nombres de archivo si tiene un título de controlador largo. driver-128947232jaseu.sh
por ejemplo, escriba dri
e ingrese el resto. Siempre y cuando no tenga dos nombres que comiencen con dri
y si los tiene, agregue otro carácter para convertirlo en driv
e inténtelo de nuevo. Asegúrese de que el ajuste automático coincida completamente con lo que desea ver.
Casi cualquier comando se puede leer en su totalidad mediante la página man
o escribiendo -h
o --help
después de escribir el comando inicial. Esta sintaxis es man command_name
, command_name -h
o command_name --help
.
Para obtener aún más información, puede usar info. Se puede buscar un comando mediante info command_name
. Para la mayoría de estos comandos que forman parte del paquete coreutils. Puede buscar info
así como usar la invocación info coreutils command_name
donde el comando busca reemplazos command_name
.
Casi cualquier comando puede mostrar exactamente lo que está sucediendo, paso a paso. Por lo general, se trata de -v
o --verbose
.
Puede especificar varias marcas de comando para un comando a la vez a fin de obtener más información. Consulte el ejemplo ls -al
a continuación.
Los nombres de comandos no siempre son obvios; debido a las limitaciones de espacio en tiempos anteriores de UNIX, se acortaron y estas convenciones se mantuvieron.
cd
- Lo lleva de regreso al inicio, al igual que cd ~
cd..
- Lo hace regresar un directorio. A partir de /home/user/Desktop
, cd..
lo ubica en /home/user
. Esto se puede ampliar a cd ../../
lo que lo lleva dos directorios atrás a /home
.
cd foldername/
- Lo hace avanzar a la carpeta especificada en la carpeta actual.
/
que falta es una omisión importante. Si estoy en /home/user
y quiero llegar a Desktop
. Debo escribir cd Desktop/
sin /
antes Desktop
. Si escribe /
antes nos coloca en la raíz del sistema de archivos, lo que no funcionaría.
cd /some/other/path
- Lo lleva a la ruta de la carpeta especificada. Si tiene la ruta correcta. No olvide que puede usar la tecla TAB
para completar automáticamente.
ls
- Muestra todos los archivos en la carpeta actual.
ls -l
- Proporciona una lista más larga que incluye propietarios, permisos, tamaño y fecha de modificación.
ls -a
- Muestra los archivos y carpetas ocultos y la lista normal.
ls -al
- Combina dos opciones para mostrar las carpetas y los archivos ocultos en el formato largo.
ls -h
- Muestra los tamaños de los archivos en formato legible KB, MB, GB,
tamaños de archivo en lugar de bytes. Se utiliza con mayor frecuencia con la marca -l
.
Puede ver archivos en directorios en los que ni siquiera se encuentra. Si estoy en /home/user/Desktop
y quiero ver un archivo en /home/user
, puedo hacer ls ../
que enumera los archivos un directorio atrás.
cp file /path/to/folder
- Copia el archivo especificado en la ruta dada.
cp -r folder /path/to/folder
- Copia repetidamente el contenido de la carpeta en otra carpeta.
cp *.extension /path/to/folder
- Copia los archivos que coinciden con la extensión dada en la nueva carpeta. Para copiar todos archivos .doc, se convierte en cp *.doc /path/to/folder
y la carpeta debe existir.
cp name* /path/to/folder
- Copia todos los archivos que comienzan con name
en la carpeta determinada. Para copiar todos los archivos que comienzan con example
, se convierte en cp example* /path/to/folder
y la carpeta ya debe existir.
La sintaxis de mv
es similar al ejemplo anterior con cp
exento, por ejemplo, n.º 2. mv
no toma la marca -r
ya que al mover una carpeta también se mueve su contenido. La sintaxis no es exacta en todos los casos, pero funciona con los ejemplos anteriores. Consulte las páginas del manual para obtener más detalles.
La eliminación de archivos mediante rm
es permanente. No utiliza la papelera. Úselo con precaución y asegúrese de que está eliminando exactamente lo que desea antes de presionar la tecla Enter
tecla La sobrecomplicación de los comandos de eliminación nunca termina bien.
rm file
- Elimina el archivo específico de la computadora.
rm -r folder
- Elimina la carpeta específica de la computadora.
rm -rf folder
- Elimina la carpeta específica de la computadora de manera forzosa. Este comando puede estropear la configuración si se utiliza de forma incorrecta.
Puede editar archivos mediante nano
en un terminal para crear archivos rápidos y complicados hasta configuraciones completas. Puede ser útil, pero maneja archivos de texto sin formato y archivos de programación, por lo que cosas como los documentos de Microsoft Word no se abren correctamente.
Si la raíz posee un archivo, un usuario normal no puede editarlo. nano
debe tener el prefijo sudo
; para guardar los cambios. De lo contrario, se abre en modo de solo lectura.
nano newfile.whatever
del nombre especificado y lo abre para editarlo.
nano existing_file
- abre el archivo existente para editarlo.
Desde el interior de nano
Guarde el archivo presionando las teclas CTRL+O
juntas y cambie el nombre o presione la tecla Enter
para mantener el mismo nombre. De esta forma, se guarda el archivo.
Salir nano
utilizando las teclas CTRL+X
juntas. Si tiene cambios sin guardar, se le preguntará si desea guardarlos.
mkdir folder_name
- Crea la carpeta con el nombre especificado
mkdir -p /path/to/folder/name
- Crea cada carpeta según sea necesario. Para crear una carpeta /home/user/1stfolder/2ndfolder
, y solo /home/user
existe, usando mkdir -p
crea ambos directorios 1stfolder,
y 2ndfolder
.
ps aux
- Enumera en detalle todos los procesos que se ejecutan en la computadora. Esto incluye el usuario, el ID de proceso PID,
y el nombre del proceso. Con esto puede ver la lista de procesos y, si es necesario, puede eliminar procesos innecesarios o detenidos.
kill PID
- PID es un número que hace referencia al proceso infractor. Debe obtener el PID a partir de un comando como ps aux
. Si un proceso se niega a dejar de funcionar, también puede especificar kill -9 PID
que debe finalizar el proceso por cualquier medio.
killall program
- Killall
elimina by name
todas las instancias del listed program
. Si, por ejemplo, hay tres sesiones abiertas del navegador de Internet Firefox, killall Firefox
hace exactamente eso, elimina todas las sesiones de Firefox. kill
tomaría el PID especificado del proceso de Firefox infractor que desea eliminar y eliminaría solo ese.
xkill
es una forma de interfaz de usuario de hacer clic y eliminar ventanas. Si escribe xkill
debería aparecer un ícono de calavera y tibias cruzadas y se elimina la siguiente ventana en la que se hace clic.
Pipes
se muestran como una straight bar,
también conocida como la tecla |
tecla
Es una tecla que se usa poco en Windows, pero a menudo se encuentra en la tecla de barra diagonal inversa.
Se utilizan para vincular comandos. Pipes
enrutan el resultado de un comando para utilizarlo como entrada en un segundo comando cuando están conectados.
Consulte los recursos en línea para obtener más información acerca de pipes
y su uso, ya que hay volúmenes escritos sobre ellos.
>
se utiliza para overwrite
el contenido de los archivos existentes reemplazándolo por la salida del nuevo comando.
>>
se utiliza para append
información a los archivos existentes. Esto es útil para registrar acciones.
Example:
ps aux > processes.log
envía la salida de ps aux
al archivo processes.log
para ver la salida del comando en un editor de texto y sobrescribe el contenido actual del archivo.
tee
se utiliza junto con |
para tomar la salida del comando y enviarla a otro lugar. Esto es útil si hay errores que se pasan por alto. De esta manera, todo lo que aparece en la pantalla también se captura en un archivo.
Ejemplo: dmesg
| tee boot.txt
ejecutaría el comando dmesg
que muestra la información de arranque inicial. El comando |
envía la salida de dmesg
como tee
, que luego hace su trabajo enviándolo al terminal y al archivo de registro boot.txt
.
¿Desea ejecutar un archivo en el directorio actual después de que se marque como ejecutable? El comando ./
operador puede ejecutar el archivo como un usuario normal, siempre y cuando no necesite derechos raíz. ./
literalmente significa in the current directory
por lo tanto, no funciona en archivos fuera del directorio actual.
Si desea ejecutar un archivo que no está en el directorio actual, debe pasar la ruta al programa en ejecución adecuado. Si es un programa python, es python /path/to/file
y si es un archivo shell, es sh /path/to/file
por ejemplo. Existen otros programas, pero estos son los más comunes.
Si desea ejecutar un archivo con derechos raíz porque recibió operation not permitted?
. Debe agregar al comando el prefijo sudo
. Al igual que en el ejemplo anterior, sudo python /path/to/file
ejecuta el script con derechos raíz.
Si desea ejecutar un programa de interfaz de usuario desde el terminal, escriba el nombre del programa: case sensitive!
y se inicia. Esto hace que el terminal actual quede inutilizable. Cerrar el terminal mientras el programa está abierto también elimina el programa. Una mejor manera es poner el programa en segundo plano, usando program_name
y luego escribiendo la palabra exit
en el terminal para cerrarlo y mantener el proceso en ejecución.
Si desea ejecutar un programa de interfaz de usuario con derechos raíz desde el terminal, agregue el prefijo gksudo
o gksu
y no sudo
. Con sudo
para iniciar aplicaciones de interfaz de usuario es un mal hábito y debe evitarse.
not
utilice sudo
solo porque algo hace aparecer Operation not permitted.
Tenga en cuenta que puede destroy
computadoras mediante la ejecución de comandos en el lugar incorrecto con derechos raíz. Asegúrese de que los archivos provengan de fuentes confiables.
¿Se perdió en un directorio? Tipo pwd
para imprimir el directorio de trabajo.
¿Desea calcular el espacio de disco? df -h
puede darle una cifra rápida.
¿Quiere calcular el tamaño de una carpeta o un archivo? du -cksh target_name
hace exactamente eso. ¿Desea calcular el tamaño de la carpeta actual? du -cksh
.
¿Desea marcar un archivo como ejecutable? chmod +x filename
lo hace.
¿Tiene que montar una iso? Linux tiene esta funcionalidad incorporada. Cree un directorio en algún lugar, por ejemplo /home/user/isomount
emita el comando mount -o loop /path/to/myisofile.iso /home/user/isomount
y el contenido se monta dentro de esa carpeta.
Después de ejecutar un comando, debe volver a ejecutarlo, pero no recuerda exactamente cómo fue. Tipo history
en el terminal e imprime su historial de comandos. ¿Quiere borrar el historial? history -c
borra la información.