Documente Academic
Documente Profesional
Documente Cultură
para un buen informtico, a la vez que supone un ahorro gigante de tiempo, por el tema de poder administrar remotamente un sistema lejano fsicamente. En realidad no sern 10 comandos, sino 10 grupos o familias de comandos que -junto a otras herramientas tiles como podran ser vim o netcat- nos permitirn administrar sistemas en modo extremo y nos harn la vida en terminal mucho ms cmoda. Antes de seguir, debemos saber utilizar correctamente las redirecciones de salida (smbolos mayor y menor que) y las tuberas (pipes). Las redirecciones sirven para guardar en un nuevo fichero la salida del comando ls -lh >fich_vacio.txt o para aadir al final de un fichero existente ls -lh >>fich_existente.txt. Las tuberas sirven para enlazar la salida de un comando con la entrada de otro, y as aplicar el comando posterior a la salida del primer comando. Por ejemplo, ls -lh | grep "hola".
1. Movimiento de directorios
Comandos bsicos como cd (cambiar de directorio), mkdir (crear directorio),rmdir (eliminar directorio vaco) son muy necesarios en entorno de terminales. Unos comandos que pueden ayudarnos para movernos ms rpido son pwd, que nos muestra la ruta completa del directorio donde estamos, y los comandospushd y popd. Como se puede ver en la imagen, pushd y popd son dos comandos que guardan en una pila el directorio actual donde estamos trabajando. As, podemos guardar la ruta actual con pushd ., cambiar de ruta y realizar varias operaciones, y volver a la ruta anterior, haciendo un popd. Esto en principio puede parecer engorroso, pero en trabajos con rutas largas, se agradece mucho.
Todos sabemos utilizar el cp (copiar) o el mv (mover) para trasladar archivos. Pero tambin existe el scp (copia mediante SSH). El comando ssh sirve para conectar a otro sistema Linux o Unix, que tenga un servidor ssh activo, y as poder ejecutar ordenes en l (tener una terminal abierta en ese equipo remoto). Funciona con la sintaxis ssh usuario@ip, por ejemplo:
ssh admin@122.41.51.63
Por otra parte, el comando scp realiza una copia de un fichero desde nuestro sistema a un sistema remoto (o viceversa). Veamos un ejemplo:
scp fichero.zip admin@122.41.51.63:/home/admin/files
fichero.zip es el fichero local que queremos copiar. admin es la cuenta de usuario en el sistema remoto. 122.41.51.63 es el sistema remoto. /home/admin/files es el directorio remoto donde vamos a copiar. Con respecto al mundo HTTP, tambin esta presente en el mundo de las terminales. Existen varios navegadores de texto como lynx, links, w3m oelinks. Por su parte, wget es un excelente comando para descargar ficheros de internet, ycurl (muy util para programadores) un comando con el que obtener el cdigo fuente de una URL.
3. Compresin y empaquetado
En prcticamente todas las distribuciones de linux, existen varios paquetes decompresin y empaquetado. As, en cualquier momento podemos comprimir nuestros datos para pasarlos a un pendrive, copiarlos por la red (ver scp en apartado anterior), enviarlos por correo o incluso hacer copias de seguridad, de forma ms sencilla y compacta. Los comandos compress, gzip y bzip2 (con sus respectivos uncompress,gunzip y bunzip2 para descomprimir) son los ms famosos. No obstante, lo que ms se suele utilizar es el comando tar, que no es ms que unempaquetador de archivos:
tar -czvf paquete.tar.gz *
Donde:
Flags -c -z -v Crea un paquete. Comprime con gzip. Verbose mode, muestra informacin. Descripcin
-f *
Indica el nombre del fichero, paquete.tar.gz en el ejemplo. Lista de ficheros a incluir en el paquete, en este caso todos los ficheros de la ruta actual, incluyendo subdirectorios (comodin).
Otro comando poco conocido y bastante til para programadores es gzexe, que viene a ser el equivalente de unix de programas como LZExe (DOS) o ASPack(windows). Se trata de un comando para comprimir ficheros ejecutables, con la caracterstica de que reducen su tamao pero continua funcionando, sin necesidad de volverlo a descomprimir. Algo, sin duda, muy til en unidades donde no tenemos demasiado espacio en disco.
4. Filtrado de salida
Al comando grep se le podra dedicar un artculo completo, de hecho hay librosenteros que hablan sobre el. Se trata de un comando que filtra lineas que coincidan con un patrn dado. Por ejemplo:
cat empleados.txt | grep "Garcia"
Sabiendo que cat muestra el contenido de un fichero, con esta linea conseguiremos ver los empleados que se apelliden Garcia. A esto se le une la potencia de poder utilizar expresiones regulares con grep, adems de muchos parmetros que facilitan la bsqueda:
Flags -i -c -E -B 6 -A 6 Descripcin Busca tanto Garcia como GARCIA como garcia. En lugar de las lineas que contienen Garca, devuelve el nmero de ellas que se encontraron. Activa el uso de expresiones regulares (tambin egrep). Muestra las anteriores 6 lineas de donde encontr un Garca. Idem, con las 6 lineas siguientes.
Existen muchsimas ms opciones. Un comando mucho ms potente (y tambin mucho ms complejo) es awk. Pero eso lo dejaremos para otro artculo.
Ordena los resultados alfabticamente (til para ordenar numricamente, usar flag -n). Elimina las lneas repetidas (especialmente til despus de un sort) Muestra las lneas en orden inverso (horizontalmente). Muestra las lneas en orden inverso (verticalmente) Muestra slo carcteres textuales (til para buscar texto en binarios). Realiza evaluaciones de expresiones (clculos, operaciones, mtodos...). Cuenta el nmero de lneas, carcteres o palabras.
Muestra las ltimas 50 lineas del log del servidor web (access_log). Corta la primera fila, delimitada por espacios (IP). La ordena alfabticamente y le aplica el uniq -c (elimina repetidos y aade el nmero de veces que encontr la linea). Ordena las lineas numricamente (ltima la IP ms repetida). Un comando tambin especialmente til es tr (traducir), que cambia carcteres por otros. Por ejemplo:
# echo "Hola amigo mio" | tr 'oi' 'aa' Hala amaga maa
6. Seguridad y permisos
Uno de los clsicos que un buen administrador de sistemas no puede olvidar en entornos Unix o Linux, es la gestin de permisos. Con chmod podemos cambiar los permisos de lectura, escritura y ejecucin de uno o varios ficheros. Por otra parte, con chown y chgrp podremos cambiar el usuario propietario de un fichero y el grupo al que pertenece ese fichero respectivamente.
7. Comandos de administrador
Existen varios comandos para mantener monitorizado el sistema, veamos algunos de ellos. El comando fdisk permite ver y hacer cambios en las particiones del disco duro (un fdisk -l nos muestra todas las existentes, incluso pendrives o unidades usb). Con respecto a la memoria del PC o el consumo de recursos, disponemos del comando free -m, que muestra la memoria utilizada y libre, y de uptime, que nos muestra el tiempo sin reiniciar el equipo, los usuarios conectados a el, y la carga del sistema en el ltimo minuto, ltimos 5 minutos y ltimos 15 minutos.
# uptime 13:44:58 up 166 days, 10:07, 1 user, load average: 0.13, 0.15, 0.16
Volviendo a las unidades de disco, con df (disk free) se puede ver cuanto espacio tenemos disponible en nuestras unidades, mientras que con du se hace la operacin inversa (cuanto tenemos ocupado en la ruta actual). Con fsck podemos realizar chequeos para comprobar el estado de una particin.
8. Conversin de codificacin
He dejado un apartado slo para este gran comando. Se llama iconv y se trata de un conversor de codificaciones, tremendamente til para cuando tenemos problemas de formateado con diferentes codificaciones como utf8 y las diferentesisos. Veamos un ejemplo:
# cat texto.txt Buenos das! Podra hacerlo tambin? Muchas gracias! # cat texto.txt | iconv -f utf8 -t latin1 Buenos das! Podra hacerlo tambin? Muchas gracias!
9. Procesos y gestin
Otro de los clsicos de administracin, es mantener un sistema limpio de procesos que consuman demasiada memoria o tiempo de CPU. Con el comando ps aux, podremos ver todos los procesos que estn ejecutndose en la mquina. Cada proceso tiene un PID (nmero de proceso). Sabiendo este PID, podemos matar el proceso (terminar su ejecucin) que nos moleste haciendo un kill -9 1234, o simplemente con el comando pidof conocerlo. Tambin podemos utilizar killall firefox, para matar por el nombre del proceso en lugar del PID.
COMANDO
DESCRIPCIN
EJEMPLO
kill acepta parmetros... (man kill) por defecto se manda la seal -15 para que la muerte del proceso sea NO FORZADA, si an as se resiste prueba con -9: sudo kill -9 XXXX Otra cosilla: Existe killall que permite matar procesos por el nombre y no por el pid:
killall
du -hlsc *
Te da el tamao total de todas las carpetas de un dir, si lo queres du -hlsc * totalizado anda un nivel antes y cambia * porel nombre de la carpeta
Busqueda
En GNU/Linux, tenemos una serie de herramientas que nos permiten encontrar ficheros de una manera ms o menos rpida. El comando
Find: Por ejemplo, para buscar en todo el sistema un fichero que su nombre contenga la expresin doc podriamos
ms verstil para este propsito es find, aunque depende de lo que busquemos y de nuestra configuracin puede que no sea tan rpido como otros comandos.
Con esto encontrariamos en todo el sistema los ficheros cuyo nombre contengan la expresion doc. Pero nos sacaria por pantalla muchos errores, sobretodo proque habr muchos directorios en los que no podremos entrar porque no tendremos permiso. Podemos evitar que nos informe de Una vez tengamos esto y limpiar la salida, redirigiendo la actualizada la base de salida de error. Simplemente datos (es necesario hacerlo aadiriamos esto al final del antes de un locate o comando: 2>/dev/null (ver despues de instalar algo en captulo redirecciones).
el sistema, para tener la base de datos actualizada completamente) podremos utilizar el comando: locate <patron>. Siguiendo con el ejemplo anterior nos quedaria asi.
Y nos diria el directorio donde se encuentra el programa, o bien nos informaria de que el programa no se encuentra en el PATH.
Fuente: http://www.adslayuda.com/ Linux-busqueda.html SIrve para enviar mensajes locales de forma rapida a usuarios conectados / logeados en linux. Necesitaras el usuario y la terminar en la que esta conectado, para saberlo usa el comando who, te listada los usuarios y las terminales que estan usando (ttys). Una vez que inicias el comando write, puedes comenzar a escribir, cada vez que preciones (enter) la linea sera enviada al usuario y cuando desees terminar de enviar presiona Ctrl+D Puedes enviar tambien el contenido de un fichero de
^d ^d write usuario pts/0 Hola usuario Crtl+D Enviara al usuario Hola usuario. Nota. para enviar el contenido desde un fichero de texto usa: cat fichero.txt | write usuario pts/0
El comando que se pone en la primer Buscar o encontrar ficheros columna es un ejemplo de busqueda en linux por tamao. en todo el disco / para encontrar todos los ficheros mayores a 300mb Son procesos zombie del servidor http.
Un proceso zombie aparece cuando muere ese httpd proceso, pero aun tiene <defunct> pendiente alguna (consultar interaccion con el detalle con ps sistema operativo awfx) (generalmente algo de entrada/salida), por lo cual no puede terminar completamente.
Para eliminarlos: - Encuentra al proceso padre, y matalo con 'kill pid' o 'kill -9 pid'. En Linux es de gran ayuda para buscar al padre: ps awfx
modulos del kernes que se cargaran en el arranque del gksudo gedit /etc/modules sistema.
/etc/modules
Si deseas que se cargue algun servicio o comando antes de que entre a linux, en este ejemplo pongo unas lineas para cargar el lector de tarjetas / card reader mien
sudo tasksel
Tasksel is an installation system that is an integral part of the Debian installer; it is also included in Ubuntu. Tasksel groups software https://help.ubuntu.com/community/Ta packages by tasks and offers skselxcv an easy way to install all the packages needed for that task. It provides the same functionality as using conventional
gedit
who -u
who -u
who -b
who -b
ps -A | grep bash
ps -A | grep bash
ps -fu oracle
Muestra los procesos y los usuarios que los ejecutan en formato UNIX
ps -fu oracle
pstree
pstree
kill -9 numeroproceso
kill -9 745
ls -l
ls -l
sh nombreficherosh
sh prueba.sh
./nombrefichero
./mysql
Instala la aplicacin especificada (si se tiene conexin a Internet), slo disponible en distribuciones Debian apt-get install mysql-server
apt-get update
Actualiza la base de datos de paquetes apt-get update a actualizar o instalar a partir del fichero '/etc/apt/sources.list'. La base
Actualiza todos los paquetes instalados apt-get upgrade en el sistema a la ltima versin disponible apt-get upgrade
Comprueba la correcta instalacin de los paquetes descargados en apt-get install -f '/var/cache/apt/archives/', repitiendo la instalacin si fuese necesario o bajando algn paquete dependiente que no se haya descargado apt-get install -f
Elimina todos los paquetes (.deb) apt-get clean descargados (almacenados automticamente en '/var/cache/apt/archives/') apt-get clean
cp nombrefichero carpetadestino
cp * /usr/bin
mv nombrecarpeta carpetadestino
Mueve una carpeta/fichero al destino especificado, tambin sirve para renombrar ficheros/directorios mv /home/alonso /etc
Busca una aplicacin en la lista de aplicaciones a instalar (slo distribuciones Debian) ap-cache search mysql
whoami
whoami
pwd
ifconfig
ifconfig
iwconfig
Muestra informacin de las tarjetas de iwconfig w red inalmbrica (wireless) que haya
instaladas en el equipo
ping host
ping 192.168.1.5
ifconfig id_tarjeta up
ifconfig eth0 up
route
route
Aade como puerta de enlace (gateway) por defecto la indicada en ip_puerta_enlace route add default gw 192.168.1.1 eth0
passwd nombreusuario
passwd alonso
cat nombrefichero
cat /etc/mysql/my.cnf
vi /etc/mysql/my.cnf
pulse "ESCAPE", a continuacin ":wq" e INTRO para guardar los cambios y cerrar el fichero.
Ejecuta el comando especificado con sudo comando usuario los derechos del usuario especificado (pedir la contrasea de este usuario) sudo apt-get install mysql-server root
du nombredirectorio -h -s
du -sh /home Muestra el tamao de todos los subdirectorios del directorio especificado y el tamao total del mismo .
usuario (Bytes, MB, GB, etc). -s: no muestra el tamao de los subdirectorios, s lo tiene en cuenta para el tamao total de la carpeta
rm nombrefichero Borra / elimina el fichero especificado rm /home/alonso/hola.txt
Elimina uno o varios ficheros sin pedir rm -f -v confirmacin (-f), mostrando los ficheros que va eliminando (-v) rm -f -v fernando*
Elimina un fichero de forma segura (ya shred -u nombre_fichero no podr ser recuperado). El comando "rm" no elimina ficheros completamente, podran ser recuperados shred -u "fernando alonso"
Elimina una carpeta completa y todas sus subcarpetas: -f: no pide confirmacin al eliminar.
rm -f -r -v
-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
date
cal mes ao
cal 12 2005
man comando
man ifconfig
cd nombredirectorio
cd /usr/bin
mkdir nombredirectorio
Crea un directorio
mkdir prueba
rmdir nombredirectorio
rmdir prueba
rm -r nombredirectorio
rm -r prueba
ASCII English text directory symbolic link to 'enlace' executable ... file cdrom
find expresionbusqueda
cksum nombrefichero
cksum isoinfo
-h: muestra el resultado en df -h unidades entendibles por el usuario (M= Megabytes, G=Gigabytes, etc).
df . -h
df . -h
Muestra informacin del sistema: uname -a versin del kernel, tipo de procesador, uname -a ...
Muestra las tarjetas de red y la arp direccin IP de cada una as como la MAC (direccin fsica) arp
Asigna al fichero nombrearchivo chmod 777 nombrearchivo permisos del lectura, escritura y ejecucin para el propietario, grupo e invitado chmod 777 prueba
date --set=15:30
deluser nombreusuario
deluser alonso
discover ethernet
discover ethernet
echo $NOMBREVARIABLE
echo $HOSTNAME
env
env
fdisk -l
fdisk -l
Busca todos los ficheros que comiencen por "mysql" y los ELIMINA
free
free
fsck /dev/hda1
fsck /dev/hda1
groups
groups
groupadd nombregrupo
groupadd leerayuda
gzip fichero
gzip mysql
Comprime/Empaqueta los ficheros especificados en "ficheros_comprimir" tar -czvf /tmp/prueba.tar /root/* en el fichero "fichero_tar"
Descomprime el contenido del dispositivo de copia de seguridad "/dev/st0" en la ubicacin donde se ejecute el comando tar -czvf /dev/st0
head nombrefichero
head mysql
history
history
nombreservicio -k restart
httpd -k restart
ifdown eth0
ifdown eth0
ifup eth0
ifup eth0
netstat -a
netstat -a
type comando
type ifconfig
Monta la unidad de cdrom en modo mount -rt iso9660 /dev/hdc /cdrom slo lectura (r), con sistema de ficheros (t) 'iso9660', en el dispositivo mount -rt iso9660 /dev/hdc /cdrom '/dev/hdc', disponible en el directorio '/cdrom'
Monta la unidad de disquete, con mount -t msdos /dev/fd0 /floppy sistema de ficheros 'MS-DOS', en el dispositivo '/dev/fd0', disponible en el directorio '/floppy' mount -t msdos /dev/fd0 /floppy
umount /dispositivo
umount /cdrom
wc nombrefichero
wc prueba
Muestra informacin del dominio whois nombredominio especificado (fecha registro, fecha expiracin, dns, ...) whois ajpdsoft.com
Realiza control remoto al equipo con la IP especificada (deber tener instalado xvncviewer ip y en ejecucin vncserver). Permite el control remoto tanto con PCs con Linux como con PCs con Windows xvncviewer 192.168.1.3
which comando
which ls
Descarga el fichero nombrefichero de wget ftp://ftp.ajpdsoft.com/j (en este caso el ftp la direccin ftp direccionftp debe soportar conexiones annimas)
addgroup nombregrupo
addgroup accesored
Aade un nuevo usuario con el nombre nombreusuario perteneciente useradd -g root alonso al grupo nombregrupo
Muestra informacin de los procesos que se estn ejecutando, uso de CPU, top memoria, PID, ... con la caracterstica de que se va actualizando cada 5 segundos o tras pulsar la barra espaciadora top
tail nombrefichero
tail my.cnf
Reinicia el sistema en los minutos shutdown minutos 'mensaje' especificados, previamente enva un mensaje a todos los usuarios conectados con el texto: mensaje shutdown 15 'El sistema se reiniciar en 15 minutos, guarde su informacin'
shutdown -h now
shutdown -h now
shutdown -r now
shutdown -r now
Crea la imagen ISO-9660 del CD-ROM introducido, con el nombre 'fichero.iso' cat /dev/cdrom > /usr/fichero.iso en el directorio '/usr'
sqlplus /nolog
sqlplus /nolog
Ejecuta repetidamente el comando watch "comando" entre comillas y muestra el resultado en pantalla watch "du -s -h"
ifdown eth0
ifdown eth0
ifup eth0
ifup eth0
Muestra/Modifica el estado de los chkconfig servicios del sistema en cada nivel de chkconfig --list dbora arranque (runlevel)
modprobe
modprobe qla2300
Muestra estadsticas de uso de la vmstat memoria, cpu, lectuas/escrituras en disco, etc watch "vmstat -s -S: M"
free
lsmod
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
Muestra el estado del servicio especificado "nombre_servicio": stopped, se est ejecutando, ... service dsmserv status
service
service
export
nombrevariable=valor entorno
export $PATH=/home/oracle/bin
echo nombrevariable
echo $PATH
set
set
$ORACLE_HOME/bin/r Inicia el programa rman, para copias man target=/ de seguridad de Oracle en caliente
$ORACLE_HOME/bin/rman target=/
Solo algunos comandos bsicos de gran ayuda para gestin en linux. Fuente: www.ajpdsoft.com