Introducci´ona consola

Introducci´ona consola “La consola es tu amiga”

Diego Fanego † Patricio Moreno† Rodrigo Ubal Dahl†‡ Cynthia Gamarra†‡

†Facultad de Ingenier´ıa(UBA)

‡LABI

27 de abril de 2017

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola

LABi

¿Qu´ese puede hacer en el labi?

Estudiar Hacer TPs Pedir herramientas Usar herramientas del pa˜nol Pedir libros de la biblioteca especializada Tomar mate/comer

Dejando siempre las mesas limpias :)

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola

Cursos del LABi

Soldadura (Intro, t´ecnicadigital, labo de micros, circuitos)

Software libre: LATEX(Todas las materias donde haya que presentar informes, papers, tesis) Octave (An´alisisde circuitos, procesos estoc´asticos,se˜nales, redes neuronales) KiCad (Labo de micros, circuitos) Introducci´ona la consola OpenSCAD

Software gratuito: LTSpice (An´alisisde circuitos, circuitos)

Y otros...

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola

Tabla de Contenidos

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Crear directorios Buscar archivos Procesar informaci´on Entender un poco m´as nuestro sistema de archivos

Introducci´ona consola Introducci´on

Objetivo

Navegar el sistema de archivos

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Buscar archivos Procesar informaci´on Entender un poco m´as nuestro sistema de archivos

Introducci´ona consola Introducci´on

Objetivo

Navegar el sistema de archivos Crear directorios

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Procesar informaci´on Entender un poco m´as nuestro sistema de archivos

Introducci´ona consola Introducci´on

Objetivo

Navegar el sistema de archivos Crear directorios Buscar archivos

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Entender un poco m´as nuestro sistema de archivos

Introducci´ona consola Introducci´on

Objetivo

Navegar el sistema de archivos Crear directorios Buscar archivos Procesar informaci´on

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

Objetivo

Navegar el sistema de archivos Crear directorios Buscar archivos Procesar informaci´on Entender un poco m´as nuestro sistema de archivos

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Acceder a sistemas GNU/Linux en forma remota Entender mejor el funcionamiento de dichos sistemas Administrarlos

Beagleboard xM Pandaboard

Introducci´ona consola Introducci´on

Motivaci´on

Desenvolverse en un entorno con terminales

Raspberry π

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Entender mejor el funcionamiento de dichos sistemas Administrarlos

Raspberry π Pandaboard

Introducci´ona consola Introducci´on

Motivaci´on

Desenvolverse en un entorno con terminales Acceder a sistemas GNU/Linux en forma remota

Beagleboard xM

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Administrarlos

Beagleboard xM Raspberry π

Introducci´ona consola Introducci´on

Motivaci´on

Desenvolverse en un entorno con terminales Acceder a sistemas GNU/Linux en forma remota Entender mejor el funcionamiento de dichos sistemas

Pandaboard

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

Motivaci´on

Desenvolverse en un entorno con terminales Acceder a sistemas GNU/Linux en forma remota Entender mejor el funcionamiento de dichos sistemas Administrarlos

Beagleboard xM Raspberry π Pandaboard

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

Historia y personajes ilustres

Unix es un sistema operativo portable, multitarea y multiusuario surge a fines de los ´60 desarrollado en los laboratorios Bell de AT&T, por

Ken Thompson, Dennis Ritchie y Douglas McIlroy entre otros.

Ken Thompson y Dennis Ritchie.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

Familias AT&T la familia que tuvo su origen en el UNIX de AT&T. Considerada la familia UNIX “pura” y original. BSD familia originada por el licenciamiento de UNIX a Berkely. BSD se reescribi´opara no incorporar propiedad intelectual originaria de AT&T. AIX Esta familia surge por el licenciamiento de UNIX System III a IBM. Xenix familia derivada de la adquisici´onde los derechos originales de AT&T primero por parte de Microsoft y de esta los vendi´oa SCO. GNU En 1983, Richard Stallman anunci´oel Proyecto GNU, un ambicioso esfuerzo para crear un sistema similar a Unix, que pudiese ser distribuido libremente.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

