Está en la página 1de 70

Exite un inodo para cada archivo en el disco.

Los inodos se encuentran:


En disco en la lista de inodos.
En memoria, en la tabla de inodos.

Un inodo, nodo-i o nodo índice es una estructura de datos


propia de los sistemas de archivos tradicionalmente
empleados en los sistemas operativos tipo UNIX como es el
caso de Linux.

Un inodo contiene las características (permisos, fechas,


ubicación, No el nombre) de un archivo regular, directorio, o
cualquier otro objeto que pueda contener el sistema de
archivos.
El término "inodo" refiere generalmente a inodos en
discos (dispositivos en modo bloque) que almacenan
archivos regulares, directorios, y enlaces simbólicos.

Cada inodo queda identificado por un número entero,


único dentro del sistema de archivos, y los directorios
recogen una lista de parejas formadas por un número
de inodo y nombre identificativo que permite acceder
al archivo en cuestión: cada archivo tiene un único
inodo, pero puede tener más de un nombre en
distintos o incluso en el mismo directorio para
facilitar su localización.
ls
Def: El comando ls lista los archivos y directorios en el
directorio de trabajo actual.

Sintaxis: ls [OPCIONES] [ARCHIVO]

Opciones:
-l: Lista todos los archivos, directorios y su modo,
número de enlaces, propietario del archivo, tamaño
del archivo, fecha y hora de modificación y nombre de
archivo.
-t: Ordena por fecha de última modificación.
-a: Lista todas las entradas incluyendo archivos
ocultos.
-u: Ordena por fecha de último acceso.
-ltr: Ordena archivos por fecha.
-lSr: Ordena archivos por tamaño.
ls
Ejemplos:
Muestra los contenidos del directorio root:
ls / , lista los contenidos del directorio root.

Muestra archivos y directorios ocultos:


ls -a , Lista todas las entradas incluyendo archivos
ocultos.

Muestra información de inodo:


ls -i ,
7373073 book.gif
7373074 clock.gif
7373082 globe.gif
7373081 email.gif
7373076 indigo.gif
cd
Def: El comando cd se usa para cambiar de directorio.

Sintaxis: cd [directorio | ~ | ./ | ../ | - ]

Ejemplos:
cd newdir , Este comando te llevará al subdirectorio
(newdir) desde el directorio raíz.

cd .. , Éste cambiará al directorio raíz desde el


directorio actual.

cd ~ o cd , Éste comando irá al directorio de inicio del


usuario que puede ser "/home/username".
pwd
Def: Print Working Directory. El comando pwd muestra el
nombre de archivo completo del directorio de trabajo
actual.
Sintaxis: pwd [opciones]
Opciones:
-P: El nombre de ruta mostrado no contendrá enlaces
simbólicos.
-L: El nombre de ruta mostrado puede contener
enlaces simbólicos.

Ejemplo:
Muestra el directorio de trabajo actual.
pwd ,
Si estás trabajando en el directorio de inicio, el comando
pwd muestra el directorio de trabajo actual como /home.
rm
Def: El comando de linux rm se usa para eliminar
archivos de un directorio.
Sintaxis: rm [opciones..] [archivo | directorio]
Opciones:
-f: Elimina todos los archivos en un directorio sin
preguntar al usuario.
-i: Interactivo. Con esta opción, rm pide confirmación
antes de eliminar cualquier archivo.
-r (ó) -R: Elimina directorios y subdirectorios
reiterativamente en la lista de argumentos. El
directorio será vaciado de archivos y eliminado.
Normalmente se pregunta al usuario antes de
eliminar cualquier archivo protegido contra escritura
que contenga el directorio.
rm
Ejemplos:
Para borrar un archivo:
rm file1.txt , Aquí el comando rm eliminará el archivo
file1.txt.

Para eliminar un árbol de directorios:


rm -ir temp , Este comando rm eliminará
reiterativamente los contenidos de todos los
subdirectorios en el directorio temp, pidiendo
confirmación para la eliminación de cada archivo, y
después elimina el propio directorio temp.

Para eliminar más archivos a la vez


rm file1.txt file2.txt , El comando rm elimina file1.txt
y file2.txt a la vez.
cp
Def: El comando cp copia archivos de un lugar a otro. Si
el destino es un archivo existente, el archivo se
sobreescribe; si el destino es un directorio existente, el
archivo se copia al directorio (el directorio no se
sobreescribe).
Sintaxis: cp [OPCIONES]... <Fuente> <Destino>
Ejemplo:
Copia dos archivos:
cp file1 file2 , El comando cp anterior copia el
contenido de file1.php a file2.php.
Para hacer una copia de seguridad del archivo
copiado:
cp -b file1.php file2.php , Una copia de seguridad de
file1.php se creará con el símbolo "~" como file2.
php~.
Copia carpetas y subcarpetas:
mv

Def: El comando mv es la abreviatura de mover. Se usa


para mover/renombrar un archivo de un directorio a
otro. El comando mv es distinto del comando cp ya que
elimina completamente el archivo del origen y lo mueve
a la carpeta especificada, mientras que el comando cp
sólo copia el contenido de un archivo a otro.

Sintaxis: mv [-f|-i]<nombre_antiguo><nuevo_nombre>

Opciones:
-f:Así no preguntará antes de sobreescribir.
-i:Pregunta antes de sobreescribir algún archivo.
mv
Ejemplos:
Para renombrar / mover un archivo:
mv file1.txt file2.txt , Este comando renombra file1.
txt a file2.txt
Para mover un directorio
mv hscripts tmp , el comando mv mueve todos los
archivos, directorios y subdirectorios desde hscripts a
tmp si el directorio tmp ya existe. Si no existe el
directorio tmp, renombra el directorio hscripts a tmp.
Para mover archivos múltiples / más archivos a otro
directorio
mv file1.txt tmp/file2.txt newdir , Este comando
mueve los archivos file1.txt desde el directorio actual
y file2.txt desde el directorio tmp a newdir.
ln
Def: El comando ln se usa para crear un enlace a
un archivo o directorio. Ayuda a proporcionar un
enlace suave a los archivos deseados. El inodo será
distinto para el origen y el destino.
Sinstaxis: ln [opciones]
<nombre_de_archivo_existente |
directorio><nuevo_nombre_de_archivo |
directorio>
Opciones:
-f: Enlaza archivos sin preguntar al usuario, incluso si
el modo de archivo prohibe la escritura. Esto es por
defecto si el input estándar no es un terminal.
-n No sobreescribe archivos existentes.
-s Se utiliza para crear enlaces suaves
ln
Ejemplo:
ln -s file1.txt file2.txt , Crea un enlace simbólico
a "file1.txt" con el nombre de "file2.txt". Aquí el
inodo para "file1.txt" y "file2.txt" será diferente.
ln -s nimi nimi1 , Crea un enlace simbólico a
"nimi" con el nombre de "nimi1".
touch <file> , crea o actualiza file

cat > <file> , redirecciona la entrada estándar a file

more <file> , muestra el contenido de file

head <file> , muestra las 10 primeras filas de file

tail <file> , muestra las 10 últimas filas de file

tail -f <file> , muestra las 10 últimas filas de file a


medida que va creciendo.
ps , muestra los procesos activos del usuario

top , muestra todos los procesos activos

kill pid , mata el proceso con id pid

killall proc , mata todos los procesos proc [**]

bg , lista los procesos parados o en segundo plano

fg , lleva proceso más reciente a primer plano

fg n , lleva proceso n a primer plano


Vistos en la clase anterior
chmod
chmod octal <file> – establece en file los
permisos especificados en octal (usuario, grupo y
otros)
4 – lectura (r)
2 – escritura (w)
1 – ejecución (x)

Ejemplos:
chmod 777 , lectura/escritura/ejecución para
todos.
chmod 755 , rwx para el propietario, rx para
sugrupo y otros
chown
ping

Def: Comando de administración del sistema. Confirma


que un host remoto está online y responde. El ping se
usa para verificar la conectividad entre dos hosts en
una red. Envía una paquetes de petición echo de ICMP a
una dirección IP remota y espera respuestas ICMP.
Sintaxis: ping [opciones] <host>
Opciones:
-c: cuenta, parar después de enviar "cuenta" de
paquetes ECHO_REQUEST. Con opción de tiempo
límite, el ping espera hasta "count" paquetes de
ECHO_REPLY, hasta que el tiempo expira.
-n: Mostrar las direcciones de red como números. El
ping normalmente muestra las direcciones como
hostnames.
ping

Ejemplo:

ping google.com -c 3 , Muestra ECHO_REQUEST 3


veces sólo porque establecemos la cuenta a tres.
ping -n google.com , Aquí las direcciones de red se
muestran como números, normalmente muestra
hostnames.
whois

Def: El comando whois lista la información sobre


el propietario del dominio especificado.

Sintaxis: whois [opcion] <consulta>

Opciones:

-h: El host que cuenta con la información de


identificación en la base de datos.
-p: Conecta al puerto especificado.
dig

Def: Dig es una herramienta (linea de comandos)


disponible en prácticamente cualquier distribución
linux (aunque también hay alguna versión para
windows) que te permite hacer consultas a un
servidor dns.

Dig precisa conocer la dirección IP de un servidor


DNS al que consultar por defecto, dirección IP que
toma del archivo resolv.conf, que en Windows
puedes encontrar en c:
\windows\system32\drivers\etc\resolv.conf, y en
sistemas GNU/Linux en /etc/resolv.conf.
dig

Ejemplos:
dig domain , configuración DNS de domain
dig -x host , DNS inverso de host
wget
Def: Wget es un programa para bajar ficheros
desde la línea de comandos y sirve tanto para
direcciones http, https como ftp.
Ejemplos:
wget <file> , descarga file.
wget -c <file> , continua una descarga parada.
date , Consulta la fecha y hora actual
cal , Muestra el calendario del mes actual
uptime , tiempo que lleva encendida la máquina
w , muestra usuarios conectados a la máquina
whoami , nombre de mi usuario
finger <user> , muestra información sobre user
uname -a , información sobre el núcleo
cat /proc/cpuinfo , información sobre la cpu
cat /proc/meminfo , información sobre la memoria
man command , páginas de manual sobre command
df , espacio libre en los discos
du , espacio usado por los directorios
free , uso de memorio y swap
whereis app , localiza el binario, fuente y página de manual
de app
which app , localiza el comando app
history

Def: Muestra una lista de todos los comandos que


hemos ejecutado recientemente, siendo los que tienen
los números más pequeños los más antiguos.

Obteniendo como resultado los últimos 1000 comandos


que hemos introducido en la consola, la cantidad de
estos es configurable.

Podemos ejecutar: history 20, de esta manera, sólo los


20 últimos comandos introducidos serán visualizados
(puede usar cualquier cantidad como argumento del
comando history).
history, ejemplo:
tar cf <file.tar> <files> , empaqueta files en un fichero files.
tar

tar xf <file.tar> , extrae el contenido de file.tar

tar czf <file.tar.gz> <files> , empaqueta y comprime (gzip)


files en files.tar.gz

tar xzf <file.tar.gz> , extrae y descomprime usando Gzip

tar cjf <file.tar.bz2> , empaqueta y comprime (bzip2) files


en files.tar.bz2

tar xjf <file.tar.bz2> , extract y descomprime usando Bzip2

gzip <file> , comprime file y lo renombra como file.gz


Archivos con la extensión .rpm
Se trata de paquetes exclusivos de Red Hat, pero pueden
ser utilizados en las distribuciones basada en Red Hat y en
SuSe, Mandrake y Caldera.

Estos paquetes son aplicaciones y están formados por:

Aplicación(binarios).
Documentación sobre la aplicación
Fuentes (programa fuente).

Para acceder a los paquetes hay dos posibilidades:

Vía comandos, ejecutando el comando rpm.


Ejecutando el asistente para paquetes introduciendo la
siguiente línea: redhat_config_packges
Archivos con la extensión .rpm
El comando rpm tiene varias opciones:

rpm -q <nombre_paquete> Me dice si este paquete ya


esta instalado o no.

rpm -qa Me dice todos los paquetes que están instalados.

rpm -i <nombre_paquete> Instala el paquete.

rpm -e <nombre_paquete> Desinstala un paquete

Tiene alguna opción más, si deseas saber mas acerca de los


paquetes consulta la ayuda de linux: man rpm
grep pattern <files> , buscar patrón pattern en files

grep -r pattern <dir> , buscar recursivamente


patrón pattern en dir

command | grep pattern , buscar patrón pattern en


la salida de command

locate file , Busca instancias de file, recordar


ejecutar updatedb
ssh user@host , conectar a host como user

ssh -p port user@host , conectar a host por el


puerto port como user
Ctrl+C , Interrumpe el comando activo

Ctrl+Z , Suspende el comando activo, con fg se


reanuda y con bg se lleva a segundo plano

Ctrl+D , abandona sesión actual, similar a exit

Ctrl+W , borra una palabra en la línea actual

Ctrl+U , borra toda la línea

!! , repite el último comando

exit , abandona la sesión actual


Vim (del inglés Vi IMproved) es una versión
mejorada del editor de texto vi, presente en todos
los sistemas UNIX.

La principal característica tanto de Vim como de Vi


consiste en que disponen de diferentes modos entre
los que se alterna para realizar ciertas operaciones,
lo que los diferencia de la mayoría de editores
comunes, que tienen un sólo modo en el que se
introducen los órdenes mediante combinaciones de
teclas o interfaces gráficas.

Si lo queremos instalar:
yum install vim-enhanced
Vim, como su antecesor vi, se utiliza desde un
terminal en modo texto.

Se controla por completo mediante el teclado.

Esto es en parte a causa de que Vi fue desarrollado


a mediados de la década de 1970

Las limitaciones de los terminales de la época


dieron lugar al concepto de diferentes modos, idea
que ha resultado muy provechosa desde entonces.

Cuando se inicia vim, lo hace en modo comando, y


muestra la versión por pantalla.
Crear un nuevo archivo.

Lo que vamos hacer a continuación es crear un


nuevo archivo llamado "prueba".

Para ello tipeamos en un terminal: vim prueba

Modos.

En vim podemos destacar 2 estados:


Modo comando, que nos permite abrir archivos,
guardar, cortar lineas, etc.
Modo de edición, en el cual podemos modificar el
archivo de texto a gusto.
Modo Comando:

Nada más entrar en vim a editar un fichero,


estamos en el modo comando, en el que podremos
introducir atajos para realizar operaciones (borrar
linea, deshacer, etc...).

IMPORTANTE: En este modo no podemos escribir en


el fichero.

Las teclas que pulsemos probablemente estarán


asociadas a una operación determinada. Muchos de
estos comandos (no todos) comenzarán por :.
Modo edición:

Para escribir texto en el fichero tendremos que entrar


en el modo edición.

Es tan fácil como pulsar la tecla insert (o i).

Sabrás que has entrado en este modo porque abajo


aparecerá el texto -- INSERTAR --.

Ahora todo lo que tecleemos se estará escribiendo en


el fichero de texto.

Para volver al modo normal sólo hay que pulsar la


tecla ESC (Escape).
Operaciones básicas del editor
Como hemos dicho antes, para realizar operaciones que no
son de escribir en el fichero, necesitamos entrar en el modo
comando (pulsando ESC si estamos en el modo edición) y a
continuación los atajos que queramos:
Netfilter es un framework disponible en el núcleo Linux
que permite interceptar y manipular paquetes de red.

Dicho framework permite realizar el manejo de paquetes


en diferentes estados del procesamiento.

Netfilter es también el nombre que recibe el proyecto que


se encarga de ofrecer herramientas libres para firewall
basados en Linux.

El componente más popular construido sobre Netfilter es


iptables, una herramientas de firewall que permite no
solamente filtrar paquetes, sino también realizar
traducción de direcciones de red (NAT) o mantener
registros de log.
El proyecto Netfilter no sólo ofrece componentes
disponibles como módulos del núcleo sino que
también ofrece herramientas de espacio de usuario y
librerías.

iptables es el nombre de la herramienta de espacio


de usuario mediante la cual el administrador puede
definir políticas de filtrado del tráfico que circula por
la red.

El nombre iptables se utiliza frecuentemente de


forma errónea para referirse a toda la infraestructura
ofrecida por el proyecto Netfilter.
Sin embargo, el proyecto ofrece otros subsistemas
independientes de iptables tales como el connection
tracking system o sistema de seguimiento de
conexiones, o que, que permite encolar paquetes
para que sean tratados desde espacio de usuario.

iptables es un software disponible en prácticamente


todas las distribuciones de Linux actuales.
Resumen de operación

iptables permite al administrador del sistema definir


reglas acerca de qué hacer con los paquetes de red.

Las reglas se agrupan en cadenas: cada cadena es


una lista ordenada de reglas.

Las cadenas se agrupan en tablas: cada tabla está


asociada con un tipo diferente de procesamiento de
paquetes.
Resumen de operación

Cada regla especifica qué paquetes la cumplen (match) y


un destino que indica qué hacer con el paquete si éste
cumple la regla.

Cada paquete de red que llega a una computadora o que se


envía desde una computadora recorre por lo menos una
cadena y cada regla de esa cadena se comprueba con el
paquete.

Si la regla cumple con el datagrama, el recorrido se detiene


y el destino de la regla dicta lo que se debe hacer con el
paquete.
Resumen de operación
Si el paquete alcanza el fin de una cadena predefinida sin
haberse correspondido con ninguna regla de la cadena, la
política de destino de la cadena dicta qué hacer con el
paquete.

Si el paquete alcanza el fin de una cadena definida por el


usuario sin haber cumplido ninguna regla de la cadena o si
la cadena definida por el usuario está vacía, el recorrido
continúa en la cadena que hizo la llamada (lo que se
denomina implicit target RETURN o RETORNO de destino
implícito). Solo las cadenas predefinidas tienen políticas.
Resumen de operación
En iptables, las reglas se agrupan en cadenas.

Una cadena es un conjunto de reglas para paquetes IP, que


determinan lo que se debe hacer con ellos.

Cada regla puede desechar el paquete de la cadena


(cortocircuito), con lo cual otras cadenas no serán
consideradas.

Una cadena puede contener un enlace a otra cadena: si el


paquete pasa a través de esa cadena entera o si cumple
una regla de destino de retorno, va a continuar en la
primera cadena. No hay un límite respecto de cuán
anidadas pueden estar las cadenas.
Resumen de operación
Hay tres cadenas básicas (INPUT, OUTPUT y FORWARD:
ENTRADA, SALIDA y REENVÍO) y el usuario puede crear
tantas como desee. Una regla puede ser simplemente un
puntero a una cadena.

Tablas
Hay tres tablas ya incorporadas (filter, mangle y nat), cada
una de las cuales contiene ciertas cadenas predefinidas.

Es posible crear nuevas tablas mediante módulos de


extensión.

Inicialmente, todas las cadenas están vacías y tienen una


política de destino que permite que todos los paquetes
pasen sin ser bloqueados o alterados.
filter table (Tabla de filtros): Esta tabla es la responsable
del filtrado (bloquear o permitir que un paquete continúe
su camino). Todos los paquetes pasan a través de la tabla
de filtros. Contiene las siguientes cadenas predefinidas y
cualquier paquete pasará por una de ellas:

INPUT chain: Todos los paquetes destinados a este


sistema atraviesan esta cadena (y por esto se la llama
algunas veces LOCAL_INPUT)
OUTPUT chain: Todos los paquetes creados por este
sistema atraviesan esta cadena (a la que también se la
conoce como LOCAL_OUTPUT)
FORWARD chain: Todos los paquetes que meramente
pasan por este sistema para ser encaminados a su
destino recorren esta cadena
nat table (Tabla de traducción de direcciones de red): Esta
tabla es la responsable de configurar las reglas de
reescritura de direcciones o de puertos de los paquetes. El
primer paquete en cualquier conexión pasa a través de esta
tabla; los veredictos determinan como van a reescribirse
todos los paquetes de esa conexión. Contiene las siguientes
cadenas predefinidas:

PREROUTING chain: Los paquetes entrantes pasan a través de


esta cadena antes de que se consulte la tabla de ruteo local,
principalmente para DNAT (destination-NAT o traducción de
direcciones de red de destino)
POSTROUTING chain: Los paquetes salientes pasan por esta
cadena después de haberse tomado la decisión del ruteo,
principalmente para SNAT (source-NAT o traducción de
direcciones de red de origen)
OUTPUT chain: Permite hacer un DNAT limitado en paquetes
generados localmente
mangle table (Tabla de destrozo): Esta tabla es la
responsable de ajustar las opciones de los paquetes, como
por ejemplo la calidad de servicio. Todos los paquetes pasan
por esta tabla. Debido a que está diseñada para efectos
avanzados, contiene todas las cadenas predefinidas
posibles:
PREROUTING chain: Todos los paquetes que logran entrar a
este sistema, antes de que el ruteo decida si el paquete debe
ser reenviado (cadena de REENVÍO) o si tiene destino local
(cadena de ENTRADA)
INPUT chain: Todos los paquetes destinados para este sistema
pasan a través de esta cadena
FORWARD chain: Todos los paquetes que exactamente pasan
por este sistema pasan a través de esta cadena
OUTPUT chain: Todos los paquetes creados en este sistema
pasan a través de esta cadena
POSTROUTING chain: Todos los paquetes que abandonan este
sistema pasan a través de esta cadena
Cada cadena contiene una lista de reglas.

Cuando un paquete se envía a una cadena, se lo compara,


en orden, contra cada regla en la cadena.

La regla especifica qué propiedades debe tener el paquete


para que la regla coincida, como número de puerto o
dirección IP.

Si la regla no coincide, el procesamiento continúa con la


regla siguiente.

Si la regla, por el contrario, coincide con el paquete, las


instrucciones de destino de las reglas se siguen (y
cualquier otro procesamiento de la cadena normalmente se
aborta).
Algunas propiedades de los paquetes solo pueden
examinarse en ciertas cadenas (por ejemplo, la interfaz de
red de salida no es válida en la cadena de ENTRADA).

Algunos destinos solo pueden usarse en ciertas cadenas y/o


en ciertas tablas (por ejemplo, el destino SNAT solo puede
usarse en la cadena de POSRUTEO de la tabla de traducción
de direcciones de red).

El destino de una regla puede ser el nombre de una cadena


definida por el usuario o uno de los destinos ya
incorporados ACCEPT, DROP, QUEUE, o RETURN (aceptar,
descartar, encolar o retornar, respectivamente).
Cuando un destino es el nombre de una cadena definida por
el usuario, al paquete se lo dirige a esa cadena para que sea
procesado (tal como ocurre con una llamada a una
subrutina en un lenguaje de programación).

Si el paquete consigue atravesar la cadena definida por el


usuario sin que ninguna de las reglas de esa cadena actúe
sobre él, el procesamiento del paquete continúa donde
había quedado en la cadena actual.

Estas llamadas entre cadenas se pueden anidar hasta


cualquier nivel deseado.
http://es.hscripts.com/tutoriales/linux-commands/

http://es.onsoftware.com/p/aprendiendo-a-usar-
comandos-en-linux

http://www.esdebian.org/wiki/lista-comandos-gnulinux-
i#seccion22

http://www.emezeta.com/articulos/manual-para-
aprender-a-utilizar-vim

http://www.linuxcentro.net/linux/staticpages/index.php?
page=SistemaArchivosLinux

También podría gustarte