La shell es la killer app de Linux

Si leisteís la entrada anterior, os acordareís de que queria hablar sobre el workflow que he desarroyado en linux pero al final me terminé desviando y acabé hablando sobre lo malo que es el software privativo. Decidí cambiar de tema porque no era capaz de transmitir bien lo que qería y al final opté por ese otro porque era más facil. Pero ahora que tengo las ideas más claras porfín me animo a escribir sobre el workflow en linux.

La comunidad de linux lleva décadas tratando de traer a nuevos usuarios intentando cautivarles con entornos de escritorios “User-friendly” que reducen el nivel de entrada a linux. La cosa es que la GUI (Graphical user interface) no es la mejor a la hora de conseguir ser más productivos. Un usuario normal ni se molestará en cambiar su sistema operativo simplemente porque “Sofware libre” o “Windows da asco” (Ojo que también son motivos validos pero la mayoria de la gente no piensa así).

Lo que mola de linux, en mi opinión, es la posibilidad de modificar absolutamente todo de tu sistema operativo; y por supuesto la única manera tanto de hacer esto, como entender al completo el sistema operativo es dominando lo que en mi opinón es la killer app de linux: La terminal.

Cuando la gente ve texto blanco en una ventana negra se suele cagar de miedo porque saben ni como funciona ni que hace, lo cual es una enorme pena porque es la puerta a funciones geniales como la automatización y el control total. La terminal nos da aceso a la shell del SO, que para los que no lo sepaís es la capa de software que hay entre el usuario y el kernel (la parte más profunda del SO). Viendolo así suena muy complicado pero una vez aprendes a usarla te das cuenta de que la shell sirve para cosas cotidianisimas como crear carpetas o editar archivos.

La diferencia con la GUI en vez de clicar en botones lo que pasa es que te tienes que memorizar comandos, pero por suerte esta memorización no es en bano,ya que despúes nos permite crear scripts que basicamente son cadenas de comandos que nos permiten automatizar el sistema operativo.

Por ejemplo el comando curl nos permite descargar paginas y archivos desde la web y el comando mkdir nos deja crear carpetas. Sabiendo esto un estudiante podria con el comando curl mirar la pagina de su instituto para ver si han subido algun apunte y descargarlo para finalmente guardarlo en una carpeta creada automaticamente. Y todo esto ejecutando un script (escribiendo una palabreja en la terminal). Es decir el script automáticamente miraria si hay algún apunte nuevo subido y si lo hay lo puede meter en su carpeta correspondiente, por ejemplo si suben apuntes de un tema nuevo, crea una carpeta con el nombre del tema y guarda el documento allí.

Yo cuando me descargué linux mint (que es la distro que recomiendo para principiantes) lo primero que hize fue mirarme un curso intensivo de terminal y sin duda es lo mejor que pude hacer. Me ayudó a quitarle miedo y a poder defenderme cuando algo no se podia hacer con la GUI. Continué así hasta que finalmente ví que la mayoria de cosas las hacia desde la terminal y al final me terminé instalando DWM, un gestor de ventanas que está pensado para la gente que utiliza mucho la terminal y que permite usar el pc sin ratón ajustando automaticamente las ventanas de manera que se aproveche el espacio del escritorio lo mejor posible.

Ahora me vendrá algún usuario de Mac y me dira: “Oye pero si la misma terminal que hay en linux está en Mac tambien, entonces de killer app nada Mac puede hacer lo mismo”.

Es cierto… Excepto que no.

A ver la movida es que la shell de Mac es tipo unix como la de linux, la cosa es que esta muchísimo más capada que en otros sistemas. El uso de la terminal en linux es muy satisfactorio porque también tiene gestores de paquetes que te permiten descargar programas nuevos y actualizarlos, de manera que la funcionalidad de la terminal es “extensible” (para los que sois expertos os parecera un poco estupida la explicación pero porfavor no os pongaís pedantes).

En cambio en Mac por defecto esta funcionalidad no está. Es cierto que por tu cuenta puedes descargarte algún gestor y conseguir esa funcionalidad. Pero al mismo tiempo tienen menos soporte y apple no tiene un sistema hiperconfigurable como linux. Eso sumado a que el sistema es privativo hace que no tengas el control extremo como en linux y que si a apple le apetece quitar esa funcionalidad, lo puede hacer y los usuarios se lo comen con patatas. En definitiva, que no fanboys de apple, que vuestro sistema no es mejor ni de coña que linux.

Y para responder a todos los peros. No gente de windows, wsl no reemplazara nunca a tener un sistema completo instalado en el propio pc.

Finalmente gente de BSD… vosotros me caeís bien, vuestro sistema operativo en este sentido funciona exactamente igual que linux o incluso mejor porque es un sistema unix muy estricto y la filosofia unix se mantiene en todo el sistema (ademas que es mas seguro, está mejor documentado y está mejor optimizado). Pero la licencia bsd, que qereís que os diga… es una puta mierda. GPL es la superior y yo prefiero un sistema con software 100% libre y no lo que teneís vosotros, que gracias a esas licencias apple robó BSD, se hizo millonario con MacOS y los devs no han ganado ni un 1% de ese dinero. Pero lo jodido es que les gusta que les den por el culo se piensan que la licencia bsd es mejor.

O el software es libre para todos o no debería ser usado por nadie.

Lo que escribo no es nada personal, realmente vuestro sistema mola, pero me da pena que no sean mas estrictos con las licencias. Sino os juro que esta entrada no seria la killer app de linux sino la killer app de BSD.

Bueno para resumir, que me voy por las ramas. La terminal de linux es la hostia, si eres novato no te preocupes que es cuestión de ir aprendiendo poco a poco y merece muchisimo la pena por la capacidad de modificar y automatizar el sistema entero.