Primeros pasos con GNULinux
- Atajos útiles
- Uso de la terminal
- Abrir terminal
- Movimiento del cursor
- Manipulación de texto
- Acceso al historial
- Control de terminales
- Caracteres especiales
- Comandos de gestión de archivos
- Navegación de directorios
- Listado de archivos dentro de un directorio
- Archivo/directorio crear, copiar y eliminar
- Permisos y grupos de archivos/directorios
- Hola Mundo
- Utilidades básicas de Linux
- Búsqueda de archivos por patrones en nombre/contenido
- Buscar archivos por nombre
- Buscar archivos que contengan texto
- Manipulación de archivos
- Detalles del archivo/directorio
En esta página
- Atajos útiles
- Uso de la terminal
- Abrir terminal
- Movimiento del cursor
- Manipulación de texto
- Acceso al historial
- Control de terminales
- Caracteres especiales
- Comandos de gestión de archivos
- Navegación de directorios
- Listado de archivos dentro de un directorio
- Archivo/directorio crear, copiar y eliminar
- Permisos y grupos de archivos/directorios
- Hola Mundo
- Utilidades básicas de Linux
- Búsqueda de archivos por patrones en nombre/contenido
- Buscar archivos por nombre
- Buscar archivos que contengan texto
- Manipulación de archivos
- Detalles del archivo/directorio
Atajos útiles
Uso de la terminal
Los ejemplos en este documento asumen que está utilizando un shell compatible con POSIX (como bash, sh, zsh, ksh).
Gran parte de la funcionalidad de GNU/Linux se logra mediante el terminal. La mayoría de las distribuciones de Linux incluyen emuladores de terminal que permiten a los usuarios interactuar con un shell desde su entorno de escritorio. Un shell es un intérprete de línea de comandos que ejecuta los comandos ingresados por el usuario. Bash (Bourne Again SHell) es un shell predeterminado común entre muchas distribuciones de Linux y es el shell predeterminado para macOS.
Estos accesos directos funcionarán si está utilizando Bash con las combinaciones de teclas emacs (configuradas de manera predeterminada):
Abrir terminal
- Ctrl + Alt + T o Súper + T
Movimiento del cursor
- Ctrl + A Ir al principio de la línea en la que está escribiendo actualmente.
- Ctrl + E Ir al final de la línea en la que está escribiendo actualmente.
- Ctrl + XX Moverse entre el comienzo de la línea y la posición actual del cursor.
- Alt + F Mueve el cursor una palabra hacia adelante en la línea actual.
- Alt + B Mueve el cursor hacia atrás una palabra en la línea actual.
- Ctrl + F Mueve el cursor un carácter hacia adelante en la línea actual.
- Ctrl + B Mueve el cursor hacia atrás un carácter en la línea actual.
Manipulación de texto
- Ctrl + U Corta la línea desde la posición actual hasta el comienzo de la línea, añadiéndola al portapapeles. Si está al final de la línea, corte toda la línea.
- Ctrl + K Corta la línea desde la posición actual hasta el final de la línea, agregándola al portapapeles. Si está al principio de la línea, corte toda la línea.
- Ctrl + W Borra la palabra anterior al cursor, añadiéndola al portapapeles.
- Ctrl + Y Pega lo último del portapapeles que hayas cortado recientemente (deshacer la última eliminación en la posición actual del cursor).
- Alt + T Intercambiar las dos últimas palabras antes del cursor.
- Alt + L Poner en minúsculas desde el cursor hasta el final de la palabra.
- Alt + U Poner en mayúsculas desde el cursor hasta el final de la palabra.
- Alt + C Mayúsculas al final de la palabra que comienza en el cursor (palabra completa si el cursor está al principio de la palabra).
- Alt + D Eliminar hasta el final de la palabra que comienza en el cursor (palabra completa si el cursor está al principio de la palabra).
- Alt + . Imprime la última palabra escrita en el comando anterior.
- Ctrl + T Cambia los dos últimos caracteres antes del cursor.
Acceso al historial
- Ctrl + R Le permite buscar a través de comandos utilizados anteriormente.
- Ctrl + G Salir del modo de búsqueda de historial sin ejecutar un comando.
- Ctrl + J Le permite copiar el comando coincidente actual a la línea de comando sin ejecutarlo, lo que le permite realizar modificaciones antes de ejecutar el comando.
- Alt + R Revierte cualquier cambio en un comando que hayas sacado de tu historial, si lo has editado.
- Ctrl + P Muestra el último comando ejecutado, es decir, retrocede a través del historial de comandos (similar a la flecha hacia arriba).
- Ctrl + N Muestra el siguiente comando ejecutado, es decir, avance a través del historial de comandos (similar a la flecha hacia abajo).
Control de terminales
- Ctrl + L Borra la pantalla, similar al comando borrar.
- Ctrl + S Detiene todas las salidas a la pantalla. Esto es útil cuando se ejecutan comandos con muchos resultados largos. Pero esto no detiene el comando en ejecución.
- Ctrl + Q Reanuda la salida a la pantalla después de detenerla con Ctrl+S.
- Ctrl + C Finaliza el proceso que se está ejecutando actualmente y devuelve el aviso.
- Ctrl + D Cierra la sesión de shell actual, similar al comando de salida o cierre de sesión. En algunos comandos, actúa como señal de fin de archivo para indicar que se ha llegado al final de un archivo.
- Ctrl + Z Suspende (pausa) el proceso en primer plano que se está ejecutando actualmente, lo que devuelve el indicador de shell. Luego puede usar el comando
bg
permitiendo que ese proceso se ejecute en segundo plano. Para volver a poner ese proceso en primer plano, use el comandofg
. Para ver todos los procesos en segundo plano, utilice el comandojobs
. - Tab Autocompletar archivos y nombres de directorios.
- TabTab Muestra todas las posibilidades, cuando los caracteres escritos no coinciden únicamente con un nombre de archivo o directorio.
Caracteres especiales
- Ctrl + H Igual que Retroceso.
- Ctrl + J Igual que Retorno (históricamente Avance de línea).
- Ctrl + M Igual que Retorno (históricamente Retorno de carro).
- Ctrl + I Igual que Tab.
- Ctrl + G Carácter de campana.
- Ctrl + @ Carácter nulo.
- Esc [Deadkey] (https://en.wikipedia.org/wiki/Dead_key) es equivalente al modificador Alt.
Cerrar terminal
- Ctrl + Shift + W Para cerrar la pestaña del terminal.
- Ctrl + Shift + Q Para cerrar todo el terminal.
Alternativamente, puede cambiar a las combinaciones de teclas vi en bash usando set -o vi
. Utilice set -o emacs
para volver a las combinaciones de teclas emacs.
Comandos de gestión de archivos
Linux usa algunas convenciones para los directorios principales y actuales. Esto puede ser un poco confuso para los principiantes.
Siempre que esté en una terminal en Linux, estará en lo que se llama el directorio de trabajo actual. A menudo, su símbolo del sistema mostrará el directorio de trabajo completo o solo la última parte de ese directorio. Su indicador podría parecerse a uno de los siguientes:
[email protected] ~/somedir $
[email protected] somedir $
[email protected] /home/user/somedir $
que dice que su directorio de trabajo actual es /home/user/somedir
.
En Linux ..
representa el directorio principal y
<código> . representa el directorio actual.
Por lo tanto, si el directorio actual es /home/user/somedir
, cd ../somedir
no cambiará el directorio de trabajo.
La siguiente tabla enumera algunos de los comandos de administración de archivos más utilizados
Navegación de directorios
Comando | Utilidad |
---|---|
<código>contraseña</código> | Obtenga la ruta completa del directorio de trabajo actual. |
<código>cd -</código> | Navegue hasta el último directorio en el que estaba trabajando. |
cd ~ o simplemente cd |
Navegue al directorio de inicio del usuario actual. |
<código>cd ..</código> | Vaya al directorio principal del directorio actual (tenga cuidado con el espacio entre cd y .. ) |
Listado de archivos dentro de un directorio
Comando | Utilidad |
---|---|
<código>ls -l</código> | Enumere los archivos y directorios en el directorio actual en formato largo (tabla) (se recomienda usar -l con ls para una mejor legibilidad). |
ls -ld nombre-directorio |
Muestra información sobre el directorio dir-name en lugar de su contenido. |
<código>ls -a</código> | Enumere todos los archivos, incluidos los ocultos (los nombres de archivo que comienzan con . son archivos ocultos en Linux). |
<código>ls -F</código> | Agrega un símbolo al final del nombre de un archivo para indicar su tipo (* significa ejecutable, / significa directorio, @ significa enlace simbólico, = significa socket, | significa tubería con nombre, > significa puerta). |
<código>ls -lt</código> | Enumere los archivos ordenados por última hora de modificación con los archivos modificados más recientemente que se muestran en la parte superior (recuerde que la opción -l proporciona el formato largo que tiene una mejor legibilidad). |
<código>ls -lh</código> | Enumere los tamaños de archivo en formato legible por humanos. |
<código>ls -lR</código> | Muestra todos los subdirectorios recursivamente. |
<código>árbol</código> | Generará una representación de árbol del sistema de archivos a partir del directorio actual. |
Archivo/directorio crear, copiar y eliminar
Comando | Utilidad |
---|---|
cp -p origen destino |
Copiará el archivo desde el origen al destino. -p significa preservación. Conserva los atributos originales del archivo mientras se copia como propietario del archivo, marca de tiempo, grupo, permisos, etc. |
cp -R fuente_dir destino_dir |
Copiará el directorio de origen al destino especificado de forma recursiva. |
mv archivo1 archivo2 |
En Linux no existe el comando renombrar como tal. Por lo tanto, mv mueve/cambia el nombre del archivo1 a archivo2. |
rm -i nombre de archivo |
Le pregunta antes de cada eliminación de archivos para su confirmación. SI USUARIO NUEVO EN LA LÍNEA DE COMANDOS DE LINUX, SIEMPRE DEBE UTILIZAR rm -i . Puede especificar varios archivos. |
rm -R nombre-directorio |
Eliminará el directorio dir-name recursivamente. |
rm -rf nombre-directorio |
Eliminará el directorio dir de forma recursiva, ignorando los archivos inexistentes y nunca solicitará nada. ¡TENGA CUIDADO AL USAR ESTE COMANDO! Puede especificar varios directorios. |
rmdir nombre-directorio |
Eliminará el directorio dir-name , si está vacío. Este comando solo puede eliminar directorios vacíos. |
mkdir dir-name |
Crea un directorio dir-name . |
mkdir -p dir-name/dir-name |
Crea una jerarquía de directorios. Cree directorios principales según sea necesario, si no existen. Puede especificar varios directorios. |
touch filename |
Cree un archivo filename , si no existe, de lo contrario, cambie la marca de tiempo del archivo a la hora actual. |
Permisos y grupos de archivos/directorios
Comando | Utilidad |
---|---|
chmod <especificación> nombre de archivo |
Cambie los permisos del archivo. Especificaciones = u usuario, g grupo, o otro, + agregar permiso, - eliminar, r leer, w escribir, x ejecutar. |
chmod -R <especificación> nombre-directorio |
Cambiar los permisos de un directorio recursivamente. Para cambiar el permiso de un directorio y todo dentro de ese directorio, use este comando. |
chmod go=+r miarchivo |
Agregue permiso de lectura para el propietario y el grupo. |
chmod a +rwx myfile |
Permite que todos los usuarios lean, escriban o ejecuten myfile . |
chmod go -r myfile |
Eliminar permiso de lectura del grupo y otros. |
chown own1 filename |
Cambiar la propiedad de un archivo al usuario propietario1 . |
chgrp grp_owner filename |
Cambiar la propiedad del grupo principal del archivo filename al grupo grp_owner . |
chgrp -R grp_owner dir-name |
Cambia la propiedad del grupo principal del directorio dir-name al grupo grp_owner de forma recursiva. Para cambiar la propiedad del grupo de un directorio y todo dentro de ese directorio, use este comando. |
Hola Mundo
Escriba el siguiente código en su terminal, luego presione Enter:
echo "Hello World"
Esto producirá la siguiente salida:
Hello World
Utilidades básicas de Linux
Linux tiene un comando para casi todas las tareas y la mayoría de ellas son intuitivas y fáciles de interpretar.
Obtención de ayuda en Linux
Comando | Usabilidad |
---|---|
hombre <nombre> |
Lea la página del manual de <nombre>. |
hombre <sección> <nombre> |
Lea la página del manual de <nombre>, relacionada con la sección dada. |
hombre -k <editor> |
Muestra todo el software cuyas páginas man contienen la palabra clave <editor>. |
man -K <palabra clave> |
Muestra todas las páginas man que contienen <palabra clave> dentro de ellas. |
a propósito del <editor> |
Muestra todas las aplicaciones cuya descripción de una línea coincida con la palabra editor. Cuando no pueda recordar el nombre de la aplicación, use este comando. |
ayuda |
En el shell Bash, esto mostrará la lista de todos los comandos bash disponibles. |
ayuda <nombre> |
En el shell Bash, esto mostrará la información sobre el comando bash <name>. |
info <nombre> |
Ver toda la información sobre <nombre>. |
dpkg-l |
Muestra una lista de todos los paquetes instalados en un sistema basado en Debian. |
dpkg -L nombrePaquete |
Enumerará los archivos instalados y los detalles de la ruta para un paquete determinado en Debian. |
<código>dpkg -l | grep -i <editar></código> | Devuelve todos los paquetes instalados .deb con <edit> independientemente de los casos. |
menos /var/lib/dpkg/disponible |
Devuelve las descripciones de todos los paquetes disponibles. |
qué es vim |
Enumere una descripción de una línea de vim. |
<nombre-comando> --help |
Mostrar información de uso sobre <tool-name>. A veces command -h también funciona, pero no para todos los comandos. |
Identificación de usuario y quién es quién en el mundo Linux |
Comando | Usabilidad |
---|---|
nombre de host |
Muestra el nombre de host del sistema. |
nombre de host -f |
Muestra el nombre de dominio completo (FQDN) del sistema. |
contraseña |
Cambiar contraseña del usuario actual. |
whoami |
Nombre de usuario de los usuarios registrados en el terminal. |
quien |
Lista de todos los usuarios actualmente conectados como usuario. |
w |
Muestra el estado actual del sistema, la hora, la duración, la lista de usuarios actualmente conectados al sistema y otra información del usuario. |
último |
Quién usó recientemente el sistema. |
última raíz |
¿Cuándo fue la última vez que root inició sesión como usuario? |
últimob |
Muestra todos los malos intentos de inicio de sesión en el sistema. |
chmod |
Cambio de permisos: lectura, escritura, ejecución de un archivo o directorio. |
Información relacionada con el proceso
Comando | Usabilidad |
---|---|
superior |
Enumere todos los procesos ordenados por su uso actual de recursos del sistema. Muestra una pantalla de procesos continuamente actualizada (por defecto 3 segundos). Use la tecla q para salir de la parte superior. |
pd |
Enumerar los procesos que se ejecutan actualmente en la sesión de shell actual |
ps -u raíz |
Enumere todos los procesos y comandos que ejecuta root |
ps aux |
Listar todos los procesos de todos los usuarios en el sistema actual |
Búsqueda de archivos por patrones en nombre/contenido
Una tarea común de alguien que usa la línea de comandos de Linux (shell) es buscar archivos/directorios con un nombre determinado o que contengan un texto determinado. Hay 2 comandos con los que debe familiarizarse para lograr esto:
Buscar archivos por nombre
find /var/www -name '*.css'
Esto imprimirá la ruta/nombre de archivo completo de todos los archivos en /var/www
que terminen en .css
. Salida de ejemplo:
/var/www/html/text-cursor.css
/var/www/html/style.css
Para más información:
man find
Buscar archivos que contengan texto
grep font /var/www/html/style.css
Esto imprimirá todas las líneas que contengan el patrón fuente
en el archivo especificado. Salida de ejemplo:
font-weight: bold;
font-family: monospace;
Otro ejemplo:
grep font /var/www/html/
Esto no funciona como esperabas. Usted obtiene:
grep: /var/www/html/: Is a directory
Necesitas grep
recursivamente para que funcione, usando la opción -R
:
grep -R font /var/www/html/
hola lindo! Echa un vistazo a la salida de este:
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
Tenga en cuenta que cuando grep
coincide con varios archivos, antepone las líneas coincidentes con los nombres de archivo. Puedes usar la opción -h
para deshacerte de eso, si quieres.
Para más información:
man grep
Manipulación de archivos
Los archivos y directorios (otro nombre para las carpetas) están en el corazón de Linux, por lo que poder crearlos, verlos, moverlos y eliminarlos desde la línea de comandos es muy importante y bastante poderoso. Estos comandos de manipulación de archivos le permiten realizar las mismas tareas que realizaría un explorador gráfico de archivos.
Cree un archivo de texto vacío llamado myFile
:
touch myFile
Cambie el nombre de myFile
a myFirstFile
:
mv myFile myFirstFile
Ver el contenido de un archivo:
cat myFirstFile
Ver el contenido de un archivo con buscapersonas (una pantalla a la vez):
less myFirstFile
Ver las primeras líneas de un archivo:
head myFirstFile
Ver las últimas líneas de un archivo:
tail myFirstFile
Editar un archivo:
vi myFirstFile
Vea qué archivos hay en su directorio de trabajo actual:
ls
Cree un directorio vacío llamado myFirstDirectory
:
mkdir myFirstDirectory
Crear directorio de rutas múltiples: (crea dos directorios, src y myFirstDirectory)
mkdir -p src/myFirstDirectory
Mueve el archivo al directorio:
mv myFirstFile myFirstDirectory/
También puede cambiar el nombre del archivo:
[email protected]:~$ mv myFirstFile secondFileName
Cambie el directorio de trabajo actual a myFirstDirectory
:
cd myFirstDirectory
Eliminar un archivo:
rm myFirstFile
Mover al directorio principal (que se representa como ..
):
cd ..
Eliminar un directorio vacío:
rmdir myFirstDirectory
Elimine un directorio que no esté vacío (es decir, que contenga archivos y/u otros directorios):
rm -rf myFirstDirectory
Tenga en cuenta que al eliminar directorios, elimine ./
no /
que borrará todo su sistema de archivos.
Detalles del archivo/directorio
El comando ls
tiene varias opciones que se pueden usar juntas para mostrar más información.
Detalles/Derechos
La opción l
muestra los permisos del archivo, el tamaño y la última fecha de modificación. Entonces, si el directorio raíz contenía un directorio llamado test
y un archivo someFile
, el comando:
[email protected]:~$ ls -l
Daría como resultado algo como
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
Los permisos están en formato drwxrwxrwx
. El primer carácter representa el tipo de archivo d
si es un directorio -
de lo contrario. Los siguientes tres rwx
son los permisos que el usuario tiene sobre el archivo, los siguientes tres son los permisos que el grupo tiene sobre el archivo y los últimos tres son los permisos que todos los demás tienen sobre el archivo.
La r
de rwx
indica si un archivo se puede leer, la w
representa si el archivo se puede modificar y la x
indica si el archivo se puede ejecutar. Si no se concede ningún permiso, aparecerá un -
en lugar de r
, w
o x
.
Entonces, desde arriba, el usuario
puede leer y modificar someFile.txt
pero el grupo solo tiene derechos de solo lectura.
Para cambiar los derechos, puede usar el comando chmod ### fileName
si tiene derechos sudo. r
está representado por un valor de 4, w
está representado por 2 y x
está representado por un 1.
Entonces, si solo desea poder modificar los contenidos en el directorio test
Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5
Así que todo el comando es
chmod 755 test
Ahora, hacer ls -l
mostraría algo como
drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
Tamaño legible
Usada junto con la opción l
, la opción h
muestra tamaños de archivo que son legibles por humanos. Correr
[email protected]:~$ ls -lh
Daría salida:
total 4166
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
Oculto
Para ver los archivos ocultos, use la opción a
. Por ejemplo
[email protected]:~$ ls -a
Podría listar
.profile
someFile.txt
test
Tamaño total del directorio
Para ver el tamaño del directorio actual, use la opción s
(la opción h
también se puede usar para hacer que el tamaño sea más legible).
[email protected]:~$ ls -s
Salidas
total 4166
someFile.txt test
Vista recursiva
Digamos que el directorio test
tenía un archivo anotherFile
y querías verlo desde la carpeta raíz, podrías usar la opción R
que listaría el árbol recursivo.
[email protected]:~$ ls -R
Salidas
.:
someFile.txt test
./test:
anotherFile