Академический Документы
Профессиональный Документы
Культура Документы
IDAT
TOPICOS DE LINUX
SISTEMA OPERATIVO
(Operating System).
Sistema tipo software que controla la computadora administra los servicio y recursos de
hardware recursos funciones como así también la ejecución de otros programas compatibles
con éste.
Ejemplos de sistemas operativos: Windows, Unix, Linux, DOS, Mac OS, etc.
Permite controlar las asignaciones de memoria, ordenar las solicitudes al sistema, controlar los
dispositivos de entrada y salida, facilitar la conexión a redes y el manejo de archivos.
Sistema de computo
GNU/Linux
GNU/Linux es un poderoso sistema operativo cuyo nucleo Linux fue lanzado bajo la licencia
publica general (GPL) y desarrollado por las contribuciones provenientes de todo el mundo.
Linux fue creado por Linus Torvalds en 1991 siendo entonces un estudiante de la
Universidad de Helsinski, Finlandia. Muy pronto, la comunidad de Minix contribuyó en el
código y en ideas para el núcleo Linux. Por aquel entonces, el Proyecto GNU ya había
creado muchos de los componentes necesarios para obtener un sistema operativo libre, pero
su propio núcleo (GNU Hurd) era incompleto y por lo tanto no podían conseguir un sistema
libre totalmente funcional. Es por esto que a pesar de las funcionalidades limitadas de la
primera versión, rápidamente Linux fue acumulando desarrolladores y usuarios que
adoptaron el código de estos proyectos para usar con el nuevo sistema operativo. Hoy en día
el núcleo Linux ha recibido contribuciones de miles de programadores.
La GPL (acrónimo de General Public Licence, que se traduce como Licencia Pública
General), a la cual Linus Torvalds incorporó a Linux, está diseñada para asegurar que
el usuario tenga siempre la libertad de distribuir copias del software (y cobrar por el
servicio si así lo desea). La GPL tiene como objetivo garantizar al usuario la libertad de
compartir y cambiar programas libres; es decir, asegurarse de que el sustento lógico
siempre permanezca siendo libre para todos los usuarios.
GNU/Linux® es también la mejor alternativa de siglo XXI para los usuarios que no
solo desean libertad, sino que también requieren un sistema operativo estable,
robusto y confiable. Es un sistema operativo idóneo para utilizar en Redes, como es
el caso de servidores, estaciones de trabajo y también para computadoras personales.
Tal ha sido el impacto alcanzado por GNU/Linux® en los últimos años, que muchas de las
empresas de Software más importantes del mundo, entre las cuales están IBM,
Oracle y Sun Microsystems, han encontrado en GNU/Linux una plataforma con un
muy amplio mercado, y se han volcado al desarrollo de versiones para Linux de sus
más importantes aplicaciones. Grandes corporaciones, como Compaq, Dell, Hewlett
Packard, IBM y muchos más, llevan varios años distribuyendo equipos con
GNU/Linux® como sistema operativo.
CARACTERISTICAS DE LINUX
Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al
mismo tiempo.
Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.
Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son
386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, tambien existen versiones
para su utilizacion en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.
Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un
programa que están siendo usadas actualmente.
Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX.
Todo el código fuente está disponible, incluyendo el núcleo completo y todos los
drivers, las herramientas de desarrollo y todos los programas de usuario
KERNEL GNU/LINUX
Linux es el núcleo o kernel del sistema operativo libre denominado GNU/Linux (también
llamado Linux), que brinda una alternativa frente a sistemas operativos no libres como Unix y
Windows.
Linux es un núcleo monolitico híbrido. A diferencia de los núcleos monolíticos tradicionales, los
controladores de dispositivos y las extensiones al sistema operativo se pueden cargar y
descargar fácilmente como módulos, mientras el sistema continúa funcionando sin
interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los
controladores pueden ser pre-volcados (detenidos momentáneamente por actividades más
importantes) bajo ciertas condiciones. Esta habilidad fue agregada para manejar correctamente
interrupciones de hardware, y para mejorar el soporte de Multiprocesamiento Simétrico.
Este núcleo, escrito casi completamente en C con algunas extensiones GNU C, fue
desarrollado por el hacker finlandés Linus Torvalds en un intento por obtener un sistema
operativo libre similar a Unix que funcionara con microprocesadores Intel 80386.
http://www.kernel.org/
/ (directorio raiz)
/bin (contiene los comandos de los usuarios)
/boot (archivo de kernel,archivos de carga del sistema)
/dev (archivos de dispositivos)
/etc (archivos de configuración del sistema)
/home (donde se guardan todos los usuarios de sistema)
/lib (librerias compartidas para el sistema, modulos del kernel)
/mnt (montaje temporal de sistema de archivos)
/opt (directorio de aplicaciones opcionales)
/proc (contiene archivos de comunicación directa con el núcleo)
/root (directorio de root)
/sbin (comandos solo del root, procesos, demonios)
/tmp (directorio de archivos temporales utilizados por las aplicaciones)
/usr (aplicaciones para los usuarios)
/etc/init.d/
/usr/src/
/usr/share/
/var/log/
/var/lib/
/var/www/html/
COMANDOS LINUX/UNIX
uname
Comando que me muestra la información del sistema Operativo. Se usa de la siguiente
manera:
#uname -a
Linux lanux 2.6.8-2-386 #1 Thu May 19 17:40:50 JST 2005 i686 GNU/Linux
#uname -r
hostname
Comando que me entrega el nombre de la maquina y su dominio. Se usa de la siguiente
manera
# hostname
Apagar el Sistema
Reiniciar el Sistema
date : Este comandos nos permite saber la hora y el dia, tomando como referencia el reloj del
sistema.
# date
sáb oct 21 05:53:19 PET 2006
# clear
tambien teclear : Ctrl + L
history : Historial. Comando que permite ver en lista todos los comandos que hemos utilizado
hasta el momento.
# history
Midnight Commander
# mc navegador de archivos modo consola
#yum install –y mc
# ls -l
Permite ver los archivos y directorios en lista, informandonos sobre
Atributos :
r : read
w : write
x : execute
-rwx rwx rwx usuario grupo tamaño fecha hora archivo
| | |
| | Permisos para todos los demas
| Permisos del Grupo
Permisos del Usuario
# ls - a
Permite ver los archivos y carpetas ocultas que contiene el directorio
actual.
#lspci --------------- Ver dispositivos conectados a la placa madre mediante un bus PCI.
#lsusb --------------- Ver los buses USB y los dispositivos conectados a los mismos.
#lsmod -------------- Ver los módulos del kernel
du :
Comando que permite conocer el tamaño de un directorio y sus respectiva jerarquia de
directorios
ENLACE SIMBOLICO
ln : Este comando sirve para establecer enlaces entre archivos. Un enlace puede ser
rígido o simbólico, el primer tipo es simplemente una forma de dar otro nombre a un archivo. El
segundo tipo es parecido al primero, pero se pueden enlazar directorios, y además de
diferentes sistemas de archivos.
EL EDITOR vi
Vi es un editor de texto que fue creado para sistemas UNIX y que posteriormente se implantó
en sistemas GNU/Linux.
Cuando entras en vi, está en modo de comandos. Para pasar al modo de edición puedes
pulsar i (insertar) . Para pasar al modo de comandos, puedes pulsar [ esc ] o [esc ] + [:]
Comandos Básicos
Comando descripción :
i insertar
u deshacer la última edición
dd borra la línea completa
:q salir
:q! forzar salir
:w guardar
:w! forzar guardar
:wq guardar y salir
:x guardar y salir
: %s/cadena/reemplazo Reemplazar una cadena
/palabra Busca palabra hacia abajo del texto ( tecla [n] continua la
busqueda)
set nu (añade numeración de cada línea)
set nu! (quita numeración)
#less archivo
#cat archivo
#cat /proc/meminfo
#cat /proc/cpuinfo
#cat /proc/interrupts
#tail -f archivo
grep
Permite la búsqueda de una cadena dentro de un archivo, mostrando la línea donde se ubica la
cadena.
Ejemplo :
Mostrar por pantalla las líneas que contienen comentario en el archivo /boot/grub/menú.lst
Alias
Editar el .basrch
Instalacion de paquete
#rpm –Uvh paquete
INSTALAR rpmforge
Instalación de paquetes
Instalación de paquetería con resolución automática de dependencias:
Ejemplo:
#yum install httpd
Desinstalación de paquetes
Desinstalación de paquetes junto con todo aquello que dependa de los mismos:
Ejemplo:
#yum remove httpd
WGET
Wget es una herramienta infaltable, su objetivo es hacer downloads (descargas) de una
manera confiable, sin que nos tengamos que preocupar por si se trata de un archivo que esta
en un web (HTTP) o en un site ftp, ni si la conexión es lenta o si se corta.
#wget http://ejemplo.com/programa.tar.gz
En las opciones de tar hay algunas que son importantes para su uso :
v : Modo verbose, quiere decir que mostrará por pantalla las operaciones que va realizando
f: referido a archivo
c: Crea un nuevo archivo tar.
x: Extrae los archivos tar
z: Compresión *.gz.
j: Compresion *.bz2.
fdisk
En Linux el particionador estándar es el fdisk. Este posee una interfaz texto que permite crear,
modificar y borrar particiones de diversos tipos (Linux, FAT12/16 / 3 2, NTFS, minix, Linux
Swap, HPFS, Novell, etc). Funciona en modo interactivo y para ejecutarlo se le pasa como
argumento el disco duro a particionar a través del dispositivo correspondiente.
df
Este se emplea para conocer información acerca de las particiones y dispositivos montados
actualmente en el sistema. Para cada dispositivo se muestra por defecto su tamaño, el espacio
empleado, que porciento significa este, así como el directorio donde se ha montado.
dmesg
#dmesg
free
Nos muestra la memoria libre
#free
mount y umount
Para montar y desmontar los dispositivos se emplean los comandos mount y
umount respectivamente. Estos mantienen una lista de los dispositivos montados
en el fichero /etc/mtab .
MONTAJE
DESMONTAJE
MODULOS
Módulo se refiere a un controlador de un dispositivos o servicio que puede cargarse o
descargarse cuando el usuario o algún dispositivo lo solicita y estan preparados para cargarse
o descargarse dinamicamente en el kernel.
En linux se encuentran en /lib/modules/X.Y.Z/...../ *.o
Para trabajar con módulos se dispone de las siguientes utilidades del sistema:
/lib/modules/[uname -r]/.
Ejemplo:
#rmmod floppy
#lsmod
#rmmod 8021q
PROCESOS
Es un programa en ejecucion
• Los procesos existen en una jerarquía de árbol (varios Hijos, un sólo padre).
• El sistema asigna un identificador de proceso (PID) único al iniciar el proceso.
Ejecución en 2o plano:
proceso no interactivo que no necesita ser iniciado por el usuario.
Demonio:
proceso en 2o plano siempre disponible, que da servicio a varias tareas (debe ser
propiedad del usuario root).
#ps -A
PID: identificador de proceso
PROCESOS EN EL SISTEMA
#ps aux
#kill -9 PID
Ejemplo
#kill -9 200
#killall nombre_ proceso
#killall xmms
#pstree
#pstree -au (Muestra una jerarquizacion en forma de arbol de los procesos presentes en el
sistema)
#jobs
Muestra los procesos que están en segundo plano
entrada: teclado
salida : pantalla
Ejemplo
#echo > etc/resolv.conf
El subdirectorio /dev/null es como un “agujero negro”. Esto es así, puesto que cualquier dato
que se almacena aquí, desaparece. Es muy útil para redireccionar los errores
TUBERIAS
Una tubería hace que la salida de un programa sea la entrada de otro.
#dmesg | grep hd
CREAR USUARIOS
useradd
Con este comando podremos agregar usuarios al sistema (Tendremos que ser root). Este
comando se usa de la siguiente manera:
Algunas opciones
-d : especifica el directorio home de trabajo
-s : permite establecer el shell
# useradd usuario
Ejemplo de aplicación:
#useradd luis
Nota2.- Luego se creara una carpeta para cada usuario creado en /home
# ls /home
Nota3.-
/etc/passwd : guarda información de los usuarios del sistema como nombre, directorio home y
shell
# vi /etc/passwd
Nota4 .-
#vi /etc/shadow
CREAR GRUPOS
Groupadd (En centos )
De manera análoga a los usuarios operariamos con los grupos.
Nota .- El archivo de grupos /etc /group indica los grupos creados y sus respectivos usuario.
#vi /etc/group
# groupadd contabilidad
# groupadd administracion
BORRAR GRUPO
Nota ::
2.- Para cada uno de ellos el archivo tendra permisos o atributos ya sea de :
lectura ( r ) , escritura ( w ) de ejecuble ( x )
Permiso Archivo
Lectura Ver el contenido del
archivo.
Escritura Modificar o eliminar el
archivo.
Ejecución Ejecutar el archivo.
# ls -l
Tipo de archivo :
d : directorio
- : fichero normal
l : enlace simbolico
s : socket
Nota.-
u : usuario g : grupo o : otros
Atributos :
r : read
w : write
x : execute
chmod :
El comando chmod permite cambiar los permisos de tus carpetas y ficheros en el servidor.
#chmod +wr archivo (damos atributo de lectura y escritura para usuario root)
Nomenclatura equivalente
OBS: Notacion equivalente de los permisos
rw- r- x --x
110 101 0 01
6 5 1
chown
Gracias a esta orden nos es permisible cambiar la propiedad del archivo, es decir 'entregar' un
archivo de nuestra propiedad a otra persona, con lo cual esta ultima persona será el nuevo
propietario de dicho fichero.
Es importante saber que la propiedad de cualquier fichero solo puede cambiarla el root o
superusuario del sistema.
Un ejemplo seria:
NETWORKING EN LINUX
CONFIGURACION DE RED
#vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=centux
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
Tambien
#vi /etc/sysconfig/networking/devices/ifcfg-eth0
DEVICE=eth0
BROADCAST=10.255.255.255
HWADDR=00:0c:6e:1d:8b:a8
IPADDR=10.0.1.16
NETMASK=255.0.0.0
NETWORK=10.0.0.0
ONBOOT=yes
GATEWAY=10.0.1.1
TYPE=Ethernet
BROADCAST=10.255.255.255
NETWORK=10.0.0.0
CAMBIAR IP
MODO1
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
#vi /etc/sysconfig/networking/devices/ifcfg-eth0
cabiar IP
#/etc/init.d/network restart
#ifconfig
MODO2
#setup
Authentication configuration
Firewall configuration
Keyboard configuration
Network configuration
System services
Timezone configuration
X configuration
PROTOCOLOS TCP / IP
Familia de Protocolos TCP/IP
SERVICIOS EN LINUX :
#ls /etc/init.d/
El comando chkconfig
También puede usarse para activar o desactivar servicios
#chkconfig <servicio> on
#chkconfig <servicio> off
El comando service
#service <servicio> start
#service <servicio> restart
#service <servicio> stop
Tambien :
# /etc/init.d/<servicio> { start,restart,stop}
Escaneardor de puertos
NMAP
Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos TCP y
UDP. Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir
servicios o servidores en una red informática.
#nmap <IP-destino>
# nmap localhost
#nmap 192.168.2.45
NETSTAT
Netstat (network statistics) es una herramienta de línea de comandos que muestra un listado
de las conexiones activas de un ordenador, tanto entrantes como salientes. Existen versiones
de este comando en varios sistemas, como Unix/Linux, Mac OS X, y Windows.
La información que resulta del uso del comando incluye el protocolo en uso, las direcciones IP
tanto locales como remotas, los puertos locales y remotos utilizados y el estado de la conexión.
Opciones
-r, --route Muestra la tabla de enrutamiento.
-s, --statistics Muestra estadísticas de red (como SNMP)
-i, --interfaces Muestra la tabla de interfaces
-n, --numeric No resuelve nombres en general
-a, --all, --listening Muestra todos los sockets (por defecto únicamente los que están en modo
conectado)
#netstat -r
#netstat -an
SERVIDOR SSH
SSH trabaja de forma similar a como se hace con telnet La diferencia principal es que SSH usa
técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya
de manera no legible y ninguna tercera persona pueda descubrir el usuario y contraseña de la
conexión ni lo que se escribe durante toda la sesión
SCP (Secure Copy, o Copia Segura) es una protcolo seguro para transferir
ficheros entre un anfitrión local y otro remoto, a través de SSH. Básicamente, es
idéntico a RCP (Remote Copy, o Copia Remota), con la diferencia de que los datos
son cifrados durante la transferencia para evitar la extracción potencial de información a
través de programas de captura de las tramas de red (packet sniffers). SCP solo
implementa la transferencia de ficheros, pues la autenticación requerida es realizada a
través de SSH.
OpenSSH.
OpenSSH (Open Secure Shell) es una alternativa de código abierto, con licencia BSD,
hacia la implementación propietaria y de código cerrado SSH creada por Tatu Ylönen.
OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y actualmente
dirigido por Theo de Raadt. Se considera es más segura que su contraparte propietaria
debido a la constante auditoría que se realiza sobre el código fuente por parte de una gran
comunidad de desarrolladores, una ventaja que brinda al tratarse de un proyecto de fuente
abierta.
OpenSSH incluye servicio y clientes para los protocolos SSH, SFTP y SCP.
URL: http://www.openssh.org/.
#nmap localhost
# netstat -an
Ficheros de configuración.
# vi /etc/ssh/sshd_config
Para acceder a través de intérprete de mandatos hacia el servidor, basta con ejecutar
desde el sistema cliente el mandato ssh definiendo el usuario a utilizar y el servidor al cual
conectar:
#ssh usuario@servidor
NOTA1
Para acceder a través de SFTP hacia el servidor, basta con ejecutar desde el sistema
cliente el mandato sftp definiendo el usuario a utilizar y el servidor al cual conectar:
#sftp usuario@servidor
NOTA2
Transferencia de ficheros a través de SCP.
Debian GNU/Linux ofrece más que un S.O. puro; viene con 25113 paquetes, programas
precompilados distribuidos en un formato que hace más fácil la instalación en su computadora.
La última versión estable de Debian es la 5.0. La última actualización de esta versión se publicó
el 27 de junio de 2009
#vi /etc/network/interfaces
IP Estatico
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
IP Dinamico
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#ifdown eth0
#ifup eth0
Configuracion DNS
#vi /etc/resolv.conf
nameserver 200.48.225.130
#vi /etc/apt/sources.list
Remover paquete
#aptitude remove paquete
#aptitude remove -purge paquete
Busqueda de un paquete
#aptitude search paquete (muestra lista) (paquete instalado (i) )
OPCIONAL GNOME
#aptitude install gdm
#aptitude install gnome
Navegador Web
#aptitude install iceweasel
Reproductor de sonido
#aptitude install mp3blaster
Monitoreo de Red
#aptitude install etherape
Analizador de RED
#aptitude install wireshark
# aptitude install bb
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Script de debian
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
aptitude -y install vim
cd /etc/vim/
sed -i '22 s/"//g' vimrc
cd
sed -i '7 s/#//g' .bashrc
sed -i '8 s/#//g' .bashrc
sed -i '9 s/#//g' .bashrc
NOTA:
Al instalar en entorno grafico, deseamos configurar para q debian inicie en modo texto y
el modo grafico con startx
#vi inittab
id:2:initdefault:
#cd /etc/rc3.d/
#ls –l
#mv S30gdm K30gdm (S:start K:kill)
NOTA:
Revisar
#ls /var/cache/apt/archives/
COMANDO: SED
Insertando texto
Ejemplo: insertar alias vi=”vim” en la línea 8 en el archivo .bashrc
Reemplazar cadena
Ejemplo : sustituir la cadena1 por la cadena2 dentro del fichero
Borrar líneas
#sed 'nd ' fichero (n=numero de linea)
Ejemplo:
#sed '5d' fichero (borra la línea 5)
#sed '3,5,d' fichero (borra el intervalo desde 3 a 5)
#sed '7,$,d' fichero (borra a partir de la línea hacia adelante)
SHELL SCRIPTS
SHELL:
Es un intérprete de comandos.
En la mayoría de los sistemas Linux, viene por defecto la shell bash (Bourne-Again-shell, en
referencia al inventor de la primera Shell). Esta Shell posee toda la funcionalidad del sh con
características avanzadas de C Shell, por eso cualquier script escrito para una shell sh correrá
perfectamente. La shell bash fué programada por desarrolladores del proyecto GNU. La
ventaja principal es su potencia y que además es libre. Por este motivo nosotros usaremos esta
shell .
SHELL SCRIPTS
La programación en Shell scripts es muy útil para resolver tareas repetitivas, típicas de los
Administradores. Son ficheros de texto que contienen comandos y son directamente
ejecutables por el sistema.
VARIABLES:
#v=4
#echo $v
4
Borrar el contenido
#unset v
#echo $v
Cuando asignamos un valor a una variable es local, es decir solo es válido para dicha Shell, mas
no para las demás sub shells
Variable de Entorno
Las variables de entorno están disponibles para las sub shells, es decir los valores de estas
variables son conocidos por los procesos hijos de la shell.
Para hacer que una variable se almacene en area de entorno se usa el siguiente comando:
#export valor=5
SHELL
PATH
HOME
USER
EJECUCION
1º Forma:
#sh prueba.sh
#source prueba.sh
#. prueba.sh
2º Forma
#chmod +x prueba
#./prueba
#. prueba
#/root/prueba (lo ejecuta en el directorio actual)