Skip to main content

Comandos básicos de Linux

Aquí les dejo un resumen de una lista de comandos básicos de linux:

Comandos para el manejo de ficheros:

# cat, more, head, tac = listar ficheros (como type) # cd = cambia el directorio
# compress = comprime archivos en formato .Z
# cp = copia un archivo
OPCIONES:
[-R recursivo]
[-p para mantener los permisos, el propietario y el grupo y las marcas de tiempo]
# chmod [ugo]+[rwx] target = cambia los permisos de un archivo o directorio
# chown usuario.grupo target= cambia el propietario del archivo o directorio
# df -h = muestra el espacio libre en disco (-h human-readable)
# du -sh = muestra el espacio en disco utilizado
du -sh * | sort -h (Ordena por tamaño)
# ncdu = para diagnosticar el uso de disco (NCurses Disk Usage) (Versión de du basada en ncurses)

# ncdu /usr

# fdformat = formatea un diskete
# fdisk = pariciona unidades
# file = determina el tipo de archivo a traves del analisis parcial de su contenido
# find directorio -name match = Buscar un fichero en un directorio (recursivamente)
# find . -name "texto*"
find . -name "texto*" -name "*U*" -printf "%T@\t%Tc %6k KiB %p\n" | sort -n | cut -f 2- (Ordena por fecha)
# fsck = chequea el sistema de archivos
# grep = buscar texto en ficheros (muy potente)
# gzip = descomprime un archivo en formato GZip
# ln = crea un enlace simbolico o fisico depende la opcion
ln -sf /dev/ttyS0 /dev/mouse (puerto serie 1)
ln -sf /dev/ttyS1 /dev/modem (puerto serie 2)
# ls = sirve para listar el contenido de un directorio
ls -l --full-time = Muestra el formato de fecha completo
ls (Ordenar salida: -X: extension, -t: fecha, -S: tamaño)
# ncdu = Lista directorios de forma ordenada por tamaño y permite navegar por directorios
# mkdir = crea un directorio
# mkfs = cra un nuevo sistema de archivos
# mkswap = crea un espacio de intercambio
# more = exhibe el contenido de un archivo
# mount = monta una unidad o particion en el sistema de archivos
# mv = mueve un archivo y se utiliza para renombrar
# pwd = devuelve la cadena correspondiente al directorio actual
# rm = borra un archivo
# rmdir = borra un directorio
# rm -r = borra directorios
# split = partir ficheros
# swapon = activa el espacio de intercambio
# swapoff = desactiva el espacio de intercambio
# tar = empaqueta o desempaqueta un archivo en formato .tar
# touch = modifica la fecha de un fichero
# type = muestra la ubicacion de un archivo senialando su "path"
# umount = desmonta una unidad montada
# byobu = compartir consola de forma remota
# dd if=/dev/zero of=test.img bs=1MB count=4096 = Crea un fichero de ceros en "of" llenando "count" veces espacio de "bs" (en este caso crea test.img  de 4 GB)
# scp = copiar archivos por red con ssh
scp -P PUERTO FILE_TO_UPLOAD USER@SERVER:PATH_TO_UPLOAD/
(scp -P 22 file.tar Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/home/usuario/) (Ojo con los permisos!!)

Cambiar permisos recursivamente solo a directorios:

# find . -type d -exec chmod 0755 {} \;
El punto (.) puede ser cambiado por alguna ruta absoluta, por ejemplo /home/miusuario/midirectorio/.

Cambiar permisos recursivamente solo a archivos:

# find . -type f -exec chmod 0644 {} \;
El punto (.) puede ser cambiado por alguna ruta absoluta, por ejemplo /home/miusuario/midirectorio/.

Comprimir y descomprimir

# tar -xvzf <fichero.tar.gz> = Descomprimir un *.tar.gz
# tar -xvvf <fichero.tar> = Descomprimir un *.tar
# tar -cvvf <fichero.tar> folder = Comprimir en tar
# gzip -d = Descomprimir un *.gz
# gzip = Comprimir ficheros empaquetados

Comandos para el manejo de procesos:

# dmesg , dmesg | more = Listar el hardware reconocido
# fdisk /mbr = Eliminar Lilo (entrando por símbolo del sistema, en msdos c:)
# free = muestra la memoria libre y utilizada
# halt = apaga la maquina
# kill = mata un proceso senialando el numero de este
# ldd = muestra las librerias necesarias para ejecutar un proceso
# ldd /ruta/programa = Librerías que utiliza un programa
# lsmod = Ver módulos cargados en el kernel
# modprobe = Añade o quita modulos del kernel
modprobe -a = Instala
modprobe -r = Elimina
modprobe -l = Lista módulos
# ps = muestra todos los procesos q se estan ejecutando en el sistema
ps fax
# pstree = lo mimo q ps pero en forma de arbol
# reboot = reinicia el sistema
# shutdown = cierra el sistema
shutdown -r 0 = Salir del sistema (reinicializa el ordenador)
shutdown -h 0 = Salir del sistema (cierra el sistema y se para)
# top = monitorea procesos y el estado del sistema
# uname = muestra informacion del sistema
uname -a # /etc/rc.boot/0setserial = Inicialización de puertos serie
# /etc/init.d/boot = Inicio del sistema
Prompt:export PS1="\W$"
\W , te saca el nombre usuario
\H , te saca el nombre del Host
\T , te saca la hora
\V , ???
export PS1="usuario$ "
# /sbin/ldconfig -p = Librerías instaladas
# source /root/.bashrc = Ejecuta de nuevo el .bashrc modificado

Comandos para el manejo de usuarios:

# adduser = crea una cuenta de usuario
# chsh = cambia la shell de un usuario
# groups = muesra el listado de grupos de usuarios del sistema
# id = muestra la informacion de usuario y grupo de un determinado usuario
# logout = para salir del sistema y permitir el ingreso a otro usuario = CTRL + D
# passwd = cambia el password de un determinado usuario
# su = le da privilegios de root a un usuario
# talk = permite chatear con otros usuarios
# users = lista los usuarios conectados al sistema
# who = muestra informacion de los usuarios conectados al sistema
who -b = saber el último reboot
who -r = saber el RunLevel actual
# whoami = muestra informacion nuestra

Comandos de red

# finger = información sobre usuario
# host "destino" = muestra ip de "destino"
# ifconfig = para ver las placas de red
# mail = sencillo programa de correo
# netstat = testeo de red
# nmap "ip de destino" = pequeño programa para analizar ip´s o rangos de ellas
# nslookup dominio [dns-server] = query Internet name servers interactively
# ping = el tan famoso ping que manda paquetes esperando una respuesta
# talk = establecer una charla con otro usuario
# traceroute dominio.extension = print the route packets take to network host
# wall = mensaje a todos los usuarios
# pktstat -i eth0 =  Muestra el estado de los procesos relacionados con la interfaz de red eth0 (necesita ser instalado (apt-get install))
# iptraf = Info tráfico (necesita ser instalado (apt-get install))
# iftop = Top del tráfico de red (necesita ser instalado (apt-get install))
# dig DOMINIO = Informacion de DNS del dominio
# dig DOMINIO INPUT = Informacion de DNS del dominio sobre el input deseado (INPUT = CNAME, TXT, NS, A[default])

Otros comandos:

# banner = saca letrero en pantalla con el texto que se le pase
# cal = muestra el calendario
# clear = limpia la pantalla
# date = muestra el dia y la hora
# ddate = como el anterior pero de forma rara HuhHuh
# info = muestra la ayuda de un comando
# man = muestra las paginas del manual de un comando
# mesg = bloqueo de mensajes de write
# startx = para iniciar XWindow
# write = manda un mensaje a la pantalla de un usuario
# byobu = manejador de terminales (similar a GNU Screen o tmux, que permite dividir una consola en múltiples secciones o generar sesiones independientes en la misma terminal)
F2 -> nueva pestaña
F3 -> moverse por las pestañas
# screen = Gestión remota. Permite desconectar y volver a reconectar sin parar el proceso que hemos lanzado.

[Ctrl]+[D] => Cierra el terminal, si es el único que tenemos abierto, sale de screen.
[Ctrl]+[A],[C] => Nos permite abrir más terminales virtuales.
[Ctrl]+[A],[N] => Nos permite cambiar de un terminal a otro.
[Ctrl]+[A],[Shift]+[C] => Nos permite renombrar el terminal, por defecto todos se llaman bash.
[Ctrl]+[A],[D] => Nos permite cerrar el terminal sin cerrar los procesos que se están ejecutando.
[Ctrl]+[A],[?] => Nos muestra las combinaciones de teclas.
# screen -r = Reconectamos con el terminal que hubiésemos abierto antes.

Comandos Debian

# apt-get update = updatea la base de datos de los paquetes .deb
# apt-get upgrade = actualiza los paquetes a su ultima version
# apt-get install "paquete" = instala lo que escribiras en "paquete"
# apt-get remove "paquete" = desinstala lo que escribiras en "paquete"
# apt-get check = actualiza la cache de paquetes
# apt-get clean = borra los paquetes .deb descargados
# apt-get dist-upgrade = hace un upgrade del SO
# apt-get source "paquete" = descarga fuentes del "paquete"
# apt-cache showpkg "paquete" = muestra todas las versiones disponibles de "paquete"
# modconf = pequeño programa para sacar o poner modulos del kernel
# update-rc.d "opcion" "programa o script" "opcion" = Remueve o Agrega el script o programa a los niveles de corrida que se le asigne

Comandos Red Hat

# rpm -q "programa" = para saber si "programa" esta instalado
# rpm -qs "programa" = estado de todos los archivos de "programa"
# rpm -qd "programa" = documentacion de "programa" instalada
# rpm -qc "programa" = archivos de configuracion de "programa"
# rpm -qa "programa" = muestra todos los rpm de "programa"
# rpm -qa | grep "programa" = busca el nombre de paquete del "programa"
# rpm -i "programa" = instala "programa"
# rpm -u "programa" = actualiza "programa"
# rpm -e "programa" = elimina "programa"
# rpm -ivh "programa" = instala el "programa" en pasos y muestra el progreso de la instalacion

Comandos para el manejo de paquetes / servicios / instalaciones

# tar - "opcion" "paquete" = comprime o descomprime el "paquete" de formato tar.gz .tgz o tar.bz2
# rpm - "opcion" "paquete" = instala o desinstala el "paquete" depende la opcion
# dpkg - "opcion" "paquete" = instala o desinstala el "paquete" depende la opcion (solo debian)
dpkg -i = Instalar paquete
dpkg --info = Información del paquete
dpkg -c = Muestra la lista de ficheros contenidos
dpkg --contents = Lista todos los ficheros contenidos con sus directorios
dpkg -f = Muestra información de versión del paquete
dpkg --unpack = Desempaqueta
dpkg --purge = Borra un paquete incluidos los ficheros de configuración
dpkg -r = Borra un paquete pero no borra los ficheros de configuración
dpkg -L = Lista el paquete si está instalado
dpkg -l = Lista los paquetes instalados
# update-rc.d -f NOMBRE_SERVICIO remove = Eliminar la ejecucion de una aplicacion en el arranque

Entorno gráfico xwindow

# startx = Iniciar X
# startx -- :2 , :3 , :4 , etc. = Abrir nuevas sesiones
# /etc/X11/XF86Config = Configuración de XF86
# /etc/X11/Xserver = Configuración de servidor X
# XF86Setup = Configurar X (entorno gráfico, tienes que instalar xserver_vga) /usr/sbin/xbase-configure (entorno línea de comandos)
# ctrl-alt-backspace = Salir de las X
# /etc/X11/window-managers = Fichero donde está el programa que arranca las X

Manejo de las unidades de diskettes y Cd-Rom

- Montar diskette
# mount -t msdos /dev/floppy /mnt (/dev/floppy = /dev/fd0)

- Montar Cd-Rom
# mount -t iso9660 /dev/cdrom /mnt (/dev/cdrom = /dev/hdb)

- Listar unidad montada
# ls /mnt
- Desmontar todo
# umount /mnt
- Formatear floppy
# superformat /dev/fd0 hd (msdos)
(hay que tener instalado fdutils)
# superformat /dev/fd0 sect=21 cyl=83mkfs.ext2 /dev/fd0 (crea sistema de ficheros ext2)

Convertir paquetes de RedHat a Debian

# alien -d fichero.rpm = convierte fichero rpm a deb
# alien -d fichero.tgz = convierte fichero tgz a deb
# alien -i fichero.rpm = convierte fichero rpm a deb y lo instala
# alien -i fichero.tgz = convierte fichero tgz a deb y lo instala

Manejo de la impresora

# /dev/lp1 = Dispositivo
# ls > /dev/lp1 = Probarlo

Para imprimir se necesita lpr , Magicfilter y MpageHay que configurar un filtro para la impresora
Utilizar Magicfilterconfig --force (para mi hp690 C elijo el filtro hp550c)

# lpq = Ver colas impresión
# lpc status = Estado impresoras
# lprm = Eliminar colas en impresión

Comandos de IRC para IrcII

# /server = conectar con un servidor
(/server irc.arrakis.es) = conectar con un canal
(/channel #linux) = datos de servidor o nickname
# /list = listar canales irc
# /names = nicknames de todos los usuarios
# /msg <nick> <msg> = mensaje privado a nick
# /who <canal> = quien está conectado y sus datos
# /whois <nick> = verdadera identificación de alguien
# /quit = desconectar

MYSQL:

Exportación:
# mysqldump -u user -p db_name > file_name.sql /* (Preguntará por la 'clave') */

Importación:
# mysql -u USER -p DB_NAME -h HOST < SQL_FILE_NAME /* (Preguntará por la 'clave') */

Top:
# mytop -u USUARIO -p CLAVE -d BBDD -sNUM
(NUM = número de segundos para el refresco)

Moverse a un directorio:

# cd /path/subpath ...

Listar un directorio:

# ll
# ls -al

Borrar ficheros o directorios:

# rm nombre_fichero
# rm -R nombre_directorio

Copiar/Duplicar fichero con nuevo nombre:

# cp nombre_fichero nombre fichero_nuevo

Mover/Renombrar:

# mv nombre1 nombre2 (cambia el nombre del directorio si "nombre2" no existe, si no, lo que hace es mover nombre1 dentro de nombre2)

Modificar propietario de un fichero o un directorio:

(para xmls - www-data.bonaval => implica que el grupo tenga permisos de escritura)
# chown usuario.grupo fichero

Modificar permisos de un fichero o un directorio:

Los permisos se agrupan de tres en tres:

usuario grupo otros
rwx        rwx     rwx

1 ó r - lectura
2 ó w - escritura
4 ó x - ejecución

se pueden cambiar de dos formas
a)
# chmod 771 fichero => todos los permisos para usuario y grupo y lectura para otros
1 - r - lectura
2 - w - escritura
4 - x - ejecucion

b)
# chmod u+x fichero ( añade(+): permiso al usuario(u) de ejecución(x) )
# chmod g-w fichero ( quita(-):  permiso al grupo(g) de escritura(w) )

Editar un fichero:

* WARNING!!!! (hacer solo en local y con el usuario)
joe nombre_fichero (abre el editor)
Ctrl + _ (deshacer)
Ctrl + K y despues X (guarda y cierra)
Ctrl + K y despues H (despliega la ayuda y en el puedes ver distintas acciones "^" significa "ctrl)

Verificar Memoria RAM, Tipo, Bancos, Tamaño...:

# dmidecode --type 17 = Muestra informacion sobre las tarjetas de memoria y donde están pinchadas.

# lshw = Muestra información sobre el sistema (placa, core, firmware, CPU, memoria, pci, network (red), discos, raid, usb, serial)
REQUIERE SER INSTALADO EN Debian (# apt-get install lshw)

# grep MemTotal /proc/meminfo = Muestra la memoria RAM total del sistema
# grep SwapTotal /proc/meminfo = Muestra la cantidad de espacio swap del sistema (memoria de intercambio)

Herramientas para administración del Sistema:

# lsb_release -a = Permite saber la distribución y versión de SO instalado.
# uname -a = Información del sistema
# rndc flush = Refrescar o limpiar las DNS del servidor (refresh DNS)
#/etc/init.d/named restart = Refrescar las DNS del servidor

Comandos para Servidor web Apache:

# a2ensite NOMBRE_SITIO = Habilita un sitio  web configurado en /etc/apache2/sites-avaliable/NOMBRE_SITIO
# a2dissite NOMBRE_SITIO = Deshabilita un sitio web
# a2enmod NOMBRE_MODULO = Habilita un módulo configurado en /etc/apache2/mods-avaliable/NOMBRE_MODULO
a2dismod NOMBRE_MODULO = Deshabilita un modulo de apache
# /etc/init.d/apache2 force-reload = Recargamos la nueva configuración de apache
# service apache2 reload = Recargamos la nueva configuración de apache

Memoria - control de memoria en uso

# swapon -s# free -m# php -r "echo ini_get('memory_limit').PHP_EOL;"
# htop

PARA CONTROLAR VERSIONES de Servicios web en Servidores

# lsb_release -a   
# cat /etc/redhat-release# apache2 -v

// EN CENTOS/CPANEL  
# httpd -v
# php -v
# mysql -u root -p
mysql> select version();

Para Contar el Numero de Procesos:

$ ps -Af | grep mysql | grep -v "grep" | wc -l

ls - Opciones

-mfile1, file2 file3, file3, folder1, folder2, file4

-1file1
file2
folder1
file3
file4

Control de logs

# journalctl | grep TEXTO_A_BUSCAR_PARA_FILTRAR

| Cheats