Respuestas:
Pantalla GNU : esencial cuando gestiona una gran cantidad de sistemas y no desea tener una docena de ventanas de terminal abiertas.
Algunos sé que no puedo vivir sin ...
tee: permite la escritura simultánea en STDOUT (salida estándar) y un archivo. Excelente para ver información y registrarla para más tarde.
top: el administrador de tareas de UNIX, ofrece una excelente visión general del sistema.
tail -f: le permite ver datos adjuntos a medida que crece un archivo, ideal para monitorear archivos de registro en un servidor.
grep: impresión de expresión regular global, ideal para buscar datos en el sistema en archivos.
df: informa el uso del disco de los sistemas de archivos actuales.
du: informa el uso del disco de un determinado archivo / directorio.
menos: ¡se necesita para ver páginas de manual! También es útil para ver la salida de comandos de una manera fácil de buscar.
vim / Emacs / nano / pico / ed: cualquiera que sea el editor de texto que elija, explica por sí mismo por qué es necesario.
more
o less
, siempre puedes intentarlo most
.
htop
es una versión "mejor" de top
.
lsof para determinar qué procesos están usando un archivo o directorio (útil cuando se trata de averiguar qué impide que un dispositivo se desmonte)
netstat para determinar qué procesos están utilizando conexiones de red (especialmente útil cuando se trata de averiguar qué demonio está vinculado a un determinado puerto)
Aprenda todas las herramientas básicas, pero aprenda Perl.
Perl es ideal para manipular texto, y dado que los operadores un * x viven en archivos de texto, canalizaciones, entradas y salidas, Perl es una excelente opción.
La ventaja adicional es que Perl es multiplataforma y si tiene que trabajar un poco en un cuadro de Windows, tiene un idioma fácilmente instalable (simplemente suelte un directorio de Perl en el servidor) que ya conoce.
Y en ese tren de pensamiento, consigue a Cygwin también. Si usted es un administrador de un * x y tiene que trabajar en un cuadro de Windows (incluso su escritorio) con ls, rm, grep, sed, tail, etc., le ahorrará mucho tiempo al cambiar de sistema operativo.
Los abuelos olvidados de los scripts de sistemas modernos. Sé que Perl recibe la mayor parte del amor (junto con las secuencias de comandos Bash, Python, Ruby e [inserte su lenguaje de secuencias de comandos favorito aquí]), y no me malinterpreten, amo a Perl. Lo uso casi a diario.
Pero sed y awk no deben ser olvidados, pasados por alto o ignorados. Para muchos casos, sed y awk son las mejores herramientas para el trabajo. Ejemplos rápidos son el filtrado de la línea de comandos con sed y el procesamiento de registro rápido y sucio con awk. Ambos podrían hacerse en Perl, pero requerirán más tiempo de trabajo y desarrollo.
Netcat.
La red navaja suiza, como dicen.
Para scripts rápidos, automatización, etc.
Para conectarse a su servidor * NIX:
Utilizo la mayoría de las herramientas ya enumeradas, pero aquí hay una que nadie ha tocado todavía:
Puppet - sistema para automatizar tareas de administración del sistema
Para scripting:
Un par de herramientas útiles que aún no he visto mencionadas:
expect
ClusterSSH controla varias ventanas xterm a través de una única ventana de consola gráfica para permitir que los comandos se ejecuten interactivamente en varios servidores a través de una conexión ssh.
pv: muestra el progreso de operaciones largas que se pueden redirigir. http://www.ivarch.com/programs/pv.shtml
Es útil, entonces, desea monitorear algo que llevará años, como copiar / comprimir un dispositivo de bloque sin procesar a través de la red (que es cómo tomo copias de seguridad de paranoia de mi netbook de 8 Gb antes de jugar con algo importante como ajustar la configuración del sistema de archivos).
Además: voy a votar en segundo lugar por ssh, rsync, screen, htop y netcat como se mencionó anteriormente, todo lo cual es más importante que pv pero aún no se ha mencionado pv. De hecho, pv es a menudo una adición útil cuando se conectan cosas desde o hacia netcat.
pv
puede ser una herramienta útil, pero tenga cuidado de usarla en exceso. Pasar los datos a través de ellos tiene un impacto en el rendimiento (todos los datos deben pasar a través de otro programa). En mi último trabajo, hicimos mucho procesamiento de registros. Uno de los muchachos decidió comenzar a poner pv en todos los scripts de procesamiento de registros, hasta que descubrimos que agregaba aproximadamente un 15% al tiempo de procesamiento para ellos. Ahora solo se usa para trabajos que demoran menos de unos minutos o que tienen una limitación de recursos existente (como cruzar una conexión de red lenta).
pv
es para el disco o la red de E / S en lugar de CPU / memoria). El mismo argumento es la clave contra el uso excesivo de cat
demasiado (a veces uso cat cuando en realidad no es necesario solo para que las cosas se lean bien de izquierda a derecha, pero la copia de datos en memoria adicional a través de la tubería y el cambio de contexto puede tener un impacto medible en el rendimiento).
cat
uso excesivo proviene de comenzar cat foo
, seguido de presionar la flecha "arriba" y luego agregar | [command]
a mi línea anterior. Sé que estoy recibiendo un golpe de rendimiento (pequeño) al mantener al gato allí, pero dejarlo requiere menos esfuerzo que reescribir / volver a escribir el comando [command] < foo
. No es una preocupación para (la mayoría) del trabajo de línea de comandos ad hoc, pero no es ideal para scripts (lo mismo que creo que siento pv
).
canalizar la salida de tar a otra utilidad, a tar que se ejecuta en la misma caja, o a tar que se ejecuta sobre SSH es mi movimiento favorito de Unix de la vieja escuela para mover archivos de un lugar a otro.
Esto también le brinda la opción de estilo Windows de copiar una carpeta a otra y terminar con todos los archivos en el directorio de origen y de destino.
zsh como un caparazón
Es especialmente eficiente con las extensiones / configuración de grml.org .
iotop, es un programa superior para monitorear los accesos de E / S a sus discos.
La mayoría de estas herramientas se hacen mucho más potentes utilizando Bash "finalización programable", por lo que puede completar con pestañas cosas como opciones de línea de comandos o decir el nombre de un paquete con "apt-get install". También limitará lo que complete con pestañas para los archivos relevantes; por ejemplo, "descomprimir" solo completará los archivos de almacenamiento admitidos.
Realmente son los perros callejeros: si nunca lo has probado, probablemente solo necesites tocar tu .bashrc:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Ciertamente, esto es cierto en Ubuntu y Debian. Es posible que necesite obtener el paquete en algunas distribuciones de Linux.
Se pueden encontrar algunas respuestas adicionales en esta pregunta similar
Algunas cosas pasaron por alto que quería mencionar.
Ah, y se me olvidó mencionar que, al hacer scripts, creo que siempre deberías usar Korn. Odio a Korn (no a la banda. Me encanta la banda :-P) pero está literalmente en todas partes. Puede tomar un script y moverlo entre Solaris, AIX y Linux y no tener que preocuparse por si el administrador tuvo la decencia de instalar Bash.
Una herramienta a veces muy útil es nohup. Lo uso para ejecutar scripts que duran mucho tiempo usando clientes SSH remotos.