2008-11-22 12 views
6

¿Conoce algún recurso que enseñe buenos hábitos de trabajo en la línea de comandos de UNIX?Cómo aprender a trabajar eficazmente con la CLI de Unix

EDITAR: No me refiero a libros generales sobre páginas de shell o man. Me refiero a las cosas que solo puedes ver viendo profesionales que trabajan con línea de comando. Por ejemplo, al cambiar con frecuencia entre dos directorios, utilizan el comando "pushd", cuando repiten un comando utilizan "history". Puedo leer sobre estos comandos, pero quiero que sea un hábito usarlos de manera efectiva.

Respuesta

7

estoy hablando de mi propia experiencia lo que puede no aplicarse en su caso;

La mejor manera de ser eficiente es utilizarlo a diario, en lugar de usar herramientas gráficas, incluso si hacen que las cosas se vean más fácilmente. Entonces se dará cuenta de las tareas más comunes que le interesan, y en lugar de intentar asimilarlas de inmediato, obtendrá un punto de partida bastante bueno para comenzar a aprender. Las páginas Man son lo primero que hay que mirar, pero habrá trucos no obvios que deberá buscar de todos modos. Saber lo que exactamente quiere aumenta infinitamente la probabilidad de encontrarlo.

Por ejemplo, puede encontrar cómo buscar todos los archivos mp3 más fácilmente en la página de manual de "buscar" que cómo tratar con los archivos en general (¿por dónde empezar?).

+0

De hecho. Esa es la * mejor * forma. – ayaz

3

Para el material más avanzado This parece ser bastante completa

1

Si quieres que las cosas que se pueden "sólo se ve mirando los profesionales que trabajan con la línea de comandos", entonces que haya respondido a su propia pregunta : Observe a los profesionales que trabajan con la línea de comando. Personalmente, no creo que sea muy útil a menos que la otra persona haga lo mismo muchas veces; es difícil elegir algo después de una sola sesión porque es difícil ver la pantalla y el teclado al mismo tiempo.

Creo que la clave es no intentar ser un experto de inmediato. Simplemente use la línea de comando con frecuencia, y tenga en cuenta que puede que no lo esté usando tan bien como podría, pero no deje que eso lo desanime a usarlo de todos modos.

Navegue a través de la página del manual de su caparazón, y mediante listas de consejos, no con el objetivo de memorizar todo lo que contiene, sino simplemente para seleccionar un par de cosas para probar. Eche un vistazo hasta que algo llame su atención y lo haga pensar: "Caramba, eso suena útil". Entonces pruébalo. No todo va a ser útil de inmediato; Es posible que tenga que esperar un tiempo antes de encontrar una situación en la que puede probar algo. Tal vez podría anotar algunas cosas en las notas post-it de su escritorio para recordarle que ciertas hazañas son posibles, por lo que cuando encuentre una situación en la que una función más oscura podría ser útil, será más probable que recuerde intentarlo .

4

Algunas acciones de bash común de línea de comandos, que no están en orden: la línea de edición

  • Comando: que querrá ser bueno con emacs o vi y aplicar eso a la edición de sus comandos.
  • Finalización: use TAB para expandir nombres de archivos y rutas.
    • nota: Hay un gran conjunto de funciones de archivo, comando y finalización del historial, y es configurable. Gran tema
  • "cd -": volver al último directorio que estabas en
  • ~ = directorio principal (o ~ usuario para los usuarios en casa dir)
  • "ESC". : se expande al arg final del comando anterior
  • "! cadena": ejecuta el último comando que comienza con la cadena
  • learn find, grep, sed, piping "|" y redirección ">". A menudo combinará estos para hacer cosas útiles.
  • Bucles desde el intérprete de comandos del shell, p. Ej. "for" loop - para hacer acciones repetitivas
  • ¡Aprenda sus expresiones regulares! A menudo se usa para hacer coincidir archivos.
    • ejemplo:. Ls x [0-5] * {zip, tar} = archivos de lista que comienzan con x, seguido por un número de 0 a 5, seguido de cualquier cadena que termina en .zip o .tar

Si es posible, pregunte a los demás sus trucos favoritos, lea el manual y practique.

1

Francamente, es imposible aprender esto en el vacío. Debes tener problemas para resolver.

Si bien es útil familiarizarse con las herramientas disponibles (de las cuales hay muchas), "aprender" requiere su aplicación. Y aplicarlo requiere problemas "reales" para resolver.

Por ejemplo, el conjunto de habilidades de un administrador del sistema puede ser diferente de alguien que trabaja con bases de datos porque sus roles son diferentes.

Los uso para el procesamiento de datos, usando principalmente uno de los archivos. /tmp/x.sh y /tmp/x.x se usan desnudos en la carpeta del directorio.

Mis martillos tienden a inclinarse hacia: ls, buscar, clasificar, sed, vi, awk, grep y com. Combinado con scripts de shell simples como: for i in cat /tmp/list; do .. hecho

Pero hago un montón de trabajo de ETL, y muy pocos archivos de script, por lo que las habilidades de mis scripts de shell son muy débiles.

me baso en una secuencia de comandos, sin embargo:

#!/bin/sh 
# latest -- show latest files 
ls -lt [email protected] | head 

Como el 95% de las veces los archivos en los que trabajo están en los 10 últimos archivos. Y "latest * .txt" funciona un melocotón.

Así que, en resumidas cuentas, necesita problemas para resolver. Necesitas aprender el comando 'hombre', man -k es bueno encontrar cosas. También necesita aprovechar el "Ver también" en la parte inferior de la mayoría de las páginas de manual. Es un tesoro de "No sabía que pudieras hacer eso".

Luego, simplemente comienza a resolver problemas. Comience a descubrir "lo que sería bueno tener" y luego vea si existe (muy bien puede). Si no, awk, perl o python pueden sacar de la nada esos "buenos para los que tienen".

0

Unirse a un LUG. Ahí es donde aprendí la mayoría de las cosas desde el principio. Pídales a los organizadores que hagan una "Noche de trucos y trucos".

Los usuarios de Deft shell les encanta presumir.

0

apropos es una muy buena herramienta para este tipo de cosas. Cada vez que se encuentre inseguro de la mejor manera de hacer algo, o desee no repetirlo, simplemente use una palabra clave o dos para encontrar otros comandos que puedan ayudar. En distribuciones como Debian, también puede instalar herramientas de ayuda basadas en web que busquen todos los manuales disponibles en el sistema: texinfo, páginas man, html y pdf, etc.

Aparte de eso, sí, lea el manual de su caparazón justo al menos una vez, preferiblemente, regrese repetidamente mientras aprende más, alcanza límites y desea ser más eficiente.

La idea de unirse a un LUG también es buena; definitivamente aprenderás de las demostraciones de los demás.