Skip to content

Instantly share code, notes, and snippets.

@kevinrodbe
Last active July 5, 2019 07:02
Show Gist options
  • Save kevinrodbe/d281e5a5babc34f729f6 to your computer and use it in GitHub Desktop.
Save kevinrodbe/d281e5a5babc34f729f6 to your computer and use it in GitHub Desktop.
Lista de comandos básicos para la terminal
  • bash: sí, hay muchos que usan csh, zsh, sh, ... para mi, bash junto con su sistema de scripting es indispensable.
  • find: para encontrar ficheros con miles de parámetros. Muy útil.
  • grep: para encontrar información dentro de uno o varios ficheros.
  • sed: modificar el contenido de un fichero desde línea de comandos con expresiones regulares.
  • top: permite ver el estado del sistema, htop también es bastante bueno.
  • ps: permite ver los procesos ejecutándose en el sistema.
  • pstree: permite ver los procesos ordenados por jerarquías de ejecución (quien lanzó qué proceso)
  • tree: presenta los ficheros en forma de árbol
  • ngrep: permite ver los paquetes que circulan por la red en tiempo real.
  • tcpdump: permite ver los paquetes que circulan por la red en diferido a través de interfaces como wireshark.
  • netcat (o nc): permite realizar conexiones remotas a servidores o establecer un puerto de escucha.
  • last: listado de los últimos accesos al sistema por parte de los usuarios.
  • tar: utilidad para empaquetar ficheros en uno solo, si se emplea con bzip2, gzip u otro para comprimir el tarball.
  • zip / unzip: comprimir y descomprimir ficheros zip.
  • tail: indispensable (con su opción -f) para ver ficheros de logs mientras se van escribiendo.
  • du: informa sobre el espacio ocupado por ficheros y totales de directorios.
  • df: informa del espacio libre en las unidades montadas.
  • rpm / dpkg: gestores de paquetes en RedHat (y derivados) y Debian (y derivados).
  • yum / apt-get: gestores de repositorios de paquetes en RedHat (y algunos derivados) y Debian (y derivados).
  • ls / cp / mv / rm: operaciones básicas de gestión de ficheros.

Y muchas más que se pueden enumerar, ya que he dejado fuera editores como vi, vim, nano, emacs, ... comandos de manejo de salida de texto como cut, awk, ed, tr, ... más comandos de administración como los enumerados en el artículo vmstat, iostat, ... gestión de procesos como kill, killall, fg, bg, ...

La mayoría de comandos se encuentran por defecto en el sistema y otros muchos hay que instalarlos a través de paquetes que llevan su nombre u otros paquetes genéricos que contienen colecciones de estas herramientas. Eso depende de la distribución que usemos.

##Navegando por los directorios:

pwd

“Print working directory” (Muestra el directorio de trabajo), nos mostrará la ruta en la que nos encontramos actualmente. Muy útil si hemos estado saltando de subcarpeta en subcarpeta y el prompt nos muestra sólo una ruta abreviada.

ls

Nos muestra una lista con el contenido del directorio actual (o el que le pasemos como argumento)

ls /home/usuario

# files length
ls node_modules | wc -l
 90
 
# files size
du -sh node_modules
 17M node_modules

ls –l

Muestra una lista del contenido del directorio añadiendo información adicional de los ficheros o carpetas, como permisos, fecha y hora de creación o modificación, etc…

ls –a

Muestra una lista de todos los ficheros del directorio, incluyendo los ficheros o carpetas ocultos.

cd

nos lleva al directorio raíz.

cd..

Subiremos un nivel en el árbol de directorios. Si por ejemplo nos encontramos en /home/usuario, con este comando nos iremos a /home.

/home/usuario $ ../		==>		/home $

wget

Descargar archivos

wget https://ruta.de/mi/archivo-a-descargar.extension

##Limpiando cache: http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/

Primero cambiamos permiso en la terminal

sudo su

Clear cache

######Clear PageCache only.

sync; echo 1 > /proc/sys/vm/drop_caches

######Clear dentries and inodes.

sync; echo 2 > /proc/sys/vm/drop_caches

######Clear PageCache, dentries and inodes.

sync; echo 3 > /proc/sys/vm/drop_caches 

Clear Swap Space

swapoff -a && swapon -a

######Revisamos el espacio con

free -h
free -m

##Limpiando paquetes: ######Ver espacio de la carpeta en donde se almacenan los paquetes para instalas programas /var/cache/apt/archives

du -sh /var/cache/apt/archives

######Autoclean Elimina del cache los paquetes .deb con versiones anteriores a los de los programas que tienes instalados.

sudo apt-get autoclean

######Clean Elimina todos los paquetes del cache. El único inconveniente que podría resultar es que si quieres reinstalar un paquete, tienes que volver a descargarlo.

sudo apt-get clean

######Autoremove Borra los paquetes huérfanos, o las dependencias que quedan instaladas después de haber instalado una aplicación y luego eliminarla, por lo que ya no son necesarias.

sudo apt-get autoremove

##Examinando archivos:

file

Determina el tipo de un archivo.

cat

Muestra el contenido de un archivo

less

Muestra el contenido de un archivo, y lo va paginando en caso de que sea necesario por ser muy extenso.

##Manipulando archivos y directorios:

cp

Copia un fichero o directorio.

scp

Copia un fichero local a un directorio remoto.

scp file.txt user@ip:carpeta1/carpeta2
scp file.txt user@dominio:carpeta1/carpeta2

Copiar directorio local a remoto

scp -r /home/user/carpeta user@dominio.com:/home/user

Copiar de remoto a local

scp user@dominio:carpeta1/carpeta2/file.txt documentos

cp –i

Copia un fichero o directorio y pregunta antes de sobrescribir si se diese el caso.

cp –r

Copia un directorio con todo su contenido.

mv

Mueve o renombra un fichero o directorio. En la terminal de Linux, en lugar de renombrar un fichero mediante un comando exclusivo, utilizamos el mismo que para mover archivos o directorios, y lo que hacemos para renombrarlo es moverlo a la misma ruta donde se encuentra y cambiarle el nombre.

mv –i

Mueve o renombra un fichero o directorio preguntando antes de sobrescribir si se diese el caso.

mkdir

Crea un directorio.

rmdir

Elimina un directorio vacío.

rm

Elimina un fichero.

rm –r

Elimina un directorio y todo su contenido.

rm –i

Elimina un fichero solicitando confirmación. Es muy recomendable usarlo con la opción –r para poder usarlo con directorios evitando problemas.

##Atajos de teclado:

Ctrl + Alt + Fn (1-6)

Para abrir terminales a pantalla completa. Requiere autentificación con usuario y contraseña. Cambiaremos a la terminal correspondiente a la tecla Fn que pulsemos, correspondiendo ésta al orden en el que las abrimos. En Linux podemos tener múltiples terminales funcionando simultáneamente, por defecto controlaremos hasta 6 con esta combinación de teclas.

Ctrl + Alt + F1

Nos lleva a la primera terminal abierta.

tty

Con este comando, en el caso de tener varias terminales abiertas, nos dirá en cuál nos encontramos.

Ctrl + Alt + F7

Nos devolverá al entorno gráfico (si usábamos alguno).

Shift (Mayus) + RePág

Realizaremos scroll hacia arriba en la terminal.

Shift (Mayus) + AvPág

Realizaremos scroll hacia abajo en la terminal.

Tab (Tabulador)

Completará el comando, nombre de fichero o directorio que estemos escribiendo. En caso de múltiples coincidencias, con una doble pulsación de esta tecla obtendremos todos los resultados posibles encontrados en el directorio o sistema.

Flecha de dirección ‘arriba’ y /o ‘abajo’:

Nos moveremos por el historial compuesto por los últimos comandos usados.

Ctrl + r

Buscará en el historial el último comando usado según lo que vayamos escribiendo. Por ejemplo utilizamos el comando clear hace unas horas,

Ctrl + r cl

Nos mostrará el comando clear, puesto que lo ha buscado en el historial y es el más reciente que coincide.

Ctrl + c

Interrumpe cualquier proceso en ejecución de forma inmediata y nos devuelve al prompt.

Ctrl + z

Envía el proceso actual a segundo plano. Para recuperarlo sólo tendremos que escribir fg y pulsar Intro.

Ctrl + d

Cierra la sesión de la terminal en la que nos encontramos. Si estamos usando una interfaz gráfica en la que hemos abierto una terminal, ésta se sólo se cerrará.

Ctrl + w

Elimina la palabra anterior a la posición del cursor.

Ctrl + k

Corta todo aquello que se encuentre entre la situación del cursor y el final de la línea.

Ctrl + u

Corta la línea en la que nos encontramos al completo.

Ctrl + y

Pega el contenido copiado o cortado con Ctrl + u o Ctrl + k.

!!

Repetirá el último comando usado.

##Comandos de Información del Sistema:

date

Muestra la fecha y hora al completo.

cal

Muestra el calendario del mes en curso.

whoami

Muestra el nombre del usuario con el que estamos trabajando.

w

Muestra qué usuarios están conectados actualmente.

uptime

Muestra el tiempo que lleva encendido el sistema, y cuántos usuarios lo han usado.

uname –a

Ofrece información del Kernel del sistema.

cat /proc/cpuinfo

Muestra información del Microprocesador

cat /proc/meminfo

Muestra información de la memoria del equipo.

free

Muestra la cantidad de memoria total, usada y libre, así como el espacio en la unidad de intercambio.

##Comandos de administración:

adduser xxxxxx

Donde sustituiremos las x por el nombre del usuario que queramos añadir.

passwd xxxxxxx

Donde xxxxxxx será el nombre del usuario al que queramos cambiar la contraseña. Necesitaremos conocer la contraseña ya establecida si queremos cambiarla.

su

Inicia sesión como superusuario o root desde la sesión actual.

exit

Cierra la sesión del superusuario o root, volviendo al usuario desde la que se inició.

##Comandos de proceso:

ps

Muestra los procesos que se encuentran activos en el sistema actualmente.

top

Muestra todos los procesos en funcionamiento.

kill “pid” (process id)

Detiene el proceso asignado al pid que muestra la salida del comando ps.

bg

Muestra todos los procesos pausados o en segundo plano (recordamos que Ctrl + z establecía procesos en segundo plano).

fg

Trae de vuelta el proceso más reciente puesto en segundo plano.

##Comandos de actualización:

apt-get update

Actualiza los repositorios para añadir nuevas fuentes que instalarán las versiones más recientes de los programas que indiquemos.

apt-get upgrade

Actualizará las aplicaciones que el comando ‘apt-get update’ haya actualizado, en caso de existir versiones más recientes.

apt-get install xxxxx

Donde xxxxx será el paquete correspondiente al programa que queremos instalar. Por ejemplo, ‘apt-get install libreoffice’.

dpkg –i xxxx.deb

Instalador de paquetería para gestores de paquetes deb.

yum install xxxxxx

Instalador de paquetería para gestores de paquetes rpm.

rpm –i xxxxxx.rpm

Instalador de paquetería para gestores de paquetes rpm.

##Comandos de inicio y apagado:

halt

Detiene todos los procesos y apaga el equipo.

shutdown

Programa el apagado del sistema en 1 minuto.

shutdown –r X

Programa el reinicio del sistema, donde X será el número de minutos en el que se reiniciará el equipo.

shutdown –h now

Apaga el equipo saltándose el minuto de espera programado.

shutdown –r now

Reinicia el equipo saltándose la espera programada.

reboot

Reinicia el sistema de la misma forma que el comando anterior.

init 0

Apaga el sistema.

init 6

Reinicia el sistema.

startx

Inicia la interfaz gráfica si ésta se encuentra instalada en el sistema.

##Comandos de Red:

ifconfig

Lista las direcciones IP de todos los dispositivos del equipo.

ping xxxx

Manda una señal que deberá ser devuelta por el equipo xxxx para comprobar si se encuentra en línea o no.

whois xxxxx

Obtiene información acerca de un dominio xxxxx, como por ejemplo www.google.com

wget xxxx

Descargará el archivo xxxx. Deberemos proporcionarle una dirección completa como por ejemplo: https://direccionip/carpeta/subcarpeta/archivo.file

##Comandos de comandos:

man xxxxx

Muestra el manual de uso o configuración del programa xxxxx.

man –k xxxxx

Muestra las páginas de manual que contengan la palabra xxxxx.

apropos xxxxx

Lista las páginas de manual que tratan acerca del comando xxxxx.

whereis xxxxx

Muestra la localización más probable para el programa xxxxxx.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment