Bash (acrónimo de Bourne-Again Shell) es un intérprete de comandos y lenguaje de programación integrado que corre bajo el macroprocesador Shell de Unix. Este programa ejecuta una a una las órdenes que el usuario pone en una ventana de texto o las que se encuentran contenidas en un script o bash script (archivo con todas las instrucciones), para luego devolver los resultados. Bash fue diseñado por Stephen Bourne en 1977 y tuvo su primera aparición en Unix v7. Doce años más tarde, en 1989 Brian Fox desarrolla Bourn-Agail Shell para usarse en el proyecto GNU como intérprete de comandos estándar, y continúa actualizándolo hasta 1993 con la ayuda de Chet Ramey, quien creó muchos de los arreglos y nuevas características del programa. En la actualidad, Bash es el intérprete predeterminado en gran parte de los sistemas GNU/Linux y funciona en la mayoría de sistemas de Unix. Sin embargo, no es el único Shell que existe.
- Sintaxis:
ls [opciones] [directorio] - Parámetros Comunes:
-l: Lista en formato largo.-a: Muestra todos los archivos, incluidos los ocultos.-h: Muestra los tamaños en un formato legible (por ejemplo, KB, MB).
- Ejemplo:
ls -lha /home/user: Lista todos los archivos en el directorio/home/useren formato largo y legible.
- Sintaxis:
cd [directorio] - Ejemplo:
cd /var/log: Cambia al directorio/var/log.
- Sintaxis:
mkdir [opciones] directorio - Parámetros Comunes:
-p: Crea directorios intermedios según sea necesario.
- Ejemplo:
mkdir -p /home/user/docs/proyectos: Crea el directorio/home/user/docs/proyectos, creando también cualquier directorio intermedio que no exista.
- Sintaxis:
rmdir [directorio] - Ejemplo:
rmdir /home/user/docs/proyectos: Elimina el directorio/home/user/docs/proyectossi está vacío.
- Sintaxis:
touch [archivo] - Ejemplo:
touch /home/user/docs/nuevo_archivo.txt: Crea un archivo vacío llamadonuevo_archivo.txten el directorio especificado.
- Sintaxis:
cp [opciones] origen destino - Parámetros Comunes:
-r: Copia directorios de manera recursiva.-u: Copia solo cuando el archivo origen es más nuevo que el destino o cuando el archivo de destino no existe.
- Ejemplo:
cp -r /home/user/docs /home/user/backup: Copia el directoriodocsal directoriobackup.
- Sintaxis:
mv [opciones] origen destino - Ejemplo:
mv /home/user/docs/proyecto.txt /home/user/docs/proyecto_renombrado.txt: Renombraproyecto.txtaproyecto_renombrado.txt.
- Sintaxis:
rm [opciones] archivo - Parámetros Comunes:
-r: Elimina directorios de manera recursiva.-f: Fuerza la eliminación sin pedir confirmación.
- Ejemplo:
rm -rf /home/user/docs/proyectos: Elimina el directorioproyectosy todo su contenido.
- Sintaxis:
grep [opciones] patrón [archivo] - Parámetros Comunes:
-i: Ignora la distinción entre mayúsculas y minúsculas.-r: Busca recursivamente en todos los archivos dentro de un directorio.-v: Inversa la búsqueda, mostrando líneas que no coinciden con el patrón.
- Ejemplo:
grep -r "error" /var/log: Busca la palabra "error" en todos los archivos del directorio/var/log.
- Sintaxis:
awk [opciones] 'programa' [archivo] - Ejemplo:
awk '{print $1}' /etc/passwd: Imprime la primera columna de cada línea del archivo/etc/passwd.
- Sintaxis:
sed [opciones] 'comando' [archivo] - Ejemplo:
sed 's/antiguo/nuevo/g' archivo.txt: Reemplaza todas las ocurrencias de "antiguo" con "nuevo" enarchivo.txt.
- Sintaxis:
sort [opciones] [archivo] - Parámetros Comunes:
-r: Ordena en orden inverso.-n: Ordena numéricamente.
- Ejemplo:
sort -nr archivo.txt: Ordenaarchivo.txten orden numérico inverso.
- Sintaxis:
uniq [opciones] [archivo] - Parámetros Comunes:
-c: Cuenta las ocurrencias de líneas únicas.
- Ejemplo:
uniq -c archivo.txt: Muestra cada línea única enarchivo.txtprecedida por el número de ocurrencias.
- Sintaxis:
diff [opciones] archivo1 archivo2 - Parámetros Comunes:
-u: Muestra la diferencia en un formato unificado.
- Ejemplo:
diff -u archivo_viejo.txt archivo_nuevo.txt: Compara dos archivos y muestra las diferencias en formato unificado.
- Sintaxis:
wc [opciones] [archivo] - Parámetros Comunes:
-l: Imprime solo el número de líneas.-w: Imprime solo el número de palabras.
- Ejemplo:
wc -l archivo.txt: Imprime el número de líneas enarchivo.txt.
- Ejemplo:
echo "Hola, mundo" > archivo.txt: Escribe "Hola, mundo" enarchivo.txt, sobrescribiendo el contenido anterior.
- Ejemplo:
echo "Añadir texto" >> archivo.txt: Añade "Añadir texto" al final dearchivo.txt.
- Ejemplo:
sort < archivo.txt: Ordena las líneas enarchivo.txt.
- Ejemplo:
ls -l | grep ".txt": Lista archivos y luego filtra solo aquellos que terminan en.txt.
- Ejemplo:
ls -l | tee listado.txt: Lista archivos y escribe la salida enlistado.txtademás de mostrarla en la terminal.
- Sintaxis:
tar [opciones] [archivo.tar] [archivo] - Parámetros Comunes:
-c: Crea un nuevo archivo.-x: Extrae los archivos de un archivo.-v: Muestra el progreso en la terminal.-f: Especifica el nombre del archivo.
- Ejemplo:
tar -cvf backup.tar /home/user/docs: Crea un archivobackup.tarque contiene el directorio/home/user/docs.
- Sintaxis:
gzip [archivo] - Ejemplo:
gzip archivo.txt: Comprimearchivo.txty lo reemplaza porarchivo.txt.gz.
- Sintaxis:
gunzip [archivo.gz] - Ejemplo:
gunzip archivo.txt.gz: Descomprimearchivo.txt.gzy lo reemplaza porarchivo.txt.
- Sintaxis:
top - Ejemplo:
top: Muestra las tareas activas y el uso de recursos en tiempo real.
- Sintaxis:
ps [opciones] - Parámetros Comunes:
-e: Muestra todos los procesos.-f: Muestra una lista completa de procesos.
- Ejemplo:
ps -ef: Muestra todos los procesos en formato completo.
- Sintaxis:
df [opciones] [archivo] - Parámetros Comunes:
-h: Muestra los tamaños en un formato legible (KB, MB, GB).
- Ejemplo:
df -h: Muestra el uso del disco en un formato legible por humanos.
- Sintaxis:
du [opciones] [archivo/directorio] - Parámetros Comunes:
-h: Muestra los tamaños en un formato legible.-s: Muestra un resumen del uso total del espacio.
- Ejemplo:
du -sh /home/user/docs: Muestra el uso total del espacio del directorio/home/user/docsen formato legible.
- Sintaxis:
free [opciones] - Parámetros Comunes:
-h: Muestra la memoria en un formato legible.
- Ejemplo:
free -h: Muestra la memoria disponible y usada en un formato legible.
- Sintaxis:
uptime - Ejemplo:
uptime: Muestra el tiempo de actividad del sistema, el número de usuarios conectados y la carga promedio.
- Sintaxis:
ping [opciones] destino - Parámetros Comunes:
-c: Especifica el número de paquetes ECHO_REQUEST a enviar.
- Ejemplo:
ping -c 4 google.com: Envía 4 paquetes ECHO_REQUEST al dominiogoogle.com.
- Sintaxis:
curl [opciones] [URL] - Parámetros Comunes:
-O: Guarda el archivo descargado con su nombre original.-L: Sigue redireccionamientos.
- Ejemplo:
curl -O https://example.com/archivo.txt: Descarga un archivo desde una URL.
- Sintaxis:
wget [opciones] [URL] - Parámetros Comunes:
-b: Ejecuta wget en segundo plano (background).-q: Ejecuta wget en modo silencioso.
- Ejemplo:
wget -q https://example.com/archivo.zip: Descarga un archivo de manera silenciosa.
- Sintaxis:
netstat [opciones] - Parámetros Comunes:
-t: Muestra solo conexiones TCP.-u: Muestra solo conexiones UDP.-l: Muestra solo puertos en escucha.
- Ejemplo:
netstat -tuln: Muestra todas las conexiones TCP y UDP que están en escucha.
- Sintaxis:
ssh [opciones] usuario@host - Parámetros Comunes:
-p: Especifica el puerto.-i: Especifica el archivo de clave de identidad.
- Ejemplo:
ssh -p 2222 usuario@ejemplo.com: Conecta al servidorejemplo.comen el puerto2222.
- Sintaxis:
scp [opciones] origen destino - Parámetros Comunes:
-r: Copia archivos y directorios de manera recursiva.-P: Especifica el puerto.
- Ejemplo:
scp -P 2222 archivo.txt usuario@ejemplo.com:/ruta/remota: Copiaarchivo.txta un servidor remoto en el puerto2222.
- Sintaxis:
ftp [opciones] [host] - Ejemplo:
ftp ejemplo.com: Conecta al servidor FTPejemplo.com.
- Sintaxis:
adduser [usuario] - Ejemplo:
adduser nuevo_usuario: Crea un nuevo usuario llamadonuevo_usuario.
- Sintaxis:
deluser [usuario] - Ejemplo:
deluser antiguo_usuario: Elimina el usuarioantiguo_usuariodel sistema.
- Sintaxis:
passwd [usuario] - Ejemplo:
passwd nuevo_usuario: Cambia la contraseña del usuarionuevo_usuario.
- Sintaxis:
su [opciones] [usuario] - Ejemplo:
su - nuevo_usuario: Cambia la identidad al usuarionuevo_usuarioen una nueva sesión.
- Sintaxis:
sudo [comando] - Ejemplo:
sudo apt-get update: Ejecutaapt-get updatecon privilegios de superusuario.
- Sintaxis:
chown [opciones] propietario:grupo archivo - Ejemplo:
chown usuario:grupo archivo.txt: Cambia el propietario dearchivo.txtausuarioy el grupo agrupo.
- Sintaxis:
chmod [opciones] modo archivo - Ejemplo:
chmod 755 script.sh: Asigna permisos de lectura, escritura y ejecución para el propietario, y solo lectura y ejecución para otros usuarios al archivoscript.sh.
- Sintaxis:
fdisk [opciones] [dispositivo] - Ejemplo:
fdisk /dev/sda: Abre la tabla de particiones del dispositivo/dev/sdapara su edición.
- Sintaxis:
mkfs [opciones] [dispositivo] - Ejemplo:
mkfs.ext4 /dev/sda1: Crea un sistema de archivos ext4 en la partición/dev/sda1.
- Sintaxis:
mount [opciones] [dispositivo] [directorio] - Ejemplo:
mount /dev/sda1 /mnt/disco: Monta la partición/dev/sda1en el directorio/mnt/disco.
- Sintaxis:
umount [opciones] [directorio/dispositivo] - Ejemplo:
umount /mnt/disco: Desmonta el sistema de archivos montado en/mnt/disco.
- Sintaxis:
fsck [opciones] [dispositivo] - Ejemplo:
fsck /dev/sda1: Verifica y repara el sistema de archivos en/dev/sda1.
- Sintaxis:
kill [opciones] PID - Parámetros Comunes:
-9: Fuerza la terminación inmediata del proceso.
- Ejemplo:
kill -9 1234: Termina inmediatamente el proceso con el PID1234.
- Sintaxis:
pkill [opciones] nombre - Parámetros Comunes:
-f: Mata procesos coincidiendo con el nombre completo del comando.
- Ejemplo:
pkill -f java: Mata todos los procesos cuyo comando contenga la palabrajava.
- Sintaxis:
killall [opciones] nombre - Parámetros Comunes:
-I: Ignora la distinción entre mayúsculas y minúsculas en el nombre del proceso.
- Ejemplo:
killall -I firefox: Mata todos los procesos con el nombrefirefoxignorando mayúsculas y minúsculas.
- Sintaxis:
bg [job_spec] - Ejemplo:
bg %1: Reanuda el trabajo número 1 en segundo plano.
- Sintaxis:
fg [job_spec] - Ejemplo:
fg %1: Trae el trabajo número 1 al primer plano.
- Sintaxis:
jobs [opciones] - Parámetros Comunes:
-l: Muestra el PID de los trabajos.
- Ejemplo:
jobs -l: Lista los trabajos activos junto con sus PIDs.
- Sintaxis:
nohup comando [argumentos] & - Ejemplo:
nohup ./script.sh &: Ejecutascript.shinmune a interrupciones y continúa ejecutándose en segundo plano.