A

angeldavidm6a

Usuario (Colombia)

Primer post: 11 sept 2011Último post: 18 mar 2012
7
Posts
97
Puntos totales
17
Comentarios
G
Guía de comandos y shell ubuntu- Linux exelente
LinuxporAnónimo9/23/2011

Para los qué solo se están iniciando en el maravilloso Linux, mas aun en Ubuntu, aqui esta un pdf, muy bueno que me cirbió de mucho http://es.scribd.com/doc/66011042 ------ recomendado http://es.scribd.com/doc/66010331 mejor lo subí acá porque en version pdf se ve mejor, espero que le cirba de algo.lo mejor, le cirbe a personas con poca experiencia en linux.... uuuuuuu Índice de contenido1. Instalación de Paquetes en GNU/Linux Ubuntu y GNU/Linux Debian......................41.1 Generalidades sobre la instalación de paquetes en GNU/Linux...............................41.2 Comando dpkg...........................................................................................................51.3 apt-get........................................................................................................................71.4 aptitude.....................................................................................................................101.5 Gestor de paquetes Synaptic...................................................................................121.6 Instalaciones comunes para todos los sistemas GNU/Linux (.tgz o .tar.gz)...........131.7 Instalación de PostgreSQL en Ubuntu 8.4...............................................................151.8 Actividades...............................................................................................................182. Redireccionamiento y pipelines ................................................................................192.1 Generalidades sobre la salida estándar..................................................................192.2 Redireccionamiento..................................................................................................202.3 Pipelines...................................................................................................................232.4 Actividades...............................................................................................................243. Creación de enlaces a ficheros...................................................................................253.1 Enlaces Simbólicos y enlaces duros........................................................................253.2 Ejemplos utilizando enlaces.....................................................................................263.3 Actividades...............................................................................................................284. Niveles de ejecución (runlevel)...................................................................................294.1 Descripción de los niveles de ejecución..................................................................294.2 Actividades...............................................................................................................315. Introducción a la Programación ShellScript.............................................................325.1 Que es un Shell Script?..........................................................................................325.2 Manejo de Variables.................................................................................................355.3 Manejo de argumentos (parámetros).......................................................................375.4 Operadores de comparación....................................................................................385.5 Manejo de condicionales (if)....................................................................................385.6 Trabajar con el case.................................................................................................415.7 Bucles (for y while)...................................................................................................435.7.1 For.....................................................................................................................435.7.2 While.................................................................................................................455.8 Actividades...............................................................................................................46Enlaces de Interés............................................................................................................47

20
0
D
Desarrollador de Microsoft aporta mucho al Kernel Linux 3.0
LinuxporAnónimo9/28/2011

Desarrollador de Microsoft aporta mucho al Kernel Linux 3.0Los 343 cambios hechos por el desarrollador de Microsoft, K. Y. Srinivasan, lo colocan a la cabeza de la lista creada por LWN.net de los desarrolladores que más cambios han realizado en el ciclo de desarrollo actual del Kernel Linux 3.0. La gente de The H indican también que debemos ser cuidadosos a la hora de interpretar estas estadísticas.Decalrar código es algo que preocupa aquí, ya que Srinivasan mejoró el controlador para la interfaz de virtualización HyperV de Microsoft hace dos años. No ha habido muchos progreso desde entonces, y el mantenedor principal Greg Kroah-Hartman ha tenido que remover dos veces los controladores del kernel. Sin embargo, hace un par de meses el trabajo hecho los por los desarrolladores de Microsoft ha incrementado considerablemente cuando ellos comienzan a tomar cuidado de asuntos de calidad bien conocidos como que el controlador puede dejar el área principal algun día; el mantenedor Kroah-Hartman también alabó la compañía recientemente por el trabajo hecho en el desarrollo del kernel Linux 3.0, el cual será lanzado en los próximos días.No olvides Visitar: Guia de Ubuntu, comandos y Shell scripts, variables, ciclos y mas..http://www.taringa.net/posts/linux/12589761/Guia-de-comandos-y-shell-ubuntu--Linux-exelente.htmlhttp://www.taringa.net/posts/linux/12590026/Solo-programacion-Shell-Script-Ubuntu---Linux-_-libro-blanc.html

0
8
Tutorial shell de Ubuntu - Linux
Tutorial shell de Ubuntu - Linux
LinuxporAnónimo9/19/2011

