29
SISTEMAS INFORMATICOS Introducción._________________________________________________________________________4 Formas generales de obtener ayuda en Linux. (Modo Texto).______6 Usuarios y grupos._____________________________________________7 Comandos Básicos.______________________________________________9 Comandos para manipular ficheros y directorios._______________10 Comando ls_________________________________________________________10 Comando cd_________________________________________________________10 Comando pwd________________________________________________________11 Comando mkdir______________________________________________________11 Comando mv_________________________________________________________11 Comando cp_________________________________________________________12 Comando rm_________________________________________________________12 Comando chown______________________________________________________13 algunos ejercicios sobre estos comandos.___________________________13 Comandos para paginar, visualizar y editar ficheros___________15 Comando cat________________________________________________________15 Comandos more y less_______________________________________________15 Editor vi__________________________________________________________16 Comandos echo______________________________________________________17 Comandos para hacer búsquedas de ficheros y patrones__________18 Comando grep_______________________________________________________18 Comando find_______________________________________________________19 Comando locate_____________________________________________________20 L I N U X . 1 COMANDOS BÁSICOS DE LINUX.

UT02 Linux

Embed Size (px)

DESCRIPTION

UT 2 Linux parte 1

Citation preview

Manual

SISTEMAS INFORMATICOS

4Introduccin.

6Formas generales de obtener ayuda en Linux. (Modo Texto).

7Usuarios y grupos.

9Comandos Bsicos.

10Comandos para manipular ficheros y directorios.

10Comando ls

10Comando cd

11Comando pwd

11Comando mkdir

11Comando mv

12Comando cp

12Comando rm

13Comando chown

13algunos ejercicios sobre estos comandos.

15Comandos para paginar, visualizar y editar ficheros

15Comando cat

15Comandos more y less

16Editor vi

1Comandos echo7

18Comandos para hacer bsquedas de ficheros y patrones

18Comando grep

19Comando find

20Comando locate

2Comandos para filtrar ficheros

12Comando file

1Comando stat212Comando sort

12Comando uniq

22Comandos tail y head

22Comando wc

32Comando cut4

2Comandos para compactar y agrupar ficheros

52Comandos gzip y gunzip

52Comando tar

6

Introduccin. Una vez instalado e inicializado un sistema Linux se dispone de dos vas fundamentales de interaccin: una grfica (si se instal una interfaz X y se configur adecuadamente) y una interfaz de texto conocida como consola o terminal.

Al igual que Unix, Linux ofrece el mecanismo de consolas o terminales virtuales. Consiste en que a partir de una entrada stdin (el teclado) y con una salida stdout (el monitor) se simulen varias terminales, donde el mismo, o distintos usuarios puedan conectarse. De esta forma es posible tener ms de una sesin abierta en la misma mquina y trabajar en ellas indistintamente. Este mecanismo tambin facilita la caracterstica multiusuario del sistema Linux pues las diferentes conexiones se pueden establecer con diferentes usuarios.

Por defecto, las consolas desde la uno a la seis tienen asociadas un programa que permite conectarse al sistema en modo texto, mientras que la siete, si se instal y activ el modo grfico, constituye una consola grfica.

El cambio de una consola a otra se realiza a travs de la combinacin de teclas Alt y Fx (las teclas de Funcin), donde x oscila entre 1 y 12. De esta forma se pueden acceder un total de 24 consolas virtuales: para las doce primeras se utiliza el Alt izquierdo y para las otras doce el derecho. Por ejemplo para llegar a la consola 16 se presionaran las teclas Alt derecho y F4. No obstante normalmente solo se puede acceder a las consolas con algn proceso o funcionalidad definida.

Desde una consola grfica para cambiar a otra tipo texto se debe adems presionar la tecla Ctrl, pues las combinaciones Alt + Fx son capturadas e interpretadas por las aplicaciones grficas de otra forma.

Con la tecla Alt izquierda combinada con los cursores (derecho e izquierdo) se puede adems, realizar un movimiento circular entre todas aquellas consolas que tengan un proceso asociado (texto, grfico, etc.).

Figura: Esquema que representa la estructura bsica de un sistema Linux

Si nos remitimos a una consola texto podremos apreciar que en ella se mostrar, el nombre de la distribucin, la versin de la distribucin, la versin del kernel y la arquitectura de la mquina. Tambin aparecer el nombre que se le asign al sistema en la instalacin y la palabra login. Aqu puede introducirse el login de un usuario del sistema (seguramente root, si no se crearon ms cuentas durante la instalacin). Despus se pedir el password que al ser escrito no muestra ningn eco en la pantalla. Si ambos son vlidos se establecer la conexin y se mostrar lo que se conoce como prompt, con forma similar a esta:

[root@pinguino /root]$

Para abreviar, en lo sucesivo usaremos el carcter $ para hacer referencia al prompt de un usuario comn, y # para el prompt del sper usuario root.

Al igual que en Unix, el programa que se ejecuta en Linux cada vez que un usuario se conecta y que le permite interactuar con el sistema se conoce como shell (bash normalmente). Este es capaz de interpretar una gran gama de comandos y sentencias. Constituye a su vez un poderoso lenguaje de Scripting. Muchos programas y comandos son shell scripts, por lo que el conocer este lenguaje permite no slo entenderlos y ajustarlos a las necesidades particulares sino tambin, hacer nuevos scripts para automatizar diversas tareas.

Existen muchos tipos de shells para Linux.

Ejemplos:

ash: A shell

csh: C shell

tcsh: una extensin al C shell

ksh: Korn Shell

bsh: Bourne Shell

bash: Bourne Again Shell

Algunos shells se originan de otros o toman sus caractersticas ms avanzadas. De los mencionados anteriormente bash es el ms empleado en Linux. Este es un producto de la FSF (Free Software Foundation). Es uno de los ms desarrollados y est portado para mltiples plataformas. Toma las facilidades de csh y ksh. Ofrece entre otras posibilidades las siguientes:

Auto completar durante la escritura. Al teclear uno o varios caracteres se puede pulsar TAB con el objetivo de que en caso de que pueda completarse de forma unvoca un comando, nombre de fichero o una variable (en dependencia del contexto), complete de forma automtica (se escriba el resto de la palabra). Si existieran varias posibilidades para completar la palabra, se oir un sonido y volviendo a pulsar TAB se mostrarn en pantalla todas las posibilidades existentes. En caso de existir muchas posibilidades (por defecto ms de 100) se pregunta si se desea mostrarlas todas o no.

Historial de comandos. Esta es una facilidad de muchos otros shells que permite el movimiento a travs de los ltimos N comandos ejecutados, en la sesin actual o en las anteriores. N por defecto es 1000, pero puede modificarse. Para moverse arriba y abajo se suelen utilizar los cursores.

Poderosas estructuras de control para realizar scripts. (Procesos por lotes). Se pueden utilizar instrucciones if, for, while, select, case, etc. Definicin de funciones y alias para comandos. Las funciones permiten definir subrutinas programadas usando el lenguaje de bash y los alias que permiten asociar nombres a comandos con ciertas opciones y argumentos de forma ms nemotcnica o abreviada.

Formas generales de obtener ayuda en Linux. (Modo Texto).Existen mltiples y variadas formas de obtener ayuda en un sistema Linux. A continuacin se describen algunas de ellas:

1. Muchos comandos poseen una opcin para mostrar una ayuda breve acerca de su utilizacin. Esta opcin usualmente consiste en utilizar el parametro -h, --help -? tras el nombre del comando. (mkdir - - help).2. El comando help, que muestra en algunos comandos integrados del bash un manual propio. (help alias).3. El comando info que muestra informacin sobre los comandos en una estructura de rbol. (info mkdir).4. El comando whatis que nos da una ayuda rpida sobre comandos. (whatis cp).5. El comando apropos, que dada una palabra busca los comandos relacionados sobre ella. (apropos delete).6. El comando man despliega un manual bastante amplio acerca de comandos, formatos de ficheros de configuracin, llamadas al sistema, etc. Los manuales estn disponibles y pueden instalarse en mltiples idiomas. Estos se dividen internamente en secciones. EL mismo objeto que se est buscando puede estar representado en varias secciones. De no especificarse ninguna seccin a travs del primer argumento del comando se tomar la primera donde aparezca. (man mkdir).7. Muchos programas se empaquetan con su documentacin en diversos formatos. Normalmente estas ayudas se agrupan en el directorio /usr/share/doc. Tambin existen los HOWTOs (Como lograr...) escritos en muchos idiomas y formatos para varios temas disponibles. Algunos se empaquetan como cualquier otro programa o se localizan en Internet.Usuarios y grupos.

Linux es un sistema multiusuario, lo cual permite que varios usuarios puedan conectarse y trabajar en l de forma simultnea. Las conexiones como ya se ha visto se pueden realizar a travs de varias terminales locales o utilizando servicios de red como el Telnet y SSH.

Un usuario se caracteriza por su login el cual debe indicar para conectarse al sistema y de su password o contrasea. Adems puede poseer un conjunto de datos adicionales mencionados ms adelante.

El usuario con ms privilegios en Linux es aquel cuyo login es root. Este es el nico con derechos suficientes para crear o eliminar a otros usuarios, adems de acceder a todo el sistema de ficheros sin ninguna restriccin.

En Linux adems existen grupos de usuarios tambin administrados por root o por un usuario designado por este. Los grupos permiten otorgar los mismos privilegios a un conjunto de usuarios.Siempre que se aada un usuario al sistema se crear un grupo con su mismo nombre, llamado grupo primario. Durante la creacin o posteriormente, se podr incorporar el usuario a otros grupos secundarios.

Tanto los usuarios como los grupos se identifican por el sistema a travs de un identificador (ID) numrico. El usuario root siempre tiene el ID cero. Cada usuario cuando se conecta al sistema posee un identificador de usuario asociado (uid) y un identificador de grupo (gid).

Al aadir un usuario tambin se crear un directorio base para el mismo con el nombre de su login. Este directorio se coloca por defecto en el directorio /home excepto para root, cuyo directorio base es /root.

La informacin asociada a los usuarios en un sistema Linux se guarda en el fichero /etc/passwd y las contraseas y datos afines en /etc/shadow. Por su parte la informacin de los grupos, sus miembros y passwords estn en /etc/group y /etc/gshadow respectivamente.

Para crear un usuario se usa el comando useradd, aunque es mucho mejor usar un script que viene instalado en Linux, que se llama adduser. Este script controla useradd y permite realizar funciones avanzadas, como crear automticamente el directorio del usuario, configurar su perfil, etc.

Como ejemplo, realiza el siguiente ejercicio:

1) Crea dos usuarios, uno con nombre margarita y otro con nombre floripondio. En ambos se usa de contrasea 123:a. sudo adduser margarita

b. sudo adduser floripondio

2) Crea un grupo de nombre flores, y aade a los dos usuarios anteriores a dicho grupo.

a. sudo addgroup floresb. sudo adduser margarita flores

c. sudo adduser floripondio flores

3) Edita el fichero /etc/passwd y comprueba como se han creado dos lneas, una para cada uno de los usuarios que han sido creados.a. less /etc/passwd

4) Edita el fichero /etc/shadow y vers cmo se han creado tambin dos lneas, una para cada uno de los usuarios.

a. less /etc/shadow

5) Edita el fichero /etc/group y comprueba como se ha creado una lnea para el grupo creado, donde adems se puede comprobar que se han aadido como miembros los usuarios.

a. less /etc/groupPara comprobar que los usuarios se han creado bien, realiza lo siguiente:

1) Accede al 4 terminal (Control Alt F4), y haz un login con el usuario margarita. Una vez abierta sesin, ejecuta el comando whoami y el comando id. Comprueba que efectivamente ests en el grupo flores. Para cerrar la sesin se usa el comando logout.2) Acceder al 5 terminal, hacer un login con floripondio y comprobad lo mismo.

(Para volver al terminal grafico desde un terminal de texto, accede al 7 terminal).

Toda la gestin de usuarios y grupos de Linux, en realidad se basa en la modificacin de una serie de ficheros de texto que estn en el directorio etc.

Intenta ahora crear otro usuario, con nombre pimiento y asgnalo como miembro del grupo verduras que tambin habr que crear. Estas acciones realzalas sin usar los comandos adduser y addgroup, y en su lugar modifica directamente los ficheros passwd, shadow y groups.

Una vez hecho, accede a los terminales de texto y como hemos hecho anteriormente, comprueba que pimiento puede realizar login, y que pertenece a los grupos a los que debe pertenecer.Un problema de aadir usuarios de esta forma, es que no se crea su directorio home, cosa que se debe hacer a mano.

