lunes, 28 de diciembre de 2015

ADMINISTRACION DE FICHEROS

1. Contenido

  • Comandos para el Manejo de Ficheros
ls → (list: listar)
Nos muestra el contenido de la carpeta que le indiquemos después.

La sinapsis del comando sería:

 ls [opciones] [ruta]

Opciones:
-a → Muestra todos los ficheros incluyendo algunos que ordinariamente están ocultos para el usuario (aquellos que comienzan por un punto). Recordemos que el fichero punto . indica el directorio actual y el doble punto .. el directorio padre, que contiene, al actual.
-l → Esta es la opción de lista larga: muestra toda la información de cada fichero incluyendo: protecciones, tamaño y fecha de creación o del último ambio introducido,...
-c → Muestra ordenando por día y hora de creación.
-t → Muestra ordenando por día y hora de modificación.
-r → Muestra el directorio y lo ordena en orden inverso.
-R → Lista también subdirectorios.
ls subdir → Muestra el contenido del subdirectorio subdir.
-l filename → Muestra toda la información sobre el fichero filename.
--color → Muestra el contenido del directorio coloreado.



file
Este comando realiza una serie de comprobaciones en un fichero para tratar de clasificarlo, mostrando sus características.

La sinapsis del comando sería:
file [OPCIÓN...] [ARCHIVO...]
Tras su ejecución este comando muestra el tipo del fichero e información al respecto del mismo. Este comando se puede aplicar también a directorios.


cd → (change directory: cambiar directorio)


Lo utilizamos para cambiar de directorio o carpeta en la terminal.

Podemos usarlo con rutas absolutas o relativas. 

En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en consola …



cd /etc/apt
… nos llevará a esa carpeta directamente. Del mismo modo si escribimos …
cd /
… nos mandará a la raíz del sistema de ficheros.

Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imaginad que estamos en /home y queremos ir a la carpeta "Imágenes" dentro de vuestra carpeta personal. Con escribir …

cd Imágenes
… nos situará allí. Como véis hemos obviado el "/home/carpeta_personal" inicial ya que si no lo introducimos toma como referencia el directorio donde estamos, que es ese.


¿Y qué sucede si escribimos tan sólo …
cd
Sí, sólo “cd”. Esto lo que hace es que te lleva a tu carpeta personal directamente, estemos donde estemos. Es algo realmente muy práctico, muy simple y que no todos conocen.


mkdir
→ (make directory: hacer directorio)


Crea una carpeta o directorio con el nombre que le indiquemos.


Nuevamente podemos usar rutas absolutas y relativas. Podemos indicarle toda la ruta que le precede al directorio que queremos crear:
mkdir /home/carpeta_personal/nueva_carpeta


O si estamos ya en la carpeta que lo va a contener basta con poner tan sólo el nombre de la nueva carpeta. Por ej. si ya estamos en /home/carpeta_personal:
mkdir nueva_carpeta

cp → (copy: copiar)

Copia el archivo o directorio indicado donde le digamos.


Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. También podéis cambiar el nombre que le queréis poner a la copia. 

La sinapsis del comando sería:
cp [/ruta/de/original...] [/ruta/de/copia...]
Por ejemplo, en nuestra carpeta personal vamos a crear una copia de seguridad "sources.list.backup", de nuestros repositorios "/etc/apt/sources.list". Lo voy a explicar según donde estemos colocados en la terminal, para comprender lo primordial que es saber en todo momento el directorio donde estamos colocados en la terminal:

- Si estamos colocados en nuestra carpeta personal, debemos de poner la ruta absoluta del original y la ruta relativa de la copia:
cp /etc/apt/sources.list sources.list.backup

- Si nos colocamos en el directorio que contiene el archivo original (cd /etc/apt), debemos de poner la ruta relativa del original y la ruta absoluta de la copia:
cp sources.list /home/tu_usuario/sources.list.backup

Nota: no olvides cambiar "tu_usuario" por el nombre de tu usuario o en su defecto sustituye "/home/tu_usuario" por el símbolo "~" (pulsar la combinación de teclas Alt Gr+Ñ). Sería así:
cp sources.list ~/sources.list.backup

- Si estuviéramos en cualquier otro directorio o simplemente para no tener problemas, escribimos las dos rutas absolutas:

cp /etc/apt/sources.list /home/tu_usuario/sources.list.backup

mv → (move: mover)
Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le indiquemos, pudiendo ser otro distinto al original:


La sinapsis del comando sería idéntica a copiar:
mv [/ruta/de/original...] [/ruta/de/destino...]

Ejemplo para mover un "archivo.flv" del directorio "/tmp" (temporales) a nuestra carpeta personal y de paso cambiarle el nombre a "mi_archivo.flv". Lo pongo con las dos rutas absolutas para no repetir todo lo anterior.
mv /etc/archivo.flv /home/tu_carpeta/mi_archivo.flv
O en su defecto sustituye "/home/tu_usuario" por el símbolo "~" (Alt Gr+Ñ)

Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que lo contiene:
mv archivo.flv mi_archivo.flv

grep → (localizar)
El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en cuáles de ellos la ha encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo aquellas líneas que contienen el conjunto de caracteres buscado. Si el conjunto de caracteres a buscar está compuesto por dos o más palabras separadas por un espacio, se colocará el conjunto de caracteres entre apóstrofes ('). S

La sinapsis del comando sería:

grep [OPCIÓN] 'conjuntocaracteres' [ARCHIVOS...]

siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file3 los ficheros donde se debe buscar. Veamos Ejemplo para buscar TRIANGULARIZACION MATRIZ entre las líneas de los ficheros matrix.f y scaling.f.:
grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f
Las opciones principales del comando son:
-c → lo único que se hace es escribir el número de las líneas que satisfacen la condición.
-i → no se distinguen mayúsculas y minúsculas.
-l → se escriben los nombres de los ficheros que contienen líneas buscadas.
-n → cada línea es precedida por su número en el fichero.
-s → no se vuelcan los mensajes que indican que un fichero no se puede abrir.
-v → se muestran sólo las líneas que no satisfacen el criterio de selección.

A continuación se muestra una serie de ejemplos.
grep ‘ˆd’ text → líneas que comienzan por d.
grep ‘ˆ[ˆd]’ text → líneas que no comienzan por d.
grep -v ‘ˆC’ file1 > file2 → quita las líneas de file1 que comienzan por C y lo copia en file2.

cat → (Visualización sin formato de un fichero)
Este comando permite visualizar el contenido de uno o más ficheros de forma no formateada. También permite copiar uno o más ficheros
como apéndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes:

Sacar por pantalla el contenido del fichero filename:

cat filename

Sacar por pantalla, secuencialmente y según el orden especificado, el contenido de los ficheros indicados (file1 y file2):

cat file1 file2

Aceptar lo que se introduce por el teclado y lo almacena en file1 (se crea file1):
cat >file1

pwd → (print working directory)

Visualiza o imprime la ruta del directorio en el que nos encontramos en este momento. Este comando es uno de los pocos que no tiene

opciones y se utiliza escribiendo simplemente:
pwd

find → (find: encontrar)

Busca archivos o carpetas en la ruta que le indiques:


La sinapsis del comando sería:
find [/directorio/donde/buscar...] [-expresión] [búsqueda]


Donde "expresión" es el tipo de búsqueda y siempre se le antepone el signo "-"


La expresión "-name" sería para realizar una búsqueda por nombre. Por ejemplo, para buscar en todo el sistema de archivos o raíz "/" las carpetas y archivos que se llamen "pepino". Sería:
find / -name pepino


Si tuviéramos la seguridad de que se encuentra en /var por ejemplo, se lo indicaríamos:
find /var -name pepino


Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo que buscamos contiene “pepi”, en la misma carpeta de antes:
find /var -name *pepi*


Otra expresión sería "-size" para realizar la búsqueda por tamaño. Por ejemplo podemos decirle que encuentre los archivos/carpetas de más de 1500 KB:
find / -size +1500

Se pueden conbinar varios atributos para afinar la búsqueda. Por ejemplo, buscar los archivos/carpetas que contienen el nombre “pepi” y tienen menos de 1000 KB:
find / -name *pepi* -size -1000


La opción "2>/dev/null" es muy interesante para que no muestre los errores de "Permiso denegado". Por ejemplo para buscar en la raíz "/" el archivo "gdmflexiserver":
find / -name gdmflexiserver 2>/dev/null

Sintaxis

Básicos.
man comando páginas del manual
ls listar contenido del directorio actual
rm borrar un archivo
cp copiar un archivo
pwd identificar el directorio en que se está
cd directorio cambia de directorio
cd .. cambiar al directorio de nivel inferior
chown, chgrp, chmod, chattr, touch comandos para manejo de atributos de archivos
find, locate buscar archivos
cat, more, head listar archivos
split partir archivos
grep buscar texto en archivos

Comunicaciones(para tareas administrativas).
who lista los usuarios que están conectados en la sesión actualfinger información sobre usuariomail programa de correowrite mensaje a la pantalla de un usuariomesg bloquear mensajes de writewall mensaje a todos los usuariosbanner letrero en terminal con textocal calendario en terminalclear limpiar la pantalla de la terminaldate fecha y hora actualespasswd cambiar contraseña de usuario
Entorno Gráfico.
startx iniciar el entorno gráfico
startx -- :2 , :3 , :4 , etc. abrir nuevas sesiones del entorno gráfico
/etc/X11/xorg.conf fichero de configuración del entorno gráfico (es conveniente leer antes man xorg.conf)
Archivos comprimidos.
tar -xzvf archivo.tar.gz Descomprime un archivo.tar.gz en la carpeta actual
tar -xvf archivo.tar Descomprime un archivo.tar en la carpeta actual

gzip -d archivo.gz Descomprime un archivo.gz
tar -cvf archivo.tar archivo1 archivo2 archivo3 Empaqueta sin comprimir dentro del archivo.tar los archivos 1, 2 y 3 
gzip archivo Comprime archivos empaquetados 
Manejo de archivos.
ln -s archivo Crear enlace simbólico al archivo dentro de la carpeta actual

ls -i Listar número de inodo

ls -l listar archivos y enlaces

rm archivo Borrar archivos

rm -r Borrar directorios

df Ver espacio libre en disco entero
du -sh * Estima el uso de espacio de los ficheros
find / -name archivo Buscar un archivo (la / es la raiz donde quieres buscar)
 Sistema.
ps Ver pid de procesos en ejecución
dmesg , dmesg | less Listar los mensajes del núcleo
lsmod Ver módulos cargados en el núcleo
PS1="\Wquot; Exportar en el prompt de la terminal \W , nombre del usuario \H , nombre del Host \T , hora
uname -a Información del sistema
ldconfig -p Bibliotecas instaladas
ldd /ruta/programa Bibliotecas utilizadas por el programa
shutdown -r 0 Salir del sistema, reinicializa el ordenador
poweroff Apagar el sistema

AltGr + PetSis + R E I S U B Reinicia sistema bloqueado sin perdidas
AltGr + PetSis + R E I S U O Apaga sistema bloqueado sin perdidas
Impresora.

/dev/lp1 Dispositivo (Impresora)

ls > /dev/lp1 Probar Impresora 

lpq Ver cola de imppresión

lpc status Estado de la impresora

lprm Eliminar cola en impresión


 Instalación.
dpkg -i Instalar paquete

dpkg --info Información del paquete

dpkg -c Lista de archivos contenidos

dpkg --contents Lista todos los archivos contenidos con sus directorios

dpkg -f Informa versión del paquete

dpkg --unpack Desempaqueta

dpkg --purge Borra un paquete incluidos los archivos de configuración

dpkg -r Borra un paquete pero no borra los archivos de configuración

dpkg -L Lista el paquete si está instalado

dpkg -l Lista los paquetes instalados
Convertir Paquetes.

alien -d archivo.rpm convierte archivo rpm a deb

alien -d archivo.tgz convierte archivo tgz a deb

alien -i archivo.rpm convierte archivo rpm a deb y lo instala

alien -i archivo.tgz convierte archivo tgz a deb y lo instala

Aplicaciones que se ejecutan por consola.

apachetop Te dice las peticiones y paginas servidas en tiempo real de apache.

cdcd Reproductor de CD's de audio para consola.

centericq para mensajería instantánea

chkrootkit Busca rootkits y sintomas de hacking

cmus para reproducir mp3

denyhosts Cuando alguien intenta entrar por fuerza bruta a tu maquina por ssh,
 el lo evita, a partir del N-ésimo intento lo banea

elinks navegador que soporta tabs.

ethereal similar a tcpdump

fbi para ver fotografías en tu framebuffer

figlet Hace "letreros" en consola.

hddtemp Monitoriza temperaturas de discos duros

iptables Cortafuegos de linux por excelencia

iptraf Monitorea el tráfico de interfaces de red (utiliza libreria ncurses)

irssi como cliente IRC

ldd para saber contra que librerías está compilado un programa

lynx navegador web

logrotate Rota logs y los comprime (si quieres)

logsentry analizador de logs (similar a logwatch)

logwatch Monitoriza logs en busqueda de cosas extrañas

lsof Muestra información sobre los archivos abiertos por procesos

macchanger Permite ver y cambiar la MAC de las interfaces de red, incluso asignar
 la de una marca de fabricante en concreto.

mc TE FACILITA LA VIDA!!!. Similar al antiguo Norton comander de MS-DOS

mon Monitorizador de hosts y servicio , pero solo en linea de comandos.
 Puede quedarse como demonio y enviar un email cuando detecte que
 algo no funciona correctamente

mp3blaster Genial reproductor de mp3 para consola.

mutt cliente correo (MUA)

nagios Requiere un navegador web. Ampliamente utilizado para monitorizar servidores y si sus servicios están activos

nload muestra el total de KB de entrada y salida de un interfaz

nmap scaner de puertos

orpheus reproductor multimedia

pcalc Útil para calcular la configuración lógica de una red TCP/IP.

phpmyadmin Requiere web, para administrar mysql de manera gráfica.

portsentry simula puertos abiertos (puertos trampa) y quien intenta acceder lo banea

quota limitar el tamaño de la cuenta a cada usuario en Mb o en i-nodos

rdate sincroniza la hora del ordenador con un servidor de tiempo

rkhunter Busca rootkits y sintomas de hacking

rssh Shell que solo permite conectarse por SFTP y otros, pero no da consola
screen para tener consolas virtuales
snort sniffer e ids
strace para saber que hace un programa cuando lo ejecutas

superadduser imprescindible si no te acuerdas de todos los parametros de adduser
 o tienes que añadir muchos usuarios al día

tcpdump permite analizar el contenido de los paquetes que enviamos y que nos llegan

tmpwatch Borra archivos que no han sido accedidos desde hace mucho (útil para eliminar basura del tmp)

traceroute el típico traceroute para ver por donde van tus paquetes

trafshow monitoriza ip's y trafico y tiempo real

ufed Modificar las uses a través de un entorno con ncurses

unrar comprimir y descomprimir en rar

vim, nano como editor de textos

vlock bloquea una/todas las consolas

which Para saber en que ruta esta un determinado programa

whowatch Monitoriza en tiempo real quien esta logado en el sistema

wipe Borrado seguro de archivos.


Ejemplos 

Si queremos que nos muestre lo que contiene el directorio o carpeta "/etc":

ls /etc

Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos actualmente:

ls

Además acepta ciertos argumentos que pueden ser interesantes:

Para mostrar todos los archivos y carpetas, incluyendo los ocultos:

ls -a

Para mostrar los archivos y carpetas junto con los permisos que tiene, lo que ocupa, su dueño, ...:

ls -l
Además se pueden solapar los argumentos:

Si quisiéramos mostrar los archivos de la misma forma que antes, pero que muestre también los ocultos:

ls -la

2. RESUMEN

Mas allá de interfaces gráficas como KFM, Linux dispone de un numeroso conjunto de utilidades para manipular archivos (individualmente o en grupos) tipeando comandos en una terminal. A través de esta modalidad de trabajo es posible alcanzar un alto nivel de flexibilidad y versatilidad para realizar operaciones de cualquier grado de complejidad.

Los comandos utilizados mas frecuentemente se describen brevemente a continuación. Para un mayor nivel de detalle, se sugiere consultar el manual en línea de Linux (ver mas adelante el comando man) y especialmente la documentación del interprete de comandos utilizado (usualmente, el bash).

3.SUMMARY

Beyond graphical interfaces as KFM , Linux has a large set of utilities for manipulating files ( individually or in groups ) by typing commands in a terminal. Through this type of work it is possible to achieve a high level of flexibility and versatility to perform operations of any complexity .

The most frequently used commands are briefly described below. For a more detailed level , we suggest you consult the online manual of Linux (see below the man command ) and especially documentation used command interpreter (usually , bash ) .

4. CONCLUSIONES
  • Una de las ventajas de Linux es la cantidad de opciones a la hora de personalizar el sistema. Una de las más interesantes es la automatización de tareas en Linux con Bash.
  • El estigma de que no es seguro porque es código abierto y de que es un caos y desorden cada desarrollo.
  • Nos enseña el verdadero sentido del uso y aprovechamiento de la tecnología.
5. RECOMENDACIONES
  • Algunas empresas no desarrollan drivers para GNU/Linux porque pierden los privilegios de empresas del software.
  • Se debe escribir bien los comandos para acceder de forma correcta a nuestro cometido, en caso contrario nos saldra error.
6.  APRECIACIÓN DEL EQUIPO

5 Razones para usar lineas de comandos

 1. Control total del sistema. Esto puede variar. Lo que estoy tratando de decir es que estoy acostumbrado a hacer algunas tareas utilizando algunas herramientas de línea de comandos en lugar de una aplicación gráfica. Por ejemplo, usar una aplicación gráfica que me haga preguntas sobre si realmente estoy seguro de pasar los argumentos que quiero o utilizar algunos valores por defecto que no necesito. Ni una sola vez he visto una aplicación gráfica basada en línea de comandos capaz de aplicar sólo la mitad de las opciones disponibles, por lo que no fui capaz de hacer lo que realmente quería.

2. Potente para muchas tareas. La línea de comandos es a menudo más potente que las aplicaciones gráficas para tareas específicas. Por ejemplo, piensa en la posibilidad de tener un directorio con cientos de diferentes tipos de archivos en él. Mover, copiar, renombrar a la larga sería muy difícil en una interfaz gráfica. Seleccionar casi cada elemento con el ratón mientras presiona CTRL no es fácil para una gran cantidad de archivos y tardas mucho tiempo en hacerlo todo. Con la línea de comandos puedes utilizar un único comando con el fin de realizar cualquiera que sea la tarea.

3. Posibilidad de usar guiones bash. Tengo varios pequeños scripts en mi directorio ~/bin/, que en Debian detecta e incluye por defecto en la ruta de comandos ejecutables. Por lo tanto, puedo ejecutar comandos específicos sobre algunos archivos con un solo comando y un parámetro. Esto es muy útil si tienes algunas necesidades específicas o quieres un comportamiento determinado con alguna herramienta, que no se aplica a cualquier aplicación gráfica.

4. Menos memoria. Utilizando la línea de comando no hará falta cargar en el sistema librerías adicionales que no estén aún cargadas para las aplicaciones gráficas.

5. Capacidad para utilizar alias. Alias es una gran característica de bash que permite a un usuario crear uno o más comandos utilizando un comando sencillo, fácil de escribir, llamado alias. La capacidad de utilizar esto a menudo hace que el trabajo sea más fácil.

7. GLOSARIO DE TERMINOS

  • cat: Crea un archivo nuevo de texto sin usar un editor. Una vez terminada la edición del archivo, utilice CONTROL-D para salir.
  • cd: Cambiar de directorio. Si no se escribe nombre alguno, cd cambia al directorio raíz del usuario.
  • chmod: Comando para cambiar los permisos de lectura-escritura-ejecución (rwx) de un archivo. El formato de los permisos de un archivo es drwxrwxrwx, donde el primer conjunto (drwx) son los permisos del usuario, el segundo conjunto (rwx) los permisos del grupo y el tercer conjunto (rwx) los permisos del resto de usuarios.
Las opciones ugo+rwx otorgan los permisos rwx del archivo tanto al usuario,grupo y otros. Las opciones ugo-rwx retiran los permisos rwx del archivo al usuario, grupo y otros.
  • cp: Realiza una copia del archivo fuente como archivo destino.
  • grep: Busca en uno o más archivos, línea por línea, un patrón determinado. Este patrón puede ser un conjunto de caracteres consecutivos o una expresión regular.
  • ls: Ver contenido del directorio. Si no se escribe nombre alguno, ls muestra los nombres de los archivos visibles en el directorio corriente. 
  • La opción -l muestra los permisos de los archivo en formato drwxrwxrwx (usuario-grupo-otros). Ver comando chmod para cambiar los permisos de un archivo.
  • man: Provee documentación de un comando linux específico.
  • mkdir: crear uno o más directorios.
  • mv: mover o renombrar archivos y directorios
  • pwd: Muestra el directorio donde estamos ubicados como camino absoluto.

8. LINKOGRAFIA
  •  http://blog.desdelinux.net/estructura-de-directorios-en-linux/
  • https://eliasbrasa.wordpress.com/2009/03/04/estructura-de-directorios-en-ubuntu-y-debian/
  • http://www.investigacion.frc.utn.edu.ar/labsis/Publicaciones/apunte_linux/ma.html
  • https://skrdz.wordpress.com/2007/09/13/comandos-basicos-linux-manejo-de-archivos-y-directorios/
VIDEO TUTORIAL


DIAPOSITIVAS SLIDE SHARE









No hay comentarios:

Publicar un comentario