===== Comandos en Linux =====
{{tag>comandos linux }}
==== Comandos de Paquetes ====
=== Gestión de Paquetes en Centos ===
== paquetes instalados ==
rpm -qa o también con yum list installed
== Para ver los ficheros que tiene instalado un determinado paquete ==
rpm -ql
=== Comandos de Paquete en Debian y derivados ===
* instala un paquete determinado apt-get install
* elimina un paqueteapt-get remove
Hay una opción para remover el paquete que elimina los ficheros de configuración, que normalmente resultan innecesarios una vez que hemos decidido no usar el paquete y sólo acaban por acumularse inútilmente apt-get --purge remove nombredepaquete
* Búscar un paquete apt-cache search
* descarga la lista de paquetes para actualizar el sistemaapt-get update
* descarga los paquetes marcados para actualizarapt-get dist-upgrade
* Poner en proxy en consola export http_proxy=http://10.140.136.2:3128
para dejarlo fijo ponerlo en /etc/profile
=== dpkg ===
* Listar paquetes instalados dpkg –l
* Buscar un paquete determinadodpkg –l | grep
* instalar un paquete dpkg --install nombredelpaquete.deb
* muestra todo el contenido de un paquete que ya esté instalado.dpkg -L
También puede ocurrir que quieras saber si existe algún paquete con un contenido determinado, por ejemplo porque un programa de instalación requiera una librería, o porque quieres descubrir en que paquete venía el programa "prog"; en ese caso usas dpkg -S prog
===== Comandos de Fecha Hora =====
Poner la fecha/hora en Centos
date mmddhhmiaaaa
* mm -> mes
* dd -> día
* hh -> hora
* mi -> minutos
* aaaa -> año
====== Comandos de Usuario ======
== Crear un usuario==
useradd -g nombre-del-grupo -m -d /home/nombre-de-usuario/ -k /directorio-archivos-por-defecto/ -p password-encriptado -s /bin/sh nombre-de-usuario
== Borrar usuario ==
userdel -r nombre_del_usuario
== Cambiar la password ==
passwd usuario
== Añadir un usuario a varios grupos ==
usermod -a -G lista_de_grupos_separados_por_comas usuario
== Cambiar el grupo por defecto ==
usermod -g grupo
== Quitar de un grupo ==
sudo deluser lo quita pero no borra ni el usuario ni al grupo
sudo deluser lo quita de todos los grupos
== lista de usuarios ==
cat /etc/passwd o getent passwd
== Alias ==
Con los alias podemos definir unos macros para ejecutar comandos repetitivos o grandes. Por ejemplo vamos a definir un alias para editar el fichero **hosts**
alias s='vi /etc/hosts/
Ahora cada vez que pulsemos **s** y le demos a la tecla **INTRO** nos ejecutara el alias que hemos definido
====== Comandos de Grupo ======
^Descripción^Comando^
|Crear un grupo|**groupadd nombre grupo**|
|Borrar un grupo|**groupdel nombre grupo**|
|añadir un usuario a un grupo|**usermod -a -G grupo usuario**|
|listado grupos|**cat /etc/group o getent group**|
====== comandos de carpetas ======
^Descripción ^Comando^
|Muestra el espacio libre del disco.|df|
|Muestra el espacio libre del sistema de ficheros |df -T -h |
|Muestra el total que ocupan los ficheros.|du -c files |
|Muestra el espacio que ocupa el directorio.|du -sh carpeta |
| Muestra el espacio total del directorio|du -ch | grep total |
|Ordena por tamaño Incluye archivos y directorios ocultos|du --max-depth=1 /home/ | sort -n -r|
|ordena por tamaño|du -s /home/* | sort -n -r|
==== comandos de búsqueda =====
locate
si son archivos recientes hay que actualizar el la base de datos de indice con updatedb
=== Buscar ficheros según su tamaño ===
sudo find / -type f -size +100M -print
Si queremos filtrar por varias condiciones usamos la opción prune
sudo find / -path /data1/ -prune -or -size +900M -print
===== monitorización del estado =====
=== Top ===
El comando **top** tiene varias hot keys
* t -> on/off información de resumen
* A -> ordena por consumo de recursos
* f -> entra en un modo interactivo de configuración
* z ->color on/off
=== Vmstat ===
Muestra un resumen acerca de los procesos, memoria, paginación, IO, system, cpu
=== w ===
muestra información de los usuarios actualmente conectados y sus procesos
=== uptime ===
hora, tiempo que lleva el equipo encendido, usuarios conectados, carga del sistema hace 1, 5 y 15 minutos
=== tiempo de arranque del sistema ===
systemd-analyze time
=== ps ===
ver los procesos en ejecución en el sistema
* ps -Al ->muestra información extra
=== free ===
Muestra la cantidad de memoria libre y usada
Si queremos ver en Linux información sobre el tipo de procesador, la cantidad de memoria etc
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/zoneinfo
cat /proc/mounts
==== Editar y visualizar ficheros ====
=== cat ===
cat > mete lo que escribamos en consola en un fichero. Útil para copiar cadenas largas con el ratón. Para salir CTRL+d, mientras todo lo que se escriba se guarda en ese fichero.
cat >> añade lo que escribamos en consola en ese fichero
==== Comandos de disco ====
=== Mount ===
Montar un disco mount /dev/hda1 /mnt/hda1 (el directorio donde se va a montar tiene que estar creado)
mount –a monta lo que no este montado del fichero etc/fstab
=== Formatear ===
mkfs.ext3 /dev/hda1 formatea el disco con el sistema ext3
====== comandos linux ======
^Comando ^Descripción^
| /usr/bin/gpasswd -a user group |Asigna cierto usuario a ese grupo.|
|chmod mode file | Cambia los permisos del fichero.|
|chown user:group file| Cambia el propietario del fichero y el grupo al cual pertenece.|
|gpasswd -d user group | Para quitar usuarios de un grupo. Lo mismo es editar /etc/group|
|groups username | Muestra los grupos a los cuales pertenece el usuario|
|id username | Muestra identificación del usuario i los grupos en los que está.|
|su | Te conviertes en root hasta que escribas exit.|
|su - | Pasas a ser root y ademas lee las variables de entorno de root|
| usermod -G group1,group2 user| Asigna grupos a un usuario.|
psaux se ven todos los procesos arrancados.
netstat –pant se ven los puertos y el nivel de escucha
fuser –v directorio_chroot. Si hay un root que apunta al directorio del chroot es que hay un chroot lanzado
otra forma de saber si hay un chroot lanzado es ls /proc/self/ -l(estando dentro del chroot)
ifconfig eth0 down apaga la red
ifconfig eth0 up la arranca
sh –v te muestra el debug
^Comando ^Descripción^
|Kill -9 PIDnumber |Mata el proceso numberPID |
|Kill -STOP numberPID |Para hasta nueva orden el proceso numberPID.|
|Kill -CONT NumberPID |Continua el proceso numberPID parado anteriormente|
|killall processname |Mata el proceso con ese nombre. |
|ps aux | Lista de los programas que se estan ejecutando actualmente con su PID (Process IDentifier). |
|top | Muestra los procesos en ejecución|
|xkill |Mata en X-windows al proceso que señalemos con el raton. Es lo mismo que kill pero para entono gráfico. Hotkey: Ctrl+Alt+ESC|
|alias ls='ls --color=tty' |Hace que al hacer ls se vea en color solo si la salida va a la consola (no si va a un fichero) se puede meter en ~/.bash_profile para que lo haga siempre.|
|dd if=/dev/fd0 of=diskimagename |Crea una imagen del disco con el nombre imagendedisco.|
|dd if=diskimagename of=/dev/fd0 |Graba el archivo imagen a un disco.|
|echo $PATH|Muestra el path actual.|
|emacs filename|Edita el fichero Ctrl+X Ctrl+S (guarda), Ctrl+X Ctrl+C (sale).|
|find /directory -name 'filename'|Busca a partir de directorio el fichero especificado.|
|for x in $(ls /directory) do echo $x done |Para hacer un bucle en un script bash de los ficheros de un directorio.|
|grep|Busca una cadena en un fichero. |
|cat fichero.txt | grep textoabuscar|
|joe filename|Editor de texto.|
|less fichero |Como more pero mejor, permite ir hacia arriba tambien y no carga el fichero de golpe.|
|ln -s /mnt/cdrom/Mame/roms /usr/games/lib/xmame|Crea un enlace blando al directorio roms del cdrom como si fuera /usr/games/lib/xmame (xmame no debe existir)|
|mke2fs /dev/hda2|Formatea la segunda partición del primer disco duro en formato Linux (ext2).|
|more filename|Muestra el fichero por pantalla |
|mount /dev/hda1 /mnt/c -t vfat|Monta una partición fat32|
|pico filename|Editor muy sencillo de texto que ocupa poca memoria.|
|rm -rf directory|Borra el directorio con todo lo que tenga dentro sin preguntar.|
|sed|Cambia una cadena por otra en un fichero (se suele usar en redirecciones.|
|sed 's/stringA/StringB/' filename > newfilename|Cambia la primera ocurrencia de cadena en el fichero por otra cadena y lo mete en nuevofichero.|
|sed 's/stringA/stringB/g' filename > newfilename|Cambia todas las ocurrencias de cadena en el fichero por otra cadena y lo mete en nuevofichero.|
|tail -f filename|Muestra las últimas lineas del fichero (ideal para ver en tiempo real modificaciones en ficheros log).|
|tar -zcvf filename.tar.gz directory|Comprime en un tarball el directorio y todos los subdirectorios en filename.tar.gz|
|tar -zxvf filename.tar.gz|Desempaquetar un archivo .tar.gz|
|wc filename|Cuenta las lineas, palabras, bytes del fichero.|
|whereis filename|Busca un archivo y te dice donde está usando la base de datos interna, que debe estar actualizada. updatedb la actualiza.|
|zip -r targetfilename directory|Comprime en ficherodestino.zip el directorio y todas sus carpetas.|
|zip -r zipfilenameyouwant.zip desiredirectoryname|Comprime usando zip el directorio desiredirectoryname y todos los subdirectorios.|
|convert -resize 640x480 original.jpg modified.jpg|Convierte la imagen a 640x480|
|mplayer videoyouwant.avi -vo aa|Reproduce el video en arte ascii.|
|/etc/network/interfaces|Edita este fichero para cambiar la IP en Debian|
|ifconfig|Te dice tu dirección IP aunque sirve tambien para configurar la tarjeta de red.|
|ncftp|Un cliente de ftp mejorado para la consola|
|netstat -lnp --ip|Si lo tecleas siendo root, mostrará los demonios que se estan ejecutando ahora.|
|scp root@192.168.0.201:/boot/vmlinux .|Copia el fichero vmlinux remotamente desde el host 192.168.0.201 via ssh al diretorio actual|
|wget -c --passive-ftp ftp://filename|Baja el archivo o lo continua bajando usando el modo pasivo del FTP.|
|wget -c http://filename|Baja el archivo solicitado o lo continua si se ha cortado la conexión.|
|wget -rl 4 http://domainname|Baja toda la web y los ficheros que contenga hasta un nivel 4.|
|mpg123 -q /directory/*.mp3 &|Toca en background desde la consola la musica en .mp3 del directorio.|
|/sbin/hdparm -d 1 /dev/hda|Activa el bit using_dma poniendolo a 1 para activar el acceso Ultra-DMA al disco duro.|
|/sbin/hdparm -tT /dev/hda|Hace un test en la lectura del dispositivo.|
|/sbin/hdparm /dev/hda|Muestra los parametros de configuracion del disco duro.|
|bash|Extension del sh.|
|bc|Es una calculadora en modo texto.|
|chs|C shell.|
|dpkg -i package.deb|Instala un paquete .deb (Debian).|
|if [ -x /path/to/dnetc ]; then echo "Starting Distributed.net Client..." /path/to/dnetc -quiet fi |El fichero /etc/rc.d/rc.local es similar al autoexec.bat de ms-dos y por ejemplo podemos poner estas lineas. Si no se está ejecutando arranca dnetc.|
|ksh|Korn shell, combina sh y csh.|
|last|Lista el historial de accessos al sistema (lee /var/log/wtmp).|
|trace elfexecutable|para ver un ejecutable elf (buena herramienta para hackear)|
|nohup scriptname &|Ejecuta scriptname en segundo plano y sigue ejecutandose incluso si cierras la ventana del interprete de comandos.|
|pdksh|Extensión de ksh.|
|rpm -e rpmname | Desinstala el paquete rpm instalado previamente (el rpmname debe ser obtenido de rpm -qa y van sin el .rpm) |
|rpm -qpl package.rpm | Para ver lo que hay en el paquete.|
|rpm -Uvh package.rpm | Actualiza un paquete ya instalado o lo instala.|
|setterm -blank 0 | Desactiva el salvapantallas negro ( que esta activado por defecto), puedes añadirlo en /etc/rc.local|
|sh | Cambia al bash shell (estandar de Unix).|
|shutdown -h now |Apaga el equipo. Es lo mismo que halt.|
|shutdown -r now |Reinicia el equipo. Es lo mismo que reboot.|
|strace -s 200 executable |Intercepta las llamadas al sistema que son recibidas por un proceso -s 200 es para cadenas de tamaño 200 (buena herramienta para hackear)|
|rpm -qi rpmname 1Consulta sobre la versión, descripción completa y más información del paquete. |
|at 7:00 cdplayd | Programa el computador para hacer sonar el cd a las 7:00. |
|atq | Lista las tareas automáticas programadas.|
|atrm 8 |Elimina la tarea número 8. |
|date | Muestra la fecha y hora del sistema.|
|date -s "04/25/05" +"%D" | Cambia la fecha del sistema al 25 de Abril del 2005 .|
|date -s "15:00:00" +"%T" | Cambia la hora del sistema a las 15:00.|
|Edit this file to memorize a job: etc/crontab | Ej: 00 00 20 10 * echo 'Ha llegado el invierno' >/dev/null (esto ùltimo es para que no se envie por mail al root). Los siguientes directorios son para meter programas a ejecutar cada cierto tiempo (copiarlos dentro) /etc/cron.hourly/ /etc/cron.daily/ |
|rdate -p ntp.nasa.gov | Muestra la hora de ese servidor.|
|rdate -s ntp.nasa.gov | Sincroniza nuestra hora con la del servidor.|
|time application | Ejecuta el programa y al finalizar muestra el tiempo que ha estado en ejecución.|
|uptime |Muestra el tiempo que lleva el ordenador en marcha.|
| setxkbmap | Por si no funcionan las teclas con AltGr en modo X.|
|switchdesk desktoptype | Cambia el escritorio por defecto al tipo que sea (gnome, kde, wmaker, etc...).|
|man | da ayuda sobre los comandos|
|ls | como el dir del DOS |
|cd |para cambiar de directorio|
|cat |para visualizar ficheros|
|cp origen destino | copia ficheros|
|mv origen destino |mueve ficheros |
|pwd | indica el directorio donde te encuentras|
|rm fichero | borra un fichero |
|mkdir directorio | crea un directorio|
|history |muestra el historial de comandos utilizados |
|passwd |cambia la paswword |
|dmesg |muestra los mensajes desde que arranca linux |
|tar xjfv archivo.bz2 |para descomprimir ficheros bz2 |
|tar xzfv archivo.bz | descomprimir ficheros bz|
|tar -cjvf archdestino.bz2 archorigen: |comprimir el fichero origen |
|less |permite ver un fichero |
|su usuario |para cambiar de usuario|
|ln -s ORIGEN DESTINO |Crea enlaces simbólicos |
|startx |Inicia el entorno X |
| twm | Lanza las X sin aceleración en el modo framebuffer |
|find -name \archivo | Busca el archivo|
|lsmod |Lista los modulos cargados |
|mount |Monta dispositivos |
|umount |Desmonta dispositivos|
|kudzu | Detecta y configura los dispositivos del equipo |
|lspci | Listado de todo los instalado en el equipo|
|xkill |Igual que el kill pero para las X |
|tail -f fichero | Muestra las últimas líneas de un fichero |
=== Rsync ===
rsync –av la a es copia recursiva y la v muestra lo que esta haciendo
–exlude=
rsync –delete borra los ficheros que ya no están en el original
=== Variables ===
Para preguntar por una variable de entorno echo $nombre_variable
Para definir variables export
==== Listado gráfico ====
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
==== Búsqueda en los mensajes del sistema====
dmesg | grep cadenaabuscar
===== Referencias =====
* http://www.linuxcentro.net/linux/staticpages/index.php?page=UsuariosGruposLinux
* http://rm-rf.es/categoria/comandos-unix/
* Bulma selección de trucos y ayudas de Linux para Novatos
* http://www.sorgonet.com/linux/commands/
* http://www.debianuniverse.com/index.php
* http://yoseman.blogspot.com/2006/10/establecer-prioridades-entre.html
* http://www.thegeekstuff.com/2010/10/dmesg-command-examples/
===== Solución Problemas =====
si un linux no arranca para instalarlo ejecutar el instalador con la opción nommconf
En las placas intel pulsar CTRL+I para el munu Raid
{{tag>comandos linux paquetes rpm apt}}