Manual de bash, Categoría:Gestores de descargas

De doc.ubuntu-es
(Diferencia entre las páginas)
Saltar a: navegación, buscar
m (arreglo categoría)
 
m (arreglo categoría)
 
Línea 1: Línea 1:
= Introducción =
+
Hola, soy muy nuevo dentro de esta aventura y se resiste la instalación de jDownloader, alguien me pude ayudar para intentar introducir las directrices correctas para su instalación? Gracias.
 
+
[[Categoría:Internet]]
bash es un shell de Unix (intérprete de órdenes de Unix) escrito para el proyecto GNU. Su nombre es un acrónimo de bourne-again shell (otro shell bourne) — haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros intérpretes importantes de Unix. Hacia 1978 el intérprete Bourne era el intérprete distribuido con el Unix Version 7. Stephen Bourne, por entonces investigador de los Laboratorios Bell, escribió el intérprete Bourne original . Brian Fox escribió el intérprete bash en 1987. En 1990, Chet Ramey se convirtió en su principal desarrollador. bash es el intérprete predeterminado en la mayoría de sistemas GNU/Linux, además de Mac OS X Tiger, y puede ejecutarse en la mayoría de los sistemas operativos tipo Unix. También se ha llevado a Microsoft Windows por el proyecto Cygwin.
+
 
+
== Conceptos Básicos ==
+
 
+
Para abrir una sesión de bash, lo más fácil es abrir una terminal. En GNOME está en el menú: Aplicaciones->Accesorios->Terminal. Lo que tendremos delante, se llama [[prompt]]. Se trata de una línea compuesta por el nombre de usuario "@" nombre de la máquina y un carácter separador. El separador será "$" si somos un usuario normal o "#" si somos root.
+
 
+
 
+
=== Introduciendo Órdenes ===
+
 
+
Para introducir una órden o comando, nada más fácil que teclear el nombre de la órden y presionar enter. La mayoría de las órdenes o comandos acepta parámetros. Para introducir un parámetro lo haremos a continuación de la órden o comando. por ejemplo, para introducir la órden ls:
+
 
+
Sin Parámetros:
+
 
+
<pre>juan@portatil$ ls </pre>
+
 
+
Con Parámetros:
+
 
+
<pre>juan@portátil$ ls -la </pre>
+
 
+
[[ Terminal | Vea ésto antes de seguir ]]
+
 
+
= Comandos y Rutas =
+
 
+
=== Autocompletado de órdenes y rutas ===
+
 
+
Bash nos da muchas facilidades de uso. Por ejemplo, podemos autocompletar órdenes o rutas.
+
 
+
Si quisiéramos que bash autocompletara una ruta, (por ejemplo /usr/lib/jvm/sun-java6) bastaría con empezar a escribirla e ir presionando la tecla tabulador de forma que: (-> equivale a tabulador)
+
 
+
Si hay más de una coincidencia, bash no autocompleta, si no que espera a que pulsemos de nuevo tabulador (->->) para mostrar todas las posibilidades.
+
 
+
<pre>
+
$/us->
+
$/usr/l->->
+
/lib /local
+
$/usr/li->
+
$/usr/lib->->
+
consolekit/        i686/              pcmciautils/      sudo/
+
dbus-1.0/          initramfs-tools/  perl/              tasksel/
+
dpkg/              jvm/              perl5/            tc/
+
</pre>
+
 
+
Lo mismo ocurre con los comandos. Si queremos ejecutar, por ejemplo depkg-reconfigure: (imaginemos que no recordamos cómo se escribe)
+
 
+
<pre>
+
$dpkg->->
+
dpkg                dpkg-gencontrol      dpkg-scansources
+
dpkg-architecture    dpkg-gensymbols      dpkg-shlibdeps
+
dpkg-buildpackage    dpkg-name            dpkg-source
+
dpkg-checkbuilddeps  dpkg-parsechangelog  dpkg-split
+
dpkg-deb            dpkg-preconfigure    dpkg-statoverride
+
dpkg-distaddfile    dpkg-query          dpkg-trigger
+
dpkg-divert          dpkg-reconfigure   
+
dpkg-genchanges      dpkg-scanpackages   
+
$dpkg-rec->
+
$dpkg-reconfigure
+
</pre>
+
 
+
=== Búsqueda de Comandos Ejecutados ===
+
 
+
Si queremos recuperar un comando ya ejecutado, podemos usar la flecha arriba para ir navegando por los comandos que ya hemos introducido. Si queremos buscar uno concreto y que además nos lo autocomplete, podemos pulsar control+r y empezar a escribir hasta que lo encuentre, entonces pulsaremos enter para introducirlo.
+
 
+
<pre>
+
$^R
+
$(reverse-i-search)`su': sudo aptitude install links
+
</pre>
+
 
+
'su' Es la parte que hemos escrito y lo siguiente a los dos puntos lo que ha encontrado.
+
 
+
== Comandos u Órdenes ==
+
 
+
La lista de comandos que podemos usar es bastante extensa, hay comandos para todas las tareas que podamos imaginar, algunos más conocidos que otros. Aquí hay una lista de comandos con sus argumentos más comunes:
+
 
+
[[ Comandos_de_uso_frecuente | Vea ésto antes de continuar ]]
+
 
+
== Variables de Entorno ==
+
 
+
Las variables de entorno son un tipo de variables que están definidas en el archivo .bashrc de cada usuario. En ellas se almacenan datos que serán legibles desde cualquier script o programa ejecutado en el terminal.
+
 
+
*HOME   
+
 
+
Nombre del directorio con la cuenta del usuario
+
                                     
+
*PATH   
+
 
+
Un conjunto de nombres de directorio separados por el símbolo : en los que buscar los comandos
+
 
+
*LOGNAME
+
 
+
Nombre del usuario
+
 
+
*SHELL
+
 
+
Nombre completo del shell que se está utilizando
+
 
+
*TERM
+
 
+
Tipo de terminal que se está utilizando
+
 
+
*PPID 
+
 
+
Número identificador del proceso padre
+
 
+
*PWD   
+
 
+
Nombre del directorio de trabajo actual
+
 
+
*OLDPWD
+
 
+
Nombre del anterior directorio de trabajo antes de ejecutar por última vez el comando cd
+
 
+
*RANDOM Un número entero generado al azar
+
     
+
* PS1
+
 
+
Cadena que presenta el shell cada vez que solicita un comando
+
 
+
*PS2   
+
 
+
Cadena que presenta el shell cada vez que solicita la continuación de un comando que ocupa varias líneas de pantalla
+
 
+
Para ver los valores de cada una de ellas basta con ejecutar: echo $NOMBRE DE LA VARIABLE. Por ejemplo:
+
 
+
<pre>
+
$echo $SEHLL
+
xterm
+
</pre>
+
 
+
= Sistema de Ficheros =
+
 
+
Tienes una referencia inicial [[Sistema_de_archivos | Aquí ]] Debería leerlo antes de continuar.
+
 
+
== Cambiando de directorio ==
+
 
+
Para saber en que directorio te encuentras, puedes usar el comando "pwd". Para cambiar de directorio debes usar el comando "cd" seguido del nombre del direcctorio.
+
 
+
<pre>
+
$pwd
+
/home/juan
+
$ls
+
.                ..
+
Plantillas        Proyectos
+
cpp              Público
+
Documentos        Escritorio
+
$cd EScritorio
+
$pwd
+
/home/juan/Escritorio
+
</pre>
+
 
+
Los símbolos "." y ".." tienen un significado especial. el Símbolo "." significa ruta local, es decir, la ruta donde nos encontramos. y el ".." significa el directorio padre o anterior.
+
 
+
=== Rutas Absolutas ===
+
 
+
Por ejemplo, si quisiéramos copiar un fichero del directorio padre al directorio actual, una forma de hacerlo sería utilizando rutas absolutas.
+
 
+
<pre>
+
$pwd
+
/home/juan/Escritorio
+
$cp /home/juan/fichero /home/juan/Escritorio
+
</pre>
+
 
+
=== Rutas Relativas ===
+
 
+
Pero algo más sencillo es usar las rutas relativas:
+
 
+
<pre>
+
$pwd
+
/home/juan/Escritorio
+
$cp ../fichero .
+
</pre>
+
 
+
Éso copiaría el fichero "fichero" del directorio "/home/juan" al directorio "/home/juan/Escritorio".
+
 
+
== Enlaces Simbólicos ==
+
 
+
= Scripts =
+
 
+
Los scripts, llamados también guiones, son secuencias de órdenes en un fichero. Se utilizan para automatizar tareas rutinarias. Por ejemplo, si todos los días cuando encendemos nuestro ordenador realizamos las mismas tareas, podemos hacer un guion o script que lo haga por nosotros.
+
 
+
Por ejemplo, si deseamos lanzar una copia a un dispositivo externo todos los días, haríamos algo así:
+
 
+
<pre>
+
#!/bin/bash
+
#La línea anterior indica el intérprete de comandos a utilizar. No es lo mismo bash que sh.
+
#Las líneas que empiezan por "#" son comentarios
+
 
+
echo "Montando Tu unidad Externa"
+
mount /dev/sdd1 /media/unidad_externa
+
 
+
echo "Copiando Ficheros de tu home a /media/unidad_externa"
+
cp -vr /home/pedro/* /media/unidad_externa
+
 
+
echo "Copiado, desmontando unidad"
+
 
+
umount /dev/sdd1
+
 
+
</pre>
+
 
+
El script anterior necesitaría permisos de root. Imaginemos que el script se llama backup.sh. Para lanzarlo necesitaría permisos de ejecución ( ver [[permisos]]) valdría con escribir: "./backup.sh"
+
 
+
== Variables ==
+
 
+
Las variables son espacios de memoria en los que podremos almacenar datos. Dentro de un script, para crear una variable simplemente escribiremos su nombre seguido de un igual (y si somos elegantes le asignaremos un valor inicial, aunque no es imperativo)
+
 
+
Por ejemplo:
+
 
+
<pre>
+
 
+
#!/bin/bash
+
#Se declaran las variables
+
variable1=hola
+
variable2=usuario
+
#Se sacan por pantalla
+
echo $variable1 $variable2
+
 
+
</pre>
+
 
+
Produciría la siguiente salida:
+
 
+
<pre> hola usuario </pre>
+
 
+
Para recuperar el valor de una variable, escribiremos "$" seguido del nombre de la variable. Cabe recordar que en ningún proceso de asignación debe predecer el "$" al nombre de la variable.
+
 
+
=== Asignación de Valores ===
+
 
+
De nada sirve una variable si no podemos asignarle valores variables ¿no? La asignación devalores se hace igual de simple. variable=valor. "valor" puede ser un número entero (es importante, porque bash sólo soporta números enteros) También podremos asignarles resultados de operaciones y el retorno de los comandos.
+
 
+
=== Asignación de la Salida de Comandos ===
+
 
+
Muchas veces desearemos asignar la salida de un comando a una variable, por ejemplo, para obtener el usuario que ejecuta el script. El comando "whoami" nos devuelve el nombre del usuario.
+
 
+
<pre>
+
#!/bin/bash
+
 
+
usuario=$(whoami)
+
echo "hola $usuario"
+
 
+
</pre>
+
 
+
Si éste script lo utilizara el usuario "pedro" la salida por pantalla sería:
+
 
+
<pre> hola pedro </pre>
+
 
+
=== Expansión de Variables ===
+
 
+
Podemos obtener más datos sobre las variables, por ejemplo, cuántos carácteres tiene una variable:
+
 
+
*${v}    Idéntico a $v. Se utiliza en los casos de ambigüedad
+
 
+
*${#v}    Número de caracteres de la cadena que contiene v
+
 
+
*${#v[*]} Número de elementos del vector v (Después Explicamos lo del vector)
+
 
+
*${v­c}  Si v ha sido definida su valor, en otro caso retorna c
+
 
+
*${v=c}  Si v ha sido definida su valor, en otro caso le asigna ahora el valor c
+
 
+
*${v+c}  Si v ha sido definida c, en otro caso la cadena vacía
+
 
+
=== Arrays ó Vectores ===
+
 
+
En programación, un vector, array, arreglo o alineación es un conjunto o agrupación de variables del mismo tipo cuyo acceso se realiza por índices. Desde el punto de vista del programa, un arreglo (matriz, array ó vector) es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo. La única limitación en este caso es que el índice de los mismos debe estar entre 0 y 511, por lo que tan sólo son posibles vectores de hasta 512 componentes.
+
 
+
Para crear un vector basta con asignar un valor a uno de sus componentes. Los restantes se irán creando de forma dinámica conforme se vayan necesitando:
+
 
+
<pre>
+
#!/bin/bash
+
# Script de creación de un vector.
+
 
+
archivos[0]=carta.txt
+
archivos[1]=informe.txt
+
archivos[2]=membrete.txt
+
 
+
echo ${archivos[0]}
+
echo ${archivos[1]}
+
echo ${archivos[2]}
+
echo "Tengo ${#archivos[*]} Archivos por hacer"
+
echo "Archivos por hacer: ${archivos[*]}"
+
 
+
</pre>
+
 
+
El script generaría ésta salida:
+
 
+
<pre>
+
 
+
carta.txt
+
informe.txt
+
membrete.txt
+
Tengo 3 Archivos por hacer
+
Archivos por hacer: carta.txt informe.txt membrete.txt
+
 
+
</pre>
+
 
+
 
+
 
+
== Operadores Aritméticos ==
+
 
+
Bash permite el uso de los operadores aritméticos comunes, pero tiene una limitación importante, sólo soporta números enteros, cualquier valor numérico con decimales es truncado a entero.
+
 
+
La forma común de calular es:
+
 
+
let "expresión"
+
 
+
<pre> let res=1+3 </pre>
+
 
+
No se puede usar ésta notación en las operaciones que aparecen los operadores *, < o >, puesto que estos carácteres tienen un significado especial para bash. Podemos evitar que shell los tome como carácteres especiales anidando la expresión dentro de dos paréntesis, de ésta forma:
+
 
+
<pre> (( res= 1 + 3 )) </pre>
+
 
+
Lo que hace que en la prática sólo se emplee ésta última notación.
+
 
+
Dentro de los paréntesis podemos llamar a las variables por su nombre con o sin "$".
+
 
+
=== Suma ===
+
 
+
<pre>
+
#!/bin/bash
+
echo " S U M A R "
+
echo -e "Primer Operador:\c"
+
read A
+
echo -e "Segundo Operador:\c"
+
read B
+
((RES=A+B))
+
echo "Resultado: $RES"
+
</pre>
+
 
+
=== Resta ===
+
 
+
<pre>
+
#!/bin/bash
+
echo " R E S T A R "
+
echo -e "Primer Operador:\c"
+
read A
+
echo -e "Segundo Operador:\c"
+
read B
+
((RES=A-B))
+
echo "Resultado: $RES"
+
</pre>
+
 
+
=== Multiplicacion ===
+
 
+
<pre>
+
#!/bin/bash
+
echo " M U L T I P L I C A R  "
+
echo -e "Primer Operador:\c"
+
read A
+
echo -e "Segundo Operador:\c"
+
read B
+
((RES=A*B))
+
echo "Resultado: $RES"
+
</pre>
+
 
+
=== División ===
+
 
+
<pre>
+
#!/bin/bash
+
echo " D I V I D I R  "
+
echo -e "Primer Operador:\c"
+
read A
+
echo -e "Segundo Operador:\c"
+
read B
+
((RES=A-B))
+
echo "Resultado: $RES"
+
</pre>
+
 
+
=== Módulo ===
+
 
+
<pre>
+
#!/bin/bash
+
echo " R E S T O  "
+
echo -e "Primer Operador:\c"
+
read A
+
echo -e "Segundo Operador:\c"
+
read B
+
((RES=A%B))
+
echo "Resultado: $RES"
+
</pre>
+
 
+
== Estructuras de Control ==
+
 
+
==== Evaluación If-Then ====
+
 
+
<pre>
+
 
+
#!/bin/bash
+
 
+
echo "Introduce tu Edad"
+
read edad
+
 
+
if [[ $edad -gt 18 ]]
+
then
+
    echo "Eres Mayor de Edad"
+
else
+
    echo -e "Eres Menor de Edad\c"
+
    if test  $edad -lt 18  -a  $edad -gt 13
+
    then
+
        echo " y estás en plena edad del pavo.. brrrlll"
+
    fi
+
fi
+
 
+
</pre>
+
 
+
 
+
==== Introducción a Test ====
+
 
+
=== Bucles ===
+
 
+
==== While ====
+
 
+
==== For ====
+
 
+
==== Until ====
+
 
+
== Funciones ==
+
 
+
= Véase También y Fuentes =
+
 
+
* [http://es.wikipedia.org/wiki/Array Array]
+
 
+
<!-- Categorías, NO BORRAR -->
+
 
+
[[Categoría:Terminal]]
+

Última revisión de 19:47 27 dic 2011

Hola, soy muy nuevo dentro de esta aventura y se resiste la instalación de jDownloader, alguien me pude ayudar para intentar introducir las directrices correctas para su instalación? Gracias.

Herramientas personales