SlideShare una empresa de Scribd logo
CURSO BÁSICO
CURSO BÁSICO
DE LINUX
DE LINUX
SISTEMA OPERATIVO UNIX
Sistema Operativo UNIX Curso básico de Linux 2 de 59
Comandos UNIX
Comandos UNIX
$ comando opciones argumentos
 Las opciones modifican el funcionamiento del comando.
Precedidas por un guión (normalmente).
 Argumento es “aquello” sobre lo que recae la acción del
comando.
Comando con 2 opciones:
cmd –bc (sin espacio entre las opciones)
FORMATO DE LOS COMANDOS
Sistema Operativo UNIX Curso básico de Linux 3 de 59
Comandos UNIX
Comandos UNIX
NAME
date - print or set the system date and time
SYNOPSIS
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION
Display the current time in the given FORMAT, or set the system date.
%a, %A locale's weekday name %b, %B locale's month name
%d day of month %m month
%y, %Y year %D date (mm/dd/yy)
%M minute %S seconds
%H, %I, %k, %l hour (00..23)
COMANDO DATE
Sistema Operativo UNIX Curso básico de Linux 4 de 59
Comandos UNIX
Comandos UNIX
NAME
who - show who is logged on
SYNOPSIS
who [OPTION]... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-H, --heading print line of column headings
-i, -u, --idle add user idle time as HOURS:MINUTES, . or old
-m only hostname and user associated with stdin
If FILE is not specified, use /var/run/utmp.
If ARG1 ARG2 given, -m presumed: `am i' or `mom likes' are usual.
COMANDO WHO
Sistema Operativo UNIX Curso básico de Linux 5 de 59
Comandos UNIX
Comandos UNIX
NAME
man - format and display the on-line manual pages
SYNOPSIS
man [-S section_list] [section] name ...
DESCRIPTION
man formats and displays the on-line manual pages. If you
specify section, man only looks in that section of the
manual. name is normally the name of the manual page,
which is typically the name of a command, function, or
file.
COMANDO MAN
Sistema Operativo UNIX Curso básico de Linux 6 de 59
Comandos UNIX
Comandos UNIX
NAME
echo - display a line of text
SYNOPSIS
echo [OPTION]... [STRING]...
DESCRIPTION
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of the backslash-escaped characters
listed below
-E disable interpretation of those sequences in STRINGs
--help display this help and exit (should be alone)
--version output version information and exit (should be alone)
COMANDO ECHO
Sistema Operativo UNIX Curso básico de Linux 7 de 59
Directorios
Directorios
 El directorio raíz /: directorio del que cuelga todo el sistema de
ficheros. No tiene padre.
 Directorio login o directorio de acceso: aquel directorio al cual va a
parar un usuario cuando accede al sistema.
 Directorio actual: directorio en el que un usuario está situado en un
momento determinado. Su nombre absoluto se representa por el símbolo
..
 Directorio padre: cada directorio cuelga directamente de otro (salvo
el /) que es su directorio padre. El nombre absoluto del directorio
padre del directorio actual se representa por ...
DIRECTORIOS ESPECIALES
Sistema Operativo UNIX Curso básico de Linux 8 de 59
Comandos UNIX
Comandos UNIX
NAME
cd - change the current directory
SYNOPSIS
cd [-LP] [dir]
DESCRIPTION
Change the current directory to dir. The variable HOME is the
default
dir.
COMANDO CD
Sistema Operativo UNIX Curso básico de Linux 9 de 59
Comandos UNIX
Comandos UNIX
NAME
pwd - print the pathname
SYNOPSIS
pwd [-LP]
DESCRIPTION
Print the absolute pathname of the current working directory.
COMANDO PWD
Sistema Operativo UNIX Curso básico de Linux 10 de 59
Comandos UNIX
Comandos UNIX
NAME
mkdir - make directories
SYNOPSIS
mkdir [OPTION] DIRECTORY...
DESCRIPTION
Create the DIRECTORY(ies), if they do not already exist.
-m, --mode=MODE
set permission mode (as in chmod), not rwxrwxrwx -
umask
COMANDO MKDIR
Sistema Operativo UNIX Curso básico de Linux 11 de 59
Comandos UNIX
Comandos UNIX
NAME
rmdir - remove empty directories
SYNOPSIS
rmdir [OPTION]... DIRECTORY...
DESCRIPTION
Remove the DIRECTORY(ies), if they are empty.
COMANDO RMDIR
Sistema Operativo UNIX Curso básico de Linux 12 de 59
Comandos UNIX
Comandos UNIX
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by
default).
-a, --all do not hide entries starting with .
-l use a long listing format
-R list subdirectories recursively
COMANDO LS
Sistema Operativo UNIX Curso básico de Linux 13 de 59
Comandos UNIX
Comandos UNIX
NAME
cat - concatenate files and print on the standard output
SYNOPSIS
cat [OPTION] [FILE]...
DESCRIPTION
Concatenate FILE(s), or standard input, to standard output.
COMANDO CAT
Sistema Operativo UNIX Curso básico de Linux 14 de 59
Comandos UNIX
Comandos UNIX
NAME
more - file perusal filter for crt viewing
SYNOPSIS
more [-dlfpcsu] [-num] [+/ pattern] [+ linenum] [file ...]
DESCRIPTION
More is a filter for paging through text one screenful at a time.
COMMANDS
h or ? Help
SPACE Display next k lines of text.
q or Q Exit.
b or ^B Skip backwards k screens.
/pattern Search for kth occurrence of regular expression.
COMANDO MORE
Sistema Operativo UNIX Curso básico de Linux 15 de 59
Comandos UNIX
Comandos UNIX
NAME
cp - copy files and directories
SYNOPSIS
cp [OPTION]... SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
-d never follow symbolic links
-i prompt before overwrite
-R copy directories recursively
-u copy only when SOURCE file is newer than the destination
file
COMANDO CP
Sistema Operativo UNIX Curso básico de Linux 16 de 59
Comandos UNIX
Comandos UNIX
NAME
mv - move (rename) files
SYNOPSIS
mv [OPTION]... SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... --target-directory=DIRECTORY SOURCE...
DESCRIPTION
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
-f never prompt before overwriting
-i prompt before overwrite
-u move only older or brand new non-directories
COMANDO MV
Sistema Operativo UNIX Curso básico de Linux 17 de 59
Comandos UNIX
Comandos UNIX
NAME
rm - remove files or directories
SYNOPSIS
rm [OPTION]... FILE...
DESCRIPTION
rm removes each specified file. By default, it does not remove
directories.
OPTIONS
Remove (unlink) the FILE(s).
-f ignore nonexistent files, never prompt
-i prompt before any removal
-r remove the contents of directories recursively
COMANDO RM
Sistema Operativo UNIX Curso básico de Linux 18 de 59
Comandos UNIX
Comandos UNIX
NAME
ln - make links between files
SYNOPSIS
ln [OPTION]... TARGET [LINK_NAME]
DESCRIPTION
Create a link to the specified TARGET with optional
LINK_NAME.
If LINK_NAME is omitted, a link with the same basename as the
TARGET is created in the current directory. Create hard links by
default, symbolic links with --symbolic. When creating hard links,
each
TARGET must exist.
-i prompt whether to remove destinations
-s make symbolic links instead of hard links
COMANDO LN
Sistema Operativo UNIX Curso básico de Linux 19 de 59
Protecciones de ficheros
Protecciones de ficheros
Tres tipos de permisos: lectura, escritura y ejecución.
Tres niveles: propietario, grupo del propietario y resto de los usuarios.
– – – – – – – – – – – – – – – – – – – – – – – – – – –
permisos propietario permisos grupo permisos otros
 Permiso de lectura: para un fichero o directorio, no se puede ver su
contenido.
 Permiso de escritura: para un fichero, no puede modificarse ni borrarse.
Para un directorio, no puede alterarse su contenido. Por tanto, no pueden
borrarse ni añadirse ficheros a él, pero sí a los directorios que cuelgan de él.
 Permiso de ejecución: para un fichero, no puede ser ejecutado. Para un
directorio, no se puede acceder a él. Esta imposibilidad de acceso supone en
la práctica también la negación del permiso de escritura.
Sistema Operativo UNIX Curso básico de Linux 20 de 59
Comandos UNIX
Comandos UNIX
NAME
chmod - change file access permissions
SYNOPSIS
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
DESCRIPTION
chmod changes the permissions of each given file according to mode,
which can be either a symbolic representation of changes to make, or
an octal number representing the bit pattern for the new permissions.
OPTIONS
Change the mode of each FILE to MODE.
-R change files and directories recursively
COMANDO CHMOD
Sistema Operativo UNIX Curso básico de Linux 21 de 59
Comandos UNIX
Comandos UNIX
$ chmod nivel modificación permiso fichero
Nivel de la modificación:
u (propietario)
g (grupo)
o (otros)
Si no se indica, se entiende que la modificación afecta a los 3 niveles.
Tipo de modificación:
+ añadir permiso (dejando los demás como están).
– eliminar permiso (dejando los demás como están).
= asignar sólo los permisos asignados (y eliminando los demás).
Permisos:
r lectura.
w escritura.
x ejecución.
CHMOD: 1ª forma
Sistema Operativo UNIX Curso básico de Linux 22 de 59
Comandos UNIX
Comandos UNIX
$ chmod nivel modificación permiso fichero
Primer argumento: tres cifras con valores ente 0 y 7.
– Primera cifra: permisos del propietario.
– Segunda cifra: permisos del grupo.
– Tercera cifra: permisos de los otros usuarios.
Forma de obtener el número:
r w x
4 2 1
El número obtenido indica la combinación deseada de permisos. Así
el 7 indica todos los permisos, mientras que el 0 significa ningún
permiso.
CHMOD: 2ª forma
Sistema Operativo UNIX Curso básico de Linux 23 de 59
Comandos UNIX
Comandos UNIX
NAME
chown - change file owner and group
SYNOPSIS
chown [OPTION]... OWNER[:[GROUP]] FILE...
chown [OPTION]... :GROUP FILE...
DESCRIPTION
chown changes the user and/or group ownership of each given file,
according to its first non-option argument.
--from=CURRENT_OWNER:CURRENT_GROUP
-R operate on files and directories recursively
COMANDO CHOWN
Sistema Operativo UNIX Curso básico de Linux 24 de 59
Comandos UNIX
Comandos UNIX
NAME
chgrp - change group ownership
SYNOPSIS
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
DESCRIPTION
Change the group membership of each FILE to GROUP.
-R operate on files and directories recursively
COMANDO CHGRP
Sistema Operativo UNIX Curso básico de Linux 25 de 59
Procesos y entorno
Procesos y entorno
• Proceso: toda acción que se lleva a cabo dentro de un sistema UNIX.
• Siempre existe algún proceso en ejecución.
• Proceso shell (o sh): interpreta los comandos que el usuario introduce.
• Un proceso siempre es lanzado desde otro proceso:
 Procesos padre (parent process) y procesos hijo (child process).
• PID: número identificador de los procesos.
 Asignado directamente por el sistema
 Distinto para todos los procesos que se ejecutan simultáneamente
en el sistema.
CONCEPTO DE PROCESO
Sistema Operativo UNIX Curso básico de Linux 26 de 59
Procesos y entorno
Procesos y entorno
• Entorno: conjunto de informaciones básicas necesarias para la
ejecución del proceso.
• Cada proceso debe disponer de su propio entorno para poder ser
lanzado.
• Forma más sencilla de obtener el entorno de un proceso es copiárselo
al padre.
 fork. El fork produce un proceso (que incluye al entorno)
exactamente igual al proceso padre.
• Cuando se ejecute un proceso, internamente se ejecutará una
secuencia fork-exec.
CONCEPTO DE ENTORNO
Sistema Operativo UNIX Curso básico de Linux 27 de 59
Procesos y entorno
Procesos y entorno
ps –ef  lista de procesos ejecutándose en el computador, independientemente
del terminal.
root 118 1 0 Aug 20 ? 0:00 LmSpool
root 123 1 0 Aug 20 ? 0:01 LnMailslot
bcus 4550 2665 10 10:37 55 console 0:00 ps-ef
Ocho campos:
1: Usuario que ordena la ejecución del proceso (UID).
2: Número de identificación del proceso (PID).
3: Número de identificación del proceso padre (PPID).
4: Tiempo de utilización del procesador para reparto de gastos.
5: Fecha u hora de comienzo del proceso.
6: Terminal desde la que se ejecuta el proceso.
7: Tiempo de ejecución del proceso.
8: Nombre del proceso.
VISUALIZACIÓN DE PROCESOS
Sistema Operativo UNIX Curso básico de Linux 28 de 59
Procesos y entorno
Procesos y entorno
• Variable: información a la que se asigna un nombre.
• Las variables existentes en un momento y en un entorno dados
pueden ser de dos tipos:
- Variables de entorno: aquéllas que transmiten el valor (con el mismo
nombre) a los procesos hijo. Contienen informaciones que forman parte
del entorno de un proceso.
- Variables locales: aquéllas que no se transmiten a los procesos hijo.
• Debe quedar claro que las variables de entorno transmiten la
información a los procesos hijo, pero no al revés.
VARIABLES
Sistema Operativo UNIX Curso básico de Linux 29 de 59
Procesos y entorno
Procesos y entorno
• Las variables pueden ser clasificadas también según otro criterio en:
- Variables de sistema: son variables con un nombre y un contenido
específico, que normalmente es común a todos los sistemas UNIX.
Las más habituales son:
 HOME: su contenido es el nombre absoluto del directorio login del usuario.
 PS1: su contenido es el símbolo del prompt (habitualmente el $).
 PATH: su contenido es el conjunto de directorios donde el sistema buscará
los comandos a ejecutar.
 TERM: su contenido es el tipo de terminal que se utiliza.
- Variables de usuario: todas las variables asignadas por el usuario, y
que no tienen un contenido fijo.
VARIABLES
Sistema Operativo UNIX Curso básico de Linux 30 de 59
Procesos y entorno
Procesos y entorno
• Para crear una variable, basta con asignarle un valor de la forma siguiente:
$ VAR=valor
• Cuando se define una variable, ésta no es de “entorno”. Para que lo sea:
$ export VAR VAR1 ...
• export sin argumentos  lista de las variables de entorno
• env  conjunto de variables de entorno junto con su contenido.
• set  valor de todas las variables existentes, ya sean de entorno o locales.
• unset  elimina variable.
$ A=$A$B  asigna a la variable A el contenido que tenía junto con la
variable B o bien la expresión
$ A=$A:b  modifica el contenido de la variable A añadiéndole los
caracteres :b.
VARIABLES
Sistema Operativo UNIX Curso básico de Linux 31 de 59
Programación shell
Programación shell
Metacarácter: carácter que tiene un significado especial.
$: puesto delante de una variable, representa el contenido de esa variable.
*: al lado de algún otro carácter, sustituye a cualquier posible conjunto de
caracteres (salvo el •) que pudiera ir colocado en esa posición. También
representa el símbolo de la multiplicación.
?: análogo a *, pero referido a un sólo carácter, en lugar de a un conjunto.
[]: delimita un conjunto de caracteres (tomados de uno en uno).
-: indica un intervalo de caracteres.
!: indica lo contrario del carácter siguiente.
 (back-slash): antepuesto a otro metacarácter anula el significado especial del
mismo.
METACARACTERES
Sistema Operativo UNIX Curso básico de Linux 32 de 59
Programación shell
Programación shell
Dos tipos:
 Redireccionamiento de salida.
 Redireccionamiento de entrada.
Redireccionamiento de salida: provoca que la salida de un programa vaya a
parar a un fichero en lugar de a la pantalla.
$ PROC > fich
Si el fichero no existe lo crea, pero si existe, BORRARÁ SU CONTENIDO, y lo
sustituirá por la salida del proceso.
Para añadir la salida de un proceso a un fichero ya existente, sin borrar su
contenido:
$ PROC >> fich
Para redireccionar los errores:
$ PROC 2> F1
Redireccionamiento de entrada: menos habitual.
$ mail < F1
REDIRECCIONAMIENTOS
Sistema Operativo UNIX Curso básico de Linux 33 de 59
Programación shell
Programación shell
Pipeline (o pipe): procedimiento por el que se conectan dos procesos, de forma
que la salida del primero pasa a ser la entrada del segundo. El pipe se
representa por el símbolo |:
$ P1|P2
Podemos agrupar el conjunto de procesos:
$ ls > F1
$ more F1
con un pipe:
$ ls|more
Como puede verse, existe una cierta similitud entre el pipe y el
redireccionamiento. Sin embargo, hay dos diferencias fundamentales:
– Un redireccionamiento conecta un proceso con un fichero, mientras que un pipe
conecta dos procesos.
– Un pipe es más rápido que un redireccionamiento, al no existir fichero, con lo que
se evita el acceso a disco (que siempre es lento).
PIPELINES
Sistema Operativo UNIX Curso básico de Linux 34 de 59
Programación shell
Programación shell
• Puede desviarse la salida de un proceso a una variable, asignando a
la variable el nombre del proceso encerrado entre comillas simples
invertidas:
$ VAR=`PROC`
• La variable VAR pasa a tomar el valor de la salida del proceso PROC.
ASIGNACIÓN DE SALIDA DE COMANDOS A
VARIABLES
Sistema Operativo UNIX Curso básico de Linux 35 de 59
Programación shell
Programación shell
COMANDO SORT
• Sirve para ordenar las líneas de un fichero, ya sea alfabéticamente o
numéricamente (en caso de que el contenido sean números).
$ sort [opc] [campo] ficheros
• La ordenación afecta sólo a la salida del comando, es decir, el fichero
a ordenar queda inalterado.
• En caso de que no se proporcione ningún argumento, se ordenará
todo lo que desde ese momento se introduzca a través del teclado,
hasta que se pulsa Ctrl-d.
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 36 de 59
Programación shell
Programación shell
COMANDO GREP
• Sirve para localizar una cadena de caracteres dentro de un fichero o
ficheros dados.
$ grep [opc] cadena ficheros
cadena  cadena de caracteres que debe ser localizada.
ficheros  ficheros donde debe ser localizada la
cadena.
• En caso de que la cadena exista, en pantalla aparecerá la línea
completa en que se halla. Si se han dado varios ficheros para la
localización, además de la línea aparecerá el nombre del fichero.
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 37 de 59
Programación shell
Programación shell
COMANDO WC
• Este comando sirve para contar líneas, palabras y caracteres de un
fichero. Su estructura es:
$ wc [opc] ficheros
si no se indican argumentos, se toma como entrada el teclado.
• La salida por pantalla es el número de líneas, palabras y caracteres del
fichero seguido del nombre del fichero.
• Este comando posee tres opciones:
-l: cuenta sólo líneas.
-w: cuenta sólo palabras.
-c: cuenta sólo caracteres.
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 38 de 59
Programación shell
Programación shell
COMANDO TEE
• Utilizado como filtro.
• Recoge los datos de su entrada, y los pasa a su salida, a la vez que a
la salida standard y al fichero que se indique como argumento.
• No altera en absoluto los datos que recoge:
$ proc1|tee file|proc2
• El comando puede llevar la opción -a, con la cual añade su entrada
al fichero indicado (en lugar de crear el fichero con esa entrada), en
lugar de sobrescribirlo.
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 39 de 59
Programación shell
Programación shell
COMANDO CUT
• Para seleccionar porciones de líneas de un fichero (o de varios).
Estas porciones son enviadas a la pantalla. Sin embargo, el fichero
permanece inalterado.
$ cut [opc] ficheros
• Existen dos posibles funcionamientos de cut:
– Corte por caracteres.
– Corte por campos
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 40 de 59
Programación shell
Programación shell
COMANDO PR
• Similar al cat, si bien su función es mostrar en pantalla el contenido
de un fichero preparado para ser impreso, es decir, con cabecera,
separación de páginas, definición de márgenes, etc.
$ pr [opc] ficheros
• Este comando se utiliza habitualmente en un pipe junto con el
comando lp, que se verá a continuación.
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 41 de 59
Programación shell
Programación shell
COMANDO LP
• Este comando imprime en la impresora el fichero indicado como
argumento. Su estructura es:
$ lp ficheros
• Al ejecutarse, el comando devuelve a la pantalla un número de
trabajo, el correspondiente a ese fichero.
• El comando lp envía los trabajos a la cola de impresión. Por tanto,
la terminal queda disponible para seguir trabajando. El control de la
cola de impresión se hace a través del comando lpstat. Este
comando no utiliza argumentos. Muestra en pantalla la lista de
trabajos en espera de impresión.
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 42 de 59
Programación shell
Programación shell
COMANDO EXPR
• Permite realizar operaciones aritméticas con números enteros.
$ expr num1 signo num2
• La respuesta es obtenida en pantalla. Es importante tener en cuenta que
debe existir un espacio en blanco entre el signo, y los argumentos
num1 y num2, que deben ser valores enteros. El signo será uno de los
siguientes:
+: suma.
-: resta.
*: multiplicación. Precedido de  para eliminar el
metacarácter.
/: división. Precedido de  para eliminar el metacarácter.
%: resto de la división
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 43 de 59
Programación shell
Programación shell
• Para ejecutar varios procesos simultáneamente en una única terminal.
• Se recupera inmediatamente el control de la terminal.
$ proc &
• Lanzar un proceso en background no elimina la salida por pantalla
 deben redireccionarse tanto la salida como la salida de errores.
• Un comando lanzado en background interrumpe su ejecución si el
usuario sale de la sesión  para evitarlo:
$ nohup proceso &
EJECUCIÓN DE PROCESOS EN
BACKGROUND
Sistema Operativo UNIX Curso básico de Linux 44 de 59
Programación shell
Programación shell
• Cuando se utiliza nohup, es obligado redireccionar tanto la salida
como la salida de errores. Si no se hace, el sistema los redirecciona al
fichero nohup.out.
• Comando kill:para abortar la ejecución de un proceso (de
cualquier tipo de proceso, si bien para los background es la única
forma).
$ kill PID
donde PID es el identificador del proceso que desea abortarse.
• Es posible realizar comandos o procesos inmunes al comando
anterior. En estos casos, se utiliza una opción que es:
$ kill -9 PID
EJECUCIÓN DE PROCESOS EN
BACKGROUND
Sistema Operativo UNIX Curso básico de Linux 45 de 59
Programación shell
Programación shell
• La prioridad de un proceso indica la velocidad con que va a ser
ejecutado por parte del sistema.
• Se mide en un rango de 1 a 29, donde 1 es la máxima y 29 es la
mínima prioridad. Normalmente, prioridad 10.
• Un usuario puede disminuir (nunca aumentar) la prioridad de un
proceso.
$ nice -increment proceso
increment  número de 1 a 19. Cuántos niveles sobre
diez va a disminuir la prioridad.
• Si el manager quiere aumentar la prioridad de un proceso, utilizará
un incremento negativo.
PRIORIDAD DE UN PROCESO
Sistema Operativo UNIX Curso básico de Linux 46 de 59
Programación shell
Programación shell
• El código de retorno indica de qué manera se ha ejecutado el proceso.
0: el proceso se ha ejecutado correctamente.
distinto de 0: el proceso ha finalizado con algún tipo de error .
• El valor del código de retorno no se muestra directamente en pantalla,
sino que se halla en la variable ?.
Comandos true y false
• Estos dos comandos únicamente tienen como función dar un valor al
código de retorno.
• El comando true da un valor 0 al código de retorno. El comando
false da el valor de 255 al código de retorno
CÓDIGO DE RETORNO
Sistema Operativo UNIX Curso básico de Linux 47 de 59
Programación shell
Programación shell
• Para evaluar expresiones y generar un código de retorno.
• No produce respuesta en la pantalla.
• Si la expresión evaluada es correcta, el código de retorno será 0. De
lo contrario será un valor distinto de 0 (habitualmente 1).
• Los argumentos sobre los que trabaja el comando test son ficheros,
números enteros y cadenas de caracteres.
• Todas las evaluaciones (tanto para ficheros, números o caracteres)
pueden combinarse a través de uniones and (-a) y or (-o).
COMANDO TEST
Sistema Operativo UNIX Curso básico de Linux 48 de 59
Programación shell
Programación shell
El comando test con ficheros como argumentos
• Cuando los argumentos utilizados son ficheros, el comando test se utiliza
para evaluar la situación de los mismos.
-f: el argumento es un fichero ordinario (no directorio ni device).
-c: el argumento es un fichero device character.
-b: el argumento es un fichero device bloque.
-d: el argumento es un directorio ?.
-s: el argumento es un fichero y no está vacío, o es un directorio.
-r: el argumento tiene permiso de lectura (para el usuario que lo
evalúa).
-w: el argumento tiene permiso de escritura (para el usuario que lo
evalúa).
-x: el argumento tiene permiso de ejecución (para el usuario que lo
evalúa).
COMANDO TEST
Sistema Operativo UNIX Curso básico de Linux 49 de 59
Programación shell
Programación shell
El comando test con números o caracteres como argumentos
• Para determinar la veracidad de una expresión lógica. Las evaluaciones que
pueden efectuarse son:
• Para evaluaciones no numéricas:
a = b compara si las cadenas a y b son ¡guales.
a != b compara si las cadenas a y b son distintas.
a compara si la cadena a no es el carácter nulo.
-z a compara si la longitud de a es cero.
-n a compara si la longitud de a es distinta de cero.
• Para comparaciones numéricas:
n1 -eq n2 compara si n1 es igual que n2.
n1 -ne n2 compara si n1 es distinto de n2.
n1 -lt n2 compara si n1 es menor que n2.
n1 -gt n2 compara si n1 es mayor que n2.
n1 -le n2 compara si n1 es menor o igual que n2.
n1 -ge n2 compara si n1 es mayor o igual que n2.
COMANDO TEST
Sistema Operativo UNIX Curso básico de Linux 50 de 59
Ficheros de comandos
Ficheros de comandos
• Un fichero de comandos es un fichero ejecutable creado con un
editor, que contiene comandos o estructuras ejecutables en UNIX,
que actúa a modo de proceso, de forma que cuando se lanza, ejecuta
secuencialmente todos los procesos que contiene en su interior.
• Para ejecutar un fichero de comandos se puede actuar de dos formas:
– Crear una shell hija con el fichero como argumento. Escribimos:
$ sh archivo
– Llamar al comando bash, que interpreta el lenguaje del fichero
ejecutable de manera sh-compatible. Ponemos al principio del fichero !
#/bin/bash. Para ejecutar el archivo le damos permiso y tecleamos:
$ .archivo
Sistema Operativo UNIX Curso básico de Linux 51 de 59
Ficheros de comandos
Ficheros de comandos
• Los ficheros de comandos admiten argumentos.
• Los argumentos de los ficheros de comandos son informaciones que
el usuario aporte.
• Internamente se hace referencia a esos argumentos teniendo en
cuenta su posición. ($1: primer argumento, $2: segundo argumento,
etc.).
• Máximo 9 argumentos. Para usar más DENTRO DEL FICHERO 
comando shift para desplazar la posición de los argumentos.
• Símbolos:
– $0: nombre del fichero de comandos.
– $#: número de argumentos.
– $*: todos los argumentos.
– $$: PID del proceso actual.
ARGUMENTOS EN LOS FICHEROS DE
COMANDOS
Sistema Operativo UNIX Curso básico de Linux 52 de 59
Ficheros de comandos
Ficheros de comandos
• Para recoger información de variables a medida que se va ejecutando el
fichero de comandos  comando read.
• Se detiene la ejecución del fichero de comandos y espera a que se:
introduzca
el valor correspondiente por parte del usuario
read VAR1
• read no lanza ningún mensaje a pantalla  habitual usar delante un
comando echo, que indique al usuario qué información se le está pidiendo.
• Las variables definidas en el interior del fichero de comandos no afectarán a
las ya existentes en el shell (aunque sean de entorno), y al finalizar la
ejecución, no quedará constancia de ellas.
• Si se desea detectar un error en la elaboración de un fichero de comandos:
$ sh –x fich
• Antes de ejecutarse cada comando, se escribirá en pantalla el nombre del
comando a ejecutar.
INTRODUCCIÓN DE DATOS A TRAVÉS DE
VARIABLES
Sistema Operativo UNIX Curso básico de Linux 53 de 59
Ficheros de comandos
Ficheros de comandos
• Se puede finalizar la ejecución de un fichero de comandos en
cualquier momento, sin esperar a que se complete todo el fichero.
• Esto se hace mediante el comando exit.
• En un fichero de comandos su función es abandonar la shell
correspondiente al mismo.
• Se puede dar como argumento a exit, un número comprendido
entre 0 y 255. En este caso, el código de retorno adopta ese valor.
COMANDO EXIT
Sistema Operativo UNIX Curso básico de Linux 54 de 59
Ficheros de comandos
Ficheros de comandos
La construcción if
• Para tomar decisiones basadas en los códigos de retorno.
if
CMD1
then
CMDA
CMDB
fi
• Si el código de retorno no es 0, la ejecución del fichero continúa en el proceso
situado después de fi.
• Anidamiento de sentencias if.
• La construcción if puede utilizarse directamente sobre el shell.
$ if
>
• Al símbolo > se le denomina segundo prompt y su valor reside en la variable
PS2.
ESTRUCTURAS DE PROGRAMACIÓN
Sistema Operativo UNIX Curso básico de Linux 55 de 59
Ficheros de comandos
Ficheros de comandos
La construcción while
• Para generar un ciclo condicionado. La estructura es la siguiente:
while
CMD1
do
CDMA
CMDB
done
• Si el código de retorno de CMD1 no es cero la ejecución continúa en el
proceso siguiente a done.
• Obviamente, si CMD1 es true, puede establecerse un ciclo sin fin.
• Anidamiento de sentencias while.
ESTRUCTURAS DE PROGRAMACIÓN
Sistema Operativo UNIX Curso básico de Linux 56 de 59
Ficheros de comandos
Ficheros de comandos
Comando break
• Para finalizar un ciclo de forma prematura, sin que éste llegue a su fin.
while
CMD1
do
CMDA
CMDB
while
CMDC
do
CMDE
break
done
CMDJ
CMDK
done
CMDX
• break puede llevar un argumento numérico, que indica cuántos ciclos do-
done (incluidos uno dentro de otro) deben saltarse para continuar la
ejecución.
Sistema Operativo UNIX Curso básico de Linux 57 de 59
Ficheros de comandos
Ficheros de comandos
Comando continue
• Interrumpe la ejecución del ciclo pero vuelve a ejecutar el proceso
que condiciona la ejecución del mismo.
while
CMD1
do
CMDA
CMDB
while
CMDC
do
CMDE
continue
done
CMDJ
CMDK
done
CMDX
Sistema Operativo UNIX Curso básico de Linux 58 de 59
Ficheros de comandos
Ficheros de comandos
La construcción for
• Para generar un ciclo, pero un número determinado de veces.
for V in char1 char2 ...
do
CMD1
CMD2
done
• La variable V toma el valor char1 (puede ser un número, un carácter o conjunto
de caracteres o un fichero) y a continuación ejecuta todos los procesos
comprendidos entre do-done.
• A continuación, V torna el siguiente valor de la lista (char2) y vuelve a repetirse
el proceso, y así continúa hasta que V toma el último valor.
• Todo lo dicho para la construcción while es aplicable a for, incluido el
funcionamiento de break y continue.
ESTRUCTURAS DE PROGRAMACIÓN
Sistema Operativo UNIX Curso básico de Linux 59 de 59
Ficheros de comandos
Ficheros de comandos
La construcción case
• Equivalente a un if múltiple.
case CHAR in
modelo 1) (delimitador de modelo)
CMD1
;; (fin de modelo)
modelo 2)
CMD2
;;
modelo n)
CMDN
;;
esac (fin de case, esac es case al revés)
• Se compara la cadena CHAR (normalmente será el contenido de una variable)
con modelos. Si coincide, se ejecutan los procesos siguientes hasta el
símbolo ;;.
• En los modelos de comparación pueden utilizarse metacaracteres (*,?, etc.)
ESTRUCTURAS DE PROGRAMACIÓN

Más contenido relacionado

DOCX
Comandos de uso frecuente
PDF
Intro comandos unix
PPTX
2.7 nombre de archivos y directorios rutas y exploracion de arbol
PPTX
2.7 nombre de archivos y directorios rutas y exploracion de arbol
PDF
Guia basica de comandos ubuntu
ODT
Comandos de ubuntu
PPT
Comandos Linux 1.ppt
PDF
Comandos linux
Comandos de uso frecuente
Intro comandos unix
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
Guia basica de comandos ubuntu
Comandos de ubuntu
Comandos Linux 1.ppt
Comandos linux

Similar a Comados_Basicos_de_Linux_Educacion_u.ppt (20)

DOCX
Comandos básicos ubuntu
PDF
Comandos%20 bsicos
DOCX
Comandos basicos de linux
DOCX
Comandos ubuntu
DOCX
Comandos ubuntu
PDF
Resumen scripts unix
PDF
Unix Command Line Workshop 101
PDF
Tutorial linux
PDF
Tutorial 18pag
DOCX
SISTEMAS OPERATIVOS INFORME 4
PDF
Clase11 (consola linux)
DOCX
Transcripcion yamy
PDF
Pract_1_Comandos_Linux.pdf
PPT
Comandos Basicos De Linux
 
DOCX
todo sobre linux
PDF
Mis comandos favoritos en linux parte 2
PDF
PDF
Comandos basicos linux
PDF
Comando de linux
Comandos básicos ubuntu
Comandos%20 bsicos
Comandos basicos de linux
Comandos ubuntu
Comandos ubuntu
Resumen scripts unix
Unix Command Line Workshop 101
Tutorial linux
Tutorial 18pag
SISTEMAS OPERATIVOS INFORME 4
Clase11 (consola linux)
Transcripcion yamy
Pract_1_Comandos_Linux.pdf
Comandos Basicos De Linux
 
todo sobre linux
Mis comandos favoritos en linux parte 2
Comandos basicos linux
Comando de linux
Publicidad

Último (20)

PDF
Unidad de Aprendizaje 5 de Matematica 2do Secundaria Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Atencion prenatal. Ginecologia y obsetricia
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
informe tipos de Informatica perfiles profesionales _pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
IPERC...................................
PDF
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
Unidad de Aprendizaje 5 de Matematica 2do Secundaria Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Atencion prenatal. Ginecologia y obsetricia
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
informe tipos de Informatica perfiles profesionales _pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Doctrina 1 Soteriologuia y sus diferente
IPERC...................................
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Manual de Convivencia 2025 actualizado a las normas vigentes
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
Publicidad

Comados_Basicos_de_Linux_Educacion_u.ppt

  • 1. CURSO BÁSICO CURSO BÁSICO DE LINUX DE LINUX SISTEMA OPERATIVO UNIX
  • 2. Sistema Operativo UNIX Curso básico de Linux 2 de 59 Comandos UNIX Comandos UNIX $ comando opciones argumentos  Las opciones modifican el funcionamiento del comando. Precedidas por un guión (normalmente).  Argumento es “aquello” sobre lo que recae la acción del comando. Comando con 2 opciones: cmd –bc (sin espacio entre las opciones) FORMATO DE LOS COMANDOS
  • 3. Sistema Operativo UNIX Curso básico de Linux 3 de 59 Comandos UNIX Comandos UNIX NAME date - print or set the system date and time SYNOPSIS date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] DESCRIPTION Display the current time in the given FORMAT, or set the system date. %a, %A locale's weekday name %b, %B locale's month name %d day of month %m month %y, %Y year %D date (mm/dd/yy) %M minute %S seconds %H, %I, %k, %l hour (00..23) COMANDO DATE
  • 4. Sistema Operativo UNIX Curso básico de Linux 4 de 59 Comandos UNIX Comandos UNIX NAME who - show who is logged on SYNOPSIS who [OPTION]... [ FILE | ARG1 ARG2 ] DESCRIPTION -H, --heading print line of column headings -i, -u, --idle add user idle time as HOURS:MINUTES, . or old -m only hostname and user associated with stdin If FILE is not specified, use /var/run/utmp. If ARG1 ARG2 given, -m presumed: `am i' or `mom likes' are usual. COMANDO WHO
  • 5. Sistema Operativo UNIX Curso básico de Linux 5 de 59 Comandos UNIX Comandos UNIX NAME man - format and display the on-line manual pages SYNOPSIS man [-S section_list] [section] name ... DESCRIPTION man formats and displays the on-line manual pages. If you specify section, man only looks in that section of the manual. name is normally the name of the manual page, which is typically the name of a command, function, or file. COMANDO MAN
  • 6. Sistema Operativo UNIX Curso básico de Linux 6 de 59 Comandos UNIX Comandos UNIX NAME echo - display a line of text SYNOPSIS echo [OPTION]... [STRING]... DESCRIPTION Echo the STRING(s) to standard output. -n do not output the trailing newline -e enable interpretation of the backslash-escaped characters listed below -E disable interpretation of those sequences in STRINGs --help display this help and exit (should be alone) --version output version information and exit (should be alone) COMANDO ECHO
  • 7. Sistema Operativo UNIX Curso básico de Linux 7 de 59 Directorios Directorios  El directorio raíz /: directorio del que cuelga todo el sistema de ficheros. No tiene padre.  Directorio login o directorio de acceso: aquel directorio al cual va a parar un usuario cuando accede al sistema.  Directorio actual: directorio en el que un usuario está situado en un momento determinado. Su nombre absoluto se representa por el símbolo ..  Directorio padre: cada directorio cuelga directamente de otro (salvo el /) que es su directorio padre. El nombre absoluto del directorio padre del directorio actual se representa por ... DIRECTORIOS ESPECIALES
  • 8. Sistema Operativo UNIX Curso básico de Linux 8 de 59 Comandos UNIX Comandos UNIX NAME cd - change the current directory SYNOPSIS cd [-LP] [dir] DESCRIPTION Change the current directory to dir. The variable HOME is the default dir. COMANDO CD
  • 9. Sistema Operativo UNIX Curso básico de Linux 9 de 59 Comandos UNIX Comandos UNIX NAME pwd - print the pathname SYNOPSIS pwd [-LP] DESCRIPTION Print the absolute pathname of the current working directory. COMANDO PWD
  • 10. Sistema Operativo UNIX Curso básico de Linux 10 de 59 Comandos UNIX Comandos UNIX NAME mkdir - make directories SYNOPSIS mkdir [OPTION] DIRECTORY... DESCRIPTION Create the DIRECTORY(ies), if they do not already exist. -m, --mode=MODE set permission mode (as in chmod), not rwxrwxrwx - umask COMANDO MKDIR
  • 11. Sistema Operativo UNIX Curso básico de Linux 11 de 59 Comandos UNIX Comandos UNIX NAME rmdir - remove empty directories SYNOPSIS rmdir [OPTION]... DIRECTORY... DESCRIPTION Remove the DIRECTORY(ies), if they are empty. COMANDO RMDIR
  • 12. Sistema Operativo UNIX Curso básico de Linux 12 de 59 Comandos UNIX Comandos UNIX NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). -a, --all do not hide entries starting with . -l use a long listing format -R list subdirectories recursively COMANDO LS
  • 13. Sistema Operativo UNIX Curso básico de Linux 13 de 59 Comandos UNIX Comandos UNIX NAME cat - concatenate files and print on the standard output SYNOPSIS cat [OPTION] [FILE]... DESCRIPTION Concatenate FILE(s), or standard input, to standard output. COMANDO CAT
  • 14. Sistema Operativo UNIX Curso básico de Linux 14 de 59 Comandos UNIX Comandos UNIX NAME more - file perusal filter for crt viewing SYNOPSIS more [-dlfpcsu] [-num] [+/ pattern] [+ linenum] [file ...] DESCRIPTION More is a filter for paging through text one screenful at a time. COMMANDS h or ? Help SPACE Display next k lines of text. q or Q Exit. b or ^B Skip backwards k screens. /pattern Search for kth occurrence of regular expression. COMANDO MORE
  • 15. Sistema Operativo UNIX Curso básico de Linux 15 de 59 Comandos UNIX Comandos UNIX NAME cp - copy files and directories SYNOPSIS cp [OPTION]... SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY DESCRIPTION Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. -d never follow symbolic links -i prompt before overwrite -R copy directories recursively -u copy only when SOURCE file is newer than the destination file COMANDO CP
  • 16. Sistema Operativo UNIX Curso básico de Linux 16 de 59 Comandos UNIX Comandos UNIX NAME mv - move (rename) files SYNOPSIS mv [OPTION]... SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... --target-directory=DIRECTORY SOURCE... DESCRIPTION Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. -f never prompt before overwriting -i prompt before overwrite -u move only older or brand new non-directories COMANDO MV
  • 17. Sistema Operativo UNIX Curso básico de Linux 17 de 59 Comandos UNIX Comandos UNIX NAME rm - remove files or directories SYNOPSIS rm [OPTION]... FILE... DESCRIPTION rm removes each specified file. By default, it does not remove directories. OPTIONS Remove (unlink) the FILE(s). -f ignore nonexistent files, never prompt -i prompt before any removal -r remove the contents of directories recursively COMANDO RM
  • 18. Sistema Operativo UNIX Curso básico de Linux 18 de 59 Comandos UNIX Comandos UNIX NAME ln - make links between files SYNOPSIS ln [OPTION]... TARGET [LINK_NAME] DESCRIPTION Create a link to the specified TARGET with optional LINK_NAME. If LINK_NAME is omitted, a link with the same basename as the TARGET is created in the current directory. Create hard links by default, symbolic links with --symbolic. When creating hard links, each TARGET must exist. -i prompt whether to remove destinations -s make symbolic links instead of hard links COMANDO LN
  • 19. Sistema Operativo UNIX Curso básico de Linux 19 de 59 Protecciones de ficheros Protecciones de ficheros Tres tipos de permisos: lectura, escritura y ejecución. Tres niveles: propietario, grupo del propietario y resto de los usuarios. – – – – – – – – – – – – – – – – – – – – – – – – – – – permisos propietario permisos grupo permisos otros  Permiso de lectura: para un fichero o directorio, no se puede ver su contenido.  Permiso de escritura: para un fichero, no puede modificarse ni borrarse. Para un directorio, no puede alterarse su contenido. Por tanto, no pueden borrarse ni añadirse ficheros a él, pero sí a los directorios que cuelgan de él.  Permiso de ejecución: para un fichero, no puede ser ejecutado. Para un directorio, no se puede acceder a él. Esta imposibilidad de acceso supone en la práctica también la negación del permiso de escritura.
  • 20. Sistema Operativo UNIX Curso básico de Linux 20 de 59 Comandos UNIX Comandos UNIX NAME chmod - change file access permissions SYNOPSIS chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... DESCRIPTION chmod changes the permissions of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new permissions. OPTIONS Change the mode of each FILE to MODE. -R change files and directories recursively COMANDO CHMOD
  • 21. Sistema Operativo UNIX Curso básico de Linux 21 de 59 Comandos UNIX Comandos UNIX $ chmod nivel modificación permiso fichero Nivel de la modificación: u (propietario) g (grupo) o (otros) Si no se indica, se entiende que la modificación afecta a los 3 niveles. Tipo de modificación: + añadir permiso (dejando los demás como están). – eliminar permiso (dejando los demás como están). = asignar sólo los permisos asignados (y eliminando los demás). Permisos: r lectura. w escritura. x ejecución. CHMOD: 1ª forma
  • 22. Sistema Operativo UNIX Curso básico de Linux 22 de 59 Comandos UNIX Comandos UNIX $ chmod nivel modificación permiso fichero Primer argumento: tres cifras con valores ente 0 y 7. – Primera cifra: permisos del propietario. – Segunda cifra: permisos del grupo. – Tercera cifra: permisos de los otros usuarios. Forma de obtener el número: r w x 4 2 1 El número obtenido indica la combinación deseada de permisos. Así el 7 indica todos los permisos, mientras que el 0 significa ningún permiso. CHMOD: 2ª forma
  • 23. Sistema Operativo UNIX Curso básico de Linux 23 de 59 Comandos UNIX Comandos UNIX NAME chown - change file owner and group SYNOPSIS chown [OPTION]... OWNER[:[GROUP]] FILE... chown [OPTION]... :GROUP FILE... DESCRIPTION chown changes the user and/or group ownership of each given file, according to its first non-option argument. --from=CURRENT_OWNER:CURRENT_GROUP -R operate on files and directories recursively COMANDO CHOWN
  • 24. Sistema Operativo UNIX Curso básico de Linux 24 de 59 Comandos UNIX Comandos UNIX NAME chgrp - change group ownership SYNOPSIS chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... DESCRIPTION Change the group membership of each FILE to GROUP. -R operate on files and directories recursively COMANDO CHGRP
  • 25. Sistema Operativo UNIX Curso básico de Linux 25 de 59 Procesos y entorno Procesos y entorno • Proceso: toda acción que se lleva a cabo dentro de un sistema UNIX. • Siempre existe algún proceso en ejecución. • Proceso shell (o sh): interpreta los comandos que el usuario introduce. • Un proceso siempre es lanzado desde otro proceso:  Procesos padre (parent process) y procesos hijo (child process). • PID: número identificador de los procesos.  Asignado directamente por el sistema  Distinto para todos los procesos que se ejecutan simultáneamente en el sistema. CONCEPTO DE PROCESO
  • 26. Sistema Operativo UNIX Curso básico de Linux 26 de 59 Procesos y entorno Procesos y entorno • Entorno: conjunto de informaciones básicas necesarias para la ejecución del proceso. • Cada proceso debe disponer de su propio entorno para poder ser lanzado. • Forma más sencilla de obtener el entorno de un proceso es copiárselo al padre.  fork. El fork produce un proceso (que incluye al entorno) exactamente igual al proceso padre. • Cuando se ejecute un proceso, internamente se ejecutará una secuencia fork-exec. CONCEPTO DE ENTORNO
  • 27. Sistema Operativo UNIX Curso básico de Linux 27 de 59 Procesos y entorno Procesos y entorno ps –ef  lista de procesos ejecutándose en el computador, independientemente del terminal. root 118 1 0 Aug 20 ? 0:00 LmSpool root 123 1 0 Aug 20 ? 0:01 LnMailslot bcus 4550 2665 10 10:37 55 console 0:00 ps-ef Ocho campos: 1: Usuario que ordena la ejecución del proceso (UID). 2: Número de identificación del proceso (PID). 3: Número de identificación del proceso padre (PPID). 4: Tiempo de utilización del procesador para reparto de gastos. 5: Fecha u hora de comienzo del proceso. 6: Terminal desde la que se ejecuta el proceso. 7: Tiempo de ejecución del proceso. 8: Nombre del proceso. VISUALIZACIÓN DE PROCESOS
  • 28. Sistema Operativo UNIX Curso básico de Linux 28 de 59 Procesos y entorno Procesos y entorno • Variable: información a la que se asigna un nombre. • Las variables existentes en un momento y en un entorno dados pueden ser de dos tipos: - Variables de entorno: aquéllas que transmiten el valor (con el mismo nombre) a los procesos hijo. Contienen informaciones que forman parte del entorno de un proceso. - Variables locales: aquéllas que no se transmiten a los procesos hijo. • Debe quedar claro que las variables de entorno transmiten la información a los procesos hijo, pero no al revés. VARIABLES
  • 29. Sistema Operativo UNIX Curso básico de Linux 29 de 59 Procesos y entorno Procesos y entorno • Las variables pueden ser clasificadas también según otro criterio en: - Variables de sistema: son variables con un nombre y un contenido específico, que normalmente es común a todos los sistemas UNIX. Las más habituales son:  HOME: su contenido es el nombre absoluto del directorio login del usuario.  PS1: su contenido es el símbolo del prompt (habitualmente el $).  PATH: su contenido es el conjunto de directorios donde el sistema buscará los comandos a ejecutar.  TERM: su contenido es el tipo de terminal que se utiliza. - Variables de usuario: todas las variables asignadas por el usuario, y que no tienen un contenido fijo. VARIABLES
  • 30. Sistema Operativo UNIX Curso básico de Linux 30 de 59 Procesos y entorno Procesos y entorno • Para crear una variable, basta con asignarle un valor de la forma siguiente: $ VAR=valor • Cuando se define una variable, ésta no es de “entorno”. Para que lo sea: $ export VAR VAR1 ... • export sin argumentos  lista de las variables de entorno • env  conjunto de variables de entorno junto con su contenido. • set  valor de todas las variables existentes, ya sean de entorno o locales. • unset  elimina variable. $ A=$A$B  asigna a la variable A el contenido que tenía junto con la variable B o bien la expresión $ A=$A:b  modifica el contenido de la variable A añadiéndole los caracteres :b. VARIABLES
  • 31. Sistema Operativo UNIX Curso básico de Linux 31 de 59 Programación shell Programación shell Metacarácter: carácter que tiene un significado especial. $: puesto delante de una variable, representa el contenido de esa variable. *: al lado de algún otro carácter, sustituye a cualquier posible conjunto de caracteres (salvo el •) que pudiera ir colocado en esa posición. También representa el símbolo de la multiplicación. ?: análogo a *, pero referido a un sólo carácter, en lugar de a un conjunto. []: delimita un conjunto de caracteres (tomados de uno en uno). -: indica un intervalo de caracteres. !: indica lo contrario del carácter siguiente. (back-slash): antepuesto a otro metacarácter anula el significado especial del mismo. METACARACTERES
  • 32. Sistema Operativo UNIX Curso básico de Linux 32 de 59 Programación shell Programación shell Dos tipos:  Redireccionamiento de salida.  Redireccionamiento de entrada. Redireccionamiento de salida: provoca que la salida de un programa vaya a parar a un fichero en lugar de a la pantalla. $ PROC > fich Si el fichero no existe lo crea, pero si existe, BORRARÁ SU CONTENIDO, y lo sustituirá por la salida del proceso. Para añadir la salida de un proceso a un fichero ya existente, sin borrar su contenido: $ PROC >> fich Para redireccionar los errores: $ PROC 2> F1 Redireccionamiento de entrada: menos habitual. $ mail < F1 REDIRECCIONAMIENTOS
  • 33. Sistema Operativo UNIX Curso básico de Linux 33 de 59 Programación shell Programación shell Pipeline (o pipe): procedimiento por el que se conectan dos procesos, de forma que la salida del primero pasa a ser la entrada del segundo. El pipe se representa por el símbolo |: $ P1|P2 Podemos agrupar el conjunto de procesos: $ ls > F1 $ more F1 con un pipe: $ ls|more Como puede verse, existe una cierta similitud entre el pipe y el redireccionamiento. Sin embargo, hay dos diferencias fundamentales: – Un redireccionamiento conecta un proceso con un fichero, mientras que un pipe conecta dos procesos. – Un pipe es más rápido que un redireccionamiento, al no existir fichero, con lo que se evita el acceso a disco (que siempre es lento). PIPELINES
  • 34. Sistema Operativo UNIX Curso básico de Linux 34 de 59 Programación shell Programación shell • Puede desviarse la salida de un proceso a una variable, asignando a la variable el nombre del proceso encerrado entre comillas simples invertidas: $ VAR=`PROC` • La variable VAR pasa a tomar el valor de la salida del proceso PROC. ASIGNACIÓN DE SALIDA DE COMANDOS A VARIABLES
  • 35. Sistema Operativo UNIX Curso básico de Linux 35 de 59 Programación shell Programación shell COMANDO SORT • Sirve para ordenar las líneas de un fichero, ya sea alfabéticamente o numéricamente (en caso de que el contenido sean números). $ sort [opc] [campo] ficheros • La ordenación afecta sólo a la salida del comando, es decir, el fichero a ordenar queda inalterado. • En caso de que no se proporcione ningún argumento, se ordenará todo lo que desde ese momento se introduzca a través del teclado, hasta que se pulsa Ctrl-d. COMANDOS
  • 36. Sistema Operativo UNIX Curso básico de Linux 36 de 59 Programación shell Programación shell COMANDO GREP • Sirve para localizar una cadena de caracteres dentro de un fichero o ficheros dados. $ grep [opc] cadena ficheros cadena  cadena de caracteres que debe ser localizada. ficheros  ficheros donde debe ser localizada la cadena. • En caso de que la cadena exista, en pantalla aparecerá la línea completa en que se halla. Si se han dado varios ficheros para la localización, además de la línea aparecerá el nombre del fichero. COMANDOS
  • 37. Sistema Operativo UNIX Curso básico de Linux 37 de 59 Programación shell Programación shell COMANDO WC • Este comando sirve para contar líneas, palabras y caracteres de un fichero. Su estructura es: $ wc [opc] ficheros si no se indican argumentos, se toma como entrada el teclado. • La salida por pantalla es el número de líneas, palabras y caracteres del fichero seguido del nombre del fichero. • Este comando posee tres opciones: -l: cuenta sólo líneas. -w: cuenta sólo palabras. -c: cuenta sólo caracteres. COMANDOS
  • 38. Sistema Operativo UNIX Curso básico de Linux 38 de 59 Programación shell Programación shell COMANDO TEE • Utilizado como filtro. • Recoge los datos de su entrada, y los pasa a su salida, a la vez que a la salida standard y al fichero que se indique como argumento. • No altera en absoluto los datos que recoge: $ proc1|tee file|proc2 • El comando puede llevar la opción -a, con la cual añade su entrada al fichero indicado (en lugar de crear el fichero con esa entrada), en lugar de sobrescribirlo. COMANDOS
  • 39. Sistema Operativo UNIX Curso básico de Linux 39 de 59 Programación shell Programación shell COMANDO CUT • Para seleccionar porciones de líneas de un fichero (o de varios). Estas porciones son enviadas a la pantalla. Sin embargo, el fichero permanece inalterado. $ cut [opc] ficheros • Existen dos posibles funcionamientos de cut: – Corte por caracteres. – Corte por campos COMANDOS
  • 40. Sistema Operativo UNIX Curso básico de Linux 40 de 59 Programación shell Programación shell COMANDO PR • Similar al cat, si bien su función es mostrar en pantalla el contenido de un fichero preparado para ser impreso, es decir, con cabecera, separación de páginas, definición de márgenes, etc. $ pr [opc] ficheros • Este comando se utiliza habitualmente en un pipe junto con el comando lp, que se verá a continuación. COMANDOS
  • 41. Sistema Operativo UNIX Curso básico de Linux 41 de 59 Programación shell Programación shell COMANDO LP • Este comando imprime en la impresora el fichero indicado como argumento. Su estructura es: $ lp ficheros • Al ejecutarse, el comando devuelve a la pantalla un número de trabajo, el correspondiente a ese fichero. • El comando lp envía los trabajos a la cola de impresión. Por tanto, la terminal queda disponible para seguir trabajando. El control de la cola de impresión se hace a través del comando lpstat. Este comando no utiliza argumentos. Muestra en pantalla la lista de trabajos en espera de impresión. COMANDOS
  • 42. Sistema Operativo UNIX Curso básico de Linux 42 de 59 Programación shell Programación shell COMANDO EXPR • Permite realizar operaciones aritméticas con números enteros. $ expr num1 signo num2 • La respuesta es obtenida en pantalla. Es importante tener en cuenta que debe existir un espacio en blanco entre el signo, y los argumentos num1 y num2, que deben ser valores enteros. El signo será uno de los siguientes: +: suma. -: resta. *: multiplicación. Precedido de para eliminar el metacarácter. /: división. Precedido de para eliminar el metacarácter. %: resto de la división COMANDOS
  • 43. Sistema Operativo UNIX Curso básico de Linux 43 de 59 Programación shell Programación shell • Para ejecutar varios procesos simultáneamente en una única terminal. • Se recupera inmediatamente el control de la terminal. $ proc & • Lanzar un proceso en background no elimina la salida por pantalla  deben redireccionarse tanto la salida como la salida de errores. • Un comando lanzado en background interrumpe su ejecución si el usuario sale de la sesión  para evitarlo: $ nohup proceso & EJECUCIÓN DE PROCESOS EN BACKGROUND
  • 44. Sistema Operativo UNIX Curso básico de Linux 44 de 59 Programación shell Programación shell • Cuando se utiliza nohup, es obligado redireccionar tanto la salida como la salida de errores. Si no se hace, el sistema los redirecciona al fichero nohup.out. • Comando kill:para abortar la ejecución de un proceso (de cualquier tipo de proceso, si bien para los background es la única forma). $ kill PID donde PID es el identificador del proceso que desea abortarse. • Es posible realizar comandos o procesos inmunes al comando anterior. En estos casos, se utiliza una opción que es: $ kill -9 PID EJECUCIÓN DE PROCESOS EN BACKGROUND
  • 45. Sistema Operativo UNIX Curso básico de Linux 45 de 59 Programación shell Programación shell • La prioridad de un proceso indica la velocidad con que va a ser ejecutado por parte del sistema. • Se mide en un rango de 1 a 29, donde 1 es la máxima y 29 es la mínima prioridad. Normalmente, prioridad 10. • Un usuario puede disminuir (nunca aumentar) la prioridad de un proceso. $ nice -increment proceso increment  número de 1 a 19. Cuántos niveles sobre diez va a disminuir la prioridad. • Si el manager quiere aumentar la prioridad de un proceso, utilizará un incremento negativo. PRIORIDAD DE UN PROCESO
  • 46. Sistema Operativo UNIX Curso básico de Linux 46 de 59 Programación shell Programación shell • El código de retorno indica de qué manera se ha ejecutado el proceso. 0: el proceso se ha ejecutado correctamente. distinto de 0: el proceso ha finalizado con algún tipo de error . • El valor del código de retorno no se muestra directamente en pantalla, sino que se halla en la variable ?. Comandos true y false • Estos dos comandos únicamente tienen como función dar un valor al código de retorno. • El comando true da un valor 0 al código de retorno. El comando false da el valor de 255 al código de retorno CÓDIGO DE RETORNO
  • 47. Sistema Operativo UNIX Curso básico de Linux 47 de 59 Programación shell Programación shell • Para evaluar expresiones y generar un código de retorno. • No produce respuesta en la pantalla. • Si la expresión evaluada es correcta, el código de retorno será 0. De lo contrario será un valor distinto de 0 (habitualmente 1). • Los argumentos sobre los que trabaja el comando test son ficheros, números enteros y cadenas de caracteres. • Todas las evaluaciones (tanto para ficheros, números o caracteres) pueden combinarse a través de uniones and (-a) y or (-o). COMANDO TEST
  • 48. Sistema Operativo UNIX Curso básico de Linux 48 de 59 Programación shell Programación shell El comando test con ficheros como argumentos • Cuando los argumentos utilizados son ficheros, el comando test se utiliza para evaluar la situación de los mismos. -f: el argumento es un fichero ordinario (no directorio ni device). -c: el argumento es un fichero device character. -b: el argumento es un fichero device bloque. -d: el argumento es un directorio ?. -s: el argumento es un fichero y no está vacío, o es un directorio. -r: el argumento tiene permiso de lectura (para el usuario que lo evalúa). -w: el argumento tiene permiso de escritura (para el usuario que lo evalúa). -x: el argumento tiene permiso de ejecución (para el usuario que lo evalúa). COMANDO TEST
  • 49. Sistema Operativo UNIX Curso básico de Linux 49 de 59 Programación shell Programación shell El comando test con números o caracteres como argumentos • Para determinar la veracidad de una expresión lógica. Las evaluaciones que pueden efectuarse son: • Para evaluaciones no numéricas: a = b compara si las cadenas a y b son ¡guales. a != b compara si las cadenas a y b son distintas. a compara si la cadena a no es el carácter nulo. -z a compara si la longitud de a es cero. -n a compara si la longitud de a es distinta de cero. • Para comparaciones numéricas: n1 -eq n2 compara si n1 es igual que n2. n1 -ne n2 compara si n1 es distinto de n2. n1 -lt n2 compara si n1 es menor que n2. n1 -gt n2 compara si n1 es mayor que n2. n1 -le n2 compara si n1 es menor o igual que n2. n1 -ge n2 compara si n1 es mayor o igual que n2. COMANDO TEST
  • 50. Sistema Operativo UNIX Curso básico de Linux 50 de 59 Ficheros de comandos Ficheros de comandos • Un fichero de comandos es un fichero ejecutable creado con un editor, que contiene comandos o estructuras ejecutables en UNIX, que actúa a modo de proceso, de forma que cuando se lanza, ejecuta secuencialmente todos los procesos que contiene en su interior. • Para ejecutar un fichero de comandos se puede actuar de dos formas: – Crear una shell hija con el fichero como argumento. Escribimos: $ sh archivo – Llamar al comando bash, que interpreta el lenguaje del fichero ejecutable de manera sh-compatible. Ponemos al principio del fichero ! #/bin/bash. Para ejecutar el archivo le damos permiso y tecleamos: $ .archivo
  • 51. Sistema Operativo UNIX Curso básico de Linux 51 de 59 Ficheros de comandos Ficheros de comandos • Los ficheros de comandos admiten argumentos. • Los argumentos de los ficheros de comandos son informaciones que el usuario aporte. • Internamente se hace referencia a esos argumentos teniendo en cuenta su posición. ($1: primer argumento, $2: segundo argumento, etc.). • Máximo 9 argumentos. Para usar más DENTRO DEL FICHERO  comando shift para desplazar la posición de los argumentos. • Símbolos: – $0: nombre del fichero de comandos. – $#: número de argumentos. – $*: todos los argumentos. – $$: PID del proceso actual. ARGUMENTOS EN LOS FICHEROS DE COMANDOS
  • 52. Sistema Operativo UNIX Curso básico de Linux 52 de 59 Ficheros de comandos Ficheros de comandos • Para recoger información de variables a medida que se va ejecutando el fichero de comandos  comando read. • Se detiene la ejecución del fichero de comandos y espera a que se: introduzca el valor correspondiente por parte del usuario read VAR1 • read no lanza ningún mensaje a pantalla  habitual usar delante un comando echo, que indique al usuario qué información se le está pidiendo. • Las variables definidas en el interior del fichero de comandos no afectarán a las ya existentes en el shell (aunque sean de entorno), y al finalizar la ejecución, no quedará constancia de ellas. • Si se desea detectar un error en la elaboración de un fichero de comandos: $ sh –x fich • Antes de ejecutarse cada comando, se escribirá en pantalla el nombre del comando a ejecutar. INTRODUCCIÓN DE DATOS A TRAVÉS DE VARIABLES
  • 53. Sistema Operativo UNIX Curso básico de Linux 53 de 59 Ficheros de comandos Ficheros de comandos • Se puede finalizar la ejecución de un fichero de comandos en cualquier momento, sin esperar a que se complete todo el fichero. • Esto se hace mediante el comando exit. • En un fichero de comandos su función es abandonar la shell correspondiente al mismo. • Se puede dar como argumento a exit, un número comprendido entre 0 y 255. En este caso, el código de retorno adopta ese valor. COMANDO EXIT
  • 54. Sistema Operativo UNIX Curso básico de Linux 54 de 59 Ficheros de comandos Ficheros de comandos La construcción if • Para tomar decisiones basadas en los códigos de retorno. if CMD1 then CMDA CMDB fi • Si el código de retorno no es 0, la ejecución del fichero continúa en el proceso situado después de fi. • Anidamiento de sentencias if. • La construcción if puede utilizarse directamente sobre el shell. $ if > • Al símbolo > se le denomina segundo prompt y su valor reside en la variable PS2. ESTRUCTURAS DE PROGRAMACIÓN
  • 55. Sistema Operativo UNIX Curso básico de Linux 55 de 59 Ficheros de comandos Ficheros de comandos La construcción while • Para generar un ciclo condicionado. La estructura es la siguiente: while CMD1 do CDMA CMDB done • Si el código de retorno de CMD1 no es cero la ejecución continúa en el proceso siguiente a done. • Obviamente, si CMD1 es true, puede establecerse un ciclo sin fin. • Anidamiento de sentencias while. ESTRUCTURAS DE PROGRAMACIÓN
  • 56. Sistema Operativo UNIX Curso básico de Linux 56 de 59 Ficheros de comandos Ficheros de comandos Comando break • Para finalizar un ciclo de forma prematura, sin que éste llegue a su fin. while CMD1 do CMDA CMDB while CMDC do CMDE break done CMDJ CMDK done CMDX • break puede llevar un argumento numérico, que indica cuántos ciclos do- done (incluidos uno dentro de otro) deben saltarse para continuar la ejecución.
  • 57. Sistema Operativo UNIX Curso básico de Linux 57 de 59 Ficheros de comandos Ficheros de comandos Comando continue • Interrumpe la ejecución del ciclo pero vuelve a ejecutar el proceso que condiciona la ejecución del mismo. while CMD1 do CMDA CMDB while CMDC do CMDE continue done CMDJ CMDK done CMDX
  • 58. Sistema Operativo UNIX Curso básico de Linux 58 de 59 Ficheros de comandos Ficheros de comandos La construcción for • Para generar un ciclo, pero un número determinado de veces. for V in char1 char2 ... do CMD1 CMD2 done • La variable V toma el valor char1 (puede ser un número, un carácter o conjunto de caracteres o un fichero) y a continuación ejecuta todos los procesos comprendidos entre do-done. • A continuación, V torna el siguiente valor de la lista (char2) y vuelve a repetirse el proceso, y así continúa hasta que V toma el último valor. • Todo lo dicho para la construcción while es aplicable a for, incluido el funcionamiento de break y continue. ESTRUCTURAS DE PROGRAMACIÓN
  • 59. Sistema Operativo UNIX Curso básico de Linux 59 de 59 Ficheros de comandos Ficheros de comandos La construcción case • Equivalente a un if múltiple. case CHAR in modelo 1) (delimitador de modelo) CMD1 ;; (fin de modelo) modelo 2) CMD2 ;; modelo n) CMDN ;; esac (fin de case, esac es case al revés) • Se compara la cadena CHAR (normalmente será el contenido de una variable) con modelos. Si coincide, se ejecutan los procesos siguientes hasta el símbolo ;;. • En los modelos de comparación pueden utilizarse metacaracteres (*,?, etc.) ESTRUCTURAS DE PROGRAMACIÓN