La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Profundización en Bash

Presentaciones similares


Presentación del tema: "Profundización en Bash"— Transcripción de la presentación:

1 Profundización en Bash
Entrenamiento en Linux Clase #3 Profundización en Bash Por: Javier García Salgado

2 Clase #3 Profundización en Bash Sumario Algunos comandos básicos
Flujos de datos Tuberías Entornos de trabajo en Bash

3 Algunos comandos básicos
Hoy mencionaremos y describiremos brevemente la utilidad de un grupo de comandos básicos para interactuar con un sistema Linux. Algunos de ellos como man, ls, chmod y umask ya han sido mencionados y otros se mencionarán más adelante en dependencia de los temas que se traten. Para su mejor comprensión los clasificaremos en varias categorías: Comandos para manipular ficheros y directorios. Comandos para paginar, visualizar y editar ficheros. Comandos para hacer búsquedas de ficheros y patrones. Comandos para filtrar ficheros. Comandos para compactar y agrupar ficheros. Comandos para la comunicación entre usuarios. Comandos para desconectarse del sistema. Comandos para administrar usuarios y grupos. Comandos variados.

4 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando ls El comando ls ya mencionado anteriormente permite listar el contenido de un directorio. Sintaxis: ls [opciones] [directorio|fichero] Algunas opciones: -l : muestra la salida en formato largo. -R : lista recursivamente un directorio. -a : lista además los ficheros ocultos (sus nombres comienzan con punto). -h : muestra el tamaño de los ficheros en forma más legible (Ej: 16M, 4k, etc.) -i : muestra el identificador del i-nodo asociado a cada elemento. Ejemplos: $ ls -hl /etc $ ls -R /usr $ ls -al $ ls -ali ..

5 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando cd El comando cd se utiliza para cambiar el directorio actual. Sintaxis: cd [directorio] Ejemplos: $ cd /tmp $ cd # cambia hacia el directorio base del usuario actual $ cd - # cambia hacia el directorio anterior $ cd .. # cambia hacia el directorio padre $ cd ~ # cambia hacia el directorio base del usuario actual. El # caracter ~ bash lo interpreta como el directorio base # de un usuario. $ cd ~pepe # cambia hacia el directorio base del usuario pepe

6 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando pwd El comando pwd indica el camino absoluto del directorio en el cual nos encontramos actualmente. Ejemplo: $ pwd /home/pepe/backup/pruebas Comando mkdir El comando mkdir se utiliza para crear directorios. Ejemplos: $ mkdir bin $ mkdir -p docs/linuxdocs/howtos/pdf # Se crean los directorios # intermedios si es necesario.

7 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando mv El comando mv mueve un fichero hacia otro, o varios ficheros hacia un directorio. Este permite a su vez renombrar ficheros o directorios. Sintaxis: mv [opciones] <fuente> <destino> mv [opciones] <ficheros> <directorio> Algunas opciones: -i : ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino si existiera. -u : actualiza (upgrade) el destino con el fuente solo si este es más reciente Ejemplo: $ mv mail.cf mail.cf.old # renombra un fichero $ mv -i *.txt /tmp # mueve ficheros terminados en .txt al # directorio /tmp

8 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando cp El comando cp permite copiar un fichero en otro, o varios ficheros en un directorio. Sintaxis: cp [opciones] <fuente> <destino> cp [opciones] <ficheros> <directorio> Algunas opciones: -d : preserva los enlaces simbólicos en lugar de copiar los ficheros a los que estos apuntan. -L : no preserva los enlaces simbólicos, o sea copia los ficheros a los que estos apuntan. -R : copia recursivamente un directorio. -i : utiliza una forma interactiva (pregunta antes de sobrescribir el destino). -l : hace enlaces fuertes a los ficheros fuentes en lugar de copiarlos Continua...

9 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Ejemplos: $ cp /etc/passwd . # copia un fichero en el directorio actual. $ cp -i /usr/bin/*sh /tmp # copia interactivamente los ficheros # terminados en sh. $ cp -l /bin/* bin/ # hace enlaces fuertes a todos los ficheros # en un directorio.

10 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando rm El comando rm se utiliza para borrar (desenlazar) ficheros. Sintaxis: rm [opciones] <ficheros | directorios> Algunas opciones: -r : borra recursivamente un directorio. -f : borra forzosamente en caso de que no se tenga permiso de escritura en forma directa. -i : ejecuta el comando de forma interactiva Ejemplos: $ rm prueba $ rm -i bin/* $ rm -rf temp/

11 Algunos comandos básicos
continuación... Comandos para manipular ficheros y directorios Comando chown Se utiliza para cambiar el dueño y el grupo de un fichero. Existe también el comando chgrp que se emplea de forma similar pero para cambiar el grupo solamente. El dueño de un fichero solo lo puede cambiar el usuario root mientras que el grupo además de root, lo puede cambiar el propio dueño, siempre que pertenezca al nuevo grupo. Sintaxis: chown [opciones] <dueño>[.grupo] <ficheros> chown [opciones] .<grupo> <ficheros> Opción: -R en los directorios cambia el dueño y/o el grupo recursivamente. Ejemplos: # chown pepe.pepe tesis/ # chown -R root /tmp/oculto # chgrp ftp /usr/ftp

12 Algunos comandos básicos
continuación... Comandos para paginar, visualizar y editar ficheros Comando cat El comando cat concatena (catenate) ficheros y los imprime en la salida estándar. Si no se le pasa ningún argumento lee de la entrada estándar. Existe también zcat que hace lo mismo pero con ficheros compactados. Ejemplo: # cat /etc/passwd /etc/shadow

13 Algunos comandos básicos
continuación... Comandos para paginar, visualizar y editar ficheros Editor “pico” El editor pico es un editor simple pero poderoso. Sintaxis: pico [opciones] [fichero] Algunas opciones: -w : deshabilita el picado automático de las líneas. -m : habilita la funcionalidad del mouse en entornos gráficos, para posicionarse en el texto. +<n> : se establece el comienzo de la edición en la línea n-ésima. Algunas opciones durante la edición: Ctrl k : borra y copia la línea actual en el clipboard. Ctrl u : inserta el contenido del clipboard en el texto. Ctrl o : salva el texto. Ctrl x : sale del editor. Pregunta si se desea salvar primero en caso de haberse modificado el texto

14 Algunos comandos básicos
continuación... Comandos para paginar, visualizar y editar ficheros Editor “vi” El editor vi es el editor estándar de Unix. Es orientado a comandos. Para algunos usuarios, “vi” resulta incómodo pues para utilizar todas sus potencialidades es necesario conocer muchas combinaciones de teclas, pero si se llega a dominar resulta muy funcional. Básicamente “vi” posee dos modos de interacción: el de inserción (edición) y el de comandos. Para pasar al modo comando se pulsa Esc y para pasar al de inserción se pulsa i. Continua...

15 Algunos comandos básicos
continuación... Comandos para paginar, visualizar y editar ficheros Algunos comandos útiles en “vi”: dd - borra la línea actual. D - borra desde la posición actual hasta el final de la línea. u - deshace el último comando. :q! - sale sin salvar. :w - salva. :wq - salva y sale. :x - salva y sale. <n><c> - ejecuta el comando c n veces.

16 Algunos comandos básicos
continuación... Comandos para paginar, visualizar y editar ficheros Comandos more y less Los comandos more y less paginan los ficheros y los muestran en la terminal. Se diferencian en las facilidades que brindan. Por ejemplo more es más restrictivo en cuanto al movimiento dentro del texto, mientras que less no limita este aspecto pues acepta el empleo de todas las teclas de movimiento tradicionales. Cuando se alcanza el final del último fichero a paginar, more termina automáticamente, no así less. También more muestra sucesivamente el porcentaje del fichero visto hasta el momento. Tanto less como more proveen una serie de comandos para moverse con facilidad dentro del texto paginado. Continua...

17 Algunos comandos básicos
continuación... Comandos para paginar, visualizar y editar ficheros Ejemplos: q - permite interrumpir el proceso y salir. /p - realiza búsquedas del patrón p dentro del texto. Para repetir la búsqueda del mismo patrón sólo es necesario escribir /. [n]b - en more permite regresar n páginas (por defecto n es 1). [n]f - en more se adelantan n páginas y en less, n líneas.

18 Algunos comandos básicos
continuación... Comandos para hacer búsquedas de ficheros y patrones Comando grep El comando grep busca patrones en ficheros. Por defecto devuelve todas las líneas que contienen un patrón determinado en uno o varios ficheros. Sintaxis: grep [opciones] <patrón> [ficheros] Algunas opciones: -c : devuelve sólo la cantidad de líneas que contienen al patrón. -l : cuando son múltiples ficheros sólo muestra los nombres de aquellos donde se encontró al patrón y no las líneas correspondientes. -v : devuelve las líneas que no contienen el patrón. -r : busca en un directorio de forma recursiva. -n : imprime el número de cada línea que contiene al patrón. Continua...

19 Algunos comandos básicos
continuación... Comandos para hacer búsquedas de ficheros y patrones Ejemplos: # grep -n error /var/log/messages $ grep -c root /etc/group $ grep -l -r -i img /var/www/html/

20 Algunos comandos básicos
continuación... Comandos para hacer búsquedas de ficheros y patrones Comando find Es uno de los más poderosos. Permite buscar de forma recursiva en un directorio todos los ficheros que cumplan ciertas condiciones. Las condiciones pueden estar relacionadas con el nombre de los ficheros, el tamaño, los permisos, el tipo, las fechas de acceso y modificación, etc. Sintaxis: find [camino] [opciones] Algunas opciones: -name <expresión> : permite especificar patrones para los nombres de los ficheros a buscar. -type <tipo> : permite indicar el tipo de fichero a buscar. Puede ser d para directorios, f para ficheros regulares, l para enlaces simbólicos, etc. -size +/-<n> : permite indicar el tamaño máximo y/o mínimo de los ficheros a buscar. Continua...

21 Algunos comandos básicos
continuación... Comandos para hacer búsquedas de ficheros y patrones Comando find (continuación...) -nouser/-nogroup : permite referirse a aquellos ficheros o directorios que no posean dueño o grupo asociado. -inum <n> : permite referirse a los ficheros a través de su número de i-nodo. -exec <comando> ; : permite definir un comando a ejecutarse para cada resultado de la búsqueda. La cadena {} se sustituye por el nombre de los ficheros encontrados. El caracter ; permite indicar la finalización del comando Continua...

22 Algunos comandos básicos
continuación... Comandos para hacer búsquedas de ficheros y patrones Comando find (continuación...) Ejemplos: $ find /etc -name '*.conf' # Busca en /etc todos los # ficheros con extensión conf $ find / -size k -size k # Busca los ficheros cuyo tamaño # esté entre 10M y 20M $ find / -nogroup -nouser # Busca en toda la jerarquía de # ficheros aquellos que no posean # ni dueño ni grupo asociado

23 Algunos comandos básicos
continuación... Comandos para hacer búsquedas de ficheros y patrones Comando locate El comando locate busca en una base de datos, actualizada periódicamente, todos los paths en la jerarquía de ficheros que contengan una cadena determinada. Para crear esta base de datos o actualizarla se debe invocar por root el comando updatedb (o locate -u). En las distribuciones actuales esta tarea se hace de forma automática Ejemplo: $ locate passwd

24 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comando file El comando file determina con cierto grado de precisión el tipo de un fichero que se le pasa como argumento. Ejemplos: $ file /etc/passwd /etc/passwd: ASCII text $ file /usr/sbin/adduser /usr/sbin/adduser: symbolic link to useradd $ file /usr/sbin/useradd /usr/sbin/useradd: ELF 32-bit LSB executable, Intel 80386, versión 1, dynamically linked (uses shared libs), stripped $ file /etc /etc: directory

25 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comando sort El comando sort ordena las líneas de un fichero mostrándolas por la salida estándar. De no especificarse un fichero toma la entrada estándar. Sintaxis: sort [opciones] [fichero] Algunas opciones: -r : ordena al revés. -f : trata las mayúsculas y minúsculas por igual Ejemplo: $ sort -f /etc/passwd

26 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comando uniq El comando uniq elimina las líneas repetidas de un fichero ordenado, imprimiéndolo por la salida estándar o en otro fichero argumento. Sintaxis: uniq [opciones] [fichero] [salida] Algunas opciones: -c : prefija a cada línea su número de ocurrencias. -d : solo imprime las líneas duplicadas Ejemplo: $ uniq -d lista.txt

27 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comandos tail y head Los comandos tail y head muestran respectivamente el final y el comienzo de un fichero. Sintaxis: tail [opciones] [ficheros] head [opciones] [ficheros] Algunas opciones: -f : para el caso de tail se ejecuta de forma sostenida hasta que se interrumpa el proceso (Ctrl-c). -q : no coloca los encabezamiento con el nombre de los ficheros cuando se indican varios (quiet). -<n> : imprime las n últimas (primeras) líneas en lugar de las diez establecidas por defecto. Ejemplos: # tail -f /var/log/messages # head -50 /var/spool/mail/pepe # tail -20 /var/log/secure # head -2 -q /etc/*.conf

28 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comando wc El comando wc imprime el número de líneas, palabras y bytes de uno o varios ficheros. Si son varios ficheros hace también un resumen de los totales. De no especificarse un fichero toma la entrada estándar. Sintaxis: wc [opciones] [ficheros] Algunas opciones: -l : sólo cuenta líneas. -c : sólo cuenta bytes. -w : sólo cuenta palabras. Ejemplos: $ wc -l /etc/passwd $ wc -w /doc/dicciorario.txt

29 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comando stat El comando stat muestra las características de un fichero. Por ejemplo: su nombre, permisos, tamaño en bytes, número del i-nodo que lo representa, las fechas de modificación y acceso, el tipo, el dueño, el grupo, etc. Ejemplos: $ stat /etc/shadow File: "/etc/shadow" Size: 981 Blocks: 8 Regular File Access: (0600/-rw ) Uid: ( 0/ root) Gid: ( 0/ root) Device: 306 Inode: Links: 1 Access: Fri Oct 5 11:49: Modify: Wed Oct 3 09:31: Change: Wed Oct 3 09:31: Continua...

30 Algunos comandos básicos
continuación... Comandos para filtrar ficheros Comando stat (continuación...) $ stat /tmp/ File: "/tmp/" Size: 1024 Filetype: Directory Mode: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) Device: 3,9 Inode: 4018 Links: 5 Access: Fri Nov 17 08:17: Modify: Fri Nov 17 08:17: Change: Fri Nov 17 08:17:

31 Algunos comandos básicos
continuación... Comandos para compactar y agrupar ficheros Comandos gzip y gunzip Los comandos gzip y gunzip permiten compactar y descompactar respectivamente uno o varios ficheros. Sintaxis: gzip [opciones] <ficheros/directorio> gunzip [opciones] <ficheros/directorio> Algunas opciones: -r : comprime los ficheros presentes en un directorio recursivamente. -1 a -9 : especifica el grado de la compresión (-1 menor y más rápida). -S <sufijo> : permite especificar un sufijo o extensión para el fichero resultado (por defecto es gz). Continua...

32 Algunos comandos básicos
continuación... Comandos para compactar y agrupar ficheros Ejemplos: $ gzip -9 big-file $ gunzip big-file.gz $ gzip -S .zip -r doc/ $ gunzip -S .zip -r doc/ Nota: Todo lo compactado con gzip se puede descompactar con el Winzip de los sistemas Windows. También existen los pares de comandos zip y unzip (compatibles en ambos sentidos con Winzip), y compress y uncompress

33 Algunos comandos básicos
continuación... Comandos para compactar y agrupar ficheros Comando tar El comando tar es una herramienta para agrupar varios ficheros aislados o el contenido de un directorio en otro fichero o dispositivo especial. Sintaxis: tar [opciones] <fuentes> Algunas opciones: -c : permite crear (tarear). -x : permite extraer (destarear). -v : activa el modo explicativo. -f <fichero> : agrupa o desagrupa en o hacia un fichero y no utilizando la salida o entrada estándar como es por defecto. -z : compacta o descompacta el fichero resultante una vez agrupado o desagrupado con gzip y gunzip respectivamente. -t : lista el contenido de un fichero resultado de un agrupamiento. -M : agrupa en volúmenes. Continua...

34 Algunos comandos básicos
continuación... Comandos para compactar y agrupar ficheros Comando tar (continuación...) El comando tar conserva la estructura jerárquica original de lo agrupado excluyendo el caracter / que representa a la raíz. Algunas opciones se pueden emplear sin el caracter -, siempre y cuando no haya ambigüedades entre ellas o con los argumentos. Ejemplos: $ tar cvfz /tmp/etc.tgz /etc $ tar xvfz /tmp/etc.tgz # tar cf uconf.tar passwd shadow groups # tar xf uconf.tar $ tar cM -f /dev/fd0 /tmp/etc.tgz $ tar xM -f /dev/fd0

35 Algunos comandos básicos
continuación... Comandos para desconectarse del sistema Comando exit El comando exit permite terminar el shell actual. Si se tiene un único shell es equivalente a desconectarse del sistema, pero si se está en un subshell sólo se terminará este, retornando al shell anterior. Comando logout El comando logout permite desconectarse del sistema a partir de un login shell (primer shell que se ejecuta al establecer la conexión). La secuencia de caracteres Ctrl-d permite terminar el shell actual. Si es un login shell equivaldrá a hacer logout y si no, a hacer exit.

36 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando useradd El comando useradd permite añadir nuevos usuarios al sistema. Se encuentra enlazado simbólicamente por el nombre adduser. Ambos nombres se pueden emplear indistintamente. Sintaxis: useradd [opciones] [login] Ejemplos: # adduser pepe # crea el usuario pepe con las propiedades por # defecto.

37 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos # useradd -D # muestra las propiedades por defecto de los #nuevos usuarios que se añadan. GROUP=100 # grupo primario (no se emplea). HOME=/home # directorio base de todos los usuarios. INACTIVE=-1 # número de días entre que el password expire y # la cuenta se deshabilite. EXPIRE= # fecha (YYYY-MM-DD) en que la cuenta expira. SHELL=/bin/bash # shell que empleará el usuario para interactuar # con el sistema. SKEL=/etc/skel # directorio cuyo contenido se copiará en el # directorio de cada usuario. # adduser -D -b /users # cambia el directorio base por defecto de # los nuevos usuarios a /users. El # directorio /users debe existir # previamente.

38 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando userdel El comando userdel permite eliminar definitivamente un usuario del sistema. Sintaxis: userdel [opciones] <login> Ejemplo: # userdel -r pepe # elimina al usuario pepe y borra su directorio # base. Por defecto el directorio base se # mantiene.

39 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando passwd El comando passwd permite cambiar el password de un usuario. También puede bloquear, desbloquear y deshabilitar una cuenta. Si se invoca sin argumentos se asume el usuario actual. Sintaxis: passwd [opciones] [login] Ejemplos: # passwd pepe # coloca una contraseña para pepe. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully # passwd -d pepe # deshabilita la cuenta del usuario pepe # eliminando su password. # passwd -l pepe # bloquea la cuenta del usuario pepe poniendo # un signo ! delante de su password en el fichero # /etc/shadow. # passwd -u pepe # desbloquea la cuenta del usuario pepe.

40 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando usermod El comando usermod se emplea para modificar algunas propiedades de los usuarios como: el login, el directorio base, el shell que se inicia al conectarse, los grupos a los que pertenece, la fecha de expiración de la cuenta, etc. También bloquea y desbloquea una cuenta. Sintaxis: usermod [opciones] <login> Ejemplos: # usermod -s /bin/csh pepe # coloca el shell csh para el usuario # pepe. # usermod -G users,disk pepe # señala como grupos secundarios de # pepe a users y disk. # usermod -e pepe # indica que la cuenta de pepe expirará # el 20 de octubre del 2001.

41 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando chfn El comando chfn permite cambiar la información de contacto de un usuario. Esta incluye aspectos como: el nombre completo, la oficina de trabajo y los teléfonos. Se almacena en el fichero de usuarios /etc/passwd. Sintaxis: chfn [opciones] [login] Ejemplo: # chfn pepe Changing finger information for pepe. Name [Pepito]: Pepon Pérez Office [Recepción]: Redes Office Phone []: Home Phone []:

42 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando groupadd y groupdel Los comandos groupadd y groupdel añaden y eliminan un grupo en el sistema respectivamente. Sintaxis: groupadd [opciones] <grupo> groupdel <grupo> Ejemplos: # groupadd admin # groupdel admin

43 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando groupmod El comando groupmod permite modificar en un grupo su identificador y nombre. Sintaxis: groupmod [opciones] <grupo> Ejemplo: # groupmod -n usuarios users # cambia el nombre del grupo users a # usuarios. Comando gpasswd Permite administrar los grupos. Se puede utilizar para añadir y eliminar usuarios, señalar un administrador e indicar un password de grupo. Sintaxis: gpasswd [opciones] <grupo> Ejemplos: # gpasswd -A pepe admin # señala como administrador del grupo # admin al usuario pepe. $ gpasswd admin # cambia el passwd del grupo admin. $ gpasswd -a joe admin # añade el usuario joe al grupo admin.

44 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando su El comando su permite ejecutar un shell (u otro comando) cambiando los identificadores del grupo y del usuario actual. Si se le pasa - como primer argumento ejecuta el shell como un login shell, o sea se creará un proceso de login tal y como ocurre naturalmente cuando un usuario se conecta al sistema. Si no se especifica el login del usuario se asume root. Sintaxis: su [opciones] [login] Ejemplos: $ su – Password: # # su pepe Password: $ su - -c "cat /etc/shadow" # ejecuta un comando con privilegios de Password: # root en lugar de un shell.

45 Algunos comandos básicos
continuación... Comandos para administrar usuarios y grupos Comando newgrp El comando newgrp permite iniciar un nuevo shell cambiando el identificador del grupo (gid) del usuario actual. Sólo podrán hacerlo los usuarios que pertenezcan al grupo o en caso de que este tenga una contraseña, aquellos que la conozcan. Sintaxis: newgrp [grupo] Ejemplo: # newgrp bin

46 Algunos comandos básicos
continuación... Comandos variados Comando echo El comando echo muestra en su salida todo lo que se le pase como argumento. Ejemplo: $ echo Hola amigo... Hola amigo...

47 Algunos comandos básicos
continuación... Comandos variados Comando alias El comando alias permite asignarle otros nombres a los comandos. Sintaxis: alias [nombre[=valor]...] Sin argumentos muestra todos los alias definidos por el usuario actual. Para deshabilitar un alias se emplea el comando unalias Ejemplos: $ alias l='ls -l --color' $ alias l alias l='ls -l --color' $ alias alias c='clear' alias l='ls -l --color' alias l.='ls .[a-zA-Z]* --color=tty'

48 Algunos comandos básicos
continuación... Comandos variados Comando tty El comando tty imprime el dispositivo de caracter asociado a la terminal en la que se está trabajando. Ejemplos: $ tty /dev/tty2 $ tty /dev/pts/0 Comando id El comando id, imprime dado un usuario, sus identificadores de usuario y de grupo principal (gid y uid) así como del resto de los grupos a los que pertenece. Sin argumentos se asume el usuario actual. Sintaxis: id [opciones] [login] Ejemplo: # id pepe uid=502(pepe) gid=502(pepe) groups=502(pepe),100(users)

49 Algunos comandos básicos
continuación... Comandos variados Comando du El comando du permite conocer la longitud (expresada en kilobytes por defecto) de una jerarquía de ficheros a partir de un directorio. Sintaxis: du [opciones] [ficheros | directorios] Algunas opciones: -h : imprime las unidades de la forma más representativa (Ej. M para megabytes). -s : sumariza el tamaño de cada fichero/directorio sin profundizar recursivamente en estos últimos. -c : produce un total cuando se utilizan varios argumentos. Ejemplos: $ du -h * $ du -hsc /usr /home

50 Algunos comandos básicos
continuación... Comandos variados Comando who El comando who muestra los usuarios conectados al sistema ya sea local o remotamente. Sintaxis: who [opciones] [fichero] [am i] Sin argumentos who muestra los logins de los usuarios conectados, por que terminal lo han hecho y en que fecha y hora. Algunas opciones: -H : imprime un encabezamiento para las columnas. -w : indica si está activada o no la posibilidad de recibir mensajes por parte de cada usuario conectado (+ indica que si, - que no y ?, desconocido). -i : imprime además para cada usuario conectado que tiempo lleva sin interactuar con el sistema (idle time). Si lleva menos de un minuto pone un punto y si es más de 24 horas la cadena ''old''. Continua...

51 Algunos comandos básicos
continuación... Comandos variados Comando who (continuación...) -q : sólo muestra los logins de los usuarios conectados y la cantidad total. Ejemplos: $ who coco tty2 Oct 17 15:59 root tty3 Oct 17 12:40 alma :0 Oct 17 08:21 pepe pts/0 Oct 17 10:20 $ who -H -w -i USER MESG LINE LOGIN-TIME IDLE FROM pepe pts/2 Nov 16 09:26 old root tty1 Nov 17 09:01 00:11 alma ? :0 Nov 17 09: coco pts/0 Nov 17 10:30 00:05 $ who -q pepe root alma coco users=4

52 Algunos comandos básicos
continuación... Comandos variados Comando w El comando w muestra también los usuarios conectados al sistema además de lo que están haciendo (proceso que ejecutan en ese momento) y otras informaciones. Sintaxis: w [opciones] [usuario] Sin argumentos este comando muestra una primera línea con: la hora en que arrancó el sistema, cuanto tiempo lleva funcionando, cuantos usuarios hay conectados y tres porcientos de carga de la CPU: durante el último, los 5 y los 15 minutos anteriores. A continuación se muestra una tabla cuyas columnas representan: el login de cada usuario conectado con una serie de parámetros de lo que se encuentra haciendo.

53 Algunos comandos básicos
continuación... Comandos variados Ejemplos: $ w 4:06pm up 7:45, 3 users, load average: 0.01, 0.05, USER TTY FROM IDLE JCPU PCPU WHAT coco tty :59pm :53s s s -bash root tty :40pm :00s s s w pepe pts/ :20am : s s pine $ w pepe USER TTY FROM IDLE JCPU PCPU WHAT pepe pts/ :20am : s s pine

54 Algunos comandos básicos
continuación... Comandos variados Comando finger El comando finger permite buscar y mostrar información asociada a los usuarios del sistema de acuerdo a sus nombres, apellidos o login. La información que muestra es: el login, el nombre y los apellidos, el directorio base, el shell, la oficina y el teléfono, el teléfono de la casa, la lista de terminales a través de las que está conectado con la fecha, etc. Ejemplos: $ finger alina Login: alina Name: Alina Castellanos Leyva Directory: /home/alina Shell: /bin/bash Office: Aula, Home Phone: On since Fri Jul 20 09:07 (CDT) on :0 (messages off) On since Fri Jul 20 09:08 (CDT) on pts/0 2 hours 54 minutes idle On since Fri Jul 20 10:27 (CDT) on pts/1 14 minutes 29 seconds idle On since Fri Jul 20 10:29 (CDT) on pts/3 Mail last read Fri Jul 20 11: (CDT)

55 Algunos comandos básicos
continuación... Comandos variados Comando ping El comando ping permite enviar paquetes ICMP del tipo ECHO_REQUEST a otra computadora, con el objetivo de saber si esta es alcanzable a través de la red. Además muestra un resumen estadístico de la trasmisión. Este comando se ejecuta por defecto sostenidamente por lo que para interrumpirlo se debe hacer Ctrl-c. Sintaxis: ping [opciones] <máquina> Algunas opciones: -c <n> : envía n paquetes exactamente. -q : sólo despliega el sumario final. Continua...

56 Algunos comandos básicos
continuación... Comandos variados Comando ping (continuación...) Ejemplos: $ ping ec PING ec.minbas.cu ( ) from : 56(84) bytes of data. 64 bytes from ec.minbas.cu ( ): icmp_seq=0 ttl=128 time=441 usec 64 bytes from ec.minbas.cu ( ): icmp_seq=1 ttl=128 time=415 usec 64 bytes from ec.minbas.cu ( ): icmp_seq=2 ttl=128 time=409 usec --- ec.minbas.cu ping statistics packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/mdev = 0.409/0.421/0.441/0.027 ms

57 Algunos comandos básicos
Comandos variados continuación... Comando ifconfig El comando ifconfig permite configurar las interfaces de red. Sin argumento ifconfig despliega información de las interfaces de red activas. Ejemplos: # ifconfig eth0 Link encap:Ethernet HWaddr 00:00:E8:EC:86:E9 inet addr: Bcast: Mask: UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:49607 errors:0 dropped:0 overruns:0 frame:0 TX packets:13557 errors:0 dropped:0 overruns:0 carrier:0 collisions:1207 txqueuelen:100 Interrupt:9 Base address:0xb800 lo Link encap:Local Loopback inet addr: Mask: UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:20 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 # ifconfig eth0 down # permite apagar la interfaz de red eth0 # ifconfig eth0 up # permite llevantar la interfaz de red eth0

58 Flujos de datos En Linux al igual que en Unix todos los procesos (programas en ejecución) tienen asociados tres flujos de datos principales. Estos son: La entrada estándar (0). Es donde un proceso puede tomar los datos que maneja y que no se indican mediante argumentos u opciones. Por defecto se toma a partir del teclado. La salida estándar (1): Es donde un proceso escribe los resultados de su ejecución. Por defecto es la terminal donde se invocó el programa correspondiente. La salida de errores (2): Es donde un proceso escribe los posibles errores durante su ejecución. Por defecto es la terminal donde se invocó el programa correspondiente En bash, al igual que en otros shells, los flujos de datos se pueden redireccionar libremente hacia distintos ficheros. En esencia este mecanismo consiste en que la salida de un proceso (estándar o de errores) puede escribirse en un fichero en lugar de la terminal asociada, así como la entrada puede tomarse también a partir de un fichero en lugar de utilizar lo escrito mediante el teclado.

59 Flujos de datos continuación... Para indicar un redireccionamiento se utilizan los signos de comparación < y >. De esta forma se generan dos tipos de construcción: [x]>salida: indica el redireccionamiento del flujo de datos x al fichero nombrado salida. De no indicarse x se asumirá la salida estándar del programa que se haya invocado, o sea, ''1''. [x]<entrada: indica el redireccionamiento del contenido del fichero nombrado entrada hacia flujo de datos x. De no indicarse x se asumirá la entrada estándar del comando que se haya invocado, o sea, ''0''. Ejemplos: # cat /etc/shadow > cont # se redirecciona la salida estándar hacia # un fichero $ cat > telefonos # se toma de la entrada estándar el DISAIC # contenido a procesar y se dirige la salida UH # hacia un fichero. La combinación "Ctrl-d" SIS # indica que se interrumpa la lectura de Ctrl-d # la entrada estándar.

60 Flujos de datos continuación... Siempre que se emplee la forma [x]>salida, si el fichero salida existe se sobrescribirá y si no, se creará. Para añadirle algo más a su contenido anterior (append) en lugar de sobrescribirlo, se puede emplear >>. Ejemplos: $ cat >> telefonos Pepe Ctrl-d $ cat clase3.txt clase4.txt >> clases.txt

61 Tuberías Las tuberías (pipes) son un poderoso mecanismo del shell en Unix. Este en esencia permite tomar la salida de un comando y pasársela como entrada a otro. Muchos de los comandos mencionados anteriormente, que reciben como argumento un fichero, en caso de omitirse este, utilizan su entrada estándar. Esta entrada puede provenir a su vez de la salida de otros comandos. El caracter que se emplea para separar un comando de otro mediante una tubería es |. Ejemplos: $ ls -l /dev | less # pagina la salida de un comando $ locate user | grep bin # busca en la jerarquía de ficheros a # aquellos que contengan en su path la # cadena "user" y de estos selecciona los # que contengan además "bin".

62 Entornos de trabajo en Bash
Un entorno de trabajo en Linux no es más que la configuración que posee un usuario durante su interacción con el sistema y más específicamente con el shell. Las características del entorno para el caso de bash pueden ser: la forma en que se muestra el prompt, los alias, las funciones definidas, las variables del entorno de forma general. Las facilidades para cambiar el entorno de trabajo dependen de las capacidades del shell que se utilice. Las variables del entorno almacenan valores que describen las propiedades del entorno de trabajo. Un usuario puede definir sus propias variables o modificar las ya existentes.

63 Entornos de trabajo en Bash
continuación... Para asignarle valor a una variable en el shell se emplea el operador de asignación tradicional entre el nombre de la variable y el valor asignado (no deben haber espacios intermedios). Ejemplo: $ MENSAJE="Hola amigo" Para acceder al valor de una variable en el shell se emplea el caracter $ seguido por el nombre de la variable. Para imprimir en la terminal el valor de una variable se puede utilizar el comando echo. Ejemplo: $ echo $MENSAJE Hola amigo Para ver las variables del entorno definidas se puede emplear el comando set. Ejemplo: $ set $ set | less

64 Entornos de trabajo en Bash
continuación... Para eliminar el valor de una variable se emplea el comando unset. Ejemplo: $ unset MENSAJE Algunas variables del entorno en bash son: PATH: guarda la secuencia de caminos donde el shell busca los programas que se intenten ejecutar en la línea de comandos cuando no se utilizan los caminos absolutos. Estos caminos se separan por el caracter '' '':'‘. USER: contiene el login del usuario actual. HOME: guarda el directorio base del usuario actual PS1: almacena la estructura del prompt principal del usuario. Permite una serie de macros. Ejemplo: $ export PS1="[\T,\u\#]\$ " [14:12:15,pepe 315]$

65 Entornos de trabajo en Bash
continuación... Para cada usuario existen tres ficheros muy importantes que permiten definir en gran medida las características del shell durante la interacción con este. .bash_profile: Se ejecuta siempre que se abre una nueva sesión en el sistema por parte de cualquier usuario. .bash_logout: se ejecuta al terminar una sesión de trabajo. Puede contener comandos para salvar lo hecho durante la sesión. .bashrc: se ejecuta siempre que se invoque un nuevo shell. Cuando se crea un nuevo usuario se le colocan en su directorio base estos tres ficheros cuyos patrones están el directorio /etc/skel. FIN


Descargar ppt "Profundización en Bash"

Presentaciones similares


Anuncios Google