0% encontró este documento útil (0 votos)
5 vistas

Unix Basico 02

Cargado por

Rudy Arias
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas

Unix Basico 02

Cargado por

Rudy Arias
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 49

Comandos Básicos de Unix

Instructor: Juan Matías Matías - jUaNIX


[email protected]
San José, Costa Rica
2010
Pág. 1
Conceptos Generales
La línea de comandos Unix.

comando [-opciones][argumentos]

■ comando: Es la orden UNIX que va a ejecutarse.


■ opciones: Son variaciones al comando. Por ejemplo,
una opción de escritura puede llevar la opción de doble
espaciado.
■ argumentos: Nombre de aquello sobre lo que opera el
comando. Algunos comandos requieren de por lo menos
un argumento.

Pág. 2
Conceptos Generales
Comandos básicos.

■ date : Muestra la fecha y la hora del sistema.


■ cal : Muestra el calendario.
■ who: Muestra quienes están usando el sistema.
■ finger: Variante de who
■ w : Variante de who

$ date
Mon Apr 2 15:18:18 CST 2006
$ _

Pág. 3
Conceptos Generales
Comandos auxiliares.
■ Id: Muestra la identificación del usuario actual.
$ id
uid=0(root) gid=3(sys)groups=3(sys),0(root),1(other)
■ logname: Muestra el login name del usuario.
$ logname
root
■ Tty: Muestra el terminal actual de trabajo.
$ tty
/dev/ttyp0
■ uname: Muestra la identificación del computador central.
$ uname
SCO_SV

Pág. 4
Conceptos Generales
El manual interactivo
$ man cat

CAT(C) CAT(C)

Name
cat - concatenates and displays files.

Syntax
cat [-u][-s][-v][-t][-e] file ...

Description
cat reads each file in secuence and writes ...

The options are :


...

Pág. 5
Archivos y directorios
Archivos
Un archivo es la unidad fundamental del Sistema de
archivos del Unix.
Existen tres diferentes clases de archivos: Ordinarios,
Especiales y Directorios.
■ Archivos Ordinarios.- Casi todos los archivos que
depositamos en el disco. Documentos, programas. Los
archivos ordinarios pueden crearse, cambiarse, o
borrarse cuando lo desee.

Pág. 6
Archivos y directorios
Archivos
■ Directorios (carpetas).- Son un tipo especial de
archivos; un directorio contiene los nombres (file name)
y números de identificación (i-nodo) de cada uno de los
archivos que contiene.
■ Archivos Especiales.- Cada uno de los dispositivos
físicos en el Unix, el disco duro, el CD/DVD, la
impresora, etc. tiene asignado un archivo especial
(special file) que permite que el sistema pueda
manejarlos de forma transparente para el usuario.

Pág. 7
Archivos y directorios
Archivos

$ ls -l /dev
total 30
brw-rw-rw- 2 bin bin 2, 64 Jan 12 1997 fd0
brw-rw-rw- 2 bin bin 2, 65 Jan 12 1997 fd1
:
brw------- 1 sysinfo sysinfo 1, 0 May 7 1996 hd00
brw------- 1 sysinfo sysinfo 1, 15 May 7 1996 hd01
:
crw------- 2 bin bin 6, 0 May 17 21:02 lp
:
crw--w--w- 1 root sys 58, 0 May 17 21:05 ttyp0
:

Pág. 8
Archivos y directorios
Archivos
■ Inodos.- Cada entrada de un directorio tiene dos partes:
un nombre y un apuntador llamado link.
■ El link apunta al denominado inodo (i-odo).
■ En el i-nodo se encuentra almacenada la información
del archivo: longitud, fecha de creación, ID del
propietario, los modos y el resto de detalles
importantes.
■ Un archivo no existe en un directorio ya que la
entrada de un directorio solo consta del nombre de
dicho archivo y del puntero que indica el lugar donde
se encuentra almacenada la descripción del archivo.

Pág. 9
Archivos y directorios
El directorio raiz

Pág. 10
Archivos y directorios
Trabajando con archivos.
■ Listando archivos.- El comando ls (list) lista los
archivos contenidos en un directorio.
$ ls
xsoft
ejemplo
practica
prueba
sfmt
unix.dcx

$ l
total 2004
drwxr-xr-x 3 silvia sistemas 48 Jan 11 17:43 xsoft
-rw-r--r-- 1 silvia sistemas 47 Jan 15 12:10 ejemplo
-rw-r--r-- 1 silvia sistemas 39 Jan 15 12:10 practica
-rw-r--r-- 1 silvia sistemas 993 Jan 15 12:34 prueba
-rwx------ 2 bin bin 2840 Nov 3 1988 sfmt
-rw-r--r-- 1 silvia sistemas 87321 Jan 11 13:30 unix.dcx

Pág. 11
Archivos y directorios
Trabajando con archivos.
■ cat.- El nombre del comando cat viene de la palabra
inglesa catch (capturar), y por costumbre se dice que se
usa para "concatenar archivos", y, puede imprimir
archivos en la salida estándar (la pantalla generalmente)
y/o juntar archivos en un solo. Por ejemplo :

$ cat file
:
:
Este es el final de un archivo ejemplo que
contiene mas de una pantalla de texto.

Pág. 12
Archivos y directorios
Trabajando con archivos.
■ more.- El comando more, muestra el contenido de un
archivo, pero sólo una pantalla a la vez. Si el archivo
contiene más de la cantidad de líneas que la pantalla
puede presentar, se puede apreciar el siguiente prompt
después de cada pantalla de texto es mostrada:

$ more archivo

Este es el inicio de un archivo tomado como ejemplo,


el cual tiene mas de una pantalla de longitud.
:
:
-- More -- 74 %

Pág. 13
Archivos y directorios
Rutas de acceso a archivos y directorios.
■ La localización de un archivo se logra mediante un
camino de acceso que parte desde directorio raíz y
recorre la lista de directorios intermedios hasta llegar al
archivo deseado.
■ Los distintos nombres que componen el camino de
acceso de un archivo están separados por el caracter "/",
por ejemplo :

/u/silvia/finanzas/control.c

Dir. Actual Camino Absoluto Camino relativo


----------------------------------------------------------
/u/silvia /u/silvia/prg/ejm.c prg/ejm.c
/u/caja /u/caja/menu menu
/ /etc/default/log etc/default/log

Pág. 14
Archivos y directorios
Trabajando con directorios.
■ pwd.- Nos retorna el directorio actual de trabajo.
Todos los comandos son ejecutados en relación a
nuestro directorio de trabajo, para conocer en que
directorio nos encontramos, tenemos el comando
pwd (print working directory) así, si ingresamos el
comando:

$ pwd
/usr/silvia

Pág. 15
Archivos y directorios
Trabajando con directorios.
■ mkdir.- Para crear un subdirectorio en nuestro directorio
de trabajo, debemos usar el comando mkdir (make
directory).
Por ejemplo para crear un subdirectorio que llamaremos
archivo1 en nuestro directorio hogar, primero digitamos
cd el cual nos ubicará en donde queremos y luego
damos el siguiente comando:

$ mkdir archivo1

Pág. 16
Archivos y directorios
Trabajando con directorios.
■ rmdir.- Si lo que deseamos es borrar un directorio,
entonces lo hacemos con rmdir (remove directory).
Este comando no trabaja si el directorio a borrar no esta
vacío, es decir, si contiene aún archivos y/o otros
subdirectorios.

$ rmdir archivo1

■ Si este directorio no está vacío entonces se tendrá el


siguiente mensaje:

rmdir: archivo1 not empty

Pág. 17
Archivos y directorios
Trabajando con directorios.
■ rm.- Para borrar archivos se utiliza el comando rm
(remove). El formato de rm, es el siguiente :

rm [-opciones] [ruta] archivo(s)

■ Por ejemplo, si se desea borrar el archivo texto.doc:


$ rm texto.doc

■ Si añadimos la opción -i a dicho comando, el borrado se


hace en forma interactiva, es decir el sistema pregunta
por cada archivo para verificar si debe ser borrado o no.
$ rm -i temp*

Pág. 18
Archivos y directorios
Trabajando con directorios.
■ mv (move) se utiliza para mover enlaces de archivos
dentro del filesystem Unix. El efecto desde el punto de
vista del usuario es de movimiento de archivos entre
directorios, o, el de renombrado de los mismos. Así por
ejemplo :
$ mv file1 file2
Renombrará el archivo file1 como file2
■ También podemos mover un archivo de un directorio a
otro, por ejemplo:
$ mv file2 /tmp

■ Moverá el archivo file2 al directorio /tmp.

Pág. 19
Archivos y directorios
Trabajando con directorios.
■ cp.- Para realizar copias de archivos dentro del Unix, el
shell usa el comando cp (copy). Por ejemplo, si
tenemos un archivo llamado curso en nuestro directorio
y deseamos copiarlo se hace:
$ cp curso curso2

■ Ahora se tiene dos copias del mismo archivo con


diferentes nombres. De la misma forma:
$ cp curso2 /u/jmatias/curso3

■ Realiza una copia del archivo curso2 al directorio hogar


del usuario jmatias y le da el nombre curso3 a esa
copia.
Pág. 20
Archivos y directorios
Metacaracteres
■ * .- El asterisco reemplaza cualquier secuencia de
caracteres en el nombre de un archivo. Por ejemplo, los
archivos: prog, prog.c, prog.lst, prog.o, prog.out y
prog.s, pueden relacionarse porque sus nombres
comparten una porción que muestra esa relación.
■ La palabra prog* Se refiere a todos los archivos que
acabamos de enumerar. La anterior línea de nombres
podrá ser producida por el comando:

$ lc prog*

Pág. 21
Archivos y directorios
Metacaracteres
■ ? .- El signo de interrogación reemplaza cualquier
caracter (uno solo) en el nombre de un archivo. Por lo
tanto:

$ ls ? ?? ???

■ listará todos los archivos del directorio actual cuyos


nombres tengan uno, dos y tres caracteres,
respectivamente.

Pág. 22
Archivos y directorios
Metacaracteres
■ [ ] .- Los caracteres o los rangos mencionados entre
corchetes reemplazan a un caracter en el nombre de un
archivo. Son válidos, por ejemplo, los rangos : 0-9 o a-z.
Por lo tanto : file1.[cos]
se referirá a : file1.c file1.o file1.s

Lo más importante de todo es que el shell realiza cualquier


expansión antes de ejecutar el comando, luego todos los
nombres que concuerden con la palabra expandida se
clasificarán en orden alfabético para, pasarlos al comando
como argumentos separados.

Pág. 23
Archivos y directorios
Permisos de acceso
■ Existen tres tipos de permisos para cada archivo:
r : read; leer, o examinar su contenido.
w : write; escribir, o cambiar su contenido.
x : execute; ejecutar el archivo como un programa.
Para el caso de directorios, esto significa permiso de entrada.
■ El Unix distingue tres categorías de usuarios que pueden
accesar a un archivo:
usuario: user, es el dueño o propietario del archivo.
grupo: group, los usuarios que pertenecen al mismo grupo.
otros: other, el resto de los usuarios.

Pág. 24
Archivos y directorios
Permisos de acceso
■ Como propietario de un archivo, el usuario posee un
conjunto de permisos de: lectura, escritura y ejecución;
el grupo al cual pertenece tiene otro conjunto, y los
demás usuarios tienen un tercer conjunto.
■ El dueño del archivo controla qué usuarios tienen
permiso de acceso y de qué manera pueden hacerlo.

$ls -l sistemas
-rwx r-x r-- 1 jmatias sistemas 682 Jan 16 09:26 wp.c
| | |
dueño |los demás
(user) | (other)
grupo
(group)

Pág. 25
Archivos y directorios
Umask y sus efectos en archivos y directorios.
■ umask (user masking) define los permisos por defecto
para la creación de archivos y directorios, es una
máscara de los permisos NO deseados.
■ Archivos.- El valor de umask equivale a un
complemento a 6 de cada uno de los dígitos octales.
0 2 2 ==> valor de umask
6 4 4 ==> valor complemento
-----------
6 6 6
■ El valor complemento es el valor que van a tomar los
permisos de los archivos recién creados; en el caso
anterior:
6 4 4 equivale a rw- r-- r--

Pág. 26
Archivos y directorios
Umask y sus efectos en archivos y directorios.
■ Directorios.- El valor de umask equivale a un
complemento a 7 de cada uno de los dígitos octales.
0 2 2 ==> valor de umask
7 5 5 ==> valor complemento
------------
7 7 7
■ El valor complemento es el valor que van a tomar los
permisos de los directorios recién creados; en el caso
anterior :

7 5 5 equivale a rwx r-x r-x

Pág. 27
Archivos y directorios
chmod
■ chmod.- Modifica los permisos de acceso de un archivo
o directorio. El comando chmod cambia los permisos del
archivo o directorio especificado.
■ Sólo el propietario o el superusuario pueden cambiar los
permisos a un archivo.

chmod [quién][opera][perm] archivo

■ chmod cambia los permisos de acceso para la clase de


usuario especificada por quién

Pág. 28
Archivos y directorios
chmod
■ El tipo de usuario se establece por una o más de las
siguientes letras:
■ a (all) todos los tipos de usuario.
■ g (group) grupo al que pertenece el dueño del archivo.
■ o (other) los demás usuarios.
■ u (user) dueño del archivo o directorio.
■ La operación que se ejecutará está definida en la
siguiente lista:
■ + agrega el permiso para el usuario especificado.
■ - Quita el permiso para el usuario especificado.
■ = Asigna el permiso para el usuario especificado; todos
los demás permisos para ese usuario se habilitan de
nuevo.

Pág. 29
Archivos y directorios
chmod
■ El permiso de acceso está definido en las siguiente
lista:
■ x permiso de ejecución (de búsqueda para directorios).
■ r permiso de lectura.
■ w permiso de ejecución.
■ Empleando el modo absoluto, la sintaxis sería:
chmod modo archivo
■ donde modo es un número octal.
Permiso Binario Octal
r 100 4
w 010 2
x 001 1

Pág. 30
Archivos y directorios
chmod
■ Por ejemplo, deseamos que al archivos xdatos tenga
todos los permisos para el dueño, lectura y ejecución
para su grupo y sólo lectura para el resto.
$ chmod 754 xdatos

NOTA :

(rwx) : 7 : 4 + 2 + 1
(r-x) : 5 : 4 + 1
(r--) : 4 : 4

Pág. 31
Archivos y directorios
find
find directorio expresión
■ find busca en directorio, aquellos archivos que cumplan
con la expresión.
■ directorio contiene la ruta del directorio donde buscará
find. La búsqueda se realiza en todos los subdirectorios
y a todos los niveles.
■ expresión contiene uno o más criterios. Los criterios
pueden combinarse usando operadores lógicos:
■ ! (NOT) Niega el criterio que le sigue.
■ <espacio> (AND) Cuando dos criterios están separados
por un espacio en blanco, se supone una relación y.
■ -o (OR) Cuando dos criterios están separados por -o, se
considera una relación o.

Pág. 32
Edición de textos (vi)
El buffer de memoria.

Pág. 33
Edición de textos (vi)
Modos de operación.

Pág. 34
Edición de textos (vi)
Invocando a vi.
$ vi texo1
Permite editar el archivo "texto1", comenzando en la primera
línea.
$ vi +n texto1
Permite editar el archivo comenzando en la línea n.
$ vi + texto1
Permite editar el archivo comenzando en la última línea.
$ vi +/patrón texto1
Edita el archivo comenzando con la primera línea que contenga
patrón.
$ vi -r archivo
Recupera archivo después de una falla del sistema.

Pág. 35
Edición de textos (vi)
Movimiento del cursor por unidades de medida.
Mandato Mueve el cursor
Espacio, l un espacio a la derecha.
H espacio a la izquierda
w una palabra a la derecha
W una palabra delimitada por blancos a la derecha.
b una palabra a la izquierda
B una palabra delimitada por blancos a la izquierda
$ fin de línea
O principio de línea
[ENTER] principio de la siguiente línea
j  una línea hacia abajo
k una línea hacia arriba.
Pág. 36
Edición de textos (vi)
Movimiento del cursor dentro de la pantalla:
Mandato Mueve el cursor
[Ctrl][d] media pantalla hacia adelante.
[Ctrl][u] media pantalla hacia atrás
[Ctrl][f] una pantalla hacia adelante
[Ctrl][b] una pantalla hacia atrás
nG a la línea n
n| a la columna n
H al principio de la pantalla
M a la parte media de la pantalla
L al final de la pantalla.

Pág. 37
Edición de textos (vi)
Adición de texto.
Todos los mandatos siguientes dejan a vi en el modo
de inserción (excepto r).
Mandato Inserta texto
i antes del cursor
a después del cursor.
A al final de la línea
o en la siguiente línea (abrir una línea)
O en la anterior línea (abrir una línea)
r reemplaza el caracter actual
R reemplaza caracteres, comienza con el caracte
actual (sobreescribe hasta que se presione
[ESC])
Pág. 38
Edición de textos (vi)
Borrar y cambiar de texto.
En al siguiente lista, [UM] representa una unidad de medida
que puede ir precedida de un factor de repetición [FR].
Mandato Efecto
[FR]x borrar el número de caracteres especificado por
FR, empezando por el caracter en curso.
[FR]X borrar el número de caracteres especificado por
FR, empezando por el caracter siguiente al que
está en curso.
[FR]dd borrar el número de líneas especificado por FR.
D borrar desde la posición del cursor hasta el final
de la línea.

Pág. 39
Edición de textos (vi)
Búsqueda de una cadena.
En la lista siguiente, [rexp] representa una expresión
regular que puede ser una cadena de caracteres
sencilla.
Mandato Efecto
/[rexp] busca rexp hacia adelante.
?[rexp] busca rexp hacia atrás.
n repite la búsqueda original en forma exacta.
N repite la búsqueda original en la dirección
opuesta.
/ repite la búsqueda original hacia adelante.
? repite la búsqueda original hacia atrás.

Pág. 40
Edición de textos (vi)
Sustitución de una cadena.
El formato de un mandato de sustitución es el siguiente:

:[dirección]s/cadena1/cadena2/g]

dirección: es número de línea o dos números de líneas


separados por una coma.
. representa la línea en curso
$ expresa la última línea
% el archivo completo.
cadena1 es una expresión regular que puede ser una
cadena de caracteres sencilla.
■cadena2 es una cadena de reemplazo.
Pág. 41
Edición de textos (vi)
Mandatos especiales.
:e nombre-de-archivo
:e! nombre-de-archivo
:f [nombre-de-archivo]
:q
:q!
:w [nombre-archivo]
:!mandato-Unix
!! mandato-Unix
Ctrl-G
Ctrl-L
ZZ

Pág. 42
Entrada y Salida en Unix
Redireccionando los datos

Pág. 43
Entrada y Salida en Unix
Redireccionando los datos

■ La salida de un comando puede ser redirigida a un


archivo añadiendo, a continuación de la línea del
comando, el caracter ">" y el nombre del archivo al que
se va a dirigir dicha salida. Si tal archivo no existiera
entonces, se creará en ese momento.
■ Por ejemplo:

$ echo "Texto para grabar" > file1

Pág. 44
Entrada y Salida en Unix
Redireccionando los datos

$ echo "Texto para grabar" > file1

■ En la pantalla no aparecerá nada, ya que el archivo file1


acaba de crearse y contiene los 17 caracteres que
forman Texto para grabar y el caracter salto de línea
(newline).
■ Si el archivo file1 hubiese existido antes de la operación
del comando entonces, su contenido original se hubiera
perdido.

Pág. 45
Entrada y Salida en Unix
Redireccionando los datos

■ También se puede adicionar información al final de un


archivo, pero para ello, hay que utilizar los caracteres
">>" seguidos del nombre de tal archivo. Si el archivo no
existiera previamente entonces, se creará en ese
momento.
■ El redireccionamiento de la entrada estándar es
exactamente igual que el de la salida, pero en este caso
se utilizará el caracter "<" seguido del nombre del
archivo que debe leerse. Cuando el redireccionamiento
ha finalizado, la entrada del comando se tomará del
archivo especificado, en lugar de tomarse del teclado del
terminal.
Pág. 46
Entrada y Salida en Unix
Filtros y tuberías

■ Supongamos que desea imprimir sus archivos "prog1",


"prog2", "prog3" y "prog4", de manera que toda la
información aparezca junta. Una forma sería reunir
primero todos los datos en un archivo y después
imprimirlos:

$ cat prog1 prog2 prog3 prog4 > archtemp


$ pr -h Datos-de-Prueba archtemp
$ rm archtemp

Pág. 47
Entrada y Salida en Unix
Filtros y tuberías

■ pr produce un listado impreso de uno o más archivos,


para lo cual, acepta diversas opciones que especifican
cómo debe formatearse el texto. Por ejemplo, la opción
-h significa que pr tomará el argumento (Datos-de-
Prueba) como el titular que debe encabezar cada
página.
■ Es evidente que la tarea anterior implica una serie de
pasos para su ejecución. Usaremos una tubería para
mostrar su versatilidad para la misma tarea, así se toma
la salida de cat y se conecta a la entrada de pr:
$ cat prog1 prog2 prog3 prog4 | pr -h Datos-de-Prueba

Pág. 48
Entrada y Salida en Unix
Filtros y tuberías

■ Por medio de los comandos de interconexión de


procesos, podemos llevar a cabo procesos como el
siguiente :

$ cat prueba.c | pr | tee tempo | lp -d laser -n2 -m

■ Se imprimen dos copias (-n2) del programa prueba.c,


en la impresora llamada laser (-d laser), y se me envía
un mensaje de correo (-m).
■ Adicionalmente se ha generado una copia en disco (tee
tempo), la cual es una copia formateada de mi programa
en lenguaje C.
Pág. 49

También podría gustarte