Buscar..


Hola Mundo

Escriba el siguiente código en su terminal, luego presione Enter :

echo "Hello World"

Esto producirá la siguiente salida:

Hello World

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 un explorador de archivos gráfico.

Crea un archivo de texto vacío llamado myFile :

touch myFile

Renombrar 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 varias líneas de un archivo:

tail myFirstFile

Editar un archivo:

vi myFirstFile

Vea qué archivos están en su directorio de trabajo actual:

ls

Cree un directorio vacío llamado myFirstDirectory :

mkdir myFirstDirectory

Crear un directorio de múltiples rutas: (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:

user@linux-computer:~$ mv myFirstFile secondFileName

Cambie el directorio de trabajo actual a myFirstDirectory :

cd myFirstDirectory

Eliminar un archivo:

rm myFirstFile

Mover al directorio padre (que se representa como .. ):

cd ..

Eliminar un directorio vacío:

rmdir myFirstDirectory

Eliminar un directorio no vacío (es decir, contiene archivos y / u otros directorios):

rm -rf myFirstDirectory

Tenga en cuenta que al eliminar directorios, borre ./ no / que borrará todo el sistema de archivos.

Detalles de 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 de 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:

user@linux-computer:~$ ls -l

Saldría 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 de drwxrwxrwx . El primer carácter representa el tipo de archivo d si es un directorio - 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 significa si un archivo puede leerse, la w representa si el archivo puede modificarse, y la x significa si el archivo puede ejecutarse. Si no se otorga ningún permiso a - estará en lugar de r , w , o x .

Entonces, desde arriba, el user puede leer y modificar algunos someFile.txt pero el grupo solo tiene derechos de solo lectura.

Para cambiar los derechos, puede utilizar 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 el contenido del directorio de 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 haciendo un ls -l mostraría algo como

drwxr-xr-x 2 user users 4096 Jul 21 07:20 test

Tamaño legible

Utilizada junto con la opción l opción h muestra los tamaños de archivo que son legibles por humanos. Corriendo

user@linux-computer:~$ ls -lh

Sería de 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 utilizan la a opción. Por ejemplo

user@linux-computer:~$ ls -a

Podria lista

.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).

user@linux-computer:~$ ls -s

Salidas

total 4166
someFile.txt      test

Vista recursiva

Digamos que el directorio de test tenía un archivo en anotherFile archivo y que quería verlo desde la carpeta raíz, podría usar la opción R que mostraría el árbol recursivo.

user@linux-computer:~$ ls -R

Salidas

.:
someFile.txt    test

./test:
anotherFile

Utilidades básicas de Linux

Linux tiene un comando para casi cualquier tarea y la mayoría de ellas son intuitivas y fáciles de interpretar.

Obtención de ayuda en Linux

Mando Usabilidad
man <name> Lea la página del manual de <nombre>.
man <section> <name> Lea la página del manual de <nombre>, relacionada con la sección dada.
man -k <editor> Genere todo el software cuyas páginas man contengan la palabra clave <editor>.
man -K <keyword> Muestra todas las páginas del manual que contienen <palabras clave> dentro de ellas.
apropos <editor> Muestra todas las aplicaciones cuya descripción de una línea coincida con el editor de palabras. Cuando no pueda recuperar el nombre de la aplicación, use este comando.
help En el shell Bash, esto mostrará la lista de todos los comandos de bash disponibles.
help <name> En el shell Bash, esto mostrará la información sobre el comando bash <name>.
info <name> Ver toda la información sobre <nombre>.
dpkg -l Genere una lista de todos los paquetes instalados en un sistema basado en Debian.
dpkg -L packageName Enumera los archivos instalados y los detalles de la ruta de un paquete determinado en Debian.
dpkg -l | grep -i <edit> Devuelva todos los paquetes instalados con .deb con <edit> independientemente de los casos.
less /var/lib/dpkg/available Devolver descripciones de todos los paquetes disponibles.
whatis vim Listar una descripción de una línea de vim.
<command-name> --help Mostrar información de uso sobre el <tool-name>. A veces, el command -h también funciona, pero no para todos los comandos.

Identificación del usuario y quién es quién en el mundo Linux.

Mando Usabilidad
hostname Mostrar nombre de host del sistema.
hostname -f Muestra el nombre de dominio completo (FQDN) del sistema.
passwd Cambiar contraseña del usuario actual.
whoami Nombre de usuario de los usuarios registrados en el terminal.
who Lista de todos los usuarios actualmente conectados como usuario.
w Muestra el estado actual del sistema, la hora, la duración, la lista de los usuarios que actualmente han iniciado sesión en el sistema y otra información del usuario.
last Quien recientemente utilizó el sistema.
last root ¿Cuándo fue la última vez que root se conectó como usuario?
lastb Muestra todos los intentos de inicio de sesión incorrectos en el sistema.
chmod Cambio de permisos: lectura, escritura, ejecución de un archivo o directorio.

