it-swarm-es.com

Características ocultas de Linux

64
Chris Bunch

Para que la pelota funcione, creo que pantalla es esencial:

Cuando se llama a la pantalla, crea una sola ventana con un Shell (o el comando especificado) y luego se sale de su camino para que pueda usar el programa como lo haría normalmente. Luego, en cualquier momento, puede crear nuevas ventanas (pantalla completa) con otros programas (incluyendo más shells), cerrar la ventana actual, ver una lista de las ventanas activas, activar y desactivar el registro de salida, copiar texto entre ventanas, ver el historial de desplazamiento hacia atrás, alternar entre ventanas, etc. Todas las ventanas ejecutan sus programas completamente independientes entre sí. Los programas continúan ejecutándose cuando su ventana no está visible actualmente e incluso cuando la sesión de pantalla completa se separa del terminal de usuarios.

52
Chris Bunch

Tal vez no los uso todos los días, pero los uso con frecuencia:

  • strace Mira qué archivos son cargados por el proceso.
  • htop Un mejor top.
  • mtr ping + traceroute combinado
  • lynx / enlaces / w3m En caso de que necesite navegar por la consola
  • ettercap Gran sniffer de red (lo prefiero sobre wireshark)
  • scriptingbash Todos los administradores * nix deben saber esto.
  • Un lenguaje de programación. Para las cosas más complejas, manténgase alejado de los scripts de bash y use algo como python/Perl/Ruby/tcl/... (uso LISP)
  • Midnight Commander puede ser genial para las personas a las que les gustó Norton Commander.
  • irssi Nunca se sabe cuándo solo quieres ir a preguntar algo en IRC.
  • wget / curl Descargar cosas desde la línea de comandos.
  • scp Copiar cosas sobre ssh
  • lftp / ncftp Buenos clientes de consola (programables) de FTP.
  • iotop Comprueba lo que estresa a tus discos
  • nmap buen escáner de puertos
45
Gert M

Me sorprendió descubrir que puede ejecutar aplicaciones GUI remotas a través de SSH, utilizando el parámetro "-X". Por ejemplo:

# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &

La ventana gedit aparece en mi máquina local, editando el archivo "my.cnf" en el servidor.

Supongo que esto solo funciona si su máquina cliente tiene un entorno X, en otras palabras, no en Windows. ¡Pero funciona muy bien en mi Mac!

33
Matt Solnit

a menudo se ignora lsof, es una herramienta muy útil. lsof le permite ver una lista de cada archivo abierto en el sistema, quién/qué lo está usando, etc.

Por ejemplo:

[email protected]:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
[email protected]:~ # lsof | grep /mnt/hardy
bash       5966       root  cwd       DIR      253,2     1024          2 /mnt/hardy
[email protected]:~ #

Ahora veo que he iniciado sesión en un Shell en otra terminal, y/mnt/hardy es mi directorio de trabajo actual. Entonces puedo matar ese Shell o ir a la otra terminal y salir de ese directorio para que pueda ser desmontado.

Ese es realmente un ejemplo trivial, también es muy útil para limpiar la infestación ocasional de 'bot'. Las opciones son extensas, vea man lsof para más información.

33
Tim Post

Para cambiar al último directorio en el que estuvo:

cd -
31
dkaylor

La pila de red puede dejarse en ejecución después de una detención del sistema. No sé si esto es actual con la serie 2.6.x de núcleos, pero en versiones anteriores, puede configurar el firewall/enrutamiento, luego detener el sistema sin apagado, dejando solo la red pila corriendo. Esto le permitiría crear un cortafuegos barato (aunque estático) que "no puede ser pirateado", porque no hay nada a pirateo, ya que no hay programas o servicios, solo la parte de la pila de red del kernel pasando paquetes de ida y vuelta ...

26
Avery Payne

Me gusta "localizar", una forma mucho más fácil de encontrar archivos que el retorcido "encontrar. -Name xxxx -print". Tenga en cuenta que debe usar el comando updatedb con él para actualizar el índice de su archivo; Vea las páginas del manual para más detalles.

24
gareth_bowles

Encuentro que "ngrep" es realmente útil para depurar el código de red en servidores remotos sin tener que reparar archivos tcpdump:

ngrep -d any -W byline port 80

por ejemplo, le mostrará solicitudes y respuestas HTTP en vivo.

Otra cosa que he encontrado útil con frecuencia es el interruptor "-e" a strace:

strace -p <pid> -e trace=open

mostrará todas las llamadas al sistema open () para un pid dado, y

strace -p <pid> -e trace=\!rt_sigprocmask

excluirá todas las llamadas a rt_sigprocmask () de la salida (útil para depurar el código RoR, que parece hacer una gran cantidad de esas llamadas cuando está construido para usar pthreads).

19
Jon Topper
apropos

DESCRIPCIÓN Cada página del manual tiene una breve descripción disponible. apropos busca en las descripciones instancias de palabras clave.

[email protected]:~/bin$ apropos ettercap
etter.conf (5)       - Ettercap configuration file
ettercap (8)         - (unknown subject)
ettercap_curses (8)  - (unknown subject)
ettercap_plugins (8) - (unknown subject)
17
Gareth

Afortunadamente, solo lo he necesitado un par de veces, pero clave Magic SysRq sigue siendo una de mis funciones ocultas favoritas de todos los tiempos.

Alt + SysRq + RSEIUB

15
gharper
NAME
 units -- conversion program

DESCRIPTION
 The units program converts quantities expressed in various scales to their 
equivalents in other scales.  The units program can only handle multiplicative
scale changes.  It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:

     You have: meters
     You want: feet
             * 3.2808399
             / 0.3048

     You have: cm^3
     You want: gallons
             * 0.00026417205
             / 3785.4118

     You have: meters/s
     You want: furlongs/fortnight
             * 6012.8848
             / 0.00016630952

     You have: 1|2 inch
     You want: cm
             * 1.27
             / 0.78740157
13
Gareth

No está realmente tan oculto, pero puede serlo para aquellos sin experiencia, pero realmente me gusta poder dar listas y dejar que bash las expanda como en:

cp arq{,.bak}

que es lo mismo que escribir

cp arq arq.bak

También uso los accesos directos del historial (no creo que sea el término correcto, pero ...) como

!! 

para repetir el último comando, o

^foo^bar 

reemplazar foo por barra en el último comando

12
Flávio Amieiro

ssh-copy-id para transferir claves ssh. La forma antigua era atrapar la llave sobre ssh y aún más antigua era buscar la llave y luego atraparla. Si está utilizando un puerto ssh no estándar, este será el truco para usted.

ssh-copy-id -i/ruta/a/clave '-p nombre de host de puerto no estándar'

Otro sabio ..

ssh-copy-id -i/ruta/a/key hostname

12
bobbyrcox

Consolas virtuales La mayoría de la gente sabe cómo usar (Ctrl-) Alt-F1 para llegar a la primera consola, etc., pero ¿qué pasa si tiene más de 12? Puede usar Alt-Izquierda y Alt-Derecha para recorrer el resto de ellas. :-RE

11

Me gusta el paquete debian-goodies:

Descripción: Pequeñas utilidades estilo caja de herramientas para sistemas Debian 
 Estos programas están diseñados para integrarse con herramientas Shell estándar, 
 Extendiéndolas para operar en el sistema de empaquetado Debian. 
. 
 dgrep: busca en todos los archivos en paquetes especificados una expresión regular 
 dglob: genera una lista de nombres de paquetes que coinciden con un patrón 
. 
 Estos también se incluyen porque son útiles y no justifique 
 sus propios paquetes: 
. 
 debget - Obtenga un .deb para un paquete en la base de datos de APT 
 dpigs - Muestre qué paquetes instalados ocupan el la mayoría del espacio 
 debman: vea fácilmente las páginas de manual de un .deb binario sin extraer 
 debmany: seleccione las páginas de manual de los paquetes instalados o desinstalados 
 checkrestart: ayuda para buscar y reiniciar procesos que están utilizando versiones anteriores 
 de archivos actualizados (como bibliotecas) 
 popbugs - Muestra un error personalizado de lanzamiento crítico lista basada en 
 paquetes que usa (usando datos de popularidad-concurso)

y también moreutils, que es básicamente una increíble herramienta para tuberías sobre ruedas:

 Descripción: utilidades adicionales de Unix 
 Esta es una colección creciente de las herramientas de Unix que nadie pensó 
 Para escribir hace treinta años. 
. 
 Entonces hasta ahora, incluye las siguientes utilidades: 
 - esponja: absorba la entrada estándar y escriba en un archivo 
 - ifdata: obtenga información de la interfaz de red sin analizar la salida ifconfig 
 - ifne: ejecute un programa si la entrada estándar no está vacía 
 - vidir: edite un directorio en su editor de texto 
 - vipe: inserte un editor de texto en una tubería 
 - ts: entrada estándar de marca de tiempo 
 - combine: combine las líneas en dos archivos utilizando operaciones booleanas 
 - pipí: entrada estándar de tee a las tuberías 
 - zrun: descomprime automáticamente los argumentos para ordenar 
 - mispipe : canaliza dos comandos, devolviendo el estado de salida del primer 
 - isutf8: comprueba si un archivo o entrada estándar es utf-8 
 - lckdo: ejecuta un programa con un bloqueo retenido 
 Página de inicio: http://kitenet.net/~joey/code/moreut ils /
11
jldugger

Quizás una de las grandes características de Linux, a diferencia de Windows, es que prácticamente no hay características ocultas por diseño. Afortunadamente, si alguna característica no documentada es lo suficientemente importante como para saber que la comunidad hace su trabajo.

8
Cawflands

Una gran "característica" que uso todos los días en el trabajo: la capacidad de hacer que SSH escuche en el puerto 443 para poder crear un túnel que omita mi firewall de trabajo, lo que me permite ejecutar un proxy SOCKS local tunelizado a través de SSH a mi servidor Linux frente a Internet .

Puedo ignorar por completo mi firewall corporativo.

8
WerkkreW

Siempre me ha gustado "man hier" por ayudar a las personas que son nuevas en el sistema.

8
Matt Simmons

Aquí hay algunos que he usado regularmente:

  • sar - muestra la actividad del sistema
  • vmstat - estadísticas de memoria virtual
  • iostat - estadísticas de io
  • pkill - como pgrep pero le permite eliminar el ID del proceso devuelto
  • xargs -I<string> - permite reemplazar cadenas con datos canalizados
  • at - programa una tarea
  • tkdiff - gráfica diff utilidad

Probablemente no estén "ocultos", pero los encuentro extremadamente útiles:

  • df -hk - muestra el uso del disco en formato legible para humanos
  • ls -ltr - lista de archivos ordenados por fecha
  • while :; do...done - Reemplazo (Bash) para watch si no está disponible
  • Perl -e: ejecuta un fragmento Perl en la línea de comandos
  • free -kt - muestra información de la memoria (kilobytes con total)
7
bedwyr

Comience con este artículo con algunos trucos geniales de Linux. Mi favorito es pstree, que muestra sus procesos en un formato de árbol para que pueda ver qué proceso generó cuál.

curl late muchísimo fuera de wget para casi cualquier cosa para la que usarías wget.

zgrep y zless son excelentes para buscar archivos de registro comprimidos para que no tenga que canalizarlos a través de gunzip o dejar cosas sin comprimir en/var/log.

6
Magus

ESC.

'Pega' el último parámetro de la línea anterior en el indicador actual

p.ej.

ls -l /home/someuser/somedir/somefile

seguido por

rm ESC.

se traduce en

rm /home/someuser/somedir/somefile
6
Bryan

El concepto es que todo en Linux es un archivo.

Todas las configuraciones están en archivos de texto, y todo en Linux se trata como un archivo. Este es un enfoque mucho más simple que hace que sea muy fácil cambiar las cosas en Linux. En Linux, incluso su propio sistema de archivos puede verse como un archivo.

5
ecleel

Veo el comando yes muy agradable:

yes | do_you_agree

Desde la página del manual:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION
5
FerranB

Es de código abierto. Nada está "oculto" si te molestas en mirar.

4
Paul Tomblin

La característica oculta es que no hay características ocultas. El sistema proporciona una enorme cantidad de energía a la que tiene acceso completo. Tienes que entender cada pieza y cada herramienta disponible para saber qué poder tienes a tu alcance.

Debe comenzar entendiendo cada comando en/bin,/sbin,/usr/bin,/usr/sbin y cada archivo virtual en/proc. Lea las páginas de manual, otra documentación y la fuente según sea necesario.

Si no se siente cómodo leyendo una página de manual o leyendo la fuente, esa es su característica oculta.

4
carlito

grep, awk y sed

arriba

3
Brent

Acabo de encontrar este hoy:

dmidecode :
Informa información sobre el hardware de su sistema como se describe en el BIOS de su sistema de acuerdo con el estándar SMBIOS/DMI. Esta información generalmente incluye el fabricante del sistema, el nombre del modelo, el número de serie, la versión del BIOS, la etiqueta de activos, así como muchos otros detalles de diferente nivel de interés y confiabilidad según el fabricante. Esto a menudo incluirá el estado de uso de los zócalos de la CPU, las ranuras de expansión (por ejemplo, AGP, PCI, ISA) y las ranuras del módulo de memoria, y la lista de puertos de E/S (por ejemplo, serie, paralelo, USB).

¡Definitivamente hace que responder preguntas sobre somerandomserver27 en las instalaciones de colo sea mucho más fácil!

3
gharper

Realmente no es una cosa de Linux, más una cosa de Bash: sustitución de procesos,

diff some_local_file <(ssh somehost "cat some_remote_file")

Esto diferencia un archivo local y un archivo remoto recuperado a través de SSH en una línea.

3
Rog
  • od - volcar archivos en octal y otros formatos. Útil para verificar, por ejemplo, si hay alguna basura BOM al comienzo del archivo
  • file - ¿Cuál podría ser el tipo de archivo de un archivo dado?
  • lshw, lsusb, lspci - lista de hardware
  • tracepath - ¿estamos lidiando con un problema de MTU aquí?
  • netwoxcontiene más de 200 herramientas relacionadas con la red
  • ip - para la configuración/información de la red
  • sysctl - información del sistema de archivos/red/kernel
  • ebtables - iptables para bridge
  • vconfig - VLAN)
  • brctl - Configuración del puente
  • socat - netcat con esteroides
  • ipgrab - tcpdump- utilidad similar que imprime información detallada del encabezado
  • Dig - ¿Qué pasa con el servidor DNS ahora?
3
raspi

tee es increíble. Salida a la pantalla y archivo de registro? Cheque.

3
nwahmaet

history - muestra los últimos comandos usados
!<number>: ejecuta el comando con ese número en historial

3
Esa Varemo

logger le permite escribir mensajes en syslog desde el símbolo del sistema o un script.

logger "See? There! It happened again!"

encontrar <blah> -exec <blah> {} \;

p.ej.:

encontrar . -iname * 20080 [123456] .log -a! -iname * .bz2 -exec bzip2\{\} \;

2
Jason Tan

bash history: normalmente tengo alrededor de 10 xterms en ejecución. Aquí está la parte relevante de mi perfil:

# Make history ignore dups, ls, and exit
export HISTIGNORE="&:ls:[bf]g:exit"

# Save 100000 history comamnds
export HISTSIZE=10000

# Make each terminal use a separate history file
HISTDIR=${HOME}/.history
SHELLID=$(tty | sed 's!/!.!g')
HISTFILE=${HISTDIR}/history${SHELLID}

touch ${HISTFILE}

# load last histfile as current history
history -r $(/bin/ls ${HISTDIR}/history${SHELLID} | /usr/bin/tail -n 1)

Si necesito buscar un comando, simplemente puedo buscar en mi directorio de historial.

aespipe - lee de la entrada estándar y escribe en la salida estándar. Se puede usar para crear y restaurar archivos cifrados de tar o cpio.

2
aultl

Por lo general, las personas ejecutan su sistema de escritorio con X. Pero, por lo general, puede acceder al verdadero terminal de modo de texto, varios de ellos en realidad. Estas se llaman consolas virtuales. Luego, normalmente puede iniciar sesión y usar la línea de comandos, etc.

Solo pega CtrlAltF1CtrlAltF2, etc. Su servidor X generalmente se ejecuta a CtrlAltF7.

Esto, por supuesto, depende de la distribución y la configuración.

También este comando para matar el servidor X a veces es útil: CtrlAltBackspace.

Estas combinaciones de teclas funcionan al menos en las PC i86.

2
Juha Syrjälä

Una publicación que hice en Stack Overflow: ¿Cómo enumerar solo subdirectorios en el actual ?

ls -d */

Es un truco simple, ¡pero no sabrías cuánto tiempo necesito para encontrarlo!

2
edomaur

No estoy seguro si solo estoy mostrando mi ignorancia, pero me acabo de enterar del "último" comando para verificar quién ha estado iniciando sesión. Es muy útil.

Otro buen programa es "esperar". Hace que sea extremadamente fácil automatizar cualquier inicio de sesión ssh/telnet o cualquier cosa que lo obligue a proporcionar información a un programa.

2
bowman

Capacidades POSIX y capacidades POSIX de archivo

http://www.friedhoff.org/posixfilecaps.html

1
h0tw1r3

Para la función "oculta" como la mayoría de las veces ignorada o perdida por usuarios nuevos en Linux (/ Unix).

  • man man
  • man -k <blah> o apropos <blah>

Funciones "ocultas"

1
mctylr

El poder y la flexibilidad de SSH nunca dejan de sorprenderme. También la capacidad de hacer una matriz de incursión de cualquier cosa (disquetes, ¿alguien?), Todos los sistemas de archivos disponibles, cosas interesantes como LVM, las herramientas de cifrado, la posibilidad de crear sus propias herramientas con la miríada de compiladores, intérpretes, idiomas ... Ah, y sin olvidar tener nuevas cosas instaladas con apt-get o similar.

Es mucho más brillante que las ventanas.

1
Quazatron

fgrep

p.ej. fgrep -r * --include = *. rb

recorre la estructura de directorios desde el directorio actual buscando en Ruby archivos fuente

y es mucho más fácil de usar que encontrar

1
Jeff Leonard

Encuentro los whereis y los comandos a la mano. Úselos cuando tenga versiones alternativas de la misma aplicación con el mismo nombre y desee utilizar una específica.

1
Dana the Sane

NX combina algunos de los beneficios de screen y ssh -X con una compresión inteligente. Ahora puedo ejecutar gnumeric de forma remota a través de una conexión de módem y reanudarlo cuando se corta la conexión.

1
Nick Russo

Mis 5 funciones "ocultas" principales (espero que no estén aquí)

  1. cd - Pruébalo :)
  2. las tuberías con nombre no se usan lo suficiente y puedes hacer algunas cosas realmente geniales con ellas
  3. toque el sistema, aunque no soy bueno en eso y realmente necesita conocer su núcleo, posee un poder increíble para el usuario correcto.
  4. La combinación de canalizar una lista a sort, luego a uniq -c y luego a sort -n realmente puede hacer maravillas. Puede usar eso para sacar a sus principales conversadores de un archivo de registro de Apache o los cerdos de memoria de ps -o.
  5. Los proc/sys interfaz/sistema de archivos. Hay tanto que puede ajustar/ver en tiempo real. Envolviendo un cat o grep de declaración en watch -d -n 0.1 es increíble y muy útil.

Los notables son dd, netcat, screen, tcpdump y find pero la mayoría ya se han mencionado.

1
d34dh0r53
lsof -i - list all opened socket
htop - like top, but with more eye candy
rdiff-backup - for incremental backup
mc - midnight commander 
ethstatus - ethernet statistics
netstat, nmap
iftop - display bandwidth usage on an interface by Host
1
miHost

dd - convierte y copia archivos

Utilizo esto con mucha frecuencia para hacer copias de DVD o HDD Patitions que necesito para hacer una copia de seguridad.

dd if=/dev/sda2 of=/tmp/copy_of_sda2

es muy práctico y configurable, solo eche un vistazo a su página de manual

1
cb0
scp

Soy un desarrollador web y nuestra configuración de desarrollo requiere que empuje los archivos a nuestro servidor de desarrollo todo el tiempo. Escribí un contenedor rápido alrededor de scp para manejar esto por mí.

1
baudtack

Simplemente no puedo prescindir de estos comandos

  • ps -fA (enumera todos los programas en ejecución
  • lsof (lista de archivos abiertos por proceso)
  • empujado (Empuje el directorio actual en la pila de directorios)
  • popd (pop directorio actual de la pila de directorios)
  • directorio de inicio de cuenta local ~/también puede acceder a un directorio de usuario como ~ nombre de usuario.
  • reemplace el perfil de bash actual después de haber realizado cambios sin volver a iniciar sesión. ". ~/.bashrc
  • grep -inR (grep recursivo, i = mayúsculas y minúsculas, n = mostrar como número, R = recursivo)
0
Matt
  • man (da ayuda en la mayoría de los comandos)
  • menos (visualización sanamente navegable)
  • tail -f (ver datos adjuntos de un archivo a medida que crece)
  • ver (ejecutar un programa y ver su salida periódicamente en pantalla completa)
0
Wayne Koorts

ctrl + r: busca en el historial el último comando con las letras que especifique

0
Prozaker

Veamos ...

  • Utilizo códigos de color bash en mi /root/.bash_profile para hacer que mi Solicitud de bash raíz tenga un color diferente al de mi Solicitud de usuario estándar no root. Solo un recordatorio más de que estoy a un solo comando de destruir un sistema completo. ;)

  • Uso mucho nc (netcat) para probar cosas. Buena utilidad con mucha versatilidad.

  • Durante mucho tiempo, nunca supe que Chown podría aceptar tanto el nombre de usuario como el nombre de grupo como argumento, es decir: chown user:group -R /some/directory. Ese hecho me ha ahorrado mucho tipeo (no más pares chown/chgrp).

  • El comando df es un atajo rápido para ver todos sus sistemas de archivos montados.

  • Utilizo mucho pgrep en los scripts para ver si se está ejecutando un proceso.

  • kexec es bastante ordenado, le permite reiniciar sin pasar por el BIOS, lo que acorta significativamente los tiempos de reinicio. Aunque no reinicies mucho ...

0
ultrasawblade

Para mí, la característica más importante es que nada está realmente "oculto": todo está bajo sus ojos si se molesta en leer la documentación o el código.

0
vwegert

find es mi mejor herramienta. Lo uso para localizar cosas y ejecutar comandos en los archivos o directorios encontrados.

Ningún sistema está completo sin ssh también.

0
Felipe Alvarez

¿Nunca usó script (1) para guardar una sesión de terminal?
apg (1) para crear contraseñas aleatorias
¿quieres saber cuántos procesadores/núcleos tienes? nproc (1)
sfdisk (8) gran herramienta de partición
multitail (1) cola múltiple a la vez ... gran herramienta

0
PiL