35
Guia de uso del Shell para principiantes Junio 2014 SHELL BASH – GUIA DE USO – Nivel Principiante Introducción Llamado a los miembros de Kioskea II. ¿Qué es el Shell? III. Cómo acceder a la línea de comandos IV. Las consolas virtuales Ejemplo: Acceder a la consola 3 desde la interfaz gráfica V. Conexión en una consola virtual Ejemplo: VI. El prompt del shell después de la conexión VII. Regresar al modo gráfico desde una consola virtual VIII. El entorno shell IX. Variables de entorno importantes Ejemplo de visualización: X. Archivos de configuración XI. ¿Por qué utilizar la línea de comandos? XII. Nociones de comando Ejemplo: el comando ls XIII. ¿Dónde se encuentran los comandos? Ejemplo: búsqueda del comando iptables con which XIV. La documentación (las páginas "man") Ejemplos: XV. La estructura de una página man XVI. Algunas reglas para comprender SYNOPSYS y/o OPTIONS XVII. Comandos básicos XVIII. Ejecución de un comando Ejemplo: ejecución de firefox desde la línea de comando XIX. Cambiar de identidad (cambiar de usuario) XX. La raíz XXI. Los directorios "." y ".." XXII. ¿Dónde estoy? (posición en el árbol de directorios) XXIII. La ruta absoluta Ejemplo:

Guia de Uso Del Shell Para Principiantes 387 k5m1xw

Embed Size (px)

DESCRIPTION

Comandos

Citation preview

  • Guia de uso del Shell para principiantesJunio 2014

    SHELL BASH GUIA DE USO NivelPrincipiante

    IntroduccinLlamado a los miembros de Kioskea

    II. Qu es el Shell?III. Cmo acceder a la lnea de comandosIV. Las consolas virtuales

    Ejemplo: Acceder a la consola 3 desde la interfaz grficaV. Conexin en una consola virtual

    Ejemplo:VI. El prompt del shell despus de la conexinVII. Regresar al modo grfico desde una consola virtualVIII. El entorno shellIX. Variables de entorno importantes

    Ejemplo de visualizacin:X. Archivos de configuracinXI. Por qu utilizar la lnea de comandos?XII. Nociones de comando

    Ejemplo: el comando lsXIII. Dnde se encuentran los comandos?

    Ejemplo: bsqueda del comando iptables con whichXIV. La documentacin (las pginas "man")

    Ejemplos:XV. La estructura de una pgina manXVI. Algunas reglas para comprender SYNOPSYS y/o OPTIONSXVII. Comandos bsicosXVIII. Ejecucin de un comando

    Ejemplo: ejecucin de firefox desde la lnea de comandoXIX. Cambiar de identidad (cambiar de usuario)XX. La razXXI. Los directorios "." y ".."XXII. Dnde estoy? (posicin en el rbol de directorios)XXIII. La ruta absolutaEjemplo:

  • XXIV. La ruta relativaEjemplo: el directorio actual.Ejemplo: el directorio padre ..

    XXV. Cmo desplazarse en el rbol de directoriosXXVI. HistorialXXVII. El auto-completado de comando

    Ejemplo: comando tail utilizando la ruta absolutals /u + TAB + b + TAB + ta + TAB + TAB + i + TAB

    XXVIII. Edicin de archivos (vi,vim)Etapa I MUY RECOMENDADOEtapa II Abrir el archivoEtapa III Edicin del archivoEtapa IV - Terminar la edicin del archivoEtapa V Guardar las modificaciones y salir de vi

    XXIX. Los aliasXXX. Las redirecciones y los pipelines

    Las redireccionesEjemplos de redirecciones:Los pipelinesEjemplo de pipelines

    XXXI. Los meta-caracteres del ShellXXXII. Trucos y TipsXXXIII. Midnight Commander (alias mc)XXXIV. Error: comando not found

    Ejemplo: Ls en lugar de lsXXXV. Error: Ningn archivo o directorio de este tipoXXXVI. Error: Permiso denegadoXXXVII. Consejos de redaccin

    Ejemplo: eliminacin de la raz a causa de un simple espacioOtro ejemplo con el espacioXXXVIII. Ejecutar un script

    Introduccin

    Llamado a los miembros de KioskeaInvito a los miembros contribuidores de Kioskea a hacer las correcciones necesarias, amodificar o aadir trucos que sean de utilidad para un principiante en lnea de comandos(evitando los temas muy complicados, ya que ese no es el propsito de este tutorial). Invitotambin a los miembros que no son contribuidores de Kioskea, a que me hagan saber deposibles errores y sus sugerencias. El objetivo de este tutorial es el de permitir a un principianteen lnea de comandos a que se las arregle de manera favorable. Este pequeo tutorial, lejos deser completo le permitir conocer el Shell como un programa y no como un lenguaje deprogramacin. Voy a intentar ser corto en lo que respecta a cada captulo (explicaciones

  • concisas y claras), ya que este tutorial puede resulta para algunos bastante largo, de all la ideade crear varios captulos. No es necesario leer el tutorial de inicio a fin. Puede accederdirectamente al capitulo que le interese en funcin de sus necesidades.

    II. Qu es el Shell?Para encontrar una respuesta ms precisa les recomiendo que visiten esta pgina SHELL eningls. El Shell es un programa que se encuentra en el directorio /bin. Se distinguen varios tiposde Shell- el /bin/sh shell Bourne- el /bin/bash shell Bourne Again SHell- el /bin/csh C shell - el /bin/ksh Korn shell- el /bin/tcsh C shell mejorado- el /bin/zsh/ Z shellEl resto de este tutorial trata nicamente del shell Shell bash que es el Shell por defecto en lasdistribuciones GNU/Linux. El Shell permite ejecutar comandos, explorar el rbol de directoriosdel sistema, crear, editar y eliminar archivos, etc.

    III. Cmo acceder a la lnea de comandos?Para acceder a la lnea de comandos, es posible utilizar un terminal (xterm, kterm, gterm) otambin konsole. Kterm es un terminal emulador multi-lengua basado en xterm. Lasprincipales diferencias entre kterm y xterm son:

    la posibilidad de procesar texto multi-lengua codificado en ISO2022, *mostrar el textocoloreado (ver man kterm).

    Para esto, tenemos dos posibilidades:utilizar el men del escritorio (Gnome, Kde, etc.). Este mtodo recomendado.utilizar el men ejecutar una aplicacin. En la ventana abierta, escriba el nombre delterminal y valide. La ventana ejecutar una aplicacin puede ser abierta con Alt + F2utilizar las consolas virtuales (hay 6).

    IV. Las consolas virtualesLa consola virtual (tty, tty6) es una pantalla negra donde aparece un prompt, de la forma login:Desde la interfaz grfica, es posible conectarse a una consola virtual utilizando la combinacinde teclas Ctrl+Alt+FN, donde N es un nmero del 1 al 6

    Ejemplo: Acceder a la consola 3 desde la interfaz grficaCTRL+ALT+F3 Una vez que est en una consola virtual, la navegacin entre las consolas sehace con la combinacin de teclas Alt+FN, donde N es un nmero del 1 al 6.

  • V. Conexin en una consola virtualCuando se le pida el login: ingrese el login del usuario, luego presione Enter para validar, se lepedir el Password: Ingrese la contrasea del usuario y valide.

    la contrasea no se muestra en la pantalla por razones de seguridad. No debepreocuparse por no ver lo que ingresa en la pantalla.

    Si la contrasea es valida, aparecer el prompt, indicando que la conexin ha sidosatisfactoria.

    Ejemplo

    VI. El prompt del shell despues de la conexionEl prompt del shell tiene por lo general la forma siguiente: nom@maquina ~ $

    nom representa el nombre del usuario conectadomaquina representa el nombre del equipo~ es un acceso directo (atajo) que significa el directorio personal /home/usuario$ significa que est conectado como usuario

    Si en lugar de $ aparece el signo #, entonces quiere decir que est conectado comosuperusuario (root. Recuerde que los sistemas Gnu/Linux utilizan por convencin # para root y $para un usuario que no sea root. Puede cambiar esto, modificando la variable de entorno PS1,pero no es aconsejado!

  • VII. Regresar al modo grfico desde una consola virtualPara regresar al modo grfico desde una consola virtual, utilice la combinacin de teclas ALT +F7

    VIII. El entorno shellDespus de conectarse, el usuario es conectado a su entorno. Esto significa que el Shell pone asu disposicin variables de entorno, es decir un contenedor de memoria en el que sonalmacenados los datos. Para mostrar el contenido de una variable de entorno puede serutilizado el comando echo $NOM_VARIABLE. El nombre de las variables de entorno es porconvencin en maysculas, por lo tanto es necesario respetar esto.

    IX. Variables de entorno importantesHOME, USER, GROUPS, UID, PWD, SHELL, PATH, HOSTNAME

    HOME contiene el directorio del usuarioUSER contiene el login del usuarioPWD contiene el directorio actualSHELL contiene el nombre del Shell de conexinPATH contiene la lista de directorios donde se encuentran los comandos que el usuariopuede ejecutarHOSTNAME contiene el nombre del equipoHOSTSIZE contiene el tamao mximo de los comandos ejecutados contenidos en elarchivo histricoPS1 contiene la configuracin para la visualizacin del prompt

    Ejemplo de visualizacin:

  • El comando set permite mostrar las variables y su contenido.

    X. Archivos de configuracinDurante la conexin, en una consola virtual o cuando se abre un terminal en modo grfico, elshell utiliza informacin que se encuentra en ciertos archivos (.bashrc, .bash_profile, etc)

    Editando estos archivos puede ser modificado el comportamiento del Shell. Por ejemplo elarchivo .bashrc es utilizado en el capitulo sobre los alias. En lo que respecta a la configuracindel Shell deber esperar un poco, eso no se har de inmediato. Deber aprender a hacerlo conel tiempo, por lo tanto no sea impaciente.

    XI. Por qu utilizar la lnea de comandos?Una gran cantidad de soluciones estn dadas en lnea de comandos, no es que GNU/Linux notenga una interfaz grfica, pero en ciertas tareas, el uso de la lnea de comando es muchos ms

  • prctico y potente que el famoso ratn.

    XII. Nociones de comandoUn comando es un archivo ejecutable. La ejecucin de un comando puede ser diferentedependiendo del caso. Los comandos utilizados en este capitulo son a modo de ejemplo, por loque no se obstine en entenderlos si tuviera algn problema con alguno de ellos. Los comandosbsicos sern detallados posteriormente.

    Ejemplo: el comando lsEl comando ls muestra el contenido de un directorio. Ver man ls para mayores detalles.

    sin argumento y sin opciones

    sin argumentos con una o varias opciones

  • con argumento

    con argumento y con una o varias opciones

    XIII. Dnde se encuentran los comandos?Los comandos que puede ejecutar desde su terminal se encuentran en ciertos directorios delsistema. La variable PATH (en espaol: ruta) contiene una lista de directorios, los cualescontienen los comandos a los que puede acceder. Para poder acceder a todos los comandos esnecesario ser root. Para encontrar la ubicacin de un comando, utilizamos "whereis" (en espaoldnde est):

  • o tambin "which"

    La diferencia entre whereis et whichwhereis busca los archivos ejecutables, las fuentes y el manual de un comandowhich busca los archivos ejecutables en la variable PATH

    Ejemplo: bsqueda del comando iptables con which1. El usuario yogi desea saber si el comando iptables existe en el sistema, el resultado esNO

  • 2. verificamos en calidad de usuario root

    En realidad el comando iptables existe en el sistema en /sbin. El directorio /sbin al noencontrase en el PATH del usuario yogi, es normal que which no d un resultado. En resumenwhereis es ms confiable.

    XIV. La documentacin (las pginas "man")Acceder a la documentacin en lnea de comando man comando man N comando N elnmero de la pgina man (lo ver en la parte superior izquierda) Por regla general en la parteSEE ALSO de una pgina man, encontrar la lista de comandos que se recomienda consultarque tienen relacin directa con el comando que lee en el manual.

    Ejemplos:1. Ejecucin del comando man crontab

  • 2. El prompt desaparecer y se mostrar la pgina man

    Mire la parte SEE ALSO e identificar las pginas que se recomiendan consultar. Esto significaque podemos ingresar: man 5 crontab man 8 cron 3. la tecla q para salir de la pgina man yregresar al prompt

  • Para obtener la descripcin resumida de un comando, utilizaremos la opcin "-f" man -fcomando whatis comando Para conocer las secciones que contienen en su presentacin unapalabra clave, la opcin "-k": man -k comando

    XV. La estructura de una pgina manCOMMAND(1) Manual del usuario Linux COMMAND(1)

    NAME comando resumen de la accin del comando

    SYNOPSYS

    DESCRIPTION Explicaciones concernientes a la ejecucin del comando

    OPTIONS Lista de opciones disponibles y lo que hacen

    FILES Los archivos utilizados por el comando

    SEE ALSO comando_primo(1), comando_hermano(5), etc.

    BUGS los bugs que existen en el comando

    AUTHOR

    El nombre del autor

  • XVI. Algunas reglas para comprender SYNOPSYS y/oOPTIONSEl texto, sin[](corchetes),{}llaves), (menor mayor),debe ser escrito tal como aparece- el texto entre corchetes [] es facultativo- el texto entre llaves {} contiene las opciones a realizar.Las opciones son separadas por | o por una coma, Comando -{a|b} quiere decir comando a o comando b pero no comando ab- el texto entre debe ser reemplazado por el texto apropiado- los parntesis (...), utilizados para los parmetros como por ejemplo los nombresde archivos- los corchetes []y los pueden ser combinados [] facultativopero si lo utiliza debe escribir el nombre del archivo- los corchetes []y las llaves {} pueden ser combinadas [--opcin={a|b|c}]

    XVII. Comandos bsicos

  • cat - Lee (concatena)uno o varios archivos, visualizacin en la salida estndarcd - ChangeDirectory, cambia el directoriochmod - CHangeMODe cambia el modo de acceso (permiso de acceso) de unoo varios archivoschown - CHangeOWNer cambia el propietario de uno o varios archivoscp - copiar archivoscrontab planificacin de tareascut - Retira partes precisas de texto en cada lnea de un archivodate - Muestra la fecha de acuerdo al formato solicitadodd - DevicetoDevice - Vuelve a copiar octeto por octeto todo o una partedel contenido de un perifrico (mayormente de almacenamiento)a otro perifrico.df - Visualizacin de la cantidad de espacio libre disponible en todos los sistemasde archivosdu - DiksUsage uso del discoecho - Muestra texto en la salida estndar (en la pantalla)exit - detiene la ejecucin del shellfind - busca archivosfsck - FileSystemChecK verifica la integralidad del sistema de archivosgrep - busca en uno o varios archivos las lneas que corresponden a un motivogroupadd- Agrega un grupo de usuariosgunzip - descomprime archivosgzip - comprime archivoshead - muestra las primeras lneas (por defecto 10) de un archivohelp - muestra la ayuda sobre los comandos internos bashkill - enva una seal a un procesoless - programa de visualizacin en pantallaln - creacin de enlacesls - lista el contenido de los directoriosman - muestra las pginas del manualmkdir - MaKeDIRectory crea un directoriomkfs - MaKeFileSystem creacin de sistemas de archivosmore - programa de visualizacin en pantallamount - montar un sistema de archivosmv - desplazar, renombrar un archivops - muestra los procesos que se estn ejecutandopwd - Print name of current/working directory muestra la ruta complete del directorio activorm - eliminacin de archivosrmdir -Remove empty directories eliminacin de una carpeta vacatail - muestra las 10 primeras lneas de un archivotar - creacin de archivossu - Substitute User identity ou Switch User toma la identidad de un usuariouname - Muestra informacin sobre el sistema.useradd agregar un usuariowhereis localizar un comando

  • XVIII. Ejecucin de un comandoHay varias maneras de ejecutar un comando.

    utilizando simplemente su nombreutilizando la ruta absolutautilizando la ruta relativautilizando el alias (prctico para los comandos que se usan frecuentemente y que sonlargos)

    Un comando puede ser ejecutado en segundo plano, para ello debe utilizar ampersand (&)despus del nombre del comando. La ejecucin de un comando en segundo plano permite darla mano al Shell despus de la ejecucin.

    Ejemplo: ejecucin de firefox desde la lnea de comando

    XIX. Cambiar de identidad (cambiar de usuario)Desde el Shell tiene la posibilidad de tomar la identidad de otro usuario existente en el sistema,incluido el usuario root. Para esto tiene a su disposicin el comando su o su Vea comoutilizar el comando su para mayores detalles.

  • XX. La razEn los sistemas de la familia Unix, la raz representa la cumbre del rbol de directorios. Esta esrepresentada por el carcter / (slash) y significa root (raz en espaol) Todos los directoriosdel sistema estn ligados a la raz de manera directa o indirecta.

    XXI. Los directorios "." y "..". Indica el directorio actual.. indica el directorio padre

  • XXII. Dnde estoy? (posicin en el rbol de directorios)Algo muy importante que debemos saber cuando estamos conectados a un Shell, es saberdonde nos encontramos en el rbol de directorios. El comando pwd (PrintWorkingDirectory)muestra su ubicacin en el rbol de directorios.

  • XXIII. La ruta absolutaLa ruta absoluta representa el rbol de directorios completo de los archivos, comenzando por laraz.

    Ejemplo:El archivo b.txt se encuentra en /home/user/doc/text Uno se encuentra en /home/user/ascii Laruta absoluta hacia b.txt es /home/user/doc/text/b.txt

    Cualquiera sea su ubicacin en el rbol de directorios el uso de la ruta absoluta es el medio msseguro para acceder al archivo que se desea.

    XXIV. La ruta relativa

  • La ruta relativa para acceder a un archivo es el rbol de directorios relacionado a su ubicacinen el Shell. Utilizamos las notaciones . y/o .. . nos permite descender en el rbol de directoriosdel directorio actual. .. nos permite en un inicio subir en el rbol de directorios con el fin dealcanzar otros directorios.

    Ejemplo: el directorio actual.El archivo b.txt se encuentra en /home/user/doc/text Nos encontramos en /home/user Elcamino relativo hacia b.txt es ./doc/text/b.txt

    Ejemplo: el directorio padre ..El archivo b.txt se encuentra en /home/user/doc/text Nos encontramos en /home/user/ascii Elcamino relativo hacia b.txt es ../doc/text/b.txt

    El directorio ascii se encuentra en /home/yogi por lo tanto escribiendo .. voy a utilizar eldirectorio padre /home/yogi como punto de inicio luego voy a doc/text (observe que no he

  • escrito /doc/text que habra ligado doc de la raz /)

    XXV. Cmo desplazarse en el rbol de directoriosPara desplazarse en el rbol de directorios utilice el comando cd Cd / ruta / hacia / directorioCon pwd puede verificar su nueva ubicacin en la raz

    XXVI. HistorialLos comandos ejecutados son guardados en un historial. La variable HISTSIZE contiene elnmero mximo de comandos que puede guardar. Puede acceder al historial con el comandohistoryhistory [n] | less

    n - la opcin permite mostrar los n ltimos comandos (facultativo)less el copmando less permite navegar en el historial

    las flechas arriba abajo le permiten navegar en el historialln permite ejecutar el comando correspondiente al nmero n en la lista sin tenerque volver a escribirlo

    XXVII. El auto-completado de comandoEscribir un comando en un terminal no siempre es fcil. A pesar de esto, no hay porquepreocuparse. El Shell le permite el auto-completado de comandos.

    Ejemplo: comando tail utilizando la ruta absoluta-esto supone que debo escribir /usr/bin/tail El autocompletado nos permite ahorra tiempo en

  • cuanto a la escritura del comando y a la vez nos da seguridad en cuanto a la sintaxis. Parahacer el autocompletado utilizamos la tecla TAB Para eso comenzamos con el primer carcter

    Escribimos /u y presionamos TABEl Shell completar y escribir /usr/En ese momento agregamos una b entonces estamos con /usr/bPresionamos de nuevo TAB y tendremos /usr/bin/En ese momento agregamos ta, entonces tendremos /usr/bin/taPresionamos 2 veces en TAB

    El Shell en el sistema encuentra 4 correspondenciastac tack tail taskselContinuamos y agregamos una ientonces tendremos /usr/bin/taiPresionamos de nuevo TABy obtenemos /usr/bin/tail

    ls /u + TAB + b + TAB + ta + TAB + TAB + i + TAB

    Es verdad que explicando da la impresin que es un poco largo. No se preocupe, es rpido, asescriba con un solo dedo.

    XXVIII. Edicin de archivos (vi,vim)El editor vi Muy til sobretodo cuando tenemos un problema con el modo grfico.

    Etapa I MUY RECOMENDADOHaga una copia de respaldo del archivo original, para esto utilizamos el comando cp (copia)seguido del archivo fuente seguido del archivo destino (aqu inexistente), aadimos .original alfinal del nombre del archivo para distinguir la copia de respaldo del nuestro archivo:

  • Etapa II Abrir el archivo

  • Etapa III Edicin del archivo-presione la tecla i para pasar a modo insercin En la esquina inferior izquierda verINSERCION -utilice las flechas (derecha, izquierda, arriba, abajo) o Av Pg y Re Pg paradesplazarse en el archivo -la insercin de caracteres se hace encima del cursor con undesplazamiento a la derecha del cursor -la tecla Supr permite eliminar el carcter que seencuentra encima del cursor.

    Etapa IV Terminar la edicin del archivoPresione la tecla Esc en cuanto haya terminado la edicin. --INSERCIONdesaparecer

  • Etapa V Guardar las modificaciones y salir de vi-presione la tecla: (la debe ver aparecer en la esquina inferior izquierda) -escriba wq (paraWriteQuit) -presione Enter

    Regrese al terminal

  • Es todo para la edicin en lnea de comando con vi o vim

    XXIX. Los aliasEl uso del alias es muy prctico para los comandos largos que se utilizan regularmente. Estoevita volverlos a escribir. El uso excesivo de los alias puede hacer que olvide los comandos ysus opciones. Los alias los escribimos en el archivo .bashrc de la manera siguiente (vea elcapitulo XXVIII Edicin de archivos (vi, vim) ) alias nom= comando Una vez editado elarchivo /home/user/.bashrc, escribasource /home/user/.bashrcPara tomar inmediatamente en cuenta los alias. El comando alias muestra los alias existentes.

    XXX. Las redirecciones y los pipelinesEn primer lugar vamos a comenzar con una pequea explicacin con respecto a los descriptoresde las entradas-salidas:

    todo lo que se escribe en el Shell es llamado STDIN (STandarDINput)todo lo que ve en la pantalla puede ser:

    STDOUT (STandarDOUTput)STDERR (STandarDERRor)

    Estos descriptores son numerados como sigue: 0: entradas estndar (STDIN) pantalla 2: salida errores (STDERR) ----------------> pantalla

  • Las redireccionesQu es una redireccin? Es la posibilidad de dirigir el resultado de un comando utilizandootros destinos y no slo los descriptores estndar. Para realizar una redireccin utilizamos:comando > archivo redireccin en modo escritura hacia el archivo el archivo es creado si noexiste su contenido ser reemplazado por el nuevo si el archivo ya existe comando >> archivo redireccin en modo adicin hacia el archivo el archivo es creado si no existe el resultado seraadido al final del archivo comando < archivo el comando lee desde el archivo

    Ejemplos de redirecciones:- enva el contenido del archivo1 al archivo2 Si el archivo2 existe, su contenido original sereliminado, el archivo2 es creado si no existe

    -enva el contenido de archivo1 al archivo2 modo adicin Si el archivo2 existe, el contenidodel archivo1 es aadido al final del archivo2, si el archivo2 no existe, ser creado

    -busca en la raz el archivo denominado archivo.txt, los errores en lugar de ser enviados aSTDERR (en la pantalla) son enviados a /dev/null (especie de papelera de reciclaje sin fin)

  • -busca en la raz el archivo denominado archivo.txt, los errores en lugar de ser enviados aSTDERR (en la pantalla) son enviados a los archivos error.txt

    Los pipelinescomando1 | comando2 - el resultado del comando es utilizado por el comando2comando1 & comando2 - los comando son ejecutados simultneamente, comando1 ejecutndose en segundo planocomando1 && comando2 - si el comando1 funciona el comando2 es ejecutadocomando1 || comando2 - el comando2 se ejecuta solamente si elcomando1 fallocomando1; comando2 - los comandos son ejecutados en el orden

    Ejemplo de pipelines

  • Para comenzar ejecutamos perl -ne 'print unless /^\s*$/' guideshell con el fin de mostrar elarchivo en la pantalla, las lneas vacas son eliminadas. En lugar de mostrar en pantallautilizamos | para pasar el resultado al comando wc que completar el nmero de lneas de estearchivo -el paralelismo &

    Los dos comandos se ejecutan simultneamente. -la dependencia &&

  • Observar que en el 1er caso los dos comandos se ejecutan. En cambio en el 2do caso hecometido voluntariamente un error de sintaxis para el 1er comando. El Shell no tiene en cuentani siquiera el 2do comando y se detiene dicindonos que ech no es un comando conocido. -laalternativa ||

    En el 1er caso observar que solamente el 1er comando se ejecuta. En el 2do caso el Shellmuestra un error para el 1er comando pero sin embargo ejecuta el 2do. -la secuencia;

  • echo a se ejecuta esperamos 1 segundo echo b se ejecuta esperamos 2 segundos echo c seejecuta

    XXXI. Los meta-caracteres del ShellPara facilitar el ingreso de comandos el Shell pone a su disposicin meta-caracteres, llamadostambin caracteres genricos o jockers.* - corresponde a cualquier carcter y nmero de carcter? - corresponde a un slo carcter [...] corresponde a un carcter que se encuentra entre corchetesCon los corchetes se puede tambin utilizar intervalos [0-9] - cualquier carcter comprendido entre 0 y 9 [a-zA-Z] cualquier letra comprendida en el intervalo (minscula y mayscula)

    XXXII. Trucos y Tips

  • cd : regresar al directorio personalcd - : regresar al directorio precedente (nicamente si ha ejecutado un cd)

    Ctrl+l: limpiar la pantallaCtrl+c: detener un comando Ctrl+z: suspender (hacer una pausa) un comandoCTRL+t: corregir un error de entrada, intercambiando dos letras contiguasCtrl+a: ir al inicio de la lneaCtrl+e: ir al fin de la lneaCtrl+s: interrupcin de la salida del terminal (ocultar el ingreso de datos)Ctrl+q: anular la interrupcin de la salida (mostrar el ingreso de datos)Ctrl+u: borra todo lo que est a la izquierda del cursorCtrl+w: borra la palabra a la izquierda del cursorCtrl+k: borra la palabra a la derecha del cursorCtrl+y: pegar lo ingresado precedentementeCtrl+d: borra el carcter actual, si la lnea est vaca desconexin

    Alt+b: desplazarse hacia adelante, palabra por palabra en la lnea de comando Alt+f: desplazarse hacia atrs, palabra por palabra en la lnea de comando Alt+d: borra la siguiente palabraAlt+t: intercambia la palabra actual por la palabra precedenteAlt+c: pone en mayscula la letra actual, todo el resto de la palabra actual en minsculas,luego se desplaza a la siguiente palabraAlt+l: pone en mayscula a partir de la letra actual hasta el final de la palabra, luegose desplaza a la siguiente palabra Alt+u: pone en minscula a partir de la letra actual hasta el final de la palabra, luego se desplaza a la siguiente palabraAlt+Backspace: borra la palabra precedente (equivalente a Ctrl+w)

    XXXIII. Midnight Commander (alias mc)Midnight Commander - administrador en lnea de comandos y una captura de pantalla Esteutilitario le permite navegar, crear, editar, eliminar archivos, etc. Con mc puede modificar losprivilegios, cambiar de propietario, buscar, conectarse a un servidor ftp, etc mc puede serutilizado como explorador

    XXXIV. Error: comando not foundLea este tutorial (Capitulo IV.3) La variable de entorno PATH Otra causa de este error: norespet las mayscula/minsculas de los caracteres

    Ejemplo: Ls en lugar de ls

  • XXXV. Error: Ningn archivo o directorio de este tipoError mostrado por el Shell cuando intenta ejecutar un comando en un archivo que no existe enla ruta precisada. Soluciones -busque el archivo con el comando find para ver si existe en eldisco y conocer su ruta verdadera.

    XXXVI. Error: Permiso denegadoEste es un problema de privilegios de acceso. Lea este tutorial: privilegios de acceso

    XXXVII. Consejos de redaccinEl Shell es muy exigente en lo que respeta a la redaccin de los comandos. Los caracteresreservados para el Shell deben ser evitados para obtener el carcter literal. Caracteresreservados para el Shell:

    el espacioel punto y coma ;el slash /el anti slash \el carcter | (pipe)el ampersand &el punto .los apostrofes simples ( ) y dobles ( )

    En general hay que tener cuidado con los caracteres alfanumricos. 1. Sensibilidad a lasmaysculas y minsculas Si el comando se denomina ls entonces con seguridad Ls nofuncionar. Lo mismo con el nombre de archivos y/o directorios. 2. El espacio Tomemos elejemplo de un archivo que se llama: mi archivo.txt Si escribe ls -l mi archivo.txt para ver losatributos de este archivo, entonces preste atencin ya que no obtendr el resultado deseado.

  • Por qu? Porque el Shell leer: Mostrar los atributos de los archivos mi y archivo,txt Parapedir al Shell que muestre lo que uno desea, debemos utilizar lo que pone a nuestra disposicinls -l mi\ archivo.txt sintaxis ok (el anti slash permite leer el espacio como un carcter y nocomo un separador de argumentos del comando) ls -l 'mi archivo.txt' sintaxis ok (losapostrofes simples tratan cada carcter de manera literal) PREGUNTA: Cmo puedo leer unapostrofe simple de manera literal entre 2 apostrofes simples? El espacio tambin tiene comofuncin separar los argumentos en la lnea de comandos. Emplear un simple espacio en unlugar donde no debe ir puede ser fatal para todo el sistema.

    Ejemplo: eliminacin de la raz a causa de un simple espacioSupongamos: El root desea eliminar una carpeta X. Para ello, ste va a utilizar el comando rmcon las opciones f (fuerza) y R (recursivo). La carpeta que se desea eliminar se llama a_eliminary se encuentra en /home/yogi/a_eliminar a. comando correcto

    b. comando incorrecto (error de escritura) => sistema eliminado

    Explicacin: Observar que en el segundo caso, por error he escrito un espacio entre / y home.

  • Qu pasa? El Shell creer que el comando rm debe eliminar en primer lugar la raz / y luegohome/yogi/a_eliminar. Les tengo que decir que acaba de borrar todos los datos de su sistema."home/yogi/a_eliminar" no existe, y su sistema ya no existe. POR LO TANTO PRESTEATENCION A LO QUE ESCRIBE EN EL SHELL!!! Una solucin para evitar todo esto esUTILIZAR EL AUTOCOMPLETADO de comandos. Si ingresa / y enseguida la tecla TAB 2veces, varias opciones aparecern en la pantalla. Normalmente son los directorios de la raz:boot,bin...home...,var. Slo tiene que agregar una h para home y de nuevo TAB 2 veces y assucesivamente. DESE EL TIEMPO DE LEER ESTA ADVERTENCIA PARA QUE NO LOLAMENTE DESPUS!!!

    Otro ejemplo con el espacioPara reconocer el espacio como carcter y no como separador de parmetros es necesarioprotegerlo (ponga un anti-slash delante) Cree un archivo vacio que se llame "aa bb"

    Podemos observar que el resultado obtenido no es conforme a lo que desebamos.Desebamos tener un solo archivo aa bb y no el archivo aa ni el archivo bb Por qu hemosobtenido esto? Porque el Shell, cuando hemos ingresadotouch aa bb , Ha entendido que necesitbamos crear un archivo aa y un archivo bb Corrijamos esto:

  • Ahora usted dir: Pero no se ha creado aa bb sino aa\bb!!! En realidad hemos creado aabb Elcarcter \ permite reconocer el espacio como carcter literal. Por otra parte el comando ls l nosmuestra la existencia del archivo aa bb En lugar del anti slash podemos utilizar los apostrofessimples touch 'aa bb' Qu podemos retener de todo esto? Cada vez que desee utilizarcaracteres que no sean alfanumricos, como $, espace, \, etc. como caracteres literalesentonces es necesario poner el anti slash o ponerlos entre apostrofes simples. 3. Los comandoslargos que tienen ms de una lnea Si el comando se hace demasiado largo puede pasar a lalnea siguiente utilizando el carcter \

    XXXVIII. Ejecutar un scriptshell ejecutar un scriptEste documento intitulado Guia de uso del Shell para principiantes de Kioskea (es.kioskea.net) esta puesto adiposicin bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia,siempre que esta nota sea visible.