0% encontró este documento útil (0 votos)
2 vistas42 páginas

Introducción a UNIX y comandos básicos

UNIX es un sistema operativo multimedia y multiusuario que permite la interacción simultánea de varios usuarios. El documento detalla la estructura de directorios, comandos básicos para la gestión de ficheros y directorios, así como el uso de intérpretes de comandos y características como redirección y tuberías. Además, se abordan conceptos de permisos de ficheros y la importancia de la sensibilidad a mayúsculas y minúsculas en los nombres de comandos y ficheros.

Cargado por

mcz463894
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas42 páginas

Introducción a UNIX y comandos básicos

UNIX es un sistema operativo multimedia y multiusuario que permite la interacción simultánea de varios usuarios. El documento detalla la estructura de directorios, comandos básicos para la gestión de ficheros y directorios, así como el uso de intérpretes de comandos y características como redirección y tuberías. Además, se abordan conceptos de permisos de ficheros y la importancia de la sensibilidad a mayúsculas y minúsculas en los nombres de comandos y ficheros.

Cargado por

mcz463894
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

UNIX

 Es un sistema operativo multimedia y


multiusuario. Esto significa que puede hacer
mas de una persona dado por un ordenador
a la vez, ejecutandoce directamente.
CONSOLAS VIRTUALES
 La consola del sistema es el monitor y el
teclado conectado directamente entre el
sistema. Como es unix es un sistema
operativo multiusuario puede terne otros
términos conectados por los puertos del
sistema.
INTERPRETE DE COMANDOS
 Un interprete de comandos es simplemente
un programa que toma la entrada del
usuario.
 El interprete de comandos es solo uno de
los interfaces del unix, hay muchas
interfaces posibles como el sistema W
Windows. El cual permite ejecutar
comandos usando el ratón y el teclado.
FICHEROS Y DIRECTORIOS
 Bajo la mayoría de los sistemas operativos
(unix incluido) existen el concepto de
fichero, el cual es un conjunto de
información al que le ha asignado un
nombre (llamado nombre de fichero)
ALRBOL DE DIRECTORIOS
 La mayoría de los sistemas unix tienen una
distribución de ficheros estandar de forma
de recursos y localizados. Esta distribución
forma el árbol de directorios, el cual
comienza de un directorio “/”conectado con
la raíz.
DIRECTORIO DE TRABAJO
ACTUAL
 En cualquier momento los ordenadores que
teclee al interprete de comandos son dados
en términos de directorios del trabajo actual.
REFIRIÉNDOSE AL
DIRECTORIO HOME

Bajo tcsh y bash (1) el directorio "home"


puede ser referenciado usando el carácter
de La tilde(~).
Por ejemplo, la orden:
/home/!arr/# more "/papers/historyfinal es
equivalente a:
/home/larry# more
/home/larry/papers/history-fina!
PRIMEROS PASOS EN UNIX
Antes de comenzar es importante destacar
que todos los nombres de ficheros y
comandos son "casesensitive" (que hacen
diferencia entre mayúsculas y minúsculas, a
diferencia de sistemas operativos como
MS-DOS). Por ejemplo, el comando make
es diferente a Make o MAKE.
MOVIÉNDONOS POR EL
ENTORNO
La orden para movernos por la estructura
dedirectorios es cd, abreviación de "cambio
de directorio". Hay que destacar, que la
mayoría de las órdenes Unix más usadas
son de dos o tres letras.
La forma de uso de la orden cd es:
cd <directorio>
donde:
<directorio> es el nombre del directorio al
MIRANDO EL CONTENIDO DE
LOS DIRECTORIOS
El simple movimiento por el árbol de
directorios es poco útil, necesitamos un
nuevo comando, Is. Is muestra por el
Terminal la lista de ficheros y directorios,
por defecto, los del directorio activo.
Por ejemplo:
/home/larry# is
Mail
letters
papers"
CREANDO DIRECTORIOS
NUEVOS
Para ello se usa la orden mkdir.
Pruebe lo siguiente:
/home/larry# mkdir foo
/home/larry# Is -F
Mail/
foo/
letters/
papers/
/home/larry# cd foo
/home/larry/foo# Is
/home/larry/foo#
COPIA DE FICHEROS
La copia de ficheros es efectuada por la
orden cp:
/home/larry/foo# cp /etc/termcap .
/home/larry/foo# cp /etc/shells .
/home/larry/foo#Is -F
shells termcap
/home/larry/foo# cp shells bells
/home/larry/foo# Is -F
bells shells termcap
MOVIENDO FICHEROS
La orden mv mueve ficheros en lugar de
copiarlos. La sintaxis es muy sencilla.
/home/larry/foo# mv termcap sells
/home/iarry/foo# Is -F
bells sells shell
/home/larry/foo#
BORRANDO FICHEROS Y
DIRECTORIOS
Para borrar un fichero, use la orden rm.
("rm" viene de "remove").
/home/larry/foo# rm bells sells
/home/larry/foo# Is –F
shells
/home/larry/foo#
MIRANDO LOS FICHEROS

Las órdenes more y cat son usadas para ver


el contenido de ficheros, more muestra el
fichero pantalla a pantalla mientras que cat
lo muestra entero de una vez.
Para ver el contenido del fichero shells
podemos usar la orden
/home/larry/foo# more shells
OBTENIENDO AYUDA EN LÍNEA

Prácticamente cada sistema UNIX, incluido


Linux, proporciona una utilidad conocida
como "páginas de manual". Estas
páginas contienen documentación en línea
para todas las órdenes desistema,recursos,
ficheros de configuración, etc.
SUMARIO DE ÓRDENES
BÁSICAS
Está sección introduce algunos de las órdenes
básicas más útiles de un sistema UNIX,
incluidas las ya cubiertas en las secciones
[Link] opciones usualmente
comienzan con "-" y en la mayoría de los
casos se pueden añadir múltiples opciones de
una letra con un único "-". Por ejemplo, en
lugar de usar Is -I -F es posible usar Is -[Link]
lugar de listar todas las opciones disponibles .
Comando ls: Muestra información sobre los
ficheros o directorios indicados. Su sintaxis es:
ls<fichero1><fichero2>….<ficheroN>
Ejemplo: ls – lF /home/larry, esto mostrará el
contenido de directorio harry

El Comando cp: Este comando copia ficheros


o directorios su sintaxis es:
cp<fichero1><fichero2>…….<ficheroN>
<destino>
Ejemplo: cp../frog joe, copia el fichero ../frog al
fichero directorio joe
Comando mv: Mueve ficheros a otro directorio, es
equivalente a una copia seguida del borrado del
original. Su sintaxis es: mv<fichero1> …
<ficheroN><destino>
Ejemplo: mv ../frog joe mueve el fichero ../frog al
fichero o directorio joe.

Comando rm: Borra ficheros, estos ficheros


cuando son borrados por UNIX son irrecuperables,
su sintaxis es: rm<fichero1>…<ficheroN>
Ejemplo: rm – i/home/larry/joe /home/larry/frog
Comando mkdir: Crea directorios nuevos
su sintaxis es: mkdir<dir1><dir2>….<dirN>
Ejemplo: mkdir /home/larry/test, crea el
directorio test colgando de /home/larry

Comando rmdir: Esta orden borra


directorios vacios su sintaxis es: rmdir
<dir1><dir2>…<dirN>
Ejemplo: rmdir /home/larry7papers, borra
el directorio /home/larry/papers si esta vacio
Comando more: Muestra el contenido de los
ficheros indicados, una pantalla cada vez. Su
sintaxis es: more<fichero1><fichero2>…
<ficheroN>
Ejemplo: more papers/[Link], muestra
por el terminal el contenido del fichero
papers/history-final.

Comando cat: Sirve para concatenar ficheros,


tambien es usado para mostrar el contenido
completo de un fichero, sintaxis:
cat<fichero1><fichero2>……<ficheroN>.
Ejemplo: cat letters/froma-mdw, muestra por el
terminal el contenido del fichero letters/from-
mdw.
Comando echo: Simplemente envia al terminal
los argumentos pasados. Sintaxis:
echo<arg1><arg2>….<argN>
Ejemplo: echo “Hola mundo”, muestra la cadena
“Hola mundo”.

Comando grep: Muestra todas las lineas de un


fichero dado, Sintaxis: grep<patron>
<fichero1>….<ficheroN>
Ejemplo: grep loomer /etc/hosts, mostrará todas
las líneas en el fichero (etc/hosts que contienen la
cadena loomer.
Explorando el Sistema de Ficheros

El sistema de ficheros es la colección de


ficheros y la jerarquía de directorios de
su sistema. En esta exploración veremos
directorios tales como : bin, dev, etc,
home, install, lib, mnt, proc, root, tmp,
user, usr y var.
Directorio /bin
 Es la abreviación de “bianries” o
ejecutables. En este directorio residen la
mayoria de los programas esenciales del
sistema.
 Usando ls –F verá que la mayoría de los
ficheros en /bin tienen un asterisco añadido
al final de los nombres, esto indica que
dichos ficheros son ejecutables.
Directorio /dev
 Los ficheros en /dev son conocidos como
controladores de dispositivo, son usados
para acceder a los dispositivos del sistema
y de recursos.
 A continuación daremos una lista de
algunos de los controladores de dispositivo
mas usados:
 /dev/console: hace referencia a la consola del
sistema, es decir al monitor conectado
directamente.
 /dev/ttyS y /dev/cua, acceden a los puertos en
serie, por ejemplo: /dev/ttyS0 hace referencia al
Com1 bajo MS-DOS.
 /dev/hda hace referencia a la totalidad del
primer disco duro.
 /dev/lp0 hacer referencia a LPT! En el mundo
MS-DOS.
 /dev/null es usado como “agujero negro”, es
decir cualquier dato enviado a este dispositivo
desaparece.
 Directorio /etc: Contiene una serie de ficheros
de configuración de sistema. Entre estos
tenemos /etc/passwd (la base de datos de
usuarios), /etc/rc (guiones de inicialización del
sistema)
 Directorio /sbin: Se usa para almacenar
programas esenciales del sistema que los usará
el administrador del sistema.
 Directorio /home: Contiene los directorios
“home” de los ususarios. Ejm: /home/larry es el
directorio del usuario “larry”. Pero en un sistema
recien instalado no habrá ningún usuario en
este directorio.
 Directorio /usr: Es un directorio muy importante
contiene una serie de subdirectorios que
contienen a su vez algunos de los mas
importantes y útiles programas y ficheros de
configuración.
 Directorio /usr/X386: Contiene el sistema X
Window, es decir contiene todos los ejecutables
de X Window, ficheros de configuración y
soporte.
 Directorio /usr/bin: Es el almacén real de
programas del sistema UNIX. Contiene la
mayoría de los programas que no se encuentran
en otras partes.
 Directorio: /usr/include: Contiene los
ficheros de cabecera para el compilador
de C. Estos ficheros declaran estructuras
de datos.
 Directorio /usr/g++-include: Contiene
ficheros para compilar C++, parecido al
directorio anterior.
 Directorio /var: Contiene directorios que
a menudo cambian de tamaño o tienden a
crecer muchos de estos solian estar en
/usr.
 Directorio /lib: Contiene imágenes de
librerías compartidas. Estos ficheros
contienen código que compartirán muchos
programas.
 Directorio /proc: es un “sistema de
ficheros virtual”, es decir los ficheros que
contienen realmente residen en memoria y
no en un disco.
 Directorio /tmp: Este directorio sirve para
guardar información temporal.
TIPOS DE INTÉRPRETES DE
COMANDOS
 Hay varios tipos de intérpretes de comandos en el
mundo UNIX. Los dos más importantes son el “Bourne
Shell” y el “C Shell”. El intérprete de comandos Bourne,
usa una sintaxis de comandos como la usaba en los
primeros sistemas UNIX, como el System III. El nombre
del intérprete Bourne en la mayoría de los Unix es
/bin/sh (donde Sh viene a ser “Shell”, intérprete de
comandos en inglés).
 El intérprete C usa una sintaxis diferente, a veces
parecida a la del lenguaje de programación C, y en la
mayoría de los sistemas UNIX se encuentra como
/bin/csh.
 Linux tiene el Tcsh, que es una versión extendida del C
original.
 El tipo de intérprete de comandos que decida usar es
puramente una cuestión de gustos.
CARÁCTERES COMODÍN
 Una característica importante de la mayoría de los intérpretes de
comandos en Unix es la capacidad para referirse a más de un
fichero usando carácteres especiales. Estos llamados comodines le
permiten referirse a, por ejemplo, todos los ficheros que contienen
el carácter “ñ”.
 El comodín “*” hace referencia cualquier carácter o cadena de
carácteres en el fichero.
 El proceso de la sustitución de “*” en nombres de ficheros es
llamado expansión de comodines y es efectuado por el intérprete
de comandos.
 Una nota importante acerca del carácter comodín “*”. El uso de este
comodín NO cuadrará con nombres de ficheros que comiencen con
un punto (“.”).
 Otro carácter comodín es “?”. Este carácter comodín solo expande
un único carácter.
 Luego “Is ?” mostrará todos los nombres de ficheros con un
carácter de longitud, “Is termca?” mostrará “termcap” pero no
“[Link]”.
 Los carácteres comodín le permiten referirse a más de un fichero a
la vez.
FONTANERÍA UNIX
 ENTRADA Y SALIDA ESTÁNDARD
 Muchos comandos UNIX toman su entrada de algo
conocido como entrada estándar y envían su salida a la
salida estandard ( a menudo abreviado como “stdin” y
“stdout”).
 El intérprete de comandos configura el sistema de forma
que la entrada estandard es el teclado y la salida la
pantalla.
 Con el comando cat. Normalmente cat lee datos de los
ficheros cuyos nombres se pasan como argumentos en la
línea de comandos y envía estos datos directamente a la
salida estandard
REDIRECCIONANDO LA
ENTRADA Y SALIDA
 Cat es incluso más simple, no hace nada con los datos de
entrada, simplemente envía a la salida cualquier cosa que
le llega.
 Esto introduce el concepto de filtro. Un filtro es un
programa que lee datos de la entrada estándar, los
procesa de alguna forma, y devuelve los datos procesados
por la salida estandard.
 Usando la redirección la entrada estandard y/o salida
estandard pueden ser referenciadas desde ficheros. Sort
es un filtro simple: ordena los datos de entrada y envía el
resultado a la salida estandard.
USO DE TUBERIAS (PIPES)
El uso de tuberías (pipes) es otra característica del interprete de
comandos, que nos permite conectar una cadena de comandos en
una pipe, donde la stdout del primero es enviada directamente a la
stdin del segundo y así sucesivamente. Queremos conectar la salida
de ls con la entrada de sort. Para crear un pipe se usa el símbolo |:

[Crispin@Globus /para_imprimir]§ ls | sort -r


notas
tesis
historia-final
capítulo-1
[Crispin@Globus /para_imprimir]§
Podemos «entubar» más de dos comandos a la vez. Ahora podemos
ir avanzando pagina a pagina cómodamente.
[Crispin@Globus /para_imprimir]§ ls /usr | sort -r | more
PERMISOS DE FICHEROS
CONCEPTO:

Al ser Linux un sistema multiusuario, para proteger ficheros de usuarios


particulares de la manipulación por parte de otros, Linux proporciona un
mecanismo conocido como permisos de ficheros. Este mecanismo permite
que ficheros y directorios "pertenezcan" a un usuario en particular.
Linux también permite que los ficheros sean compartidos entre usuarios y
grupos de usuarios.
Cada fichero pertenece a un usuario en particular. Por otra parte, los
ficheros también pertenecen a un grupo en particular, que es un conjunto
de usuarios definido por el sistema. Cada usuario pertenece al menos a un
grupo cuando es creado. El administrador del sistema pueda hacer que un
usuario tenga acceso a más de un grupo.
Los grupos usualmente son definidos por el tipo de usuarios que acceden a
la máquina. Por ejemplo, en un sistema UNIX de una universidad, los
usuarios pueden ser divididos en los grupos estudiantes, dirección, profesor
e invitados. Hay también unos pocos grupos definidos por el sistema (como
bin y admin) los cuales son usados por el propio sistema para controlar el
acceso a los recursos. Muy raramente los usuarios normales pertenecen a
estos grupos.
INTERPRETANDO PERMISO DE
FICHEROS
Veamos un ejemplo del uso de permisos de ficheros.
Usando el comando ls con la opción -l se mostrara un
listado "largo" de los ficheros, el cual incluye los
permisos de ficheros.

/home/torvalds/kernel# ls -l listaarchivos
-rw-r--r-- 1 torvalds users 505 May 10 12:05
listaarchivos

El primer campo impreso en el listado representa los


permisos de ficheros. El tercer campo es el propietario
del fichero (torvalds), y el cuarto es el grupo al cual
pertenece el fichero (users). Obviamente, el ultimo
campo es el nombre del fichero (listaarchivos)
 Este fichero pertenece a torvalds y al grupo users. La cadena -rw-r--r-- nos
informa, por orden, de los permisos para el propietario, el grupo del fichero
y cualquier otro usuario.
 El primer carácter de la cadena de permisos ("-") representa el tipo de
fichero. El "-" significa que es un fichero regular. Las siguientes tres letras
("rw-") representan los permisos para el propietario del fichero, torvalds. El
"r" para "lectura" y "w" para escritura. Luego torvalds tiene permisos de
lectura y escritura para el fichero listaarchivos.
 Como ya mencionamos, aparte de los permisos de lectura y escritura esta
el permiso de "ejecución", representado por una "x". Como hay un "-" en
lugar del "x", significa que torvalds no tiene permiso para ejecutar ese
fichero. Esto es correcto, puesto que stuff no es un programa de ningún
tipo. Por supuesto, como el fichero es de torvalds, puede darse a si mismo
permiso de ejecución si lo desea.
 Los siguientes tres caracteres, r-- representan los permisos para los
miembros del grupo. El grupo al que pertenece el fichero es users. Como
solo aparece un "r" cualquier usuario que pertenezca al grupo users puede
leer este fichero.
 Los últimos tres caracteres, también r--, representan los permisos para
cualquier otro usuario del sistema (diferentes del propietario o de los
pertenecientes al grupo users). De nuevo, como solo esta presente el "r",
los demás usuarios pueden leer el fichero, pero no escribir en el o
ejecutarlo.
DEPENDENCIAS

Es importante darse cuenta de que los permisos de un fichero


también dependen de los permisos del directorio en el que
residen. Por ejemplo, aunque un fichero tenga los permisos -
rwxrwxrwx, otros usuarios no podrán acceder a el a menos que
también tengan permiso de lectura y ejecución para el
directorio en el cual se encuentra el fichero. Si torvalds quiere
restringir el acceso a todos sus ficheros, podría simplemente
poner los permisos de su directorio "home" /home/torvalds a -
rwx------. De esta forma ningún usuario podrá acceder a su
directorio ni a ninguno de sus ficheros o subdirectorios.
torvalds no necesita preocuparse de los permisos individuales
de cada uno de sus ficheros.
CAMBIANDO PERMISOS

El comando chmod se usa para establecer los permisos de un fichero. Solo el propietario puede
cambiar los permisos del fichero. La sintaxis de chmod es:
chmod {a,u,g,o}{+,-}{r,w,x} [filenames]
Brevemente, indicamos a que usuarios afecta all, user, group o other. Entonces se especifica si
se están añadiendo permisos (+) o quitándolos (-). Finalmente se especifica que tipo de permiso
read, write o execute.

MANEJANDO ENLACES DE FICHEROS

En UNIX se pueden crear ficheros especiales que son realmente referencias a otros ficheros en
el sistema. Esto nos permite por ejemplo acceder a un mismo fichero con varios nombres o tener
varias versiones de un fichero de configuración y, mediante enlaces, usar en cada momento la
que más nos convenga.
Existen dos tipos de enlaces. Los físicos (o duros) y los simbólicos. Los primeros funcionan
añadiendo una nueva entrada de directorio que apuntará al mismo inodo que el fichero original
mientras que al crear un enlace simbólico lo que se hace es crear un pequeño fichero que
contiene la ruta (absoluta o relativa) hasta el otro fichero. La ventaja de los enlaces duros es que
ocupan menos espacio que los otros, pero no pueden crearse entre sistemas de ficheros
distintos, mientras que los simbólicos si pueden.

La sintaxis es sencilla. Para crear un enlace físico usaremos:


 ln fichero_origen enlace
 Para crear uno simbólico bastará usar el parámetro -s de ln.
CONTROL DE TAREAS
TAREAS Y PROCESOS
En este punto tendremos que empezar a determinar que es un
proceso y una tarea. Anteriormente dijimos que un programa se
transformaba en proceso en el momento en que este se ejecutaba y
estaba en memoria. Además del nombre que el proceso recibe, que
es el nombre del programa que esta corriendo, recibe también un
número identificativo llamado PID (process ID, o ID de proceso). Si
ejecutamos el comando ps veremos los procesos que están
ejecutando en este momento con nuestro UID, es decir que
estamos corriendo nosotros mismos.
Muchos comandos Linux toman su entrada de algo conocido como
entrada estándar y envían su salida a la salida estándar (a Cada
vez que usted ejecuta un programa, usted lanza lo que se conoce
como proceso, que es simplemente el nombre que se le da a un
programa cuando se esta ejecutando.
El comando ps visualiza la lista de procesos que se están ejecutando
actualmente, por ejemplo:
[Crispin@Globus /Crispin]§ ps

PID TTY TIME CMD


45 pts/0 00:00:00 bash
84 pts/0 00:00:00 ps
La columna PID representa el identificador de proceso. La ultima
columna CMD, es el nombre del proceso que se esta ejecutando. Un
proceso que esta corriendo se denomina tarea para el shell. Los
términos proceso y tarea, son intercambiables. Sin embargo, se suele
denominar «tarea» a un proceso, cuando es usado en conjunción con
control de tareas, que es un rasgo del shell que permite cambiar entre
distintas tareas.
En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que
es el ultimo comando que ellos teclearon desde el shell. Sin embargo,
usando el control de tareas, usted podrá ejecutar diferentes tareas al
mismo tiempo, cambiando entre cada uno de ellos conforme lo
necesite.

También podría gustarte