GNU + Linux

En 1991 el proyecto GNU ya tenia casi todo el sistema completo con excepci´ondel kernel Hurd. Linus Torvalds comienza a desarrollar un n´ucleopara utilizar las herramientas GNU.

Richard Stallman

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

Kernel

El kernel es el puente entre las aplicaciones y el procesamiento de datos al nivel del hardware.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Introducci´on

¿Consola o Terminal?

Estos terminos tienen su origen en la ´epoca de los Mainframe Las terminales se conectan en la “terminal” opuesta de los cables salientes del equipo Estas son la unica forma de interacci´ony la cantidad es acotada

Existe una terminal especial para el administrador, llamada “consola” de mando La consola recibe los mensajes de error del sistema

Mainframe y terminales.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Sistema de archivos

Sistema de archivos

Todo es un archivo Los directorios son archivos Los enlaces son archivos Los perifericos son archivos Tenemos acceso a todo

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Sistema de archivos Estructura

La estructura l´ogicadel sistema de archivos es est´andar Es mantenido por The Linux Foundation Versi´onactual: 2.31 Futura versi´on:3.0 Se utiliza una estructura tipo ´arbol El sistema es case-sentitive

1 Filesystem Hierarchy Standard: http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Sistema de archivos Estructura

bin binarios de comandos esenciales boot archivos estaticos del boot loader dev archivos de dispositivos etc configuraci´ondel sistema especifica del host home directorios personales de los usuarios lib bibliotecas compartidas esenciales y m´odulosdel kernel media punto de montaje para dispositivos extraibles mnt punto de montaje para sistemas de archivos montados temporalemente

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Sistema de archivos Estructura

opt paquetes de software de aplicaciones agregadas proc informaci´onsobre los procesos y el kernel root directorio personal del root sbin binarios de comandos del administrador srv informaci´onpara los servicios provistos por el sistema sys controles del sistema y los dipositivos tmp archivos temporales usr jerarquias secundarias var informaci´onvariable

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Sistema de archivos Formatos

Implementaci´onf´ısicadel sistema de archivos Gran diversidad de formatos UFS ext 2, 3, 4 ntfs fat 16, 32 vfat XFS ...

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Interpretes Shells Shell

Es una aplicaci´onque lee lineas de texto ingresadas por el usuario Es una interfaz al sistema operativo Se denomina “shell” porque oculta detalles del SO Existen versiones gr´aficas,pero no son necesarias en lo absoluto presenta los resultados en la misma terminal Permiten escribir scripts Automatizar tareas

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola ¡Y LA LISTA SIGUE!

Introducci´ona consola Interpretes Shells : sh Almquist Shell: ash Debian Almquist Shell: dash Bourne Again SHell: Korn Shell: ksh : zsh Shell: csh TENEX : Hamilton C Shell Emacs Shell: eshell friendly interactive shell: fish shell: rc Scheme shell: Stand alone shell: sash ... Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Interpretes Shells Bourne Shell: sh Almquist Shell: ash Debian Almquist Shell: dash Bourne Again SHell: bash Korn Shell: ksh Z shell: zsh C Shell: csh TENEX C Shell: tcsh ¡Y LA LISTA Hamilton C Shell Emacs Shell: eshell SIGUE! friendly interactive shell: fish rc shell: rc Scheme shell: scsh Stand alone shell: sash ... Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Interpretes Shells BASH

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos

Comandos

Los comandos de GNU presentan una forma com´una todos ellos.

comando [opciones] [argumentos]

Las opciones son optativas y arrancan con un - (gui´on). Los argumentos pueden ser optativos u obligatorios dependiendo del comando.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ pwd /home/user

Introducci´ona consola Comandos b´asicos Archivos y directorios

En linux en todo momento nos encontramos en un directorio, “trabajando”, y por ´estoa dicho directorio se lo denomina working directory. ¿c´omopodr´ıamossaber cu´ales el directorio actual o working directory actual?

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

En linux en todo momento nos encontramos en un directorio, “trabajando”, y por ´estoa dicho directorio se lo denomina working directory. ¿c´omopodr´ıamossaber cu´ales el directorio actual o working directory actual?

$ pwd /home/user

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Para listar los elementos dentro de un directorio: ls

$ ls / bin home media root swig var boot initrd.img mnt sbin sys vmlinuz dev lib opt selinux tmp etc lost+found proc srv usr

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Para listarlos con m´asdetalles (permisos, tama˜no,etc)

$ ls -l total 104 drwxr-xr-x 2 root root 4096 Feb 28 14:27 bin drwxr-xr-x 3 root root 4096 Feb 28 14:29 boot drwxr-xr-x 17 root root 3300 Apr 3 09:48 dev drwxr-xr-x 148 root root 12288 Apr 3 09:49 etc drwxr-xr-x 4 root root 4096 Nov 11 2011 home lrwxrwxrwx 1 root root 28 Dec 30 2010 initrd.img -> boot/initrd.img-2.6.32-5-686 drwxr-xr-x 13 root root 12288 Feb 28 14:27 lib drwx------2 root root 16384 Dec 30 2010 lost+found drwxr-xr-x 5 root root 4096 Apr 3 09:49 media

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Ordenar por fecha de modificaci´on

$ ls -lt total 104 drwxrwxrwt 12 root root 12288 Apr 3 16:15 tmp drwx------21 root root 4096 Apr 3 09:58 root drwxr-xr-x 148 root root 12288 Apr 3 09:49 etc drwxr-xr-x 5 root root 4096 Apr 3 09:49 media drwxr-xr-x 17 root root 3300 Apr 3 09:48 dev drwxr-xr-x 12 root root 0 Apr 3 06:48 sys dr-xr-xr-x 182 root root 0 Apr 3 06:48 proc drwxr-xr-x 3 root root 4096 Feb 28 14:29 boot drwxr-xr-x 13 root root 12288 Feb 28 14:27 lib drwxr-xr-x 2 root root 4096 Feb 28 14:27 bin

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios Ordenar por fecha de modificaci´ony mostrar archivos ocultos

$ ls -lta total 116 drwxrwxrwt 12 root root 12288 Apr 3 16:15 tmp drwxr-xr-x 23 root root 4096 Apr 3 16:02 . drwxr-xr-x 23 root root 4096 Apr 3 16:02 .. drwx------21 root root 4096 Apr 3 09:58 root drwxr-xr-x 148 root root 12288 Apr 3 09:49 etc drwxr-xr-x 5 root root 4096 Apr 3 09:49 media drwxr-xr-x 17 root root 3300 Apr 3 09:48 dev drwxr-xr-x 12 root root 0 Apr 3 06:48 sys dr-xr-xr-x 182 root root 0 Apr 3 06:48 proc drwxr-xr-x 3 root root 4096 Feb 28 14:29 boot drwxr-xr-x 13 root root 12288 Feb 28 14:27 lib drwxr-xr-x 2 root root 4096 Feb 28 14:27 bin

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Quiero cambiar de directorio, para eso utilizo cd

$ pwd / $ cd boot $ pwd /boot $ ls config-3.2.0-4-686-pae System.map-3.2.0-4-686-pae grub vmlinuz-3.2.0-4-686-pae initrd.img-3.2.0-4-686-pae

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

El directorio al que quiero ir no existe, puedo crearlo con mkdir

$ cd dir1 bash: cd: dir1: No existe el fichero o el directorio $ mkdir der1 $ cd der1 $ pwd /home/pepito/der1

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Me equivoque cuando cree el directorio, puedo borrarlo con rmdir y crearlo nuevamente con mkdir

$ rmdir der1 $ cd der1 bash: cd: der1: No existe el fichero o el directorio $ mkdir dir1 $ ls dir1

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Tambi´enpodria haber renombrado el directorio mediante mv

$ mv der1 dir1 $ cd dir1 $ pwd /home/pepito/dir1

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Tengo un archivo y quiero que est´een el directorio que cre´e,para eso uso cp

$ ls arch1.txt arch2.txt dir1 $ cp arch1 dir1 $ ls -a dir1 . .. arch1.txt

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Ahora quiero borrar el archivo que qued´oen mi directorio, uso rm

$ rm arch1.txt $ ls arch2.txt dir1

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios

Esto ´ultimopodria haberse hecho con un solo comando, mv

$ mv arch1.txt dir1 $ ls arch2.txt dir1

que es equivalente a cp y luego rm del archivo

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Archivos y directorios Quiero duplicar el directorio y tambi´enuso cp

$ cp dir1 dir2 cp: se omite el directorio ((dir1)) $ ls arch2.txt dir1

tengo que hacer una copia recursiva, con el modificador -r

$ cp -r dir1 dir2 $ ls dir1 dir2 $ ls dir2 arch1.txt

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Documentaci´ony ayuda Casi todos los comandos presentan una ayuda y al menos una p´aginade manual. Los argumentos de ayuda disponibles en la mayoria de los comandos GNU. -h opci´oncorta --help opci´onlarga $ rmdir --help Usage: rmdir [OPTION]... DIRECTORY... Remove the DIRECTORY(ies), if they are empty.

--ignore-fail-on-non-empty ignore each failure that is solely because a directory is non-empty -p, --parents remove DIRECTORY and its ancestors; e.g., ‘rmdir -p a/b/c’ is similar to ‘rmdir a/b/c a/b a’

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Documentaci´ony ayuda Manual Pages

Existe una ayuda m´ascompleta, que son las p´aginasde manual, a las que se accede utilizando el comando man: $ man [n] Como todo comando, man tambi´entiene su p´aginade man

$ man man MAN(1) Manual pager utils MAN(1)

NAME man - an interface to the on-line reference manuals

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Documentaci´ony ayuda Info Pages

Cuando la documentaci´ones extensa y man se queda corto se utiliza info: $ info . Este permite navegar entre diferentes p´aginassiguiendo referencias entre las mismas.

$ info File: dir, Node: Top Esta es la c´uspidede le jerarqu´ıaINFO

Este (el Directorio principal) proporciona un men´uque contiene las entradas mas usuales. Tecleando "q" saldr´ade esta aplicaci´oninform´atica,tecleando "?" prodr´aproducir un listado de todos los comandos disponibles a modo de referencia; tecleando "d" volver´aa esta pantalla, "h" provee de informaci´on a usuarios/as primerizos/as; presionando "m" y escribiendo la palabra "Emacs" podr´avisitar el manual de Emacs, etc.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Documentaci´ony ayuda

Los comandos propios de bash no poseen p´aginade man ni de info. Para ver la ayuda de estos comandos existe el comando interno help: $ help

$ help export export: export [-fn] [nombre[=valor] ...] ´oexport -p Establece el atributo de exportaci´on para las variables de shell.

Marca cada NOMBRE para exportaci´onautom´aticaal ambiente para las ´ordenes ejecutadas subsecuentemente. Si se proporciona un VALOR, se asigna el VALOR antes de exportar.

Opciones: -f se refiere a funciones de shell -n borra la propiedad de exportaci´onpara cada NOMBRE -p muestra una lista de todas las variables y funciones exportadas

...

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

Para visualizar el contenido de un archivo: cat

$ cat /etc/fstab # # # / was on /dev/sda1 during installation UUID=3f208441-3e9a-49e7-8581-091be455d2d1 / ext4 errors=remount-ro 0 1 # /home was on /dev/sda5 during installation UUID=02c3c333-16a8-4b2f-9952-f420c738f507 /home ext4 defaults 0 2 # swap was on /dev/sda2 during installation UUID=2c2546f8-8cb4-4d91-ac51-33b4a8fc8b06 none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

Para visualizar el contenido de un archivo, con paginaci´on: more

$ more /etc/fstab # /etc/fstab: static file system information. # # Use ’blkid’ to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # # / was on /dev/sda1 during installation ... --MORE--(95%) $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

More with less: less

$ less /etc/fstab # /etc/fstab: static file system information. # # Use ’blkid’ to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # # / was on /dev/sda1 during installation ... :q $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ cat -nT /etc/debian_version /etc/host.conf /etc/hostname 1 7.0 2 multi on 3 leia

Introducci´ona consola Comandos b´asicos Texto

Para concatenar varios archivos: cat

$ cat /etc/debian_version /etc/host.conf /etc/hostname 7.0 multi on leia

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

Para concatenar varios archivos: cat

$ cat /etc/debian_version /etc/host.conf /etc/hostname 7.0 multi on leia

$ cat -nT /etc/debian_version /etc/host.conf /etc/hostname 1 7.0 2 multi on 3 leia

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ -i NoGRouP /etc/group nogroup:x:65534:

$ grep -vi NoGRouP /etc/group muchos grupos...

Introducci´ona consola Comandos b´asicos Texto

B´usquedade texto dentro de archivos grep

$ grep nogroup /etc/group nogroup:x:65534:

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ grep -vi NoGRouP /etc/group muchos grupos...

Introducci´ona consola Comandos b´asicos Texto

B´usquedade texto dentro de archivos grep

$ grep nogroup /etc/group nogroup:x:65534:

$ grep -i NoGRouP /etc/group nogroup:x:65534:

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

B´usquedade texto dentro de archivos grep

$ grep nogroup /etc/group nogroup:x:65534:

$ grep -i NoGRouP /etc/group nogroup:x:65534:

$ grep -vi NoGRouP /etc/group muchos grupos...

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ echo -e "\a"

Introducci´ona consola Comandos b´asicos Texto

Impresi´onde lineas de texto echo

$ echo "The quick brown fox jumps over the lazy dog" The quick brown fox jumps over the lazy dog

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

Impresi´onde lineas de texto echo

$ echo "The quick brown fox jumps over the lazy dog" The quick brown fox jumps over the lazy dog

$ echo -e "\a"

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ head -3 /etc/group root:x:0: daemon:x:1: bin:x:2: $

$ head -n 3 /etc/group root:x:0: daemon:x:1: bin:x:2: $

Introducci´ona consola Comandos b´asicos Texto

Para ver s´oloel comienzo de un archivo podemos usar head [-n]

$ head /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

Para ver s´oloel comienzo de un archivo podemos usar head [-n]

$ head /etc/group $ head -3 /etc/group root:x:0: root:x:0: daemon:x:1: daemon:x:1: bin:x:2: bin:x:2: sys:x:3: $ adm:x:4: tty:x:5: disk:x:6: $ head -n 3 /etc/group lp:x:7: root:x:0: mail:x:8: daemon:x:1: news:x:9: bin:x:2: $ $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola $ tail -3 /etc/group rod:x:1004: martin:x:1003: arnold:x:1005: $

$ tail -n 3 /etc/group rod:x:1004: martin:x:1003: arnold:x:1005: $

Introducci´ona consola Comandos b´asicos Texto

Del mismo modo, podemos utilizar tail [-n] para ver las ´ultimas l´ıneas

$ tail /etc/group diego:x:1000: rdma:x:117: gigi:x:1001: vboxusers:x:118: colord:x:119: vanesa:x:1002: kvm:x:124: rod:x:1004: martin:x:1003: arnold:x:1005: $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Texto

Del mismo modo, podemos utilizar tail [-n] para ver las ´ultimas l´ıneas

$ tail /etc/group $ tail -3 /etc/group diego:x:1000: rod:x:1004: rdma:x:117: martin:x:1003: gigi:x:1001: arnold:x:1005: vboxusers:x:118: $ colord:x:119: vanesa:x:1002: kvm:x:124: $ tail -n 3 /etc/group rod:x:1004: rod:x:1004: martin:x:1003: martin:x:1003: arnold:x:1005: arnold:x:1005: $ $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Permisos Permisos

En GNU/Linux el sistema de archivos utilizado permite la asignaci´onde permisos a usuarios. Lectura (r): Habilita la apertura en s´ololectura Escritura (w): Habilita el archivo para ser modificado Ejecuci´on(x): Permite la ejecuci´ondel archivo Pueden ser aplicados a distintos usuarios Usuario (u): para el due˜nodel archivo Grupo (g): grupo de usuarios al que pertenece el archivo Otros (o): otros usuarios

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Permisos

Estos permisos se representan generalmente en dos formas num´erica simb´olica La representaci´onnum´ericaes mediante digitos octales 4 = Lectura 2 = Escritura 1 = Ejecuci´on

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Permisos

$ ls -l total 8 drwxr-xr-x 2 diego diego 4096 abr 9 20:07 dir1 drwxr-xr-x 2 diego diego 4096 abr 9 20:56 dir2 $ ls -lr * dir2: total 0 -rw-r--r-- 1 diego diego 0 abr 9 20:56 arch1.txt

dir1: total 0 -rw-r--r-- 1 diego diego 0 abr 9 20:07 arch1.txt

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Permisos Modificaci´onde permisos

Para cambiar los permisos de un archivo o directorio est´ael comando chmod Los permisos se pueden especificar de dos modos Octal Cada numero representa un tipo de usuario (ugo) Simb´olico Una cadena representa la acci´ona realizar

$ chmod 700 dir1 $ chmod og-x dir2 $ ls -l total 8 drwx------2 diego diego 4096 abr 9 20:07 dir1 drwxr--r-- 2 diego diego 4096 abr 9 20:56 dir2

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Permisos Modificaci´onde la propiedad

Para cambiar el usuario o grupo al que pertence un archivo o directorio se utliza el comando chown o chgrp

$ chgrp scanner dir1 $ su Contrase~na: # chown root:nogroup dir2 # ls -l total 8 drwx------2 diego scanner 4096 abr 9 20:07 dir1 drwxr--r-- 2 root nogroup 4096 abr 9 20:56 dir2

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Almacenamiento en disco Espacio libre Para poder conocer el espacio libre en los discos existe el comando df: $ df [opciones] [archivo]

$ df S.ficheros 1K-bloques Usados Disponibles Uso% Montado en rootfs 19222656 6094296 12151824 34% / udev 10240 0 10240 0% /dev tmpfs 103396 364 103032 1% /run tmpfs 5120 0 5120 0% /run/lock tmpfs 597320 0 597320 0% /run/shm /dev/sda5 55774580 29547328 23394000 56% /home $ df -h S.ficheros Tama~noUsados Disp Uso% Montado en rootfs 19G 5,9G 12G 34% / udev 10M 0 10M 0% /dev tmpfs 101M 364K 101M 1% /run tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 584M 0 584M 0% /run/shm /dev/sda5 54G 29G 23G 56% /home

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Almacenamiento en disco Espacio utilizado

Para conocer el espacio utilizado por los archivos se utiliza el comando du: $ du [opciones] [archivo]

$ du dir1/* 4 dir1/arch1-hard.txt 0 dir1/arch1-sim.txt $ du -hc dir1/* 4,0K dir1/arch1-hard.txt 0 dir1/arch1-sim.txt 4,0K total

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Enlaces Enlaces

En Unix existen dos tipos de enlaces duros o f´ısicos Es un nombre para un archivo. Un archivo puede tener varios nombres y s´olose borra del disco cuando es borrado el ´ultimonombre. blandos o simb´olicos Es un archivo especial que contiene una ruta a otro archivo. Este puede apuntar a archivos fuera del sistema de archivos y tambi´ena archivos que no existen realmente.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Enlaces

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Enlaces

Para crear enlaces utilizamos el comando ln. Este por defecto crea enlaces duros.

$ ln -s arch1.txt arch1-sim.txt $ ls -lG total 4 lrwxrwxrwx 1 diego 9 abr 16 16:24 arch1-sim.txt -> arch1.txt -rw-r--r-- 1 diego 407 abr 16 15:57 arch1.txt $ ln arch1.txt arch1-hard.txt $ ls -lG total 8 -rw-r--r-- 2 diego 407 abr 16 15:57 arch1-hard.txt lrwxrwxrwx 1 diego 9 abr 16 16:24 arch1-sim.txt -> arch1.txt -rw-r--r-- 2 diego 407 abr 16 15:57 arch1.txt

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Entorno Variables

Dado que para automatizar tareas es posible escribir scripts, bash permite definir diferentes tipos de variables: variables comunes: Son utilizadas dentro de los comandos de shell, por convenci´onse definen los nombres en minusculas. variables de entorno: Son tambi´envisibles dentro de los scripts o desde ejecutables llamados desde el shell, por convenci´onse definen los nombres en mayusculas.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Entorno

Para ver las variables definidas en la sesi´onse utiliza el comando env

$ env SSH_AGENT_PID=3739 TERM=xterm SHELL=/bin/bash XDG_SESSION_COOKIE=4cefc0a7d5fc8e2ce1dfd16300000f1a-1368119926.865190-1763418685 WINDOWID=25165839 XTERM_SHELL=/bin/bash http_proxy=http://157.92.49.223:8080 ...

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Entorno

Para definir una varible basta con asignarle un valor

$ var1="hola mundo" $ echo $var1 hola mundo

Las variables de entorno deben exportar mediante el comando export

$ export HTTP_PROXY=http://157.92.49.223:8080 $ echo $HTTP_PROXY http://157.92.49.223:8080

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Entorno

Las varibles de entorno m´asusadas por los programas son: EDITOR Editor utilizado por defecto HOME Ruta de la home del usuario HOSTNAME Nombre de la maquina MANPATH Ruta de busqueda para las p´aginas man Ruta de busqueda para los comandos SHELL Nombre del shell actual TERM Tipo de la terminal actual USER Nombre del usuario DISPLAY Id de la pantalla para visualizar las aplicaciones de X

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Entorno Alias

El shell nos permite definir atajos para los comandos que utilizamos generalmente. Para esto se utiliza el comando interno alias: $ alias [nombre[=valor]]

$ alias alias df=’df -h’ alias ls=’ls --color=auto’ $ alias ls alias ls=’ls --color=auto’ $ alias ls=’ls -l’ $ alias alias df=’df -h’ alias ls=’ls -l’

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Comandos b´asicos Entorno .bashrc

El archivo .bashrc es un script que se ejecuta cada vez que se inicia una sesi´onde bash. En este archivo se puede definir: variables de entorno por defecto alias el prompt ejecutar comandos ejecutar scripts ...

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Flujos

Standard streams

Los flujos son canales de entrada y salida de datos. En la ejecuci´on de cada programa existen 3 asociados a distintos archivos: STDIN Asociado a la entrada de datos STDOUT Asociado a la salida normal de datos STDERR Asociado a la salida de datos relacionados, posiblemente, a errores

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Flujos

STDIN

Muchos comandos utilizan, si no se pasa alg´unargumento que especifique la entrada, la entrada est´andar.

$ sort

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Flujos

STDOUT y STDERR

Los comandos utilizados hasta este momento utilizaron la salida est´andar para mostrar sus resultados. La salida de error es utilizada para mostrar en pantalla los mensajes de error de los comandos.

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Flujos

Redireccionamiento

Los flujos est´andar pueden ser facilmente rediccionados a archivos. < redirecciona un archivo a la entrada est´andar del comando > redirecciona la salida estandar del comando a un archivo >> redirecciona la salida estandar del comando al final de un archivo sin modificar el contenido previo de este

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Flujos Piping Concatenaci´onde comandos

Es com´un querer utilizar la salida de un comando con entrada de otro, para esto existe el piping. Para concatenar los comandos se utiliza el operador pipe, |.

/etc$ ls -1 | wc -l 251 /etc$ ls host* | sort -r hosts.deny hosts.allow hosts hostname host.conf

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Procesos

Listar procesos Para poder listar las tareas existe el comando ps: $ ps [opciones]

$ ps PID TTY TIME CMD 7248 pts/2 00:00:00 bash 24535 pts/2 00:00:00 ps $ ps ux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND diego 3980 0.0 0.6 16632 7232 ? Ss 15:13 0:01 /usr/bin/openbox --startup /usr/lib/openbox/openbox-autostart OPENBOX diego 4020 0.0 0.0 3868 216 ? Ss 15:13 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/openbox diego 4023 0.0 0.0 3516 468 ? S 15:13 0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/openbox-session diego 4024 0.0 0.1 3296 1076 ? Ss 15:13 0:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session diego 4036 0.0 0.5 14216 5804 ? S 15:13 0:01 tint2 diego 4037 0.8 0.4 77192 4964 ? Sl 15:13 1:39 conky diego 4038 0.0 0.2 6808 2660 ? S 15:13 0:01 xscreensaver -no-splash diego 4044 0.0 1.6 38532 16800 ? S 15:13 0:00 /usr/bin/python /usr/bin/system-config-printer-applet diego 4045 0.0 0.6 37180 7224 ? Sl 15:13 0:00 /usr/lib/notification-daemon/notification-daemon diego 4047 0.0 0.2 9024 2408 ? S 15:13 0:00 /usr/lib/gvfs/gvfsd

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Las tareas pueden ejecutarse en cualquiera de los dos Los trabajos pueden desplazarse entre planos sin afectar su funcionamiento Por defecto los trabajos se inician en el foreground Inicio de procesos en el background {&}:

$ top & [1] ###### $

Introducci´ona consola Procesos

Control de tareas

Existen 2 planos de trabajo: foreground y background

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Los trabajos pueden desplazarse entre planos sin afectar su funcionamiento Por defecto los trabajos se inician en el foreground Inicio de procesos en el background {&}:

$ top & [1] ###### $

Introducci´ona consola Procesos

Control de tareas

Existen 2 planos de trabajo: foreground y background Las tareas pueden ejecutarse en cualquiera de los dos

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Por defecto los trabajos se inician en el foreground Inicio de procesos en el background {&}:

$ top & [1] ###### $

Introducci´ona consola Procesos

Control de tareas

Existen 2 planos de trabajo: foreground y background Las tareas pueden ejecutarse en cualquiera de los dos Los trabajos pueden desplazarse entre planos sin afectar su funcionamiento

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Inicio de procesos en el background {&}:

$ top & [1] ###### $

Introducci´ona consola Procesos

Control de tareas

Existen 2 planos de trabajo: foreground y background Las tareas pueden ejecutarse en cualquiera de los dos Los trabajos pueden desplazarse entre planos sin afectar su funcionamiento Por defecto los trabajos se inician en el foreground

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Procesos

Control de tareas

Existen 2 planos de trabajo: foreground y background Las tareas pueden ejecutarse en cualquiera de los dos Los trabajos pueden desplazarse entre planos sin afectar su funcionamiento Por defecto los trabajos se inician en el foreground Inicio de procesos en el background {&}:

$ top & [1] ###### $

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Procesos

Se˜nalespara procesos

Podemos enviarles se˜nalesa los procesos como ser KILL, TERM y otras. Para esto se utiliza el comando kill: $ kill [opciones]

$ ps u -H USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND diego 7248 0.0 0.3 6120 3328 pts/2 Ss 15:41 0:00 bash diego 7514 0.0 0.1 4340 1104 pts/2 R+ 20:43 0:00 ps u -H ... diego 696 0.0 0.2 6104 3076 pts/3 Ss+ 19:42 0:00 bash $ kill 696 $ kill -s KILL 969

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Procesos

Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola