Download Practica 2: Comandos Básicos de Linux

Document related concepts

Samba (programa) wikipedia , lookup

Filesystem Hierarchy Standard wikipedia , lookup

Mkdir wikipedia , lookup

Carpeta de usuario wikipedia , lookup

Find wikipedia , lookup

Transcript
Practica 2: Comandos Básicos de Linux
¿Qué es el Software Libre?
Para que un software sea considerado Libre sus usuarios deben tener derecho a:




Utilizar el programa, sin restricciones, donde quiera, como quiera y para lo que quiera.
Estudiar cómo funciona el programa y, si lo desean, a adaptarlo a sus necesidades
específicas.
Distribuir copias a cualquier persona que deseen.
Mejorar el programa, publicar y distribuir sus mejoras al público
El software libre no se debe asociar a “software gratuito” ya que conservando los derechos
mencionados el software libre también puede ser comercializado.
Proyecto GNU
Iniciado por Richard Stallman en el año 1984 con el objetivo de crear un sistema operativo
completamente libre. El nombre «GNU» (que significa «ñu» en inglés) es un acrónimo de “GNU No
es Unix”.
GNU/Linux
GNU Linux es un sistema operativo que controla los recursos de una computadora y la interacción
del usuario con ésta. Permite a uno o varios usuarios ejecutar sus programas y controla los
dispositivos externos, como cintas, impresoras, terminales, etc. Por la forma como maneja los
recursos de la máquina y la política de tiempo compartido entre procesos, GNU Linux es un
sistema operativo multiusuario.
GNU Linux es un clon del sistema operativo Unix, inspirado en MINIX, de libre distribución,
diseñado originalmente para computadores 80386 y 80486.
El sistema operativo GNU Linux fue desarrollado por Linus Torvalds en la Universidad de Helsinki Finlandia en 1991. La versión 0.01 fue liberada por Linus en Septiembre de ese año.
Historia
En 1988 Linus Torvalds fue admitido en la Universidad de Helsinki, ese mismo año el profesor
Andrew Tanenbaum saca a la luz el S.O. Minix con propósitos didácticos.
A la edad de 21 años, con 1 año de experiencia programando (en C), ya conocía lo suficiente del
sistema operativo Minix como para tomar prestadas algunas ideas y empezar un proyecto
personal. Basándose en Design of the Unix Operating System, crearía una implementación que
ejecutará cualquier tipo de programa, pero sobre una arquitectura de computadores compatibles,
IBM/PC.
Este proyecto personal desembocó el 5 de octubre de 1991 con el anuncio de la primera versión
de Linux capaz de ejecutar BASH (Bourne Again Shell) y el compilador conocido como GCC (GNU
Compiler Collection).
En enero de 1992 se adoptó la Licencia Pública General (GPL) para Linux. Ésta añade libertades de
uso a Linux totalmente opuestas a las del software propietario, permitiendo su modificación,
redistribución, copia y uso ilimitado.
Características





Tiempo Compartido
Multiusuario
Multitareas
Núcleo Codificado en Lenguaje de Alto Nivel
o Linus Torvalds escribió el núcleo de GNU Linux en lenguaje C. Por esta razón es
muy fácil trasladar el sistema operativo a cualquier plataforma.
Originalmente diseñado para Programadores
Componentes del sistema GNU/Linux
En la Figura 1. Componentes del sistema GNU/Linux, se pueden observar los componentes básicos
del sistema GNU/Linux:
Hardware
Kernel o Núcleo
Terminal o conchas
Programas de Aplicación
Figura 1. Componentes del sistema GNU/Linux
Kernel o Núcleo
Es el corazón del sistema operativo. Es el encargado de que el software y el hardware puedan
trabajar juntos. Este es un proceso que siempre se encuentra en memoria principal
Las funciones más importantes son:



Administración de la memoria para todos los programas y procesos en ejecución.
Administración del tiempo de procesador para los programas y procesos en
ejecución.
Es el encargado de que podamos acceder a los periféricos de nuestro computador
de una manera cómoda.
Terminal o Conchas (shells)
Los interpretadores de comandos, o conchas, conforman la interfaz mediante la cual los usuarios
pueden comunicarse con el sistema operativo y ejecutar sus requerimientos. Estos son programas
comunes que se encargan de leer, interpretar y ejecutar las instrucciones dadas por los usuarios.
Distribuciones
El movimiento GNU ha generado una gran cantidad de aplicaciones y programas que realizan
diferentes tareas y están dedicadas a diferentes propósitos. La compilación de aplicaciones, núcleo
e instaladores conforman lo que se conoce como distribución.
Existen distribuciones que están soportadas comercialmente, como Fedora (Red Hat), openSUSE
(Novell), Ubuntu (Canonical Ltd.), Mandriva, y distribuciones mantenidas por la comunidad como
Debian y Gentoo. Aunque hay otras distribuciones que no están relacionadas con alguna empresa
o comunidad, como es el caso de Slackware.
En general, las distribuciones Linux pueden ser:










Comerciales o no comerciales.
Ser completamente libres o incluir software privativo.
Diseñadas para uso en el hogar o en las empresas.
Diseñadas para servidores, escritorios o dispositivos empotrados.
Orientadas a usuarios regulares o usuarios avanzados.
De uso general o para dispositivos altamente especializados, como un
cortafuegos, un enrutador.
Diseñadas e incluso certificadas para un hardware o arquitectura específicos.
Orientadas hacia grupos en específico, por ejemplo a través de la
internacionalización y localización del lenguaje, o por la inclusión de varios
paquetes para la producción musical o para computación científica.
Configuradas especialmente para ser más seguras, completas, portables o fáciles
de usar.
Soportadas bajo distintos tipos de hardware.
Archivos y Directorios
Un archivo es un conjunto de información al que se le ha asignado un nombre. Por ejemplo, un
documento, una imagen o un programa.
Un directorio es una colección de archivos que sirve para ordenarlos o agruparlos.
Arbol de Directorios en GNU/Linux
Existe una jerarquía de directorios los cuales organizan las utilidades y herramientas del sistema
operativo GNU/Linux (todas sus ramas comienzan desde /). En la Figura 2. Jerarquía estándar de
archivos del sistema GNU/Linux se puede observar dicha estructura.
Figura 2. Jerarquía estándar de archivos del sistema GNU/Linux
Caminos (Path)
Los archivos se pueden referenciar de acuerdo a su ubicación en el árbol de directorios. Indicando
la secuencia de directorios que se deben pasar para llegar hasta donde está el archivo. Esta
secuencia es conocida como ruta de acceso o camino (en inglés, path).
El nombre de la ruta de acceso es considerado el “nombre completo” que se le da a un archivo o
directorio.
En algunas ocasiones, sólo con el nombre no será suficiente para localizar un archivo o directorio,
necesitamos el nombre de la ruta.
Comandos Básicos
Entrada al sistema
La unica forma de tener acceso a un sistema GNU Linux es a través de una cuenta de usuario. Se
debe conocer el login o nombre de la cuenta y el password o clave de acceso.
Luego de introducir el login y el password el sistema validará la información suministrada para dar
acceso o no al usuario logueado.
Interpretadores de comandos
Las conchas o shells son los programas de GNU Linux que interpretan los comandos suministrados
por el usuario; estas se presentan como una interfaz interactiva basada en texto.
Básicamente existen dos vertientes de interpretadores de comandos, los C shell y los Bourne Shell.
La diferencia entre ambos es el estilo que se utiliza para las funciones avanzadas como los son la
definición de variables de ambiente, los scripts y la sintaxis en el lenguaje.
El prompt por omisión, que aparece en pantalla depende del tipo de concha que se utilice. Si
tenemos una concha del tipo csh, el prompt para un usuario será %, para las conchas sh o ksh
tendremos $, el prompt # está reservado para el administrador del sistema o root.
Ejemplo
localhost/$
localhost/#
Comandos simples
Los comandos (órdenes) más simples consisten en una palabra:
$
$
$
$
date
Aparece la
cal
Aparece el
hostname Aparece
uptime Aparece el
fecha y la hora
calendario del mes
el nombre del computador
tiempo que tu computador lleva encendido
Pero a veces no es suficiente con una palabra. Entonces escribimos órdenes con varias palabras
separadas por espacios: el comando y los argumentos u opciones. La primera palabra será el
comando y las siguientes le darán información adicional:
$ cal Agosto 2012
indicado
Aparece el calendario del mes y del año que le hemos
$ man
Es una interfaz de los manuales de referencia de los comandos. Su
sintaxis es la siguiente: man espacio comando.
Ejemplo:
$ man
date
Muestra el manual del comando date.
Para salir de los manuales de comandos, se debe pulsar la tecla Q y regresaremos al prompt.
Moviéndose entre directorios
Supongamos que queremos movernos al directorio /etc y queremos examinar los archivos
que allí se encuentran. Para ello utilizaremos las herramientas cd y pwd:
Vemos en que directorio estamos parados actualmente:
merce:~> pwd
/home/luis
merce:~>
Vemos que estamos en nuestro directorio hogar (/home/luis). Pruebe moviendose a /etc
utilizando una ruta absoluta.
merce:~> cd /etc
merce:/etc>
Y finalmente pedimos un listado de los archivos que están allí con ls (Se muestra sólo un
listado parcial)
merce:/etc> ls
Miscellaneous default.gif hec.html.bak index.html index.shtml
cgi-bin hec.html hec01.html index.html.
merce:/etc>
Veamos de nuevo en qué directorio estamos trabajando
merce:/etc> pwd
/etc
merce:/etc>
Hay un directorio llamado apache2 dentro de /etc cuando usamos ls (la ruta completa del
directorio es /etc/apache2). Podemos ir allá (desde cualquier sitio) utilizando una ruta
absoluta:
merce:~> cd /etc/apache2/
merce:/etc/apache2>
Pero si aún estamos parados en /etc podemos entrar al directorio apache2 utilizando una
ruta relativa (en este caso a etc)
merce:/etc> cd apache2/
merce:/etc/apache2>
Estamos trabajando en /etc/apache2. Supongamos que queremos retroceder a /etc sin
utilizar una ruta absoluta. Podemos hacerlo (para este y cualquier directorio) con la
siguiente instrucción
merce:/etc/apche2l> cd ..
merce:/etc>
La notación ".." significa el nivel anterior, mientras que la notación "." significa el directorio
actual.
Se pueden mezclar tantos niveles de ".." como se quiera (con esto regresamos desde
/etc/apache2 a / utilizando una ruta relativa).
merce:/etc/apache2l> cd ../../
merce:/>
Ahora regresemos a nuestro directorio hogar
merce:/etc> cd /home/usuario
merce:~>
Manejo de Archivos
Listado de archivos y directorios
ls Muestra una lista de los archivos del directorio.
ls –a Despliega una lista de los archivos pero además muestra los archivos de configuración
que suelen llamarse “archivos escondidos" cuyos nombres comienzan con el caracter punto
(.).
ls –l Despliega una lista detallada de los archivos y directorios. Muestra los permisos, el
número de enlaces, propietario, tamaño en bytes y cuando ocurrió la última modificación para
cada uno de los archivos.
ls –F Muestra una lista de archivos agregando una diagonal (/) al final de los nombres de
directorio; un asterisco (*) si se trata de un archivo ejecutable; un arroba (@) si el archivo es
un enlace simbolico y un igual (=) si el archivo es un socket.
Ejemplo:
% ls
Miscellaneous default.gif hec.html.bak index.html index.shtml
cgi-bin hec.html hec01.html index.html.N
% ls -a
. cgi-bin hec.html.bak index.html.N
.. default.gif hec01.html index.shtml
Miscellaneous hec.html index.html
% ls -l
total 64
drwxr-sr-x 2 hector ciencias 512 Apr 19 17:50 Miscellaneous
drwxr-sr-x 2 hector ciencias 512 Apr 19 17:50 cgi-bin
-rw-r--r-- 1 hector ciencias 2085 Dec 12 1996 default.gif
-rw------- 1 hector ciencias 2645 Feb 27 1997 hec.html
-rw------- 1 hector ciencias 1787 Feb 27 1997 hec.html.bak
-rw------- 1 hector ciencias 1368 Feb 27 1997 hec01.html
-rw-r--r-- 1 hector ciencias 860 Dec 12 1996 index.html
-rw-r--r-- 1 hector ciencias 798 Oct 9 1997 index.html.N
lrwxrwxrwx 1 root ciencias 10 Apr 25 15:44 index.shtml -> index.html
Creación y Eliminación de Directorios
mkdir Crea un directorio vacio
Los siguientes ejemplos ilustran un poco mejor el uso de mkdir (usando una ruta relativa,
una ruta absoluta y un atajo)
kumar:~> mkdir documentos
(ruta
relativa, lo crea en donde se encuentren ahora)
kumar:~> mkdir /home/luis/documentos2
(ruta absoluta)
kumar:~> mkdir ~luis/documentos3
(atajo ~)
kumar:~> mkdir prueba
kumar:~>
rmdir Elimina un directorio si está vacío, sino no lo elimina
kumar:~> rmdir documentos
kumar:~> rmdir /home/foto/documentos2
kumar:~> rmdir ~foto/documentos3
kumar:~>
rm –r directorio Elimina un directorio y todo su contenido
Copiar Archivos
cp archivo_origen archivo_destino Copia un archivo origen a un archivo destino
cp archivo1 archivo2 Copia el contenido del archivo archivo1 en el archivo archivo2.
cp arch1 arch2 .... dir1 Cada archivo de la lista será copiado en el directorio dir1. El
directorio dir1 debe estar creado con anterioridad.
cp -r dir1 dir2 Copia todo lo que esté contenido en el directorio dir1 al directorio dir2. Si
dir2 no existe, cp lo creará.
cp -i archivo1 destino Si la opción -i es especificada, el cp preguntará si sobreescribe
“destino" en caso de que este ya exista.
cp -f archivo1 destino La opción -f especifica que se debe sobreescribir todo sin preguntar.
Mover Archivos
mv [ -if ] _le1 [_le2 ...] destino
Este comando mover_a el contenido del archivo _le1 a “destino". Si “destino" es un directorio, mv
lo copiará dentro con el mismo nombre que tenía en su ubicación original. Si “destino" está en el
mismo directorio que _le1 mv funciona cambiando el nombre. Las opciones -i y -f funcionan igual
que en cp
Borrar Archivos
rm nombre del archivo Elimina un archivo
Creando Archivos
1. Usando el comando touch. Touch crea archivos vacios o actualiza la fecha de los archivos
existentes. La sintaxis es touch archivo.
2. Usando el comando cat. Cuando usted quiere crear un archivo y no quiere usar un editor
puede hacer lo siguiente
kumar:~> cat > prueba
(crea el archivo)
Comience a escribir cualquier texto
Esta es una prueba del uso de cat como un editor
simple. Espero que sea util.
Ahora presione simultáneamente las teclas control + D (^D) para
finalizar la edición
kumar:~> ls
foto/ prueba
kumar:~> cat prueba
(visualiza lo que acaba de escribir)
Esta es una prueba del uso de cat como un editor
simple. Espero que sea util.
kumar:~>
Manejo de Permisos
GNU Linux proporciona cuentas para múltiples usuarios, asignando a cada cuenta un directorio
hogar.
El esquema de seguridad de los archivos está estructurado en tres clases de usuarios. El dueño (u)
del archivo, el grupo (g) al que pertenece el dueño, y los otros(o) usuarios que no son el dueño o
no pertenecen a su grupo. (La letra “a" se utiliza para representar a todos los usuarios: dueño,
grupo y otros).
Cada archivo en GNU Linux posee un atributo para identificar el dueño y el grupo. Además, posee
una serie de bits (9 en total) para definir la permisología de lectura, escritura y ejecución del
archivo, como se muestra en la Figura 3. Organización de los bits de permisos
Figura 3. Organización de los bits de permisos
Examinemos en detalle el siguiente archivo:
Aqui cada letra significa lo siguiente:
· d (directory). El archivo es o no un directorio. La letra “d” significa que es un directorio, el guión
“-” significa que es un archivo
· r (read). El archivo puede leerse
· w (write). El archivo puede modificarse, escribirse.
· x (executable). El archivo puede ejecutarse
Veamos que significa cada uno de los renglones de la permisología
 Permiso del propietario: Estas 3 letras dicen qué permisos tiene el propietario con
respecto a un archivo o directorio de su propiedad. Esto es, que puede leerlo, escribirlo,
ejecutarlo (archivo) o buscar en él (directorio).
 Permisos de grupo: Permiten compartir un archivo con un grupo de usuarios. Estas 3 letras
dicen que permisos tienen los archivos para los usuarios que pertenecen al mismo grupo
del archivo.
 Permisos para otros usuarios: Estas 3 letras dicen qué permisos tienen otros usuarios con
respecto al archivo o directorio. Útil para resguardar la privacidad del archivo.
Cambiar los permisos a un archivo o directorio
chmod permisos archivo Comando para cambiar los permisos a un directorio o archivo
Como especificar los permisos
Observe la figura
Es decir, cada letra correspondiente a una parte del permiso (r,w,x) puede estar activada o no (en
1 ó 0) para formar un número binario, el cual es convertido luego a número decimal. Como son
tres posiciones para cada permiso, el mayor número decimal es 7, lo que indica que tiene todos
los permisos: lectura, escritura y ejecución, es decir, todos los bits están en 1. No es correcto
darles la permisología 777 a los archivos o directorios.
Por ejemplo para ponerle permiso de lectura para el usuario, lectura y escritura para el grupo y
ningún permiso a otros debemos escribir
kumar:~> chmod 460 prueba
kumar:~> ls -l
total 2
drwx------ 10 luis users 1024 Sep 27 17:22 foto/
-r--rw---- 1 luis users 78 Sep 29 09:13 prueba
kumar:~>
Actividades
1. Investiga cuál es la versión estable del kernel de Linux
2. Investiga al menos dos distribuciones de Linux y cuáles son sus características
3. Realizar man a los siguientes comandos, tomar nota de las diferentes formas de utilizarlos:
a. cp
b. ls
c. cd
d. df
4. Lista todos los archivos que se encuentran en /etc
5. Lista todos los archivos que se encuentran ocultos en /
6. Lista todos los archivos que se encuentran en su home de usuario (tiene que conseguir
quien es el usuario con el cual se logueo)
7. Ubiquese en la ruta /home/usuario (Recuerde que el usuario depende del que ud. esté
usando en el momento que se logueo), cree la siguiente estructura de directorios
8. Estando en /home/alumno, crea dentro del directorio AlumnosInf los archivos alu1.txt,
fotoalu1.jpg, alu2.txt, fotoalu2.jpg, utilizando una única orden. Puedes elegir hacerlo con
rutas absolutas o relativas.
9. Ahora estás situado en el directorio AulaOpt, y quieres cambiar el directorio de trabajo
actual a NotasOpt. Utiliza rutas relativas.
10. Cree dentro del directorio NotasInf un archivo, llamelo archivo1 y escriba dentro de él
“Hola Linux”
11. Copie el archivo1 al directorio ProfesoresTur con el nombre archivo2
12. Mueva archivo1 al directori AulaOpt
13. Borre el directorio AulaTur
14. Borre el directorio ProfesoresTur y todo lo que contenga
15. Cree otro archivo en Informatica llamelo prueba
16. Al archivo prueba que acaba de crear cambiele los permisos a 547, y especifique que
permisos se le está otorgando a este archivo prueba