35
1 Comandos Básicos Linux 2 Entorno de Trabajo Servidor LINUX ( Recursos de Hardware ) Acceso por telnet Comparten Memoria Reloj Procesador Dispositivos Archivos 3 Entorno de Trabajo Windows Computadoras personales conectadas entre si No comparten Memoria Reloj Procesador Pueden compartir Dispositivos Archivos 4 Intérprete de comandos Cualquier usuario de Linux acabará antes o después relacionándose con el sistema empleando el modo texto, y no los entornos gráficos. Este modo se basa en la ejecución de una serie de comandos, que son interpretados por un programa o shell. Linux dispone de varios de estos programas pero el más habitual es conocido como bash o Bourne Again Shell. Si Linux se arranco en modo texto el sistema arranca de forma directa el shell y queda a la espera de introducción de nuevos comandos

Linux- Comandos

  • Upload
    gabi

  • View
    3.753

  • Download
    3

Embed Size (px)

DESCRIPTION

Los comando basicos de Linux

Citation preview

Page 1: Linux- Comandos

1

Comandos Básicos Linux

2

Entorno de TrabajoServidor LINUX ( Recursos de Hardware )Acceso por telnetComparten

MemoriaRelojProcesadorDispositivosArchivos

3

Entorno de Trabajo WindowsComputadoras personales conectadas entre siNo compartenMemoriaRelojProcesadorPueden compartirDispositivosArchivos

4

Intérprete de comandosCualquier usuario de Linux acabará antes o después relacionándose con el sistema empleando el modo texto, y no los entornos gráficos. Este modo se basa en la ejecución de una serie de comandos, que son interpretados por un programa o shell. Linux dispone de varios de estos programas pero el más habitual es conocido como bash o Bourne Again Shell. Si Linux se arranco en modo texto el sistema arranca de forma directa el shell y queda a la espera de introducción de nuevos comandos

Page 2: Linux- Comandos

2

5

Intérprete de ComandosEl shell, o intérprete de comandos, es un programa queestá ejecutándose durante toda la sesión con Linux,

actuando de interfaz entre el sistema operativo y el usuario.Permite que el usuario obtenga el máximo rendimiento del sistema y aproveche toda su potencia.

Una vez que un usuario se ha registrado en el sistema con su login y su password,Se le cede el control al shell,el cual ejecuta dos archivos de configuración:

el general (/etc/profile)y el particular (<directorio_del_usuario>/.profile).

Hecho esto aparece el símbolo prompt y el cursor espera a que el usuario teclee una orden, que el shell interpretará y ejecutará en el momento de pulsar <Intro>.

6

Intérprete de comandosEl shell evalúa lo que se escribe buscando en primer lugar si contiene un carácter "/" inicial, en cuyo caso lo toma como un programa y lo ejecuta. En caso contrario, examina si se trata de una función (secuencia de comandos identificada por un nombre unívoco), un comando interno o una palabra reservada. Si ninguna de estas condiciones es cierta, el shell lo trata como un comando y lo busca en PATH. Si no está, saca un mensaje del tipo "XX:not found", siendo XX lo que se ha escrito. Por otra parte, el shell ofrece la posibilidad de controlar la ejecución de los programas y la comunicación entre ellos.

7

Intérprete de comandosLos intérpretes de comandos tienen dos formas de ejecutar el contenido de una línea de comandos:

esperar a que finalice la ejecución o volver a pedir otro comando durante la misma.

Se distinguen así dos planos de ejecución: uno donde el programa tiene toda la atención y otro donde el programa se ejecuta de fondo sin detener la sesión, lo cual permite la posibilidad de ejecutar más comandos al mismo tiempo.

Además, el shell también es un sencillo lenguaje de programación.

8

Línea de comandoEl formato de un comando es:

$ comando -opciones argumentosHay opciones que se pueden ingresar como: comando -opción argumento, o $ comando a+b argumento.Notar que entre las opciones y argumentos, hay un espacio, que suele ser tomado por Linux como un cambio de argumentos. Por este motivo los nombres de los archivos nodeben contener espacios en blanco.

Page 3: Linux- Comandos

3

9

Entrada – Salida del Sistema

Arranque del LinuxCómo apagar el equipoinitLimpieza del sistema de archivos

loginpasswdlogin scriptlogout

10

Arranque Del LinuxCuando el equipo se enciende el Linux realiza el proceso de arranque (boot process) automáticamente.Durante este proceso presenta una serie de mensajes en la pantallaDe existir inconvenientes, los mensajes de error se mostrarán.Los scripts de arranque se encuentran guardados en el directorio /etcLos principales archivos involucrados son

/etc/inittab/etc/rc.d

Recomendación: observar, pero no tocar hasta tener experiencia.

11

ShutdownA los sistemas operativos les disgusta que se apague el equipo.Se corre el riesgo de dañar al sistema operativoAntes de apagar el equipo, hay que ejecutar shutdownOpciones

now apaga al sistema de inmediato+n n es el número de minutos a esperar-r realiza el shutdown y re-boot-c cancela el shutdown

12

Shutdown

Idem anteriorreboot

Detiene al sistema de inmediato y automáticamente realiza el re-boot

shutdown now –r

Detiene al sistema en 10 minutos, listo para apagar

shutdown +10 –h

Detiene al sistema de inmediato, listo para apagar

shutdown now –h

Que haceEjemplos

Page 4: Linux- Comandos

4

13

shutdown#shutdown –h now

mensajes relacionados con la detención y apagado del sistema aparecen en la pantallaesperar hasta que el la última línea aparece

system halteden este momento se puede apagar el equipo

14

RebootingEl único motivo que hace que se requiera reinicializar al sistema es cuando un nuevo seteo se realizó, y se desea que él mismo tenga efecto.Método 1

Estando todos los usuarios deslogueados pulsar simultáneamente CTRL – ALT – DEL

Los mensajes de shutdown aparecerán y el sistema se reinicializará

Método 2#reboot

15

init

reboot6

multi-user mode with GUI started (modo normal para las workstations utilizando X Windows)

5multi-user mode (modo normal)3

single user mode (para mantenimiento, no permite que otros usuarios se logueen)

1halt system0Que haceOpciones

El sistema ya se encuentra “levantado” y en ejecución, se puede el comando init para arrancar o parar al sistema.

16

init

Ejemplos

init 1 para setear al sistema en modo single user

init 6 reboot

Page 5: Linux- Comandos

5

17

Limpieza del File SystemfsckSe ejecuta automáticamente cada vez que el sistema arrancaOcasionalmente se puede ejecutar manualmente, para fijar daños en el sistema de archivos.Lo utiliza únicamente el administrador del sistemaSe ejecuta logueado como root

18

loginPara entrar al sistema hay que conectarse al mismo.Frente al mensaje de login, hay que ingresar el nombre de usuarioEl sistema a continuación solicita la password o palabra clave que corresponde al usuarioSi ambos datos son correctos se entra al sistema, caso contrario, el sistema presenta el login nuevamente.El login y la password son case sensitive

19

Cambio de clave o passwordSi el usuario desea cambiar su password

$passwdEnter existing passwordEnter new passwordEnter new password again

Si el administrador del sistema desea cambiar la password de un usuario

#passwd nombre_usuario

20

login scriptsDetrás de escena, mientras uno se loguea al sistema, los siguientes shell scripts se ejecutan. Su objetivo es inicializar las variables de ambiente/etc/profile

Este es el primer script que se ejecutaSe utiliza para inicializar los parámetros globales que son comunes a todos los usuarios

/home/<username>/.profile_bashEs el próximo script que se ejecuta normalmenteEn general tiene el mismo contenido para todos los usuariosSe suele cambiar para inicializar parámetros únicos para cada usuario

/home/<username>/.bashrcEs el próximo script que se ejecuta cada vez que se comienza un nuevo shell.

Page 6: Linux- Comandos

6

21

logout

La salida de una sesión por parte del usuario se

puede realizar de varias maneras:

logout

exit

la combinación de teclas CTRL – D

En el modo gráfico mediante la opción de logout

22

Estado del Sistema

procinfotoppsenvdfdufreeid

whouptime

23

uptime$ uptime3:53pm up 21 min, 1 user, load average: 0.78, 0.63, 0.38Tiempo actual (3:53pm) Número de días o mínutos desde el último arranque (up 21min) Cantidad de usuarios logueados (1 user) Utilización del sistema por los últimos intérvalos de 1, 5 y15 minutos (load average – carga efectiva)

24

whoUsuarios logueadosCuando se loguearonDe donde se conectaron

tty que están utilizandoIdle time

Opciones:-i muestra el tiempo display idle time -H muestra las columnas de cabecera

Page 7: Linux- Comandos

7

25

who$ whomartin tty2 Aug 10 15:52

$ who –iH

(omni).Jun 5 23:27ttyp0pepe

FROMIDLELOGIN- TIMELINEUSER

26

idEste comando muestra en una linea un resumen del actual usuarionombre usuario y númerogrupo principal y númerootros grupos y números

$ iduid=500(martin) gid=500(martin) groups=500(martin)

27

freeMuestra la estadística de la memoria utilizada. Valores en Kbytes

total used free shared buffers cached

Mem: 158920 156160 2760 0 5208 47640-/+ buffers/cache:103312 55608Swap: 498920 0 498920

28

duMuestra la cantidad utilizada de disco y muestra el tamaño del actual directorio y subdirectorio en Kbytes.$ du20 .

Page 8: Linux- Comandos

8

29

duMuestra el espacio disponible en el disco partición por particiónLos drives/particiones tienen que estar montadas para obtener esta información.La información del NFS también se puede obtenerPara mostrar el espacio libre de los drivers montados localmente$df –l

30

duCuando se quiere saber donde y quien está consumiendo espacio en disco, en especial cuando se lentifica el sistemaEl comando du permite determinar la utilización del disco directorio por directorio

Resumen, sólo muestra la salida de cada argumento-s

Muestra los tamaños en Kbytes y no en bloques (Un bloque = 1 Kbyte, en Linux)

-k

Muestra los tamaños en formato entendible-h

Genera un reporte al final-c

DescripciónOpciones

31

du

Para visualizar la cantidad de espacio utilizado por

cada directorio dentro de /home, en un formato

entendible

$ du –sh /home/*

32

dfMuestra la información de cada file system

$dfFilesystem 1k-blocks Used Available Use% Mounted on/dev/hda2 2894608 1885204 862364 69% /none 79460 0 79460 0% /dev/shm

Page 9: Linux- Comandos

9

33

dfMuestra el espacio disponible en el disco partición por particiónLos drives/particiones tienen que estar montadas para obtener esta información.La información del NFS también se puede obtenerPara mostrar el espacio libre de los drivers montados localmente$df –l

34

df

Para mostrar en formato legible, el actual filesystem donde se halla el directorio actual$df –hPara mostrar el espacio disponible del filesystem donde /tmp está ubicado$df –h /tmp

35

envLista todas las variables de ambiente y su contenido para el usuario actual

PWD=/home/martin/comandosHOSTNAME=localhost.localdomainUSER=martinMAIL=/var/spool/mail/martinLANG=en_US.iso885915LOGNAME=martinHISTSIZE=1000HOME=/home/martinTERM=linuxPATH=/usr/local/bin:/bin:/usr/bin:/home/martin/bin_=/usr/bin/envOLDPWD=/home/martin

36

psEste comando lista el estado de los procesos.

$ ps uUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDmartin 10009 0.0 0.8 2452 1280 tty2 S 15:52 0:00 –bashmartin 10076 0.0 0.4 2584 668 tty2 R 15:56 0:00 ps u

El comando anterior muestra el estado de los procesos del usuario actual

Page 10: Linux- Comandos

10

37

psSiendo

PID ÚNICO Identificador de ProcesoSIZE tamaño de la imagen virtual; tamaño de texto + data + stack

RSS Resident set size; Kbytes del programa en memoria

TTY tty que controla el procesoSTAT información sobre el estado del proceso

R ejecuciónS durmiendoD interrumpiblemente durmiendo T detenido o en modo trazaZ zombie

• W si el proceso no tiene páginas residentes• N si el proceso tiene un valor de prioridad positiva

38

ps$ ps ax

muestra el estado de todos los procesos de todos los usuarios incluyendo los del sistema

39

killEl nombre causa confusión.Envía señales a los procesos en ejecuciónEl SO, por defecto, da a cada proceso un conjunto normalizado de manejadores de señales (signal handlers) para el tratamiento de las señales que le lleguen.Desde el punto de vista de la administración, las señales más importantes son la 9 y la 15, ya que ellas matan a un proceso o lo terminan, respectivamente.Cuando el kill se invoca, requiere al menos un parámetro, el pid del proceso al que se le envía la señal.Si se pasa sin parámetro, el sistema toma la 15 por defecto.

40

kill

Algunos procesos interceptan esta señal y realizan

una serie de operaciones para poder terminar

adecuadamente.

Otros simplemente terminan.

Desde ya el uso del kill no garantiza la terminación

de un proceso.

Page 11: Linux- Comandos

11

41

signalUn parámetro opcional para el kill es –n donde n representa un número de señal.La señal 9 mata a un proceso. La única vez que esta señal falla es cuando esta en el medio de la ejecución de un system call, en este caso el proceso morirá cuando terminé la ejecución del system call.La señal 1 (hang up), es un bit, que se utilizaba en los tiempos de las terminales VT100. En el caso que la comunicación de una terminal de cayerá a la mitad de una sesión, todos los procesos asociados con esa terminal recibián la señal SIGHUP o HUP. Esto le daba la oportunidad a todos los procesos de realizar una terminación limpia, o en el caso de los procesos en background ignorar la señal.

42

seguridadesLa potencia de poder terminar un proceso hace necesario tomar precauciones.Solamente el usuario puede terminar su proceso o aquellos que tengan permiso de matarlo.Si se intenta terminar un proceso sobre el que no se tiene privilegios, el sistema da mensajes de error.El root es la excepción a esta limitación. El root puede enviar señales a cualquier proceso. Desde ya esto implica una gran atención con lo que se hace.$kill 2059$kill –9 593$kill –1 1

43

topMuestra en una pantalla completa la información top de los procesos.Automáticamente se actualiza hasta que se detiene la ejecución del programa.Para detenerlo se oprime la tecla q

44

top3:56pm up 25 min, 1 user, load average: 0.14, 0.32, 0.3055 processes: 54 sleeping, 1 running, 0 zombie, 0 stoppedCPU states: 11.2% user, 5.9% system, 0.2% nice, 82.6% idleMem: 158920K av, 156164K used, 2756K free, 0K shrd, 5696K buffSwap: 498920K av, 0K used, 498920K free 47016K cachedPID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND10078 martin 15 0 1024 1024 828 R 3.8 0.6 0:00 top1 root 15 0 476 476 420 S 0.0 0.2 0:03 init2 root 15 0 0 0 0 SW 0.0 0.0 0:00 keventd3 root 15 0 0 0 0 SW 0.0 0.0 0:00 kapmd4 root 34 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU05 root 15 0 0 0 0 SW 0.0 0.0 0:00 kswapd6 root 15 0 0 0 0 SW 0.0 0.0 0:00 bdflush7 root 15 0 0 0 0 SW 0.0 0.0 0:00 kupdated8 root 25 0 0 0 0 SW 0.0 0.0 0:00 mdrecoveryd1212 root 15 0 0 0 0 SW 0.0 0.0 0:00 kjournald91 root 15 0 0 0 0 SW 0.0 0.0 0:00 khubd588 root 15 0 560 560 472 S 0.0 0.3 0:00 syslogd593 root 15 0 444 444 384 S 0.0 0.2 0:00 klogd613 rpc 15 0 552 552 468 S 0.0 0.3 0:00 portmap641 rpcuser 17 0 712 712 620 S 0.0 0.4 0:00 rpc.statd726 root 15 0 644 644 480 S 0.0 0.4 0:00 cardmgr820 root 15 0 480 480 424 S 0.0 0.3 0:00 apmd896 root 15 0 944 944 756 S 0.0 0.5 0:00 xinetd

Page 12: Linux- Comandos

12

45

procinfo Información del sistemaprocinfo da información del sistema que toma del archivo /proc y lo muestra en forma de reporte en la pantalla.Algunas de las informaciones que entrega:

Tiempo del último arranqueCarga promedio

promedio de tareas en ejecuciónnúmero de procesos en ejecuciónnúmero total de procesosPID del último proceso en ejecución

Información de swapRecursos de memoriaNúmero de discosInformación sobre las IRQsInformación sobre los file systems

La informacións se actualiza cada 30 segundos

46

$procinfo –fn30Linux 2.4.18-3 (bhcompile@daffy) (gcc 2.96 20000731 ) #1 1CPU localhost]Memory: Total Used Free Shared Buffers CachedMem: 158920 156156 2764 0 5772 47044Swap: 498920 0 498920Bootup: Sun Aug 10 15:31:28 2003 Load average: 0.10 0.29 0.29 1/55 10081

user : 0:02:51.00 10.9% page in : 163056 disk 1: 25137r 4835wnice : 0:00:03.10 0.2% page out: 65079system: 0:01:30.74 5.8% swap in : 1idle : 0:21:47.11 83.2% swap out: 0uptime: 0:26:11.95 context : 158729

irq 0: 157195 timer irq 8: 1 rtc irq 1: 744 keyboard irq 9: 6 xirc2ps_cs irq 2: 0 cascade [4] irq 10: 2irq 4: 9 irq 11: 0 usb-uhci, Texas Instirq 6: 6 irq 12: 8381 PS/2 Mouse irq 7: 2 irq 14: 32718 ide0

47

Estructura del Sistema de Archivos

La estructura de archivos es una estructura arbolada

El tronco del árbol es el directorio raíz

El root directory se identifica por /

Todos los otros directorios son ramas que salen de ese tronco.

48

Estructura jerárquica de archivos

Estructura de árbol invertido.

Un directorio equivale a abrir una rama dentro del árbol.

Los directorios pueden contener otros directorios, archivos ordinarios o estar vacíos.

Un archivo ordinario es siempre el último archivoen un path

Page 13: Linux- Comandos

13

49

pathnames

El primer directorio de la estructura es el directorio raíz; todos los demás archivos y directorios parten de él. El directorio raíz se designa con un nombre especial, /. Ningún otro archivo puede tener este nombre.Se lo denomina root, de allí el nombre del superusuario.

50

pathnamesTodos los archivos forman parte de la jerarquía. Cualquier archivo de esta estructura es parte de una red de directorios conectados. Esta red de directorios, junto con el nombre de un archivos particular, constituye el pathname para un archivo.Cada archivo se identifica con un único pathname, que describe su localización con respecto a los otros directorios.Se puede especificar un nombre de archivo utilizando pathnames

51

pathnamesUn pathname absoluto especifica la localización de un archivo

desde el directorio raíz. Por lo tanto, todos los pathnames absolutos deben de empezar

con un slash (/).

Un pathname relativo especifica la localización de un archivocon respecto al directorio en que se está trabajando, en lugar del directorio raíz, por lo que no empiezan con un slash

(/).

. El punto se refiere al directorio en que se está

.. dos puntos se refiere al directorio padre

52

HOMEDIRECTORYEl home directory es un subdirectorio del directorio raíz (root) en el que se entra cada vez que se hace login

es donde van a residir los archivos del usuario. Normalmente tiene el mismo nombre que el nombre de usuario.El comando pwd ( print working directory) dice en qué directorio se está. El formato es simplemente :

$pwd

Page 14: Linux- Comandos

14

53

Principales Directorios/ root directory/home directorio de los usuarios/usr comandos y utilitarios de Linux

/bin programas ejecutables/lib bibliotecas similares a las DLL de Windows/sbin más ejecutables de tipo administrativos/doc documentación/src código fuente de los programas

/tmp archivos temporarios de trabajo

54

Principales Directorios/etc archivos de configuración

/rd.d scripts usados durante el arranque y parada

/sysconf archivos de configuración por defecto/sysconf/daemons

programas especiales que se ejecutan en background

/bin archivos ejecutables que utilizan todos los usuarios

/dev archivos de dispositivos

55

Principales directorios/var archivos específicos de los

usuarios/log archivos logs /spool archivos utilizados durante las

impresiones/mail archivos de e-mail

/proc archivos del sistema/root home directory del root/opt otras opciones/sbin más ejecutables y utilitarios

56

Archivos y Directorios en Linux

pwd

mkdir

rm

Metacaracteres

*

?

[ ]

cd

rmdir

ls

cp

mv

wc

Page 15: Linux- Comandos

15

57

pwdMostrar el nombre del directorio completo actual/home/jpbeck

58

cdPara cambiar de directorio

se ubica en el directorio padrecd ..se ubica en el directorio /etccd /etcse ubica en el directorio rootcd /se ubica en el H0MEDIRECTORYcd

Qué haceEjemplos

59

mkdir rmdirmkdir Crea nuevos directoriosrmdir Borra directorios, pero que no contienen

archivosrm –r Borra en primer lugar los archivos que

contiene el directorio, y luego el directorio

borra al directorio dire1, junto con todos los directorios y archivos que contenga

rm –r dire1

borra al directorio estedir, si el mismo se encuentra vacio

rmdir estedir

crea un nuevo directorio denominado midirmkdir midir

60

mkdir

Se utiliza para crear directorios$mkdir midirCon la opción –p, se puede crear una rama de directorios, suponiendo que sólo existe /tmp$mkdir –p /tmp/bigdir/subdir/midiral ejecutarse de generó automáticamente bigdir, subdir y midir.

Page 16: Linux- Comandos

16

61

rmdir

Idem a la creación, con la opción –p puede borrar

directorios padre también

$ rmdir –p bigdir/subdir/midir

es importante la ubicación desde donde uno está

borrando directorios.

62

lsMuestra el contenido de un directorio

Muestra el archivo correspondientefilename(s)

muestra los archivos más recientemente accesados

-t

lista los archivos en orden alfabético inverso-r

muestra todos los archivos, aún los ocultos-a

lista el directorio actual y todos los directorios dentro del mismo

-Rlistado largo-lQué hace?Opciones

63

ls

Lista todos los archivos del directorio /etc, que sólo comienzan con rc y los ordena por el más recientemente utilizado

ls –lt /etc/rc*

Lista todos los archivos, ordenados por el más reciente utilizado primero

ls –lt

Lista todos los archivos del directorio actual y los que están por debajo

ls –R

Lista todos los archivos/directorios del directorio actual en formato largo

ls –l

muestra en una única lista todos los nombres de los archivos y directorios en el directorio actual

ls

¿Qué hace?Ejemplos

64

ls –l total 43-rw-rw-r— 1 martin martin 190 Aug 10 15:55 df-rw-rw-r-- 1 martin martin 5 Aug 10 15:55 du-rw-rw-r-- 1 martin martin 885 Aug 10 15:56 env-rw-rw-r-- 1 martin martin 230 Aug 10 15:54 free-rw-rw-r-- 1 martin martin 51 Aug 10 15:54 id-rw-rw-r-- 1 martin martin 0 Aug 10 16:04 lsl-rw-rw-r-- 1 martin martin 1124 Aug 10 15:57 procinfo-rw-rw-r-- 1 martin martin 208 Aug 10 15:56 ps-rw-rw-r-- 1 martin martin 1785 Aug 10 15:56 top-rw-rw-r-- 1 martin martin 62 Aug 10 15:53 uptime-rw-rw-r-- 1 martin martin 31 Aug 10 15:53 who

Page 17: Linux- Comandos

17

65

Información que muestra ls -lTIPO DE ARCHIVO :

d directorio - archivo ordinario

TIPO DE PERMISOS :r lecturaw escriturax ejecución

66

Información que muestra ls -l

NUMERO DE ENLACES

NOMBRE DEL PROPIETARIO DEL ARCHIVO

NOMBRE DEL GRUPO AL QUE PERTENECE EL PROPIETARIO

TAMAÑO DEL ARCHIVO (en bytes)

FECHA DE LA ULTIMA MODIFICACION

NOMBRE DEL ARCHIVO

67

Protección de archivos

Existen tres clases diferentes de usuarios de un archivo y tres modos diferentes de acceso al archivo.

CLASES DE USUARIO

Propietario

Grupo

Otros

68

Modos de accesoLECTURA (r)

Permite examinar el contenido del archivo. Permite listar los archivos contenidos en el directorio.

ESCRITURA (w)Permite cambiar el contenido del archivo.Permite crear y borrar archivos.

EJECUCION (x)Permite ejecutar el archivo como un comando.Permite buscar en el directorio.

Page 18: Linux- Comandos

18

69

Especificación de permisosrwx rwx rwx| | || | |_______ permisos para otros usuarios| || |____________ permisos para el grupo de

usuarios||________________ permisos para el usuario

propietario

70

Metacaracteres (wildcards)

representa los valores no contemplados en el rango

[ ! desde – a ]

representa un rango[ desde - a ]

representa uno y sólo un caracter?

representa ningún, uno o cualquier cantidad de caracteres

*Qué haceOpciones

71

Nombres de los ArchivosLetras mayúsculas ( A - Z ).Letras minúsculas ( a - z ).Números ( 0 - 9 ).Subrayado ( _ ).Punto ( . ).Coma ( , ).Extensión de un archivoNo se admiten espacios en blanco en el nombre

72

Metacaracteres

Todos los archivos que no comiencen ni con M o N u O[!M-O]*

todos los archivos que comiencen con x, y cuya segunda letra sea una A, o B o C

x[A-C]*todos los archivos que comiencen con a o b o c[a-c]*

todos los archivos cuyos nombres son de 4 caracteres y empiecen con th

th??

todos los archivos que comienzan con a y terminan con z

a*mtodos los archivos que terminan con z*ztodos los archivos que empiezen con aa*Qué haceEjemplos

Page 19: Linux- Comandos

19

73

Expansión del nombre de un archivo

Utilizando el bash, los wildcards o metacaracteres en la línea de comando se expanden antes de pasarse como parámetros a la aplicación. Si se quiere utilizar los metacaracteres como parte de un parámetro por alguna razón, se deben utilizar precedidos por el backslash (\). Esto hace que el shell interprete al asterisco, al signo de pregunta como caracteres regulares en vez de metacaracteres.

74

Archivos Invisibles u OcultosLos archivos cuyos nombres comienzan con un punto (.) Normalmente los archivos ocultos se utilizan para guardar información que el sistema utiliza automáticamente.$ ls -a

75

chmodEl comando chmod (change mode) se utiliza para cambiar los permisos de un archivo ordinario y de un directorio. Existen dos formas de cambiar los permisos. Se pueden cambiar teniendo encuenta los permisos existentes (modo simbólico)O se pueden asignar permisos independientemente de los ya existentes (modo absoluto).

76

chmod modo simbólico

Cuando se utiliza el modo simbólico se pueden

añadir o quitar permisos a los archivos y

directorios.

El formato del comando chmod simbólico es:

chmod [who] código-operador permisos fichero

[who] Tipo de usuario

Page 20: Linux- Comandos

20

77

chmod modo simbólicoPuede tener los siguientes valores:

u : propietario del ficherog : grupo del que el propietario es miembroo : usuarios clasificados como otrosa : todos los usuarios del sistema (propietario, grupo y otros)

Código-operador: Indica la operación que se va a realizar:+ : añadir permisos- : quitar permisos

Tipo de permiso:r : permiso de lecturaw : permiso de escriturax : permiso de ejecución

78

chmod modo simbólico

Por ejemplo, si el archivo progra1 tiene los siguientes permisos:

rwx r_ _ r_ _

y si se quiere dar al grupo de usuarios y al resto de los usuarios del sistema, el permiso de ejecución$chmod go +x datos

79

chmod modo absolutoEl modo absoluto se especifica con 3 dígitos numéricos;

cada número representa los permisos de cada tipo de usuario. Estos dígitos se obtienen, para cada clase de usuario, a partir de los valores siguientes:

4 : permiso de lectura2 : permiso de escritura1 : permiso de ejecución.

80

chmod modo absoluto0 : ningún permiso1 : permiso de ejecución2 : permiso de escritura3 : permiso de ejecución y escritura (1+2)4 : permiso de lectura5 : permiso de lectura y ejecución (4+1)6 : permiso de lectura y escritura (4+2)7 : permiso de lectura, escritura y ejecución (4+2+1)

Page 21: Linux- Comandos

21

81

chmod modo absolutoLa sintaxis para el comando chmod absoluto es:

chmod modo archivomodo: Son 3 dígitos numéricos. Cada uno de ellos corresponde a los permisos de cada tipo de usuario.archivo: Nombre de archivo o directorio.

Por ejemplo:$chmod 777 datos

concede permisos de lectura, escritura y ejecución sobre el fichero datos, a todos los usuarios.

82

Directorios

El directorio es una instancia especial de un

archivo normal

El archivo directorio contiene una lista de archivos,

donde algunos de ellos pueden ser a su vez

directorios.

Concepto similar al folder o carpeta de Windows.

83

Copiar – Renombrar - Movercp Copia un archivo

$ cp archi1 archi2copia el archivo archi1 con el nombre archi2, en el mismo directoriomv Renombra archivos

$ mv archi2 archi3le cambia el nombre al archivo archi2 llamándose ahora archi3mv Mueve archivos

$ mv archi1 /home/pepe/archi5mueve el archivo archi1 del directorio actual (copiando y borrando) al directorio /home/pepe y denominándolo archi5

84

cpDispone de una cantidad significativa de opciones. (ver con man cp)Para copiar index.html a index-orig.html$cp index.html index-orig.htmlse supone que el archivo index.html se encuentra el directorio corriente, y se copia con otro nombre en el mismo directorioPara realizar copias interactivas

$cp –i *.html /tmp

Page 22: Linux- Comandos

22

85

mvPuede mover archivos de una ubicación a otra, también a distintas particiones. En este último caso necesita que primero se haga la copia, por lo que se demora un poco más en su ejecución.Para mover el archivo desde /usr/src/myprog/bin/* a /usr/bin$ mv /usr/src/myprog/bin/* /usr/binPara renombrar /tmp/blah a /tmp/bleck$mv /tmp/blah /tmp/bleck

86

rmBorrar archivos

$ rm archivitos borra el archivo archivitos

$ rm –i abc* borra, pidiendo confirmación, a cada archivo que comienza con abc

$ rm abc* borra instántaneamente todos los archivos que comiencen con abc

87

wcSe utiliza para contar líneas, palabras y caracteres de un archivo

-c número de caracteres-w número de palabras-l número de líneas

$ wc /etc/sendmail.cf lista el número de líneas, palabras y caracteres en el archivo sendmail.cf

$ ls /etc | wc –l Muestra el número de archivos y directorios que contiene /etc

88

Enlaces o Accesos DirectosEnlace o Vínculos : permite que se comparta la información. La existencia de vinculos es lo que convierte al árbol en un grafo acíclico.

VINCULO

Page 23: Linux- Comandos

23

89

Enlaces o VínculosEl vínculo es un enlace con el archivo físico, para compartir un archivo entre varios usuarios.No se puede crear un archivo vínculo de la nada, es necesario que exista el archivo físico al cual está vinculado.Al realizar un ls el vinculo viene representado como :

clase - > / etc / passwd

VINCULOArchivo Físico

90

Enlaces o VínculosEnlaces SIMBÓLICOS : Amplia el concepto de vinculo permitiendo vincularse a directorios o archivos de la red. Un vinculo simbólico desde el punto de vista físico no es más que un archivo que contiene el nombre de otro. No se implementa un vínculo, sino que viene el archivo vinculado. Al hacer un vinculo, crea una entrada más en la tabla de directorios, y al mismo tiempo un archivo al que estávinculado.Directorios : Archivo que contiene información sobre otros archivos( es un archivo). Se puede tratar con las ordenes de tratamiento de archivos.

91

Enlaces Duros y SimbólicosHard link

$ ln pwd otroSoft link

$ ln –s pwd otromas$ ls –il7418 -rw-rw-r-- 2 martin martin 0 Aug 10 16:27 otro 7420 lrwxrwxrwx 1 martin martin 3 Aug 10 16:26 otromas -> pwd7418 -rw-rw-r-- 2 martin martin 0 Aug 10 16:27 pwd

92

Enlaces durosUn hard link no puede existir entre dos archivos que se encuentren en particiones separadas. Esto se debe a que el hard link hace referencia al i-nodo del archivo original, y el número de i-nodo puede diferir de partición en partición.$ ln pepe /home/miguel/pepe$ ls –i pepe$ ls –i /home/miguel/pepelos dos últimos comandos van a mostrar el mismo i-nodo, y el número de enlaces en 2

Page 24: Linux- Comandos

24

93

Enlaces simbólicos o blandos

Los hard link, que apuntan al archivo a través de su i-nodoLos symbolic link apuntan a otro archivo por su nombre.Esto permite a los symlinks apuntar a archivos ubicados en otras particiones, aún sobre discos de red.

94

ln

El formato general del comando es

ln original_file new_file

Pero ln tiene muchas opciones, la más común es –s, que crea un enlace simbólico en vez de uno duro.

$ln –s /usr/local/bin/myadduser /usr/bin/myadduser

95

Archivos de texto

fileMostrar archivos

lesscatheadtail

| pipes

Comandos múltiples

sort

grep

96

fileVerificación del tipo de archivo

$ file otrootro: ASCII text$ file otromasotromas: symbolic link to pwd

Page 25: Linux- Comandos

25

97

pipes |Si se desea saber cuantos usuarios hay logueados al sistema en un instante determinado

$who > logueados$wc –l logueados$rm logueados

Mediante la técnica de redireccionamiento se logro escribir un archivo, el cual después se leyo y dio la informaciónPero en un ambiente de multiprogramación, la escritura y lectura de disco, es un costo muy elevadoMediante pipes se resuelve todo en memoria

$who | wc –lAhorro de una escritura y una lectura en disco.

98

pipesLos pipes son un mecanismo por el cual la salida de un proceso se envía a la entrada de otro proceso

$printenv | grep PS1El intérprete de comandos de Windows utiliza también pipesLa diferencia radica en que los pipes se ejecutan concurrentemente, mientras que en Windows cada proceso se ejecuta en orden, utilizando archivos temporales para guardar los resultados parciales.

99

Comandos múltiples

Si se ejecuta

$ls –l

$ cat /etc/passwd

lo puedo hacer en una única línea de comando

$ls –l; cat /etc/passwd

100

RedireccionamientoMediante el redireccionamiento la salida de un proceso se puede enviar directamente a un archivo.El shell más que el proceso en sí administra esta situación, proveyendo de los mecanismos para que la misma se cumplaRedireccionamiento

salida a un archivoagregar a un archivoenviar un archivo como entrada

Page 26: Linux- Comandos

26

101

Redireccionamiento

$ls > /tmp/directory_listint

$echo “Final” >> /tmp/directory_listing

$grep ‘root’ < /etc/passwd

102

Mostrando Archivosless se utiliza para visualizar el contenido de

un archivo de texto$ less /etc/passwd

Mientras se visualiza se dispone de una serie de opciones que permiten moverse sobre el archivo hacia atrás y hacia adelante, y también buscar palabras.more se utiliza para visualizar el contenido de

un archivo de texto$ more /etc/passwd

Idem al anterior, pero con menor cantidad de posibilidades

103

Mostrando Archivoscat Muestra el archivo de texto completo, no

tiene posibilidad de paginación como el less o el more

$ cat /etc/passwd

También se puede utilizar para crear un nuevo archivo

$ cat > nuevoArchiSe ingresan las líneas de texto por teclado. Para cerrar el archivo se pulsa CTRL - D

104

cat

Muestra el contenido de los archivos.$cat /etc/passwd$cat /etc/passwd /etc/groupPara concatenar dos archivos en uno sólo$cat /etc/passwd /etc/group > /tmp/compPara concatenar un archivo a otro ya existente$cat /etc/passwd >> /tmp/orb

Page 27: Linux- Comandos

27

105

Mostrando Archivoshead Sólo muestra las primeras líneas de un

archivo de texto$ head –5 /etc/passwd

Solo muestra las primeras 5 líneas del archivo passwd

tail Sólo muestra las últimas líneas de un archivo de texto

$ tail –5 /etc/passwdSólo muestra las últimas 5 líneas del archivo passwd

106

Mostrando Archivosgrep se utiliza para encontrar un dato

específico dentro de un archivo o grupo de archivos

archivo sobre el que se hace la búsquedafilenametexto que se buscapatternignora mayúsculas y minúsculas-i

Hace lo opuesto a lo normal, lista las líneas que no cumplen

-v

Muestra la cantidad de líneas que cumplen la condición

-cQue haceOpciones

107

$ grep home /etc/passwd$grep –v home /etc/passwd$grep –c home /etc/passwd$grep ‘name*’ /etc/sendmail.cf$grep ‘domain name’ /etc/sendmail.cf$grep tcp /etc/rc*$grep TCP /etc/rc*$grep -i tcp /etc/rc*

Ejemplos de uso de grep

108

sortordenamiento de un archivo

- r ordenamiento en orden inversonombre del archivo-o archivo destino

Ejemplos$ sort /etc/passwd$grep home /etc/passwd | sort$grep home /etc/passwd | sort –r$sort /etc/passwd –o nuevopasswd

Page 28: Linux- Comandos

28

109

Cambio de propietario y grupochown cambio de propietario de archivos o

directorioschgrp cambio de grupo sobre archivos o

directorios

$ chown pepe archi archivos

$ chgrp mgmt archi1 listado2

110

Otros comandosdate permite visualizar o cambiar la fecha y

hora del sistemacal muestra el calendario del mes actual, año

indicado, o mes y año indicadoclear limpia la pantallatouch cambia la fecha de actualización de un

determinado archivo. En caso de no existir el archivo genera un archivo con 0 bytes.

111

Otros comandospidof Indica el número de proceso, si se colgara un

proceso se hace pidof <nombre>, y da un número ese es el pid.

diff Compara dos archivos en formato texto línea por línea.

find Busca algún archivo y ejecuta alguna acción con estos archivos.

locate Lista archivos asociados al patrón dado.tar Empaqueta o desempaqueta un conjunto

de archivos o directorios. Ver man para opciones.

112

Otros comandoszip Comprime o descomprime archivos.gzip Comprime o descomprime archivos,

usando el compresor gunzip.bzip2 Formato de compresión mas nuevo que

los anteriores, permite mayor compresión de los datos.

su Permite realizar tareas de superusuario estando logueado como usuario normal.

df Permite ver el uso de los discos que se encuentran montados. Tamaño de lo usado.

du Permite ver el tamaño de los directorios, se puede definir en que unidad de medida.

Page 29: Linux- Comandos

29

113

Tareas de Control Jobs ControlDesde el entorno bash se pueden comenzar múltiples programas desde el mismo prompt.Cada programa se lo denomina jobCuando un job comienza toma control de la terminal (el término proviene de las terminales bobas tipo VT-100 y Wyse-50)La terminal es la interfaz que existe cuando se trabaja en modo texto o la ventana que se crea a partir del X Windows sobre el cual el bash se ejecuta.Las terminales utilizadas en X Windows se llaman pseudo tty o pty

114

Jobs ControlSi una tarea tiene control de la terminal, cuando termina tendría que darle el control a la tarea que lo supervisa.Se tiene otra manera de trabajar

$galion&Inmediatamente después de oprimir el Enter, el bash devuelve el prompt. La tarea se ejecuta en background.Si el programa ya se está ejecutando y tiene control de la terminal, se puede hacer que la tarea abandone el control de la terminal presionando CTRL-z. Esto detiene la ejecución y devuelve el control al bash, de tal modo que se pueden introducir nuevos comandos.

115

Jobs Control

En cualquier momento se puede saber cuantas tareas están a cargo del bash ejecutando el comando

$jobsEl listado de programas que aparece estará en dos estados posibles:

ejecución (running)stopped (detenido o bloqueado)

116

Jobs ControlSi una tarea está detenida, se la puede empezar a ejecutar en background, dejando de este modo libre el control de la terminal.O se puede ejecutar la tarea en modo foreground, que le da el control de la terminal a la tareaSi se quiere ejecutar en background

$ bg numeroSi se quiere ejecutar en foreground

$ fg numerosiendo numero el número de job a tratar

Page 30: Linux- Comandos

30

117

Variables de ambienteCada instancia del shell se ejecuta en su propio ambiente, dándole un look & feel particularEl seteo particular se logra a través de las llamadas variables de ambiente (environment variables)Algunas variables tienen un significado especial para el shell, se utilizan en los shell scripts.Idem al concepto de variables de ambiente del NT y Windows 2000, la diferencia es que se pueden setear, ver y borrar.

118

Variables de ambientePara visualizar todas las variables de ambiente

$printenvPara observar alguna variable en particular

$printenv OSTYPESeteo de las variables

$ variable = valordonde variable es el nombre de la variable y valor es el

valor que se le asignaUna vez setea una variable se la puede pasar a otro entorno para ello se dispone de un comando

$export variable

119

Variables de ambiente o entornoSi el valor a asignar a una variable de ambiente tiene espacios en blanco, se tiene que encerrar con doble comilla

$export PEPE = “Bienvenidos al Tren”Para remover o borrar una variable de ambiente

$unset PEPECada shell tiene mecanismos especiales para setear y remover sus variables.

120

Backticks ` `La salida de un proceso puede ser el parámetro de otro procesoLos backticks ( ` ) pueden embeber comandos como parámetros en otro comando.Un servidor DNS, llamado named, tiene que terminarse.

cuando named comienza, escribe su número de identificación de proceso en el archivo /var/run/named.pidutilizando el comando cat se puede visualizar dicho número$cat /var/run/named.pid1243$kill –9 1243

Todo se lo puede ejecutar de la siguiente forma$ kill –9 `cat /var/run/named.pid`

Page 31: Linux- Comandos

31

121

herramientas de documentaciónman

info System tools8

Packages7

Games6

Configuration files5

Device Driver Information4

C library calls3

System Calls2

User tools1

TemaSección del Manual

122

man$man program_name$man ls$man 3 printf$man 1 printf

por defecto, la sección más baja se muestra primero$man –k printf

da un informe resumido de todas las páginas del manual, con su número de sección correspondiente.

123

Block DevicesTodos los dispositivos se acceden a través de archivosLos archivos tipo dispositivos de bloques se utilizan para la interfaz con dispositivos tales como discosUn archivo de block device tiene 3 rasgos identificatorios

un número mayorun número menorcuando se visualiza con ls –l, muestra b como primer caracter

124

block devices$ls –l /dev/hdabrw-rw---- 1 root disk 3, 0 May 5 1998 /dev/hda

b al principio indica que se trata de un block device3 es el número mayor0 es el número menorEl número mayor del block device identifica al device driver. Cuando se accede a un archivo el número menor se pasa al device driver como parámetro diciéndole cual es el dispositivo que se accede.Si se disponen de 2 ports, que comparten el mismo device driver o sea tendrán el mismo número mayor, pero cada port serial tendrá un único número menor.

Page 32: Linux- Comandos

32

125

character device

Son archivos especiales que permiten acceder a determinados dispositivos a través del filesystem.

Los dispositivos de bloques se comunican mediante grandes bloques, mientras que los de caracter lo hacen de un caracter por vez.

Un disco rígido es un dispositivo de bloque

Un modem es un dispositivo de caracter

126

character device

Idem a los dispositivos de bloques, empiezan en

vez de con una b de bloques con una c de caracter

Poseen un número mayor y un número menor que

cumple el mismo rol que en los dispositivos de

bloques.

127

findPermite ubicar un archivo basado en diferentes criterios.Tiene muchas opciones (recomendación leer el man find)Para encontrar todos los archivos en /tmp que no se accedieron en los últimos 7 días$find /tmp –atime 7 –printEncontrar todos los archivos en /usr/src cuyos nombres son core y borrarlos$find /usr/src –name core –exec rmEncontrar todos los archivos en /home que terminen en .jpg y sean mayores a 100K en tamaño$find /home –name “*.jpg” –size 100k

128

el parámetro exec

Uno de las parámetros más utiles para find es –exec.

Este le permite a find ejecutar un comando sobre cualquier archivo encontrado.

El nombre del archivo se pasa al comando utilizando el string “{}”, y al fin del comando se coloca un \.

Buscar el string ‘tcp’ en todos los archivos en /usr/include/netinet utilizando grep

$find /usr/include/netinet –name “*.h” –exec grp ‘tcp’ {} \; -print

Page 33: Linux- Comandos

33

129

dd copiar y convertir un archivoLee el contenido de un archivo y lo envía a otro archivo.Su diferencia con cp es que realiza conversiones al vuelo (on-the-fly) y acepta datos desde una cinta o floppy u otro dispositivo.Cuando dd accede a un dispositivo, no asume nada acerca del filesystem, y coloca los datos en un formato crudo (raw format)dd se utiliza para generar imagenes de discos aún cuando el disco tenga un formato diferente.Para generar una imagen de un floppy (especialmente útil cuando tiene formatos diferentes)

$dd if=/dev/fd0 of=/tmp/floppy_imagedonde if infile y of outfile

130

gzipgzip no comparte formato de archivo ni con PKzip o WinZip; sin embargo, WinZip puede descomprimir archivos comprimidos con gzip.compress era el comando para comprimir archivos tradicionalmente en UNIX, pero alguién lo patentó, de modo tal que el GLP, no pudo aplicarse a él.Para reemplazarlo se creó el gzip, que resulto con un algoritmo de comprensión mejor que el compress.Permite descomprimir archivos comprimidos con compress

131

gzipGeneralmente los archivos comprimidos con gzip tienen una extensión .gz, mientras que los comprimidos con compress .zgzip lo comprime sobre sí mismo al archivoPara comprimir un archivo

$gzip miarchivoPara descomprimirlo

$gzip –d miarchivo.gzPara comprimir varios archivos utilizando la mejor comprensión

$gzip –9 *.html

132

tar

El tar combina múltiples archivos en uno sólo.

Permite seleccionar que herramienta de comprensión se va a utilizar

Permite leer y escribir en dispositivos tal como lo hace dd.

Es un buena herramienta para realizar backups en cintas.

Page 34: Linux- Comandos

34

133

tape archiver

$ tar –cf apache.tar /usr/src/apache

crea (-c) un archivo apache.tar (-f ) conteniendo todos los archivos de /usr/src/apache

Crear un archivo llamado apache.tar con todos los archivos de /usr/src/apache, pero mostrando lo que sucede mientras se realiza

$tar –cvf apache.tar /usr/src/apache

134

tarCrear un archivo comprimido con gzip llamándolo apache.tar.gz que contenga todos los archivos de /usr/src/apache, y que muestre lo que realiza mientras se ejecuta$tar –cvzf apache.tar.gz /usr/src/apachela opción –z es para que utilize el gzip como programa para comprimir el archivo.Para crear un archivo en un floppy$tar –cvzf /dev/fd0 /usr/src/apachePara recuperar la información guardada en un diskette$tar –xvzf /dev/fd0desde ya lo recupera donde uno está parado en la estructura de directorios.

135

whichBusca en el path completo para encontrar el archivo especificado en la línea de comando.Si el archivo se encuentra, muestra el path del mismo$which lsEl which busca sólo en el path, mientras que el find lo hace desde donde se le indicaEl which por el motivo anterior es más rápido, aunque más limitado

136

whereis

Busca en el path del usuario y muestra el nombre

del archivo y su path absoluto

$ whereis grep

Page 35: Linux- Comandos

35

137

syncComo se dispone de una cache de disco para mejorar la eficiencia, implica que no siempre lo que se mando a escribir a disco se realizóPara planificar que la cache de disco escribe sobre el disco se utiliza el comando syncSi sync detecta que la escritura de la cache ya se planificó, el kernel de inmediato baja la información a disco.Para asegurarse que la cache de disco sea flusheada$sync; sync

138

unameEn el caso en que uno estuviera conectado remotamente a diversos servidores, puede ocurrir que no sepa en que servidor está (algo parecido a los directorios)También es útil para los scripts shell, ya que se puede variar el path de acuerdo al servidor

todo lo anterior-a

versión del sistema operativo-v

nombre del sistema operativo-s

muestra el número de release del SO-r

muestra el nombre del hostname-n

muestra el tipo de hardware de la máquina (i686 para el Pentium Pro)-m

DescripciónOpción

139

unamePara obtener el nombre del sistema operativo y release del mismo$uname –s –rLa opción –s parece no tener sentido, pero es muy útil cuando hay mezcla de sistemas operativos trabajando en las workstations, en una workstation SGI devuelve IRIX, mientras que en un SUN devuelve SunOS.Es muy útil en los scripts que deben trabajar en diferentes entornos de UNIX

140

suUna vez que uno se logueo, si desea cambiar de identidad, o sea loguearse como otro usuario no se necesita salir y volver a loguearse, simplemente se cambia de usuarioEl su sin ningún parámetro intenta conectarse como superusuario.Cuando se le pasa un parámetro ese tiene que ser el identificador de un usuario del sistema.$su pepe$su – pepeEl – del último comando informa que se loguee corriendo el login script que le corresponde a dicho usuario.