Comandos Bsicos.

En las siguientes secciones se mencionan y describen brevemente la utilidad de un grupo de comandos bsicos para interactuar con un sistema Linux. Muchos de estos comandos estn presentes tambin en los sistemas Unix aunque a veces varan sus opciones y argumentos dependiendo de las versiones. Por esto no puede encontrarse una documentacin que diga la ltima palabra respecto a uno u otro comando, la prctica es la mejor forma de comprobar como funciona cada uno. Para su mejor comprensin se clasifican los comandos en varias categoras. En este tema se estudiarn las siguientes categoras:

1) Comandos para manipular ficheros y directorios.2) Comandos para paginar, visualizar y editar ficheros.3) Comandos para hacer bsquedas de ficheros y patrones.4) Comandos para filtrar ficheros.5) Comandos para compactar y agrupar ficheros.*** el dlar $ es el prompt de Linux(el lugar que te encuentres)*** cursor arriba abajo escribe automtico instrucciones escritas automticamenteComandos para manipular ficheros y directorios.

Comando ls

El comando ls permite listar el contenido de un directorio.

Sintaxis:

ls [opciones] [directorio | fichero]

Algunas opciones:

-l : muestra la salida en formato largo.

-R: lista recursivamente un directorio.

-a : lista adems los ficheros ocultos (sus nombres comienzan con punto).

-h : muestra el tamao de los ficheros en forma ms legible (Ej.: 16M, 4k, etc.)

-i : muestra el identificador del i-nodo asociado a cada elemento.

Ejemplos: $ ls -hl /etc

$ ls -R /usr

$ ls -al

$ ls -ali ..Un grupo de opciones que se suele utilizar bastante es lia (ls lia)

En $ls l la primera columna aparecer:

- Archivo regular

d directorio

l enlaces (links)

c archivos especial de carcter

b archivo especial de bloque

p archivo de canal de comunicacin entre procesos

s socket para manejo de puertos y similares

En $ls l la segunda columna aparecern permisos:

r lectura

w escritura

x ejecucin

En $ls l la posicin 5,6,7 de columna aparecer los derechos de usuarios que pertenecen al mismo grupo que el usuario:

En $ls l la posicin 8,9,10 de columna aparecer los derechos de otros usuarios:

En ltimo lugar aparece el nmero de copias de vinculacin del archivo: la posibilidad de que un archivo sea abierto por diferentes aplicaciones.(las veces que se puede abrir simultneamente.

Siguientes :

Nombre de usuario de propietario

Nombre del grupo al que pertenece el usuario.

Tamao en bytes

Comando cd

El comando cd se utiliza para cambiar el directorio actual.

Sintaxis:

cd [directorio] Ejemplos:

$ cd /tmp

$ cd cambia de directorio y nos deja en el directorio base del usuario actual

$ cd ~ (alt + 126) cambia al directorio base (Home) del usuario actual. (Ese smbolo se entiende en bash como el directorio Home del usuario).Comando pwd

El comando pwd indica el camino absoluto del directorio en el que nos encontramos

Ejemplo:

$ pwd devuelve algo como /home/pepe/backup/pruebasComando mkdir

El comando mkdir se utiliza para crear directorios.

Ejemplos:

$ mkdir bin

$ mkdir /bin

$ mkdir -p docs/linuxdocs/howtos/pdf se crean los directorios intermedios si es necesario

Comando mv

El comando mv mueve un fichero hacia otro, o varios ficheros hacia un directorio.Este permite a su vez renombrar ficheros o directorios.

Sintaxis:mv [opciones]

mv [opciones]

Algunas opciones:

-i : ejecuta el comando de forma interactiva, es decir, pregunta ante de sobrescribir el destino si existiera.

-u : actualiza (upgrade) el destino con el fuente solo si ste es ms reciente.

Ejemplos:$ mv mail.cf mail.cf.old renombra un fichero

$ mv -i *.txt /tmp mueve ficheros terminados en .txt al directorio /tmp. El i

solo pide confirmacin$ mv -u program.c src/- u actualiza el fichero destino si es menos reciente que el fuente al mover.Comando cp

El comando cp permite copiar un fichero en otro, o varios ficheros en un directorio.

Sintaxis:cp [opciones]

cp [opciones]

Algunas opciones:

-R : copia recursivamente(si tiene algo dentro lo copia todo) un directorio.

-i : utiliza una forma interactiva (pregunta antes de sobrescribir el destino).

-l : hace enlaces fuertes a los ficheros fuentes en lugar de copiarlos.

Ejemplos:

$ cp /etc/passwd . copia un fichero en el directorio actual representado por punto$ cp -i /usr/bin/*sh /tmp copia interactivamente los ficheros terminados en sh en un directorio llamado tmpComando rm

El comando rm se utiliza para borrar (desenlazar) ficheros

Sintaxis:rm [opciones]

*** Rmdir solo borra directorios vaciosAlgunas opciones:

-r : borra recursivamente un directorio.

-f : borra forzosamente en caso de que no se tenga permiso de escritura en forma directa.

-i : ejecuta el comando de forma interactiva.

Ejemplos:$ rm prueba

$ rm -i bin/* *** Rmdir solo borra directorios vacios

$ rm -rf temp/ Comando touch

Crea archivo

$touch pruebaComando chown

El comando chown se utiliza para cambiar el dueo y el grupo de un fichero. Existe tambin el comando chgrp que se emplea de forma similar pero para cambiar el grupo solamente. El dueo de un fichero solo lo puede cambiar el usuario root mientras que el grupo adems de root, lo puede cambiar el propio dueo, siempre que pertenezca al nuevo grupo. El propietario y el grupo de un fichero se puede comprobar con un ls -lSintaxis:

chown [opciones] [.grupo]

chown [opciones]

Opcin:-R en los directorios cambia el dueo y/o el grupo recursivamente.

Ejemplos:

# chown pepe.pepe tesis/otorga al usuario pepe y al grupo pepe la propiedad del directorio tesis/# chown -R mar.users /tmp/oculto otorga al usuario mar y al grupo users la propiedad de /tmp/oculto.# chgrp ftp /usr/ftp otorga al grupo ftp la propiedad de /usr/ftpalgunos ejercicios sobre estos comandos.

Ejercicios para reforzar los conocimientos de los comandos para manipular ficheros y directorios.

1) Crea un directorio ejercicio1 en tu directorio home, y copia en el mismo todos los ficheros con extensin conf del directorio /etc. Realiza esta accin con un solo comando, y posicionado en el directorio home del usuario.

2) Crea un directorio ejercicio2 dentro de un directorio prueba dentro de un directorio control dentro de un directorio alumno dentro de tu directorio home. Realiza esta accin con un solo comando y posicionado en el directorio home de tu usuario.

3) Mueve todos los ficheros que contengan una letra a en su nombre del directorio ejercicio1 al directorio ejercicio2. Un solo comando y posicionado en el raz de tu rbol.

4) Crea un usuario rigoberto. Modifica todos los ficheros del directorio ejercicio2 para que pasen a ser propiedad del usuario rigoberto y del grupo rigoberto.

5) Copia el directorio alumno de tu directorio home, y todo lo que contiene, a un directorio copia_alumno que debe crearse en tu directorio home. Un solo comando para la copia.

6) Borra el directorio alumno de tu directorio home con un solo comando y sin que pida confirmacin.

7) Crea un fichero con nombre ocultos en el raz de tu rbol, que contenga el nombre de todos los directorios ocultos que estn en tu directorio home. (Los ficheros y directorios ocultos son aquellos cuyo nombre comienza por un punto, y no son mostrados normalmente por ls).

Comandos para paginar, visualizar y editar ficherosComando cat

El comando cat concatena ficheros y los imprime en la salida estndar. Si no se le pasa ningn argumento lee de la entrada estndar. Existe tambin zcat que hace lo mismo pero con ficheros comprimidos. Si solo se da el origen a cat, utiliza como salida la pantalla. Es decir, cat hola muestra por pantalla el fichero hola. Si solo se da la salida a cat (cat > fichero) utiliza como entrada el teclado.Ejemplo:

# cat /etc/passwd /etc/shadowmuestra la salida estndar los 2 ficheros concatenados$ cat > fichero al no decirle entrada, deja escribir por el teclado, cuando finalicemos de escribir (se indica con Control Z) manda la entrada introducida a la salida fichero.Comandos more y less Los comandos more y less paginan (dividen en pginas) uno o varios ficheros y los muestran en la terminal (pantalla). De no indicar un fichero, paginan la entrada estndar (que se manda mediante una tubera, como por ejemplo con la orden cat /etc/passwd | more Se diferencian en las facilidades que brindan. Por ejemplo more es ms restrictivo en cuanto al movimiento dentro del texto, mientras que less no limita este aspecto pues acepta el empleo de todas las teclas de movimiento tradicionales. Cuando se alcanza el final del ltimo fichero a paginar, more termina automticamente, no as less. Algunas de las funciones que podemos realizar con less los siguientes:

Ejemplos:$ less /etc/passwd

$ more /etc/passwd

$ cat fichero | less

Algunas teclas que podemos usar mientras usamos estos programas son:

q permite interrumpir el proceso y salir.

/p realiza bsquedas del patrn p dentro del texto. Para repetir la bsqueda del mismo patrn slo es necesario escribir /.

[n]b en more permite regresar n pginas (por defecto n es 1).

[n]f en more se adelantan n pginas y en less, n lneas.

El comando man, para dar formato a su salida, utiliza por defecto el paginador less. Existen adems los comando zless y zmore que permiten paginar con less y more respectivamente, a los ficheros comprimidos sin necesidad de descomprimirlos previamente.Editor vi

El editor vi es el editor estndar de Unix. Es orientado a comandos. Existe una versin conocida como vim (Vi IMproved) muy poderosa que permite la edicin de mltiples ficheros, edicin automtica para varios lenguajes de programacin, ayuda en lnea, seleccin visual, varios niveles de deshacer, etc. Para algunos usuarios, vi resulta incmodo pues para utilizar todas sus potencialidades es necesario conocer muchas combinaciones de teclas, pero si se llega a dominar resulta muy funcional. Su principal virtud es que vi est en prcticamente cualquier versin de Unix que usemos, cosa que no se puede decir de otros editores (joe, pico, edit, gedit, etc.).

Bsicamente vi posee dos modos de interaccin: el de insercin (edicin) y el de comandos. Para pasar al modo comando se pulsa Esc y para pasar al de insercin se pulsa i.

Algunos comandos tiles en vi (pulsando ESC para pasar al modo de comandos, que aparece en la ultima lnea de la pantalla).

dd borra la lnea actual.

D borra desde la posicin actual hasta el final de la lnea.

dG borra hasta el final del fichero.

u deshace el ltimo comando.

:q sale del editor (si se han hecho modificaciones y no se ha salvado se genera un error).

:q! sale sin guardar.

:w guarda.

:wq guarda y sale.

:x guarda y sale.

ejecuta el comando n veces.

Comando echo

Echo es un comando que permite escribir algo directamente por la salida estndar.

Ejemplos:

$ echo Hola Mundo

$ echo n Hola Mundo Comandos para hacer bsquedas de ficheros y patrones

Comando grep

El comando grep (Globally Regular Expressions Pattern) busca patrones en ficheros. Por defecto devuelve todas las lneas que contienen un patrn (cadena de texto) determinado en uno o varios ficheros. Utilizando las opciones se puede variar mucho este comportamiento. Si no se le pasa ningn fichero como argumento hace la bsqueda en su entrada estndar.

Sintaxis:

grep [opciones] [ficheros]

Algunas opciones:

-c devuelve slo la cantidad de lneas que contienen al patrn.

-iignora las diferencias entre maysculas y minsculas.

-H imprime adems de las lneas, el nombre del fichero donde se encontr el patrn. Es as por defecto cuando se hace la bsqueda en ms de un fichero.

-l cuando son mltiples ficheros slo muestra los nombres de aquellos donde se encontr al patrn y no las lneas correspondientes.

-v devuelve las lneas que no contienen el patrn.

-r busca en un directorio de forma recursiva.

-n imprime el nmero de cada lnea que contiene al patrn.

Ejemplos:

$ grep linux /usr/share/doc

$ grep root /etc/passwd

# grep -n error /var/log/messages

$ grep -i pepe /etc/passwd

$ grep -c root /etc/group

$ grep -l -r -i img /var/www/html/

$ ls lia | grep carta roja

$ apt-search mp3 | grep codec

Comando find

El comando find es uno de los ms poderosos en un sistema Linux. Permite buscar de forma recursiva en un directorio todos los ficheros que cumplan ciertas condiciones. Las condiciones pueden estar relacionadas con el nombre de los ficheros, el tamao, los permisos, el tipo, las fechas de acceso y modificacin, etc.

Sintaxis:

find [ruta desde donde se busca] [opciones de busqueda]

Algunas opciones:

-name permite especificar patrones para los nombres de los ficheros a buscar.

-iname igual que el anterior, pero ignora maysculas/minsculas

-type permite indicar el tipo de fichero a buscar.

-size +/- permite indicar el tamao mximo y/o mnimo de los ficheros a buscar.

-perm [+|-] permite referirse a aquellos ficheros con unos permisos dados. El valor de se expresa en forma numrica.

-exec ; permite definir un comando a ejecutarse para cada resultado de la bsqueda. La cadena {} se sustituye por el nombre de los ficheros encontrados. El carcter; permite indicar la finalizacin del comando. (Tanto {} como; tienen que ir entre comillas o entre contrabarras para evitar que sea sustituido por el shell).Ejemplos: $ find /etc -name '*.conf' busca en /etc todos los ficheros con extensin conf$ find / -size +10240k -size -20480kbusca los ficheros cuyo tamao est entre 10M y 20M$ find -perm +1000 -type dbusca los directorios que posean el permiso t# find / -name core -exec rm -i {} ;busca todos los ficheros que se llamen core y los borra interactivamente. Los signos se utilizan para proteger de la interpretacin del shellComando locate

El comando locate busca en una base de datos, actualizada peridicamente, todos los paths en la jerarqua de ficheros que contengan una cadena determinada. Para crear esta base de datos o actualizarla se debe invocar por root el comando updatedb (o locate -u). En las distribuciones actuales esta tarea se hace de forma automtica.Ejemplo:$ locate passwd

Comandos para filtrar ficheros

Comando file

El comando file determina con cierto grado de precisin el tipo de un fichero que se le pasa como argumento.

Ejemplos:$ file /etc/passwd

$ file /usr/sbin/adduser

$ file /usr/sbin/useraddComando stat

El comando stat muestra las caractersticas de un fichero. Por ejemplo: su nombre, permisos, tamao en bytes, nmero del i-nodo que lo representa, las fechas de modificacin y acceso, el tipo, el dueo, el grupo, etc.

Ejemplo:$ stat /etc/shadow

Comando sort

El comando sort ordena las lneas de un fichero mostrndolas por la salida estndar. De no especificarse un fichero toma la entrada estndar.Sintaxis:

sort [opciones] [fichero]

Algunas opciones:

-r : ordena al revs.

-f : trata las maysculas y minsculas por igual. Ejemplo:$ sort -f /etc/passwd

Ejercicio, crea un archivo llamado lista-desordenada con el vi y escribe dentro 5 nombres desordenados. Comprueba como con la orden sort lista-desordenada > lista-ordenada se crea un fichero llamado lista-ordenada que contiene la lista ordenada.

Comando uniq

El comando uniq elimina las lneas repetidas de un fichero ordenado, imprimindolo por la salida estndar o en otro fichero argumento. De no especificarse un fichero toma la entrada estndar.

Sintaxis:

uniq [opciones] [fichero] [salida]

Algunas opciones:-c : utiliza como prefijo en cada lnea su nmero de ocurrencias.

-d : solo imprime las lneas duplicadas.

Ejemplo:$ uniq -d lista.txt

Comandos tail y head

Los comandos tail y head muestran respectivamente el final y el comienzo (10 lneas por defecto) de uno o varios ficheros. De no especificarse al menos un fichero toman la entrada estndar.Sintaxis:

tail [opciones] [ficheros]

head [opciones] [ficheros] Algunas opciones:

-f para el caso de tail se ejecuta de forma sostenida o sea se contina visualizando el final del fichero hasta que se interrumpa el proceso (Ctrl-c).

-q no coloca los encabezamiento con el nombre de los ficheros cuando se indican varios ficheros.- imprime las n ltimas (tail) o primeras (head) lneas en lugar de las diez establecidas por defecto. Ejemplos:

$ tail -f /var/log/messages

# tail -20 /var/log/secure

# head -50 /var/spool/mail/pepe

$ head -2 -q /etc/*.conf

Comando wc

El comando wc (Word Count) imprime el nmero de lneas, palabras y bytes de uno o varios ficheros. Si son varios ficheros hace tambin un resumen de los totales. De no especificarse un fichero toma la entrada estndar.

Sintaxis:wc [opciones] [ficheros]

Algunas opciones:

-l slo cuenta lneas.

-c slo cuenta bytes.

-w slo cuenta palabras. Ejemplos:$ wc -l /etc/passwd

$ wc -w /doc/dicciorario.txt

Comando CUT

Como su propio nombre indica, el comando cut tiene la caracterstica de poder cortar caracteres y campos, con la posibilidad de usar delimitadores y otras opciones, para finalmente extraer las partes seleccionadas de cada fichero en la salida estndar.Algunas opciones: el comando cut ofrece los siguientes argumentos:

-b, bytes=LISTAmuestra solamente estos bytes

-c, characters=LISTAselecciona solamente estos caracteres

-d, delimiter=DELIMusa DELIM en vez de caracteres de tabulacin para delimitar los campos

-f, fields=LISTAselecciona solamente estos campos; tambin muestra cualquier lnea que no tenga un carcter delimitador, a menos que se especifique la opcin sEjemplos:$ echo "Esto es una prueba, 1 2 3, probando" | cut -d "," -f 1

$ echo "Esto es una prueba, 1 2 3, probando" | cut -d "," -f 3

$ echo "Esto es una prueba, 1 2 3, probando" | cut -c2-4

Comandos para compactar y agrupar ficheros

Comandos gzip y gunzip

Los comandos gzip y gunzip permiten compactar y descompactar (comprimir y descoprimir) respectivamente uno o varios ficheros.

Sintaxis:

gzip [opciones]

gunzip [opciones]

Algunas opciones:

-r : dado un directorio comprime todos los ficheros presentes en l recursivamente.

-d : dado un archivo/directorio comprimido lo descomprime (similar a gunzip)

-1 a -9 : especifica el grado de la compresin (-1 menor y ms rpida -9 mayor y ms lenta).

-S : permite especificar un sufijo o extensin para el fichero resultado (por defecto es gz).

Ejemplos:

$ gzip -9 big-filecomprime todos los ficheros del directorio actual (su extensin cambia a .gz)$ gunzip big-file.gzdescomprime el fichero big-file.gz$ gzip -s .zip -r doc/$ gunzip -S .zip -r doc/Todo lo compactado con gzip se puede descompactar con el Winzip de los sistemas Windows. Tambin existen los pares de comandos zip y unzip (compatibles en ambos sentidos con Winzip), y compress y uncompress. Comando tar

El comando tar (Tape Archiver) es una herramienta para agrupar varios ficheros aislados o el contenido de un directorio en otro fichero o dispositivo especial. El comando tar no comprime o compacta absolutamente nada, se limita a agrupar varios ficheros en uno solo, sin comprimirlos. Existe una opcin (-z) que automticamente ejecuta un gzip o un gunzip sobre el fichero agrupado.

Sintaxis:tar [opciones]

Algunas opciones:

-c permite crear (tarear).

-x permite extraer (destarear).

-v activa el modo debug, donde se ven todos los mensajes.

-f agrupa o desagrupa en o hacia un fichero y no utilizando la salida o entrada estndar como es por defecto.

-z compacta o descompacta el fichero resultante una vez agrupado o desagrupado con gzip y gunzip respectivamente.

-t lista el contenido de un fichero resultado de un agrupamiento.

-M agrupa en volmenes.

El comando tar conserva la estructura jerrquica original de lo agrupado excluyendo el caracter / que representa a la raz. Algunas opciones se pueden emplear sin el caracter -, siempre y cuando no haya ambigedades entre ellas o con los argumentos.

Ejemplos:$ tar cvfz /tmp/etc.tgz /etc

$ tar xvfz /tmp/etc.tgz

# tar cf uconf.tar passwd shadow groups

# tar xf uconf.tar

LINUX.8Comandos bsicos de Linux.