Volver Arriba Volver Arriba

domingo, 18 de agosto de 2013

Los 50 comandos mas usados en UNIX / Linux (con ejemplos)

terminal
He traducido de The Geek Stuff un artículo que me ha parecido de lo más interesante, se trata de los 50 comandos mas usados y viene con ejemplos explicativos. Pulsa en Más información.


Comando tar

Crear un nuevo archivo tar

tar cvf nombreArchivo.tar nombreDirectorio

Extraer desde un tar existente

tar xvf archivoTar.tar

Ver un archivo tar

tar tvf archivoTar.tar

Comando grep

Buscar una cadena de texto en un archivo (no distingue mayúsculas de minúsculas)

grep -i "El" archivo

Imprime la línea encontrada y las 3 siguientes

grep -A 3 -i "ejemplo" archivo

Realiza una búsqueda de la cadena dada en todos los archivos de forma recursiva

grep -r "cosa" *

Comando find

Encuentra archivos usando el nombre del mismo

find -iname  "Miprograma.c"

Ejecuta comandos en archivos encontrados con find

find -iname "Miprograma.c" -exec md5sum {} \;

Encuentra todos los archivos vacíos en el directorio home

find ~ -empty

Comando ssh

Hacer login en host remoto

ssh -l jsmith remotehost.example.com

Modo Debug
ssh -v -l login hostremoto.com

Muestra la versión del cliente ssh

ssh -V
OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003

Comando Sed

Cuando copias un archivo DOS a Unix puedes encontrar \r\n al final de cada línea. Este ejemplo convierte el formato DOS a formato UNIX:

$sed 's/.$//' nombreArchivo

Imprime el contenido de un archivo en orden inverso

sed -n '1!G;h;$p' archivo.txt

Añade el número de línea a aquellas líneas no vacías en un archivo

sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'

Comando awk

Elimina líneas duplicadas usando awk

awk '!($0 in array) { array[$0]; print }' temp

Imprime todas las líneas de /etc/passwd que tienen el mismo gid y uid


awk -F ':' '$3==$4' passwd.txt

Imprime solamente un campo específico de un fichero

awk '{print $2,$5;}' employee.txt

Comando vim

Ir a la línea 143 de un fichero

vim +143 archivo.txt

Ir a la primera coincidencia especificada

vim +/termino-busqueda archivo.txt

Abrir el archivo en modo lectura

vim -R /etc/passwd

Comando diff

Ignorar espacios en blanco cuando compare

diff -w nombre-lista.txt nombre-lista-nuevo.txt
2c2,3
< John Doe --- > John M Doe
> Jason Bourne

Comando sort

Ordenar un archivo en modo ascendente

sort nombres.txt

Ordenar un archivo en modo descendente

sort -r nombres.txt

Ordenar el archivo passwd por el tercer campo

sort -t: -k 3n /etc/passwd | more

Comando export

Para ver las variables de entorno relacionadas con oracle

export | grep ORACLE
declare -x ORACLE_BASE="/u01/app/oracle" declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0" declare -x ORACLE_SID="med" declare -x ORACLE_TERM="xterm"

Para exportar una variable de entorno

export ORACLE_HOME=/u01/app/oracle/product/10.2.0

Comando xargs

Copiar todas las imágenes a un disco duro externo

ls *.jpg | xargs -n1 -i cp {} /disco-duro-externo/directorio

Buscar todas las imágenes jpeg en el sistema y archivarlas

find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

Descargar desde todas las direcciones mencionadas en el archivo lista-url.txt

cat url-list.txt | xargs wget –c

Comando ls

Muestra el tamaño de archivo en un formato amigable (KB, MB...)

ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz

Ordena los archivos por Última modificación (en orden inverso)

ls -ltr

Clasificación Visual de Archivos con   Caracteres Especiales

ls -F

Comando pwd

Print working directory o lo que es lo mismo, imprime el directorio donde nos encontramos

Comando cd

Cambiar entre los dos últimos directorios
cd -


Corregir los nombres de los directorios mal escritos con cd
shopt -s cdspell


Comando gzip

Crear un archivo comprimido *.gz

gzip test.txt

Descomprimir un archivo comprimido *.gz

gzip -d test.txt.gz

Visualizar el ratio de compresión del archivo *.gz

gzip -l *.gz
         compressed        uncompressed  ratio uncompressed_name
              23709               97975  75.8% asp-patch-rpms.txt

Comando bzip2

Crear un archivo comprimido *.bz2

bzip2 test.txt

Descomprimir un archivo comprimido *.bz2

bzip2 -d test.txt.bz2

Comando unzip


Extraer un archivo *.zip

unzip test.zip

Ver el contenido de un archivo *.zip (sin descomprimirlo)

unzip -l jasper.zip
Archive:  jasper.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
    40995  11-30-98 23:50   META-INF/MANIFEST.MF
    32169  08-25-98 21:07   classes_
    15964  08-25-98 21:07   classes_names
    10542  08-25-98 21:07   classes_ncomp

Comando shutdown

Apagar el ordenador

shutdown -h now

Apagar el ordenador dentro de 10 minutos

shutdown -h +10

Reiniciar el ordenador

shutdown -r now

Forzar comprobación de archivos tras el reinicio

shutdown -Fr now

Comando ftp

FTP y Secure FTP (sftp) tienen comandos similares. Para conectarnos a un servidor remoto y descargar múltiples archivos:

ftp IP/nombreHost
ftp> mget *.html

Para ver los nombres de los archivos en el servidor remoto antes de descargarlos

ftp> mls *.html -
/ftptest/features.html
/ftptest/index.html
/ftptest/othertools.html
/ftptest/samplereport.html
/ftptest/usage.html

Comando crontab

Ver la entrada crontab de un usuario específico

crontab -u john -l

Programar un trabajo cron cada 10 minutos

*/10 * * * * /home/ramesh/comprobar-disco

Comando service

El comando service sirve para ejecutar scripts init del sistema.

Comprueba el estado de un servicio

service ssh status

Comprueba el estado de todos los servicios

service --status-all

Reinicia un servicio

service ssh restart

Comando ps

El comando ps sirve para mostrar información relativa a los procesos que se están ejecutando en el sistema

Ver los procesos actualmente ejecutándose

ps -ef | more

Ver los procesos actualmente ejecutándose en una estructura tipo arbol


ps -efH | more

Comando free

Usado para mostrar la memoria libre, usada y compartida que hay en el sistema.

free
             total       used       free     shared    buffers     cached
Mem:       3566408    1580220    1986188          0     203988     902960
-/+ buffers/cache:     473272    3093136
Swap:      4000176          0    4000176

Si quieres rápidamente comprobar cuantos GB de memoria RAM ha usado tu sistema usa la opción -g, -b en bytes, -k en kilobytes , -m en megabytes

free -g
             total       used       free     shared    buffers     cached
Mem:             3          1          1          0          0          0
-/+ buffers/cache:          0          2
Swap:            3          0          3

Si quieres ver la memoria total incluyendo la compartida

free -t
             total       used       free     shared    buffers     cached
Mem:       3566408    1592148    1974260          0     204260     912556
-/+ buffers/cache:     475332    3091076
Swap:      4000176          0    4000176
Total:     7566584    1592148    5974436

Comando top

Muestra los procesos que más CPU consumen. Para ordenar por alguna columna, pulsa O, mostrará todas las posibles columnas por las cuales puedes ordenar

Current Sort Field:  P  for window 1:Def
Select sort field via field letter, type any other key to return

  a: PID        = Process Id              v: nDRT       = Dirty Pages count
  d: UID        = User Id                 y: WCHAN      = Sleeping in Function
  e: USER       = User Name               z: Flags      = Task Flags
  ........

Para mostrar los procesos que pertenecen a un usuario particular usa la opción -u.

top -u oracle

Comando df

Muestra el espacio de disco usado. Por defecto -k muestra la salida en bytes.

df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             29530400   3233104  24797232  12% /
/dev/sda2            120367992  50171596  64082060  44% /home

Muestra la salida de una forma fácil de leer.

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  3.1G   24G  12% /
/dev/sda2             115G   48G   62G  44% /home

Muestra además el tipo de sistema de ficheros

df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext4    29530400   3233120  24797216  12% /
/dev/sda2     ext4   120367992  50171596  64082060  44% /home

Comando kill

Usa el comando kill para matar(terminar) un proceso. Primero obtén la id del proceso usando ps -ef, entonces usa kill -9 para matar el proceso en cuestión como se muestra abajo. También puedes usar killall, pkill, xkill para terminar un proceso en Unix.

ps -ef | grep vim
ramesh    7243  7222  9 22:43 pts/2    00:00:00 vim

kill -9 7243

Comando rm

Confirmación antes de eliminar un fichero

rm -i archivo.txt

Imprime el archivo y obtén confirmación antes de eliminarlo

rm -i archivo*

Elimina de manera recursiva todos los archivos y directorios del directorio ejemplo. También elimina el directorio ejemplo

rm -r example

Comando cp

Copia el fichero1 en fichero2 preservando el modo, dueño y fecha.


Copia el fichero1 en fichero2. Si el fichero2 existe, necesitará confirmación antes de sobreescribirlo.

cp -i fichero1 fichero2

Comando mv

Renombra el archivo1 a archivo2. Si archivo2 existe necesitará confirmación antes de sobreescribirlo (con -f no pregunta)

mv -i archivo1 archivo2

Modo verbose o lo que es lo mismo, va imprimiendo que va pasando cuando se cambia el nombre

mv -v archivo1 archivo2

Comando cat

Ver múltiples archivos

cat archivo1 archivo2

Mientras se muestra el fichero se muestra el número de línea

cat -n /etc/logrotate.conf
    1 /var/log/btmp {
    2     missingok
    3     monthly
    4     create 0660 root utmp
    5     rotate 1
    6 }

Comando mount

Para montar un sistema de archivos es necesario montarlo como se muestra abajo

# mkdir /u01
# mount /dev/sdb1 /u01

Puedes añadir esto al fstab para automatizar el montaje. Por ejemplo, cada vez que el sistema es reiniciado, el sistema de archivos será montado

/dev/sdb1 /u01 ext2 defaults 0 2

Comando chmod

El comando chmod se usa para cambiar los permisos de un fichero o directorio

Acceso total para el usuario y grupo (leer, escribir y ejecutar) en un determinado archivo.

chmod ug+rwx archivo.txt

Elimina todos los accesos para el grupo (leer, escribir y ejecutar) en un determinado archivo.

chmod g-rwx archivo.txt

Aplica los permisos de archivo recursivamente a todos los archivos en los subdirectorios.

chmod -R ug+rwx archivo.txt

Comando chown

El comando chown se usa para cambiar el dueño y el grupo de un fichero.

Para cambiar el dueño a "oracle" y el grupo a "dba" en un fichero.

chown oracle:dba dbora.sh

Usa -R para cambiar el dueño recursivamente.

chown -R oracle:dba /home/oracle

Comando passwd

Cambia tu contraseña desde la línea de comandos usando passwd. Nos pedirá la contraseña antigua seguido de la nueva.

passwd

El super usuario puede usar passwd para cambiar otras contraseñas. No le pedirá la contraseña actual del usuario.

passwd USUARIO

Elimina la contraseña de un usuario específico. El super usuario puede deshabilitar contraseñas para un usuario específico. Una vez las contraseñas están deshabilitadas, el usuario puede hacer login sin necesidad de introducir la contraseña.

passwd -d USERNAME

Comando mkdir

El siguiente ejemplo crea un directorio llamado temp bajo tu directorio personal.

mkdir ~/temp

Crea directorios anidados usando el comando mkdir. Si alguno de estos directorios ya existe, no mostrará ningún error. Si alguno de estos directorios no existe, los creará.

mkdir -p dir1/dir2/dir3/dir4/

Comando ifconfig

Usa ifconfig para ver y configurar una interfaz de red.

Para ver todas las interfaces junto con su estado.

ifconfig -a

Comienza o detén una determinada interface usando los comandos up y down mostrados abajo.

ifconfig eth0 up
ifconfig eth0 down

Comando uname

El comando muestra información relevante sobre el sistema como - nombre del núcleo, nombre de host, , versión del núcleo, tipo de procesador...

uname -a
Linux john-laptop 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux

Comando whereis

Cuando quieres encontrar la localización de un comando determinado de Unix, por ejemplo ls

whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

Cuando deseas buscar un archivo ejecutable desde una ruta que no sea la ruta predeterminada, puedes usar la opción -B y dar la ruta como argumento. Esto buscará el ejecutable lsmk en el directorio /tmp y lo mostrará si está disponible.

whereis -u -B /tmp -f lsmk
lsmk: /tmp/lsmk

Comando whatis

Muestra en una línea la descripción acerca de un comando

whatis ls
ls  (1)  - listan los contenidos de directorios

whatis ifconfig
ifconfig (8)         - configura una interfaz de red

Comando locale

Usando locales puedes realizar una búsqueda para localizar un archivo específico (o un grupo de archivos). Locale usa la base de datos creada por updatedb

Este ejemplo muestra todos los archivos en el sistema que contienen la palabra crontab.


locate crontab
/etc/anacrontab
/etc/crontab
/usr/bin/crontab
/usr/share/doc/cron/examples/crontab2english.pl.gz
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/anacrontab.5.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim72/syntax/crontab.vim

Comando man

Muestra la página del manual para un comando específico.

man crontab

Cuando una página del manual de un comando se encuentra en más de una sección, se puede ver la página del manual para ese comando en una sección específica, como se muestra a continuación.

man NUMERO_SECCIÓN comando

Las siguientes 8 secciones están disponibles en las páginas del manual.

  1. Comandos generales
  2. Llamadas al sistema
  3. Biblioteca de funciones C
  4. Ficheros especiales (generalmente dispositivos que se encuentran en /dev) y drivers
  5. Formatos de archivo y convenciones
  6. Juegos y salvapantallas
  7. Otros temas
  8. Sistema de administración y demonios (daemons)
Por ejemplo, cuando haces whatis crontab, te darás cuenta de que crontab tiene dos páginas del manual (sección 1 y sección 5). Para ver la sección 5 del manual de crontab, haz lo siguiente.

whatis crontab
crontab (1)          - maintain crontab files for individual users (V3)
crontab (5)          - tables for driving cron

man 5 crontab

Comando tail

Imprime las últimas 10 líneas de un archivo por defecto.

tail archivo.txt

Imprime N número de lineas de un fichero llamado archivo.txt

tail -n N filename.txt

Ver el contenido de un archivo en tiempo real usando tail -f. Esto es útil para ver archivos log que continúan creciendo. Puedes acabar con el comando usando CTRL-C.

tail -f log-file

Comando less

Es muy eficiente mientras ves archivos log enormes ya que no necesitas cargar el archivo entero mientras lo abres.

less log-enorme.log

Una vez abres un archivo usando less, puedes usar estas dos opciones que son de ayuda.

CTRL+F – avanzar una ventana
CTRL+B – retroceder una ventana

Comando su

Permiter cambiar a otra cuenta de usuario. El super usuario puede cambiar a cualquier otro usuario sin necesidad de introducir la contraseña.

su - NOMBREUSUARIO

Ejecuta un comando desde otra cuenta, En el siguiente ejemplo,   john puede ejecutar el comando ls como si fuera el usuario raj. Una vez el comando es ejecutado, volveremos a la cuenta de john.

[john@dev-server]$ su - raj -c 'ls'

[john@dev-server]$

Hacemos login en otra cuenta y ejecutamos la shell especificada en vez de la que viene por defecto.

su -s 'NOMBREDELASHELL' NOMBREUSUARIO

Comando mysql

MySQL es problabemente la base de datos de código abierto mas utilizada en Linux. Incluso si no tienes una base de datos mysql en tu servidor, puedes usar el comando mysql (cliente) para conectarte a una base de datos en un servidor remoto.

Para conectarte a una base de datos mysql remota

mysql -u root -p -h 192.168.1.2

Para conectarte a una base de datos mysql local.

mysql -u root -p

Comando yum

Para instalar apache usando yum

yum install httpd

Para actualizar apache usando yum

yum update httpd

Para desinstalar/borrar apache usando yum

yum remove httpd

Comando rpm

Para instalar apache usando rpm

rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm

Para actualizar apache usando rpm

rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm

Para desinstalar/borrar apache usando rpm

rpm -ev httpd

Comando ping

Hacer ping a un servidor remoto enviando 5 paquetes

ping -c 5 gmail.com

Comando date

Establecer la fecha del sistema

date -s "01/31/2010 23:59:53"

Una vez has cambiado la fecha del sistema, deberías sincronizar el reloj del equipo con la fecha del sistema, tal y como se muestra abajo

hwclock –systohc

hwclock --systohc –utc

Comando wget

La forma mas rápida de obtener software, música, video de internet es usando el comando wget

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz

Descargar y almacenar con un nombre distinto

wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701



No hay comentarios:

Publicar un comentario en la entrada