Viernes 11 de Octubre de 2013

Profundidad de navegación: Principal / Capacitaciones, Cursos...EGC

Algunos comandos del shell de GNU Linux, descripción, ejemplos de uso

Terminal

Consideraciones iniciales

* Para ejecutar estos comandos del shell de GNU Linux será necesario abrir una ventana de Terminal (si estamos en modo gráfico).
* Muchos de estos comandos requieren permisos de superusuario root, por lo que será necesario estar logeado con este usuario para que funcionen.
* Es posible que algunos de estos comandos no aparezcan en determinadas distribuciones de GNU Linux. Algunos de los comandos aquí mostrados son específicos de una o varias distribuciones GNU Linux.
* Algunas de las salidas de la ejecución de algunos comandos del shell de GNU Linux puede que no sean iguales en las diferentes distribuciones.
* Hay algunos comandos que su ejecución puede ser "peligrosa", es conveniente que se ejecuten sabiendo lo que se está haciendo y las repercusiones que puedan tener. Por ejemplo, el comando rm -f -r -v nombre_carpeta, eliminará todas las carpetas y subcarpetas a partir de la carpeta "nombre_carpeta", sin pedir confirmación. Otro ejemplo: el comando halt apagará el equipo sin pedir confirmación, si es un equipo de un usuario normal no habrá problema, pero si se trata de un servidor de base de datos, web, etc. los servicios que éste prestaba dejarán de funcionar.
* Los comandos han sido probados en sus respectivas distribuciones GNU Linux: Debian, Ubuntu, Knoppix, Fedora, Gentoo, Slackware, openSuSE, Mandriva, Red Hat, etc.
Entra aquí




























































































































































































































































































































































































































































































































































































































































































































































































































































































































































COMANDO DESCRIPCIÓN EJEMPLO

su nombreusuario

Cambia el usuario actual a nombreusuario (pedirá la contraseña del usuario con el que queramos iniciar la sesión)

su root

who -u



Muestra los usuarios conectados al sistema

who -u

who -b Muestra la fecha y hora del último reinicio del sistema who -b
ps -A
Muestra todos los procesos en ejecución y el identificador de proceso (PID)
ps -A
ps -A | grep bash Muestra todos los procesos que lleven la palabra "bash" ps -A | grep bash
ps -fu oracle Muestra los procesos y los usuarios que los ejecutan en formato UNIX ps -fu oracle
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS Muestra los procesos ordenados por uso de memoria (los que más memoria usan al final) ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
pstree Procesos activos del sistema jerarquizados en forma de árbol pstree
kill -9 numeroproceso
Cierra el proceso especificado por el PID (numeroproceso)
kill -9 745
ls -l
Lista los ficheros y directorios de la ubicación actual
ls -l
ls -lSrh Muestra una lista de los ficheros de una carpeta ordenados por tamaño (los más grandes al final) ls -lSrh
sh nombreficherosh
Ejecuta el fichero de script especificado
sh prueba.sh
./nombrefichero
Ejecuta la aplicación especificada
./mysql
apt-get install nombreaplicacion
Instala la aplicación especificada (si se tiene conexión a Internet), sólo disponible en distribuciones Debian
apt-get install mysql-server
apt-get update Actualiza la base de datos de paquetes a actualizar o instalar a partir del fichero '/etc/apt/sources.list'. La base de datos la constituyen un conjunto de ficheros ubicados en '/var/lib/apt/lists/'
apt-get update
apt-get upgrade Actualiza todos los paquetes instalados en el sistema a la última versión disponible apt-get upgrade
apt-get install -f Comprueba la correcta instalación de los paquetes descargados en '/var/cache/apt/archives/', repitiendo la instalación si fuese necesario o bajando algún paquete dependiente que no se haya descargado apt-get install -f
apt-get clean Elimina todos los paquetes (.deb) descargados (almacenados automáticamente en '/var/cache/apt/archives/') apt-get clean
cp nombrefichero carpetadestino Copia uno o varios (*) ficheros a la carpeta especificada cp * /usr/bin
mv nombrecarpeta carpetadestino Mueve una carpeta/fichero al destino especificado, también sirve para renombrar ficheros/directorios mv /home/alonso /etc
apt-cache search datoabuscar Busca una aplicación en la lista de aplicaciones a instalar (sólo distribuciones Debian) ap-cache search mysql
whoami Muestra el usuario con el que se ha iniciado la sesión de terminal whoami
pwd Muestra el directorio de trabajo actual pwd
ifconfig Muestra la IP del pc y la configuración de red ifconfig
iwconfig Muestra información de las tarjetas de red inalámbrica (wireless) que haya instaladas en el equipo iwconfig wlan0
ping host Realiza ping entre pcs ping 192.168.1.5
ifconfig id_tarjeta down Detiene los servicios de red de la tarjeta especificada (id_tarjeta) ifconfig eth0 down
ifconfig id_tarjeta up Inicia los servicios de red de la tarjeta especificada (id_tarjeta) ifconfig eth0 up
route Muestra información de la tabla de enrutación de la red route
route add default gw ip_puerta_enlace id_tarjeta Añade como puerta de enlace (gateway) por defecto la indicada en ip_puerta_enlace route add default gw 192.168.1.1 eth0
passwd nombreusuario Cambia la contraseña al usuario especificado passwd alonso
cat nombrefichero Muestra el contenido de un fichero (de texto) cat /etc/mysql/my.cnf
vi nombrefichero

Utililidad que sirve para modificar ficheros de texto plano:



    • pulse "i" para editar el fichero.

    • pulse "ESCAPE", a continuación ":wq" e INTRO para guardar los cambios y cerrar el fichero.

vi /etc/mysql/my.cnf
sudo comando usuario Ejecuta el comando especificado con los derechos del usuario especificado (pedirá la contraseña de este usuario) sudo apt-get install mysql-server root
du nombredirectorio -h -s

Muestra el tamaño de todos los subdirectorios del directorio especificado y el tamaño total del mismo .


-h: Muestra el resultado en unidades entendibles por el usuario (Bytes, MB, GB, etc).


-s: no muestra el tamaño de los subdirectorios, sí lo tiene en cuenta para el tamaño total de la carpeta

du -sh /home
rm nombrefichero Borra / elimina el fichero especificado rm /home/alonso/hola.txt
rm -f -v Elimina uno o varios ficheros sin pedir confirmación (-f), mostrando los ficheros que va eliminando (-v) rm -f -v fernando*
shred -u nombre_fichero Elimina un fichero de forma segura (ya no podrá ser recuperado). El comando "rm" no elimina ficheros completamente, podrían ser recuperados shred -u "fernando alonso"
rm -f -r -v nombre_carpeta

Elimina una carpeta completa y todas sus subcarpetas:


-f: no pide confirmación al eliminar.


-r: elimina recursivamente carpetas y subcarpetas y su contenido.



-v: muestra el nombre de los ficheros y carpetas que va eliminando.

rm -f -r -v /home/alonso
date Muestra la hora y la fecha date
cal mes año Muestra un calendario del mes y año especificados cal 12 2005
man comando Muestra ayuda sobre el comando especificado man ifconfig
cd nombredirectorio Cambia del directorio actual al directorio especificado cd /usr/bin
mkdir nombredirectorio Crea un directorio mkdir prueba
rmdir nombredirectorio Elimina el directorio especificado (debe estar vacío) rmdir prueba
rm -r nombredirectorio Elimina el directorio especificado y todo su contenido rm -r prueba
file nombrefichero

Muestra el tipo de archivo o directorio. Las posibles salidas:




    • ASCII English text

    • directory

    • symbolic link to 'enlace'

    • executable

    • ...

file cdrom
find expresionbusqueda Busca ficheros coincidentes con la expresión de búsqueda

find . -name "*mysql*" -print

find -size +500000 Muestra los ficheros de tamaño superior a 500 MB find -size +500000
cksum nombrefichero Muestra el CRC del fichero y el tamaño en bytes cksum isoinfo
grep MemTotal /proc/meminfo Muestra la memoria RAM total del sistema grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo Muestra la cantidad de espacio swap del sistema (memoria de intercambio) grep SwapTotal /proc/meminfo
df -h

Muestra las unidades de disco, el tamaño y el espacio libre.


-h: muestra el resultado en unidades entendibles por el usuario (M= Megabytes, G=Gigabytes, etc).

df -h
df . -h Muestra el espacio libre, ocupado y total del disco actual df . -h
uname -a

Muestra información del sistema. uname -a es equivalente a uname -snrvmpio, donde:





    • -s: nombre del kernel.

    • -n: nombre del equipo en la red (host).

    • -r: release del kernel.

    • -v: versión del kernel.

    • -m: nombre hardware de la máquina.


    • -p: tipo de procesador.

    • -i: tipo de plataforma hardware.

    • -o: nombre sistema operativo.

uname -a
arp Muestra y modifica las tablas de conversión de direcciones IP en direcciones físicas que usa el protocolo de resolución de direcciones (ARP ó Address Resolution Protocol) arp -i eth0
chmod 777 nombrearchivo Asigna al fichero nombrearchivo permisos del lectura, escritura y ejecución para el propietario, grupo e invitado chmod 777 prueba
chown nombreusuario nombrearchivo Cambia el propietario del archivo nombrearchivo a nombreusuario chown alonso prueba
date --set=15:30 Cambia la hora del sistema a las 15:30 date --set=15:30
deluser nombreusuario Elimina el usuario nombreusuario y todos sus archivos de configuración deluser alonso
discover --xdriver video Muestra el driver de la tarjeta de video discover --xdriver video
discover ethernet Muestra el driver de la tarjeta de red discover ethernet
echo $NOMBREVARIABLE Muestra el valor de la variable de entorno especificada (nombrevariable) echo $HOSTNAME
env Muestra las variables de entorno definidas para el usuario actual env
fdisk -l Muestra la estructura y tipo de particiones
fdisk -l
find / -name mysql* -exec rm {} ; Busca todos los ficheros que comiencen por "mysql" y los ELIMINA find / -name mysql* -exec rm {};
free Muestra información sobre la memoria RAM y Swap (total, libre y ocupada) free
fsck /dev/hda1 Comprueba el sistema de ficheros de la partición hda1 fsck /dev/hda1
gcc -o nombreprograma ficheroresultante.c Compila "nombreprograma.c" y devuelve el ficheroresultante.c compilado gcc -o prueba prueba.c
groups Muestra los grupos de seguridad a los que pertenece el usuario actual groups
groupadd nombregrupo Añade un nuevo grupo de seguridad groupadd leerayuda
gunzip fichero.tar.gz | tar -xvf fichero.tar Descomprime y desempaqueta el archivo 'fichero.tar.gz' gunzip mysql.tar.gz | tar -xvf mysql.tar
gzip fichero Comprime el archivo "fichero", renomb?andolo a 'fichero.gz'
gzip mysql
tar xvf fichero.tar Desempaqueta el archivo "fichero.tar" tar xvf oracle.tar
tar -czvf fichero_tar ficheros_comprimir Comprime/Empaqueta los ficheros especificados en "ficheros_comprimir" en el fichero "fichero_tar" tar -czvf /tmp/prueba.tar /root/*
tar -tzvf fichero_tar Muestra el contenido del fichero "fichero_tar" (comprimido con "tar") tar -tzvf /tmp/prueba.tar
tar -tzvf /dev/st0 Muestra el contenido del dispositivo de copia de seguridad "/dev"st0" tar -tzvf /dev/st0

tar -czvf /dev/st0

Descomprime el contenido del dispositivo de copia de seguridad "/dev/st0" en la ubicación donde se ejecute el comando tar -czvf /dev/st0
head nombrefichero Muestra las 10 primeras líneas del fichero nombrefichero head mysql
history Listado de los comandos utilizados por el usuario history
nombreservicio -k restart Reinicia el servicio nombreservicio httpd -k restart
ifdown eth0 Para el servicio de red 'eth0' ifdown eth0
ifup eth0 Arranca el servicio de red 'eth0' ifup eth0
netstat -a Muestra los puertos abiertos netstat -a
netstat -atun | grep ESTAB Muestra las conexiones establecidas a puertos determinados netstat -atun | grep ESTAB
type comando Muestra la ubicación del comando especificado type ifconfig
mount -rt iso9660 /dev/hdc /cdrom Monta la unidad de cdrom en modo sólo lectura (r), con sistema de ficheros (t) 'iso9660', en el dispositivo '/dev/hdc', disponible en el directorio '/cdrom' mount -rt iso9660 /dev/hdc /cdrom
mount -t msdos /dev/fd0 /floppy Monta la unidad de disquete, con sistema de ficheros 'MS-DOS', en el dispositivo '/dev/fd0', disponible en el directorio '/floppy'
mount -t msdos /dev/fd0 /floppy
umount /dispositivo Desmonta el dispositivo especificado umount /cdrom
umount -a Desmonta todas las unidades y dispositivos montados umount -a
wc nombrefichero Muestra las líneas, palabras y caracteres del fichero especificado wc prueba
whois nombredominio Muestra información del dominio especificado (fecha registro, fecha expiración, dns, ...) whois ajpdsoft.com
xvncviewer ip Realiza control remoto al equipo con la IP especificada (deberá tener instalado y en ejecución vncserver). Permite el control remoto tanto con PCs con Linux como con PCs con Windows xvncviewer 192.168.1.3
which comando Localiza la ubicación del comando especificado which ls
wget direccionftp/nombrefichero Descarga el fichero nombrefichero de la dirección ftp direccionftp. También sirve para conexión mediante http wget ftp://ftp.ajpdsoft.com/j (en este caso el ftp debe soportar conexiones anónimas)
addgroup nombregrupo Añade un nuevo grupo de seguridad addgroup accesored
useradd -g nombregrupo nombreusuario Añade un nuevo usuario con el nombre nombreusuario perteneciente al grupo nombregrupo useradd -g root alonso
userdel nombre_usuario Elimina un usuario del sistema userdel ajpdsoft
tr 'A-Z' 'a-z' < fichero.txt Convierte a minúsculas todos los caracteres del archivo 'fichero.txt' tr 'A-Z' 'a-z' < prueba
top Muestra información de los procesos que se están ejecutando, uso de CPU, memoria, PID, ... con la característica de que se va actualizando cada 5 segundos o tras pulsar la barra espaciadora top
tail nombrefichero Muestra las últimas diez líneas del fichero nombrefichero tail my.cnf
shutdown minutos 'mensaje' Reinicia el sistema en los minutos especificados, previamente envía un mensaje a todos los usuarios conectados con el texto: mensaje shutdown 15 'El sistema se reiniciará en 15 minutos, guarde su información'
shutdown -h now Apaga el sistema instantáneamente (equivalente a halt o init 0) shutdown -h now
shutdown -r now Reiniciar el sistema instantáneamete (equivalente a reboot o init 6) shutdown -r now
shutdown -r hh:mm Reinicia el equipo a la hora y minuto indicada shutdown -r 20:00
cat /dev/hda > /dev/hdb Copia todo el disco duro 'hda' en el disco duro 'hdb'
cat /dev/hda > /dev/hdb
cat /dev/cdrom > /usr/fichero.iso Crea la imagen ISO-9660 del CD-ROM introducido, con el nombre 'fichero.iso' en el directorio '/usr' cat /dev/cdrom > /usr/fichero.iso
chgrp grupo archivo Cambia el grupo del archivo especificado al grupo especificado chgrp accesored mysql.cnf
sqlplus /nolog Si tenemos Oracle instalado se conectará a la BD

sqlplus /nolog


connect / as sysdba


select status from v$instance

hwbrowser& Muestra el navegador de hardware (modo gráfico): discos duros, SCSI, CD-ROM, USB, Unidades de cinta, etc hwbrowser&
watch "comando" Ejecuta repetidamente el comando entre comillas y muestra el resultado en pantalla watch "du -s -h"
whereis Busca los archivos ejecutables, las fuentes y el manual de un comando

whereis ls


whereis man

ifdown eth0 Desactiva la tarjeta de red especificada (eth0) ifdown eth0
ifup eth0 Activa la tarjeta de red especificada (eth0) ifup eth0
chkconfig Muestra/Modifica el estado de los servicios del sistema en cada nivel de arranque (runlevel) chkconfig --list dbora
modprobe Añade/Elimina módulos del Kernel de Linux modprobe qla2300
vmstat Muestra estadísticas de uso de la memoria, cpu, lectuas/escrituras en disco, etc watch "vmstat -s -S: M"
free Muestra estadísticas de uso de la memoria watch "free -m"
lsmod Muestra el estado de los módulos en el Kernel de Linux lsmod

cd /etc/init.d


ls -l

En el directorio init.d se guardan todos los servicios instalados en el equipo, accediendo a este directorio y haciendo un ls -l se pueden ver

cd /etc/init.d


ls -l

service nombre_servicio status Muestra el estado del servicio especificado "nombre_servicio": stopped, se está ejecutando, ... service dsmserv status
service nombre_servicio start Inicia el servicio especificado "nombre_servicio" service dsmserv start
service nombre_servicio stop Detiene el servicio especificado "nombre_servicio" service dsmserv stop
service nombre_servicio restart Reinicia el servicio especificado "nombre_servicio" service dsmserv restart
export nombrevariable=valor Cambia el valor de una variable de entorno export $PATH=/home/oracle/bin
echo nombrevariable Muestra el valor de la variable de entorno nombrevariable echo $PATH
set Muestra todas las variables de entorno shell y su valor set
$ORACLE_HOME/bin/rman target=/ Inicia el programa rman, para copias de seguridad de Oracle en caliente $ORACLE_HOME/bin/rman target=/
hostname -i Muestra la IP de la interfaz de red actual del equipo (normalmente eth0) hostname -i
ethtool eth0 Muestra el estado actual de la interfaz de red indicada "eth0" ethtool eth0
ethtool --change eth0 autoneg off speed 100 duplex full Permite cambiar de forma manual la velocidad del interfaz de red indicado, en este caso "eth0" ethtool --change eth0 autoneg off speed 100 duplex full
ip addr add 192.168.1.100 brd + dev eth0 Añade una nueva IP al interfaz de red indicado, en este caso "eth0" ip addr add 192.168.1.100 brd + dev eth0
ip addr show Muestra todas las direcciones de todas las interfaces de red del equipo ip addr show
cal -3 Muestra un calendario del mes anterior, el actual y el siguiente a la fecha actual del equipo cal -3
last reboot Muestra las veces que el equipo se ha reiniciado, la fecha, la hora y el tipo de reinicio last reboot
head -n1 /etc/issue Muestra el nombre y la versión de la distribución de GNU Linux instalada head -n1 /etc/issue
grep "model name" /proc/cpuinfo Muestra el fabricante, el modelo y la velocidad del procesador (CPU) del equipo grep "model name" /proc/cpuinfo
hdparm -tT /dev/sda Realiza un test para calcular la velocidad de transferencia del disco duro indicado hdparm -tT /dev/sda
alias comando

Permite asignar a un comando creado por nosotros mismos con el nombre que queramos la ejecución de otro comando Linux, por ejemplo, el siguiente comando Linux: alias listar='ls -lah' creará un nuevo "comando" llamado "listar" que cada vez que se ejecute será igual que si ejecutásemos el comando ls -lah

alias listar='ls -lah'
lspci -tv Muestra los dispositivos PCI (Peripheral Component Interconnect ) lspci -tv
lsusb -tv Muestra los dispostivos USB, la ubicación, el bus, el puerto lsusb -tv
visudo Muestra y permite editar (como si de vi se tratase) el fichero /etc/sudoers, donde se le indica a Linux qué usuarios podrán ejecutar comandos como si fuesen el superusuario root utilizando el comando "sudo" visudo
telnet IP Puerto Realiza una conexión mediante Telnet al equipo indicado "IP" utilizando el puerto indicado "Puerto" telnet 192.168.1.100 4899
nano nombre_fichero Editor en modo texto más intuitivo y fácil de usar que vi nano /etc/sudoers
ftp Realiza un conexión mediante el protocolo FTP a un servidor de FTP ftp

usermod -a -G nombre_grupo nombre_usuario

Agrega el usuario "nombre_usuario" al grupo de seguridad "nombre_grupo"

usermod -a -G dba root

id nombre_usuario

Muestra el uid interno del usuario "nombre_usuario" y los grupos de seguridad a los que pertenece id root
adduser -u 0 -o -g 0 -G 0,1,2,3,4,6,10 -M nombre_usuario Añade un nuevo usuario al sistema operativo como si se tratase del superusuario root (con los mismos permisos) adduser -u 0 -o -g 0 -G 0,1,2,3,4,6,10 -M fernando
crontab -e Edita el fichero "crontab" (equivalente al programador de tareas de Windows). Permite agregar nuevas tareas programadas, modificar o eliminar las actuales crontab -e
init numero_nivel

Cambia el nivel de ejecución al indicado:



    • 0 - halt (apagar equipo).


    • 1 - Single user mode (modo monousuario).

    • 2 - Multiuser, without NFS (multiusuario, sin funciones de red).

    • 3 - Full multiuser mode (multiusuario, con funciones de red).

    • 4 - unused (no utilizado).

    • 5 - X11 (multiusuario, red, modo gráfico).

    • 6 - reboot (reinicio del sistema).


init 5
runlevel Muestra el nivel de ejecución anterior y el actual. Si no ha cambiado, mostrará "N" en el anterior runlevel
halt Apaga el equipo. Comando equivalente a ejecutar: init 0 (más o menos). En realidad, lo que hace halt es comprobar si el sistema se está deteniendo (reiniciando o apagando) consultado el fichero /var/log/wtmp. Si no se está deteniendo ya lo apaga halt
poweroff Apaga el equipo (equivalente a init 0, shutdown -h now, halt) poweroff
reboot Reinicia el equipo (equivalente a shutdown -r now, init 6) reboot
ulimit

Muestra o modifica ciertos límites del sistema:



    • Tamaño máximo de los archivos creados en el núcleo.


    • Tamaño del segmento de pila.

    • Tamaño del segmento de datos de un proceso

    • Máxima priorida en tareas programadas.

    • Número máximo de ficheros abiertos.

    • Tamaño de la memoria virtual.


    • Número máximo de procesos de usuario.

    • Tiempo de uso de la CPU.


Todos las las opciones (en inglés):



    • -S use the `soft' resource limit


    • -H use the `hard' resource limit

    • -a all current limits are reported

    • -b the socket buffer size

    • -c the maximum size of core files created

    • -d the maximum size of a process's data segment


    • -e the maximum scheduling priority (`nice')

    • -f the maximum size of files written by the shell and its children

    • -i the maximum number of pending signals

    • -l the maximum size a process may lock into memory

    • -m the maximum resident set size


    • -n the maximum number of open file descriptors

    • -p the pipe buffer size

    • -q the maximum number of bytes in POSIX message queues

    • -r the maximum real-time scheduling priority

    • -s the maximum stack size


    • -t the maximum amount of cpu time in seconds

    • -u the maximum number of user processes

    • -v the size of virtual memory

    • -x the maximum number of file locks



ulimit -a
sysctl Muestra o modifica valores del kernel en tiempo de ejecución sysctl -a
tcpdump Captura y muestra en tiempo real los paquetes transmitidos y recibidos en la red a la cual el ordenador está conectado. Analiza el tráfico de la red. tcpdump -c 100 -w sniffer.txt

Fecha: 10/08/2010