Información relacionada con el proceso

Mando Usabilidad
top Listar todos los procesos ordenados por su uso actual de recursos del sistema. Muestra una visualización de procesos continuamente actualizada (por defecto, 3 segundos). Utilice la tecla q para salir de la parte superior.
ps Lista de procesos actualmente en ejecución en la sesión de shell actual
ps -u root Listar todos los procesos y comandos que la raíz está ejecutando.
ps aux Listar todos los procesos por todos los usuarios en el sistema actual.

Comandos de gestión de archivos

Linux usa algunas convenciones para los directorios presentes y padres. Esto puede ser un poco confuso para los principiantes.

Cuando esté en un 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 mensaje podría parecerse a uno de los siguientes:

user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $

que dice que su directorio de trabajo actual es /home/user/somedir .

En Linux .. representa el directorio padre y . 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.

Mando Utilidad
pwd Obtenga la ruta completa del directorio de trabajo actual.
cd - Vaya al último directorio en el que estaba trabajando.
cd ~ o simplemente cd Navegue al directorio de inicio del usuario actual.
cd .. Vaya al directorio principal del directorio actual (tenga en cuenta el espacio entre cd y .. )

Listado de archivos dentro de un directorio

Mando Utilidad
ls -l 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 dir-name Listar información sobre el directorio dir-name lugar de su contenido.
ls -a Enumere todos los archivos, incluidos los ocultos (los nombres de archivo que comienzan con a . Son archivos ocultos en Linux).
ls -F Agrega un símbolo al final de un nombre de archivo para indicar su tipo ( * significa ejecutable, / significa directorio, @ significa enlace simbólico, = significa socket, | significa canalización, > significa puerta).
ls -lt Enumere los archivos ordenados por última vez modificada con los últimos archivos modificados que se muestran en la parte superior (recuerde -l opción proporciona el formato largo que tiene una mejor legibilidad).
ls -lh Listar los tamaños de archivo en formato legible por humanos.
ls -lR Muestra todos los subdirectorios de forma recursiva.
tree Generará una representación de árbol del sistema de archivos a partir del directorio actual.

Archivo / directorio crear, copiar y eliminar

Mando Utilidad
cp -p source destination Copiará el archivo de source a 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 source_dir destination_dir Copiará el directorio de origen al destino especificado de forma recursiva.
mv file1 file2 En Linux no existe un comando de cambio de nombre como tal. Por lo tanto, mv mueve / renombra el archivo1 a archivo2.
rm -i filename Le pide antes de cada eliminación de archivos para su confirmación. SI ES USUARIO NUEVO EN LA LÍNEA DE COMANDOS LINUX, SIEMPRE DEBE USAR rm -i . Puede especificar múltiples archivos.
rm -R dir-name Se eliminará el directorio dir-name recursiva.
rm -rf dir-name Eliminará el directorio dir de forma recursiva, haciendo caso omiso de ficheros que no existen y nunca le pedirá para cualquier cosa. ¡TENGA CUIDADO DE USAR ESTE MANDO! Puede especificar múltiples directorios.
rmdir dir-name Se eliminará el directorio dir-name , si está vacío. Este comando solo puede eliminar directorios vacíos.
mkdir dir-name Crear un directorio dir-name .
mkdir -p dir-name/dir-name Crear una jerarquía de directorios. Cree directorios principales según sea necesario, si no existen. Puede especificar múltiples directorios.
touch filename Cree un filename archivo de filename , si no existe, de lo contrario cambie la marca de tiempo del archivo a la hora actual.

Ficheros y grupos de archivos / directorios

Mando Utilidad
chmod <specification> filename Cambiar los permisos de archivo. Especificaciones = u usuario, grupo g , o otro, + permiso para agregar, - eliminar, r leer, escribir w , ejecutar x .
chmod -R <specification> dir-name Cambia recursivamente los permisos de un directorio. Para cambiar el permiso de un directorio y todo dentro de ese directorio, use este comando.
chmod go=+r myfile Añadir permiso de lectura para el propietario y el grupo.
chmod a +rwx myfile Permitir que todos los usuarios lean, escriban o ejecuten myfile .
chmod go -r myfile Eliminar permiso de lectura del grupo y otros.
chown owner1 filename Cambiar la propiedad de un archivo al usuario owner1 .
chgrp grp_owner filename Cambie la propiedad del grupo primario del filename de filename para agrupar grp_owner .
chgrp -R grp_owner dir-name Cambie la propiedad del grupo primario del directorio dir-name para agrupar grp_owner recursivamente. Para cambiar la propiedad de grupo de un directorio y todo lo que esté dentro de ese directorio, use este comando.

Atajos útiles

Usando el terminal

Los ejemplos en este documento asumen que está utilizando un shell compatible con POSIX (como bash , sh , zsh , ksh ).

Grandes porciones de la funcionalidad de GNU / Linux se logran usando 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 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 de emacs (establecidas de forma predeterminada):

Terminal abierta

  • Ctrl + Alt + T o Super + 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 Mover entre el principio de la línea y la posición actual del cursor.
  • Alt + F Mueve el cursor hacia adelante una palabra 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 hacia adelante un carácter 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 Cortar la línea desde la posición actual hasta el principio de la línea, agregá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 Eliminar la palabra antes del cursor, agregándola al portapapeles.
  • Ctrl + Y Pegar lo último del portapapeles que cortó recientemente (deshacer la última eliminación en la posición actual del cursor).
  • Alt + T Intercambia las dos últimas palabras antes del cursor.
  • Alt + L Hacer minúsculas desde el cursor hasta el final de la palabra.
  • Alt + U Hacer mayúsculas desde el cursor hasta el final de la palabra.
  • Alt + C Poner en mayúscula hasta el 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 Intercambia los dos últimos caracteres antes del cursor.

Acceso a la historia

  • Ctrl + R Le permite buscar comandos usados ​​previamente.
  • Ctrl + G Deja el 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 hacer modificaciones antes de ejecutar el comando.
  • Alt + R Revertir cualquier cambio a un comando que haya extraído de su historial, si lo ha editado.
  • Ctrl + P Muestra el último comando ejecutado, es decir, retroceder a través del historial de comandos (similar a la flecha hacia arriba).
  • Ctrl + N Muestra el siguiente comando ejecutado, es decir, caminar hacia adelante a través del historial de comandos (similar a la flecha hacia abajo).

Control terminal

  • Ctrl + L Borra la pantalla, similar al comando de borrar.
  • Ctrl + S Detiene todas las salidas a la pantalla. Esto es útil cuando se ejecutan comandos con mucha salida larga. Pero esto no detiene el comando de ejecución.
  • Ctrl + Q Reanuda la salida a la pantalla después de detenerla con Ctrl + S.
  • Ctrl + C Finaliza el proceso en ejecución y devuelve el indicador.
  • Ctrl + D Cerrar sesión de la sesión de shell actual, similar al comando exit o logout. En algunos comandos, actúa como señal de fin de archivo para indicar que se ha alcanzado un final de archivo.
  • Ctrl + Z Suspende (pausa) el proceso en primer plano que se ejecuta actualmente, que devuelve el indicador de comandos del shell. Luego puede usar el comando bg permitiendo que el proceso se ejecute en segundo plano. Para volver a poner ese proceso en primer plano, use el comando fg . Para ver todos los procesos en segundo plano, use el comando jobs .
  • Pestaña Autocompletar archivos y nombres de directorio.
  • Pestaña Pestaña Muestra todas las posibilidades, cuando los caracteres escritos no coinciden de forma exclusiva con el nombre de un archivo o directorio.

Caracteres especiales

  • Ctrl + H Igual que Retroceso.
  • Ctrl + J Igual que Return (históricamente Line Feed).
  • Ctrl + M Igual que Retorno (históricamente Retorno de carro).
  • Ctrl + I Igual que Tab.
  • Ctrl + G Carácter campana.
  • Ctrl + @ Null Character.
  • Esc Deadkey equivalente al modificador Alt .

Cerrar terminal

  • Ctrl + Shift + W Para cerrar la pestaña terminal.
  • Ctrl + Shift + Q Para cerrar toda la terminal.

Alternativamente, puede cambiar a las combinaciones de teclas vi en bash usando set -o vi . Use set -o emacs para volver a las combinaciones de teclas de emacs .

Buscando 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 cierto texto. Hay 2 comandos con los que debes familiarizarte para lograr esto:


Buscar archivos por nombre

find /var/www -name '*.css'

Esto imprimirá la ruta completa / nombre de archivo a todos los archivos en /var/www que terminan en .css . Ejemplo de salida:

/var/www/html/text-cursor.css
/var/www/html/style.css

Para más información:

man find

Encuentra archivos que contengan texto

grep font /var/www/html/style.css 

Esto imprimirá todas las líneas que contienen la font del patrón en el archivo especificado. Ejemplo de salida:

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

Necesita grep recursivamente para que funcione, usando la opción -R :

grep -R font /var/www/html/

Hola bien 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;

Observe que cuando grep coincide con varios archivos, prefija 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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow