Linux
Unix fue uno de los primeros sistemas operativos de éxito en el año 1969. Linux fue creado por Linus B. Torvalds. A comienzos de la década de los 90 basados en una versión educativa de UNIX(MINX).
En 1992, Linux se integra en el proyecto GNU (Con licencia GPL) y nace Slakeware (version mas antigua). Fue compartido por FTP. A partir de ese momento se empieza a compartir su código hasta llegar a los niveles de desarrollo actuales.
En el 2007 Google presenta Android el sistema operativo para Smartphones, el cual es basado en Linux. En 2013 Linux es el sistema base mas usando en todo el mundo.
Tux es el nombre de la mascota oficial de Linux. Creado por Larry Ewing en 1996, es un pequeño pingüino de aspecto risueño y cómico. La idea de que la mascota de kernel Linux fuera un pingüino provino del mismo Linus Torvalds, creador de kernel Linux. Según se cuenta, cuando era niño le picó un pingüino; además desde pequeño mostró una gran simpatía por estos animales. No tiene un significado en específico.
Distribución GNU/Linux
Una distribución Linux, es una distribución de software basada en el núcleo de Linux. Por lo general están compuestas, total o mayoritariamente, de software libre.
Algunas distribuciones más conocidas:
Objetivos de una distribución Linux
Libertad de distribución.
Código libre.
No discriminación para grupos o personas.
No discriminación para actividad o propósito.
Distribución de la licencia.
La licencia no debe ser específica.
La licencia no debe contaminar otros programas.
Linux desde la perspectiva de un usuario sin experiencia
¿ Por qué GNU/Linux ?
Es un SO libre y gratuito
Es muy robusto
En determinadas tareas es más cómodo que windows u otros sistemas
En ciertas aplicaciones es mucho más potente que otros sistemas
Sistema de usuarios
Sistema multiusuario y multitarea.
Identificación de usuario.
Cada usuario tiene su espacio personal en disco.
Cada usuario pertenece a un grupo de usuarios.
Dispone de un superusuario.
Entrada al sistema.
Desde entorno gráfico.
Desde consola.
Sistema de archivos
Por lo general se utiliza Ext-FAT, Ext2, Ext3, Ext4 (SWAP para memoria virtual).
Sistema raíz representado por /
Por lo general cuelgan
- bin
- dev
- etc
- home
- lib
- root
- tmp
- usr
Estructura de directorios
Directorio raíz /
Archivos binarios para ejecución /bin
Archivos para inicio del sistema /boot
Archivos de dispositivos /dev
Archivos de configuración /etc
Archivos de usuario /home
Librerías compartidas /lib
Punto de montaje CD/DVD's o USB /media
- Archivos independientes /opt
Entorno gráfico
GNOME, KDE, XFCE…Entre otros, similares a windows en muchos aspectos
Extensiones de archivos en Linux
Ejecutables:
elf: Formato binario estándar en GNU/Linux
jar: Aplicaciones escritas en lenguaje Java
pl: Script en lenguaje Perl
py: Script en lenguaje Python
sh: Script de Shell, utilizado para crear pequeños programas
Códigos fuentes y librerías:
a: Librerías estáticas
c: Código del lenguaje C
cpp: Código del lenguaje C++
diff: Conjunto de instrucciones que definen los cambios al aplicarse un parche
h: Cabecera de archivos programados en C
lo: Archivo temporal creado en la compilación de una librería
o: Archivo temporal creado al compilar un programa
so:Librerías compartidas, equivalentes a DLL en Windows
Comprimidos y empaquetados:
arj: Formato de compresión muy habitual hace unos años
bz2: Archivo comprimido con la herramienta BZIP2
gz: Fichero generado mediante la herramienta GZIP, sustituta de la ya anticuada “compress”
rar: Sustituto natural de ARJ
tar: Archivo empaquetado sin comprimir, habitualmente comprimido con GZIP o BZIP2, formando extensiones dobles. (ej. tar.gz)
tbz2: Archivo resultante de comprimir en BZIP2 un archivo TAR
tgz:Resultado de comprimir en GZIP un archivo TAR
z: Fichero comprimido con la herramienta compress
zip: Es el formato de compresión más utilizado en internet, aunque en GNU/Linux no es muy común usarlo debido al uso extendido y casi exclusivo de gzip y bzip2
Archivos del Sistema:
conf: Archivo de configuración de un programa. Almacenados en su mayoría en el directorio /etc/
ko: Módulos del núcleo
lock: Indica el bloqueo de un servicio, proceso o programa. Se suelen guardar en /tmp borrándose con cada inicio
log: Archivo de información, generados por el propio núcleo y los programas y servicios instalados
pid: Ficheros identificadores de procesos, necesarios para el correcto funcionamiento de los servicios en ejecución
socket: Medio de comunicación entre dos programas situados habitualmente en equipos distintos
tmp: Archivos temporales creado por un programa para almacenar información
Distribuciones de paquetes binarios:
deb: Usado por Debian y distros derivadas, entre las que destaca Ubuntu o Linux Mint como más conocidas
dsc: Archivo de información del código fuente de un paquete en Debian
ebuild: Script utilizado por Gentoo para compilar e instalar paquetes a partir de su código fuente
rpm: Usado por Red Hat, Fedora, CentOS, SUSE, Mandriva y derivados
slp: Distribución Stampede
tgz: Archivos TAR.GZ ya compilados para Slackware
Estoy convencido que no he listado todas las extensiones presentes en nuestros sistemas GNU/Linux, pero tal vez en tus comentarios me ayudas a conocer otras que en esta visita relámpago al interior de mi Linux no pude encontrar.
Terminal
Intérprete de comandos que permite ejecutar órdenes desde el teclado.
Resulta más rápido que el entorno gráfico.
Primordial su uso para una correcta configuración.
Más potente que cualquier GUI.
Comandos básicos
$ cd
$ cd ..
$ subl filename.cc
$pwd /Escritorio/cs$ pwd -> /home/carlos/Escritorio/cs
$ mkdir
$ vi
$ vim
$ nano
$ chmod permisos fich
$ mv fich1 ...fich N di
$ rm borra fichero
$ cat [fichero] Muestra el contenido de un fichero
$ cat -n [fichero] Muestra el contenido de un fichero enumerando sus líneas
$ stat [fichero] Muestra el estado de un fichero
$ history Muestra los comandos utilizados por el usuario en orden cronológico.
$ fc -l Muestra los últimos comandos usados por el usuario
$ eject -t [unidad] Cierra la bandeja de la unidad óptica(cd rom,dvd ...)
$ cp [origen] [destino] Copia el archivo origen al directorio destino
$ cp -R [origen] [destino] Copia un directorio recursivamente
$ cp -p [origen] [destino] Copia preservando los permisos y las fechas
$ cp [archivo] [archivo nombre cambiado] Copia el archivo y lo cambia de nombre
$ mv [origen] [destino] Mueve al archivo origen al directorio destino
$ mkdir [directorio] Crea una nueva carpeta dentro del directorio.
$ rmdir [directorio vacío] Elimina el directorio vacio
$ rm [archivo] Elimina un archivo completamente
$ rm -r [directorio] Elimina un directorio recursivamente
$ clear Limpia la pantalla
$ reset Reinicia la terminal
$ date Muestra la hora y la fecha en formato completo
$ passwd Permite al usuario cambiar su contraseña
COMPRIMIR Y DESCOMPRIMIR:
$ zip -r fichero.zip ficheros Comprime en formato .zip
$ unzip archivo.zip Descomprime un .zip
$ unzip -v archivo.zip Muestra el contenido de un .zip sin descomprimirlo
$ rar a -r0 fichero.rar ficheros Comprime los ficheros en formato .rar
$ unrar e -r archivo.rar Descomprime el fichero.rar en el directorio actual
$ unrar x -r archivo.rar ruta destino Extrae el fichero.rar en la ruta especificada.
$ unrar v archivo.rar Muestra el contenido del fichero.rar sin descomprimir.
$ gzip -r ficheros Comprime ficheros a gz
$ gzip -d fichero.gz Descomprime un fichero.gz
$ gzip -c fichero.gz Muestra el contenido de un fichero.gz sin descomprimirlo.
"Registrar a Linux bajo la GPL fue definitivamente la mejor cosa que alguna vez hice " -Linus Torvalds-