Está en la página 1de 7
Administraci6n del sistema en Linux. BL INTROD! VARIABLE! TUBI PIP! LISTAS DE COMANDOS EXPANSION DE NOMBRES DE FICHEROS OTR CTE, TAL BLOQUE 0 - INTRODUCCION A LA SHELL BASH. Shell. Literalmente concha, caparaz6n, Entorno de trabajo en el que se ingresa al entrar en un sistema Unix/Linux en modo texto. Bash es la shell estandar “de facte archivo /ete/shells. , pero hay otras posibilidades como se puede ver en el Para cada usuario viene indicada la shell por defecto en el archivo /ete/passwd en su 7 campo. Tambien en la variable de entorno SHELL (comprobar echo $SHELL). ‘Se compone de: g Un intérprete de érdenes. ‘g Estructuras de control para elaborar algoritmos (scripts). Su fumcionamiento es el siguiente: g Lee Ia entrada de caracteres por teclado o desde un fichero (script). g Divide esa entrada en palabras y operadores (tokens). @ Genera nombres de archivo a partir de metacaracteres, sustituye los valores de las variables y realiza expansiones de patrones (si hay cualquiera de estas tres cosas). 9 Redirecciona la entrada/salida si procede (Por defecto, stdin,stdout y stderr estén asociadas a la consola, pero se puede redireccionar a otros ficheros). ‘9 Ejecuta las érdenes, realizando sustitucién si es necesario (alias) y comprobando si es interna (built-in) o externa, en cuyo caso buscard el path en que se encuentra a Espera que éstas terminen y devuelvan un eddigo de estado (0 si todo ha ido bien). Cuando ejecuta la orden: Hace una llamada al sistema para crear un proceso hijo (fork, bifurcacién). ‘a Hace una llamada exee que inicia el programa a ejecutar. g Fork implica una division en 2 ejecuciones, el proceso padre puede quedarse a la espera (wait) 0 ejecutarse concurrentemente, Para ello se pone a trabajar en “segundo Los procesos por los que el shell espera su terminacién, se ejecutan en primer plano (foreground) y los que se ejecutan a la vez que el shell se denominan procesos en segundo plano (background). Una parte de las érdenes que ejecuta la shell son internas (built-ins), esto es, comandos que vienen ya implementados dentro de la propia bash, no hay que buscarlos y cargarlos desde archivos externos, por lo que se ejecutan mucho mas rapido que los comandos externos (no built-ins). Algunos comandos poscen ambas versiones, pero a menos que se indique lo contrario, siempre elegira el interno para su ejecucién, FICHEROS DE CONFIGURACION DE LA BASH. En Linux todos los detalles de configuracién del entomo de la bash son visibles y modificables, y estén repartidos por varios scripts: Jetc/profile : contiene la configuracién del entorno de usuario para todos los usuarios: declaracién de variables, y ejecucién de una serie de scripts de configuracién. ‘ge ~/-bash_profile : informacién especifica para cada usuario, declara nuevas variables ¢ invoca al siguiente script. ~/bashre : configuracién especifica para un usuario, Puede modificar lo que est especificado en el siguiente. /ete/bashre : fichero de configuracién genérico para todos los usuarios de la bash, que ineluye los alias para todos. gebash logout : fichero que se ejecuta al salir del sistema, {junto al 2° y 3° estén en /ete/skel y son copiados al directorio de usuario al ser afiadido éste al sistema). ke~/-bash_history ; historico de comandos ejecutados por la bash, el numero de Iineas viene determinado por la vble HISTSIZE (establecida en /ete/profile), VARIABLES DE ENTORNO. Hay una serie de variables predefinidas que configuran el entomo de la shell, Algunas de las, mis utilizadas son: -» HOME : contienen el directorio raiz del usuario actual, tal como aparece en /ete/passwd. -» PATH: lista de directorios en los que la shell buscar los ejecutables, de izquierda a derecha. -» PSI: prompt primario del sistema. -» PS2: prompt secundario, si el comando es interactivo. -» PWD : directorio actual. = TERM: caracteristicas del terminal actual. Obsérvese que se definen en mayiisculas por convenio. También se pueden definir por el usuario nuevas variables, que al ser exportadas por el comando export, pasan a formar parte del entorno de los procesos hijos del proceso actual. Hay dos areas de memoria para almacenar las variables de la shell: ig ¢l rea local de datos (por defecto) .g entomo: para que una variable nueva, o modificada se comparta con los procesos Algunos comandos relacionados con la manipulacién de variables son: -» Set. : muestra todas las variables de entomo y locales definidas, junto con sus valores. = env; muestra las variables de entorno y sus valores = unset variable : devuelve el valor NULL a la variable especificada -secho $variable = muestra el valor de la variable indicada export variable : exporta el valor de la variable establecido localmente a todos los procesos hijo ‘Veamos como ejemplo como personalizar el prompt: El valor predeterminado es: PS1="{\u@\h \W]” Algunos de los posibles componentes son: _ th: nombre del computador hasta el primer punto (del nombre de dominio) 9 \H: nombre del computador completo pin: salto de linea gs nombre de la shell > \t: hora actual 9 \W:: directorio de trabajo completo 9 \W : directorio de trabajo (solo iiltima parte) gS : para root, un S, para otros, # .p \\ una barra inclinada ALIAS Y SUSTITUCION DE ORDE) Sustituci6n. Si se encierra entre comillas invertidas (°) la invocacién de un comando, éste es sustituido por lo que genera hacia stdout. Asi se puede, p.cj asignar a una variable dicha salida: ejemplo: fecha=*date* Sia continuaci én ejecutdramos: echo $fecha veriamos la salida del comando date anterior, Alias. Se puede renombrar un comando con opciones si se desea mediante el comando allias. P. ej: alias dir="1s -al” A partir de este punto, invocar dir seré como invocar a 1s al. Se suele utilizar para acortar ciertas combinaciones de opciones habituales en un comando, 0 para establecer versiones mas seguras de comandos potencialmente peligrosos (Ver ~/.bashre) Se desactiva la asignacién de alias con el comando unalias cjemplo: unalias dir REDIRECCION. La situacién de la E/S para todos los comandos es, por defecto: gel canal de entrada de datos es stdin, que tiene el descriptor de fichero 0 asociado. gel canal de salida de datos es stdout, con el descriptor 1 gel canal de salida de error es stderr, con el descriptor 2. Pero antes de que una orden se ejecute, su entrada, salida y salida de error se pueden redirigir hacia otro archivo: . Para redirigir entrada: < ejemplo: cat < pp . Para redirigir salida: > ejemplo: 1s > pp . Para redirigir la salida de error: 2> ejemplo: 1s dir 2> pp . Para la salida de error, habiendo redirigido ya la salida: ejemplo: ls dir > pp 2>61 Ademis, si se usa >> 0 2>> se evita que se produzca sobreescritura en el fichero destino de la salida TUBERIAS 0 PIPES. La salida de un comando (que debe generar una salida a stdout por defecto) se conecta ala entrada de otro (que debe tomar una entrada por defecto de stdin), El simbolo de tuberia es | Ejemplo: 1s -al | sort -r El comando tee genera una “T” como las de fontaneria, de manera que se duplica la salida: tuna copia sigue por la tuberia y otra se envia a un fichero, Ejemplo: 1s -al | tee archivo.txt | sort -r Con tuberias se pueden enlazar una serie de comandos simples hasta formar complejas operaciones LISTAS DE COMANDOS. Son secuencias de comandos enlazadas por uno de los siguientes operadores: 5 los comandos separados por ; se ejecutan secuencialmente. Se utiliza para incluir mas de un comando en una linea. @ & siun comando termina con un & pasa a ejecutarse en segundo plano en una subshell g && entre dos comandos simples provoca la ejecucién del primero, y si éste se ejecuta sin problemas, entonces pasa a ejecutarse el segundo. gl entre dos comandos, si el primero provoca algin problema en su ejecucién, entonces se ejecuta el segundo, en otro caso no. 9 (y) una serie de comandos entre paréntesis se ejecutan en una subshell. EXPANSION DE NOMBRES DE FICHEROS. En la mayoria de los comandos que manipulan archivos y que seran estudiados més adelante (p. i. Is, 1m, etc), se pueden emplear pseudocaracteres que son interpretados por la shell: @? sel cardcter comodin, que puede sustituirse por cualquier otro, salvo el punto inicial @* comodin miltiple, puede sustituirse por 0 6 mas caracteres cualesquiera, salvo el punto inicial aly] enmarcan a una serie de caracteres, cualquiera de los cuales son validos en la expansién, Si el primer cardcter contenido es ! indica los valores contrarios a los recogidos. Se pueden indicar rangos con el guion - OTROS CARACTERES ESPECIALES. gS delante del nombre de una vble, indica su contenido, @ comilla invertida, enmarea un comando para provocar su sustituci6n. a comillas débiles, protegen el contenido literal de un string, salvo el $ del valor de una variable, la comilla invertida (°), la comilla simple (') y el \ a’ esmis fuerte que * y protege incluso a ésta y al $ de la expansién. g) protege | solo cardcter de interpretacién y también se utiliza para ciertos caracteres especiales. @~ Sélo indica el directorio de trabajo del usuario actual, ~luis indica el directorio de trabajo del usuario luis, ~* indica el dir de trabajo actual, y ~- indica el anterior. COMANDO HISTORY. Muestra el histérico de comandos ejecutados por la shell junto con un n° de orden. Para repetir una orden del histérico basta con poner !n*. También se pueden usar las flechas arriba y abajo para recorrerlo desde el prompt del sistema,

También podría gustarte