COMANDOS LINUX ~~~~~~~~~~~~~~ ls : Muestra el listado de ficheros (equivalente a DIR en W1nd0ws) $ls -alp (alias $ll) whatis ls : Te mostrará qué es el comando "ls" pwd : Muestra el directorio en el que nos encontramos clear : Limpia la pantalla logname : Muestra el nombre de usuario con el que nos hemos logueado whoami : muestra el usuario con el que actualmente estamos trabajando mkdir : Crea un directorio cd : Entra en un directorio cat : Muestra el contenido de un fichero mv : Renombra/mueve un fichero rm -rf : Borra un fichero (-r recursivamente. -f Sin preguntar) grep cadena : Filtra el resultado buscando la cadena "cadena" Ej: $ cat /etc/passwd | grep Paola (Filtra el contenido del fichero passwd y muestra las lineas que contengan la palabra "Paola") apropos : Busca un comando relacionado al tema que asignemos Ej: $ apropos formatear (muestra los posibles comandos que contengan cumplan esa función) cal : Muestra un calendario useradd : Agregar un usuario userdel : Eliminar un usuario passwd : Cambia la contraseña de un usuario chmod : Cambia los permisos de acceso de un fichero chown : Cambia el usuario de un fichero chage : Cambia el tiempo de vida de la cuenta de un usuario gid : Muestra la ID de un grupo groups : Muestra los grupos al que pertenece el usuario history : Muestra los últimos 1000 comandos usados cp a1 dest1 : Copia "a1" hacia "dest1" touch : Crea un fichero vacío su : Permite cambiar de usuario ifconfig eth0 172.16.1.2 up : Agrega una IP a la interfaz de Red (NIC) eth0 ifconfig eth0:1 172.16.1.3 up : Agrega otra IP a la misma NIC eth0 xxd file : Convierte un fichero a hexadecimal xxd -r file : Convierte file de hexadecimal a su estado binario man comando : Muestra el manual para el comando especificado Ej: $ man ls (Muestra un manual con las opciones de "ls") mc : Midnight commander ps -ef : Muestra los procesos actualmente activos Ej: $ ps -ef | grep Juan (Muestra los procesos que están activados por Juan) pmap : Muestra el mapa de memoria de un proceso. kill : Termina un proceso xkill : Termina un proceso disparando a su interfaz gráfica. ln -s /1.pl Link: Crea un enlace estático "Link" que llamará a /1.pl -[ find ]--------------------------------------------------------------------------- find / -type f -name nombre : Busca el archivo "nombre" empezando desde /. find -mtime -1 -type f -print : Busca archivos creados/modificados hace 1 día. find / -type f -perms -4000 : Busca ese archivos que tengan el bit SUID activado (esto es importante porque los archivos con el bit SUID activado pueden ser explotados para escalar privilegios si tienen fallas como buffer overflows, etc.) find / | xargs grep XX : Busca en el contenido de todos los archivos en / y filtra para sólo mostrar las lineas que contengan XX find -gid "1000" -exec chown 500:500 '{}' \; : Cambia propietario de 1000 a 500 $ find / -mtime -3 -name \.\* <- Search files created on the last 3 days in your home (~) $ find / -mmin 14 -name \.\* <- Search files created on the last 14 minutes in your home (~) $ find / -mtime -3 -name \.\* -printf %f %u %g \\n <- .. and prints owner user (%u) and group (%g) $ find / -mtime -3 -name \.\* -printf %f" => "%u:%g\\n .data => root .rodata.str1.1 => root .rodata => root $ find ~ -mtime -3 -name \.\* -exec "ls -lh" {} \; <- Mostrar un "ls -lh" de los archivos encontrados $ find ~/oggs/ -iname \*.mp3 -exec "ls -lh" {} \; $ find . -name up\* <- files that start with up $ find ~ -type f \( -name \*.php -fprint php_files , -name \*.js -fprint javascript_files \) <- search .php & .js files -nouser file is owned by someone no longer listed in /etc/passwd -nogroup the group the file belongs to is no longer listed in /etc/groups -owner file is owned by specified user. $ find / -mtime -3 -name \.\* -nogroup -printf %f" => "%u:%g\\n /root/.mc /root/.elinks /root/.ssh /root/.viminfo /root/.bash_history ------------------------------------------------------------------------------------ cc p.c -o p : Compila un programa "p" escrito en lenguaje C gcc p.c -o p ldd : Muestra las dependencias de un binario (Ej: $ldd smbd) diff unf otrof : Busca diferencias entre 2 ficheros last : Lista los últimos usuarios logueados lastlog : Muestra información de fecha de logueo de todos los usuarios (/var/log/lastlog) dd if=boot.img of=/dev/fd0 : Crear un diskette a partir de una imagen.img (Equivalente a RAWRITE en Ms. Windows) [ more: http://www.linuxquestions.org/questions/showthread.php?t=362506 ] cat fic2-* > fic1.rpm : Concatena fic2-* con fic1.rpm Descomprimir bz2 : bz2 -d *.bz2 Descomprimir cpio : cpio -ivdF ship.db.cpio Reemplazar un texto en todos los *.c: $ perl -p -i -e 's/FromThis/ToThis/g' $(find . -name '*.c') rpm -Fvh : Actualiza sólo los RPM's que necesita actualizar rpm -Va : Ver info de los RPM's (Bueno para tomar un Snapshot para verificar la integridad de los RPM's instalados) fuser -n tcp 1241 : Saco el número de proceso del servicio que está usando el puerto 1241 (Ejm:3270) ls -l /proc/3270/exe --------- BZIP2 --------- $tar xjvf archive.tar.bz2 : Descomprime archivo.tar.bz2 $tar tjvf archive.tar.bz2 : Muestra el contenido del archivo.tar.bz2 $ cat archive.tar.bz2 | bzip2 -d | tar tvf - | less : Muestra el listado de ficheros $ cat archive.tar.bz2 | bzip2 -d | tar xvf - : Extrae los ficheros $rpmbuild -tb firehol-XX-YY.tar.bz2 : Construir un .rpm a partir de un .tar.bz2 Copiar archivos remotamente via ssh manteniendo "propietarios" y permisos. $tar -cpf- /opt/apache2/htdocs | (ssh root@205.105.150.215 "tar -xvf- -C /") $ tac : cat reverso (última linea primero) --------- RPM --------- #rpm -ivh --nodeps file.rpm : No verifica dependencias #rpm -ivh --force file.rpm : No verifica dependencias #rpm -qi xsnow : Muestra informacion del paquete instalado #rpm -qip crontabs-1.10-5.noarch.rpm : Muestra información de eso #rpm -qlp crontabs-1.10-5.noarch.rpm : Muestra los ficheros que instala #rpm -ql package : Muestra los ficheros que son propiedad de ese paquete -qlc (Muestra solo ficheros de configuracion) -qld (documentacion) #rpm -qf /usr/X11R6/bin/xsnow : Muestra el RPM propietario de ese fichero #rpm -qdf /usr/bin/free : Shows documentation of the package #rpm -qpR xsnow-1.41-1.i386.rpm : Muestra dependencias del paquete (R) "p" (query al fichero), sin "p" es un query a la BD. #rpm --checksig pack.rpm : Revisa la integridad del paquete (Si sale NOT OK puede ser q se necesite la "public key" del autor) #rpm -Va : Verifica modificaciones en los paquetes ----------------- RPM src (fuentes) ----------------- #rpmbuild --rebuild programa.src.rpm Instalar el .rpm generado en "/usr/src/redhat/RPMS/arch/program-ver.arch.rpm" ls -id /usr/local: Muestra el nodo a donde apunta ese directorio ls -dl /usr/local: Muestra el numero de veces que ese nodo es referenciado mkdir -p a/b/c/d: Crea rapidamente esos directorios ln fichero enlace: Crea un enlace duro (Apunta al nodo) (Debe ser en el mismo) _filesystem_) ln -s fichero enlace: Crea un enlace simbólico (Apunta al fichero) (El fichero y el enlace pueden estar en _filesystems_ distintos) grep file[12] /dirList: Muestra lineas con "file1" y/o "file2" grep file[^12] /dirList: Muestra lineas que NO contengan file1 o file2 grep ^#: Muestra las lineas que tengan "#" al inicio grep '^Inicio*Fin$' $ PATH=$PATH:~/bin : Agrega al PATH "/home/usuario/bin" $ export PATH ó (En /bin/bash)$ export PATH=$PATH:~/bin (En /bin/tcsh)% setenv PATH $ which ls : Chekea si "ls" está en el PATH -a (Muestra todas las instancias) $ whereis ls: Busca tambien en las _fuentes_ (sources) # find . -type f -perm +6000 -xdev -exec ls {} \; Busca ficheros SUID/SGID y los muestra con "ls". $ find /usr/share/doc -iname readme\*: Búsqueda no sensitiva a Mayúsculas $ find /etc -iregex '^*xt.$': Usando expresiones regulares -type b(block device), c(character device), d(dir), p(named pipe), f(regular file), l(symbolic link), s(socket) -mtime -1 (Ficheros Modificados en las _últimas_ 24 hrs) -mtime +0 (F. modificados _antes_ del actual periodo de 24hrs) -daystart -mtime +0 (F. modificados _dias antes_) -type f -size -50k (Busq. por tamaño) -exec ls -l '{}' ';' (Ejecuta _ls -l_ con el resultado de la busq.) $ locate bin/ls : Busca en base an una BD generada por "updatedb" $ slocate : "Secure locate" Busqueda restringida en base a permisos de usuarios ^Z , $bg : Envia el proceso ejecutado en BASH a "background" (igual q '&') $ jobs -l: Muestra las aplicaciones corriendo en "background" (El q tiene [+] puede traerse a forground con el comando $ fg) $ kill -s SIGSTOP 16224 : Detiene el proceso 16224 (SIGINT [kill], SIGSTOP [stop], SIGCONT [continue]) Por defecto KILL envia la señal SIGTERM En caso extremo se envia SIGKILL, ningun proceso puede ignorar SIGKILL $ ps ax: Musetra procesos. a(todos) x(Solo los tuyos) --forest (muestra la jerarquia del proceso) $ nice -n 10 oggenc /tmp/song.wav : Vuelve muy _nice_ ese proceso (Otros procesos tendran cpu si lo requieren, y este se los otorga muy nice) $ renice 10 641: Vuelve mas _nice_ el proceso 641 ya ejecutado Text Processing --------------- echo : Muestra una linea de texto cat : Concatena ficheros e imprime en la salida estándar tac : Concatena ficheros e imprime en reverso sort : Ordena lineas de un fichero de texto uniq : Elimina lineas duplicadas de un fichero ordenado wc : Imprime el número de bytes, palabras y lineas de un fichero head : Muestra las primeras lineas de un fichero tail : Muestra las últimas lineas de un fichero expand : Convierte tabs a espacios unexpand : Convierte espacios a tabs cut : Corta secciones por cada linea de un fichero nl : Agrega un número de linea a cada linea de entrada pr : Rompe ficheros en múltiples páginas de salida (Impresión) tr : Traduce caracteres awk : *Lenguaje de procesamiento y buscador de patrones* sed : *stream editor* usado para transformar texto od : Transforma la entrada a octal o hexa split: Parte ficheros grandes en pequeños mas manejables --[ Tip ]--[ Partir en varios de 1.44MB ]-------- $ split -b 1445640 BIGFILE.tgz piece_file $ cat piece_file.* > BIGFILE.tgz -------------------------------------------------- fmt : Reformatea párrafos de tal forma que se realiza ajuste de linea al margen (Ya no es tan útil con los editores de texto de hoy [ej.: vi]) paste : Toma 2+ ficheros de entrada y los concatena join : Como "paste" pero usa un campo (usualmente el primero) para combinar lineas tee : Imprime la entrada hacia pantalla y 1 fichero (Util para logs) $ uname -i(hw platform) -p(procesor) -a (Todo) chmod : Cambia los permisos de acceso de un fichero umask : Define que permisos tendrán los ficheros creados chgrp : Cambia el grupo propietario de un fichero chown : Cambia el propietario (usuario y grupo) de un fichero $ set +x : x(Imprime cada comando a correr) -x $ env PAGER=cat man man: Pone cat _temporalmente 1 vez_ en la var.PAGER y luego ejecuta "man man" # dmesg : Muestra una copia del log del Kernel mientras el Kernel estuvo cargando y probando dispositivos de hardware # chkconfig : Actualiza y muestra información de inicio de los servicios del sistema # ntsysv : Interface simple para configurar *runlevels* (chkconfig gráfico) ------------------more commands--------------------------------- #ip link show: Identifica las interfaces de red #ip addr show: Muestra las interfaces de red y sus IPs #ip route show: Encuentra las redes IP detras de cada Interface #route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.1.250 #lsof : list open files $strace /bin/ls <- Show *system calls* generated by /bin/ls $strace -eopen /bin/ls <- Show which *files* open /bin/ls mount -t iso9660 /dev/cdrom /mnt/mnt for A in `ls -1`; do echo $A;modprobe $A;done <- Pseudo comando ------------------NAME------------------------------------------ hostname - show or set the system's host name domainname - show or set the system's NIS/YP domain name dnsdomainname - show the system's DNS domain name nisdomainname - show or set system's NIS/YP domain name ypdomainname - show or set the system's NIS/YP domain name nodename - show or set the system's DECnet node name gethostip www.google.com - Get www.google.com IP HERRAMIENTAS : ~~~~~~~~~~~~~ vi : Editor de texto emacs : Editor de texto super potente gdb : Desensamblador GNU (excelente ;) ) ================================================================================= www.hackcraft.com