Comandos de uso frecuente, Manual de bash

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:
En esta página encontrás '''comandos que se utilizan habitualmente''' en la administración de un sistema GNU/Linux (particularmente [[Ubuntu]]) a través de la línea de comandos. Ordenados por temática.
+
= Introducción =
  
 +
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.
  
== Aclaración sobre este artículo ==
+
== Conceptos Básicos ==
  
En el siguiente artículo se incluyen comandos acompañados de opciones/parámetros. Los elementos entre corchetes se han de escribir sin los corchetes a la hora de ponerlos en la consola.
+
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.
  
::'''Ejemplo:''' Mostrar el contenido del fichero ''carta.txt''
 
  
En este artículo veríamos:
+
=== Introduciendo Órdenes ===
  
cat [fichero]
+
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:
  
pero en realidad tendremos que escribir en la consola:
+
Sin Parámetros:
  
cat carta.txt
+
<pre>juan@portatil$ ls </pre>
  
== Ficheros y miscelánea ==
+
Con Parámetros:
  
{| {{Tablamarron}}
+
<pre>juan@portátil$ ls -la </pre>
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="3" valign="top" | '''ls'''
+
| rowspan="3" valign="top" | Lista los archivos de un directorio concreto
+
| '''ls -l''' = Añade información sobre los atributos
+
|-
+
|'''ls -a''' = Lista todos los archivos incluyendo los ocultos
+
|-
+
|'''ls -R''' = Lista el contenido del directorio y todos sus subdirectorios recursivamente
+
|-
+
|'''cat ''[fichero]'''''
+
|Muestra el contenido de un fichero
+
|'''cat -n ''[fichero]''''' = Muestra el contenido de un fichero numerando sus lineas
+
|-
+
|'''more [fichero]'''
+
|Muestra un fichero de forma tabulada como una página del '''man'''
+
|
+
|-
+
|'''less ''[fichero]'''''
+
|Similar a '''more''', permite tanto avanzar como retroceder entre las páginas
+
|
+
|-
+
|'''echo ''[cadena]'''''
+
|Repite la cadena
+
|'''echo -e ''[cadena]''''' = Habilita la interpretación de caracteres de escape
+
|-
+
|'''stat ''[fichero]'''''
+
|Muestra el estado de un fichero
+
|'''stat -f ''[fichero]''''' = Muestra el estado del sistema de ficheros
+
|-
+
|'''tail ''[archivo]'''''
+
|Muestra las ultimas lineas de un archivo
+
|'''tail -n ''[n]'' ''[archivo]''''' = Muestra las ultimas n lineas del archivo
+
|-
+
|'''head [archivo]'''
+
|Muestra las primeras lineas de un archivo
+
|'''head ''[n]'' ''[archivo]''''' = Muestra las ''n'' primeras lineas de un archivo
+
|-
+
| rowspan="4" valign="top" | '''find ''[patron]'''''
+
| rowspan="4" valign="top" | Busca las coincidencias con el patrón dentro del directorio y sus subdirectorios
+
|'''find ''[ruta]'' ''[patron]''''' = Busca las coincidencias con el patron dentro de la ruta
+
|-
+
|'''find ''[patron]'' -print''' = Busca las coincidencias y muestra la ruta completa de estas.
+
|-
+
|'''find -size ''[tam]''''' = Busca aquellos archivos menores que el tamaño señalado
+
|-
+
|'''man find''' = Muestra un listado las múltiples opciones y usos de find
+
|-
+
|'''whereis ''[programa]'''''
+
|Busca la ruta donde se encuentra el programa, su ayuda, etc.
+
|
+
|-
+
|rowspan="3"|'''grep [opciones] ''[expresión regular]'' ''nombredearchivo'''''
+
|rowspan="3"|Toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para esa expresión regular. También podemos redireccionar la salida de un determinado comando por medio de una [[Tuberías|tubería]] (Alt Gr+ 1) y filtrarla con grep usando la expresión regular como criterio.
+
|'''grep ''cadena'' archivo''' = Muestra las líneas del archivo que contienen la cadena
+
|-
+
|'''ps -ef <nowiki>|</nowiki> grep ''nombredeproceso''''' = Lista los procesos que se estén ejecutando y que contengan la cadena ''nombredeproceso''
+
|-
+
|'''grep ''palabra'' *''' = Muestra todas las líneas que contienen la cadena "''palabra''" en una lista de archivos (donde "*" representa todos los archivos en el directorio actual)
+
|-
+
|'''type ''[comando]'''''
+
|Busca la ruta donde se encuentra el comando
+
|
+
|-
+
|'''which ''[programa]'''''
+
|Busca la ruta donde se encuentra el programa o comando
+
|
+
|-
+
|'''pwd'''
+
|Muestra el directorio actual
+
|
+
|-
+
|'''history'''
+
|Muestra los comandos utilizados por el usuario en orden cronológico
+
|
+
|-
+
|'''fc -l'''
+
|Muestra los últimos comandos usados por el usuario
+
|
+
|-
+
|'''eject ''[unidad óptica]'''''
+
|Expulsa la unidad óptica seleccionada (Podemos encontrarlas en ''/media'')
+
|'''eject -t ''[unidad óptica]''''' = Cierra la bandeja de la unidad óptica (cdrom, dvd ...)
+
|-
+
| rowspan="3" valign="top" | '''cd'''
+
| rowspan="3" valign="top" | Cambia al home o al directorio raíz si se lanza como root
+
| '''cd ''[ruta]''''' = Se desplaza al directorio especificado en la ruta
+
|-
+
|'''cd ..''' = Se mueve al directorio anterior
+
|-
+
|'''cd ../..''' = Se mueve dos directorios atrás.
+
|-
+
| rowspan="3" valign="top" | '''cp ''[origen] [destino]'''''
+
| rowspan="3" valign="top" | Copia el archivo origen al directorio destino
+
| '''cp -R ''[origen] [destino]''''' = Copia un directorio recursivamente (directorio y subdirectorios)
+
|-
+
|'''cp -p ''[origen] [destino]''''' = Copia preservando los permisos y las fechas
+
|-
+
|'''cp ''[archivo] [archivo nombre cambiado]''''' = Copia el archivo y lo cambia de nombre
+
|-
+
| rowspan="3" valign="top" | '''mv ''[origen] [destino]'''''
+
| rowspan="3" valign="top" | Mueve al archivo origen al directorio destino
+
| '''mv ''[archivo] [archivo_nombre_cambiado]''''' = Cambia de nombre un archivo
+
|-
+
|'''mv''' se parece a '''cp''', excepto que borra el archivo original después de copiarlo. Se puede entender como la utilización conjunta de cp y rm.
+
|-
+
|'''mv''' renombra un archivo (que es el primer parámetro) si el segundo parámetro es un archivo. Si el segundo parámetro es un directorio, mv moverá el archivo al nuevo directorio, manteniendo el mismo nombre simple.
+
|-
+
|'''mkdir ''[directorio]'''''
+
| Crea un nuevo directorio dentro del directorio.
+
|
+
|-
+
|'''rmdir ''[directorio vacío]'''''
+
| Elimina el directorio vacío
+
|
+
|-
+
|'''rm ''[archivo]'''''
+
| Elimina un archivo completamente
+
|'''rm -r ''[directorio]''''' = Elimina un directorio recursivamente (directorio y subdirectorios)
+
|-
+
|'''ln ''[archivo]'''''
+
|Crea un enlace duro (mismo archivo con distintos nombre)
+
|'''ln -s ''[archivo]''''' = Crea un enlace blando
+
|-
+
| rowspan="3" valign="top" | '''diff ''[opciones] [fichero1] [fichero2]'''''
+
| rowspan="3" valign="top" | Compara los dos ficheros
+
| '''diff -w ''[fichero1] [fichero2]''''' = Descarta el espacio en blanco cuando compara las lineas
+
|-
+
|'''diff -q ''[fichero1] [fichero2]''''' = Informa solo si los ficheros son distintos
+
|-
+
|'''diff -y ''[fichero1] [fichero2]''''' = Muestra la salida a dos columnas
+
|-
+
|'''passwd'''
+
|Permite al usuario cambiar su contraseña
+
| '''sudo passwd''' = Permite al usuario cambiar o crear la contraseña de root
+
|-
+
|'''man ''comando'''''
+
|Muestra el manual de un comando, un paquete, etc. Resulta muy útil para aprender a utilizar dicho comando, sus modificadores y argumentos.
+
| '''man ''aptitude''''' = Nos despliega la ayuda de '''aptitude''', sus opciones y posibilidades.
+
|-
+
|'''clear'''
+
|Limpia la pantalla
+
|
+
|-
+
|'''reset'''
+
|Reinicia la terminal
+
|
+
|-
+
| rowspan="3" valign="top" | '''date'''
+
| rowspan="3" valign="top" | Muestra la hora y la fecha en formato completo
+
| '''date -u''' = Muestra la hora y fecha en formato completo en UTC
+
|-
+
|'''date '+format'''' = Formatea la hora y la fecha -> date '+Dia: %m/%d/%y%n Hora:%H:%M:%S'
+
|-
+
|'''man date''' = Muestra un listado con todos los posibles formatos
+
|-
+
|'''who'''
+
|Muestra los usuarios que hay logeados en el sistema
+
|
+
|-
+
|'''whoami'''
+
|Muestra la información del propio usuario
+
|
+
|-
+
|'''write ''[user]'''''
+
|Permite mandar un mensaje a un usuario conectado al sistema (valido para red), para finalizar pulsar '''Ctrl+D'''
+
|
+
|-
+
|'''mesg'''
+
|Muestra el estado actual de la terminal
+
| '''mesg [y <nowiki>|</nowiki> n]''' = Esta orden permite al usuario que la ejecuta habilitar (y) o inhibir (n) el permiso de escritura sobre su terminal
+
|-
+
|'''mail ''[usuario]'''''
+
|Permite intercambiar correo electrónico con otros usuarios. Similar a '''write''' solo que el usuario no necesita estar conectado.
+
|
+
|-
+
| rowspan="6" valign="top" | '''uname'''
+
| rowspan="6" valign="top" | Muestra el sistema UNIX sobre el que estamos trabajando
+
| '''uname -a''' = Muestra toda la información sobre el tipo de sistema que se esta utilizando
+
|-
+
|'''uname -m''' = Muestra el tipo de arquitectura que se esta utilizando
+
|-
+
|'''uname -s''' = Muestra el nombre del sistema
+
|-
+
|'''uname -n''' = Muesta el nombre por el que se identifica el sistema en la red
+
|-
+
|'''uname -r''' = Muestra la revision (release) del kernel que estamos usuando
+
|-
+
|'''uname -v''' = Muestra la version del kernel que estamos usando
+
|-
+
| rowspan="2" valign="top" | '''chmod [+|-][rwx] ''[archivo]'''''
+
| rowspan="2" valign="top" | Añade'''(+)''' o elimina'''(-)''' los permisos de lectura'''(r)''', escritura'''(w)''' o ejecucion'''(x)''' del archivo o directorio.
+
| '''chmod [u|g|o|a][+|-][rwx] ''[archivo]''''' = Cambia los persmisos al usuario'''(u)''', grupo'''(g)''', otros'''(o)''' o a todos'''(a)'''
+
|-
+
|'''chmod ''[mascara] [archivo]''''' = Cambia los permisos al archivo segun la mascara, donde '''000''' quita todos los permisos y '''777''' da todos los permisos.
+
|-
+
|'''umask'''
+
|Muestra los permisos con los que el usuario creara sus archivos por defecto
+
| '''umask ''[mascara]''''' = Fija los permisos que tendra por defecto cualquier archivo creado por el usuario. 777 quita todos los permisos y 000 da todos los permisos.
+
|-
+
|'''chown ''[nuevo propietario] [archivos]'''''
+
|Cambia de propietario a los archivos
+
|
+
|-
+
|'''chgrp ''[grupo nuevo][archivos]'''''
+
|Cambia de grupo a los archivos
+
|
+
|-
+
|'''mkfs.msdos /dev/fd0'''
+
|Formatea en formato MsDos un disquette
+
|
+
|-
+
|'''fdformat /dev/fd0'''
+
|Formatea en formato MsDos un disquette y despues verifica el formateo
+
|
+
|-
+
|'''sleep ''[tiempo]'''''
+
|Congela la terminal durante los segundos especificados
+
|
+
|-
+
|'''export ''[identificador][=valor]'''''
+
|Define, marca y/o asigna el identificador(es) como variables de entorno que seran exportada a los subprocesos que se generen.
+
|
+
|-
+
|'''unset ''[identificador]'''''
+
|Permite eliminar una variable identificada por su nombre o identificador
+
|
+
|-
+
|'''<nowiki>|</nowiki>'''
+
|Redirecciona la salida de un comando con la entrada del siguiente comando
+
| Se escribe mediante '''Alt Gr + 1'''
+
|-
+
|'''alias nombre='comando''''
+
|Asigna un nombre simbolico a un comando
+
|
+
|}
+
  
== Ejecutables ==
+
[[ Terminal | Vea ésto antes de seguir ]]
  
{| {{Tablamarron}}
+
= Comandos y Rutas =
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="2" valign="top" | '''sh ''nombredeejecutable.sh'''''
+
| rowspan="2" valign="top" | Ejecuta un archivo ejecutable '''.sh'''
+
| '''bash ''nombredeejecutable.sh''''' = Otra forma de ejecutar un archivo ejecutable '''.sh'''
+
|-
+
|'''./''nombredeejecutable.sh''''' = Otra forma de ejecutar un archivo ejecutable '''.sh'''
+
|}
+
  
== Impresión ==
+
=== Autocompletado de órdenes y rutas ===
  
 +
Bash nos da muchas facilidades de uso. Por ejemplo, podemos autocompletar órdenes o rutas.
  
{| {{Tablamarron}}
+
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)
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| '''lpr ''fichero'''''
+
| Añade el fichero a la cola de impresion
+
| '''lpr -#n fichero''' = Realiza "n" copias del fichero, donde n es un numero natural (1,2,3,4,5 ...)
+
|-
+
| '''lpq'''
+
| Muestra los documentos en la cola
+
|
+
|-
+
| '''lprm'''
+
| Cancela la impresion del documento actual
+
|
+
|-
+
| '''lprm n'''
+
| Cancela la impresion del trabajo n, siendo n un numero natural.
+
|
+
|-
+
|rowspan=4|'''pr +2 l70 -w 80 -h "Comandos" ''fichero'' -t'''
+
|rowspan=4|Formatea un archivo de texto para la impresion
+
|'''-t''' = No imprimira cabeceras ni pies de pagina
+
|-
+
|'''l70''' = Establece la longitud de la página de 70 lineas (66 por defecto)
+
|-
+
|'''-w 80''' = Establece el ancho de linea en 80 caracteres(72 por defecto).
+
|-
+
|'''-h "Comandos"''' = Establece "Comandos" como cabecera de cada página.
+
|-
+
|'''pr l70 -d ''comandos.txt'' <nowiki>|</nowiki> lpr'''
+
|Una vez formateado el texto lo manda a la cola de impresion
+
|
+
|}
+
  
== Formatos ==
+
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>
  
{| {{Tablamarron}}
+
Lo mismo ocurre con los comandos. Si queremos ejecutar, por ejemplo depkg-reconfigure: (imaginemos que no recordamos cómo se escribe)
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="4" |'''tidy ''fichero.html'''''
+
| rowspan="4" |Analiza el codigo de un documento html
+
| '''tidy -m ''fichero.html''''' = Corrige modificando el codigo del fichero html
+
|-
+
| '''tidy -m -asxml ''fichero.html''''' = Convierte el fichero html a xml
+
|-
+
| '''tidy -m -asxhtml ''fichero.html''''' = Convierte el fichero html a xhtml
+
|-
+
| '''tidy -m -ashtml ''fichero.xhtml''''' = Convierte un fichero xhtml a html
+
|-
+
| '''pdftops ''fichero.pdf'' ''fichero.ps'''''
+
| Convierte un fichero pdf a ps
+
|
+
|}
+
  
== Compresión y descompresión ==
+
<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>
  
{| {{Tablamarron}}
+
=== Búsqueda de Comandos Ejecutados ===
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="2" valign="top" | '''zip -r ''fichero.zip ficheros''''' 
+
| rowspan="2" valign="top" | Comprime en formato .zip
+
| '''unzip ''archivo.zip''''' = Descomprime un .zip
+
|-
+
|'''unzip -v ''archivo.zip''''' = Muestra el contenido de un .zip sin descomprimirlo
+
|-
+
| rowspan="3" valign="top" | '''rar a -r0 ''fichero.rar ficheros'''''
+
| rowspan="3" valign="top" | Comprime los ficheros en formato .rar
+
| '''unrar e -r ''archivo.rar''''' = Descomprime el fichero.rar en el directorio actual
+
|-
+
|'''unrar x -r ''archivo.rar ruta_destino''''' = Extrae el fichero.rar en la ruta especificada
+
|-
+
|'''unrar v archivo.rar''' = Muestra el contenido del fichero.rar sin descomprimirlo
+
|-
+
| rowspan="2" valign="top" | '''gzip -r ''ficheros'''''
+
| rowspan="2" valign="top" | Comprime ficheros a gz
+
| '''gzip -d ''fichero.gz''''' = Descomprime un fichero.gz
+
|-
+
|'''gzip -c ''fichero.gz''''' = Muestra el contenido de un fichero.gz sin descomprimirlo
+
|-
+
| rowspan="2" valign="top" | '''bzip2 ''ficheros'''''
+
| rowspan="2" valign="top" | Comprime ficheros al formato bz2
+
| '''bzip2 -d fichero.bz2''' = Descomprime un fichero.bz2
+
|-
+
|'''bzip2 -c fichero.bz2''' = Muestra el contenido de un fichero.bz2 sin descomprimirlo
+
|-
+
| rowspan="2" valign="top" | '''tar -vcf ''archivo.tar'' ''/fichero1 /fichero2'' ...'''
+
| rowspan="2" valign="top" | Empaqueta ficheros o directorios en tar
+
| '''tar -vxf ''archivo.tar''''' = Desempaqueta el ''archivo.tar''
+
|-
+
|'''tar -vtf ''archivo.tar''''' = Muestra el contenido del archivo.tar sin descomprimirlo
+
|-
+
| rowspan="2" valign="top" | '''tar -zvcf ''archivo.tgz directorio'''''
+
| rowspan="2" valign="top" | Empaqueta y comprime (tgz) directorios o ficheros
+
| '''tar -zvxf ''archivo.tgz''''' = Desempaqueta y descomprime un ''archivo.tgz''
+
|-
+
|'''tar -zvtf ''archivo.tgz''''' = Muestra el contenido de un tgz sin descomprimirlo ni desempaquetarlo
+
|-
+
| rowspan="2" valign="top" | '''tar -jvcf ''archivo.tbz2 directorio'''''
+
| rowspan="2" valign="top" | Empaqueta y comprime (tbz2) directorios o ficheros
+
| '''tar -jvxf ''archivo.tbz2''''' = Desempaqueta y descomprime el archivo.tbz2
+
|-
+
|'''tar -jvtf ''archivo.tbz2''''' = Muestra el contenido sin desempaquetar ni descomprimir el .tbz2
+
|}
+
  
== Renombrado ==
+
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>
  
{| {{Tablamarron}}
+
'su' Es la parte que hemos escrito y lo siguiente a los dos puntos lo que ha encontrado.
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="5" | '''rename 'y/A-Z/a-z/' *.zip'''
+
| rowspan="5" | Cambia mayusculas por minisculas en todos los .zip.
+
|'''*.zip''' indica el tipo de archivos a renombrar (llamado con * renombra todos).
+
|-
+
|'''A-Z''' indica el patron a modificar.
+
|-
+
|'''a-z''' indica el patron por el que se modifica.
+
|-
+
|'''rename 'y/ /_/' *''' cambia espacios por _ en todos los archivos.
+
|-
+
| '''rename 's/expresión //' *.mp3''' = Elimina una expresion de todos los mp3.
+
|}
+
  
== Gráficos ==
+
== Comandos u Órdenes ==
  
{| {{Tablamarron}}
+
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:
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
|'''glxinfo'''
+
|Informacion sobre OpenGl y Glx
+
|'''glxinfo <nowiki>|</nowiki> grep "direct rendering"''' = Indica si esta activada la aceleracion 3D
+
|-
+
|'''showrgb'''
+
|Muestra los colores reconocidos por el sistema y su codigo RGB
+
|
+
|-
+
|'''banner texto'''
+
|Muestra un cartel ascii con el texto de forma vertical
+
| '''banner -w[n] texto''' = Hace el banner con el tamaño indicado por n, siendo n un numero (Sin los corchetes)
+
|-
+
| rowspan="3" valign="top" | '''figlet texto'''
+
| rowspan="3" valign="top" | Muestra un cartel ASCII con el texto de forma horizontal
+
| '''figlet -w[n] texto''' = Similar a banner pero en formato horizontal
+
|-
+
|'''figlet -t texto''' = La salida se mostrara con su anchura maxima
+
|-
+
|'''figlet -c texto''' = La salida se mostrara centrada
+
|-
+
|'''xwd > ''ventana.xwd'''''
+
|Captura una ventana
+
|'''xwd -root -screen > ''pantalla.xwd''''' = Captura la pantalla
+
|-
+
|'''gnome-screenshot'''
+
|Captura la pantalla en el escritorio gnome
+
|'''gnome-screenshot --window''' = Captura la ventana en el escritorio gnome
+
|-
+
|'''import -window - ''ventana.jpg'''''
+
|Captura una ventana en cualquier formato
+
|
+
|-
+
|'''xwud -in ''pantalla.xwd'''''
+
|Muestra imagenes en formato .xwd
+
|
+
|-
+
|'''identify ''imagen.gif'''''
+
|Muestra las propiedades de una imagen
+
|
+
|-
+
|'''pdfimages ''fichero.pdf nombre_para_las_imágenes'''''
+
|Extrae las imagenes de un .pdf
+
|
+
|-
+
|'''convert *.jpg ''catálogo.pdf'''''
+
|Crea un catalogo pdf con las imagenes
+
|
+
|-
+
|'''display "vid:*.jpg"'''
+
|Crea un indice grafico con las miniaturas
+
|
+
|-
+
|'''convert ''imágen_color.jpg'' -monochrome ''imágen_b/n.jpg'''''
+
|Convierte una imagen a blanco y negro
+
|
+
|-
+
|'''convert ''imagen_original.ppm imagen_nueva.jpg'''''
+
|Cambia el formato de una imagen
+
|
+
|-
+
|'''convert -sample 100x50 ''imagen_original.jpg imagen_nueva.jpg'''''
+
|Cambia las dimensiones de una imagen
+
|
+
|-
+
|'''mogrify -format jpg *.ppm'''
+
|Convierte a .jpg todas las imagenes .ppm
+
|
+
|-
+
|'''mogrify -format png -sample 20%x20% *.jpg'''
+
|Crea miniaturas de varias imagenes
+
|
+
|-
+
|'''convert -delay 15 ''imag1.jpg imag2.jpg imag3.jpg remero.gif'''''
+
|Crea un gif animado con varias imágenes (15 es el tiempo entre imagenes en centésimas)
+
|
+
|-
+
|'''convert ''imagen.gif'' -adjoin ''imagen.jpg'''''
+
|Extrae los fotogramas de un .gif animado
+
|
+
|-
+
|'''convert -font courier -fill yellow -pointsize 25 -draw 'text 100,250 texto' ''imagen.jpg imagen_con_txt.jpg'''''
+
|Añade texto a una imagen
+
|
+
|}
+
  
== Imágenes ==
+
[[ Comandos_de_uso_frecuente | Vea ésto antes de continuar ]]
  
 +
== Variables de Entorno ==
  
{| {{Tablamarron}}
+
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.
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| '''mkisofs -R -J -T -o imagen1.iso fichero1'''
+
| Crea una imagen de un fichero que se encuentre en nuestro disco duro.
+
|
+
|-
+
| '''dd if=/dev/cdrom of=''imagen.iso'''''
+
| Crea una imagen del cd-rom y la vuelca en ''imagen.iso''
+
|
+
|-
+
| '''cat ''/dev/cdrom'' > ''archivo.iso'''''
+
| Similar al anterior
+
|
+
|-
+
| '''nrg2iso ''imagen.nrg'' ''imagen.iso'''''
+
| Convierte una imagen .nrg a .iso
+
| Para usar este comando es imprescindible instalar el paquete '''nrg2iso'''
+
|-
+
| '''bin2iso ''imagen.cue'''''
+
| Convierte una imagen .bin o .cue a .iso
+
| Para usar este comando es imprescindible instalar el paquete '''bin2iso'''
+
|-
+
| '''ccd2iso ''imagen.img'' ''imagen.iso'''''
+
| Convierte una imagen img/ccd/sub/cue a .iso
+
| Para usar este comando es imprescindible instalar paquete '''ccd2iso'''
+
|-
+
| '''mdf2iso ''imagen.mdf'' ''imagen.iso'''''
+
| Convierte una imagen .mdf o .mds a .iso
+
| Para usar este comando es imprescindible instalar paquete '''mdf2iso'''
+
|-
+
| '''mount -t iso9660 -o loop ''imagen.iso'' ''punto_montaje'''''
+
| Monta una imagen .iso
+
|
+
|-
+
| '''umount ''punto_montaje'''''
+
| Desmonta una imagen
+
|
+
|-
+
| '''md5sum ''archivo.iso'' > ''archivo.iso.txt'''''
+
| Genera la suma md5 de un archivo .txt
+
|
+
|-
+
| '''md5sum -w -c archivo.iso.txt'''
+
| Verifica la suma md5 de un archivo
+
|
+
|}
+
  
== Grabación de CD y DVD ==
+
*HOME   
  
{| {{Tablamarron}}
+
Nombre del directorio con la cuenta del usuario
|-
+
                                     
! {{Encabezadomarron}} |Comando
+
*PATH   
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| '''cdrecord -v dev=0,0,0 fs=16M speed=30 ''imagen.iso'''''
+
| Grabar un cd de datos/imagen
+
|
+
|-
+
| '''cdrecord -v dev=0,0,0 fs=16M speed=30 -eject -isosize ''/dev/sr1'''''
+
| Copiar un cd de datos/imagen
+
|
+
|-
+
| '''cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav'''
+
| Grabar un cd de audio
+
|
+
|-
+
| '''cdrdao copy -v 2 --device 0,0,0 --source-device 0,1,0 --reload \ --eject --on-the-fly --fast-toc --paranoia-mode 0'''
+
| Copia un cd de audio
+
|
+
|-
+
| '''cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav -data imagen.iso'''
+
| Graba un cd mixto
+
|
+
|-
+
| '''cdrecord -v blank=fast'''
+
| Borrar un cd regrabable
+
|
+
|-
+
| '''growisofs -Z /dev/sr0 -R -J ''archivo'''''
+
| Grabar un cd de datos/imagen
+
|
+
|-
+
| '''growisofs -M /dev/sr0 -R -J ''archivo'''''
+
| Añade más datos a un dvd multisesión
+
|
+
|-
+
| '''growisofs -dvd-compat -Z /dev/sr0=imagen.iso'''
+
| Graba una imagen previamente creada
+
|
+
|-
+
| '''dvdrecord -v dev=0,0,0 blank=fast'''
+
| Borra un dvd regrabable
+
|
+
|-
+
| '''dvdbackup -M -i/dev/sr0 -o ~/copia_dvd/'''
+
| Ripea un video dvd
+
|
+
|-
+
| '''vobcopy -i /dev/sr0 -m -o ~/copia_dvd/'''
+
| Similar a la anterior
+
|
+
|}
+
  
== Extracción de CD ==
+
Un conjunto de nombres de directorio separados por el símbolo : en los que buscar los comandos
  
{| {{Tablamarron}}
+
*LOGNAME
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| '''cdda2wav -B -H -D /dev/sr1 -s -x'''
+
| Extrae un disco de audio completo en archivos .wav separados
+
|
+
|-
+
| '''cdda2wav -H -D /dev/sr1 -s -x -t 5'''
+
| Extrae la pista número 5
+
|
+
|-
+
| '''cdparanoia -B -d /dev/sr1'''
+
| Extrae un disco de audio completo en archivos .wav separados
+
|
+
|-
+
| '''cdparanoia 5 -d /dev/sr1'''
+
| Extrae la pista número 5
+
|
+
|-
+
| rowspan="3" | '''abcde -d /dev/sr1 -N -x -o mp3'''
+
| rowspan="3" | Extrae disco completo en archivos mp3 separados (es necesario instalar paquete '''abcde''')
+
| '''abcde -d /dev/sr1 -N -x -o mpc''' = Extrae el disco completo en archivos .mpc separados
+
|-
+
| '''abcde -d /dev/sr1 -N -x -o ogg''' = Extrae el disco en archivos .ogg separados
+
|-
+
| '''abcde -d /dev/sr1 -N -x -o ogg tracks 1-3 5''' = Extrae las 3 primeras canciones y la quinta
+
|}
+
  
== Audio ==
+
Nombre del usuario
  
{| {{Tablamarron}}
+
*SHELL
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| '''lame -b 192 -m j ''tema.wav'''''
+
| Convierte una cancion .wav a .mp3 con bitrate de 192
+
| Elvalor '''192''' puede cambiarse y la opción '''-h''' indica máxima calidad)
+
|-
+
| '''lame -h -m j --nogap *.wav'''
+
| Convierte todos los archivos .wav a .mp3
+
|
+
|-
+
| rowspan="4" | '''oggenc -b 128 -q 5 ''tema.wav'''''
+
| rowspan="4" | Convierte un archivo .wav a .ogg con bitrate de 128 ('''-b 128''') y calidad 5 ('''-q 5''') en un rango de 0 a 10.
+
| '''oggenc *.wav''' = Convierte todos los wav en un unico fichero ogg
+
|-
+
| '''oggenc -a -l -t *.wav''' = Convierte todos los .wav en sus respectivos ogg
+
|-
+
| '''oggdec tema.ogg''' = Convierte un archivo .ogg a .wav
+
|-
+
| '''oggdec *.ogg''' = Convierte todos los .ogg a .wav
+
|-
+
| '''lame -h --decode ''tema.mp3'' ''tema.wav'''''
+
| Convierte un archivo .mp3 a .wav
+
|
+
|-
+
| '''mplayer -ao pcm ''fichero.asf'''''
+
| Convierte un archivo .asf o .wma a .wav
+
|
+
|-
+
| '''play ''cancion'''''
+
| Reproduce una cancion en la terminal
+
|
+
|}
+
  
== Varios ==
+
Nombre completo del shell que se está utilizando
  
{| {{Tablamarron}}
+
*TERM
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="2" valign="top" | '''man ''comando'''''
+
| rowspan="2" valign="top" | Muestra información sobre el comando
+
| '''apropos ''palabra_clave''''' = Busca dentro de las declaraciones de man la palabra exacta
+
|-
+
|'''apropos -e ''palabra_clave''''' = Busca la palabra exacta
+
|-
+
|'''cal'''
+
|Muestra el calendario del mes actual
+
|'''cal -my''' = Muestra el calendario de todo el año
+
|-
+
|'''uptime'''
+
|Muestra la hora,tiempo de funcionamiento,no usuarios conectados y la carga media
+
|
+
|-
+
|'''tzconfig'''
+
|Permite seleccionar la zona horaria
+
|
+
|-
+
|'''tzselect'''
+
|Permite seleccionar la zona horaria
+
|
+
|-
+
|'''date'''
+
|Muestra la fecha del sistema en formato local
+
| '''date --help''' = Muestra todas las opciones de date en castellano
+
|-
+
|'''hwclock --show'''
+
|Muestra el reloj Hardware o reloj de Bios
+
|'''hwclock -systohc''' = Pone el reloj Hardware a la hora del sistema
+
|-
+
|'''watch -n tiempo ''comando'''''
+
|Ejecuta un comando cada x segundos (defecto = 2)
+
|
+
|-
+
|'''clear'''
+
|Limpia la pantalla
+
|
+
|-
+
|'''reset'''
+
|Reinicia la terminal
+
|
+
|-
+
| rowspan="5" valign="top" | '''Ctrl+C'''
+
| rowspan="5" valign="top" | Termina un proceso.
+
| '''Ctrl+Z''' = Suspende temporalmente la ejecución de un programa.
+
|-
+
|'''Ctrl+S''' = Para la transferencia de datos a la terminal.
+
|-
+
|'''Ctrl+Q''' = Resume,reinicia la tranferencia de datos
+
|-
+
|'''Ctrl+Alt+F2''' = Salir del entorno gráfico a un terminal.(Fnº según gettys activados en /etc/inittab)
+
|-
+
|'''Ctrl+Alt+Supr''' = Estando en una terminal reinicia(si no se indica otra cosa en /etc/inittab)
+
|-
+
|'''hostname'''
+
|Muestra el nombre de la maquina
+
|
+
|-
+
|'''tty'''
+
|Muestra el nombre del fichero de la terminal conectada a la salida estandar.
+
|
+
|-
+
| rowspan="2" valign="top" | '''/etc/init.d/''servicio'' stop'''
+
| rowspan="2" valign="top" | Para un servicio o [[Daemon|demonio]]
+
| '''/etc/init.d/''servicio'' start''' = Inicia un servicio o [[Daemon|demonio]]
+
|-
+
|'''/etc/init.d/''servicio'' restart''' = Reinicia un servicio o demonio
+
|-
+
|'''startx'''
+
|Arranca el entorno grafico
+
|
+
|-
+
|'''sh ''script'''''
+
|Ejecuta un script
+
|
+
|-
+
|'''java -jar ''fichero.jar'''''
+
|Ejecuta un programa java
+
|
+
|-
+
|'''./[archivo.bin]'''
+
|Ejecuta un archivo binario (también puede usarse con scripts)
+
|
+
|-
+
|'''consolechars -f ''fuente.psf.gz'''''
+
|Cambiar la fuente de la consola. Las fuentes se encuentran en ''/usr/share/consolefonts/''
+
|
+
|-
+
|'''reportbug'''
+
|Enviar bugs
+
|
+
|-
+
|'''exit'''
+
|Termina la ejecucion del programa actual
+
|
+
|-
+
|'''shutdown -t1 -h now'''
+
|Apaga el pc
+
|'''shutdown -t1 -r now''' = Reinicia el pc
+
|-
+
|'''su'''
+
|Entrar como superusuario
+
|
+
|-
+
| rowspan="2" valign="top" | '''adduser ''usuario'''''
+
| rowspan="2" valign="top" | Crea un nuevo usuario
+
| '''adduser ''usuario grupo''''' = Añade un usuario existente a un grupo existente
+
|-
+
|'''adduser --no-create-home ''usuario''''' = Crea un usuario pero sin directorio personal
+
|-
+
|'''addgroup grupo'''
+
|Crea un grupo nuevo
+
|
+
|-
+
| rowspan="2" valign="top" | '''deluser ''usuario'''''
+
| rowspan="2" valign="top" | Elimina un usuario
+
| '''deluser ''usuario grupo''''' = Elimina un usuario del grupo especificado
+
|-
+
|'''deluser --remove-home ''usuario''''' = Elimina un usuario y su directorio personal
+
|-
+
|'''delgroup ''grupo''''' = Elimina el grupo
+
|
+
|'''delgroup grupo --only-if-empty''' = Elimina el grupo solo si no tiene ningun usuario
+
|-
+
|'''usermod -l ''nuevo_login'''''
+
|Cambia el nombre del usuario
+
| '''usermod -d ''nueva_home'' -m ''login''''' = Cambia el nombre del usuario (lo crea si no existe) y tranfiere su contenido.
+
|-
+
|'''usermod -e AAAA-MM-DD ''login'''''
+
|Fecha en que la cuenta de usuario sera desactivada
+
|
+
|-
+
|'''groupmod -n ''nuevo_nombre grupo'''''
+
|Cambia el nombre de un grupo
+
|
+
|-
+
|'''locale'''
+
|Muestra la zona geografica configurada
+
|
+
|-
+
|'''dpkg-reconfigure ''locales'''''
+
|Reconfigura los locales
+
|
+
|-
+
|'''dpkg-reconfigure console-data'''
+
|Reconfigura el teclado
+
|
+
|-
+
|'''loadkeys ''ruta_mapa_teclado.gz'''''
+
|Carga el mapa de teclado que le indicamos,que estará en: ''/usr/share/keymaps''
+
|
+
|-
+
|'''locale charmap'''
+
|Muestra el codigo de caracteres en uso
+
|
+
|-
+
|'''set'''
+
|Muestra las variables locales definidas
+
|
+
|-
+
|'''env'''
+
|Muestra las variables de entorno definidas
+
|
+
|-
+
|'''export'''
+
|Muestra las variables de entorno declaradas
+
|
+
|}
+
  
== Procesos ==
+
Tipo de terminal que se está utilizando
  
{| {{Tablamarron}}
+
*PPID 
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| '''memtest'''
+
| Hace una comprobacion del estado de la memoria
+
|       
+
|-
+
| rowspan ="2" | '''free -m -s 3'''
+
| rowspan ="2" | Muestra el uso de la memoria
+
| '''-m''' en megabytes
+
|-
+
| '''-s 3''' con una demora de 3 segundos
+
|-
+
|'''top'''
+
|Muestra información detallada sobre los procesos en curso ('''tecla z''' colorea los activos)
+
|
+
|-
+
|'''pstree'''
+
|Muestra los procesos en curso en forma de arbol
+
|
+
|-
+
|'''pidof ''[comando]'''''
+
| Muestra el id del comando
+
|
+
|-
+
|'''killall ''[proceso]'''''
+
|Para el proceso
+
|
+
|-
+
|'''strace ''[comando]'''''
+
|Muestra las llamadas al sistema originadas por el comando
+
|
+
  
|-
+
Número identificador del proceso padre
|'''fuser -v ''[archivo]'''''
+
|Muestra los procesos que estan usando un archivo o directorio
+
|
+
|-
+
| rowspan="3" | '''lsof'''
+
| rowspan="3" | Lista los ficheros abiertos por los procesos
+
|'''lsof -c ''[comando]''''' = Lista los ficheros abiertos por un proceso
+
|-
+
|'''lsof +D ''[Directorio]''''' = Lista los procesos que estan usando el directorio
+
|-
+
|'''lsof -i :60627''' = Muestra los procesos que se encuentren detras del puerto 60627
+
|-
+
|'''''[comando]'' &'''
+
|Ejecuta un comando en segundo plano
+
|
+
|-
+
|'''nohup ''[comando]'' &'''
+
|Ejecuta un comando de forma que si cerramos la terminal siga ejecutandose
+
|
+
|-
+
|'''jobs'''
+
|Lista los procesos en segundo plano identificandolo con su numero de tarea
+
|
+
|-
+
|'''fg no_tarea'''
+
|Pasa un comando a primer plano
+
|
+
|-
+
|'''bg'''
+
|Pasa a segundo plano un proceso que hemos suspendido temporalmente con '''''Ctrl-Z'''''
+
|
+
|-
+
|'''nice -n prioridad ''[comando]'''''
+
|Ejecuta un comando con una prioridad determinada
+
|
+
|-
+
|'''renice prioridad ''PID_del_proceso'''''
+
|Cambia la prioridad de un proceso en marcha
+
|
+
|-
+
| rowspan="2" | '''at ''[-f script]'' ''[tiempo]'''''
+
| rowspan="2" | Ejecuta un script a una hora y/o fecha concretas
+
| '''atq''' = Muestra la lista de tareas programadas de forma numerada
+
|-
+
|'''atrm ''no''''' = Elimina una tarea indentificada por su ''no''
+
|-
+
|'''batch'''
+
|Igual que '''at''', salvo que '''batch''' sólo ejecuta el script si la carga de cpu es inferior al 80%
+
|
+
|}
+
  
== Disco duro ==
+
*PWD   
  
{| {{Tablamarron}}
+
Nombre del directorio de trabajo actual
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
|'''du -h ''[fichero]'''''
+
|Muestra el espacio que ocupa el fichero o directorio
+
|
+
|-
+
|'''tree -a -s -L 2'''
+
|Igual que el anterior pero lo muestra en forma de arbol
+
|
+
|-
+
|'''df'''
+
|Muestra información sobre particiones montadas
+
| '''df -h''' = Medida '''h'''umana
+
|-
+
|'''cfdisk'''
+
|Muestra información sobre particiones
+
|
+
|-
+
| rowspan="4" valign="top" | '''mount'''
+
| rowspan="4" valign="top" | Muestra un listado de los dispositivos montados
+
| '''mount ''punto_montaje''''' = Monta un dispositivo establecido en fstab
+
|-
+
|'''umount punto_montaje''' = Desmonta un dispositivo establecido en el fstab
+
|-
+
|'''mount -t [Sistema_Archivos] /dev/[dispositivo] [punto_montaje]''' = Monta el dispositvo, ej: mount -t ext3 /dev/hda1 /media/disco1
+
|-
+
|'''umount /dev/[dispositivo]''' = Desmonta un disco
+
|-
+
| rowspan="2" valign="top" | '''fsck /dev/''[dispositivo]'''''
+
| rowspan="2" valign="top" | Chequea y repara el sistema de archivos de una particion no montada
+
| '''fsck.ext2 -vpf /dev/''hdx''''' = Chequea y repara el sistema de archivos de una particion ext2 no montada
+
|-
+
|'''fsck.ext3 -vpf /dev/''hdx''''' = Igual pero con una particion ext3
+
|-
+
| rowspan="2" valign="top" | '''mkfs.ext2 /dev/''hdXX'''''
+
| rowspan="2" valign="top" | Crea un sistema ext2 en la particion seleccionada
+
| '''mkfs.ext3 /dev/''hdXX''''' = Crea un sistema ext3 en la particion seleccionada
+
|-
+
|'''mkfs.ext2 /dev/fd0''' = Crea un sistema ext2 en el disquette
+
|-
+
|'''mkswap /dev/''hdXX'''''
+
|Crea un sistema de ficheros swap en la partición ''hdXX''
+
|
+
|-
+
|'''tune2fs -O ^has_journal /dev/''hdXX'''''
+
|Convierte la particion de ext3 a ext2
+
|
+
|-
+
|'''tune2fs -j /dev/''hdXX'''''
+
|Convierte la particion de ext2 a ext3
+
|
+
|-
+
|'''dd if=/dev/hda of=/dev/hdb bs=1M'''
+
|[[Clonar discos duros | Clona el disco]] hda en el disco hdb en bloques de 1 Megabyte (para no sobrecargar el sistema)
+
|
+
|-
+
|'''dd if=/dev/hda of=mbr count=1 bs=512'''
+
|Copia el MBR (Master Boot Sector)
+
|'''dd if=mbr of=/dev/hda''' = Restaura el MBR
+
|-
+
|'''dd if=/dev/hda2 of=/sector_arranque_hda2 count=1 bs=512'''
+
|Copia el VBS (Volume Boot Sector)
+
|'''dd if=sector_arranque_hda2 of=/dev/hda2''' = Restaura el VBS
+
|}
+
  
== Instalación de software ==
+
*OLDPWD
  
{| {{Tablamarron}}
+
Nombre del anterior directorio de trabajo antes de ejecutar por última vez el comando cd
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="9" | '''dpkg -i ''paquete'''''
+
| rowspan="9" | Instala un paquete
+
| '''dpkg -r paquete''' = Desinstala un paquete
+
|-
+
| '''dpkg --purge paquete''' = Desisntala un paquete y sus archivos de configuracion
+
|-
+
| '''dpkg --force -r paquete''' = Fuerza la desinstalacion de un paquete
+
|-
+
| '''dpkg --force-all -r paquete''' = Fuerza aun mas la desinstalacion de un paquete (Puede comprometer el sistema)
+
|-
+
| '''dpkg -c paquete''' = Muestra el contenido de un paquete
+
|-
+
| '''dpkg -L paquete''' = Muestra todos los ficheros que se instalaron con un paquete
+
|-
+
| '''dpkg -S fichero''' = Muestra a que paquete pertenece un fichero
+
|-
+
| '''dpkg --get-selections''' = Muestra un listado con todos los paquetes instalados
+
|-
+
| '''dpkg-reconfigure paquete''' = Reconfigura el paquete
+
|-
+
| rowspan="14" | '''aptitude update'''
+
| rowspan="14" | Actualiza la lista de paquetes
+
| '''aptitude upgrade''' = Actualiza el sistema (no instala ni elimina paquetes)
+
|-
+
| '''aptitude dist-upgrade''' = Actualiza el sistema eliminando e instalando paquetes si fuera necesario
+
|-
+
| '''aptitude install ''[paquetes]''''' = Instala los paquetes indicados
+
|-
+
| '''aptitude reinstall ''[paquetes]''''' = Reinstala los paquetes indicados
+
|-
+
| '''aptitude remove ''[paquetes]''''' = Elimina los paquetes indicados
+
|-
+
| '''aptitude purge ''[paquetes]''''' = Elimina los paquetes y sus ficheros de configuracion
+
|-
+
|'''aptitude download ''[paquetes]''''' = Descarga los paquetes en el directorio actual
+
|-
+
| '''aptitude hold ''[paquetes]''''' = Bloqua los paquetes indicados
+
|-
+
| '''aptitude unhold ''[paquetes]''''' = Desbloquea los paquetes seleccionados
+
|-
+
| '''aptitude unmarkauto ''[paquetes]''''' = Desmarca paquetes como instalados manualmente
+
|-
+
| '''aptitude markauto''' = Marca paquetes como instalados manualmente
+
|-
+
| '''aptitude search ''[expresion]''''' = Busca un paquete por nombre o expresion
+
|-
+
| '''aptitude show ''[paquetes]''''' = Muestra información detallada de un paquete
+
|-
+
| '''aptitude clean''' = Elimina los paquetes .deb descargados
+
|}
+
  
== Información de hardware ==
+
*RANDOM Un número entero generado al azar
 +
     
 +
* PS1
  
{| {{Tablamarron}}
+
Cadena que presenta el shell cada vez que solicita un comando
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
|'''sudo lshw'''
+
| Lista tu hardware
+
|
+
|-
+
|'''sudo lshw -C disk'''
+
| Lista tu hardware especifico (en este caso, discos)
+
| '''-C''' es la abreviatura del comando '''-class''', que hace lo mismo.
+
|-
+
| '''sudo lshw -html > nombre_del_archivo.html'''
+
| Lista tu hardware específico y guarda un archivo .html en tu directorio de usuario con toda la información
+
|
+
|-
+
|}
+
  
== Kernel ==
+
*PS2   
  
{| {{Tablamarron}}
+
Cadena que presenta el shell cada vez que solicita la continuación de un comando que ocupa varias líneas de pantalla
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
|'''uname -a'''
+
|Version del kernel
+
|
+
|-
+
|'''lsmod'''
+
|Lista los modulos cargados
+
|
+
|-
+
|'''modinfo ''[módulo]'''''
+
|Muestra informacion sobre un modulo
+
|
+
|-
+
|'''modprobe ''[módulo]'''''
+
|Inserta un modulo y sus dependecias en el kernel
+
| '''modprobe -r ''[módulo]''''' = Elimina un modulo del kernel y los que dependen de él
+
|-
+
|'''insmod ''[módulo]'''''
+
|Inserta un modulo en el kernel
+
|
+
|-
+
|'''rmmod ''[modulo]'''''
+
|Elimina un modulo del kernel
+
|
+
|-
+
|'''echo ''[módulo]'' >> /etc/modules'''
+
|Inserta un modulo en el kernel permanentemente
+
|
+
|-
+
|'''depmod ''[modulo]'''''
+
|Comprueba las dependencias del modulo
+
|
+
|-
+
|'''modconf'''
+
|Programa gráfico para cargar módulos
+
|
+
|-
+
|'''last'''
+
|Muestra los usuarios conectados y desconectados en los ultimos dias
+
|
+
|-
+
| rowspan="2" valign="top" | '''hdparm /dev/''hdX'''''
+
| rowspan="2" valign="top" | Verifica el DMA de nuestro disco (sustituir "hdX" por nuestro disco correspondiente)
+
| '''hdparm -I /dev/hdx''' = Muestra información sobre el disco
+
|-
+
|'''hdparm -d1 /dev/''hdX''''' = Activar el dma en nuestro disco
+
|-
+
|'''lsdev'''
+
|Muestra información sobre los dispositivos
+
|
+
|-
+
|'''lspci'''
+
|Muestra los dispositivos PCI conectados
+
|
+
|-
+
|'''lsusb'''
+
|Muestra los dispositivos USB conectados
+
|
+
|-
+
| rowspan="7" valign="top" | '''less ''/var/log/kern.log''''' 
+
| rowspan="7" valign="top" | Mensajes del nucleo.
+
| '''less ''/var/log/syslog''''' = Registro de mensajes relativos a la seguridad.
+
|-
+
|'''less ''/var/log/debug''''' = Registro de información de depuración de los programas.
+
|-
+
|'''less ''/var/log/messages''''' = Mensajes del sistema de carácter informativo.
+
|-
+
|'''less ''/var/log/user.log'''''  = Información del usuario.
+
|-
+
|'''less ''/var/log/XFree86.0.log''''' = Información sobre las X
+
|-
+
|'''less ''/var/log/Xorg.0.log'''''  = Información sobre las X
+
|-
+
|'''less ''/var/log/auth.log'''''  = Accesos al sistema(incluye los intentos fallidos).
+
|-
+
|'''last'''
+
|Lista los usuarios conectados/desconectados (fichero '''''/var/log/wtmp''''').
+
|
+
|-
+
|'''lastb'''
+
|Muestra los intentos de conexión fallidos (fichero '''''/var/log/btmp''''').
+
|
+
|-
+
|'''cdda2wav -scanbus'''
+
|Comprobar el interfaz SCSI.
+
|
+
|-
+
|'''cdrecord -scanbus'''
+
|Comprobar el interfaz SCSI.
+
|
+
|-
+
| rowspan="2" valign="top" | '''cat ''/proc/meminfo'''''
+
| rowspan="2" valign="top" | Información sobre la memoria.
+
| '''cat ''/proc/cpuinfo''''' = Información sobre el procesador.
+
|-
+
|'''cat ''/proc/devices''''' = Información sobre dispositivos en uso.
+
|}
+
  
== FTP ==
+
Para ver los valores de cada una de ellas basta con ejecutar: echo $NOMBRE DE LA VARIABLE. Por ejemplo:
  
{| {{Tablamarron}}
+
<pre>
|-
+
$echo $SEHLL
! {{Encabezadomarron}} |Comando
+
xterm
! {{Encabezadomarron}} |Acción
+
</pre>
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="37" valign="top" | '''ftp'''
+
| rowspan="37" valign="top" | Abre la interface de usuario para
+
el protocolo de transferencia de ficheros (FTP)
+
|'''open servidor''' = Conectar con el servidor
+
|-
+
|'''append''' = Anexar a un archivo
+
|-
+
|'''?''' = Imprimir información de ayuda local
+
|-
+
|'''bell''' = Emitir sonido cuando se complete el comando             
+
|-
+
|'''binary''' = Establecer transferencia binaria (todas salvo .txt)   
+
|-
+
|'''bye''' = Finalizar la sesión ftp y salir                       
+
|-
+
|'''ascii''' = Establecer tipo de transferencia ascii (sólo para .txt)
+
|-
+
|'''cd''' = Cambiar el directorio de trabajo remoto               
+
|-
+
|'''close''' = Finalizar la sesión ftp                               
+
|-
+
|'''ls''' = Mostrar el contenido del directorio remoto             
+
|-
+
|'''dir''' = Mostrar el contenido del directorio remoto             
+
|-
+
|'''delete''' = Eliminar archivo remoto                               
+
|-
+
|'''debug''' = Alternar modo de depuración                           
+
|-
+
|'''get''' = Recibir archivo                                       
+
|-
+
|'''help''' = Ayuda sobre un comando 1º-help y luego el comando     
+
|-
+
|'''lcd''' = Cambiar el directorio de trabajo local                 
+
|-
+
|'''mdir''' = Mostrar el contenido de múltiples directorios remotos 
+
|-
+
|'''mdelete''' = Eliminar múltiples archivos                           
+
|-
+
|'''mget''' = Obtener múltiples archivos                             
+
|-
+
|'''mkdir''' = Crear directorio en el equipo remoto                   
+
|-
+
|'''mls''' = Mostrar el contenido de múltiples directorios remotos 
+
|-
+
|'''mput''' = Enviar múltiples archivos                             
+
|-
+
|'''open''' = Conectar a tftp remoto                                 
+
|-
+
|'''put''' = Enviar un archivo                                     
+
|-
+
|'''pwd''' = Imprimir el directorio de trabajo del equipo remoto   
+
|-
+
|'''quit''' = Finalizar la sesión ftp y salir                       
+
|-
+
|'''quote''' = Enviar un comando arbitrario ftp                       
+
|-
+
|'''recv'''  = Recibir archivo                                         
+
|-
+
|'''rename''' = Cambiar el nombre del archivo                         
+
|-
+
|'''rmdir''' = Quitar directorio en el equipo remoto                 
+
|-
+
|'''remotehelp''' = Obtener ayuda del servidor remoto                     
+
|-
+
|'''send''' = Enviar un archivo                                     
+
|-
+
|'''status''' = Muestra el estado actual                               
+
|-
+
|'''trace''' = Alternar trazado de paquetes                           
+
|-
+
|'''type''' = Establecer el tipo de transferencia de archivos         
+
|-
+
|'''user''' = Enviar nueva información de usuario                   
+
|-
+
|'''verbose''' = Alternar modo detallado
+
|}
+
  
== IRC ==
+
= Sistema de Ficheros =
  
{| {{Tablamarron}}
+
Tienes una referencia inicial [[Sistema_de_archivos | Aquí ]] Debería leerlo antes de continuar.
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="39" valign="top" | '''irc'''
+
| rowspan="39" valign="top" | Deberemos instalar el paquete '''irssi'''
+
(''sudo aptitude install irssi'')
+
| '''/server''' = Lista,añade o elimina servidores.       
+
|-
+
|'''/server [nombre:puerto:clave]''' = Conecta con un servidor.               
+
|-
+
|'''/info [servidor]''' = Obtener información sobre servidor.       
+
|-
+
|'''/lusers''' = Obtener estadísticas del servidor.       
+
|-
+
|'''/users''' = Usuarios conectados al servidor.       
+
|-
+
|'''/links''' = Lista los servidores de la red actual. 
+
|-
+
|'''/list''' = Lista e informa sobre los canales.       
+
|-
+
|'''/admin''' = Informa sobre el admin. del servidor.   
+
|-
+
|'''/help ''[comando]''''' = Muestra la ayuda sobre un comando.     
+
|-
+
|'''/ison ''[nick]''''' = Comprobar si un usuario está conectado. 
+
|-
+
|'''/join ''[canal]''''' = Unirse a un canal.                     
+
|-
+
|'''/names''' = Listar usuarios en canales.             
+
|-
+
|'''/whois ''[nick]''''' = Muestra información sobre un usuario.   
+
|-
+
|'''/whowas ''[nick]''''' = Informa sobre un usuario que ya no está.
+
|-
+
|'''/who ''[patrón]''''' = Muestra información sobre patrón.       
+
|-
+
|'''/msg NiCK SET PASSWORD ''[clave]''''' = Cambiar de contraseña(en irc-hispano)   
+
|-
+
|'''/msg [nick <nowiki>|</nowiki> canal][texto]''' = Envia un mensaje a un usuario o canal.  
+
|-
+
|'''/amsg ''[texto]'' 'a''' = Envia un mensaje a todos los canales en los que estás.
+
|-
+
|'''/notice ''[nick <nowiki>|</nowiki> canal]''''' = Envia un mensaje privado a un usuario/os 
+
|-
+
|'''/query ''[usuario texto]''''' = Envia un mensaje privado a un usuario.   
+
|-
+
|'''/ignore''' = Lista los usuarios ignorados.           
+
|-
+
|'''/ignore nick''' = Ignora los mensajes de un usuario.       
+
|-
+
|'''/unignore ''[nick <nowiki>|</nowiki> *]''''' = Deja de ignorar el/los mensajes.         
+
|-
+
|'''/ctcp ''[nick texto]''''' = Envia un mensaje mediante CTCP             
+
|-
+
|'''/me ''[texto]''''' = Envia un mensaje precedido de nuestro nick             
+
|-
+
|'''/ame ''[texto]''''' = Envia un mensaje todos los canales en los que estás. 
+
|-
+
|'''/dcc ''[chat nick ]''''' = Pide y/o inicia charla con un usuario.   
+
|-
+
|'''/dcc ''[close nick]''''' = Cierra charla.                           
+
|-
+
|'''/dcc ''[send nick fichero]''''' = Ofrece y/o envia un fichero.             
+
|-
+
|'''/dcc ''[get nick fichero]''''' = Permite recibir un fichero.             
+
|-
+
|'''/time''' = Muestra fecha y hora.                     
+
|-
+
|'''/clear''' = Limpia la ventana de texto actual.       
+
|-
+
|'''/away ''[texto]''''' = Pasar a estado ausente.                 
+
|-
+
|'''/away''' = Volver de la ausencia.                 
+
|-
+
|'''/nick ''[nuevonick]''''' = Cambiar el nick.                       
+
|-
+
|'''/nick ''[nuevonick][clave]''''' = Cambiar un nick registrado.             
+
|-
+
|'''/nick ''[nick:contraseña]''''' = Identificarse en  irc-hispano.         
+
|-
+
|'''/part ''[canal]''''' = Abandonar un canal.                     
+
|-
+
|'''/quit''' = Cerrar todas las conexiones y salir.
+
|}
+
  
== Calculadora ==
+
== Cambiando de directorio ==
  
{| {{Tablamarron}}
+
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.
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="9" valign="top" | '''bc'''
+
| rowspan="9" valign="top" | Abrimos la calculadora bc.
+
|'''20 + 5.4'''  = Suma. 
+
|-
+
|'''77 - 4.2''' = Resta.
+
|-
+
|'''25.2 * 86''' = Multiplica.
+
|-
+
|'''47 / 3''' = Muestra el cociente de la división.
+
|-
+
|'''47 % 3''' = Muestra el resto de la división.
+
|-
+
|'''4 ^ 2''' = Calcula la potencia 4²
+
|-
+
|'''sqrt (16)''' = Calcula la raiz cuadrada de 16
+
|-
+
|'''(2*3+2) / sqrt (2^3/2.5)''' = Un poco de cada.
+
|-
+
|'''quit''' = Salimos de bc.
+
|}
+
  
== Redes ==
+
<pre>
 +
$pwd
 +
/home/juan
 +
$ls
 +
.                ..
 +
Plantillas        Proyectos
 +
cpp              Público
 +
Documentos        Escritorio
 +
$cd EScritorio
 +
$pwd
 +
/home/juan/Escritorio
 +
</pre>
  
{| {{Tablamarron}}
+
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.
|-
+
! {{Encabezadomarron}} |Comando
+
! {{Encabezadomarron}} |Acción
+
! {{Encabezadomarron}} |Comentarios
+
|-
+
| rowspan="2" valign="top" | '''/etc/init.d/networking start'''
+
| rowspan="2" valign="top" | Inicia los servicios de red.
+
| '''/etc/init.d/networking restart''' = Reinicia los servicios de red.
+
|-
+
|'''/etc/init.d/networking stop''' = Para los servicios de red.
+
|-
+
| rowspan="6" valign="top" | '''ifconfig ''[interfaz opciones IP]'''''
+
| rowspan="6" valign="top" | Información y configuración de interfaces de red.
+
| '''ifconfig''' = Muestra el estado de los interfaces activos.
+
|-
+
|'''ifconfig -a''' = Muestra el estado de todos los interfaces.
+
|-
+
|'''ifconfig ppp0''' = Muestra el estado de ppp0
+
|-
+
|'''ifconfig eth0 up''' = Activa eth0.
+
|-
+
|'''ifconfig eth0 down''' = Cierra eth0.
+
|-
+
|'''ifconfig ''eth1'' address ''192.168.1...''''' = Asigna una dirección al interfaz especificado.
+
|-
+
|'''iwconfig'''
+
|Similar a ifconfig pero sólo para interfaces wireless
+
|
+
|-
+
| rowspan="2" valign="top" | '''ifup ''interface'''''
+
| rowspan="2" valign="top" | Habilita la interface especificada.  
+
| '''ifup ''eth0'''''
+
|-
+
|'''ifup ''ppp0'''''
+
|-
+
| rowspan="2" valign="top" | '''ifdown ''interface'''''
+
| rowspan="2" valign="top" | Deshabilita la interface especificada.
+
| '''ifdown ''eth0'''''
+
|-
+
|'''ifdown ''ppp0'''''
+
|-
+
|'''dhclient ''eth0/eth1'''''
+
|Inicia conexión dhcp  mediante el cliente '''dhcp-client'''.
+
|
+
|-
+
|'''pump -i ''eth0/eth1'''''
+
|Inicia conexión dhcp  mediante el cliente '''pump'''.
+
|
+
|-
+
|'''pppoeconf'''
+
|Programa para configurar conexiones '''pppoe'''.
+
|
+
|-
+
|'''pppconfig'''
+
|Programa en modo texto para configurar una conexión ppp.
+
|
+
|-
+
|'''pon'''
+
|Establece la conexión ppp a internet.
+
|
+
|-
+
|'''plog'''
+
|Monitoriza la conexión ppp.
+
|
+
|-
+
|'''poff'''
+
|Finaliza la conexión ppp a internet.
+
|
+
|-
+
| rowspan="3" valign="top" | '''finger ''usuario'''''
+
| rowspan="3" valign="top" | Informa sobre un usuario conectado al sistema.
+
| '''finger ''@servidor''''' = Informa sobre todos los usuarios conectados a un ''servidor'' (nombre o IP)
+
|-
+
|'''finger ''usuario@servidor''''' = Informa sobre un ''usuario'' conectado a un ''servidor''
+
|-
+
|'''ping ''google.com''''' = Verifica la conexión, en este caso con ''www.google.com'' ('''Ctrl+Z''' pone fin)
+
|-
+
|'''traceroute ''microsoft.es'''''
+
|Muestra la ruta que los paquetes de datos han seguido hasta la máquina de destino, en este caso un server de ''microsoft.es''
+
|
+
|-
+
|'''mtr ''rediris.es'''''
+
|Combinación de '''ping''' y '''traceroute'''.
+
|
+
|-
+
|'''whois ''ubuntu-es.org'''''
+
|Información sobre un dominio, en este caso el dominio ''ubuntu-es.org''.
+
|
+
|-
+
|'''host -v -a ''telefonica.com'''''
+
|Determina la ip de un nombre. En este caso, la IP de ''telefonica.com''.
+
|'''host -v -a ''194.224.55.221''''' = Determina el nombre de una IP. En este caso, el nombre de ''194.224.55.221''.
+
|-
+
|'''iptraf'''
+
|Monitoriza tráfico de redes ([[ncurses]]).
+
|
+
|-
+
|'''tethereal'''
+
|Versión para consola de ethereal,un analizador del tráfico de red ([[sniffer]]).
+
|
+
|-
+
|'''ettercap'''
+
|Sniffer/interceptor/logger para redes LAN con switchs basado en [[ncurses]].
+
|
+
|-
+
|'''nmap'''
+
|Escáner de puertos.
+
|
+
|-
+
|'''fail2ban'''
+
|Escanea logs como ''/var/log/auth.log'' y banea las IP con demasiados errores de conexión.
+
|
+
|-
+
|'''snort'''
+
|Sniffer de paquetes y un detector de intrusiones en una red ([[NIDS]]).
+
|
+
|-
+
|'''aide'''
+
|Detector de intrusiones en un único Servidor, PC o host.([[HIDS]]).
+
|
+
|-
+
|'''portsentry'''
+
|[[IDS]] que detecta escaneos de puertos y reacciona a un ataque.
+
|
+
|-
+
|'''chkrootkit'''
+
|Detector de [[rootkit]].
+
|
+
|-
+
|
+
  {|cellpadding="5" cellspacing="0" align="left" style="background:#f7f0de; font-size: 100%;"
+
    |-
+
    |'''w3m'''
+
    |-
+
    |'''lynx'''
+
    |-
+
    |'''links'''
+
    |-
+
    |'''links2'''
+
    |-
+
    |'''elinks''' 
+
    |}
+
| Navegadores web.
+
| [[elinks]] es compatible con SSL, con lo que podremos acceder a correo web.
+
|-
+
|
+
  {|cellpadding="5" cellspacing="0" align="left" style="background:#f7f0de; font-size: 100%;"
+
    |-
+
    |'''irssi'''
+
    |-
+
    |'''weeChat-curses'''
+
    |}
+
|Clientes [[IRC]] (Internet Relay Chat) )
+
|
+
|-
+
|
+
  {|cellpadding="5" cellspacing="0" align="left" style="background:#f7f0de; font-size: 100%;"
+
    |-
+
    |'''mutt'''
+
    |-
+
    |'''mush'''
+
    |-
+
    |'''pine'''
+
    |-
+
    |'''elm'''
+
  |}
+
|Clientes de correo(MUA).
+
|
+
|-
+
|'''cabber'''
+
|Cliente jabber (protocolo libre para mensajería instantánea).
+
|
+
|-
+
|'''centericq'''
+
|Cliente de mensajeria multiprotocolo (ICQ,Yahoo,AIM,MSN,IRC,Jabber)
+
|
+
|-
+
|'''ncftp'''
+
|Cliente FTP (File Transfer Protocol) basado en [[ncurses]]
+
|
+
|-
+
|'''ftp-ssl'''
+
|Cliente FTP compatible con cifrado SSL y TSL (dependiendo de la otra parte)
+
|
+
|-
+
|'''telnet-ssl'''
+
|Cliente [[telnet]] (acceso remoto) compatible con cifrado SSL (dependiendo de la otra parte)
+
|
+
|-
+
|'''ssh'''
+
|Cliente [[SSH]] (Secure SHell). Acceso remoto cifrado. Forma parte del paquete '''openssh-client'''
+
|
+
|-
+
|
+
  {|cellpadding="5" cellspacing="0" align="left" style="background:#f7f0de; font-size: 100%;"
+
    |-
+
    |'''[[rtorrent]]'''
+
    |-
+
    |'''bittornado'''
+
  |}
+
|Clientes [[bittorrent]].
+
|'''Bittornado''' es una versión mejorada del cliente homónimo [[bittorrent]].
+
|-
+
|'''talk ''usuario'''''
+
|Entabla una conversacion con un usuario del sistema.
+
|'''talk ''usuario@sistema''''' = Entabla conversacion con un usuario de otro sistema (entre máquinas UNIX)
+
|-
+
|'''mesg -n''' 
+
|Anula la notificacion de comunicacion de '''talk''' o '''write'''.
+
|'''mesg -y''' = Habilita la llegada de notificaciones de '''talk''' o '''write'''.
+
|-
+
|'''write ''usuario'''''
+
|Manda un mensaje a un usuario del sistema.
+
|
+
|-
+
| rowspan="4" valign="top" | '''netstat -napt'''
+
| rowspan="4" valign="top" | Saber qué puertos tiene abiertos nuestro sistema.
+
| '''-n''' = No resuelve las direcciones a sus nombres DNS. Esto hace más rápida la ejecución.
+
|-
+
|'''-a''' = Muestra todos las conexiones,incluídas las que están escuchando.
+
|-
+
|'''-p''' = Muestra el número y nombre del proceso,dueño de dicha conexión.
+
|-
+
|'''-t''' = sólo muestra conexiones tcp
+
|-
+
| rowspan="8" valign="top" | '''wget ''[opciones] URL'''''
+
| rowspan="8" valign="top" | Gestor de descargas.
+
| '''-p''' = Descarga la web completa.
+
|-
+
|'''-r''' = recursivo.
+
|-
+
|'''-k''' = Convierte los enlaces absolutos en relativos.
+
|-
+
|'''-c''' = Reanuda la descarga de un fichero parcialmente descargado.
+
|-
+
|'''-l6''' = profundidad de recursión (5 por defecto)
+
|-
+
|'''-A formato''' = formato para descargar.
+
|-
+
|'''-nH''' = hace que no se cree el subdirectorio localhost.
+
|-
+
|'''--cut-dirs=n''' = elimina n número de directorios dentro de la jerarquia.
+
|}
+
  
 +
=== 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ías -->
 
 
[[Categoría:Terminal]]
 
[[Categoría:Terminal]]

Revisión de 02:01 27 dic 2011

Contenido

Introducción

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:

juan@portatil$ ls 

Con Parámetros:

juan@portátil$ ls -la 

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.

$/us->
$/usr/l->->
/lib /local
$/usr/li->
$/usr/lib->->
consolekit/        i686/              pcmciautils/       sudo/
dbus-1.0/          initramfs-tools/   perl/              tasksel/
dpkg/              jvm/               perl5/             tc/

Lo mismo ocurre con los comandos. Si queremos ejecutar, por ejemplo depkg-reconfigure: (imaginemos que no recordamos cómo se escribe)

$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

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.

$^R
$(reverse-i-search)`su': sudo aptitude install links

'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:

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:

 
$echo $SEHLL
xterm

Sistema de Ficheros

Tienes una referencia inicial 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.

$pwd
/home/juan
$ls
.                 ..
Plantillas        Proyectos
cpp               Público
Documentos        Escritorio
$cd EScritorio
$pwd
/home/juan/Escritorio

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.

$pwd
/home/juan/Escritorio
$cp /home/juan/fichero /home/juan/Escritorio

Rutas Relativas

Pero algo más sencillo es usar las rutas relativas:

$pwd
/home/juan/Escritorio
$cp ../fichero .

É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í:

#!/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

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:


#!/bin/bash
#Se declaran las variables
variable1=hola
variable2=usuario
#Se sacan por pantalla
echo $variable1 $variable2

Produciría la siguiente salida:

 hola usuario 

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.

 
#!/bin/bash

usuario=$(whoami)
echo "hola $usuario"

Si éste script lo utilizara el usuario "pedro" la salida por pantalla sería:

 hola pedro 

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:

#!/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[*]}"

El script generaría ésta salida:


carta.txt
informe.txt
membrete.txt
Tengo 3 Archivos por hacer
Archivos por hacer: carta.txt informe.txt membrete.txt


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"

 let res=1+3 

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:

 (( res= 1 + 3 )) 

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

 
#!/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"

Resta

 
#!/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"

Multiplicacion

#!/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"

División

#!/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"

Módulo

#!/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"

Estructuras de Control

Evaluación If-Then


#!/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


Introducción a Test

Bucles

While

For

Until

Funciones

Véase También y Fuentes

Herramientas personales