PDF de programación - El entorno de programación Unix

Imágen de pdf El entorno de programación Unix

El entorno de programación Unixgráfica de visualizaciones

Publicado el 26 de Octubre del 2018
1.575 visualizaciones desde el 26 de Octubre del 2018
641,0 KB
48 paginas
Creado hace 22a (29/04/2002)
UNIVERSIDADE DA CORUÑA

El entorno de programación Unix

Fernando Bellas Permuy

Departamento de Tecnologías de la Información y las Comunicaciones (TIC)

Universidad de A Coruña

http://www.tic.udc.es/~fbellas

[email protected]

Contenidos

• El modelo Unix.

• Comandos más usuales.

• La shell.

• Caracteres especiales en Bourne Shell.

• Redireccionamientos de entrada/salida y pipes en Bourne

shell.

• Expresiones regulares.

• Programación de scripts en Bourne shell.

• Acceso remoto.

• Arquitectura X Window.

• Arquitectura típica de una red heterogénea Unix/MS-Win-

dows.

• Creación de Makefiles (pendiente para el curso de C++ ...).

• Bibliografía.

1

El modelo Unix

• Proceso

Programa en ejecución.

• Thread

Flujo de ejecución dentro de un proceso.

• Multitarea

Una misma máquina ejecuta varios procesos simultáneamente.

• Multiusuario

En una misma máquina se ejecutan los procesos de distintos usuarios.

• El sistema operativo ofrece sus servicios a través de un con-

junto de llamadas al sistema
Gestión de ficheros y directorios, creación de procesos, gestión de señales, etc.

Aplicaciones

(espacio de usuario)

API

Kernel

• Distintas versiones de Unix

Solaris (Sun), HP-Unix, AIX (IBM), Linux, etc.

2

Comandos más usuales (1)

• ls (listar)

ls -al .
d rwx --- --x 20 fer senior 1536 Oct 19 12:11 .
d r-x r-x r-x 2 root root 3 Oct 19 13:07 ..
- rwx --- --- 1 fer senior 171 Jul 28 1997 .cshrc
- rwx --- --- 1 fer senior 6842 Jul 24 1997 .cshrc.old
d rwx --- --- 2 fer senior 512 Mar 30 1998 Direcciones
d rwx --- --- 2 fer senior 512 Sep 5 12:27 Personal
d rwx --- --- 15 fer senior 512 Oct 16 16:55 Trabajos
d rwx --- --- 2 fer senior 512 Jul 31 22:04 bin
d rwx --- --- 2 fer senior 512 Oct 16 14:39 dead_letter
- rwx --- --- 1 fer senior 7487 Sep 1 18:48 fmdictionary
- rw- --- --- 1 fer senior 257 Oct 19 12:11 fmfilesvisited
d rwx --- --- 8 fer senior 512 Oct 6 1997 login
d rwx --- --- 2 fer senior 512 Dec 22 1997 nsmail
d rwx r-x r-x 3 fer senior 512 Oct 16 17:42 public_html
d rwx --- --- 5 fer senior 1024 Oct 19 12:24 tmp

Otra opción típica: -R (recursivo).
• chmod (cambiar modo), chown (cambiar propietario),

chgrp (cambiar grupo)

chmod 744 p.cc
chmod u=rwx,go=r p.cc
chmod ugo+r p.cc
chmod a+r p.cc
chmod a-r p.cc
chown fer p.cc g.cc
chgrp senior p.cc g.cc
Todos admiten la opción -R (recursivo).

3

Comandos más usuales (2)

• cd (cambiar directorio), pwd (imprimir directorio de trabajo)
cd /home/fer/Trabajos/GRACE
pwd
cd Trabajos/GRACE
cd
• cp (copiar)
cp nombreFichero1 nombreFichero2
cp nombreFichero nombreDirectorio
cp nombreFichero1 .. nombreFicheroN NombreDirectorio
cp -r nombreDirectorio1 nombreDirectorio2
cp -r nombreDirectorio1/* nombreDirectorio2
cp nombreDirectorio1/* nombreDirectorio2
• mv (mover)
mv nombreFichero1 nombreFichero2
mv nombreFichero nombreDirectorio
mv nombreFichero1 .. nombreFicheroN NombreDirectorio
mv nombreDirectorio1 nombreDirectorio2
• mkdir (crear directorio)
mkdir nombreDirectorio
• rm (borrar)
rm nombreFichero1 .. nombreFichero2
rm -r nombreDirectorio
rm -rf nombreDirectorio
• rmdir (borrar directorio)
rmdir nombreDirectorio
• cat (listar fichero), more (listar fichero con pausas), head
(primeras líneas de un fichero), tail (últimas líneas de un
fichero).

cat nombreFichero
more nombreFichero
head nombreFichero
tail nombreFichero

4

Comandos más usuales (3)

• diff (comparación de ficheros de texto), cmp (comparación

de ficheros binarios)

diff ficheroDeTexto1 ficheroDeTexto2
cmp ficheroBinario1 ficheroBinario2
• lpr (imprimir fichero), lpq (comprobar la cola de

impresión)

(fecha y hora), uname (información sobre el sistema)

lpr ficheroDeTexto1 ... ficheroDeTextoN
lpr -P nombreImpresora ficheroDeTexto1 ... ficheroDeTextoN
lpq -P nombreImpresora
• who (ver usuarios activos en una máquina), whoami, date
• su (acceder como otro usuario)
su - fbellas
• passwd (cambiar password)
• file (determinar el tipo de fichero)
• ps (consultar la tabla de procesos)
ps
ps -fea
• kill (enviar una señal a un proceso)
kill -<número de señal> <número de proceso>
kill -9 123
• man (consultar el manual), xman (versión X Window de man)
man nombreComando
man -s <número de sección> nombreComamdo
man kill
man -s 2 kill

• df (listar espacio en sistemas de ficheros)
df -k

5

Comandos más usuales (y 4)

• ln (establecer links)
ln nombreFichero nombreLink (hard link)
ln -s nombreFichero nombreLink (symbolik link)
ln -s NombreDirectorio nombreLink (symbolik link)
• wc (cuenta de líneas, caracteres y palabras)
wc fichero
wc -l fichero
wc -l -w fichero
wc -lw fichero
wc fichero1 fichero2 ... ficheroN
Opciones: -l y -w.
• vi (edición de ficheros)
• gzip, gunzip (compresión y descompresión de ficheros -

GNU)

gzip nombreFichero1 ... nombreFicheroN
gunzip nombreFichero1 ... nombreFicheroN
Otra opción -9 para gzip.
• tar (empaquetamiento de ficheros)
cd
tar cvf tmp.tar /home/fer/tmp
tar tvf tmp.tar
tar cvf tmp.tar tmp
tar tvf tmp.tar
tar xvf tmp.tar

6

La shell (1)

• Concepto

Lee una línea de comandos por la entrada estándar (hasta fin de línea), la analiza, y ejecuta los
comandos correspondientes (lanzando procesos hijo).

• Distintos tipos de shell

• /bin/sh (Bourne Shell), /bin/ksh (Korn Shell), /bin/csh (C Shell), bash

(versión interactiva de sh), tcsh (versión interactiva de csh).

• Cada usuario tiene asociado un tipo de shell.

• Variables de entorno

• Todo proceso tiene asociadas variables de entorno. Una variable de entorno

asocia un nombre (HOME) con un valor (/home/fer).

• Si el proceso padre lo desea, el proceso hijo hereda todas las variables de

• Especificación de variables de entorno.

entorno del padre.

• sh, ksh, bash.

• NOMBRE_VARIABLE=valor
• Para exportarla => export NOMBRE_VARIABLE
• setenv NOMBRE_VARIABLE valor

• csh, tcsh.

• Ficheros de inicialización/finalización

• sh, ksh, bash:

• csh, tcsh:

• /etc/profile (la primera vez que un usuario entra en su cuenta).
• $HOME/.profile (la primera vez que un usuario entra en su cuenta).

• /etc/.login (la primera vez que un usuario entra en su cuenta).
• $HOME/.login (la primera vez que un usuario entra en su cuenta).
• $HOME/.logout (se ejecuta al terminar la sesión).
• $HOME/.cshrc (cada vez que se ejecuta un shell).

• Los ficheros de inicialización/finalización son scripts.

7

La shell (2)

• Ficheros de inicialización/finalización (continuación)

• Un .profile típico

# ----------------------------------------------------------------------------
# Variables de entorno
# ----------------------------------------------------------------------------
# Variables de entorno generales.
OPENWINHOME=/usr/openwin
export OPENWINHOME
PATH=.:$OPENWINHOME/bin/xview:$OPENWINHOME/bin:/usr/ucb:/bin:/usr/bin:/usr/
sbin:/usr/ccs/bin:/usr/lib/nis:/opt/frame/bin:/usr/local/bin
export PATH
MANPATH=$OPENWINHOME/man:/usr/man
export MANPATH
LD_LIBRARY_PATH=/usr/lib:$OPENWINHOME/lib:/usr/dt/lib
export LD_LIBRARY_PATH
# ----------------------------------------------------------------------------
# Comandos a ejecutar por defecto.
# ----------------------------------------------------------------------------

# Definir máscara por defecto.
umask 077
# Tecla de borrado.
stty erase '^H'
# Definir un prompt (en bash).
export PS1="\h \w"

8

La shell (3)

• Un .profile típico (continuación)

# Inicialización de X Window.
# ----------------------------------------------------------------------------
# Arrancar el servidor de X Window si es necesario.
# ----------------------------------------------------------------------------
#
# If possible, start the windows system
#
if [ `tty` = "/dev/console" ] ; then
if [ "$TERM" = "sun" -o "$TERM" = "AT386" ] ; then
if [ ${OPENWINHOME:-""} = "" ] ; then
OPENWINHOME=/usr/openwin
export OPENWINHOME
fi
echo ""
echo "Starting OpenWindows in 5 seconds (type Control-C to interrupt)"
sleep 5
echo ""
$OPENWINHOME/bin/openwin
clear # get rid of annoying cursor rectangle
exit # logout after leaving windows system
fi
fi
• Ficheros de inicialización/finalización (continuación)

• Un .login típico.

• Idem pero sin las variables de entorno.
• Un ejemplo de prompt: set prompt = "`uname -n`%~> "
• También varía la parte de inicialización del servidor de X Window, y se suelen esta-

blecer alias (alias l ls -al).

• Un .cshrc típico.

• Suele dar valor a las variables de entorno (con setenv y sin export).
• El path también se puede especificar como set path = ( dir1 dir2 ...
• También se podría haber hecho en el .login, pero tiene alguna ventaja hacerlo en

dirN).
.cshrc.

• Un .logout típico.

• Lo que interese antes de que se termine la sesión (ej.: clear).

9

La shell (y 4)

• Ejecución de scripts dentro de la propia shell

• sh, ksh, bash
• csh, tcsh

• . nombreScript
• source nombreScript

• Utilidad típica

• Cuando se hace un cambio a una variable de entorno de algún fichero de inicialización.

• sh, ksh, bash => . $HOME/.profile
• csh, tcsh => source ~/.login, source ~/.cshrc

10

Caracteres especiales en Bourne shell (1)

• Concepto
mkdir tmp
cd tmp
echo > f1
echo > f2
echo > f3
set -x
ls *
+ ls f1 f2 f3

f1 f2 f3
set +x
• Algunos caracteres especiales

El shell expande (interpreta) el caracter *,
y posteriormente ejecuta el comando ls con
los parámetros f1 f2 f3

Carácter

*
?
[ccc]

$var
${var}

"..."
'...'
`...`

Significado

Reconoce cualquier cadena (que no empiece por .), incluso la nula.
Reconoce cualquier carácter individual.
Reconoce cualquier carácter en ccc. Se admiten rang
  • Links de descarga
http://lwp-l.com/pdf14050

Comentarios de: El entorno de programación Unix (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad