¿Dónde domino los comandos de Linux más útiles para programadores? [cerrado]

14

El poder de combinar xargs, cut, tail, grep, seq, me sorprende. ¿Qué recurso debería mirar para un tutorial sobre los comandos de Linux más útiles para programadores?

Me interesan solo los que los programadores usan con más frecuencia, eso me facilitará la vida.

wonk wonk
fuente
Bienvenido a Stack Exchange. Descubrimos que pedir una lista de recursos rara vez funciona en nuestro formato de preguntas y respuestas . Por favor, lea las preguntas reales tienen respuestas . Sugiero navegar por el sitio (especialmente las preguntas en la información de la etiqueta para shell , procesamiento de texto , sed , etc.)
Gilles 'SO- deja de ser malvado'

Respuestas:

12

Lo mejor que puede hacer para aprender esto es encontrar problemas y resolverlos. Visite este sitio, mire todos los "¿Cómo hago X en awk / sed / grep / etc". y pruébelos usted mismo antes de mirar las respuestas. Mira si te quedas atascado o para ver cómo lo hicieron los demás una vez que encuentras la manera. Si se encuentra haciendo algo repetitivo en la terminal, deténgase y piense cómo podría usar una o más utilidades para hacerlo más fácil. Si no puede encontrar la manera de hacerlo, publique aquí y lo guiaremos.

Kevin
fuente
Nota al margen: seq, heady tail(al menos las partes más comúnmente utilizados) son bastante trivial. Le sugiero que comience a mirar greppara sentirse cómodo con la búsqueda de la mitad de las expresiones regulares y sed(en paralelo pero un poco por detrás grep) para obtener la mitad de reemplazo (guarde los sedcomandos más avanzados para más adelante), entonces awkporque es una herramienta bastante poderosa. Entonces find, entonces xargs.
Kevin
9

El entorno de programación Unix de Kernighan y Pike es el clásico sobre el tema. Es antiguo pero aún está impreso, lo que debería decirte algo.

El arte de la programación UNIX de esr es mucho más nuevo. Lo encontré interesante y útil, pero con un poco más de "defensa" de lo que sentí que era necesario. (Eufemismo para "partidismo espumoso".) Prepárese para llevar sus comparaciones a otros sistemas operativos con un grano de sal, como recuerdo encontrar material obsoleto [1] incluso cuando el libro era nuevo, y los competidores * ix tienen casi una década de progreso desde ese momento.

[1] Sobre todo, recuerdo los golpes en las debilidades en sistemas operativos que no son * ix que habían sido eliminados antes de la publicación del libro. El mismo tipo de cosas que se encuentran en los argumentos de Windows vs Mac vs Linux de aficionados en toda la red.

Warren Young
fuente
5

Sigue el plan de un día. Comience enumerando todo en /sbin. Luego tome un comando por día y escriba man commandy descubra lo que hace. Los comandos básicos esenciales están todos dentro /sbin. Después de eso, vaya a trabajar /biny cuando termine, vaya a trabajar /usr/sbiny /usr/bin. Puede acortar su lista de comandos omitiendo cualquiera con más de 5 letras en el nombre del comando, y no se perderá muchas cosas importantes.

Pero lo importante es que aprenderá algo nuevo todos los días y, probablemente, antes de la mitad del proceso, comprenderá muchos de los conceptos básicos, de modo que podrá aprender fácilmente media docena de comandos nuevos por día.

Pero tienes que usarlos, todos y cada uno de ellos, incluso si solo es jugar y hacer ejercicios con ellos.

Michael Dillon
fuente
2
Eso es una buena idea. Aprende los comandos uno por uno. Comprueba lo que hacen y domínalos.
Kamil
No puedo estar de acuerdo en comenzar /sbin, dado el "para programadores" en el título de la pregunta. En muchos sistemas, /sbiny /usr/sbinestán por defecto PATHsolo para root. Creo que puede tener razón al verlos como comandos "centrales" en el sentido de que son partes clave del sistema operativo, pero no son herramientas que se usan tanto en la programación como en la administración del sistema.
Warren Young
3

Una de las formas es comenzar a leer algunos blogs que se especializan en Unix / Linux.

Este blog thegeekstuff donde escribo ocasionalmente es uno de un buen lugar para comenzar ... Algunos artículos importantes que pueden interesarle son:

Donde hay una serie de tutoriales sobre Hope sedy awkte resulta útil ...

usuario379997
fuente
3
¡Los 50 comandos son la respuesta perfecta a esta pregunta! Revíselo, estudie ejemplos de cada comando y, si es interesante, siga el enlace (generalmente proporcionado) para ver más ejemplos. ¡Ese enlace es un guardián!
Bill K
2

Para Bash verificaría tldp.org/LDP/abs/html/

Iman
fuente
2
La infame guía "Advanced Bash Scripting" te enseñará a escribir errores, no scripts. Si bien las intenciones al escribirlo eran nobles, la errata y la información errónea son demasiado altas para recomendarlo. mywiki.wooledge.org/BashGuide es una guía muy superior.
Chris Down
Gracias @Chris, pensé que la introducción fue un buen comienzo.
Iman
1

Los programadores tienen una oportunidad única para dominar Linux. Cada vez que tenga la oportunidad, en lugar de escribir un programa para realizar una tarea, escriba un script de shell para hacerlo.

De hecho, tengo un desafío personal permanente para escribir todo en Bash antes de escribir un programa: te sorprenderías y molestarías.

En cuanto a una recomendación para un libro, puede parecer una tontería, pero la Guía de bolsillo de Linux tiene un lugar de honor en mi estantería. Es compacto y tiene muchos programas útiles de Linux. Examinarlo es fácil y es una gran referencia.

kwarrick
fuente
0
info coreutils

le ofrece una gran lista de comandos útiles, agrupados por contexto.

Puede tomar esto como una guía y aprender un comando al día, y por supuesto como un repositorio para buscar.

usuario desconocido
fuente
0

Añadiría Linux® Command Line y Shell Scripting Bible de Richard Blum . Es fácil de entender, práctico y lleno de muchos ejemplos útiles.

newnix
fuente