Si ha utilizado ficheros .BAT
para crear atajos de largas líneas de orden
(yo solía hacerlo), el objetivo puede ser obtenido insertando las líneas de
alias convenientes (ver ejemplo de más arriba) en el profile
o en el
.bash_profile
. Pero si sus ficheros .BAT
son más complicados, le
encantará el lenguaje de Script (guionado) que el shell pone a su disposición:
es tan potente como el viejo Qbasic (o más). Tiene variables, estructuras como
while
, for
, case
, if-then-else
, y montones de nuevas
características: puede ser una buena alternativa a un lenguaje de programación
«de verdad».
Para escribir una rutina (script) ---el equivalente a un fichero
.BAT
bajo DOS--- todo lo que tiene que hacer es escribir un fichero
ASCII estándar que contenga las instrucciones, guardarlo, y entonces
hacerlo ejecutable con la orden chmod +x fichero
. Para
ejecutarlo, teclee su nombre.
Aviso: el editor del sistema se llama vi
, y es un hecho probado que
la mayor parte de los nuevos usuarios lo encuentran muy difícil de usar.
No voy a explicar cómo usarlo; por favor, consulte el libro de Matt Welsh
o busque un cursillo en la red. Suficiente decir por ahora que:
ESC
y después `x';vi
sin guardar, pulse ESC
y después :q!
ESC
y luego :wq
joe
es un buen editor para novatos: llámelo tecleando jstar
y tendrá los mismos atajos de teclas que en el editor de DOSWin.
jed
en modo WordStar o IDE es incluso mejor. Por favor, consulte
la sección
Dónde encontrar aplicaciones para
ver dónde conseguir estos editores.
Escribir rutinas bajo bash es una materia tan extensa que requeriría un libro para abarcarla toda, y no voy a profundizar más allá en este tema. Sólo daré un ejemplo de script, del cual se pueden extraer las reglas básicas:
#!/bin/sh
# ejemplo.sh
# Soy un comentario
# no cambie la primera linea: debe estar ahi
echo "Este sistema es: `uname -a`" # usa la salida de la orden
echo "Me llamo $0" # variables intrinsecas
echo "Usted me dio $# parametros: "$*
echo "El primer parametro es: "$1
echo -n "¿Como se llama? " ; read su_nombre
echo fijese en la diferencia: "Hola, $su_nombre" # entrecomillando con "
echo fijese en la diferencia: 'Hola, $su_nombre' # entrecomillando con '
DIRS=0 ; FILES=0
for fichero in `ls .` ; do
if [ -d ${fichero} ] ; then # si el fichero esta en el directorio
DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1
else if [ -f ${fichero} ] ; then
FILES=`expr $FILES + 1`
fi
case ${fichero} in
gif|*jpg) echo "${fichero}: fichero grafico" ;;
*.txt|*.tex) echo "${fichero}: fichero de texto" ;;
*.c|*.f|*.for) echo "${fichero}: fichero de codigo fuente" ;;
*) echo "${fichero}: fichero generico" ;;
esac
done
echo "Hay ${DIRS} directorios y ${FILES} ficheros"
ls | grep "ZxY--!!!WKW"
if [ $? != 0 ] ; then # Sacar el codigo del ultimo orden
echo "ZxY--!!!WKW no encontrado"
fi
echo "ya es suficiente... Para mas informacion teclee 'man bash'."
Bajo Unix, el lenguaje del sistema es C, le guste o no. Pero también están a su disposición otros lenguajes como FORTRAN, Pascal, Lisp, Basic, Perl, awk...
Suponiendo que usted sepa C, hay un par de guías para aquellos que han
utilizado Turbo C++ o uno de sus hermanos bajo DOS. El compilador de C se
denomina gcc y carece de todas las florituras que normalmente acompañan a sus
análogos bajo DOS: no tiene IDE, ni ayuda en línea, ni debugger integrado,
etc... Es sólo un rústico compilador de línea de órdenes, muy potente y
eficiente. Esto es lo que debe teclear para compilar el típico programa
hello.c
:
$ gcc hello.c
lo que creará un fichero ejecutable llamado a.out
. Para cambiar el
nombre del ejecutable a otro nombre:
$ gcc -o hola hello.c
Para enlazar una librería al programa, añada la opción
-lnombre_de_librería
. Por ejemplo, para enlazar la librería
math
:
$ gcc -o mathprog mathprog.c -lm
(-lnombre_libreria
fuerza a gcc a enlazar la librería
/usr/lib/libnombre_librería.a
; por lo tanto -lm
enlaza
/usr/lib/libm.a
).
Bien. Pero cuando su programa está compuesto por varios ficheros de código
fuente, necesitará usar la utilidad make
. Supongamos que ha escrito un
evaluador de expresiones: su código fuente se denomina parser.c
e tiene un
#include
de dos ficheros en su cabecera: parser.h
y xy.h
.
Entonces, desea utilizar las rutinas de parser.c
en otro programa,
calc.c
, que hace un #include
de parser.h
. ¡Vaya lío! ¿Cómo se
puede compilar calc.c
?
Debe escribir un fichero llamado Makefile
, el cual muestra al compilador
las dependencias entre los ficheros de código fuente y los ficheros de código
objeto. En nuestro ejemplo:
# Este es el Makefile utilizado para compilar calc.c
# ¡Pulse la tecla <TAB> en las posiciones marcadas!
calc: calc.o parser.o
<TAB>gcc -o calc calc.o parser.o -lm
# calc depende de dos ficheros de codigo objeto: calc.o and parser.o
calc.o: calc.c parser.h
<TAB>gcc -c calc.c
# calc.o depende de dos ficheros de codigo fuente
parser.o: parser.c parser.h xy.h
<TAB>gcc -c parser.c
# parser.o depende de tres ficheros de codigo fuente
# fin de Makefile.
Guarde esto como Makefile
y teclee
$ make
para compilar su programa. Guárdelo como calc.mak
de forma
alternativa y teclee
$ make -f calc.mak
Y, por supuesto, LPM.
Puede pedir ayuda acerca de las funciones de C, que se encuentra en las
páginas man
, sección 3; por ejemplo:
$ man 3 printf
Hay muchas librerías disponibles por ahí; entre las primeras que deseará usar
están las ncurses
(efectos en modo texto) y svgalib
, (gráficos para
consola). Si se siente suficientemente valiente para atacar la programación
bajo X (no es tan difícil), hay muchas bibliotecas que harán mucho más fácil
escribir programas para X11. Eche un vistazo a
http://www.xnet.com/~blatura/linapp6.html
, teniendo en cuenta el
hecho de que Gtk se está volviendo un estándar.
Muchos editores pueden actuar como IDE. emacs
y jed
, por ejemplo,
proporcionan marcado de sintaxis, indentación automática, y cosas similares. De
manera alternativa, consiga el paquete rhide
de
ftp://sunsite.unc.edu:/pub/Linux/devel/debuggers/
. Es un clon del
IDE de Borland, y cabe la posibilidad de que le guste.