Amada u odiada, criticada o defendida a muerte y casi motivo de míticos poderes sobrenaturales como los de “super vaca“, no hay lugar a dudas de que la terminal en el mundo de un linuxero siempre forma parte del eje central. Hoy pienso traerles la primera parte de una colección de algunos comandos que he ido recopilando y que a pesar de no formar parte de los cotidianos, siempre nos pueden resultar útiles.
Sistema
chage -E 2014-07-31 [usuario]
Establece la fecha de expiración a la cuenta de un usuario. Con -1 en vez de la fecha, se elimina la expiración.
lsblk
Muy útil herramienta que muestra tus dispositivos de almacenamiento de una manera muy ordenada y clara.
while true; do [comando]; sleep 30; done
Un sencillo ciclo que muestra el resultado de un comando cada 30 segundos. [Ctrl-C] para terminar.
service --status-all
Muestra el estado o estatus actual de cada servicio.
tree -d
Lista el directorio actual de manera gráfica con ASCII. Usa la opción –help para listar sus opciones, algunas muy útiles.
!:1
Imprime el primer argumento del último comando ejecutado. (!:2 el segundo, etc.)
getent passwd [usuario]
Obtener información del usuario indicado. Esto es igual a: “cat /etc/passwd | grep [usuario]
[Ctrl-l]
Este no es un comando, pero si una combinación de teclas muy efectiva que limpia la terminal, igual que el comando “clear”, pero sin dejar huella en el historial.
[Ctrl-w]
Combinación de teclas que de la línea de comandos, elimina la palabra previa al cursor. Muy útil si estas editando lineas previas.
cat /proc/cpuinfo | grep processor | wc -l
Muestra el número de CPUs.
shutdown -h 23:30 shutdown -r 180
El primero apaga el equipo a la hora indicada. El segundo reinicia el equipo en 180 minutos.
chpasswd usuarios.txt
Actualiza passwords de usuarios masivamente. En el fichero usuarios.txt se escriben haciendo uso del formato username:password, uno por linea.
Concatenar Comandos
cmd1 ; cmd2 ; cmd3
Los comandos se ejecutaran en orden secuencial, sin importar el resultado del comando previo.
cmd1 | cmd2
La salida (output) del cmd1 se convierte en la entrada (input) de cmd2.
cmd1 || cmd2
El cmd2 solo se ejecutará si el cmd1 termina sin éxito o en error.
cmd1 & cmd2
Tanto cmd1 como cmd2 se ejecutan simultáneamente.
cmd1 && cmd2
El cmd2 solo se ejecutara si el cmd1 termina con éxito.
Redes
lsof -i TCP:8080
Procesos que están usando el puerto 8080, ya sea locales o remotos.
wget --limit-rate=100k url/archivo.iso
Limita la velocidad de una descarga con wget, asi no se ocupa todo el ancho de banda.
Geek
sl
Este comando debe ser instalado desde el repositorio, y al ejecutarlo tendrás una increíble locomotora recorriendo tu consola.
Espero que lo disfruten. Suerte a todos y buen fin de semana.
Fuentes:
http://linuxtotal.com.mx/
Fundora Arena, Héctor, 200 Secretos de Linux.
Comentarios ( 9 )
otra opcion para monitrear la salida de un comando cada cierto tiempo es el watch -n [tiempo] [comando]
por ejemplo para monitorear la temperatura y otros datos importantes cada 1 segundo se puede usar
watch -n 1 acpi -V
Algunos aportes:
1.-
Esto:
while true; do [comando]; sleep 30; done
Se puede sustituir por esto:
watch -n 30 [comando]
2.-
El comando:
getent passwd [usuario]
No es equivalente a:
cat /etc/passwd | grep [usuario]
Pues getent lo que hace es consultar las bases de datos NSS del sistema, por lo que permite consultar información tanto local como remota, así que si tienes configurada una conexión con LDAP, Active Directory, DNS, NIS, etc., getent es capaz de obtener estos usuarios, grupos, equipos, etc. en el mismo formato en que se guardan las configuraciones locales en /etc/passwd, /etc/group, /etc/hosts,… a pesar de que estos usuarios, grupos o equipos no se encuentran especificados en los archivos locales.
3.-
El comando lsof también sirve para determinar los ficheros locales abiertos, por ejemplo:
lsof /home/dariemp
el ciclo cada 30s se puede cambiar con watch -n 30 [comando]
guerra de comandos!! ready, set, GO!!
Sobre este
while true; do [comando]; sleep 30; done
Es más fácil watch
watch -n 30 “comando”
listo
algún comando que me diga si algún programa o librería se encuentra instalado/a en el sistema??
Alguien sabe donde puedo encontrar los archivos que genere la instalación de una librería??
@Akiel
LOL
@N3T0
N3T0:
Existen muchas formas de saber lo que preguntas, en dependencia de la distro que utilices y el método utilizado para instalar la librería, por lo general utilizo estas:
1.
#locate [patrón de busqueda], Ej:
locate *.so | grep php
#lista todas las librerías que contengan en su nombre o directorio el patrón “php”
#primero debes actualizar la db con el comando “updatedb”
2.
#si utilizas Debian/Ubuntu/Nova etc puedes apoyarte en la herramienta dpkg, Ej:
dpkg -L apache2
#lista todos los directorios y ficheros creados en la instalación del paquete “apache2”
3.
#lo gestores de paquetes de las diferentes distros tienen opciones para listar los paquetes con sus diferentes estados, ejemplo de ello es la herramienta aptitude. Ej:
aptitude search [patron] #lista los paquetes que contienen un patrón de búsqueda en su nombre
aptitude show [paquete] #muestra información detallada del paquete(Paquete,Estado,Versión,Dependencias, etc)
existen muchas más y algunas muy interesantes utilizando mc y find
espero que te sea de utilidad
Para los que ejecutan un comando y se les olvido poner sudo delante, por ejemplo:
service apache2 restart && apt-get install php-apc php5-intl
para no tener que ponerlo de nuevo, o apretar la tecla arriba e ir al inicio de la linea y poner sudo, pueden ejecutar el comando que pusieron anteriormente de esta forma:
sudo !!
Asi se ejecuta lo mismo pero con sudo directamente.