Unix 11 20

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Manual de UNIX Rev 2.

4 Jon Tombs & Jorge Chávez 11

quota -v
muestra las cuotas de disco del usuario.
La opción -v permite ver las cuotas de un disco remoto.
du
(Disk Usage), permite ver el espacio de disco ocupado (en bloques de disco20 ) por el
fichero o directorio suministrado como argumento. La opción -s impide que cuando se
aplique recursividad en un directorio se muestren los subtotales
df
(Disk Free), muestra los sistemas de ficheros de los que dispone el sistema, con las
cantidades totales/usadas/disponibles de cada uno
ln
Permite realizar un enlace (link) entre dos ficheros o directorios. Un enlace puede ser:

• hard link: se puede realizar sólo entre ficheros del mismo sistema de ficheros.
El fichero enlazado apunta a la zona de disco donde se halla el fichero original.
Por tanto, si se elimina el fichero original, el enlace sigue teniendo acceso a dicha
información. Es el enlace por omisión.

• symbolic link: permite enlazar ficheros/directorios21 de diferentes sistemas de


ficheros. El fichero enlazado apunta al nombre del original. Ası́ si se elimina el
fichero original el enlace apunta hacia un nombre sin información asociada. Para
realizar este tipo de enlace debe emplearse la opción -s.

Un enlace permite el uso de un fichero en otro directorio distinto del original sin necesi-
dad de copiarlo, con el consiguiente ahorro de espacio.

4.6 Protección de ficheros


Dado que el sistema de ficheros UNIX es compartido por un conjunto de usuarios, surge
el problema de la necesidad de privacidad. Sin embargo, dado que existen conjuntos
de personas que trabajan en común, es necesario la posibilidad de que un conjunto de
usuarios puedan tener acceso a una serie de ficheros (que puede estar limitado para el
resto de usuarios).
Cada fichero y directorio del sistema dispone de un propietario, un grupo al que pertenece
y unos permisos. Existen tres tipos fundamentales de permisos:

• lectura (r–Read): en el caso de un fichero significa poder examinar el contenido


del mismo; en el caso de un directorio significa poder entrar en dicho directorio.

• escritura (w–Write): en el caso de un fichero significa poder modificar su con-


tenido; en el caso de un directorio es crear un fichero o directorio en su interior.

• ejecución (x–eXecute): en el caso de un fichero significa que ese fichero se pueda


ejecutar (binario o fichero de procedimientos); en el caso de un directorio es poder
ejecutar alguna orden dentro de él.

Se distinguen tres grupos de personas sobre las que especificar permisos:


20
1 bloque normalmente es 1Kbyte
21
debe hacerse notar que los directorios sólo pueden ser enlazados simbólicamente
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 12

• user: el usuario propietario del fichero

• group: el grupo propietario del fichero (excepto el usuario). Como ya se ha co-


mentado, cada usuario puede pertenecer a uno o varios grupos y el fichero gener-
ado pertenece a uno de los mismos.

• other: el resto de los usuarios (excepto el usuario y los usuarios que pertenezcan
al grupo)

También se puede emplear all que es la unión de todos los anteriores.


Para visualizar las protecciones de un fichero o directorio se emplea la orden ls -l,
cuya salida es de la forma:

-rw-r--r-- ...otra información... CD_list

Los 10 primeros caracteres muestran las protecciones de dicho fichero:

• El primer carácter indica el tipo de fichero de que se trata:

– - fichero
– d directorio
– l enlace (link)
– c dispositivo de caracteres (p.e. puerta serie)
– b dispositivo de bloques (p.e. disco duro)
– s socket (conexión de red)
– p tuberı́a (pipe)

• Los caracteres 2,3,4 son los permisos de usuario

• Los caracteres 5,6,7 son los permisos del grupo

• Los caracteres 8,9,10 son los permisos del resto de usuarios

Ası́ en el ejemplo anterior -rw-r--r-- se trata de un fichero donde el usuario


puede leer y escribir, mientras que el grupo y el resto de usuarios sólo pueden leer.
Estos suelen ser los permisos por omisión para un fichero creado por un usuario. Para
un directorio los permisos por omisión suelen ser: drwxr-xr-x donde se permite al
usuario “entrar” en el directorio y ejecutar órdenes desde él.
chmod
Esta orden permite modificar los permisos de un fichero.
chmod permisos files
Existen dos modos de especificar los permisos:

• Modo absoluto o modo numérico. Se realiza empleando un número que resulta


de la OR de los siguientes modos:

400 lectura por el propietario.


200 escritura por el propietario.
100 ejecución (búsqueda) por el propietario.
040 lectura por el grupo.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 13

020 escritura por el grupo.


010 ejecución (búsqueda) por el grupo.
004 lectura por el resto.
002 escritura por el resto.
001 ejecución (búsqueda) por el resto.
4000 Set User ID, cuando se executa este binario el proceso corre
con los permisos del dueño del fichero.
2000 Set Group ID cuando se executa este binario el proceso corre
en el mismo grupo que tiene el fichero.

Por ejemplo:
chmod 640 *.txt
Permite la lectura y escritura por el usuario, lectura para el grupo y ningún
permiso para el resto, de un conjunto de ficheros que acaban en .txt
• Modo simbólico o literal. Se realiza empleando una cadena (o cadenas separadas
por comas) para especificar los permisos. Esta cadena se compone de:
who operation permission
siendo:
– who : es una combinación de:
∗ u : user
∗ g : group
∗ o : others
∗ a : all (equivalente a ugo)
Si se omite este campo se supone a, con la restricción de no ir en contra de
la máscara de creación (umask).
– operation: es una de las siguientes operaciones:
∗ + : añadir permiso
∗ − : eliminar permiso
∗ = : asignar permiso, el resto de permisos de la misma categorı́a se anu-
lan.
– permission: es una combinación de los caracteres:
∗ r : read
∗ w : write
∗ x : execute
∗ X : ejecución en un directorio o de un fichero que tuviera el permiso de
ejecución en alguna de las clases de usuario.
∗ s : en ejecución usar los permisos de dueño.
∗ t : después de terminar ejecución, el programa continúa en memoria
(cache).
Por ejemplo:
chmod u+x tarea
Permite la ejecución por parte del usuario22 del fichero tarea.
22
un error muy frecuente es la creación de un fichero de órdenes (script file) y olvidar permitir la ejecu-
ción del mismo.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 14

chmod u=rx,go=r *.txt


permite la lectura y ejecución del usuario, y sólo la lectura por parte del grupo y el
resto de usuarios.
La opción -R hace que la orden se efectúe recusivamente.
umask
Esta es una orden intrı́nseca del Shell que permite asignar los permisos que se desea
tengan los ficheros y directorios por omisión.
El argumento que acompaña a la orden es un número octal que aplicará una XOR so-
bre los permisos por omisión (rw-rw-rw- para ficheros y rwxrwxrwx para directorios).
El valor por omisión de la máscara es 077 que sólo habilita al usuario para lectura-
escritura. Otro valor que se suele emplear es 022 que permite además al grupo y al
resto la lectura.
Sin argumentos muestra el valor de la máscara.
chgrp
Cambia el grupo propietario de una serie de ficheros/directorios
chgrp grupo files
El usuario que efectúa esta orden debe de pertenecer al grupo mencionado.
id
Muestra la identificación del usuario23 , ası́ como el conjunto de grupos a los que pertenece.

4.7 Filtros
Existe un conjunto de órdenes en UNIX que permiten el procesamiento de ficheros de
texto. Se denominan filtros (Unix Filters) porque normalmente se trabaja empleando
redirección recibiendo datos por su stdin24 y retornándolos modificados por su std-
out25 .
awk gawk
Es un procesador de ficheros de texto que permite la manipulación de las lı́neas de una
forma procedural (i.e. con decisiones en función del contenido de la misma).
(Ejemplo)
Supongamos que tenemos un fichero file con dos columnas.
awk "{ print $2, $1 }"file

Imprime esas dos columnas en orden inverso.


cat
Es el filtro más básico, copia la entrada a la salida.
cut
Para un fichero compuesto por columnas de datos, permite el borrado de un rango de
columnas.
diff
Permite comparar el contenido de dos ficheros
find
Permite la búsqueda de un fichero en la estructura de directorios
23
a pesar de que el usuario se identifica por una cadena denominada username, también existe un
número denominado UID que es un identificativo numérico de dicho usuario
24
entrada estándar
25
salida estándar
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 15

