martes, 12 de mayo de 2009

Comandos para Linux

Para los que empiezan y para los que van a empezar a usar linux, aqui dejo un par de comandos utiles. Siempre son indispensables y sobre todo cuando carecemos de un entorno grafico...

1-COMANDOS PARA COMPRIMIR, DESCOMPRIMIR Y EMPAQUETAR

tar -xvf: Para descomprimir archivos .tar por ejemplo " tar -xvf archivo.tar". también se puede usar tar -zxvf

tar -jxf: Sirve para descomprimir archivos tar.bz2 por ejemplo: "tar -zxvf archivo.tar.bz2".

tar -cvf: Este comando lo podemos usar para empaquetar unos archivos o directorios pero no los comprime. ejemplo tar -cvf archivo.tar /home/archivo

tar –tf: Con este comando podemos ver el contenido de un .tar Ejemplo: tar -tf /home/archivo.tar

bzip2: Descomprime archivos bz2 por ejemplo "bzip2 -d archivo.bz2"

gzip –d: Para descomprimir archivos .gzip Ejemplo: "archivo.tar.gz".

gzip -9: Con este comando y este parámetro podemos comprimir un archivo. Ejemplo: gzip -9 /home/archivo.tar

bzip2 –d: Descomprime archivos bz2. Ejemplo: bzip -d arhivo.tar.bz2

bzip: Comprime archivos en bzip2. Ejemplo: bzip archivo.tar

Zip, zipcloak, zipnote, zipsplit: Se utilizan para comprimir en .Zip Por ejemplo zip -r nombre_archivo_que_le_voy_a_dar.zip fichero_a_comprimir

unzip: Usamos para descomprimir los .zip ejemplo unzip archivo.zip

zoo: Comprime o descomprime según la opción que le pasemos, con -a (comprime) -x (descomprime) -L (muestra el contenido del archivo)


Entendamos una cosa, ya sea con bzip2 o gzip solo sirven para comprimir archivos y no así directorios, por eso lo mas común es combinar con tar que si lo hace pero a su vez tar no comprime, solo ampaqueta.bzip2 = descomprime archivos bz2 por ejemplo "bzip2 -d archivo.bz2"

Ejemplos prácticos
:

Comprimir: tar -c ficheros | bzip2 > archivo.tar.bz2
Descomprimir: bzip2 -dc archivo.tar.bz2 | tar -xv
Ver contenido: bzip2 -dc archivo.tar.bz2 | tar -t

Comprimir: zip archivo.zip ficheros
Descomprimir: unzip archivo.zip
Ver contenido: unzip -v archivo.zip
Comprimir: zoo a archivo.zoo ficheros
Descomprimir: zoo -x archivo.zoo
Ver contenido: zoo -L archivo.zoo
Ver contenido: zoo -v archivo.zoo

También se pueden descomprimir y comprimís archivos .rar como en Windows, pero como es de esperar estos software de descompresión o compresión no son gratis ya que son software utilitarios, una muestra se pueden bajar de http://rar-for-linux.softonic.com/linux

Comprimir: rar -a archivo.rar ficheros
Descomprimir: rar -x archivo.rar
Ver contenido: rar -l archivo.rar
Ver contenido: rar -v archivo.ra

2- COMANDOS DE INSTALACION

apt-get: apt son las siglas de Advanced Packaget Tool, con este comando podemos instalar la mayoría de los paquetes en nuestro debian y para ello solo debemos contar con una conexión a internet. Esto es sumamente practico ya que solo necesitamos un Shell y de ser posible estar como root.
El apt consulta a una lista de servidores que se encuentra en "/etc/apt/sources.list" En esta lista podemos encontrar las distintas direcciones de donde se bajaran los paquetes, en las mismas encontraremos *.deb http://http.us.debian.org/debian" o "deb-src http://http.us.debian.org/debian"
en el primer caso "deb" nos esta indicando el tipo de paquete, en este caso un deb (binario pre compilado) o un fuente deb-src en este caso son códigos originales mas el archivo de control debian .dsc.

apt-get update: actualiza la lista de paquetes, pero siempre de los lugares que se encuentren en la sources.list

apt-get upgrade: instala las nuevas versiones de los paquetes ya instalados, en caso que queramos solo actualizar la versión de un paquete determinado solo debemos poner "apt-get upgrade (nombre_del_paquete)"

apt-get install: con este comando se puede instalar paquetes, para ellos solo debemos tener nuestra sources.list actualizada y saber el nombre del paquete a instalar, luego la instrucción solo ser? a "apt-get install (nombre_del_paquete).

rpm –q: Nos informa si tenemos el paquete que le especifiquemos instalado y la distribución.

rpm –force: Fuerza la instalación en caso de usar --nodeps no mira las dependencias que faltan y produce igual la instalación.

rpm –i: Instala un paquete .rpm por ejemplo "rpm -i archivo.rpm".

rpm –e: Para desinstalar los archivos .rpm.

dpkg –i: Instala paquetes de Debian archivos.deb.

dpkg –r: Para desinstalar paquetes .deb.

./ : Se utiliza para ejecutar un archivo como por ejemplo un binario "./archivo.bin".

./configure:
Verifica que estén todos los archivos necesarios para el programa a instalar.

make: inicia la compilación del programa.

make menuconfig: inicia la compilación del menú de configuración. (ver)

make install: Termina la instalación del programa, en caso que estemos como usuarios tendríamos que agregar "su -c make install".

make uninstall: Desinstala el programa.

make clean: se usan por lo general para limpiar determinados paquetes compilados anterior mente.

make dep, make bzimage, make modules, make modeles install: son las sentencias que se usan por lo general para compilar los
los kernel en Linux.


3- COMANDOS QUE SACAN DE APUROS.

alsaconf: por medio de este comando podemos configurar el sonido en nuestros equipos, es muy intuitivo y fácil de usar, en caso de no tenerlo instalado solo debemos instalar "apt-get install alsa-base alsa-utils alsa-tools" con estos paquetes ya tendríamos que tener el sonido andando.

cat /var/log/messages | grep eth: Con el comando cat estoy pidiendo editar el archivo que se encuentra en /var/log/messages ahí especifico con | grep eth que quiero ver lo que se encuentra editado sobre eth en este caso nuestra placa de red.

dpkg-reconfigure: Solo lo podemos usar en nuestros debian o a fines para reconfigurar determinados paquetes instalados por ejemplo, si tenemos un problema con la placa de video ejecutamos "dpkg-reconfigure xserver-xorg", siempre que entendamos que en /etc/X11/xorg.conf están toda nuestra configuración de mouse, teclado y video.

ps –aux: Despliega todos los procesos del sistema, con nombre y tiempo de inicio

tail: Permite ver el final de un archivo, este comando es ir ya que los archivos de registros "logs" crecen constantemente tail --f /var/log/messages
También se puede especificar el numero de renglones que se deben observar: tail --f --line 35 /var/log/messages acá despliega las ultimas 35 líneas del archivo. La --f mantiene el archivo abierto para poder observarlo conforme se agreguen eventos


4- COMANDOS UTILES


adduser, useradd: Comando que sirve para crear un usuario, según la distribución de Linux se puede usar uno u otro comando. Por ejemplo
"adduser cacho" crea un usuario cacho.

aptitude: es un gestor de paquetes. Instala, elimina, actualiza y descarga automaticamente los paquetes que se le indiquen, escomo sus dependencias, y opcionalmente, recomendaciones y sugerencias (esto solo es aplicable en Debian). Podemos usarlo con los parámetros "install" "remove" "update" "upgrade" etc. Por ejemplo si quiero instalar el amsn pongo "aptitude install amsn". actualización de los paquetes instalados "aptitude dist-upgrade"

at: Este comando se utiliza para programar la ejecución de determinados comando en un tiempo determinado o a una hora determinada, por ejemplo
si tecleamos at 19:00:00 nos aparecerá un pront at> en este momento se ponen los comando que se van a ejecutar y luego se sale con Ctrl + D.
a las 19 hs se ejecutaran los comandos que se hallan cargado.

cat, less, more: Sirven para editar archivos, more por medio de la tecla enter nos permite ir viendo renglón a renglón y en todos los casos
podemos salir con "q" (quit). En caso de cat también lo podemos usar como un editor de texto por medio de la Shell simplemente poniendo
"cat > archivo.txt" nos pasara al primer renglón en el Shell para que empecemos a escribir luego solo salimos con Ctrl + D.

chmod: Por medio de este comando se le puede dar los distintos privilegios a determinados archivos como por ejemplo de lectura escritura o
ejecución, con la opción chmod 777 se le da a un archivo todos los privilegios de superusuario.

chown y chgrp: se utilizan para cambiar el usuario y grupo a los que pertenece un fichero. Ambos se usan de manera similar, por ejemplo: chown isaac p1.txt y chgrp www index.html. chown solo puede ser usado por el root, chgrp puede ser empleado por cualquier usuario para cambiar el grupo de un fichero que le pertenece a cualquier otro grupo a los que pertenece el usuario.

chroot: wuee sirve para de todo si alguien se anima a explicarlo que lo haga y me avise, por lo pronto diremos que sirve para tomar posicionamiento en el sistema o encarcelar o posicionar a un usuario.

clear: Limpia la pantalla del Shell.

crontab: Al igual que "at" especifica el tiempo al cual se ejecutaron programa "script", crontab tiene la siguiente forma: minutos horas días meses fin_de_semana nombre_de_usuario instrucción argumentos Por ejemplo con esta sentencia se ejecutara el programa oracle.pl cada media hora todos los días
( 30 * * * * root /usr/oracle.pl ) si desea ejecutaroracle.pl el d primero de cada mes, a las 3:01 AM (01 3 1 * * root /usr/oracle.pl)
Para especificar trabajos cron cada usuario mantiene un archivo en el directorio /var/spool/cron/, este directorio lo acceda cada usuario con el comando crontab -e
La ejecución de crontab se facilita debido al archivo /etc/crontab que especifica trabajos crontab por hora, día, semana y mes, de esta forma solo se requiere que el usuario coloque un archivo en los directorios correspondientes: /etc/cron.hourly | /etc/cron.daily | /etc/cron.weekly | /etc/cron.monthly

dir: lista los directorios como ls o vdir, los tres hacen los mismo.

dmesg: Muestra los posibles errores que se hallan producido durante el cargado de los demonios en el arranque del sistema operativo. Si
queremos redireccionarlo a un archivo solo debemos poner en la consola "dmesg > archivo.txt.

depmod –a: genera un archivo que contiene las dependencias de los mulos que son cargados para el "Kernel", esto es, es capaz de reconocer cuales mulos deben de ser cargados para que un tercero sea utilizado en el sistema.

free: Muestra estadísticas del uso de memoria tanto RAM, swap y cache. (el total, en uso, la libre, la cache y el buffer).

halt: apaga la el ordenador es similar a shutdown -h.

history: Muestra el historial de bash, estos se muestran con un numero al costado en caso que pongamos "!" y el numero automáticamente se
ejecuta esa sentencia que estaba en esa línea.

host: Determina la dirección IP de un "Host" , host -a despliega toda la información de DNS.

ifconfig: Por si solo muestra la Ip de la maquina donde se ejecuta así como su MAC, también se lo usa para configurar una interface de Red y ver el "status" de esa de la forma ifconfig , ejemplo: ifconfig eth0

info: Nos muestra información sobre determinado programa o comando por ejemplo "info gcc" nos mostrara información sobre el compilador gcc.

insmod: Habilita "LOADS" el modulo que se especifica en la línea, para que el Kernel sea capaz de utilizarlo. Ejemplo: insmod ip_alias.o .

kill: Este comando, mata cualquier proceso que se este corriendo, en caso que no sepamos el numero del proceso, podemos valernos del comando
top para saberlo, por ejemplo "kill 16776" este proceso es el amule en mi sistema, por otra parte si queremos matar un proceso dando un clic
del mouse, simplemente ejecutamos alt + F2 y cuando se abre el elector ponemos kill y damos enter y nos aparecerá como una calavera chiquita
simplemente la dirigimos con el mouse al proceso que queremos matar y hacemos clic.

man: Nos muestra el manual de ayuda de cualquier comando por ejemplo "man ls" nos mostrara la ayuda del comando ls, para salir de la ayuda
solo tenemos que teclear "q". Poniendo "man comando | col -b > comando.txt" nos genera un archivo con el nombre del comando que pusimos con
toda la ayuda del man en este caso nos tenedra un txt. Esto es muy practico para estudiar comandos. A modo de datos muchas cosa mas pueden
ver poniendo "man man" y verían la ayuda del man. =)

mcedit, vi, nano: Son dos potentes editores de texto en los cuales se pueden trabajar de manera muy practica, el vi era muy usado por los
programadores y por los primeros usuarios de Linux para editar texto, hoy en día el mcedit es de mas fácil manejo, aunque algunos enamorados
del los viejos tiempos siguen prefiriendo el vi. En forma más precaria se puede usar en cat como se explica mas arriba.

mkdir: Sirve para crear un directorio si ven en el man, encontraran algunas opciones para mi la mas relevante es -m que les permite darle
privilegios al archivo creado como un chmod por ejemplo "mkdir -m -rwx nombre_del_archivo".

mv (move): Traslada un fichero de un sitio a otro, o lo cambia de nombre. Por ejemplo mv archivo1.txt archivo2.txt cambia el nombre del fichero de archivo1.txt a archivo2.txt.
mv archivo.txt subdir/archivo.txt traslada el fichero del directorio actual al subdirectorio "subdir". En este caso el nombre del fichero no cambia, solo su ubicacion.

netselect: este comando sirve para investigar la velocidad de llegada y bajada de paquetes a un servidor, hace un ping obteniendo los
tiempos de respuesta como un traceo para ver los saltos por donde tiene que pasar para llegar a destino y el tiempo de respuesta, esto se
puede hacer con muchos servidores a la vez ejecutando "netselect www.server1.com www.server2.com www.server3.com" de esta manera nos arrojara
el server que mas rápida conectividad tiene, pero si queremos el detalle solo tenemos que ejecutar "netselect -vv (y_los_server_a_analizar)"
En caso de no tenerlo instalado solo tecleamos "apt-get install netselect"

netstat : Muestra todas la conexiones de Red originadas y recibidas por el "Host" Por ejemplo "netstat -a", "netstat -r" muestra la tabla de ruteo "routing table" del sistema, "netstat -i" muestra las estáticas de red de cada interface.

nice: Este comando especifica el número NI de cada proceso.

nslookup: Busca información en los servidores DNS, ejemplo: nslookup -query=mx telecom.com.ar, si no se especifican parámetros se entra en modo interactivo

ldconfig: Actualiza las libers utilizadas por el sistema, recomendable ejecutarlo cada vez que se instale un programa.

ln: Este comando crea un enlace. (ver)

lynx: Es un potente navegador de internet vía Shell, es muy usado por los hackers para navegar fuera de un entorno grafico al comienzo
cuesta acostumbrase pero desde ya es muy potente y los tiempos son muy rápidos.(ver)

locate: sirve para buscar archivos en el sistema

ls: Con este comando puedo listar para ver lo que se encuentra en los directorios, tiene muchas variantes que se pueden usar pero los mas
usadas son -a que muestra todo inclusive los archivos ocultos y la opción -l que muestra a quien pertenecen los archivos así como su creación
y que tipo de privilegio se tiene sobre ellos.

lsmod: Despliega la información referente a los mulos que este habilitados por el "kernel".

passwd: Sirve para asignar las password a los usuarios, en caso que solo pongamos el comando passwd estaríamos cambiando la password del root
o administrador, pero si queremos asignar o cambiar la password de algún usuario solo deberíamos teclear passwd usuario y nos pedirá para poner
el nuevo password.

ping: Manda paquetes ICMP de 64 bytes, a un host que se especifique, se usa para saber si las redes están vivas, como para sacar IP, este comando tiene muchos parámetros con lo cual se puede especificar el tema del paquete a enviar o la cantidad de paquete o los tiempos de intervalo, etc. recomiendo mirar el man.

ps: Este comando despliega dos parametros PRI y NI. El parametro PRI indica la prioridad actual del proceso, que es calculada por el sistema operativo, el valor de NI es tomado en cuenta cuando se determina el PRI. Por ejemplo "ps -l" (NI es llamado el numero gentil o "nice number" , este numero es especificado por el root o due del proceso y afecta el orden final del PRI, le da prioridad a los menos gentiles.Sus valores oscilan desde -20 menos gentil=mas prioridad y 20 mas gentil=menos prioridad)

pwd: Muestra el directorio sobre el que se encuentra uno posicionado.

reboot: Rebootea el equipo sin preguntar absolutamente nada.

reset: En caso que por algún motivo editemos un binario sin querer hacerlo y solo veamos código ilegible tenemos que teclear reset y todo
volverá a la normalidad.

rm: Sirve tanto para borrar archivos como documentos, en caso de estos ultimos basta con poner solo "rm nombre_documento" en caso de que no
queramos que nos pida confirmación bastara con poner la opción -f con la opción -i no pedirá confirmación, de hecho es posible cuando se
guardan archivos anteponerle esta opción para que nos pregunte en caso de querer borrar si realmente queremos hacerlo, para el caso de
directorios basta con usar la opción -r o -R y se borra el árbol de directorio entero a partir del directorio especificado, y sin limitaciones en cuanto a la profundidad de los arboles de directorios , con lo cual es mejor que sepamos que estamos haciendo

route: Manipula las rutas de las tablas de encaminamiento del IP del núcleo con la opción "route add" permite agregar tablas de ruteo de y hacia el "Host". Ejemplo: Para guiar toda la información de la red 209.17.5.161 netmask 255.255.255.240 v la interface eth0 Ponemos " route add -net 209.17.5.161 255.255.255.240 eth0 "
"route -n" despliega la tabla de ruteo del "Host" para que esto sea posible debe estar "IP Forwarding" ON en /etc/sysconfig/network , además el "kernel" debe de estar configurado para "IP Forwarding"

setterm: Por medio de este comando se puede configurar el protector de pantalla por medio del Shell, les recomiendo que vean el man.

sepmod –a: Genera un archivo en el que se encuentran las dependencias de los módulos que son cargados para el Kernel, esto es capaz de reconocer
cuales módulos deben de ser cargados para que un tercero sea utilizado en el sistema.
sleep: Sirve para ejecutar comandos o en un tiempo determinado así como instrucciones en segundo plano, por ejemplo: sleep 20 cat /etc/passwd mostrara el archivo passwd en 20 segundos

slocate: Actualiza la base de información que es utilizada para encontrar archivos con el comando locate .

stat: Despliega información detallada sobre el archivo especificado como: fechas de modificación y cambio, due del archivo..etc.

su: Con el comando su podemos cambiar de usuario por ejemplo si simplemente tecleamos su podemos cambiarnos de un usuario cualquiera al
administrador o root, pero para ello nos pedirá su password. En caso de cambiar a otro usuario solo pondríamos "su nombre-del-usuario".
También podemos ejecutar algunos programas con el privilegio de súper usuario o root por ejemplo "su -c mc" estaríamos ejecutando el mc como
root.

sudo: Ejecuta un comando como usuario raíz ("root"), significa "súper user do"(Súper usuario hacer). Vea el archivo /etc/sudoers/ para configuraciones relacionadas con este comando.

tcpdump: Es a mi entender uno de los mejores sniffer que tenemos, los unix lo traen por default y lo que realiza es poner la placa de red en modo promiscuo, capturando todo el trafico de la red, son muchísimos los parámetros que se pueden usar así como la combinación de los mismos, recomiendo leer el man antes de hacerlo, en caso de que quieran algo mas grafico pueden capturar paquetes con tcpdump y editarlo con Ethereal.

top: Con este comando podemos ver varios datos de nuestro sistema como los procesos que se están corriendo, recursos del CPU, memoria, etc.

touch: Crea un archivo vacio que luego puede ser editado y utilizado.

No hay comentarios: