SlideShare una empresa de Scribd logo
Practicas de Laboratorio
FP-UNA 2017
Introducción al Shell UNIX
Interfaz de usuario basada en caracteres con el sistema
operativo tipo UNIX (Linux, AIX, SunOS, etc.)
Interacción con el usuario por línea de comandos
Salida de los programas basada en texto
Traduce las líneas de comandos en instrucciones del
sistema operativo
UNIX es uno de los primeros SO en hacer la interfaz de
usuario independiente del SO
Alcance:
– Interfaz de usuario
– Entorno de programación. Shell scripting.
Bourne Again Shell (BASH)
Origen:
– En 1978 Stephen Bourne desarrollo y distribuyo
en la version del Sistema operativo Unix Version
7.
– En 1987 Brian Fox escribió para el proyecto
GNU sustituyendo al Bourne Shell por el BASH.
– En 1990 Chet Ramey renovó la versión
estableciendo como interprete predeterminado
en la mayoría de los sistemas GNU/Linux, MAC
OS X, Tiger y escalable en la mayoría de los
sistemas operativos tipo unix
Bourne Again Shell (BASH)
Prestaciones más relevantes:
–Edición de la línea de comandos
–Control de trabajos
–Personalización de la shell
–Completo entorno de programación
Bash tiene como objetivo ser una
implementación conforme de la
especificación de Herramientas y Shell IEEE
POSIX (IEEE Working Group 1003.2).
Evolución de Internet
• Ficheros que lee bash cuando se arranca :
• 1./etc/profile
• 2.~/.bashrc, ~/.bash_profile, ~/.bash_login, and
~/.profile
• Más información sobre el bash:
• # man bash
Características de Linux
GNU/Linux (comúnmente Linux a secas) es uno más de los
muchos S.O. que existen en la actualidad que tiene una serie
de características que lo hacen especial:
 Libre: Se puede descargar de internet, copiar y distribuir sin que por ello se
incurra en ningún tipo de delito. La licencia que establece los términos de uso,
copia y distribución se denomina Licencia GNU (www.gnu.org)
 Hecho por voluntarios: Linux no se creó para obtener beneficios con él sino
para satisfacer una serie de necesidades a la hora de trabajar con el ordenador.
 Multiusuario: Varios usuarios pueden conectarse y usar el mismo ordenador a la
vez.
 Multitarea: Pueden funcionar varios programas al mismo tiempo en la misma
máquina.
 Multiplataforma: Hay versiones de Linux para gran cantidad de plataformas:
todos los PCs basados en procesadores Intel o AMD, ordenadores
Digital/Compaq con procesadores Alpha, ordenadores Apple, ultraportátiles como
el Asus Eee e incluso dispositivos móviles como el Sharp Zaurus.
 Estable: Linux es un sistema operativo muy maduro, probado durante mucho
tiempo. Hay muchos servidores que llevan funcionando bajo Linux de forma
ininterrumpida muchos años sin un solo cuelgue.
 Eficiente: Linux aprovecha bien los recursos hardware. Incluso los viejos
Pentium pueden funcionar bien con Linux y servir para alguna tarea.
Directorios más importantes de Linux:
/bin Contiene programas ejecutables básicos para el sistema.
/boot Contiene los ficheros necesarios para el arranque del sistema.
/dev Contiene los ficheros correspondientes a los dispositivos
/etc Contiene ficheros y directorios de configuración.
/home
Contiene los directorios de trabajo de los usuarios. Cada usuario tiene su
propio directorio en el sistema dentro de /home/.
/lib Contiene las librerías compartidas y los módulos del kernel
/media Dentro de este directorio se montan los dispositivos como el CD-ROM,
memorias USB, discos duros portátiles, etc
/opt Directorio reservado para instalar aplicaciones.
/sbin Contiene los ficheros binarios ejecutables del sistema operativo.
/srv Contiene datos de los servicios proporcionado por el sistema.
/tmp Directorio de archivos temporales.
/usr
Aquí se encuentran la mayoría de los archivos del sistema,
aplicaciones, librerías, manuales, juegos… Es compartido por todos los
usuarios.
/var
Contiene archivos administrativos y datos que cambian con frecuencia:
registro de errores, bases de datos, colas de impresión, etc.
/root Directorio de trabajo del administrador del sistema (usuario root).
/proc Aquí se almacenan datos del kernel e información sobre procesos.
Linux vs Unix
A nivel de línea de comandos, apenas hay diferencias. Se pueden usar
los mismos comandos indistintamente en distribuciones Linux o en
sistemas Unix.
A nivel gráfico tampoco hay mucha diferencia ya que ambos sistemas
utilizan X-Windows.
La principal diferencia es que Linux es libre mientras que la mayoría
de Unix no (a veces cuestan mucho dinero).
Otra diferencia importante es el hecho de que hay versiones de Linux
para prácticamente cualquier plataforma, mientras que los diferentes
Unix suelen estar enfocados a un hardware muy específico
Linux vs Windows
La principal diferencia, una vez más, es que Linux es libre
y, en la mayoría de los casos, gratis mientras que Windows
es un software propietario y requiere de licencia. De igual
manera, la gran mayoría de aplicaciones para Linux son
libres y gratuitas mientras que las aplicaciones para
Windows no lo son, aunque a veces es fácil encontrar
programas de evaluación (shareware) para Windows que
permiten probar un determinado programa durante un
tiempo de forma gratuita
¿QUÉ ES UNA DISTRIBUCIÓN
DE LINUX?
Una distribución de Linux es el sistema operativo propiamente dicho,
lo que se suele denominar el núcleo (kernel en inglés) junto con un
programa de instalación y un conjunto de aplicaciones, normalmente
de propósito general.
Distribución = Núcleo de Linux + Programa de instalación +
Aplicaciones
VIZUALIZACIÓN, CREACIÓN Y CAMBIO
DE DIRECTORIO (pwd, ls, cd, mkdir)
pwd
El comando pwd muestra cuál es el directorio de trabajo actual, en otras
palabras, le dice al usuario dónde se encuentra dentro de la estructura de
directorios del sistema. Es muy útil cuando estamos perdidos.
fpuna@fpuna-Virtualvox:~$ pwd
/home/fpuna
ls
El comando ls muestra el contenido del directorio actual. Por defecto,
los archivos ocultos no se muestran. Éste es seguramente el comando
que más se utiliza.
fpuna@fpuna-Virtualvox:~$ ls
VIZUALIZACIÓN, CREACIÓN Y CAMBIO
DE DIRECTORIO (pwd, ls, cd, mkdir)
Cd (change dir)
El comando cd (change dir) permite cambiar de directorio. Si se utiliza tal cual,
sin ningún tipo de argumento, cambia al directorio de trabajo personal. Si se
utiliza seguido de una ruta, cambia al directorio que se indica.
fpuna@fpuna-Virtualvox:~$ pwd
/home/fpuna
fpuna@fpuna-Virtualvox:~$cd /etc
fpuna@fpuna-Virtualvox:/etc$ pwd
/etc
En este caso, el usuario estaba en su directorio de trabajo, y ha “saltado” al
directorio /etc. El lector puede teclear el comando ls si tiene curiosidad por ver lo
que hay dentro.
Las rutas pueden ser absolutas o relativas. Una ruta es absoluta cuando
comienza por el carácter “/” y relativa cuando comienza por cualquier otro
carácter
VIZUALIZACIÓN, CREACIÓN Y CAMBIO
DE DIRECTORIO (pwd, ls, cd, mkdir)
mkdir
Se pueden crear directorios con el comando mkdir. Por ejemplo, para crear
una estructura de carpetas donde un estudiante guardará información sobre
sus asignaturas según el siguiente esquema
/Documentos
/Escritorio
/Imágenes
/Música
/SO
/examenes_antiguos
/home/fpuna /apuntes
/lcik /curso_03
/Estructura
/Redes
/libros_de_ejercicios
/videos
/informatica /compiladores_pascal
/Video
VISUALIZACIÓN DE FICHEROS
(cat, more, less, head, tail)
Los comandos cat, more y less sirven para mostrar el contenido
de ficheros de texto. La diferencia radica en cómo se muestra el
contenido. A todos estos comandos hay que pasarles como argumento
el fichero que se quiere mostrar. Se puede indicar una ruta, en caso de
que el fichero que se quiere mostrar no esté en el directorio actual.
El comando cat muestra por pantalla el contenido de un fichero y,
cuando termina, el usuario está otra vez de vuelta en la línea de
comandos.
Por ejemplo,
~$ cat /var/log/dmesg
Muestra el contenido del archivo pero como es muy grande no podrá
visualizar desde el principio
VISUALIZACIÓN DE FICHEROS
(cat, more, less, head, tail)
El comando more hace lo mismo que cat, a diferencia de que muestra el
fichero pantalla a pantalla, es decir, llena de texto la pantalla y se espera a
que el usuario pulse la tecla <espacio> para pasar a la siguiente
~$ more /var/log/dmesg
El comando less es el más versátil de los tres, ya que permite moverse
hacia delante y hacia atrás dentro del fichero, utilizando los cursores o las
teclas de “AvPág” y “RePág”:
~$ less /var/log/dmesg
En cualquier momento se puede interrumpir la visualización y volver al
símbolo del sistema pulsando la letra “q”.
VISUALIZACIÓN DE FICHEROS
(cat, more, less, head, tail)
Los comandos head y tail permiten mostrar de forma parcial el
contenido de un fichero. Como su nombre indica, head muestra las
primeras líneas del fichero (la cabecera) y tail muestra las últimas líneas
(la cola).
Veamos algunos ejemplos
~$ head /boot/grub/grub.cfg
Les muestra las primeras líneas del texto
~$ tail /boot/grub/grub.cfg
Por defecto, tanto head como tail muestran 10 líneas, pero eso se puede
cambiar con la opción –n
~$ tail –n4 /boot/grub/grub.cfg
Desplegará las 4 ultimas lineas
Editores de ficheros(touch, vi,
joe,nano,gedit, mcedit)
El comando touch permite crear un fichero vacío. Con cualquier editor de
texto se puede crear un fichero vacío pero con touch es especialmente
cómodo y rápido.
~$ touch prueba.txt
Se puede ver en el ejemplo cómo se ha creado el archivo prueba.txt pero al
visualizar su contenido con cat, no aparece nada en pantalla, por tanto está
vacío.
Probar los editores citados (vi, joe,nano,gedit, mcedit)
Comandos Bash
Manejo de Directorios y Ficheros
• cp: copiar un fichero en otro o ficheros en un directorio
• cp [-R] [directorio/fichero origen] [directorio/fichero destino]
• rmdir: elimina un directorio (debe estar vacío)
• rmdir [nombre_directorio]
• rm: elimina un fichero
• rm [-r] [-f] nombre_fichero
Practiquemos
Crear en el directorio $HOME un directorio
con tu nombre. Utilizar el comando mkdir
(comprobar la utilidad de la opción -p) para
crear los directorios y el editor de textos de
su preferencia para crear los ficheros dentro
la estructura de directorios …
Practiquemos
1. /Home/FPUNA
a. Nombre del alumno
i. SO
1.File1
2.File 2
ii. Estructura
1.File1
2.File 2
iii.Redes
2. File1
1.File 2
i. Matemáticas
1.File1
2.File 2
Redirección
Podemos redirigir la entrada, salida y el error estándar de
los mandatos.
mandato < fichero. En el mandato se usará fichero como
entrada y no el teclado. # cat < prueba
Mandato >fichero. La salida del mandato será enviada a
fichero y no a la pantalla. # cal > prueba
Mandato 2> fichero. Los mensajes de error que un
mandato puede generar también pueden ser redirigidos a
un fichero, pero normalmente preferimos que se visualice
por pantalla.
mandato >> fichero. Añade la salida de mandato al final
del fichero indicado.
Tuberías (pipe)
• Consiste en redirigir la salida estándar de un mandato
directamente a la entrada estándar de otro.
• ●No se crea ningún fichero intermedio.
• ●Se consigue separando los mandatos con el carácter
“|”(pipe).
• ●# ls -al /home | grep login_name
• ●# ls -al /home | wc -l
tar y gzip
tar es el empaquetador estándar de linux. Reune varios
ficheros en uno.
– # tar -cvf archivo.tar archivos_a_comprimir (para
crear archivos tar).
– # tar -xvf archivo.tar (para desempaquetar un tar).
– # tar -tvf archivo.tar (muestra los archivos
empaquetados).
gzip es el compresor estándar de linux, en general se usa
junto a tar.
– # gzip -f archivo (para comprimirlo)
– # gzip -d archivo.gz (para descomprimirlo).
tar y gzip
• Empaquetando y comprimiendo a la vez.
– # tar -cvfz prueba.tar.gz /home/usuario/*
– # tar -xvfz prueba.tar.gz (previamente
nos situamos)
Scripts
Scripts = Guiones.
Muy importantes desde el punto de vista del
Administrador.
Los servicios de Linux arrancan mediante scripts.
Permite:
• Construcciones de bucle
• Construcciones condicionales
• Funciones de shell
• Funciones built-in
Compilador GCC
El gcc es el compilador por excelencia con licencia
pública GNU. Es un compilador flexible y riguroso con el
estándar ansi C.
Proporcionamos al compilador un programa fuente y nos
devuelve un archivo binario compilado para nuestra
arquitectura
– # gcc [options] file.... Ejemplos hola.c Entrada.c
Para mas información man gcc
Opciones más comunes del gcc
 -o mediante esta opción podemos especificar el nombre del ejecutable
$gcc hola.c -o hola
 -g incluye en el binario información necesaria para utilizar un
depurador posteriormente.
 -Wall No omite la detección de ningún warning.
 -O <nivel> indica a gcc que utilice optimización en el código, posibles
valores desde 0 a 3. Aumenta el tiempo de compilación.
 -S Preprocesa y compila, pero no ensambla ni enlaza
 -c Preprocesa, compila y ensambla pero no enlaza.
 -L <dir> Especifica un directorio adicional donde gcc debe buscar las
librerías necesarias en el proceso de enlazado.
 -l <library> Especifica el nombre de una librería adicional que deberá
ser utilizada en el proceso de enlazado.
Compilando un programa C
Editando un programa
Con el editor de preferencia. Opción: gedit
• Compilando un programa:
# /usr/bin/gcc miprograma.c –o miprograma.exe
• Verificando y asignando permisos
# ls –l miprograma.exe
# chmod 755 miprograma.exe
• Ejecutando un programa:
# ./miprograma.exe
Compilación
• Vamos a compilar el primer programa.
• # include <stdio.h>
• main()
• {
• printf(“hola, mundon”);
• }
# gcc hola.c -o hola
Debates
Actividades
 Tarea 1: Cree un script que analizando los nodos de una carpeta que se le
pasa como parámetro, vaya imprimiendo el contenido y muestre solamente
los que no tienen extensión ".bkp"

Más contenido relacionado

PDF
Materi 7_Bayaran Berdasarkan Kinerja dan Insentif Finansial.pdf
DOCX
PDF
Repozytoria GIT
PPTX
Damjan Stjepanović i Franko Šterl, 7. razred
PPTX
3Com 3CWE415A
PPTX
Unidad iii tecnologias en la nube
PDF
9 5 congruence transformations concepts
PDF
Symmetry
Materi 7_Bayaran Berdasarkan Kinerja dan Insentif Finansial.pdf
Repozytoria GIT
Damjan Stjepanović i Franko Šterl, 7. razred
3Com 3CWE415A
Unidad iii tecnologias en la nube
9 5 congruence transformations concepts
Symmetry

Destacado (15)

PDF
20140526 Trabajo final subgrupo E1
PPTX
Presentazione renovatio olio frittura
PDF
Diz Jornal Edição 171
PDF
3 1 graphing exponential functions
ODP
Ana Takač i Matija Šterl, 7.r.
PPTX
Онлайн-школа ТД. Урок 2. Комментарии к мини-диктанту
PPTX
Обособление определений и приложений
DOCX
MANUAL DE PRACTICAS DE WINDOWS SERVER 2008(Alberto Hdz)
PPTX
1 la idea de negocio
PDF
C nat 9ano-diversos-fichas
DOCX
Comandos basicos Linux
DOCX
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
DOCX
зош №11 інформація про акцію пташина хатка
20140526 Trabajo final subgrupo E1
Presentazione renovatio olio frittura
Diz Jornal Edição 171
3 1 graphing exponential functions
Ana Takač i Matija Šterl, 7.r.
Онлайн-школа ТД. Урок 2. Комментарии к мини-диктанту
Обособление определений и приложений
MANUAL DE PRACTICAS DE WINDOWS SERVER 2008(Alberto Hdz)
1 la idea de negocio
C nat 9ano-diversos-fichas
Comandos basicos Linux
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
зош №11 інформація про акцію пташина хатка
Publicidad

Similar a 01 practicas de laboratorio (20)

PDF
Introduccion al s
PDF
Introduccion al s
PDF
Linux for bioinformatics
DOCX
todo sobre linux
PDF
Unidad 9 - Instalación y configuración Linux
DOCX
Introducción al sistema operativo linux
PDF
Linux ud2 - comandos gestion archivos
PDF
17 comandos basicoslinuxasoitson
PDF
Comandos linux
PPTX
Linux básico
PPTX
Manejo de sistemas operativos
PPTX
Unix
PPTX
Manejo de sistemas operativos2
PPTX
Prescentacion de S.O de Linux
DOCX
Manejo de sistemas operativos
PDF
Taller canaima
PPTX
Cli unix2
DOCX
Conalep tlalnepantla 2
Introduccion al s
Introduccion al s
Linux for bioinformatics
todo sobre linux
Unidad 9 - Instalación y configuración Linux
Introducción al sistema operativo linux
Linux ud2 - comandos gestion archivos
17 comandos basicoslinuxasoitson
Comandos linux
Linux básico
Manejo de sistemas operativos
Unix
Manejo de sistemas operativos2
Prescentacion de S.O de Linux
Manejo de sistemas operativos
Taller canaima
Cli unix2
Conalep tlalnepantla 2
Publicidad

Más de Free Lancer (10)

TXT
Vide02 brain prepara tu curriculum vitae
TXT
Tarea 01 laboratorio
PDF
Programación en c primer programa en c
PDF
Estructura computador
TXT
Diccionario
DOC
15621495 raquel-libro-version-2008
PPTX
Firma digital 29 10-2014
PDF
Firma digital imprimir
PDF
Auditoria forense worldcom 2014
PDF
Firma digital 29 10-2014
Vide02 brain prepara tu curriculum vitae
Tarea 01 laboratorio
Programación en c primer programa en c
Estructura computador
Diccionario
15621495 raquel-libro-version-2008
Firma digital 29 10-2014
Firma digital imprimir
Auditoria forense worldcom 2014
Firma digital 29 10-2014

Último (20)

DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
Telos 127 Generacion Al fa Beta - fundaciontelefonica
PDF
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PPTX
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
PDF
2.0 Introduccion a processing, y como obtenerlo
PLANES DE área ciencias naturales y aplicadas
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
TOMO II - LITERATURA.pd plusenmas ultras
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Modelo Educativo SUB 2023versión final.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
Telos 127 Generacion Al fa Beta - fundaciontelefonica
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
Escuelas Desarmando una mirada subjetiva a la educación
Presentación de la Cetoacidosis diabetica.pptx
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
2.0 Introduccion a processing, y como obtenerlo

01 practicas de laboratorio

  • 2. Introducción al Shell UNIX Interfaz de usuario basada en caracteres con el sistema operativo tipo UNIX (Linux, AIX, SunOS, etc.) Interacción con el usuario por línea de comandos Salida de los programas basada en texto Traduce las líneas de comandos en instrucciones del sistema operativo UNIX es uno de los primeros SO en hacer la interfaz de usuario independiente del SO Alcance: – Interfaz de usuario – Entorno de programación. Shell scripting.
  • 3. Bourne Again Shell (BASH) Origen: – En 1978 Stephen Bourne desarrollo y distribuyo en la version del Sistema operativo Unix Version 7. – En 1987 Brian Fox escribió para el proyecto GNU sustituyendo al Bourne Shell por el BASH. – En 1990 Chet Ramey renovó la versión estableciendo como interprete predeterminado en la mayoría de los sistemas GNU/Linux, MAC OS X, Tiger y escalable en la mayoría de los sistemas operativos tipo unix
  • 4. Bourne Again Shell (BASH) Prestaciones más relevantes: –Edición de la línea de comandos –Control de trabajos –Personalización de la shell –Completo entorno de programación Bash tiene como objetivo ser una implementación conforme de la especificación de Herramientas y Shell IEEE POSIX (IEEE Working Group 1003.2).
  • 5. Evolución de Internet • Ficheros que lee bash cuando se arranca : • 1./etc/profile • 2.~/.bashrc, ~/.bash_profile, ~/.bash_login, and ~/.profile • Más información sobre el bash: • # man bash
  • 6. Características de Linux GNU/Linux (comúnmente Linux a secas) es uno más de los muchos S.O. que existen en la actualidad que tiene una serie de características que lo hacen especial:  Libre: Se puede descargar de internet, copiar y distribuir sin que por ello se incurra en ningún tipo de delito. La licencia que establece los términos de uso, copia y distribución se denomina Licencia GNU (www.gnu.org)  Hecho por voluntarios: Linux no se creó para obtener beneficios con él sino para satisfacer una serie de necesidades a la hora de trabajar con el ordenador.  Multiusuario: Varios usuarios pueden conectarse y usar el mismo ordenador a la vez.  Multitarea: Pueden funcionar varios programas al mismo tiempo en la misma máquina.  Multiplataforma: Hay versiones de Linux para gran cantidad de plataformas: todos los PCs basados en procesadores Intel o AMD, ordenadores Digital/Compaq con procesadores Alpha, ordenadores Apple, ultraportátiles como el Asus Eee e incluso dispositivos móviles como el Sharp Zaurus.  Estable: Linux es un sistema operativo muy maduro, probado durante mucho tiempo. Hay muchos servidores que llevan funcionando bajo Linux de forma ininterrumpida muchos años sin un solo cuelgue.  Eficiente: Linux aprovecha bien los recursos hardware. Incluso los viejos Pentium pueden funcionar bien con Linux y servir para alguna tarea.
  • 7. Directorios más importantes de Linux: /bin Contiene programas ejecutables básicos para el sistema. /boot Contiene los ficheros necesarios para el arranque del sistema. /dev Contiene los ficheros correspondientes a los dispositivos /etc Contiene ficheros y directorios de configuración. /home Contiene los directorios de trabajo de los usuarios. Cada usuario tiene su propio directorio en el sistema dentro de /home/. /lib Contiene las librerías compartidas y los módulos del kernel /media Dentro de este directorio se montan los dispositivos como el CD-ROM, memorias USB, discos duros portátiles, etc /opt Directorio reservado para instalar aplicaciones. /sbin Contiene los ficheros binarios ejecutables del sistema operativo. /srv Contiene datos de los servicios proporcionado por el sistema. /tmp Directorio de archivos temporales. /usr Aquí se encuentran la mayoría de los archivos del sistema, aplicaciones, librerías, manuales, juegos… Es compartido por todos los usuarios. /var Contiene archivos administrativos y datos que cambian con frecuencia: registro de errores, bases de datos, colas de impresión, etc. /root Directorio de trabajo del administrador del sistema (usuario root). /proc Aquí se almacenan datos del kernel e información sobre procesos.
  • 8. Linux vs Unix A nivel de línea de comandos, apenas hay diferencias. Se pueden usar los mismos comandos indistintamente en distribuciones Linux o en sistemas Unix. A nivel gráfico tampoco hay mucha diferencia ya que ambos sistemas utilizan X-Windows. La principal diferencia es que Linux es libre mientras que la mayoría de Unix no (a veces cuestan mucho dinero). Otra diferencia importante es el hecho de que hay versiones de Linux para prácticamente cualquier plataforma, mientras que los diferentes Unix suelen estar enfocados a un hardware muy específico
  • 9. Linux vs Windows La principal diferencia, una vez más, es que Linux es libre y, en la mayoría de los casos, gratis mientras que Windows es un software propietario y requiere de licencia. De igual manera, la gran mayoría de aplicaciones para Linux son libres y gratuitas mientras que las aplicaciones para Windows no lo son, aunque a veces es fácil encontrar programas de evaluación (shareware) para Windows que permiten probar un determinado programa durante un tiempo de forma gratuita
  • 10. ¿QUÉ ES UNA DISTRIBUCIÓN DE LINUX? Una distribución de Linux es el sistema operativo propiamente dicho, lo que se suele denominar el núcleo (kernel en inglés) junto con un programa de instalación y un conjunto de aplicaciones, normalmente de propósito general. Distribución = Núcleo de Linux + Programa de instalación + Aplicaciones
  • 11. VIZUALIZACIÓN, CREACIÓN Y CAMBIO DE DIRECTORIO (pwd, ls, cd, mkdir) pwd El comando pwd muestra cuál es el directorio de trabajo actual, en otras palabras, le dice al usuario dónde se encuentra dentro de la estructura de directorios del sistema. Es muy útil cuando estamos perdidos. fpuna@fpuna-Virtualvox:~$ pwd /home/fpuna ls El comando ls muestra el contenido del directorio actual. Por defecto, los archivos ocultos no se muestran. Éste es seguramente el comando que más se utiliza. fpuna@fpuna-Virtualvox:~$ ls
  • 12. VIZUALIZACIÓN, CREACIÓN Y CAMBIO DE DIRECTORIO (pwd, ls, cd, mkdir) Cd (change dir) El comando cd (change dir) permite cambiar de directorio. Si se utiliza tal cual, sin ningún tipo de argumento, cambia al directorio de trabajo personal. Si se utiliza seguido de una ruta, cambia al directorio que se indica. fpuna@fpuna-Virtualvox:~$ pwd /home/fpuna fpuna@fpuna-Virtualvox:~$cd /etc fpuna@fpuna-Virtualvox:/etc$ pwd /etc En este caso, el usuario estaba en su directorio de trabajo, y ha “saltado” al directorio /etc. El lector puede teclear el comando ls si tiene curiosidad por ver lo que hay dentro. Las rutas pueden ser absolutas o relativas. Una ruta es absoluta cuando comienza por el carácter “/” y relativa cuando comienza por cualquier otro carácter
  • 13. VIZUALIZACIÓN, CREACIÓN Y CAMBIO DE DIRECTORIO (pwd, ls, cd, mkdir) mkdir Se pueden crear directorios con el comando mkdir. Por ejemplo, para crear una estructura de carpetas donde un estudiante guardará información sobre sus asignaturas según el siguiente esquema /Documentos /Escritorio /Imágenes /Música /SO /examenes_antiguos /home/fpuna /apuntes /lcik /curso_03 /Estructura /Redes /libros_de_ejercicios /videos /informatica /compiladores_pascal /Video
  • 14. VISUALIZACIÓN DE FICHEROS (cat, more, less, head, tail) Los comandos cat, more y less sirven para mostrar el contenido de ficheros de texto. La diferencia radica en cómo se muestra el contenido. A todos estos comandos hay que pasarles como argumento el fichero que se quiere mostrar. Se puede indicar una ruta, en caso de que el fichero que se quiere mostrar no esté en el directorio actual. El comando cat muestra por pantalla el contenido de un fichero y, cuando termina, el usuario está otra vez de vuelta en la línea de comandos. Por ejemplo, ~$ cat /var/log/dmesg Muestra el contenido del archivo pero como es muy grande no podrá visualizar desde el principio
  • 15. VISUALIZACIÓN DE FICHEROS (cat, more, less, head, tail) El comando more hace lo mismo que cat, a diferencia de que muestra el fichero pantalla a pantalla, es decir, llena de texto la pantalla y se espera a que el usuario pulse la tecla <espacio> para pasar a la siguiente ~$ more /var/log/dmesg El comando less es el más versátil de los tres, ya que permite moverse hacia delante y hacia atrás dentro del fichero, utilizando los cursores o las teclas de “AvPág” y “RePág”: ~$ less /var/log/dmesg En cualquier momento se puede interrumpir la visualización y volver al símbolo del sistema pulsando la letra “q”.
  • 16. VISUALIZACIÓN DE FICHEROS (cat, more, less, head, tail) Los comandos head y tail permiten mostrar de forma parcial el contenido de un fichero. Como su nombre indica, head muestra las primeras líneas del fichero (la cabecera) y tail muestra las últimas líneas (la cola). Veamos algunos ejemplos ~$ head /boot/grub/grub.cfg Les muestra las primeras líneas del texto ~$ tail /boot/grub/grub.cfg Por defecto, tanto head como tail muestran 10 líneas, pero eso se puede cambiar con la opción –n ~$ tail –n4 /boot/grub/grub.cfg Desplegará las 4 ultimas lineas
  • 17. Editores de ficheros(touch, vi, joe,nano,gedit, mcedit) El comando touch permite crear un fichero vacío. Con cualquier editor de texto se puede crear un fichero vacío pero con touch es especialmente cómodo y rápido. ~$ touch prueba.txt Se puede ver en el ejemplo cómo se ha creado el archivo prueba.txt pero al visualizar su contenido con cat, no aparece nada en pantalla, por tanto está vacío. Probar los editores citados (vi, joe,nano,gedit, mcedit)
  • 18. Comandos Bash Manejo de Directorios y Ficheros • cp: copiar un fichero en otro o ficheros en un directorio • cp [-R] [directorio/fichero origen] [directorio/fichero destino] • rmdir: elimina un directorio (debe estar vacío) • rmdir [nombre_directorio] • rm: elimina un fichero • rm [-r] [-f] nombre_fichero
  • 19. Practiquemos Crear en el directorio $HOME un directorio con tu nombre. Utilizar el comando mkdir (comprobar la utilidad de la opción -p) para crear los directorios y el editor de textos de su preferencia para crear los ficheros dentro la estructura de directorios …
  • 20. Practiquemos 1. /Home/FPUNA a. Nombre del alumno i. SO 1.File1 2.File 2 ii. Estructura 1.File1 2.File 2 iii.Redes 2. File1 1.File 2 i. Matemáticas 1.File1 2.File 2
  • 21. Redirección Podemos redirigir la entrada, salida y el error estándar de los mandatos. mandato < fichero. En el mandato se usará fichero como entrada y no el teclado. # cat < prueba Mandato >fichero. La salida del mandato será enviada a fichero y no a la pantalla. # cal > prueba Mandato 2> fichero. Los mensajes de error que un mandato puede generar también pueden ser redirigidos a un fichero, pero normalmente preferimos que se visualice por pantalla. mandato >> fichero. Añade la salida de mandato al final del fichero indicado.
  • 22. Tuberías (pipe) • Consiste en redirigir la salida estándar de un mandato directamente a la entrada estándar de otro. • ●No se crea ningún fichero intermedio. • ●Se consigue separando los mandatos con el carácter “|”(pipe). • ●# ls -al /home | grep login_name • ●# ls -al /home | wc -l
  • 23. tar y gzip tar es el empaquetador estándar de linux. Reune varios ficheros en uno. – # tar -cvf archivo.tar archivos_a_comprimir (para crear archivos tar). – # tar -xvf archivo.tar (para desempaquetar un tar). – # tar -tvf archivo.tar (muestra los archivos empaquetados). gzip es el compresor estándar de linux, en general se usa junto a tar. – # gzip -f archivo (para comprimirlo) – # gzip -d archivo.gz (para descomprimirlo).
  • 24. tar y gzip • Empaquetando y comprimiendo a la vez. – # tar -cvfz prueba.tar.gz /home/usuario/* – # tar -xvfz prueba.tar.gz (previamente nos situamos)
  • 25. Scripts Scripts = Guiones. Muy importantes desde el punto de vista del Administrador. Los servicios de Linux arrancan mediante scripts. Permite: • Construcciones de bucle • Construcciones condicionales • Funciones de shell • Funciones built-in
  • 26. Compilador GCC El gcc es el compilador por excelencia con licencia pública GNU. Es un compilador flexible y riguroso con el estándar ansi C. Proporcionamos al compilador un programa fuente y nos devuelve un archivo binario compilado para nuestra arquitectura – # gcc [options] file.... Ejemplos hola.c Entrada.c Para mas información man gcc
  • 27. Opciones más comunes del gcc  -o mediante esta opción podemos especificar el nombre del ejecutable $gcc hola.c -o hola  -g incluye en el binario información necesaria para utilizar un depurador posteriormente.  -Wall No omite la detección de ningún warning.  -O <nivel> indica a gcc que utilice optimización en el código, posibles valores desde 0 a 3. Aumenta el tiempo de compilación.  -S Preprocesa y compila, pero no ensambla ni enlaza  -c Preprocesa, compila y ensambla pero no enlaza.  -L <dir> Especifica un directorio adicional donde gcc debe buscar las librerías necesarias en el proceso de enlazado.  -l <library> Especifica el nombre de una librería adicional que deberá ser utilizada en el proceso de enlazado.
  • 28. Compilando un programa C Editando un programa Con el editor de preferencia. Opción: gedit • Compilando un programa: # /usr/bin/gcc miprograma.c –o miprograma.exe • Verificando y asignando permisos # ls –l miprograma.exe # chmod 755 miprograma.exe • Ejecutando un programa: # ./miprograma.exe
  • 29. Compilación • Vamos a compilar el primer programa. • # include <stdio.h> • main() • { • printf(“hola, mundon”); • } # gcc hola.c -o hola
  • 31. Actividades  Tarea 1: Cree un script que analizando los nodos de una carpeta que se le pasa como parámetro, vaya imprimiendo el contenido y muestre solamente los que no tienen extensión ".bkp"