find . -name file.dat -print


Comenzando en el directorio actual recorre la estructura de directorios buscando el
fichero file.dat, cuando lo encuentre imprime el path al mismo.
find . -name "*%exec rm ’{}’ \;
Busca en la estructura de directorios un fichero que acabe en % y lo borra.
xargs orden repetir orden para cada argumento que se leer desde stdin. Permite
uso muy eficiente de find.
find . -name ‘‘*.dat’’ -print | xargs mv ../data
Busca en la estructura de directorios todos los ficheros que acaben en .dat, y los mueve
al directorio ../data.
grep
Permite la búsqueda de una cadena en un fichero
head
Muestra las primeras lı́neas de un fichero.
head -30 file Muestra las 30 primeras lı́neas de file
tail
Muestra las últimas lı́neas de un fichero.
tail -30 file Muestra las 30 últimas lı́neas de file
tail +30 file Muestra desde la lı́nea 30 en adelante de file
tar gtar
Este comando permite la creación/extracción de ficheros contenidos en un único fichero
denominado tarfile. Este tarfile suele se una cinta magnetica, pero también
puede ser un fichero.
Existen dos versiones: tar que es la versión que viene contenida generalmente en un
SO Unix, y la versión GNU26 del mismo gtar.
La acción a realizar viene controlada por el primer argumento:

• c (Create) creación

• x (eXtract) extracción

• t (lisT) mostrar contenido

• r añadir al final

• u añadir aquellos ficheros que no se hallen en el tarfile o que hayan sido modifi-
cados con posterioridad a la versión que aparece.

A continuación se colocan las opciones:

• v : Verbose

• z : comprimir/descomprimir el contenido (sólo disponible en gtar)

• f device : permite especificar un dispositivo para el tarfile (por omisión /dev/rmt8):

– - el dispositivo es el stdin/stdout
– /dev/rst? SCSI tape interface
26
GNU es un acrónimo de: GNU’s Not UNIX. GNU es el nombre del producto de la Free Software
Foundation, una organización dedicada a la creación de programas compatible con UNIX (y mejorado
respecto a los estándars) y de libre distribución.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 16

– /dev/rmt? half-inch magnetic tape interface


– /dev/fd? floppy

• M : Multivolumen (sólo disponible en gtar), es decir, usar varios diskettes (volúmenes)


para almacenar un tarfile.

• b N : permite la especificación del tamaño de bloques N deseados. Un bloque es


Nx512 bytes y por omisión N=20.

Veamos algunos ejemplos:

tar cvf simul.tar *.dat genera un fichero simul.tar


que contiene todos los ficheros que
terminen en .dat del directorio
actual. A medida que se va re-
alizando indica el tamaño en blo-
ques de cada fichero añadido.

gtar zcvf simul.tgz *.dat igual que en el caso anterior, pero


el fichero generado simul.tgz
ha sido comprimido empleando
gzip.

tar tvf simul.tar muestra los ficheros contenidos en


el tarfile simul.tar

tar xvf simul.tar extrae todos los ficheros con-


tenidos en el tarfile simul.tar

gtar cMbf 18k /dev/fd0 simulacion permite el almacenamiento en


más de un diskette (i.e. volumen)
de la información contenida en el
directorio simulacion. La op-
ción b y el argumento 18k permite
un mejor acceso al diskette, al es-
pecificarse el tamaño de bloques
empleado por éste.
wc (Word Count)
Contabiliza el número de lı́neas, palabras y caracteres

4.8 Transferencia a diskettes.


La filosofı́a de diferentes unidades (A:, B:,. . . ) difiere de la estructura única del sis-
tema de ficheros que existe en Unix.
Son varias las alternativas que existen para la transferencia de información a diskette.

• Una posibilidad es disponer de una máquina DOS con ftp instalado y acceso a
red. Empleando dicha utilidad se pueden intercambiar ficheros entre un sistema
y el otro.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 17

• Existe un conjunto de órdenes MTools disponible en multitud de sistemas, que


permiten el acceso a diskettes en formato DOS de una forma muy eficiente.

– mcopy file file


– mdir
– mcd dirname
– mformat

Para especificar el fichero que se encuentra en el diskette, el nombre del fichero


se compone: a:filename. Si se desea emplear el caracter comodı́n para un con-
junto de ficheros del diskette debe de rodearse de dobles comillas el mismo para
evitar la actuación del Shell (p.e. mcopy a:*.dat".).
La opción -t realiza la conversión necesaria entre UNIX y DOS, que se debe re-
alizar SÓLO en ficheros de texto.

• IBM AIX ofrece las órdenes:

– doswrite file file


– dosread file file
– dosdir
– dosformat

El nombre del fichero file que reside en el fichero puede estar en mayúsculas o
minúsculas.
La opción -a realiza la conversión necesaria entre UNIX y DOS, que se debe
realizar SÓLO en ficheros de texto.

4.8.1 Unix y DOS


Cuando se transfieren ficheros de texto entre DOS y Unix sin las precauciones ade-
cuadas pueden aparecer los siguientes problemas:

1. En DOS los nombres de los ficheros pueden tener un máximo de 8 caracteres y


una extensión de 3 caracteres. En Unix no existe restricción respecto a la longitud
del nombre, y aunque pueden llevar extensión, no es obligatorio.

2. El Return de DOS se compone de Carriage Return y Line Feed. Sin embar-


go en Unix sólo existe el Carriage Return.
Ası́ un fichero de Unix visto desde DOS parece una única lı́nea. El caso inverso
es la aparición del carácter ∧M al final de cada lı́nea.

3. La presencia de caracteres con código ASCII por encima del 127 (ASCII extendi-
do) suele plantear problemas. Debido a que en DOS dicho código depende de la
asignación hecha, que a su vez depende del paı́s.

Para solucionar estos problemas se emplean las órdenes:

• dos2unix dosfile unixfile


Que realiza la conversión de formato DOS a Unix
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 18

• unix2dos unixfile dosfile


Que realiza la conversión de formato Unix a DOS
(NOTA) Estos comandos no admiten metacaracteres en su uso27 . Para realizar la con-
versión de un conjunto de ficheros se podrı́a emplear un comando interno del Shell,
que en csh o tcsh serı́a:
foreach file (*.txt)
dos2unix $file $file.dos
end

4.9 Más Commandos


users who w
Ver quién está conectado en la máquina
rusers
Análogo al anterior pero para máquinas remotas (lanza un broadcast e imprime las
contestaciones de las máquinas)
ping
ver si una máquina está conectada a red y si camino de Internet hasta la misma fun-
ciona correctamente.
rup
ver la carga de todas las máquinas de la red más “próxima”.
finger
finger user muestra información28 sobre el usuario user en la máquina local.
finger user@hostname muestra información sobre un usuario llamado user en una
máquina hostname.
finger @hostname muestra los usuarios de una máquina.
cal
Muestra el calendario del mes actual
date
Muestra el dı́a y la hora actual
leave
Alarma programable para que avise al llegar una determinada hora strings
Muestra las cadenas literales que tiene un fichero binario

5 Shells
UNIX soporta varios intérpretes de comandos o Shells, que ayudan a que tu inter-
acción con el sistema sea lo más cómoda y amigable posible. La elección de cuál es el
más cómodo es algo personal; en este punto sólo indicaremos los cinco más significa-
tivos:

• sh : Bourne SHell, el shell básico, no pensado para uso interactivo.


27
es decir no se puede ejecutar dos2unix *.txt *.txt.dos
28
La información proporcionada es el nombre de completo del usuario (GCOS), las última sesión en dicha
máquina, si ha leido o no su correo y el contenido de los ficheros .plan y .project del usuario.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 19

• csh : C-SHell, Shell con sintaxis como lenguaje “C”.


El fichero de configuración es .cshrc (en tu directorio $HOME).

• tcsh : alTernative C-Shell (Tenex-CSHell), con editor de lı́nea de comandos.


El fichero de configuración es .tcshrc, o en caso de no existir, .cshrc (en tu
directorio $HOME

• bash : Bourne-Again Shell, con lo mejor de sh, ksh y tcsh.


El fichero de configuración es .bash profile si estás entrando en tu cuenta por
primera vez (i.e. un login), y después el fichero .bashrc (en tu directorio $HOME).

• ksh : Korn SHell, sintaxis de sh con soporte para uso interactivo. Es el que
establece por omisión AIX.
El fichero de configuración es .profile en caso de login, en caso contrario el
fichero con el nombre de la variable ENV, si existe.

Si queremos cambiar de shell en un momento dado, sólo será necesario que tecleemos
el nombre del mismo y estaremos usando dicho shell. Si queremos usar de forma per-
manente otro shell del que tenemos asignado por omisión29 podemos emplear la orden
chsh que permite realizar esta acción.
En los ficheros de configuración se encuentran las definiciones de las variables de
entorno (enviroment variables) como camino de búsqueda PATH, los “aliases” y otras
configuraciones personales.
Veamos unos caracteres con especial significado para el Shell:

• Dobles comillas permiten delimitar una cadena (constituyendo un único argu-


mento) con espacios, permitiendo la expansión de $, ˜, \, *, ‘
Por ejemplo:
mcopy a:*.txt". permite que la expansión del carácter comodı́n la realice el
programa, y no el Shell30

• ‘ 31 ejecuta la orden delimitada y pone su resultado en el stdout


Por ejemplo:
echo ‘pwd‘ imprime por pantalla el nombre del directorio actual.

• ’ 32 no expande $, ˜, \, ‘ incluı́dos dentro de la cadena delimitada.


Por ejemplo:
echo ’pwd’ imprime por pantalla la cadena pwd

• (comando) hace un fork (nuevo shell hijo para ejecutar un proceso) del comando
delimitado.

• ; permite la ejecución de más de una orden en una sóla lı́nea de comando.


29
Por omisión se suele asignar tcsh
30
recuérdese que esta orden permite la copia de ficheros entre diskettes en formato DOS y un sistema
Unix. Si el Shell realizara la expansión, pasarı́a como argumentos a la orden los ficheros del directorio
actual que terminaran en .txt
31
Esta tilde es la empleada en francés o inclinada hacia atrás.
32
Esta tilde es la empleada en español o inclinada hacia delante.
Manual de UNIX Rev 2.4 Jon Tombs & Jorge Chávez 20

5.1 Variables de Entorno


Las variables de entorno permiten la configuración por defecto de muchos programas
(donde los programas buscan datos y tus preferencias) y se encuentran definidas en los
ficheros de configuración anteriormente mencionados. Para referenciar a las variables
poner el sı́mbolo $ delante, por ejemplo, para mostrar el camino de tu directorio por
defecto:
echo $HOME
Las variables de entorno más importantes son:

• HOME – Tu directorio por defecto

• PATH – Tu camino de búsqueda, una lista de directorios separado con ‘:’ para
buscar programas

• EDITOR y/o VISUAL – Tu editor por defecto

• DISPLAY – Bajo el sistema de X windows, el nombre de máquina y pantalla que


estás usando.

• TERM – Tu tipo de terminal33 .

• SHELL – Tu Shell por defecto

• MANPATH – Camino para buscar páginas de manuales

• PAGER – Programa de paginación de texto

• TMPDIR – Directorio para ficheros temporales

5.2 Redirección
Cuando el un programa espera que se teclee algo, aquello que el usuario teclea se
conoce como el Standard Input: stdin. Los caracteres que el programa retorna por pan-
talla es lo que se conoce como Standard Output: stdout (o Standard Error: stderr34 ).
El signo < permite que un programa reciba el stdin desde un fichero en vez de la inter-
acción con el usuario. Por ejemplo:
mail admin < file
Invoca el comando mail con argumento (destinatario del mail) admin, siendo el con-
tenido del mensaje el contenido del fichero file en vez del texto que usualmente teclea
el usuario. Más a menudo aparece la necesidad de almacenar en un fichero la salida
de un comando. Para ello se emplea el signo >.
man bash > file
Invoca el comando man con argumento (información deseada) bash pero indicando
que la información debe ser almacenada en el fichero file en vez de ser mostrada por
pantalla.
En otras ocasiones uno desea que la salida de un programa sea la entrada de otro.
Esto se logra empleando los denominados PIPES, para ello se usa el signo |. Este
signo permite que el stdout de un programa sea el stdin del siguiente.
33
En la mayorı́a de los casos se trata de una emulación de vt100
34
Si estos mensajes son de error

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy