111 votos

Línea de comandos de Linux de las mejores prácticas y consejos?

Me gustaría abrir un debate que podría acumular el Linux de la línea de comandos (CLI) las mejores prácticas y consejos.

He buscado un debate para compartir los comentarios de abajo pero no he encontrado uno, de ahí este post.

Espero que todos podemos aprender de esto.

Le invitamos a compartir sus Bash consejos, grep, sed, AWK, /proc y todos los demás relacionados con Linux/Unix administración del sistema, la programación de la shell mejores prácticas para el beneficio de todos nosotros.

101voto

Bill K Puntos 1144

SSH!
SSH es el dios de comandos--creo que es el más valioso, sobre todas comando para aprender. Las opciones pueden ser bastante desalentador, pero parece que estoy constantemente aprendiendo a utilizar las nuevas opciones de línea de comandos por SSH que nunca pensé que llegaría a ser necesario. Yo podría haber utilizado de todos ellos en este punto.

Cuanto más lo usas, más que aprender acerca de él. Se puede utilizar para hacer cosas ASOMBROSAS.

Nota: TODAS estas cosas son factibles de forma remota, sin necesidad de configuración en su servidor, excepto para tener un servidor ssh corriendo.

Montar un sistema de archivos a través de internet

buscar en la red para el SSHFS

Adelante comandos.

El SVN+SSH protocolo es la Subversión desde un cliente remoto a un servidor con NINGÚN DEMONIO que se ejecuta en ella! El comando SVN inicia el servidor a través de ssh shell y pasa la información de ida y vuelta a través de la tubería existente. El programa rsync hace lo mismo, se ejecuta en un servidor con ningún demonio rsync por la partida de uno mismo a través de SSH. Es fácil escribir sus propios archivos bash para hacer trucos similares.

La cadena de conseguir a través de firewalls

Yo uso todo el tiempo para saltar a través de mi servidor linux en casa a mi mac.

La redirección de puertos:
Parece sólo moderadamente útil hasta que te das cuenta de que usted puede rebotar a través de su casa de firewall y configurar el router en casa desde el trabajo como si se lo hace desde dentro de la red de su hogar).

Adelante X solicita:

Este es otro de los increíbles. Con o sin un servidor X que se ejecutan en su sistema remoto, puede ejecutar un x-programa de windows y en la ventana aparecerá en la pantalla local. Sólo utilice el modificador-X, eso es todo!

Puesto que usted no tiene que tener un servidor X que se ejecutan en el servidor remoto, el impacto sobre la CPU en el servidor es mínima, usted puede tener un PEQUEÑO servidor Linux que sirve enorme aplicaciones a su poderoso juego de PC que ejecuta Windows y cygwin/X.

Por supuesto, VI y EMACS trabajo a través de SSH, pero cuando estoy corriendo en casa, a veces quiero más. Puedo usar ssh-X para iniciar una copia de Eclipse! Si su servidor es más poderoso que su computadora portátil, usted tiene la interfaz gráfica de usuario sentado ahí, en tu portátil, pero compila se realiza en el servidor, así que no te preocupes acerca de la carga del sistema.

Ejecute en archivos de proceso por lotes

(lo que significa ejecutar un local de archivo de proceso por lotes que "hace cosas" en otros sistemas):

Dos cosas se combinan para hacer de este uno frío. Uno se puede eliminar mensajes de contraseña mediante el uso de (más seguro) las claves de cifrado. La segunda es que se puede especificar un comando en el SSH CLI. La he usado en algunas maneras interesantes Como cuando una compilación falla en el servidor remoto, lo tendría SSH en mi ordenador y reproducir un archivo de sonido).

Recuerde que usted puede redirigir la salida del comando remoto y usar dentro de su local de archivo de proceso por lotes, por lo que también podrían ser localmente seguir a la cola de una compilación ejecutando en el servidor.

Integrada en Mac

Tanto el servidor como el cliente están integrados en mac y linux. En el caso de la Mac y Ubuntu, habilitar un servidor es tan simple como encontrar a la derecha de la casilla de verificación.

En un PC instalar cygwin o cygwin/X (cygwin/X le permitirá enviar su x-ventana de salida de su máquina Linux para su PC de Windows--se instala un servidor de X)

Consejos importantes/archivo de configuración

Nunca utilice el puerto 22 del servidor de seguridad. Usted obtendrá una gran cantidad de intentos de hackeo, no vale la pena. Sólo tienes el firewall adelante un puerto diferente para el servidor.

Hay numerosas opciones de configuración que permiten simplificar tu comandos ssh de manera significativa. He aquí un ejemplo de la mina en el trabajo:

Host home
    hostname billshome.hopto.org
    Port=12345
    user=bill
    LocalForward=localhost:1025 mac:22

Cuando yo escriba "ssh casa" (nada más), actúa como si yo hubiera escrito:

ssh -p 12345 bill@billshome.hopto.org

y luego reenvía mi local de el puerto 1025 a mi sistema de "mac" en casa. La razón de esto es que tengo otra entrada en mi archivo:

Host mac
    hostname localhost
    port=1025

así que una vez que he hecho un "ssh casa" y aún así tener la ventana abierta, me puede escribir "ssh mac" y la computadora en el trabajo que aquí se va a tratar de conectar con su propio puerto 1025 que se ha remitido a "mac:22" por los otros comandos, por lo que se conecte a mi Mac en casa, a través del firewall.

Editar--fresco script!

Cavé un viejo guión me encanta--tuvo que venir de atrás y lo publicaremos por aquí alguien que pueda estar interesado. El script se llama "authMe"

#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
    echo 'id_dsa.pub does not exist, creating'
    ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub

Si usted tiene este script en tu directorio home, y no es un host que se puede conectar (a través de ssh), entonces usted puede escribir "./authMe nombre de host".

Si es necesario se va a crear un público/privado par de claves para usted, entonces es ssh a la otra máquina y copia de su clave pública (el comando ssh se le pedirá una contraseña...)

Después de esto, el comando SSH no debe pedir su contraseña más al adjuntar a que el sistema remoto, se utilizará el público/privado par de claves.

Si el equipo remoto no es siempre seguro, usted debe considerar el establecimiento de una "frase de paso" cuando se le solicite.

Usted también puede querer configurar el servidor ssh en el extremo de no permitir que las contraseñas de texto (solo de teclado) para seguridad adicional.

69voto

Craig Puntos 2871

Recientemente he descubierto la pv comando (tubo visor), que es como el gato, pero con detalles de transferencia.

Así que en lugar de

$ gzip -c access.log > access.log.gz

Puede utilizar

$ pv access.log | gzip > access.log.gz
611MB 0:00:11 [58.3MB/s] [=>      ] 15% ETA 0:00:59

Así que en lugar de tener ninguna idea cuando su operación de acabado, ahora vas a saber!

Cortesía de Peteris Krumins

53voto

codeinthehole Puntos 183
sudo !!

Vuelva a ejecutar el anterior comando como root.

[El actual comando top en el sitio http://www.commandlinefu.com, un sitio de temática a lo largo de las líneas de esta pregunta.]

0voto

Fortyrunner Puntos 161

Me gusta usar

cd -

para cambiar al directorio anterior. Muy útil!

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: