0% encontró este documento útil (0 votos)
27 vistas46 páginas

Estructura y Niveles de Arranque en Linux

Cargado por

atrix
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 TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas46 páginas

Estructura y Niveles de Arranque en Linux

Cargado por

atrix
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 TXT, PDF, TXT o lee en línea desde Scribd

101.

********- Directorio ( /sys )


- Descripción: Contiene información sobre los dispositivos conectados al ordenador.

********- Directorio ( /proc )


- Descripción : Directorio que contiene información sobre las diferentes
aplicaciones que se están ejecutando. Que se identifican por su número único
llamado PID.

Archivos importantes

interrupts : Parametros de IRQ


cpuinfo : detalle de procesadores
dma : Parametros DMA del equipo
ioports: puerto de memoria de entrada y salida
devices : perifericos presentes
meminfo : estado global de la memoria
loadavg : carga del sistema
uptime : tiempo transcurrido desde el arranque
version : detalle de la version de linux
cmdline : Muestra los parámetros que fueron pasados al kernel al momento del
arranque (boot)

********- Directorio ( /dev )


- Descripción : Aquí es donde están todos los drivers y los dispositivos conectados
al ordenador, en GNU/Linux lo están como si fueran ficheros.

********modprobe cargar dinámicamente módulos en el núcleo de Linux

********lsmod : Despliega la información referente a los módulos que están


habilitados por el "kernel".

********lspci : Imprime la información detallada sobre todos PCI autobúses y


dispositivos en el sistema (hardware de nuestro ordenador).
Se basa en una biblioteca portable común libpci cuál ofrece el acceso al espacio de
la configuración del PCI en una variedad de sistemas operativos.

********lsusb lista los dispositivos USB. Puede mostrar información de los buses
USB en el sistema y los dispositivos conectados a ellos.

101.2
[Link]

******************* /etc/inittab

Nivel de ejecución 0:
Halt. Este nivel de ejecución se encarga de detener todos los procesos activos en
el sistema, enviando a la placa madre una interrupción para el completo apagado del
equipo.

Nivel de ejecución 1:
Single. Nivel de ejecución monousuario, sin acceso a servicios de red. Este nivel
es regularmente utilizado en tareas de mantenimiento del sistema, y el usuario que
ejecuta es root.

Nivel de ejecución 2:
Al igual que el nivel de ejecución monousuario, pero con funciones de red y
compartición de datos mediante nfs.

Nivel de ejecución 3:
Sistema multiusuario, con capacidades plenas de red, sin entorno gráfico. Este
nivel de ejecución es el recomendado para sistemas de servidor, ya que evita la
carga innecesaria de aplicaciones consumidoras de recursos.

Nivel de ejecución 4:
Nivel especificado, pero no se utiliza

Nivel de ejecución 5:
Al igual que el nivel de ejecución 3, pero con capacidades gráficas. Ideal para
entornos de escritorio.

Nivel de ejecución 6:
Reboot. Este nivel de ejecución se encarga de detener todos los procesos activos en
el sistema, enviando a la placa madre una interrupción para el reinicio del equipo.

***************** /etc/init.d
Contiene una serie de enlaces simbólicos en los directorios rc n.d,
un directorio para cada nivel de ejecución n, controlan si un script es iniciado al
ingresar un nivel de ejecución o si es detenido al abandonarlo.
Estos enlaces comienzan con una K o una S, seguidas por un número de dos dígitos y
luego por el nombre del servicio

find /etc -path "*rc[0-9]*.d/???au*"

Aquí se puede observar que los servicios audit y autofs tienen entradas K nn en
todos los niveles de ejecución y entradas S nn en los niveles de ejecución 3 y 5.
La S indica que el servicio se inicia al ingresar a ese nivel de servicio, y la
entrada K indica que debería detenerse.
El componente nn del nombre del enlace indica el orden de prioridad en que debe
iniciarse o detenerse el servicio.
En este ejemplo, audit se inicia antes de autofs, y se detiene con posterioridad.

**********************shutdown
Es un proceso similar al comando halt con la diferencia que primero preguntara
amablemente a los procesos abiertos y usuarios que cierren sesión antes de cerrar a
la fuerza todos los procesos restantes.

/etc/init.d
son ficheros o directorios de configuración que arrancan el sistema.
Todos los ficheros y directorios que empiezan por rc o init,

/etc/init.d en realidad es un enlace al directorio /etc/rc.d/init.d/


/etc/rc es un enlace al fichero /etc/rc.d/rc
/etc/rc?.d/ son directorios que se leen según el nivel de arranque que está
configurado en /etc/inittab
/etc/[Link] es otro fichero del arranque que se ejecuta después de todos los
scripts de inicio.

añadir
update-rc.d SERVICIO defaults

quitar
update-rc.d -f SERVICIO remove

*******************telinit

control de inicialización de procesos

Cambio entre los distintos niveles de ejecución

telinit 1 paso al modo mono-usuario


telinit 5 paso al modo multi-usuario normal
telinit 6 reinicia el sistema

********/var/log/messages
aquí encontraremos los logs que llegan con prioridad info (información), notice
(notificación) o warn (aviso).

********dmesg: Imprime los mensajes desplegados por el "kernel" al inicio.

********BIOS
Encuentra la siguiente información cuando
revises la configuración de la BIOS:
• La cantidad de memoria RAM en el sistema.
• El tipo de interfaz del disco duro y la capacidad de
cada uno.
• Puertos seriales disponibles en el sistema y el IRQ
utilizado para cada uno.
• Números de IRQ
• Marca y modelo de la tarjeta SCSI.

********bootloader
está diseñado exclusivamente para preparar todo lo que necesita el sistema
operativo para funcionar
Normalmente se utilizan los cargadores de arranque multietapas, en los que varios
programas pequeños se suman los unos a los otros, hasta que el último de ellos
carga el sistema operativo.

Todo el proceso de arranque, se desarrolla en 4 etapas:

Al principio, toma el control la BIOS.


En una segunda etapa, tomará el control el cargador de arranque.
En una tercera etapa, el control pasa al propio kernel Linux.
Y en la cuarta y última etapa tendremos en memoria los programas de usuario
conviviendo junto con el propio sistema operativo, quienes tomarán el control del
sistema.

BIOS ---- BOOTLOADER ---- KERNEL ----- NIVELES DE ARRAQUE

PRIMERA ETAPA: La BIOS.

Al encender el equipo, toma el control la BIOS. que realiza una serie de


operaciones básicas de hardware.
Una vez que el hardware es reconocido y queda listo para usar, la BIOS carga en
memoria el código executable del cargador de arranque y le pasa el control.

SEGUNDA ETAPA: El cargador de arranque: GRUB.

Existen diferentes cargadores de arranque. En Debian, habitualmente utilizamos


GRUB.
Normalmente, el cargador de arranque se guarda en el MBR (Master Boot Record), que
como tiene un tamaño muy reducido (Son los primeros 512 bytes del disco), obliga a
dividir el arranque en varias etapas. De este modo, la BIOS carga la primera etapa
del cargador de arranque. Y, después, esta primera etapa del cargador de arranque
cargará el resto del cargador de arranque.

GRUB se carga y se ejecuta en 4 etapas:

La BIOS carga la primera etapa del cargador, que se encuentra almacenada en el


MBR.
La primera etapa carga el resto del cargador. Si la segunda etapa está en un
dispositivo grande, se carga una etapa intermedia (llamada etapa 1.5), que contiene
código extra que permite leer cilíndros mayores que 1024 o dispositivos tipo LBA.
La segunda etapa ejecuta el cargador y muestra el menú de inicio de GRUB,
permitiendo seleccionar el SO que se desea arrancar.
Una vez seleccionado el sistema operativo que se quiere arrancar, se carga en
memoria y se le pasa el control.

TERCERA ETAPA: El kernel de Linux.

El proceso del kernel se realiza en dos etapas:

La etapa de carga.
La etapa de ejecución.

El kernel generalmente se almacena en un archivo comprimido. Este archivo


comprimido se carga y se descomprime en memoria.

Por otra parte, también se cargan los drivers necesarios mediante el initrd. El
initrd crea un sistema de archivos temporal usado en la fase de ejecución del
kernel.

Una vez que el kernel se ha cargado en memoria y está listo, se lleva a cabo su
ejecución.
Lo último que se lanza es el proceso init.

CUARTA ETAPA: El proceso init.

Al igual que todos los sistemas Unix, Debian arranca ejecutando el proceso init. El
archivo de configuración de init es el fichero /etc/inittab, en el que se indica
que el primer script que se debe ejecutar es el /etc/init.d/rcS.

Supongamos que se encuentra instalado el paquete sysv-rc (es lo típico), que


utiliza enlaces simbólicos en los directorios rc para controlar qué servicios se
inician en los diferentes niveles de ejecución.

El archivo /etc/init.d/rcS ejecuta todos los scripts situados en /etc/rcS.d/ para


realizar inicializaciones tales como la comprobación y montaje de los sistemas de
archivos, la carga de módulos, la inicialización de los servicios de red, la
configuración del reloj, etc.

Luego, y por compatibilidad, también ejecuta todos los archivos (excepto aquellos
con un `.' en su nombre) situados en /etc/[Link]/. Este último directorio está
reservado para el administrador del sistema y su utilización ha caído en desuso.

********kernel
El kernel ó núcleo de linux lo podríamos definir como el corazón del SO.

Versión de produccion: Era la versión estable del momento y la que se debía de


utilizar, ya que, esta versión era el resultado final de las versiones que estaban
en desarrollo.

Versión de desarrollo:Era la versión que estaba en desarrollo y la que los


programadores utilizaban para corregir bugs. Esta versión era muy inestable.

Archivos fuentes : [Link]

101.3

*****************/etc/inittab
Después de que arranque y el núcleo monte el sistema de ficheros de root, el primer
programa que ejecuta el sistema es init.
Este programa es el encargado de lanzar los scripts de inicialización del sistema y
de modificar el sistema operativo de su estado inicial de arranque al estado
estándar multiusuario.
También define los intérpretes de órdenes login: de todos los dispositivos tty del
sistema y especifica otras características del arranque y apagado.

Nivel de ejecución 0:
Halt. Este nivel de ejecución se encarga de detener todos los procesos activos en
el sistema, enviando a la placa madre una interrupción para el completo apagado del
equipo.

Nivel de ejecución 1:
Single. Nivel de ejecución monousuario, sin acceso a servicios de red. Este nivel
es regularmente utilizado en tareas de mantenimiento del sistema, y el usuario que
ejecuta es root.

Nivel de ejecución 2:
igual que el nivel de ejecución monousuario, pero con funciones de red y
compartición de datos mediante nfs.

Nivel de ejecución 3:
Sistema multiusuario, con capacidades plenas de red, sin entorno gráfico. Este
nivel de ejecución es el recomendado para sistemas de servidor, ya que evita la
carga innecesaria de aplicaciones consumidoras de recursos.

Nivel de ejecución 4:
Nivel especificado, pero no se utiliza

Nivel de ejecución 5:
Al igual que el nivel de ejecución 3, pero con capacidades gráficas. Ideal para
entornos de escritorio.

Nivel de ejecución 6:
Reboot. Este nivel de ejecución se encarga de detener todos los procesos activos en
el sistema, enviando a la placa madre una interrupción para el reinicio del equipo.

102.1

-------- FHS directories


Filesystem Hierarchy Standard

bin Essential command binaries


boot Static files of the boot loader
dev Device files
etc Host-specific system configuration
lib Essential shared libraries and kernel modules
media Mount point for removable media
mnt Mount point for mounting a filesystem temporarily
opt Add-on application software packages
sbin Essential system binaries
srv Data for services provided by this system
tmp Temporary files
usr Secondary hierarchy
var Variable data
home Home directory

------- Estructura de dispositivos

Nomenclatura de dispositivos IDE:

Dispositivo IDE Posición


/dev/hda Primario Maestro
/dev/hdb Primario Esclavo
/dev/hdc Secundario Maestro
/dev/hdd Secundario Esclavo

Nomenclatura de dispositivos SCSI:

Dispositivo Orden
/dev/sda 1°
/dev/sdb 2°
/dev/sdc 3°
. . . . . .

------- Numeración de particiones:

Dispositivo Número Orden


/dev/sda1 1 1ra. partición primaria
/dev/sda2 2 2da. partición primaria
/dev/sda5 5 1ra. partición lógica
/dev/sda6 6 2da. partición lógica

Las particiones primarias -entre ellas quizás una extendida- se enumeran siempre
del 1 al 4.
Las particiones lógicas se enumeran siempre del 5 en adelante.
En Linux puede crearse un máximo de 63 particiones en discos IDE, y 15 particiones
en discos SCSI, conjugando en ambos casos entre particiones primarias, una
extendida y las correspondientes lógicas.
---- Sistemas de archivos comunes son los siguientes:

Sistema de archivos Nombre común


NTFS ntfs
FAT32 vfat
Ext2 ext2
Ext3 ext3
Reiserfs reiserfs
ISO 9660 iso9660
XFS xfs
UDF udf
UFS ufs
JFS jfs

102.2
***************** /boot/grub/[Link]

default 0 --- el primer sistema operativo en arrancar


timeout ---- tiempo en el que estara visible el menu
splashimage ---- personalizar imagen de fondo
hiddenmenu --- ocultar el menu

grub-install /dev/sda
If you wish to re-install GRUB to the PBR of Partition #2 on a SCSI or SATA disk
(/dev/sda2):
# grub-install /dev/sda2
If you wish to re-install GRUB to the MBR on an IDE disk (/dev/hda):
# grub-install /dev/hda
If you wish to re-install GRUB to the MBR on a HP Smart Array disk (/dev/c0d0):
# grub-install /dev/cciss/c0d0

yum install -y kernel kernel-devel

102.3
[Link]

******************* ldd
muestra información acerca de los requisitos de bibliotecas de un ejecutable.

ldd /bin/ls

***************** ldconfig
actualiza las librerías utilizadas por el sistema, recomendable ejecutarlo cada vez
que se instale un programa.

**************** /etc/[Link]
Archivo de configuracion dónde se buscan los ejecutables
/etc/[Link] especifica que deberán incluirse todos los archivos .conf del
subdirectorio [Link].d

/lib/[Link] enlazador/cargador en tiempo de ejecución


/etc/[Link] Fichero que contiene una lista de directorios, separados por
dos puntos (:), espacio, tabulaciones, saltos de línea o comas, en los cuales se
buscan las bibliotecas.
/etc/[Link] Fichero que contiene una lista ordenada de bibliotecas
encontradas en los directorios especificados
en /etc/[Link].

comando ldconfig sin parámetros para reconstruir a [Link]


visualizar el contenido de [Link] e.

/sbin/ldconfig -p | more

******************************** LD_LIBRARY_PATH
Es una variable de entorno usada para referenciar donde debe buscar las librerias
el sistema operativo

$ ./apli1
apli1: error in loading shared libraries: [Link]: cannot open shared object
file: No such file or directory

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/dir_lib

102.4
[Link]

************ USO DE PAQUETES EN DEBIAN


Las funciona similar a los RPM, sin embargo se utilizan en distribuciones distintas
a que los RPM ya que tiene su propio formato de datos.
RPM y debian no pueden intercambiar paquetes sin convertir formatos, en Debian
existe comandos como dpkg,dselect y apt-get

[Link] : indica que es un paquete para x86


[Link] : indciada que es un paquete para PowerPC.
[Link] : indica que es independiente de la arquitectura.

¿Pero de dónde provienen dichos paquetes?


¿Cómo sabe apt-get de dónde descargar los paquetes?
La lista le indica a apt-get dónde buscar los paquetes

*************** dpkg
Se trata de una herramienta de gestión de paquetes de nivel medio que puede
instalar y eliminar paquetes y visualizar la información de estado correspondiente,
su archivo de configuracion es "/etc/dpkg/[Link]"

#vi /etc/dpkg/[Link]

Sintaxtis :

dpkg [opciones] [acción] [nombre paquete]

Acciones
-i o --install : Instala un paquete
--configure : Reconfigura o configura un paquete instalado
-r o --remove : Borra un paquete pero deja los ficheros de configuración
-P o --purge : Elimina un paquete incluyendo los ficheros de configuración
-p o --print-avail :Muestra la información de un paquete instalado
-I o --info :Muestra la información de un paquete desinstalado
-L o --listfiles :Lista los archivos instalados asociados a un paquete
-S patrón o --search patrón : Lista todos los archivos instalados asociados a un
patron

Otras Opciones

--ignore-depends=paquete : Es usado con -i -r ,ignora la información de dependencia


para el paquete especificado
-E o --skip-same-version : Es usado con -i , no instala el paquete si ya se
encuentra instalada la misma version de este.

Administrando paquetes con dpkg

#wget [Link]
2_i386.deb
#dpkg -i libltdl7_2.2.6b-2_i386.deb
#dpkg -p libltdl7
#dpkg -S libltdl7

#wget [Link]
1_all.deb
#dpkg -i lynx_2.8.8dev.5-1_all.deb
#wget [Link]
1_i386.deb
#dpkg -i lynx_2.8.8dev.5-1_all.deb lynx-cur_2.8.8dev.5-1_i386.deb
#dpkg --print-avail lynx
#dpkg -r lynx

#dpkg -s gcl tzdata


#dpkg -L libparted

*************** ATP
APT es una suite de herramientas que incluye una serie de programas, su archivo de
configuracion es "/etc/apt/[Link]" el cual no viene creado por defecto, se puede
encontrar una plantilla de configuracion en "/usr/share/doc/apt/examples/[Link]"

Es posible configurar APT para que solo descarge los programas

# vi /usr/share/doc/apt/examples/[Link]

{
// Options for apt-get
Get
{
Download-Only "true";
};

};
APT-CACHE

Mostrar informacion de un paquete : apt-cache search ; ejemplo : apt-cache


search unzip
Mostrar estadisticas de los paquetes : apt-cache stats
Localizar dependencias no satisfechas : apt-cache unmet
Mostrar las dependencias : apt-cache depends ; ejemplo : apt-cache
depends samba
Localizar todos los paquetes : apt-cache pkgnames ; ejemplo : apt-cache
pkgnames lynx , apt-cache pkgnames sa

Mas información de apt-cache : man apt-cache

Busqueda de paquetes
apt-cache search "linux loader"
apt-cache search nmap

APT-GET
Es el equivalente a yum en debian, que permite facilmente realizar instalaciones,
actualizaciones de paquetes desde internet
Se basa en la busqueda de paquetes desde repositorios de software , el archivo de
configuración de los repositorios es
"/etc/apt/[Link]"

Sintaxis :

apt-get [opciones] [comando] [nombre-paquete]

Comandos de apt-get

update : Actualizar la lista de paquetes que se encuentran disponibles


en los repositorios.
upgrade : Actualiza todos los paquetes instalados
dist-upgrade : Actualiza solucionando problemas de conflictos entre dependencia
de paquetes en el sistema
install : Instala un paquete
remove : Elimina un paquete
source : Obtiene el archivo del paquete fuente
check : Reviza la consistencia de la base de datos de paquetes y las
instalaciones defectuosas
autoclean : Borra información de paquetes que ya no se pueden descargar.

Otras opciones de apt-get

-d o --download-only
Descargar los archivos de los paquetes pero no los instalada, es usado por los
comandos upgrade,install,source

-f o --fix-broken
Intenta corregir problemas de dependencias, usado por install y remove

-m o --ignore-missing o --fix-missing
Ignora todos los paquetes que no se pueden obtener por causas de la red o algun
repositorio no disponible en ese momento.

-s o --simulate
Realiza una simulacion de accion sin modificar o instalar realmente los archivos

-y o --yes o --assume-yes
Genera una respuesta de "si" a cualquier pregunta

--no-upgrade
No actualiza un paquete si ya hay instalada una version anterior, lo usa el comando
"install"

Administrando paquetes con APT

#mkdir apt-get
#cd apt-get
#apt-get install --download-only unzip
#apt-get source unzip
#apt-get -y install dpkg-dev
#apt-get install --download-only unzip
#apt-get install unzip
#apt-get remove unzip
#apt-get install -s gcl-doc

DSELECT
Es un selector de paquetes que permite elegir los archivos a instalar en el
sistema, los extrae desde los repositorios definidos en el archivo
"/etc/apt/[Link]"

Instalación
#apt-get install dselect
#dselect

2 + enter
?
l
q
Ctl + c

APTITUDE
Es otro administrador de paquetes en Debian, puede ser usando en entorno grafico,
asi como en consola

Sintaxis :

aptitude [opciones] [comando] [nombre-paquete]

Comandos de aptitude

upgrade
Actualiza la lista de paquetes

install
Instala paquetes

remove
des instalar paquete

full-upgrade o safe-upgrade
Actualizan los paquetes en el sistema, la opcion full-upgrade puede dañar el
software residente ya que no respeta version y/o dependencias.

search
Busca en la base de datos de paquetes

autoclean
Limpia la base de datos

Para optener ayuda : aptitude help

Administrando paquetes con aptitude

#aptitude search zsh


#aptitude install zsh
#aptitude remove zsh
#aptitude download nmap

Reconfiguracion de paquetes con dpkg


Los scripts de instalacion en debian, normalmente realizan preguntas al inicio de
la instalación, estos mensajes almacenan informacion importante
de configuración, sin embargo despues de algun tiempo puede ser necesario volver a
reconfigurar este paquete.

#apt-get update
#apt-get install samba
#dpkg-reconfigure samba

CONVERTIR DE .DEB A RPM con ALIEN


Es posible crear un archivo rpm a partir de un .deb , esto se realiza con el
paquete "alien"

Sintaxis :

alien [opciones] [nombre-paquete]

Convirtiendo un .deb en rpm con Alien

#cd /root/
#mkdir rpm
#mv lynx_2.8.8dev.5-1_all.deb rpm/
#cd rpm/
#alien --to-rpm --scripts lynx_2.8.8dev.5-1_all.deb

102.5
[Link]

****************** RPM
Red Hat Package Manager (RPM) fue desarrollado por Redhat y fue publicado como
software libre bajo licencia GLP, por lo que distribuciones como
Mandriva, SUSE, lo tomaron como gestionador de sus sistema de paquetes.
Esta presente en arquitecturas como :

x86
x86-64
AMD64
EMT64T
IA-64
Alpha
Spark

Sintaxtis de un paquete RPM

[Link]

- nombrepaquete
Como samba, mysql-server

- numero de versión (a.b.c)


Versión del paquete ejemplo 2.1.26b

- Numero de compilación (-x)


Tambien llamado el número de edición, que representa los cambios realizados por el
mantendor del paquete.

- Aquitectura (arch)
La arquitectura puede ser i386 que son los archivos compilados para CPU x86, los
paquetes con nomenclatura i586 o i686 son paquetes
optimizados para procesadores superiores a los tradicionales pentium IV.
Los paquetes para procesadores de 64bits trabajan bajo nomenclatura x86_64

Un paquete RPM , puede depender de otro para su instalación, para evitar eso es
posible usar el parametro "--nodeps" sin embargo esto no
garantiza un funcionamiento al 100% del mismo.

Sintaxis :

rpm [operacion] [opciones] [archivos-paquete]

Comandos de RPM

-i :Instala un paquete
-U :Instalar o actualiza un nuevo paquete
-F o --freshen :Actualiza un paquete si solo ya existe la versión anterior
-q :Consulta si el paquete que esta instalado, que archivos contiene
-V o --verify :Verifica si los archivos de una paquete estan presentes y no han
cambiado desde la instalación
-e :Desinstala un paquete
--rebuild :Compila un paquete binario

Otras opciones de RPM

--root dir :Modifica el lugar de instalacion de un paquete


--force :Es utilizado por los comandos -i,-U,-F ,fuerza la instalacion
de un paquete
-h o --hash :Es usado por los comandos -i,-U,-F ,Muestra una barra de progreso
en una instalación
-v :Es usado por los comandos -i,-U,-F, Muestra una barra de progreso en
una instalación y se usa junto a la opcion -h
--nodeps :Es usado por los comandos -i,-U,-F,e Especifica que no realizara
verificación de dependencias en la instalación del paquete
--test :Es usado por los comandos -i,-U,-F, Verifica las dependencias y
conflictos sin instalar el paquete
-a o --all :Es usado por los comandos -q,-V consulta o verifica todos los
paquetes.
-i :Es usado por los comandos -q, Muestra información del paquete
-R o --requires:Es usado por los comandos -q, Muestra los paquetes y archivos de
los que depende este.
-l o --list :Es usado por los comandos -q, Muestra los archivos contenidos en el
paquete.
-p archivo :Es usado por los comandos -q, consulta o verifica el paquete
desinstalado

Gestión de paquetes con RPM


#wget [Link]
Packages/lynx-2.8.6-27.el6.x86_64.rpm
#rpm -ivh lynx-2.8.6-27.el6.x86_64.rpm
#wget [Link]
1.el6.x86_64.rpm
#rpm -qpi lynx-2.8.6-27.el6.x86_64.rpm
#rpm -Uvh unzip-6.0-1.el6.x86_64.rpm
#rpm -e lynx

Listar todos los paquetes RPM instalados en el sistema


#rpm -qa

Listar determinados paquetes RPM


#rpm -q nmap

Listar información de un paquete RPM


rpm -qi unzip

Listar ficheros de un paquete RPM instalado


rpm -ql unzip

Muestra los paquetes y archivos de los que depende este


rpm -qR unzip

****************** RPM2CIPIO
Los archivos RPM en realidad son archivos de formato cpio modificados, es posible
utilizar el programa "cpio" para obtener los archivos individuales
del paquete RPM. Para extraer los archivos de un paquete es necesario utilizar el
comando rpm2cpio.

Sintaxis: rpm2cpio

opciones

-i : restaura el archivo
-d: crea los directorios principales si es necesario.
-m: mantiene los ficheros si ya existen.
--make-directories

Gestion de paquetes con rpm2cpio

#mkdir sourcerpm1
#cd sourcerpm1
#wget [Link]
2.el6.x86_64.rpm
#rpm2cpio nmap-5.51-2.el6.x86_64.rpm > nmap-5.51-2.el6.x86_64.cpio
#cpio -i --make-directories < nmap-5.51-2.el6.x86_64.cpio
#ls
#cd bin/
#ls

#cd /root/
#mkdir sourcerpm2
#cd sourcerpm2
#wget [Link]
22.el6.x86_64.rpm
#rpm2cpio nc-1.84-22.el6.x86_64.rpm | cpio -i --make-directories

#cd /root/
#mkdir sourcerpm3 ; cd sourcerpm3
#yumdownloader mysql-server
#rpm2cpio mysql-server-5.1.69-1.el6_4.x86_64.rpm | cpio -i --make-directories
#ls

******************************* Yellowdog Updater Modified (YUM)


Permite instalar un paquete y todas sus dependencias de manera sencilla, desde una
unica linea de comandos, Proviene de la muy antigua
y desconocida distribución "Yellow Dog Linux" sin embargo fue adoptado por Red Hat,
y ha sido portado a varias distribuciones como
Fedora,Suse,Mandriva.

Sintaxis

yum [opciones] [comando] [paquete]

Comandos de YUM

install : Instala uno o mas paquetes


update : Actualiza el paquete especificado
check-update : Comprueba si hay actualizaciones disponibles
upgrade : Igual a update pero actualiza la distribucion completa.
remove o erase: Borra un paquete del sistema
list : Muestra la información del paquete
provides : lista todos los paquetes relacionados con el paquete consultado
search : Busca los nombres de paquete
info : Muestra informacion de un paquete
clean : Limpia el directorio de la cache de yum, elimina los archivos
descargados
localinstall : Instala el rpm indicado, pero utiliza yum para resolver las
dependencias
localupdate : Actualiza el rpm indicado, pero utiliza yum para resolver las
dependencias
deplist : Muestra las dependencias del paquete

YUM cuenta con una GUI : yumex o kyum


Si no se desea instalar los paquetes y solo conseguir los archivos rpm de un
paquete es posible usar "yumloader"

Archivos de configuracion de YUM

/etc/[Link]
¿Cómo sabe yum de dónde descargar los paquetes?
El punto de inicio es el directoio "/etc/[Link].d/" el cual contiene por lo
general varios archivos repo.
Esta es la ubicación por defecto para repos, pero otras ubicaciones pueden estar
especificadas en el archivo de configuración de YUM,
generalmente /etc/[Link].

****************************** /etc/[Link].d/
Un archivo repo común se divide en tres secciones, una para los paquetes normales,
una para los paquetes de depuración, y el último para los paquetes fuentes.

Gestion de paquetes con YUM

#yum search vsftpd


#yum install vsftpd
#yum -y install iptraf
#yum remove iptraf
#yum list vsftpd
#yum info vsftpd
#yum deplist vsftpd

******************************** yumdownloader
Aunque YUM recupere automáticamente paquetes de los depósitos, usted quizá quiera
descargar RPMs y guardarlos, tal vez para instalarlos en un sistema sin conexión de
red, o para examinar sus contenidos, o por alguna otra razón. Usted puede utilizar
para esto el comando yumdownloader

yumdownloader nmap
yumdownloader --resolve mailx

103.1
[Link]

CONSOLA DE LINUX
Existen varias consolas en Linux sin embargo todas son similares

bash: Bourne Again Shell GNU, esta basada en la consola bourne de las versiones de
Unix y el la consola por defecto en Linux
bsh : Consola Bourne, es en la que esta basada bash justamente
tcsh: Basada en la antigua consola basada en C
csh : Consola C original , pero no se usa mucho en Linux
ksh : Consola Kron, con mejor desarrollo que las consolas C
zsh : Evolucion de ksh

La consola bash tiene se encuentra dentro del sistema Linux en "/bin/sh" sin
embargo es un enlace simbolico a "/bin/bash"

Los flujos, las redirecciones y los pipes


Son de las herramientas mas potentes de la linea de comandos de linux
Los flujos, es lo que entra y lo que sale de los programas y es posible
manipularlos
LOs pipes, es la manera como se redirigen estos flujos a otras fuentes como
archivos o a otros comandos inclusive

Tipos de flujos:

stdin, es el flujo de entrada estándar, que proporciona los datos de entrada a los
comandos.
stdout, es el flujo de salida estándar, que muestra los datos de salida de los
comandos.
stderr, es el flujo de error estándar, que muestra los datos de salida de error de
los comandos.

Operadores de redirección

> Crea un nuevo archivo que contiene la salida estandar, si el archivo existe
los sobre escribe
>> Añade la salida estandar al archivo existente, si el archivo no existe lo crea
2> Crea un nuevo archivo con el error estandar,si el archivo existe lo sobre
escribe
2>> Añade el error estandar al nuevo fichero
&> Crea un nuevo archivo, con la salida y el error estandar, si el archivo existe
lo sobre escribe.
< Envia el contenido del archivo especificado para utilizarlo como entrada
estandar.
<< Acepta el texto de las siguientes lineas como entrada estandar.
<> Hace que el archivo especificado se utilice para la entrada estandar como para
la salida estandar.

Paso de datos entre programas


Es una forma muy util de procesar información en la linea de comandos

# primero | segundo | tercero | cuarto | quinto

El /dev/null ??
Es archivo de dispositivo que no esta conectado a nada, se utiliza para deshacerse
de información
Ademas es posible asociarlo a la salida estandar o error estandar.

******************** BASH
El shell bash es uno de los numerosos shells disponibles para Linux.
También denominado Bourne-again shell, en honor a Stephen Bourne, creador del shell
inicial (/bin/sh)

Filename Globbing
Antes de ejecutar cualquier comando, el Shell realiza una búsqueda, en la línea de
comandos, de algunos caracteres especiales (metacaracteres), con la finalidad de
“interpretarlos” para que el comando solicitado se ejecute correctamente. Esta
operación descrita se conoce como “File Globbing”.

********************** echo

El comando echo imprime sus argumentos (o hace eco de los mismos) a la terminal tal
como se muestra en el Listado 3.

echo Word
echo A phrase
echo Where are my spaces?
echo "Here are my spaces."

******************************* Env
El comando env sin ninguna opción ni parámetro muestra las variables del entorno
actual.

#env

****************************** exec
El comando exec puede utilizarse para ejecutar otro programa que reemplace el shell
actual.

se inicia un shell bash secundario


luego se utiliza exec para reemplazarlo por un shell Korn.
Luego de salir del shell Korn, usted vuelve al shell bash original (en este
ejemplo, PID 2852).

echo $$

Se vera su utilidad cuando se vea el programa VI

103.2 - PROCESAR FLUJOS DE TEXTO


[Link]

Primero :

#mkdir lpi103-2
#cd lpi103-2

Dentro de la variedad de comandos para el tratamiento de información es posible


clasificarlos de la siguiente forma

Comandos para

A) Procesar texto empleando filtros : cat,join,paste


B) Transformar archivos : expan,od,sort,split,tr,expand/unexpand,uniq
C) Generar formatos a archivos : nl,pr
D) Visualizar archivos: head,tail
E) Resumir archivos : cut,wc
-------------------- cat , od , split

Comando cat
Es abreviatura del concatenar, enlaza de principio a fin un numero arbitrario.

Opciones :

-E o --showends :Mostrar los finales de linea


-n o --number :Numerar lineas
-s o --squeeze-blank :Minimizar las lineas en blanco
-T o --show-tabs :Mostrar caracteres especiales (^I)

ejemplo : Mostrando el contenido de un archivo con cat


vi text1
1 apple
2 pear
3 banana

cat text1
1 apple
2 pear
3 banana

ejemplo : Creando un archivo de texto con cat


cat text1 >text2
9 plum
3 banana
10 apple

ejemplo : Concatenando dos archivos con cat

cat text*

1 apple
2 pear
3 banana
9 plum
3 banana
10 apple

ejemplo : Combinado archivos


cat text1 text2 > text3

Comando od
Significa octal dump, volcado octal, muestra archivos en formato octal
Se usa cuando al mostrar un archivo en formato ASCII, los muestra con ciertos
problemas, en tal caso es posible mostrar el archivo en formato octal.
od tambien puede generar salida en formato hexadecimal como base 16, decimal base
10

-A para controlar el radix de los desplazamientos de archivo


-t para controlar la forma del contenido del archivo presentado.
El radix puede ser especificado como o, (octal, el predeterminado), d (decimal), x
(hexadecimal), o n (sin desplazamientos mostrados).
od text2

Comando split
divide archivos grandes, en partes más pequeñas, por defecto lo hace en 1000 lineas
por cada archivo, e incluira un prefijo por defecto en orden
alfabetico, si no es especificado.

Es posible usar split para dividir por otros

Dividir por bytes : -b tamaño o --bytes tamaño


Dividir por bytes en bloques determinados por lineas : -C=tamaño o --line-
bytes=tamaño
Dividir por numero de lineas : -l lineas o --lines=lineas

ejemplo : Dividimos text1 en archivos que contienen como máximo dos líneas
split -l 2 text1

cat xaa
cat xab

ejemplo : text2 en archivos que contienen como máximo 18 bytes.


split -b 17 text2 y

cat yab
cat y* x*

------------------------ expand unxpand tr


expand :
convierte los tabuladores a espacios, elimina los tabuladores y los remplaza por
espacios en blanco.
Por defecto los tabuladores se asumen 8 espacios en blanco.

parametro -t : especificamos el espacio del tabulador.

vi text3
1[TAB]manzana
2[TAB]pera
3[TAB]platano

expand -t 3 text3
expand -t 4 text2
expand -t 10 text2

unexpand: Convierte espacios a tabulaciones.

vi text4
1 carro
2 avion
3 buque
cat text4
unexpand -t1 text4
unexpand --tabs=1 text4

Comando tr
Es un filtro que nos permite cambiar una determinada información de un archivo por
otra, es decir cambia caracterires individuales de la entrada
estandar.

Sintaxis :

tr [opciones] SET1 [SET2]

Ejemplo:

tr ':' ' ' < /etc/passwd > ficheropasswd


cat ficheropasswd

-d : Borra los caracteres que especifiquemos.


echo murcielago | tr -d ae

-------------------------- pr ,nl , fmt

Comando pr

El comando pr se usa para dar formato a los archivos para impresión, El encabezado
predeterminado incluye el nombre de archivo y la fecha y hora de creación de
archivo, junto con un número de página y dos líneas de encabezado en blanco

Opciones

-d : Genera salida con espacios dobles


-F o -f : Genera saldo de página
-l : define la longitud de las lineas de la pagina.

#pr text2
#pr text2 | head
#cat /etc/profile | pr -d

Comando nl
Numera las líneas, lo cual puede ser conveniente cuando se estén imprimiendo
archivos.
#nl text1
#nl text1 | pr -f

Comando fmt
El cual da formato al texto para que se ajuste a los márgenes. Usted puede unir
varias líneas cortas así como dividir otras largas.

Ejemplo : Formato hasta un ancho máximo de 60 caracteres.


#fmt -w 1 text2
#fmt -w 60 text3 text4

-------------------------------- sort y uniq


Comando sort
Ordena la entrada usando la secuencia de clasificación ($LC_COLLATE) del sistema.
El comando sort también puede fusionar archivos que ya están ordenados y verificar
si un archivo ya está ordenado o no.

Opciones
-f o --ignore-case :Ignora mayusculas y minusculas
-n o --numeric-sort :Ordenacion numerica
-r o --reverse :Invertir el ordem
-k o --key :Campo de ordenación

Ejemplo:

#vi text6
101 Ortiz, Luis
102 Tapia, Sandro
103 Perez, Alfonso
104 Vargas, Beatriz

Ejemplo1 : Ordernar el listado por el apellido


sort -k 2 text6

Ejemplo2 : Ordenar el listado por el nombre


sort -k 3 text6

Ejemplo3 : Ordenar de manera invertida


sort -r text6

Comando uniq
Otro comando llamado uniq nos da otra forma para controlar la eliminación de líneas
duplicadas. El comando uniq normalmente funciona sobre archivos ordenados, y
elimina líneas consecutivas idénticas de cualquier archivo, esté ordenado o no.

ejempplo 1: ordena dos archivos de texto y luego elimina las líneas que sean
idénticas

#vi text8
Juan
Pedro
Maria
Rino
Rino
Marina
Pedrito
Hola
Hola

#uniq text8
------------------------ cut paste join
Comando cut
el cual extrae campos de archivos de texto. El delimitador de campo predeterminado
es el carácter de tabulación.

Opciones
-b o --bytes=lista :Corta la lista especificada por bytes
-c o --characters=lista :Corta la lista de caracteres especificado
-d :Delimitador de la columna a cortar
-f :Fila a cortar o extraer

#ifconfig
#ifconfig eth0 | grep HWaddr
#ifconfig eth0 | grep HWaddr | cut -d " " -f 10
#ifconfig eth0 | grep HWaddr | cut -d " " -f 11
#cut -c1-2 text8

Comando paste
El comando paste pega o fuciona archivos línea a línea

ejemplo : muestra el resultado de pegar nuestros dos archivos de texto.

#paste text1 text2

Comando join
Asocia o une campos con base en un campo que coincida

Ejemplo: Unir los archivos de personas (text6) y ubicacion de anexos (text9) basado
en el numero de anexo respectivamente

#cat text6
#vi text9
101 Lima
102 Trujillo
103 Arequipa
104 Cuzco
#cat text9
#join text6 text9

---------------------------- sed
Comando sed
Es uno de los comandos mas complejos en Linux, puede Modifica el contenido de los
ficheros enviando el fichero modificado a la salida estandar

Sintaxis:

sed [opciones] -f archivo-script [archivo-entrada]


sed [opciones] texto-script [archivo-entrada]

Donde:

[archivo-entrada]: Es el nombre del archivo que se desea modificar


texto-script : Es el conjunto de comandos que desea que ejecute sed
Opciones mas conocidas de sed:

= :Muestra el numero de linea actual


a\texto :Añade "texto" al archivo
i\texto :Inserta "texto" al archivo
c\texto :Reemplaza el rango de lineas seleccionado
s/regexp/sustituto :Reemplaza el texto que coincida con la expresion

ejemplo1 : usamos el comando s (sustituir) para sustituir una 'a' en letra


mayúscula por letra minúscula en cada línea , la primera conincidencia

#sed 's/a/A/' text1

ejemplo : añadimos la banderilla 'g' (de global) para hacer que sed cambie todas
las ocurrencias.

#sed 's/a/A/g' text1

ejemplo2 : introducimos el comando d (delete) para eliminar una línea.


En nuestro ejemplo usamos una dirección de 2 para señalar que solo la línea 2 debe
eliminarse.
Separamos los comandos usando punto y coma (;) y usamos la misma sustitución global
que usamos en el segundo script para reemplazar 'a' por 'A'.

#sed '2d;$s/a/A/g' text1

------------------------------ wc head tail

Comando wc
Genera un contador de las palabras de un archivo (Word Count) para ver qué tan
grande es el archivo , muestra el número de líneas, palabras y bytes de un archivo

Muestra el número de :
Lineas
Palabras
Bytes

#ls -l text*
#wc text*
#wc -l text*
#wc -w text*
#wc -c text*

--------------------------head
Comando head
Permiten mostrar las primeras lineas de un archivo

#head /var/log/dmesg
#head -n 6 /var/log/dmesg
Comando tail
Muestra las ultimas 10 lineas de un archivo

Opciones:

-c o --bytes :Especifica el numero de bytes


-n o --lines :Numero de lineas a mostrar
-f o --follow:Muestra las nuevas lineas que se añaden al archivo

Ejemplos:
#tail /var/log/syslog
#tail -n15 /var/log/syslog
#tail -f -n14 /var/log/syslog

------------------Expresiones regulares
Son herramientas para expresar patrones de texto, similares a comodines, que se
puede utilizar para especificar varios nombre de archivo.
Existen dos programas que hacen uso intensivo de las expresiones regulares, los
cuales son grep y sed

Tipos y Convensiones :

- Expresiones entre corchetes


Son las que coinciden con cualquiera de los caracteres entre los corchetes

ejemplo :
b[aeiou]g (bag,beg,big,bog,bug)

- Expresiones de rango
Listan punto de inicio y punto final para una expresion separados por un guion

ejemplo :
a[2-4]z (a2z,a3z,a4z)

- Cualquier caracter único


Representa cualquier caracter unico exceptop el salto de linea

ejemplo:
a.z (a2z,abz,aQz) o cualquier cosa de 3 caracteres que comience por la a y
termine en z.

- Inicio y comienzo de linea


El circunflejo (^) representa el comienzo de la linea y el signo dolar ($)
representa el final de la linea

- Operadores de repetición
Una expresion regular puede ir seguida de un simbolo especial para denotar cuantas
veces debe aparecer un elemento coincidente.

Asterisco (*) denota cero o muchas ocurrencias


Signo suma(+) denota coincidencia con una o mas apariciones
Sign interrogación(?) especifica cero o una coincidencia

ejemplo
.* : Especifica una coincidencia en cualquier cadena
S.*sung : coindicide cualquier cadena que contenga S y sung (Sam sung , samsung )
- Varias posibles cadenas
Es posoble especificar varias posibles coincidencias con la barra vertical (|)

ejemplo
carro|camioneta : expresiones que coincidan con carro y camioneta

- Paréntesis
Es el signo que rodea las sub expresiones , se usan para especificar como se deben
aplicar los operadores.

- Caracteres de escape
Es necesario cuando se desea comparar expresiones que contengan caracteres
especiales.

Para comparar el nombe de un servidor [Link] se debe indicar los puntos


con caracteres de escape server1\.amazon\.com

Ejemplos:

listar todos los archivos del directorio "/dev" que empiecen por "tty" y cuando más
tengan 5 caracteres
ls /dev/tty??

listar todos los archivos del directorio "/dev" que empiecen por "tty" y que
terminen en 1, 2, 3, ó 4.
ls /dev/tty*[1-4]

103.3 - ADMINISTRACION DE ARCHIVOS


[Link]

------------------ls : listados
Comando ls

Abreviatura de List, muestra los nombres de los archivos de un directorio

Sintaxis:

ls [opciones] [archivo]

Opciones del comando ls

-a o all :Muestra todos los archivos


--color :Listado de colores
-d o --directory:Muestra los nombres de directorios
-l :Listado largo
-F o --file-type:agrega un identificador del tipo de archivo Directorio (/) Enlace
(@) Soket (=) Pipe (|) Binario (*)
-R o --recursive:Muestra recursivamente el contenido de un directorio
-h :Agrega una letra indicativa del tamaño del archivo

Ejemplos:

#ls -al
#ls -lh
#ls -F /usr /bin/ls
#ls -lh /etc/*.conf

-----------------cp : copiar
Comando cp
Copia un archivo, el origen puede ser uno o mas archivos miestras que el destino
solo puede ser uno.

Sintaxis :

ls [opciones] origen destino

Opciones del comando cp

-f o --force : Fuerza la sobreescritura de archivos existentes


-i o --interactive : Hace que cp pregunte antes de sobreescribir archivos
existentes
-p o --preserve : Preserva la propiedad y los permisos
-R o --recursive : Realiza una copia recursiva
-u o --update : Realiza una copia incremental, le indica a cp que copie el
archivo solo si el original a copiar , es mas reciente que la copia existente.

Ejemplos
#cp -u /etc/fstab /root/[Link]
#cp -p /boot/grub/[Link] /root/[Link]

------------------mv : mover
Comando mv
Es la abreviatura de move, se suele utilizar para mover archivos y directorios, asi
como para renombrarlos

Sintaxis :

mv [opciones] origen destino

Opciones
-f o --force : Fuerza mover archivos existentes
-i o --interactive : Hace que mv pregunte antes de mover archivos existentes

#touch [Link]
#mv [Link] [Link]
#mv [Link] /opt

------------------rm : borrar
Comando rm
Es la abreviatura de remove

Sintaxis :

rm [opciones] archivos

Opciones
-f o --force : Fuerza la eliminacion de archivos existentes
-i o --interactive : Hace que rm pregunte antes de eliminar archivos existentes
-r o -R --recursive: Elimina en modo recursivo
CUIDADO CON : rm -R /

---------------mkdir : crear directorios


Comando mkdir
Crear directorios

Sintaxis :

mkdir [opciones] nombre-directorio(s)

Opciones del comando mkdir

-m modo o --mode=modo :Establece que el directorio creado tenga permisos en


formato octal
-p p --parents :Crear directorios padres

Ejemplos:

#mkdir dir1 dir2


#mkdir d1/d2/d3
#mkdir -p d1/d2/d3

---------------rmdir : eliminar directorios


Comando rmdir
Destruye directorios

Sintaxis :

rmdir [opciones] nombre-directorio(s)

Opciones del comando rmdir

-ignore-fail-on-non-empty :Ignora fallos en los directorios no vacios


-p o --parents :Borrar el arbol de directorios completos

Ejemplos:

#cp text1 d1/d2


#rmdir -p d1/d2/d3
#ls . d1/d2
#rmdir -p --ignore-fail-on-non-empty d1/d2

----------------touch
Comando touch
crea archivos en blanco, ademas modifica las marcas temporales (time stamps) de los
archivos creados

Marcas temporales:
- Hora de creación
- Hora de última modificación
- Hora de último acceso

Sintaxis :
touch [opciones] nombre-archivo

Opciones del comando touch:

-a o --time=hora :Cambia la hora de acceso


-c o --no-create :No crea archivos que ya existen
-t :Asigna un tiempo especificado
-d o --date=fecha :Establece la fecha de creacion

Ejemplo:

#touch file1
#touch -d "2 days ago 12:00" file1
#touch -d "tomorrow 02:00" file1
#touch -d "5 Nov" file1

COMANDOS DE COMPRESION DE ARCHIVOS

------------------tar
Viene de tape archive (archivador de cinta) la mayoria de archivos de programa
fuente vienen en formato tar.
Es posible tambien usar comprimidores como gzip o bzip2

Sintaxis :

tar [opciones] [archivo-tar] [archivo-carpera-empaquetada]

Opciones mas conocidas:

-x o --extracto-get : extrae archivos de un archivo


-z o --gzip o --ungzip : Comprimir archivos usando gzip
-c o --creatre : Crear un nuevo archivo
-v o --vervose : Muestrar el proceso durante la creacion del archivo
-f o --file : Nonbre de archivo a crear
-t o --list : lista el contenido de un archivo

ejemplos

#mkdir lpi103-2
#mv text**** lpi103-2/
#tar -cvf [Link] lpi103-2/
#ls
#tar -zcvf [Link] lpi103-2/
#tar ztf [Link]

Descomprimir
#tar -xvzf [Link]
-------------- gzip
GZIP , sólo comprime fichero a fichero, no empaqueta varios ficheros, en uno ni
comprime directorios.

Compresión con gzip


cp -p /etc/services .
ls -l serv*
gzip services
ls -l serv*

Descompresión con gzip


gzip -d [Link]
ls -l serv*

---------------bzip2
bzip2 sólo comprime fichero a fichero, no empaqueta varios ficheros en uno ni
comprime directorios.

Compresión con bzip2


ls -l serv*
bzip2 services
ls -l serv*
bunzip2 services.bz2
ls -l serv*

---------------cpio
El programa cpio es similar a tar, se usa normalmente para enviar informacion a un
dispositivo de cinta.

Opciones

-o o --create :Crear un archivo y copia archivos a este


-i o --extract:Extrae solo los ficheros que coinciden con el patron
-p o --pass-throug :Copiar un arbol de directorios de una ubicacion a otra
-t :Muestra la tabla de contenido de un archivo cpio

Ejemplos :

- Comprimir
find lpi103-2 |cpio -o > [Link]

- Listar
cpio -t < [Link]

- Extraer
mkdir descomprimido
cp [Link] descomprimido
cd descomprimido
cpio -i < [Link]

- Usando compresores GZIP


#find /etc/ | cpio -o > /opt/[Link]
#find /etc/ | cpio -o | gzip > /opt/[Link]
-------------dd : puede crear archivos de imagen
Utilidad de copias de bajo nivel, que permite generar respaldos a un nivel muy
bajo, estos son usados por los famosos archivos ISOS para las
ditribuciones de Linux.

ejemplos

#dd if=/root/lpi103-2/ of=/root/[Link]


#dd if=/dev/sda1 of=/root/[Link]

----------------file
El comando file, se utiliza para saber de qué tipo es un archivo

Sintaxis

file [nombre de archivo]

Ejemplos:

#file text1

103.4
[Link]

----------------------xargs
El comando xargs lee la entrada estándar y luego crea y ejecuta el (o los) comandos
con la entrada divida en parámetros

Sintaxis:

xarg [opciones] [comando [argumentos-iniciales]]

Donde:

- comando, es el comando que queremos ejecutar


- argumentos-iniciales, es la lista de argumentos que se quiere pasar al comando

Opciones
-t: Permite ver el comando antes de ejecutarlo:
n: Permite definir el número de argumentos que vemos a pasar a cada
-I: Permite definir donde se van a definir los parámetros, por ejemplo:

Suponiendo que tenemos en un directorio muchos archivos y queremos borrarlos,


normalmente ejecutaríamos:
# rm -fr *
Esto bash lo transforma en lo siguiente y lo ejecuta:
# rm -fr file1 file2 file3 file 4 ..........
Esto lanzaría un proceso rm para cada fichero del directorio consumiendo menos
buffer de memoria
#ls | xargs rm -fr
ejemplo
#cat text1
#xargs < text1 (Divide la salida de regular de text1 en parametros)

#ls | xargs -t echo


#ls | xargs -n1 echo
#ls | xargs -I ARG echo antes ARG despues

----------------------- tree
muestra de forma "grafica" en consola el árbol de directorios, podríamos utilizar
el comando:

#yum install tree


#tree

103.5
[Link]

Procesos:
--------------------------------------------------------------------

$> ps
lista procesos del usuario

$> ps ax
lista todos los procesos

$> ps axf
lista todos los procesos, jerarquía y ruta de los comandos

$> ps ax | grep gdm


verifica si en la lista de procesos se esta ejecutando gdm

2550 PID --> identifica el proceso

? TTY --> consola desde donde se esta ejecutando

sS STATE --> estado del proceso

0:00 TIME --> tiempo que se esta ejecutando el proceso

COMMAND --> comando del proceso

$> man ps
verifica fligs en la pagina del manual

Matar procesos:
--------------
Ejecuta un proceso que guarda en el archivo boom y lo manda a segundo plano

$> yes (te muestra y infinitamente)


ctr+c ---> cancela el proceso

$> yes > boom (lo direcciona a un archivo y bloquea la consola)


ctrl +c
$> yes > boom &
lo manda en segundo plano y desbloquea la consola

$> ps ax | grep yes


verifico la ejecucion del proceso

$> ls -l boom

$> killall -9 yes (-9 indica maximo nivel de matanza)


mata el proceso por el nombre del proceso

$> ps ax | grep yes


verificar la ejecucion del proceso

$> yes > boom &

$> ls -l boom

$> ps ax | grep yes


verifico cual el PID del proceso (Ej 2525)

$> kill -9 2525 --> 2525 es el PID del proceso, es un ejemplo

$> ps ax | grep yes

$> rm -f boom

Consumo de recursos de procesos:


-------------------------------

$> top --> los primeros procesos son los que mas recursos consumen
? --> muestra la ayuda de top

O --> elije una columna para ordenar los procesos (por defecto es el cpu)
k --> cpu
n --> memoria

q --> sale del top

Ejecucion de procesos y tareas:


-----------------------------------

$> yes
ejecuta proceso en primer plano ctrl+c cancela la ejecucion del comando

$> yes >/dev/null &


ejecuta el proceso en segundo plano, /dev/null es el agujero negro

$> ps axf | grep yes


muestra la ruta del comando ejecutado

$> jobs
lista los procesos ejecutados por el usuario

$> fg 1
vuelve a primer plano el proceso 1 de la lista anterior
ctrl + c -> interrumpe y cancela el proceso (trata de matar)

$> yes > /dev/null


ctrl + z ---> pone en estado zombie al proceso (detenido, pero
no muerto)

$> fg 1
ctcl + c

$> ps ax | grep yes

$> kill -9 PID ( -9 maximo nivel de matanza )

$> nohup yes >/dev/null &


permite ejecutar un proceso a nivel sistema de tal forma que el proceso no esta
enlazado al tyy se sigue ejecutando cuando se cierra
la session

103.6
[Link]

-------------- nice , renice


El comando nice en Linux nos permite modificar la prioridad de un proceso frente al
resto dentro del sistema.
renice cambiar la prioridad de un proceso

nice -n 19 yes >/dev/null &


ps al

/usr/bin/renice 7 3810
ps al

kill -9 27780

cuando se establece nice por defecto establece la prioridad 10 al proceso

103.7
[Link]

----------------- grep
grep p text1
grep pea text1
grep "p*" text1

---------------------egrep
Su comportamiento es similar (pero no idéntico) al de grep -E, salvo que es más
flexible pero más lento

egrep "pe**" text1

--------------------- fgrep
El comando fgrep se utiliza para buscar en uno o más archivos líneas que coincidan
con la cadena o palabra dadas. fgrep es más rápido que la búsqueda grep, pero menos
flexible: sólo puede encontrar texto, no expresiones regulares.
fgrep "p" text1

--------------------- sed
permite, borrar líneas, registros o sustituir cadenas de caracteres dentro de las
líneas.

$> sed -e "s/smtp/correo/g" /etc/services


Reemplaza la palabra smtp por correo (solo en la salida estándar)

$> sed -e "s/telnet/conexion remota/g" \


-e "s;smtp;correo;g" /etc/services
Reemplaza la palabra telnet y smpt por correxion remota y correo

$> sed -i "s;smtp;correo;g" /etc/services NO EJECUTAR


Reemplaza la palabra smtp por correo (modifica el archivo)

103.8
[Link]

El Editor VIM
-------------
ESC : ingresa al modo comando
i : entra en modo insercion desde la misma linea
o : entra en modo insercion desde la sgte linea
1G : va a la primera linea
23G : va a la linea 23
:45 : va a la linea 45
G : va a la ultima linea
/palabra : busca una cadena
n : sigue buscando
dd : corta o borra una linea
d8d : corta o borra 8 lineas
yy : copia una linea
y7y : copia 7 lineas
p : pega el contenido del portapapel
5p : pega 5 veces el contenido del portapapel
u : deshace la ultima accion
ctrl+R : rehace la ultima accion
x : borra una letra
:w : graba el archivo actual
:wq : graba y sale
:w! : graba de forma forzada
:wq! : graba y sale forzadamente
:q! : sale forzadamente
:1,$s/busqueda/reemplaza/g :busca una cadena y la reemplaza
:! comando : ejecuta un comando en bash y vuelve a VIM
:e archivo : abre un nueva archivo en el sgte buffer
:b1 : va el primer buffer abierto
:b2 : va al segundo buffer, para cambiar de buffer hay que
grabar el buffer actual
:set number : muestra los numeros de linea
:set nonumber : quita los numeros de linea
:set paste : habilita el pegado sin auto identificacion
:set ts=3 : establece a 3 los espacios de los tabs
Insertar : entra en modo de reemplazo
:saveas archivo : guarda como nombre archivo
:shitf+a : entra en modo insercion al final dpel
D : elimina texto desde el cursosr actual hasta el final
de la linea
dG : elimina todo hasta la ultima linea
:wq! ++utf8 : guarda el fichero en modo UTFP (por defecto)
:nohl : cancela los resultados de busqueda

Instalar VIM
-------------

$> su -
$> yum -y install vim-enhanced

Crear archivo saludo y ejecutar ejercicios de comandos vim


---------------------------------------------------------
$> vim saludo
i
hola mundo
ESC
yy
20p
G
o
windows es lo maximo
ESC
/hola
n
n
:set number
G
yy
30p
:1,$s/windows/linux/g
dd
45G
d2d
dG
u
ctrl+R
:! date
:w
:e otrosaludo
:b1
1G
yG
:b2
p
:wq!

104
[Link]

104.1

1.- Crear 1 particiones extendida de 2GB

fdisk /dev/sdb
imprimo la tabla de particiones
p

Crear una nueva partición


n --> crea una nueva particion
(consulta si se quiere crear una
particion primaria o extendida)

e --> aqui sale el número de particion que quiero crear


1
Primer cilindro: Enter
last cilindro: +1G
p --> lista mi tabla de particiones

w --> graba las modificaciones

2.- Crear 1 particiones logica de 2GB

fdisk /dev/sda

imprimo la tabla de particiones


p

Crear una nueva partición


n --> crea una nueva particion
(consulta si se quiere crear una
particion primaria o extendida)

l --> aqui sale el número de particion que quiero crear


1
Primer cilindro: Enter
last cilindro: +1G
p --> lista mi tabla de particiones

w --> graba las modificaciones

Si se equivocó en la particion entonces:

d --> borra
n --> nuevamente crea particion
p --> lista las particiones

Formatear partición en ext4


$> mkfs.ext4 /dev/sdb1

Formatear como disco swap una partición


$> mkswap /dev/sda5

Ahora crear directorios para montar las particiones


$> mkdir /data1
$> mkdir /data2
Montar las particiones
$> mount -t ext4 /dev/sdb1 /data1
$> mount /dev/sdb2 /data2 (si no se le pone -t autodetecta el tipo)

Desmontar el /data2
$> umount /data2
ó
$> umount /dev/sdb2

104.2
[Link]

----------- df
muestra información sobre sistemas de archivos montados

df -T (muestra cada tipo de sistema de archivo)


df -h ( Añade una letra indicativa de tamaño, como M para megabytes)

----------- du
proporciona información acerca de sistemas de archivos completos.
cuánto espacio usa su directorio principal o conocer el tamaño necesario para la
partición

du -hc *
du -shc /usr/*

----------- fsck
Utilidad para detectar, verificar y corregir los errores del sistema de archivos

-C Muestra el progreso en tiempo real de un modo visual.


-A Chequea todos los dispositivos definidos en el fichero /etc/fstab.
-M No chequea sistemas montados.
-t Especifica el tipo o tipos de sistema de ficheros a chequear. Si lo acompañamos
de la opción -A, solo chequearemos los sistemas que coincidan con “fstype” (una
lista separada por comas).

Opciones:
-a repara de manera automática, no pide confirmación.
-n reporta los problemas sin repararlos.
-c busca bloques dañados y los agrega a la lista de bloques dañados.
-f forzar la revisión.
-v (verbose) genera más información.
-r modo interactivo. Espera nuestra respuesta.
-y si a todo.

fsck -c /dev/sda2 comprobar bloques dañados.


fsck -C -R -af /dev/sda2 forzamos la comprobación y si hay algún error lo
arreglamos automáticamente
fsck -CTV -nf /dev/sda2 chequeo y si detecta algún error informará de ello pero no
reparará nada
------------------- e2fsck
Permite escanear el sistema de archivos de particiones ext2/ext3 verificando que no
existan errores. Es muy importante aplicar e2fsck sólo a particiones que no estén
montadas.

e2fsck -pc /dev/sda1 comprueba el sistema de ficheros /dev/sda1 revisando los


sectores defectuosos (-c esta opción use la herramienta badblocks, en caso de usar
dos veces esta opción el escaneo de sectores dañados se hará usando un test no
destructivo de lectura/escritura.) permitiendo que la lista de sectores dañados
pueda actualizarse y se repararán automáticamente todos los problemas que sea
seguro arreglar (-p).

e2fsck -E fragcheck /dev/sda3 se imprimirá en pantalla un reporte de aquellos


archivos que presenten bloques discontinuos en el sistema de archivos /dev/sda3

-------------------- mke2fs
El comando mke2fs es usado para crear el sistema de archivos de Linux ext2 en un
dispositivo tal como una partición de disco duro o (en este caso) un disquete.
mke2fs esencialmente formatea el dispositivo y crea un dispositivo vacío compatible
con Linux que puede luego ser usado para almacenar archivos y datos. Inserte su
disquete en la unidad y ejecute el comando siguiente en el intérprete de comandos:

/sbin/mke2fs /dev/fd0

---------------------- debugfs
recuperar archivos borrados, es necesario desmontar la particion o montarla desde
un livecd

debugfs /dev/sda2

------------------ dumpe2fs
Mediante el comando dumpe2fs podemos ver el número de bloques que estan reservados:

dumpe2fs /dev/sda1

------------------ tune2fs
Ajusta los parámetros de los sistemas de archivos ext2 y ext3. Use esta herramienta
para agregar una bitácora a un sistema ext2 y convertirlo en un sistema ext3, así
como también para visualizar o establecer la cantidad máxima de montajes previos a
una verificación forzosa. También es posible asignar rótulos y activar o desactivar
diversas características opcionales.

Convertir de ext3 a ext4


Para convertir una partición ext3, digamos /dev/sda5, a ext4 escribe lo siguiente:
tune2fs -O extents,uninit_bg,dir_index /dev/sda5

Después de hacer lo anterior, ejecuta e2fsck en el nuevo sistema de archivos ext4


para arreglar cualquier inconsistencia:
e2fsck -fD /dev/sda5

------------------ xfs tools


defragmentar una partición XFS
104.3
mount ya se vio

104.4

Quotas de Disco
------------------------------------------------------------------------------
Nos conectamos al servidor virtual como root

Instalamos el paqute quota

$> yum -y install quota

Para habilitar la opcion de quotas en las particiones


donde se a definir las quotas de usuarios
Agregar en las opciones de montaje usrquota y grpquota

El UUID de la partición que queremos definir quotas se calcula con


$> blkid /dev/sda1

$> vim /etc/fstab


UUID=1fd85cc3-0925-4d62-b8b0-00a5c4a1b812 / ext4
defaults,usrquota,grpquota 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sda2 swap swap defaults 0 0

Montar nuevamente la partición para que se habiliten las opciones de quota


$> mount -o remount /

Verificar que la particion tenga habilitada la opcion de quota


$> mount | grep quota

Generar el chequeo preliminar de quotas


$> quotacheck -auvgm

Habilitar el uso de quotas en todas las particiones con opciones de quotas


$> quotaon -a

Ver el reporte de uso de quotas de todos los usuarios


$> repquota -a

Ver las quotas definidas de un usuario


$> quota -u root

Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que está utilizando


el usuario.

Inodes: Inodos. Corresponde al número de ficheros que está utilizando el usuario.


Un inodo (también conocido como Index Node) es un apuntador hacia sectores
específicos de disco duro en los cuales se encuentra la información de un fichero.
Contiene además la información acerca de permisos de acceso así como los usuarios y
grupos a los cuales pertenece el fichero.
Soft: Limite de gracia. Limite de bloques de 1 KB que el usuario puede utilizar y
que puede rebasar hasta que sea excedido el periodo de gracia (de modo
predeterminado son 7 días).

Hard: Limite absoluto. Limite que no puede ser rebasado por el usuario bajo
circunstancia alguna.

- Si se establece solo el hard, no habrá advertencias previas y el usuario ya no


podrá guardar archivos cuando se llegue al valor
- Si se establece soft y hard, avisará cuando se rebase el límite soft y entrará en
luego el periodo de gracia

Crear una definición de quotas para un usuario


Suponiendo que se quiere asignar una cuota de disco de 20 MB para el usuario
«alumno»

$> edquota -u alumno

Antes
-----------------------------------------------------------------------------------
--------
Disk quotas for
user alumno (uid 500):
Filesystem blocks soft hard inodes soft
hard
/dev/sda1 0 0 0 0 0
0

Despues
-----------------------------------------------------------------------------------
--------
Disk quotas for user alumno (uid 500):
Filesystem blocks soft hard inodes soft
hard
/dev/sda1 0 20480 20480 0 0
0

Loguearse como alumno


y crear un archivo que vaya creciendo hasta llegar al limite de quota
$> su - alumno
$> yes > crece

En otra consola ver los reportes de quota


$> su -
$> repquota -a

$> rm -f /home/alumno/crece

Ver la quota de un grupo (ej: grupo alumno)


$> quota -g alumno

Editar la quota de un grupo determinado (La quota de un grupo son la suma de


espacios de
disco ocupados por todos los usuarios del grupo)
$> edquota -g alumno
Aplicar quotas por Plantilla (asignar al usuario tuxito y linuxero la misma quota
definida
en el usuario alumno)
$> edquota -p alumno tuxito linuxero

Aplicar la quota a todos los usuarios con uid mayor a 501


$> edquota -p alumno `awk -F: '$3 > 499 {print $1}' /etc/passwd`

Remover quota de grupo a /home


quotaoff -gv /home

Agregar quota de grupo a /home


quotaon -gv /home

104.5

Permisos de archivos y directorios


-------------------------------------
$> ls -l /etc/hosts

inodo tamaño en bytes fecha y hora de modificacion


| | |
| | |
-rw-r--r--. 2 root root 240 2009-05-04 08:15 /etc/hosts
|______ | | | |
| | | | | |
| | | dueño grupo ruta del archivo
| | ---> permiso especial
| |---> triada de permisos para el archivo del dueño, grupo
| y el resto del mundo
| --> r=read 4
| --> w=write 2
| --> x=exec 1
|
|--->dice si es archivo(-),directorio(d) o enlace(l)

$> su -

$> cd
$> ls -l saludo

$> chmod 664 saludo


(6=permiso dueño,6=permiso grupo,4=permiso de otros)

$> ls -l saludo

$> chmod 777 saludo (permisos totales para todos)

$> ls -l saludo

Se pueden usar letras para cambiar los permisos con chmod


u=user, g=group, o=others, a=all
r=read, w=write, x=execution
-=quita permisos , +=añade permisos

$> chmod o-rwx saludo


quita al resto del mundo todos los permisos al archivo saludo
$> ls -l saludo

$> chmod ug+rwx saludo


Agrega permisos de lectura escritura y ejecucion al dueño y grupo del archivo

$> chown alumno saludo (cambia de dueño al archivo)

$> ls -l saludo

$> chgrp alumno saludo (cambia de grupo al archivo)

$> ls -l alumno

$> chown -R [Link] /home/alumno


----- ------
dueño grupo
cambia de dueño y grupo al directorio /home/alumno incluyendo sus subdirectorios

Máscara de Permisos por Defecto


------------------------------------

$> umask
muestra la mascara de permisos con que se crean archivos o directorios

$> umask -S
muestra los permisos con que se crea los directorios
u=rwx, g=rx, o=rx

$> umask 0077


el umask con 0077 establece una nueva mascara

Cambio de mascara de permisos de usuarios de forma permanente


-------------------------------------------------------------
$> vim ~/.bashrc
umask 0077 ---> poner en la ultima linea

$> su - alumno
$> umask

umask -pS
-S para devolver los permisos de forma simbólica.
-p con fines de utilizarlos como entrada estandar.

umask recibe el modo de dos formas:


1. Octal (por defecto). Si un número es especificado inicialmente.
2. Simbólica. Si una letra es especifica inicialmente.

Cuando ejecutamos umask aparece

0002
^^^^
||||
|||+- los otros (others)
||+-- el grupo (group)
|+--- el propietario (owner)
+---- el que nos dice que lo que sigue será interpretado de forma octal.
Podemos usar la opción -S para tener una mejor referencia de como
funciona en sistema octal.

u=rwx,g=rwx,o=rx
0 0 0 2

Fijemosnos en los caracteres con que empieza ambas líneas, de forma


simbólica siempre iniciara con una letra, de forma octal siempre con
un número. De ahí la existencia del primer 0.

El primer 0 no tiene que ver con los permisos sino con la forma en que
estos serán dados (en octal).

Para saber que permisos serán dados debemos restar el valor dado a la máscara 777.
Quedaría de la siguiente forma:
777 - 002 = 775 = u=rwx,rwx,o=rx

Recordar que el primer 0 que aparece cuando ejecutas umask tiene como
objetivo especificar que lo que sigue es un número octal, y que debe
ser tratado como tal.

Calculo de umask (valor de los permisos que deseamos asignar - 777)

rwx rwx rwx = Permisos del archivo o fichero.


111 011 000 = Permisos que vamos a dar (1 da permiso y 0 deniegan).
421 421 421 = 730

Restamos el resultado a 777:


777- 730 = 047

Aplicar umask

umask 047
umask -pS
umask -S u=rwx,g=wx,o=

mkdir pruebas
touch [Link]

ls -l

104.6

----------------------------------------------
Existen dos tipos de enlaces: blandos y duros

Crear un enlace blando (similar al acceso directo, si se borra el


archivo original el enlace se queda roto)
$> ln -s /usr/bin /programas
$> ls -l /

El acceso directo se comporta como el directo original


$> ls -l /programas/

Crear un enlace duro al archivo, si se borra el archivo este no


desaparecera hasta que se borren todos los enlaces duros
apuntando a el
$> ln /bin/touch /bin/tocar
$> cd /bin
$> cp -p touch [Link]
$> rm -f /bin/touch
$> ls -li /bin/tocar

$> /bin/tocar archivo


$> mv /bin/[Link] /bin/touch

104.7

Búsqueda de Archivos
---------------------
find,locate,whereis
---------------------

$> find ./ -name a\*


Busca archivos y directorios que comiencen con a, tomando como base el
directorio actual

$> find /etc -name hosts


Busca desde el /etc el archivo o directorio hosts

$> find /usr -name "*" -size +300k


Busca todos los archivos en el /usr que pesen mas de 300K

$> find /etc -name passwd -exec cat {} \;


Busca todo los archivos llamados passwd dentro de /etc y luego visualiza
el contenido de cada uno de ellos con el comando cat

$> find / -user alumno -size 3M


Busca archivos del usuario alumno que sean mayores a 3 Megas en todo el sistema

$> updatedb
Actualiza la base de datos de la lista de archivos y directorios
existentes en el sistema

$> locate interfaces


Busca en la base de datos el archivo interfaces

$> whereis vi
Muestra la ruta de binarios, librerias y documentacion del comando vi

$> which vi
Muestra la ruta del binario del comando vi

También podría gustarte