Para los que son novatos en linux aqui esta un tutorial vastante bueno, que les servirá de mucho Aqui está esta misma informacion que aparece debajo, pero bien organizada en pdf http://es.scribd.com/doc/65462276/Shell-Linux-Excelente Taller Shell, comandos y programaciónÍndice de contenido1.INTRODUCCIÓN.....................................................................................................3El mapa de ficheros y directorios en linux........................................................42.El shell..................................................................................................................5Buscar ayuda.......................................................................................................53.Guía de comandos................................................................................................6Comandos básicos y manejo de ficheros.............................................................6Comandos de administración: usuarios, procesos, kernel....................................9Comunicaciones.................................................................................................10Comunicación entre procesos............................................................................12Redirección de entrada/salida............................................................................12Compresión de ficheros y directorios.................................................................13Accediendo a dispositivos y particiones.............................................................144.Usando el shell....................................................................................................16Las flechas.........................................................................................................16El historial de comandos....................................................................................16Relleno de comandos y ficheros.........................................................................17Comodines.........................................................................................................18Ejecución de comandos......................................................................................18-14partyTaller Shell, comandos y programaciónComandos en segundo plano.........................................................................195.Programación de scripts de shell........................................................................22Introducción ......................................................................................................22Variables.............................................................................................................23arrays.............................................................................................................24Otros usos......................................................................................................24Operaciones.......................................................................................................25Aritméticas.....................................................................................................25Lógicas...........................................................................................................26Condicionales.....................................................................................................27case................................................................................................................30Iteraciones.........................................................................................................31for...................................................................................................................31while...............................................................................................................32until................................................................................................................33select..............................................................................................................34Funciones...........................................................................................................34Librerías.............................................................................................................35Señales...............................................................................................................36Colores...............................................................................................................366.Bibliografía, referencias y enlaces......................................................................38-24partyTaller Shell, comandos y programación1.INTRODUCCIÓNEste guía no es para leer de forma seguida, este guía pretende ser una referenciade comandos Unix/Linux y de programación de scripts de shell que se puedaconsultar en cualquier momento. No pretende ser una guía exhaustiva, sino unareferencia que sirva como recordatorio de los comandos más utilizados.¿Y qué es Linux?Los sistemas operativos del tipo Linux esta formado por procesos y ficheros. Y nohay nada más. Los dispositivos como el disco, el cdrom, la pantalla, estarepresentado como un fichero en el sistema linux, dentro de /dev. Los sockets decomunicación son ficheros. Los directorios son ficheros. Los ficheros son ficheros.-34partyTaller Shell, comandos y programaciónEl mapa de ficheros y directorios en linuxHay directorios que pueden cambiar segun la distribucion que sea. Las de linux separecen bastante, pero en general tienen lo mismo./ +-/bin : los binarios MAS basicos como: ls, cd, pwd, cp, rm+-/boot : archivos de arranque, imagen de kernel.+-/cdrom : punto de montaje del cdrom+-/etc : configuracion. Todas las configuraciones (red,scripts deinicio,firewall,usuarios)+-----/mail/ : configuracion de sendmail+-----/rc.d/ : ficheros con scripts de inicio de sistema+-----/sysconfig/ : configuracion de sistema (red,rutas,interfaces)+-/dev : todos los dispositivos de sistema (pantalla,raton,impresora,disco duro)representados por un fichero+-/home : directorios particulares de los usuarios+-/lib : librerias de sistema, modulos de kernel+-/lost+found : directorio en el que se guarda contenido perdido tras unchequeo de disco+-/mnt : punto de montaje (opcional) para particiones locales, remotas (nfs),..+-/proc : sistema de ficheros que refleja el estado y configuracion del sistema+-/sbin : binarios basicos que influyen en configuraciones (firewall, rutas,) dekernel+-/usr : binarios de servidores, programas, manuales, documentos, etc (esteocupa el que mas)+-/opt : binarios opcionales o programas que no se instalan desde el principio.+-/root : directorio home de superusuario.+-/tmp : directorio temporal, utilizado para guardar sesiones, sockets, etc..+-/var : directorio en el que se guarda informacion variable: logs, BBDD(postgres, mysql)+-----/log/ : todos los logs de sistema y servidores+-----/lib/pgsql/ : postgres+-----/lib/mysql/ : mysql+-----/spool/mqueue/ : cola de correo del servidor (entregas sendmail)+-----/spool/mail/ : buzones de correoEl mapa de ficheros y directorios en linux - El mapa de ficheros y directorios enlinux44partyTaller Shell, comandos y programación2.El shellAl entrar en un Linux en modo consola estamos usando un shell o interprete decomandos. Un shell no es más que un programa que le facilita al usuariointeractuar con el sistema operativo: administrar el sistema, programar, creartodo tipo de contenidos de texto, etc... para hacer todo eso el usuario debeutilizar una serie de comandos que le permiten manipular ficheros, procesos, etc...En los sistemas Windows el shell es un entorno visual intuitivo y fácil de utilizar,aunque también tiene otro shell disponible, una herencia del sistema MS-DOS queno ha evolucionado mucho. En Linux disponemos de multitud de entornos visualespara elegir, pero la gran diferencia respecto a Windows es que en Linux el entornográfico no es más que un programa más; es algo opcional que podemos lanzardesde un shell o intérprete de comandos. La otra diferencia importante es que elshell de linux es una herramienta muy poderosa.Existen distintos interpretes de comandos en el mundo Unix: csh, bash, tsh, ksh,..pero salvo pequeñas diferencias todos son parecidos. En este documentopartimos sobretodo de bash2, ya que esta muy extendido a través de Linux.Buscar ayudaTodos los comandos tienen ayuda sobre sus opciones y más de una forma dellegar a esa ayuda:man comando : a través de man accedemos a la página de manual de cualquierprograma. El manual de comandos nos da TODA la información de un comando eincluso al final nos sugiere otros comandos similares o relacionados. Es la formaclásica de acceder a la ayuda extendida aunque para los usos más frecuentes decomandos siempre se puede usar opciones más simples que pueden variar de uncomando a otro:comando -hcomando –helpcomando -?info comandEl mapa de ficheros y directorios en linux - Buscar ayuda54partyTaller Shell, comandos y programación3.Guía de comandosComandos básicos y manejo de ficheroscdDescripción: =chage dir. comando para cambiarnos de directorio.Ejemplos: cd, cd /ruta/de/directorio, cd ../../directorio/pwdDescripción: nos dice en qué directorio nos encontramos actualmenteEjemplos: pwdlsDescripción: =list. listar contenido de directorios.Ejemplos: ls, ls -l, ls -fl, ls --colorcpDescripción: =copy. copiar ficheros/directorios.Ejemplos:cp -rfp directorio /tmp, cp archivo archivo_nuevormDescripción: =remove. borrar ficheros/directorios.Ejemplos: rm -f fichero, rm -rf directorio, rm -i ficheromkdirDescripción: =make dir. crear directorios.Ejemplos: mkdir directoriormdirDescripción: =remove dir. borrar directorios, deben estar vacios.Ejemplos: rmdir directoriomvDescripción: =move. renombrar o mover ficheros/directorios.Ejemplos: mv directorio directorio, mv fichero nuevo_nombre, mv ficheroa_directorionanoDescripción: editor de fichero muy simple. Vi o emacs son para la 31337.Ejemplo: nano -wclearDescripción: limpia la pantalla. Ctrl-L tiene el mismo efecto.exitDescripción: termina la sesión del shell. Ctrl-D tiene el mismo efecto.El mapa de ficheros y directorios en linux - Comandos básicos y manejo deficheros64partyTaller Shell, comandos y programacióndateDescripción: gestión de fecha de sistema, se puede ver y establecer.Ejemplos: date, date 10091923historyDescripción: muestra el historial de comandos introducidos por el usuario.Ejemplos: history | moremoreDescripción: muestra el contenido de un fichero con pausas cada 25 lineas.Ejemplos: more ficheroAl hacer more:/cadena : podemos hacer búsqueda de cadenaf : adelanteb: volver arribav: iniciar vi en la linea que estamosNota: estas opciones también sirven para el comando mangrepDescripción: filtra los contenidos de un fichero.Ejemplos:cat fichero | grep cadena, grep -il “cadena” directorio/catDescripción: muestra todo el contenido de un fichero sin pausa alguna.Ejemplos: cat ficherochmodDescripción: cambia los permisos de lectura/escritura/ejecucion deficheros/directorios.Ejemplos: chmod +r fichero, chmod +w directorio, chmod +rw directorio -R,chmod -r ficherochmod +x fichero : da permiso de ejecucionchownDescripción: =change owner. cambia los permisos de usuario:grupo deficheros/directorios.Ejemplos: chown root:root fichero, chown pello:usuarios directorio -RtarDescripción: =Tape ARchiver. archivador de ficheros.Ejemplos: tar cvf fichero.tar directorio , tar xvf fichero.tar, tar zcvf fichero.tgzdirectorio, tar zxvf fichero.tgzgunzipDescripción: descompresor compatible con ZIP.Ejemplos: gunzip ficheroEl mapa de ficheros y directorios en linux - Comandos básicos y manejo deficheros74partyTaller Shell, comandos y programaciónrpmDescripción: gestor de paquetes de redhat y fedora. Para instalar o actualizarsoftware de sistema.Ejemplos: rpm -i paquete.rpm, rpm -qa programa, rpm --force paquete.rpm, rpm-q --info programadpkgDescripción: gestor de paquetes de Debian. Para instalar o actualizar software enel sistema.Ejemplos: dpkg -i paquete.debaliasDescripción: para crear alias de comandos. Útil para comandos largos.mountDescripción: montar unidades de disco duro, diskette, cdrom.Ejemplos: mount /dev/hda2 /mnt/lnx, mount /dev/hdb1 /mnt -t vfatumountDescripción: desmontar unidades.Ejemplos: umount /dev/hda2, umount /mnt/lnxwhoDescripción: muestra los usuarios de sistema que han iniciado una sesion.Ejemplos: who, w, who am isortDescripción: ordena el contenido de un fichero.Ejemplos: cat /etc/numeros | sort, ls | sortlnDescripción: =link. para crear enlaces, accesos directos.Ejemplos: ln -s /directorio enlacetailDescripción: muestra el final (10 lineas) de un fichero.Ejemplos:tail -f /var/log/maillog, tail -100 /var/log/maillog | moreheadDescripción: muestra la cabecera (10 lineas) de un fichero.Ejemplos: head fichero, head -100 /var/log/maillog | morefileDescripción: nos dice de que tipo es un fichero.Ejemplos: file fichero, file *cmpDescripción: compara dos ficheros y nos dice si son distintosEjemplos: cmp fichero1 fichero2El mapa de ficheros y directorios en linux - Comandos básicos y manejo deficheros84partyTaller Shell, comandos y programaciónfileDescripción: nos dice de que tipo es un fichero.Ejemplos: file fichero, file *diffDescripción: muestra las diferencias entre dos ficheros. Muy usado para parchearsoftware.Ejemplos: diff fichero1 fichero2wcDescripción: word count, calcula número de palabras y otros datos similares de unfichero.Ejemplos: wc fichero, wc -l ficheroComandos de administración: usuarios, procesos, kernelsysctlDescripción: Configurar los parámetros del kernel en tiempo de ejuecución.Ejemplos: sysctl -aulimitDescripción: muestra los limites del sistema (maximo de ficheros abiertos, etc..)Ejemplos: ulimitadduserDescripción: añadir usuario de sistema.Ejemplos: adduser pepe, adduser -s /bin/false pepeuserdelDescripción: = eliminar usuario de sistemaEjemplos: userdel pepeusermodDescripción: = modificar usuario de sistemaEjemplos: usermod -s /bin/bash pepedfDescripción: = disk free. espacio en disco disponible. Muy util.Ejemplos: df, df -hunameDescripción: =unix name. Informacion sobre el tipo de unix en el que estamos,kernel, etc.Ejemplos: uname, uname -anetstatEl mapa de ficheros y directorios en linux - Comandos de administración: usuarios,procesos, kernel94partyTaller Shell, comandos y programaciónDescripción: la informacion sobre las conexiones de red activas.Ejemplos: netstat, netstat -ln, netstat -l, netstat -apsDescripción: =proccess toda la informacion sobre procesos en ejecucion.Ejemplos: ps, ps -axf, ps -A, ps -auxfpstreeDescripción: =proccess tree, muestra los procesos en forma de árbolEjemplos: pstreekillDescripción: envía señales a procesos. La más común es la de matar el proceso.Ejemplo: kill -9 34 (la señal -9 es KILL y mata el proceso numero 34)freeDescripción: muestra el estado de la memoria RAM y el SWAP.Ejemplos: freevmstatDescripción: muestra el estado de la memoria virtualEjemplos: vmstat, vmstat -sduDescripción: =disk use. uso de disco. Muestra el espacio que esta ocupado endisco.Ejemplos: du *, du -sH /*, du -sH /etclsofDescripción: muestra los ficheros(librerias, conexiones) que utiliza cada procesoEjemplos: lsof, lsof -i, lsof | grep ficherolsmodDescripción: Muestra los modulos de kernel que estan cargados.Ejemplos: lsmodinsmodDescripción: instala modulos de kernelEjemplo: insmod e1000, insmod usb_coremodprobeDescripción: Trata de instalar un modulo, si lo encuentra lo instala pero de formatemporal.Ejemplos: modprobe ip_tables, modprobe eepro100rmmodDescripción: Elimina modulos del kernel que estan cargadosEjemplos: rmmod <nombre de modulo>fdiskEl mapa de ficheros y directorios en linux - Comandos de administración: usuarios,procesos, kernel104partyTaller Shell, comandos y programaciónDescripción: sirve para gestionar las particiones de una unidad de discoEjemplos: fdisk /dev/hda , fdisk -l /dev/sdaComunicacionestelnetDescripción: Establece conexiones a puertos TCPEjemplo: telnet localhost 25mesgDescripción: Establece si se aceptan mensajes a través de write o talk.Ejemplo: mesg -ywriteDescripción: envía mensajes a otros usuarios.Ejemplo: write jrmorris pts/0wallDescripción: envía un mensaje a todos los usuarios conectados al sistemaEjemplo: wall “a cascarla el sistema”ifconfigDescripción: =interface config. configuracion de interfaces de red, modems, etc.Ejemplos: ifconfig, ifconfig eth0 ip netmask 255.255.255.0routeDescripción: gestiona las rutas a otras redes.Ejemplos: route, route -niptrafDescripción: muestra en una aplicacion de consola TODO el trafico de red IP, UDP,ICMP.Permite utilizar filtros, y es SUMAMENTE UTIL para diagnostico y depuracion defirewallsEjemplos: iptraftcpdumpDescripción: vuelca el contenido del trafico de red.Ejemplos: tcpdump, tcpdump -upingDescripción: heramienta de red para comprobar entre otras cosas si llegamos aun host remoto.Ejemplos: ping www.rediris.esEl mapa de ficheros y directorios en linux - Comunicaciones114partyTaller Shell, comandos y programacióntracerouteDescripción: herramienta de red que nos muestra el camino que se necesita parallegar a otra maquina.Ejemplos: traceroute www.rediris.esmailDescripción: envio y lectura de correo electronico.Ejemplos: mail [email protected] < fichero, mail -v [email protected]< ficherowgetDescripción: programa para descargar ficheros por http o ftp.Ejemplos: wget http://www.rediris.es/documento.pdflynxDescripción: navegador web con opciones de ftp, https.Ejemplos: lynx www.cuatrovientos.org, lynx --sourcehttp://www.cuatrovientos.org/script.sh | shftpDescripción: cliente FTP.Ejemplos: ftp ftp.cuatrovientos.orgwhoisDescripción: whois de dominios.Ejemplos: whois cuatrovientos.orgsniffitDescripción: Sniffer o husmeador de todo el trafico de red. No suele venirinstalado por defecto.Ejemplos: sniffit -iComunicación entre procesosTuberias o pipes: | sirven para comunicar procesos, usualmente para pasar elresultado de un proceso a otro proceso: por ejemplo ps axf | grep bash: listatodos los procesos y filtra los que se llamen bash . La tubería en definitiva lo quehace es unir la salida de un comando con la entrada de otro.Redirección de entrada/salidaproceso > fichero : con este símbolo podemos redirigir la salida estándar de uncomando a un fichero. Téngase en cuenta una cosa. Si decimos fichero siempre loEl mapa de ficheros y directorios en linux - Redirección de entrada/salida124partyTaller Shell, comandos y programaciónvamos a decir de manera genérica, puede ser un fichero de texto o la pantalla determinal, ahí cabe TODO.linux~$ ps axf > procesos.txtlinux~$ more procesos.txt PID TTY STAT TIME COMMAND 1 ? S 0:00 init 2 ? SN 0:00 [ksoftirqd/0] 3 ? S< 0:01 [events/0] 4 ? S< 0:00 _ [khelper]...Nota: para evitar accidentes con la redirección >, puede establecerse una opciónen el shell que se llama noclobber.procesa |> fichero : con esto redirigimos el resultado a un fichero,sobrescribiéndolo incluso con la opción de shell noclobber activada.procesa >> fichero : con esto redirigimos el resultado a un fichero, pero sinsobrescribirlo, lo que hacemos es escribir al final de este (append en ingles).procesa < fichero : con esto redirigimos el contenido del fichero a un programa.Se usa para utilizar el contenido de un fichero como input de un comando.linux~$ procesa < fichero.txtproceso << END : este redirección se utiliza para iniciar el paso de parámetros aun programa, y se termina cuando escribimos "END" o cualquier otra palabra quehayamos especificado al inicio del comando. Un ejemplo clásico sería una sesiónFTP automatizada a la que le direccionamos todos los comandos de golpe. Alaparecer de nuevo la palabra FINAL se terminan de aceptar datos y se ejecuta elcomando.linux~$ ftp inv << FINALopen ftp.rediris.esuser usuario passwordcd /debianlsexitFINAL...proceso <> fichero : esta redirección permite que un proceso utilice un ficherotanto para leer como para escribir:El mapa de ficheros y directorios en linux - Redirección de entrada/salida134partyTaller Shell, comandos y programaciónlinux~$ proceso <> ficheroCompresión de ficheros y directoriosExisten varias opciones de compresión de ficheros en Linux: gzip, bz2, rar, zip, ytodosellos se pueden combinar con el empaquetar o archivador TAR.tarArchivador, agrupa ficheros en uno, además se le puede decir que comprimatar cfp resultado.tar /etc /var : guarda el contenido de /etc y /var dentro delfichero resultado.tartar xfp resultado.tar : saca todo el contenido de resultado.tartar zcfp usr.tgz /usr : archiva y comprime con gzip el directorio /usrtar jcfp usr.tgz /usr : archiva y comprime con bzip2 el directorio /usrtar zxfp usr.tgz : DEScomprime el fichero anteriorgzip/gunzip, zip/unzip, rar/unrarCompresor/Descompresor. Los ficheros comprimidos con gzip o con zip no sedescomprimen igual. Un fichero comprimido con el winzip habría que abrirlo conel unzip en linux.gzip fichero : comprime fichero, le añade la extensión gzgunzip fichero.gz : descomprime ficheros gz.zip -r9 todo.zip directorio/ : comprime el directorio en el fichero todo.zipunzip : descomprime para ficheros zipbz2/bunzip2Compresor cañero, comprime bastante más que gzip, aunque tarda y chupa mascpubz2 fichero : comprime fichero, le añade la extensión bz2bunzip2 fichero.bz2: descomprimetar jcfp usr.tar.bz2 /usr: archiva y comprime con bz2Accediendo a dispositivos y particionesPara acceder a diskettes, cdroms, dvds, pendrives, cualquier dispositivo USB,etc... es necesario “montarlo” de forma manual, salvo que todo esté configuradoEl mapa de ficheros y directorios en linux - Accediendo a dispositivos y particiones144partyTaller Shell, comandos y programaciónde una forma cómoda con automount.En linux hay un único sistema de ficheros, y si se mete un CD o un USB en elsistema hay que montarlo sobre algún directorio del sistema. Existen algunosdirectorios predefinidos para esto, aunque en principio lo podemos montar dondenos de la gana.Para montar un diskette por ejemplo:linux~# mount /dev/fd0 /floppyPara montar un cdrom o dvdlinux~# mount /dev/cdrom /mntlinux~# mount /dev/dvd /montaje/dvd(el contenido del dvd queda dentro de /montaje/dvd)Para montar un USB basta con usar el dispositivo /dev/sda o /dev/sda1. Linuxsuele emular los dispositivos USB como discos SCSI. Dependiendo de cómo esténformateados hay que montarlos de una forma u otra. Siempre se puedecomprobar cómo esta el particionado usando fdisk.linux~# mount /dev/usb /mntPara acceder a otras particiones o discos del sistema se siguen los mismos pasos,puede que dependiendo del tipo de partición sea necesario especificarlo.linux~# mount /dev/hda3 /mnt t vfatlinux~# mount /dev/hda1 /montaje/ t ntfs o roCuando dejamos de usar el dispositivo y en el caso de que se pueda sacar hayque desmontarlo. El comando es similar: umount y basta con especificar o eldispositivo o el directorio donde se ha montado.linux~# umount /dev/hda3 El mapa de ficheros y directorios en linux - Accediendo a dispositivos y particiones154partyTaller Shell, comandos y programación4.Usando el shellNada más logearnos en un sistema linux nos enfrentaremos o visto de otro modonos beneficiaremos del shell y de toda su potencia:linux~$ Ese el árido aspecto que puede tener el shell: un prompt a la espera de quemetamos comandos. antes de salir ese prompt, el bash comprueba si dentro deldirectorio del usuario existe algún fichero de inicialización como .bashrc o .profile,y en caso de existir los ejecuta: a través de esos ficheros se establecen algunasvariables, alias de comandos, aspecto del prompt, etc...Para empezar podemos echar un ojo a las variables de entorno del sistema:linux~$ setBASH=/bin/bashBASH_VERSINFO=([0]="2" ="05b" ="0" ="1" ="release" ="i386pclinuxgnu"BASH_VERSION='2.05b.0(1)release'COLUMNS=80DIRSTACK=()EUID=1000GROUPS=()HISTFILE=/home/usuario/.bash_historyHISTFILESIZE=500...En el shell ya podemos empezar a meter comandos para hacer la tarea que sea.Muchas veces escribir comandos de texto puede resultar una tarea tediosa yrepetitiva, por eso el bash dispone de multitud de facilidades para que notengamos que escribir tanto.Las flechasA través de las teclas cursoras podemos volver a los comandos que hemosintroducido anteriormente, algo que los usuarios de MSDOS recordarán como elDOSKEY.En cualquier momento podemos movernos al inicio o al final del comandopodemos usar las teclas Inicio o fin, o en su defecto Ctrl-A o Ctrl-E.El historial de comandosA través del comando history podemos echar un ojo a los últimos comandos quehemos ejecutado y podemos repetir cualquiera de ellos gracias al comandoEl mapa de ficheros y directorios en linux - El historial de comandos164partyTaller Shell, comandos y programaciónespecial !linux~$ lsDesktop php scriptlinux~$ linux~$ 2 ls3 mkdir scripts4 mkdir php5 mkdir Desktop6 ls7 historylinux~$ !6Desktop php scriptlinux~$ Si simplemente recordamos que habiamos ejecutado un comando que empezabapor hi podemos ejecutarlo haciendo:linux~$ !hiRelleno de comandos y ficherosEscribir comandos y nombres de ficheros enteros puede ser un rollo. En el shellpodemos usar el tabulador en cualquier momento para que nos rellene loscomandos y nos complete las rutas de ficheros con lo que nos ahorarremos unmontón de trabajo. Por ejemplo:linux~$ mo(tabulamos y nos muestra todas las posibilidades)moc more mozilla1.7.8mocqt3 mount mozillafirefoxmogrify mountpoint mozillasuitemontage mozilla mozillathunderbirdlinux~$ mou(tabulamos)linux~$ mountA la hora de completar los nombres de ficheros y rutas de directorios la tabulaciónresulta enormemente práctica:linux~$ ls /lib/mo(tabulación)linux~$ ls /lib/modules/(tabulación)linux~$ ls /lib/modules/2.6.82386El mapa de ficheros y directorios en linux - Relleno de comandos y ficheros174partyTaller Shell, comandos y programaciónGracias a la tabulación nos ahorramos la tediosa tarea de escribir largos textos.ComodinesEl shell reconoce una serie de caracteres comodín para poder referirse a unconjunto de ficheros o directorios● * : se corresponde con cualquier contenidos● ? : se corresponde con un único carácter● [] : se corresponde con un conjunto de caractereslinux~$ lsprograma.c test.c texto.txt ejemplo.pdf test.olinux~$ ls *.cprograma.c test.clinux~$ ls *.?programa.c test.c test.oEjecución de comandosPara ejecutar un comando en el shell basta con ponerlo, y si el comando seencuentra dentro de los directorios indicados en la variable PATH se ejecutará sinproblemas.linux~# uptime 20:49:05 up 2:35, 2 users, load average: 0.00, 0.00, 0.00linux~# Podemos encadenar más de un comando en la linea separandolos con ;linux~# uptime;uname a;date 20:49:37 up 2:35, 2 users, load average: 0.00, 0.00, 0.00Linux 4vientos 2.6.82386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linuxdom jun 3 20:49:37 CEST 2007linux~# Si todo va bien, el comando hará lo que tenga que hacer e implícitamentedevolverá un valor booleano TRUE. Sabiendo eso podemos encadenar comandosde manera condicional usando && y ||linux~# ls fichero && more ficheroCuando usamos && estamos haciendo que el segundo comando se ejecuteEl mapa de ficheros y directorios en linux - Ejecución de comandos184partyTaller Shell, comandos y programaciónsolamente si el primero se ha ejecutado con éxito. Es un and lógico, podemosencadenar más de dos comandos.linux~# ls fichero && cat fichero && echo “sin problemas OK”Si usamos || el siguiente comando se ejecutará solamente si el primero no se haejecutado correctamente o ha devuelto algún error.linux~# ls fichero || echo “El fichero no existe”Podemos combinar los dos:linux~# ls fichero && cat fichero || echo “No hay fichero”Comandos en segundo planoLos sistemas linux son mutitarea: podemos ejecutar más de un comando a al vez.Podemos dejar un comando que se ejecute en segundo plano y mientras podemosejecutar más. Para dejar un comando en segundo plano simplemente metemos un& al final del mismo. Por ejemplo podemos comprimir un directorio y dejar laoperación en segundo plano:linux~# tar zcfp etc.tar.gz /etc & 4376linux~# En cualquer momento podemos llevar el comando a primer plano mediante elcomando fg. Asimismo lo podemos pausar con CtrlZ y reanudarlo en segundoplano con bg.linux~# fgtar zcfp usr.tar.gz /usr(CtrlZ)+ Stopped tar zcfp usr.tar.gz /usrlinux~# bg+ tar zcfp usr.tar.gz /usr &linux~# Si queremos terminar alguno de los procesos que tenemos en marcha debemosmandarle una señal. Para eso se usa el comando kill, que a pesar de su nombreno es que sirva solo para matar procesos, en realidad sirve para enviar señales alos procesos. La señal más frecuente es KILL o 9:linux~# psEl mapa de ficheros y directorios en linux - Ejecución de comandos194partyTaller Shell, comandos y programación PID TTY TIME CMD 3593 pts/0 00:00:00 bash 3767 pts/0 00:00:00 xmms 3849 pts/0 00:00:00 pslinux~# kill 9 3767linux~# ps PID TTY TIME CMD 3593 pts/0 00:00:00 bash 3849 pts/0 00:00:00 pslinux~#Para conocer las señales disponibles podemos echar un ojo en el manual de killcon el comando man kill.Comandos built-in del shellEl shell dispone de un conjunto de comandos que vienen de serie. Son comandosmuy sencillos que pueden ayudar en la programación de scripts. Vamos a listarlos,pueden usarse dentro de un script o desde el propio prompt:●●●●●! : negación# : comentarios: : comando nulo. : el punto sirve para ejecutar ficheros. Con los scripts del mismo directoriose hace: ./script.shalias: sirve para crear alias de comandos largos: alias dir='ls -l | more'bind : gestiona la librería readlinebg : pasa procesos a background o segundo planobreak : fuerza la salida de fors, whiles, selects o untilsbuiltin: permite modificar el comportamiento de comandoscd : el cambio de directoriocommand : ejecutar determinado comando con sus argumentoscontinue: salta a la siguiente iteración en fors, whiles, selects o untilsdeclare: declaración de variablesdirs: muestra la pila de directoriosdisown: quita los procesos dependientes del shell para que no dependan deestedo, done : parte de las iteracionesecho : mostrar datos por salidaenable: habilitar o deshabilitar los comandos builtin.exec : ejecuta un comando en lugar del proceso actualexit: termina el script o el shellexport: convierte las variables en globalesfc : editar comandos del historialEl mapa de ficheros y directorios en linux - Ejecución de comandos204party●●●Taller Shell, comandos y programaciónfg: pasar comandos a primer planogetopts: para tomar los argumentos opcionales del script, al estilo de chelp: muestra la ayudahistory: el historial de comandosif: para crear estructuras condicionalesjobs: muestra los procesos que tenemos en marchakill: envío de señales a procesos.let: ejecución de operaciones aritméticaslocal: declaración de variables localeslogout: salida del shellpopd: saca un directorio de la pila de directoriosprintf: sacar datos formateados como en cpwd: muestra el directorio actualpushd: mete un directorio en la pilaread: lee desde la entrada estándarreadonly: previene que variables de shell sean sobrescritasreturn: para terminar funcionesselect: estructura de selecciónset: muestra variables del shell, y puede establecer muchas opcionesshopt: establece o quita opciones de shellshift: desplaza posiciones en el shellsimilar al .suspend: suspende el shell actual, suele hacerse en el sutest: para construir condicionalestime: mide el tiempo de ejecución de un comandostimes: muestra tiempos acumulados de procesostrap: para atrapar señalestrue: constante booleanatype:distingue si un comando es builtin, función,alias, palabra clave,..ulimit: muestra los limites de recursos del sistemaumask: muestra/establece permisos que sse deben aplicar a nuevos ficherosunalias: quita los aliasunset: desestablece funciones o variablesuntil: para crear iteracioneswait: detiene la ejecución a la espera que termine otro procesowhile: para crear iteraciones.El mapa de ficheros y directorios en linux - Ejecución de comandos214partyTaller Shell, comandos y programación5.Programación de scripts de shellIntroducciónUn script de shell no es más que un fichero de texto que contiene una serie decomandos del sistema linux además de los comandos que forman parte del shell(built-in) con los que podemos crear estructuras que facilitan la programación descripts complejos.Para poder ejecutar los ficheros deben ser ejecutables por tanto si no esejecutable hay que forzar que lo sea:linux~$ chmod u+x scriptshell.sho con números:linux~$ chmod 755 scriptshell.shA partir de ahí ya podemos ejecutar el script invocando directamente el fichero.En los sistemas linux y en el shell bash2 debemos hacerlo especificando eldirectorio actual:linux~$ ./scriptshell.shSi no ponemos ./ el script no se ejecutará y el sistema dirá que no lo encuentra.Otra forma de ejecutar el script es usar el comando source. A través de estecomando podemos ejecutar un script aunque no tenga permisos de ejecución.linux~$ source scriptshell.shSi no ponemos ./ el script no se ejecutará y el sistema dirá que no lo encuentra.Hola mundoEste es el aspecto que tendría el script más básico posible:#!/bin/bash # Esto es un comentario echo "Hola mundo"Este sería similar pero usando una variable:#!/bin/bash # En la primera linea establezco con qué shell se debe ejecutar # Se define una variable SALUDO="Hola mundo" echo n "Este script te dice: " echo ${SALUDO}El mapa de ficheros y directorios en linux - Introducción224partyTaller Shell, comandos y programaciónVariablesEn el shell se pueden definir variables y por tanto dentro de los scripts también.Aquí no hay declaración de tipos pero sí que podemos definir variables quecontienen números, cadenas, booleanos e incluso arrays.Para declarar una variable basta con hacer:VARIABLE=valorLa podemos exportar para que se convierta en una variable global.export VARIABLEA partir de que se crea la variable ya podemos acceder a ella a través de sunombre con el símbolo del dólar por delante.echo $VARIABLEEste es un ejemplo de uso de variables:#!/bin/sh # Muestra el uso de variables # No existen los tipos # aldagai definizioa una_variable=666 MI_NOMBRE="Richard" NOMBRES="Iñigo Asier Sten Roberto Pello" BOOLEANO=true echo "Echemos un ojo a las variables " echo "Un número: ${una_variable}" echo "Un nombre ${MI_NOMBRE}" echo "Un grupo de nombres: ${NOMBRES}" # Al script se le pueden pasar argumentos. Para recogerlos # hay que usar : ${número} donde: # ${0} : nombre del script # ${1} : primer argumento # ${2} : segundo argumento # ...etc. echo "Has invocado el script pasándome ${0} eta ${1} " # Otras variables especiales # $# : Número de argumentos echo "Me has pasado $# argumentos" # $@ : grupo de parámetros del script echo IDa: ${!} eta $@ El mapa de ficheros y directorios en linux - Variables234partyTaller Shell, comandos y programación# Variables de entorno echo "Mi directorio actual: ${PWD} y mi usuario ${UID}"arraysComo ya se ha dicho, existe la posibilidad de declarar y usar arrays. Son algolimitados pero pueden resultar prácticos.Este es un ejemplo de uso de arrays#!/bin/bash # Muestra el uso de arrays # Podemos crear arrays de una dimensión asociaciones[0]="Gruslin" asociaciones="Hackresi" asociaciones="NavarradotNET" asociaciones="Riberlug" # Otra forma de definirlos partidos=("UPN" "PSN" "CDN" "IUN" "Nafarroa BAI" "RCN" ) numeros=(15 23 45 42 23 1337 23 666 69) echo ${adiskideak[0]} es una asociacion, ${ETSAIAK} un partido #echo "Tamaño: $#asociaciones" #echo "Tamaño: ${$#{partidos}}"Otros usosMuchas veces puede que nos interese tomar solamente parte del valor de unavariable, o asignarle un valor por defecto. Este es un ejemplo de algunas cosasque podemos hacer con las variables:#!/bin/bash # Muestra el uso de variables # Sacar parte del valor de una variable (substring) NOMBRE="Navarrux Live edition" echo ${NOMBRE} una parte ${NOMBRE:8} y otra ${NOMBRE:8:4} # Valores por defecto. # ${variable:valorpordefecto} SINVALOR= echo "Variable SINVALOR: ${SINVALOR:31337} eta ${VACIO:'Miguel Indurain'}" El mapa de ficheros y directorios en linux - Variables244partyTaller Shell, comandos y programaciónecho "La variable SINVALOR no tiene valor algun ${SINVALOR} " # Esto es igual pero el valor queda establecido # ${variable:=valorpordefecto} echo "Variable SINVALOR: ${SINVALOR:=31337} eta ${VACIO:='Miguel Indurain'}" echo "La variable SINVALOR no tiene valor algun ${SINVALOR} " # Y lo contrario: si la variable SÍ tiene valor, se le pone otro # ${variable:+valorpordefecto} PROGRAMA='sniffit' echo "valor de PROGRAMA: ${PROGRAMA:+'tcpdump'} y ahora ${PROGRAMA}" # Si la variable está sin definir o vacía se muestra un error. En caso # contrario se le asigna un valor por defecto # ${variablevalorpordefecto} echo "Valor de: ${EJEMPLO'Roberto'} y luego {EJEMPLO}" # Otros # ${!prefijo*} : nos devuelve una lista de las variables que comienzan # con determinado prefijo. # Podemos probar con el for: for i in ${!P*};do echo $i ;done OperacionesYa que tenemos variables, que menos que poder operar con ellas de algunaforma, Al igual que en cualquier otro lenguaje de programación disponemos deoperadores aritméticos y lógicos, aunque su uso no es tan simple.AritméticasEste es un ejemplo del uso de operaciones aritméticas#!/bin/bash # , +, *, /, %, **, variable++, variable, variable, ++variable # == : igualdad # != : desigualdad # Pruebas VALOR1=23 VALOR2=45 # Para las operaciones puede usarse expr o [] RESULTADO=`expr ${VALOR1} + ${VALOR2}` echo "Resultado: ${RESULTADO}" RESULTADO=`expr ${VALOR1} + ${VALOR2} + 3` echo "Resultado: ${RESULTADO}" El mapa de ficheros y directorios en linux - Operaciones254partyTaller Shell, comandos y programaciónVALOR1=5 VALOR2=4 echo "${VALOR1} y ${VALOR2}" RESULTADO=$[${VALOR1} + ${VALOR2} + 2] echo "Ahora: ${VALOR1} + ${VALOR2} + 2 = ${RESULTADO}" RESULTADO=$[${VALOR1} + $[${VALOR2} * 3]] echo "Ahora: ${VALOR1} + ${VALOR2} * 3 = ${RESULTADO}" LógicasEste es un ejemplo de uso de operaciones lógicas#!/bin/bash ## operaciones lógicas # && : and # || : or # ! : not booleano=true # Si la variable booleano es true veremos por pantalla "OK" $booleano && echo "OK" || echo "no es true" otrobool=!${booleano} test ${otrobool} || echo "Ahora es falso" # Mediante && podemos encadenar comandos #who && ps axf && echo "OK" ## comparaciones : eq, ne, lt, le, gt, or ge valor=6 test $valor le 6 && echo "Se cumple" # Asignaciones nuevo=${valor} test ${nuevo} eq ${valor} && echo "Son los mismo" El mapa de ficheros y directorios en linux - Operaciones264partyTaller Shell, comandos y programaciónecho "Ahora ${nuevo} es lo mismo que ${valor}" CondicionalesEn el shell podemos crear las habituales estructuras condicionales if o if-else.Esta sería la forma de if:if condición; thenoperacionesfio también:if condiciónthenoperacionesfiEsta sería la forma de el if-elseif condiciónthenoperacioneselse operacionesfiY también tenemos el if-elseif...-elseif condiciónthenoperacioneselif condiciónthenoperacioneselse operacionesfiEste es un ejemplo de uso de condicionales if y test#!/bin/bash El mapa de ficheros y directorios en linux - Condicionales274partyTaller Shell, comandos y programación# Condicionales VARIABLE=45 if [ ${VARIABLE} gt 0 ]; then echo "${VARIABLE} es mayor que 0" fi # Podemos meter el then en la siguiente linea if [ e /etc/shadow ] then echo "OK, parece que tienes un sistema con shadow pass" fi ## Estructura ifelse OTRA=23 if [ ${OTRA} lt 0 ] then echo "${OTRA} es menor que 0" else echo "${OTRA} es mayor que 0"; fi ## Estructura ifelseif # Vamos a usar "read" para pedirle datos al usuario echo n "Mete un valor: " read VALOR1 echo n "Mete otro valor: " read VALOR2 echo "Has introducido los valores ${VALOR1} y ${VALOR2} " if [ ${VALOR1} gt ${VALOR2} ] then echo "${VALOR1} es mayor que ${VALOR2}" elif [ ${VALOR1} lt ${VALOR2} ] then echo "${VALOR1} es menor que ${VALOR2}" else echo "${VALOR1} y ${VALOR2} son iguales" fi ## Estructura test # Ejecutar operacion si no se cumple la condición El mapa de ficheros y directorios en linux - Condicionales284partyTaller Shell, comandos y programación# test condición || operacion # Ejecutar operación si se cumple # test condición && operacion # Este test crea un fichero si no existe. test f './fichero.txt' || touch fichero.txt Comprobaciones que podemos hacer:En las condicionales podemos hacer una serie de comprobaciones con ficheros,las mostramos en orden alfabético:● a fichero : verdadero si el fichero existe● e fichero : lo mismo● b fichero : verdadero si el fichero existe y tiene algún bloque especial● c fichero : verdadero si el fichero existe y es del tipo carácter (suelen ser dispositivos)● d fichero : verdadero si el fichero existe y es un directorio.● f fichero : verdadero si el fichero existe y es un fichero común.● g fichero : verdadero si el fichero existe y tiene el bit setGruopID establecido● h fichero : verdadero si el fichero existe y es un enlace símbolico● k fichero : verdadero si el fichero existe y tiene el sticky bit establecido● p fichero : verdadero si el fichero existe y es una tubería con nombre.● r fichero : verdadero si el fichero existe y tiene permisos de lectura.● s fichero : verdadero si el fichero existe y es mayor que 0.● u fichero : verdadero si el fichero existe y tiene el bit setUID establecido.● w fichero : verdadero si el fichero existe y tiene permisos de escritura.● x fichero : verdadero si el fichero existe y tiene permisos de ejecución .● O fichero : verdadero si el fichero existe y el EUID es de nuetro usuario.● G fichero : verdadero si el fichero existe y el EGID es de nuestro grupo.● L fichero : verdadero si el fichero existe y es un enalce simbólico.● S fichero : verdadero si el fichero existe y es un socket.● N fichero : verdadero si el fichero existe y ha cambiado tras la última lectura.● t descriptor : verdadero si en un descriptor de fichero abierto y un terminalA partir de ahí podemos hacer las comprobaciones tan complejas como hagaEl mapa de ficheros y directorios en linux - Condicionales294partyTaller Shell, comandos y programaciónfalta:#!/bin/sh# script para comprobar si un fichero existe. Espera un parámetroif [ e $1 ] && [ f $1 ]thenecho "OK, el fichero existe "else echo "NO existe"fi# Para comprobar la negación usaríamos el símbolo: !if [ ! e $1 ] thenecho “No existe”fiOtros test que podemos hacer comparando ficheros:● fichero1 nt fichero2 : verdadero si fichero1 es más reciente que fichero2 o si el fichero1 existe y el otro no.● fichero1 ot fichero2: verdadero si fichero1 es más viejo que fichero2 o si el fichero1 existe y el otro no.● fichero1 ef fichero2: verdadero si los dos comparten el mismo número de inodo y dispositivo.caseEl case o el switch-case tan típico del lenguaje C también está disponible aquí.Esta sería su forma:case variable in valor1)operaciones_si_variable=valor1;; valor2) operaciones_si_variable=varlo2;; *)operaciones_en_cualquier_otro_casoesacEl mapa de ficheros y directorios en linux - Condicionales304partyTaller Shell, comandos y programaciónEste es un ejemplo de uso de la estructura case#!/bin/bash NOMBRE="" echo n "Dame un nombre: " read NOMBRE case ${NOMBRE} in iñigo) echo "${NOMBRE} dice: me dedico a Navarrux" ;; sten) echo "${NOMBRE} dice: tengo un blog friki" ;; asier) echo "${NOMBRE}> dice: .NET me gusta" ;; pello) echo "${NOMBRE}> dice: el shell mola" ;; *) echo "A ${NOMBRE} no lo conozco" esacIteracionesTambién tenemos las clásicas iteraciones for y while además de otras, siempreque necesitemos realizar tareas repetitivas, recorrer arrays o resultados decomandos, etc...forSe puede hacer un for de distintas maneras. El más simple tiene esta forma:for var in listado operacionesdoneAunque se pueden crear los típicos for que se inicializan con un valor y se hacenejecutar x veces. Mejor verlo en código:Este es un ejemplo de uso de la iteración for:#!/bin/bash El mapa de ficheros y directorios en linux - Iteraciones314partyTaller Shell, comandos y programación## un for simple echo "FOR simple: " for i in a b c d e f g h i do echo "letra: $i" done ## for para recorrer array NOMBRES="Iñigo Sten Asier Pello Roberto" echo "FOR simple para recorrer un array: " echo "Participantes en la 4party: " for i in ${NOMBRES} do echo ${i} done ## for con el resultado de un comando echo "FOR con el resultado de un comando" for i in `cat direcciones.txt` do echo ${i} done ## for con un grupo de ficheros echo "FOR con ficheros" for i in *.sh do ls lh ${i} done ## for clásico con un índice echo "FOR clásico " for (( cont=0 ; ${cont} < 10 ; cont=`expr $cont + 1` )) do echo "Ahora valgo> ${cont}" done whileMuchas veces nos interesa una iteración sin un número de vueltas fijo, quesimplemente dependa de una condición. Eso lo podemos conseguir con el while,cuya forma resumida es esta:El mapa de ficheros y directorios en linux - Iteraciones324partyTaller Shell, comandos y programaciónwhile condicióndooperacionesdoneEste es un ejemplo de uso de la iteración while:#!/bin/bash ## Estructura while echo "WHILE en marcha" cont=0 # Un bucle que terminará cuando $cont sea mayor que 100 while (test ${cont} lt 100) do cont=`expr $cont + 10` echo "Valor del contador: ${cont}" done echo "Valor final del contador: ${cont}" ## Un while infinito # while true; do comando; done untilUntil es similar a while, salvo que su ejecución se detiene de forma inversa.Cuando la condición resulta falsa, termina el bucle. Esta es su forma:until condicióndooperacionesdoneEste es un ejemplo de uso de la iteración until:#!/bin/bash ## El bucle until # Un bucle until se ejecuta hasta que el test resulte falso echo "Estructura until" cont=15 until (test ${cont} lt 0) El mapa de ficheros y directorios en linux - Iteraciones334partyTaller Shell, comandos y programacióndo cont=`expr $cont 1` echo "Valor del contador: ${cont}" done echo "Valor final del contador: ${cont}"selectMediante select podemos crear menús de selección de manera muy cómoda.Podemos definir un array con todas las opciones y select las mostrará pornosotros. Esta es su forma general:select variable in listado operacionesdoneEste es un ejemplo de uso de la iteración select#!/bin/bash ## Estructura select # El select es similar al choice de msdos # sirve para crear menus de seleccion echo "Select de distros" DISTROS="Debian Ubuntu Navarrux Gentoo Mandriva" echo "Selecciona la mejor opción por favor: ${resultado}" select resultado in ${DISTROS} do # Si la longitud de cadena de resultado es > 0 ya está seleccionado (test ${#resultado} ne 0 ) && break echo "Selecciona la mejor opción por favor: ${resultado}" done echo "Sistema seleccionado: [${resultado}] longitud de cadena: ${#resultado}" FuncionesPara estructurar mejor el código, dividir las partes complicadas e incluso reutilizarfuncionalidades podemos crear. Las funciones de shell pueden recibir parámetroscon las variables especiales $1, $2, ...El mapa de ficheros y directorios en linux - Funciones344partyTaller Shell, comandos y programaciónAquí vemos varios ejemplos de funciones#!/bin/bash ## funciones # Antes que nada hay que definir las funciones, si no daría error # las funciones toman los parámetros con $numero, como el script # variable RESULTADO=0 # Una funcion que muestra valores por pantalla muestrapantalla () { echo "Valores: $0> $1 y $2 y $3" } # Puede usarse return pero solo para devolver números sumame () { echo "Estamos en la función: ${FUNCNAME}" echo "Parametros: $1 y $2" RESULTADO=`expr ${1} + ${2}` return 0 } # Es posible la función recursiva boom () { echo "No ejecutes esto... " boom } # Horrela egingo litzateke deia, parentesirik gabe muestrapantalla 3 4 "epa" # Llamamos a la función y si devuelve 0 es correcto. sumame 45 67 && echo "OK" || echo "Ocurrió un error" echo "Resultado: ${RESULTADO} $!" LibreríasA la hora de programar scripts de shell no es que existan herramientas paradeclarar librerías, pero se pueden simular de cierta manera metiendo código defunciones en ficheros de scripts separados.Este sería un ejemplo de uso de librerías, usando un fichero con las funcionesmostradas anteriormente:#!/bin/bash # No es que existan las librerías pero se puede simular # algo similar El mapa de ficheros y directorios en linux - Librerías354partyTaller Shell, comandos y programación# Esta es la forma de importar funciones source libreria.sh muestrapantalla 69 123 "epa" sumame 1337 3389 && echo "OK" || echo "Ocurrió un error" echo "Resultado: ${RESULTADO} $!"SeñalesLas señales son un método de los sistemas linux para intercomunicar procesos.Las señales más frecuentes usadas por los usuarios son las de cancelar y matarprocesos. Pero hay más y los procesos linux son capaces de capturar las señalespara modificar su comportamiento.Desde un script de shell también se pueden capturar las señales.Este sería un simple ejemplo de la captura de señales:#!/bin/bash # señales funcion () { echo "Se ha recibido una señal: ${FUNCNAME} ${0}" #exit } # Lo primero es establecer que señales se atraparán. Lo hacemos con trap # Con esto evitaremos que se haga caso a CtrlC CTRLZ # trap ":" INT QUIT TSTP # Esto es similar pero al recibir la señal dirigimos la ejecución a la función trap "funcion" INT QUIT TSTP # Un bucle sin fin para probar while true do sleep 2 echo "ufff qué sueño..." doneColoresUsando la opción -e del comando echo podemos cambiar los colores de laterminal. Se puede hacer de forma controlada, estableciendo un color yrestableciendo el color anterior para cambiar colores puntualmente. Para loscolores se usan los códigos ANSI.El mapa de ficheros y directorios en linux - Colores

0
22
Fotos chistosas, tomadas en el momento exacto + videos
Fotos chistosas, tomadas en el momento exacto + videos
HumorporAnónimo9/11/2011

Fotos tomadas en el momento exacto - y Vídeolink: http://www.youtube.com/watch?v=SStO9GSKZjA&feature=relatedlink: http://www.youtube.com/watch?v=vcwQ-eNZpTY&feature=relatedlink: http://www.youtube.com/watch?v=4Xv7hWq2GNQ&feature=related esta buenisimo

0
0
T
Tutorial shell de Ubuntu - Linux
LinuxporAnónimo9/19/2011

Para los que son novatos en linux aqui esta un tutorial vastante bueno, que les servirá de muchoaqui está el link del documento en pdf bien organizado y mas entendible:http://es.scribd.com/doc/65462276/Shell-Linux-ExcelenteTaller Shell, comandos y programaciónÍndice de contenido1.INTRODUCCIÓN.....................................................................................................3El mapa de ficheros y directorios en linux........................................................42.El shell..................................................................................................................5Buscar ayuda.......................................................................................................53.Guía de comandos................................................................................................6Comandos básicos y manejo de ficheros.............................................................6Comandos de administración: usuarios, procesos, kernel....................................9Comunicaciones.................................................................................................10Comunicación entre procesos............................................................................12Redirección de entrada/salida............................................................................12Compresión de ficheros y directorios.................................................................13Accediendo a dispositivos y particiones.............................................................144.Usando el shell....................................................................................................16Las flechas.........................................................................................................16El historial de comandos....................................................................................16Relleno de comandos y ficheros.........................................................................17Comodines.........................................................................................................18Ejecución de comandos......................................................................................18-1Taller Shell, comandos y programaciónComandos en segundo plano.........................................................................195.Programación de scripts de shell........................................................................22Introducción ......................................................................................................22Variables.............................................................................................................23arrays.............................................................................................................24Otros usos......................................................................................................24Operaciones.......................................................................................................25Aritméticas.....................................................................................................25Lógicas...........................................................................................................26Condicionales.....................................................................................................27case................................................................................................................30Iteraciones.........................................................................................................31for...................................................................................................................31while...............................................................................................................32until................................................................................................................33select..............................................................................................................34Funciones...........................................................................................................34Librerías.............................................................................................................35Señales...............................................................................................................36Colores...............................................................................................................366.Bibliografía, referencias y enlaces......................................................................38-2Taller Shell, comandos y programación1.INTRODUCCIÓNEste guía no es para leer de forma seguida, este guía pretende ser una referenciade comandos Unix/Linux y de programación de scripts de shell que se puedaconsultar en cualquier momento. No pretende ser una guía exhaustiva, sino unareferencia que sirva como recordatorio de los comandos más utilizados.¿Y qué es Linux?Los sistemas operativos del tipo Linux esta formado por procesos y ficheros. Y nohay nada más. Los dispositivos como el disco, el cdrom, la pantalla, estarepresentado como un fichero en el sistema linux, dentro de /dev. Los sockets decomunicación son ficheros. Los directorios son ficheros. Los ficheros son ficheros.

31
0
Avant Window Navigator con el Tema Lucido (AWN). Dock Ubuntu
Avant Window Navigator con el Tema Lucido (AWN). Dock Ubuntu
LinuxporAnónimo3/18/2012

AWN es un dock para nuestro escritorio que nos permite tener una barra con una serie de lanzadores o accesos directos (mal llamado por Windows). Destaca principalmente por sus efectos, algunos de los cuales imitan la apariencia del dock de Mac OS X "Leopard". AWN con el tema Lucido INSTALACION EN 5 PASOS AÑADIR LOS REPOSITORIOS DE AWN 1).Para añadir los repositorios, basta con ejecutar en una terminal el siguiente comando: sudo add-apt-repository ppa:awn-testing 2).Actualizamos la lista de repositorios con el comando: sudo apt-get update 3).Instalamos AWN con el siguiente comando: sudo apt-get install avant-window-navigator-trunk 4).Para ejecutarlo vamos a Aplicaciones -> Accesorios -> Navegador de ventanas Avant y nos saldrá la barra o dock abajo del escritorio. 5).Para abrir las preferencias de empotrado vamos a Sistema - Preferencias - Awn settings. link: http://www.youtube.com/watch?v=AU7t5_Z_H8M&feature=channel ----------------------------------------------------------------------------------------------------------------------------------------------------------------- CONFIGURACION DE AWN A la izquierda del dock tendremos un icono azul, llamado "Gestor de AWN". Damos click derecho sobre él y seleccionamos preferencias de empotrado. Nos saldrá la ventana de configuración con las siguientes pestañas: Preferencias: Size of icons (tamaño de los iconos) -> en pixeles Orientation (orientación) -> podemos elegir entre los 4 lados de la pantalla donde queremos que esté el dock (izquierda, derecha, arriba, abajo) Style (estilo) -> podemos elegir entre flat, 3D, curved, edgy, floaty Icon Effects (Efectos de los iconos) -> Podemos elegir el efecto para cuando pase el ratón por encima. Expandir el panel y posición en la pantalla Iniciar AWN automáticamente al Inicio -> Lo Habilitamos para que se inicie cada vez que arranquemos el sistema. Task Manager: Icons -> podemos elegir de los iconos y que coincidan con las aplicaciones... Show all windows (Mostrar todas las ventanas)Display launchers only (Mostrar sólo lanzadores) drag and drop reordering (arrastrar y soltar para reordenar) group common windows (grupo común de ventanas) show dialog after long press (pulsación larga para mostrar diálogo) Launchers son los lanzadores que tenemos en el dock y desde aquí podemos añadir más, quitarlos o editarlos Mi blog donde pueden encontrar este documento pdf http://angeldavidm6a.blogspot.com/

5
2
S
Solo programación Shell Script Ubuntu - Linux + libro blanc
LinuxporAnónimo9/23/2011

Para quienes tienen algunas dudas de ¿Qué es un shell script? ¿como hacerlo?, ¿Que son variables? y Ejemplos de script y de cada cosa aqui menciona, aqui esta este pdf que yo mismo subí para que lean y entiendan un poco mas de esto:link programacion shell script http://es.scribd.com/doc/66014116 ---- y puedes descargar el Pdf ¡¡yea!!! Espero y sea de su utilidad indíce del contenidoIntroducción 51. Introducción: el shell 71.1. Redirecciones y pipes 91.2. Aspectos generales 92.Elementos básicos de u n shell script112.1. ¿Qué es un shell script? 112.2. Variables y arrays 122.3. Estructuras condicionales 142.4. Los bucles 162.5. Funciones, select, case, argumentos y otras cuestiones 172.6. Filtros: Grep 242.7. Filtros: Awk 262.8. Ejemplos complementarios 29Actividades 33Bibliografía 34Libro blanco del software Librehttp://es.scribd.com/doc/61896642/III-Libro-Blanco-Del-Software-Libre

41
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.