Ya hemos visto la importancia de aprender a programar. Habrá gente que ya sabe lo que es un lenguaje de programación y sabrá que hay varios; este artículo está dirigido a quienes aún no lo tengan tan claro.  Uno de los primeros que se escuchan cuando la gente se interesa por este mundo puede ser C. No obstante yo he decidido hablar de BASH y Python. En éste artículo vamos a centrarnos en las razones por las que creo que debéis aprender BASH. No he tomado ésta decisión por capricho. Siento aburriros, pero en efecto, esta clase me temo que será teórica. Pero tranquilos, que no entra para examen.

Uno de los motivos es que Shell Script está presente tanto en GNU/Linux, como en Minix, Solaris, BSD o Mac, dado que es compatible con el estándar POSIX y los sistemas operativos mencionados anteriormente lo cumplen. BASH, como no puede ser de otra manera, es compatible con POSIX y tras la decisión de Microsoft de incluirlo en su sistema operativo, también está disponible en Windows 10 por defecto; igualmente si eres usuario del S.O. de la ventana pero usas otras versiones puedes buscar intérpretes de BASH para ejecutarlo sin problemas (la existencia de estos intérpretes y la decisión de la compañía de incluirlo por defecto, os dará una idea de lo potente que puede ser, por muchas cosas que se puedan hacer desde el CMD o el PowerShell). Cuando se instala git, también se instala un intérprete de BASH, si estáis usando éste sistema de control de versiones,deberíais tener algo parecido a esto:

Así que una vez que sabemos que nuestra máquina está preparada… ¿qué hacemos ahora?

Como es un intérprete de línea de comandos necesitamos conocer algunos de esos comandos. No todos porque son muchos, de hecho literalmente todos cuantos quieras, cuando hagamos nuestros scripts podremos hacer nuestros propios comandos. Para hacéroslo más fácil, según se vayan necesitando conocimientos de los comandos los iremos publicando y referenciándolos en los posts que sean mencionados con el fin de que tengáis las bases necesarias para continuar con la formación. La serie conociendo la terminal se hará de forma conjunta a ésta. Igualmente, en los comentarios podéis dejar vuestras dudas que intentaremos revolverlas.

¿Pero no decían que para usar GNU/Linux no se necesitaba usar la consola?

Efectivamente, para un usuario normal no es necesario usar la consola. Pero nosotros queremos ir mas allá: tanto para ser desarrollador como administrador de sistemas, sea un único ordenador o una red entera vamos a necesitar teclear. La mejor forma de aprender a programar es asentar unas buenas bases y escribir mucho código.
Una de las ventajas que tiene BASH son los comandos de ayuda y el manual. Es una solución muy eficiente ante pequeñas dudas que puedan invadirnos.  Os los enseñaremos en la serie de conociendo la terminal, así que no dudéis en seguirnos.

Dicho todo esto…¿qué cabe esperar?

Como hay lectores de todos los niveles y con la intención de que todos seamos capaces de defenderos en el mundo de la programación esta serie será de un nivel básico. Habrá más y con más nivel, mi intención es seguir formándome en programación y ayudar a aquellos que quieran aprender.

Las series didácticas requieren un tiempo para preparar el material que se ofrece, no quiero que os resulte muy lioso así que a cualquier duda, pregunta o sugerencia os agradecería que lo dejaseis en los comentarios. A parte de eso, cuando se alcance cierta cantidad de conocimientos, haremos actividades para poner en práctica lo aprendido. Además, os pido que en comentarios no sólo expongáis vuestras dudas también que, si tenéis los conocimientos necesarios, intentéis resolver las dudas de los demás. Si creamos una comunidad, por pequeña que sea, podremos crecer al enfrentarnos tanto a nuestros problemas como a los del resto.

Dicho esto, la siguiente publicación será práctica para ir adentrándonos poco a poco en el mundo de la programación. Sólo necesitáis un editor de texto plano o de código avanzado y ganas de aprender y practicar. Si tenéis editores de código avanzado favoritos, podéis recomendarlos. En colaboratorio.net preferimos el FLOSS así que algunos editores de texto plano con licencia GPL que vienen con nuestras distribuciones y podéis usar:

  • gEdit
  • Pluma o Xed
  • Leafpad
  • MousePad
  • Kate

También está el editor de código avanzado Geany con licencia GPL. Algunos de los de código avanzados con licencia MIT y gran cantidad de complementos para aumentar sus funcionalidades son:

Espero que les sea útil la lista ¡Nos vemos en clase compañeros!


 La imagen de cabecera tiene licencia CC BY-SA 4.0

avatar
16 Comment threads
13 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
18 Comment authors
Tecprog Worlddavid ochobitsFerranJosegabriel Recent comment authors

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

  Subscribe  
más nuevo más antiguo más votado
Notificarme de
trackback

[…] Visitar la fuente original […]

Anónimo
Lector
Anónimo

Soy un recién llegado a GNU/Linux y en el poco tiempo que llevo me entró la curiosidad por aprender sobre Bash y programación en general.
Estaré esperando con ansias el resto de los artículos 🙂

Nasher_87 (ARG)
Lector

Estoy en las mismas, aunque no soy recién llagado en Linux, llevo desde 2007 con Linux pero recién me pico el bichito de la programación, en parte por curiosidad y en otra parte por necesidad (no consigo trabajo de mi rubro, comercio exterior), por lo que quiero ir en firme, ir a lo seguro.

Marvin
Lector
Marvin

Hola buenas noches soy un chico de Bolivia q vivo en Madrid estoy estudiando Informatica me gusta Linux quisiera saber si saben de algún curso de certificación de Linux y q tal son los LPI de Linux gracias de antemano y me gusta todo lo q hacen

Ferran
Lector
Ferran

Las de RedHat están mejor valoradas por los recruiters!

RafaGCG
Suscriptor

Genial!!. Atento quedo.

ppnman
Lector

pues yo escucho mi colección de música así:

#!/bin/bash
SOURCE=/home/yo/Música/
PLAYLIST=/home/yo/playlist.m3u
SYNCLIST=/home/yo/.sync.list

find $SOURCE -type f -name ‘*.mp3’ | shuf –head-count=9 –output=$PLAYLIST
find $SOURCE -type f -name ‘*.ogg’ | shuf –head-count=3 >> $PLAYLIST
find $SOURCE -type f -name ‘*.m4a’ | shuf –head-count=1 >> $PLAYLIST

mplayer -playlist $PLAYLIST

cat $PLAYLIST >> $SYNCLIST

rm -v $PLAYLIST

echo ‘reproducción concluida,have a nice day’

exit

la .synclist es para sincronizar mi motorola,y esto lo hago así:

#!/bin/bash
SYNCLIST=/home/yo/.sync.list
CONV=/home/yo/CONV/
MOTO=/home/yo/Datos/moto

mkdir $CONV
cp -v cat $SYNCLIST $CONV
find $CONV -type f -name ‘*.ogg*’ -exec ffmpeg -i {} -c:a libmp3lame -b:a 128k -hide_banner {}.mp3 ; -exec rename -v ‘s/.ogg//’ {}.mp3 ; -exec rm -v {} ;
find $CONV -type f -name ‘*.m4a*’ -exec ffmpeg -i {} -c:a libmp3lame -b:a 128k -hide_banner {}.mp3 ; -exec rename -v ‘s/.m4a//’ {}.mp3 ; -exec rm -v {} ;
mv -v $CONV/*.mp3 $MOTO
rm -rv $CONV
rm -rv $SYNCLIST
touch $SYNCLIST
echo -e “# ###########SYNCLIST############ n# ################################” > $SYNCLIST
exit

sean felices 🙂

Duncan
Lector
Duncan

Por lo que he estado leyendo la versión de BASH para Windows 10 ha sido desarrollada en colaboración con Canonical (Bash on Ubuntu on Windows) y hay que instalarla ya que no viene por defecto. Excelente introducción al tema, Ish y estaré atento a la siguiente clase.

ApoLinux
Lector
ApoLinux

Gracias por esta estupenda iniciativa, estaré al pendiente de este curso.

Cesitar
Lector
Cesitar

Yo estaba preparando un manual para desenvolverse en el terminal y en el intérprete de mandatos. Sería el equivalente a tu serie de conociendo el terminal.

Pero me quedé estancado en uno de sus primeros capítulos. Dicho capítulo debía dar una serie de notas históricas que ayudarían a comprender el resto de capítulos. Pero tuve problemas para enlazar unos hechos con otros de manera amena y sin alargarme demasiado. También tuve dificultades para ser riguroso en algunas cosas.

Así que tengo el manual abandonado; esperando a que aparezcan las musas.

Si quieres, puedo enviarte el esquema que tenía planeado por si te sirve de algo. Puedo enviarlo al correo del Colaboratorio o subirlo a algún sitio.

QuijoteLibre
Suscriptor

Te has dejado Emacs 😉

Marcelo
Lector
Marcelo

Me apunto al curso!!!! Va a estar bueno.

Iago_0M
Lector

yo soy usuario de Linux desde hace tiempo y este año he empezado un FP sobre programación web, ahora mismo nos están enseñado java, pero también me apuntaré al curso, a ver si consigo sacar tiempo de algún sitio.

SaulVS
Lector
SaulVS

Buen día,

¿Me pregunto si usted continuará con los post sobre aprender a programar que menciono anteriormente?

Gracias, le deseo mucho excito

gabriel
Lector
gabriel

alguien me puede decir cuales son las ventajas de usar este lenguaje, y que tnto se puede hacer, soy nuevo en esto

Ferran
Lector
Ferran

Sirven para automatizar tareas del díaa a día en GNU/Linux!

Por ejemplo:

Si vas a instalar cPanel & WHM en un servidor con SO CENTOS7 en vez de ir al “WHM root” a configurar las “Tweak Settings” a mano, puedes crear un script y hacerlo automáticamente y poner la misma configuración igual en todos los servidores.

También puedes automatizar un backup, borrado de logs…

Para hacer un script para las “Tweak Settings” del cPanel & WHM:

#!/bin/bash
sed -i ‘s/parámetro=0/parámetro=1/g’ /var/cpanel/cpanel.config
/usr/local/cpanel/scripts/restartsrv_cpsrvd

Jose
Lector
Jose

Qué pasó con este hilo/post ???
Vas a volver ???

Ferran
Lector
Ferran

Hola,

En si mismo bash no es un lenguaje de programación. Si Python.

Wikipedia: Bash es un Intérprete de comandos de tipo Unix (shell) escrito para el proyecto GNU.

Yo prefiero el editor vi que es el estándar en UNIX!

david ochobits
Administrador

Bash es genial para crear guiones (scripts) en nuestros sistemas favoritos GNU Linux, además de en toda la familia UNIX.

No tiene nada que ver con un editor de textos; puedes crear scripts en python, perl, bash…., utilizando cualquier editor, ya sea vi, vim, nano, joe, emacs… y un largo etcétera.

Saludos

Tecprog World
Lector

Me interesa mucho el curso, un saludo desde Lima – Perú, GNU/Linux es la onda. <3