viernes, 22 de marzo de 2013

Comandos cat, more, less, tail y head


Comando cat en linux
Este comando linux puede ser utilizado para imprimir los datos de un archivo o mas en la pantalla y/o unir varios archivos juntos en un solo archivo .
 
uso:
%cat test.txt
Imprime en la pantalla el contenido del archivo test.txt.
 
%cat test.txt prueba.txt
Imprime en la pantalla el contenido de ambos archivos
 
%cat test.txt prueba.txt > resultado.txt 
Combina los archivos test.txt y prueba.txt en un nuevo archivo llamado resultado.txt
 
%cat test1.txt >> resultado.txt 
Adjuntar el archivo test1.txt al archivo resultado.txt
 
cat >> resultado.txt
Añade datos adicionales al archivo resultado.txt

Para mas informacion consultar en la consola linux,
%man cat 


 Comando more en linux
Este comando linux es para imprimir en la pantalla un archivo de texto por página presionando la barra espaciadora para ir a la página siguiente o por porcentaje presionando el enter.

uso:
%more test.txt
Imprime en la consola el documento de una página a la vez

more -num test.txt
Muestra la linea seleccionado del documento como se especifica en (num)

Ejemplo: %more -10 test.txt
Muestra las 10 primeras líneas del archivo especificado. Presiona Enter para mostrar el archivo línea a línea.

Para mas informacion consultar en la consola linux,
%man more

.
Comando less en linux
Con este comando de linux tenemos algunas opciones:

a) Se puede navegar por la página de arriba hacia abajo o viceversa.
b) Puedes buscar una cadena con el uso de la "/", ejemplo /call 
c) Utiliza las mismas funciones como editor vi
 
uso:
less test.txt

Para mas informacion consultar en la consola linux,
%man less

 
Comando tail en linux
El comando tail en linux se usa para mostrar la parte final de un archivo.

uso:
tail test.txt
Imprime en la consola por defecto las últimas 10 líneas del archivo test.txt.


tail -50 test.txt 
Imprime la lineas 50 del fichero

Para mas informacion consultar en la consola linux,
%man tail

Comando head en linux   
En linux el comando head imprime en pantalla las primeras diez líneas de un archivo a menos que se indique lo contrario.

uso:
head test.txt 
Imprime en consola linux las primeras diez líneas del archivo test.txt.

head -15 test.txt
Imprime en la consola linux las primeras quince líneas del archivo test.txt

Para mas informacion consultar en la consola linux,
%man head

sábado, 16 de marzo de 2013

Cambiar los permisos y propietario de directorios y archivos en Linux

Permisos de archivos de Linux

Aprenda a entender quiénes son los propietarios de un archivo o directorio, como funcionan los permisos de archivos y la forma en que usted puede ver y aprender cómo establecer permisos de archivos básicos.

Permisos y propiedad

Si no puedes acceder a algunos de los archivos en tu sistema Linux, por lo general puede ser una mala configuracion de los permisos en los archivos. Si eres el único usuario en tu máquina Linux, puede que te preguntes cuál es el punto de tener todos estos permisos que restringen tu acceso a su propio sistema operativo del pingüino. Sin embargo, usted debe tener en cuenta que Linux está diseñado para ser un entorno multi-usuario. En un entorno con más de un usuario, es fundamental contar con un sistema seguro para decidir qué archivos son los suyos y que puedas jugar con ellos.

Incluso si tu eres el unico usuario en un sistema de escritorio normal, los permisos de archivos ayudan a mantener sus archivos importantes a salvo, tanto de los usuarios remoto y de su propio uso.

Propiedad del archivo

Cada archivo del sistema Linux, incluyendo directorios, es propiedad de un usuario específico y de grupo. Por lo tanto los permisos de archivo se definen por separado para usuarios, grupos y otros.

Usuario: El nombre de usuario de la persona que posee el archivo. El usuario que crea el archivo se convertirá por defecto en su propietario.

Grupo: El grupo de usuarios al que pertenece el archivo. Todos los usuarios que pertenecen al grupo tendran los mismos permisos de acceso al archivo. 

Otros: Un usuario que no es el propietario del archivo y no pertenece al mismo grupo en el archivo. En otras palabras, si se establece un permiso para la categoría "otros", afectara a los demás de forma predeterminada.

Por esta razón, las personas a menudo hablan acerca de la configuración del "mundo" bit de permiso cuando quieren decir establecer los permisos para los "otros".

Descripción de los permisos del archivos

Hay tres tipos de permisos en Linux: lectura, escritura y ejecutar. Estos permisos se definen por separado para el propietario del archivo, el grupo y el resto de usuarios.

Permiso de lectura: En un archivo normal, el bit de permiso de lectura significa que el archivo se puede abrir y leer. En un directorio, el permiso de lectura significa que usted puede listar el contenido del directorio.

Permiso de escritura: En un archivo normal, esto significa que usted puede modificar/escribir nuevos datos en el archivo. En el caso de un directorio, el permiso de escritura significa que puede agregar, eliminar y cambiar el nombre de los archivos en el directorio. Esto significa que si un fichero tiene el bit de permiso de escritura, se le permite modificar el contenido del archivo también cambiar el nombre o eliminar el archivo.

Permiso de ejecución: En el caso de un archivo normal, esto significa que puede ejecutar el archivo como un programa o un script de shell. En un directorio, el permiso de ejecución le permite acceder a los archivos en el directorio y entrar en él, con el cd de comando. Sin embargo, tenga en cuenta que aunque el bit de ejecución le permite entrar en el directorio, no se les permite mostrar su contenido, a menos que usted también tiene los permisos de lectura a este directorio.

Cómo ver los permisos de archivos

Tu puedes ver los permisos de acceso de un directorio realizando el listado largo de directorio con el comando #ls -l.

root@Jack:~# ls -l

drwxr-xr-xr 2 debian linux 4096 ene 15 20:10 certificados
-rw-r----- 1 debian linux 4096 feb 12 2006 ssh.txt
-rwxr-xr-x 1 debian linux 4096 mar 8 19:06  synaptic.sh
drwx------ 2 debian linux 4096 oct 17 21:15 Desktop
drwx------ 2 debian linux 4096 oct 17 21:00 Downloads


¿Qué significa la salida del comando ls -l?
La primera columna muestra el tipo de archivo/directorio y los permisos.
La segunda columna muestra el número de enlaces (entradas de directorio que se refieren al archivo).
La tercera columna muestra el propietario del archivo.
La cuarto columna muestra al grupo que le pertenece el archivo.
Las otras columnas muestran el tamaño del archivo en bytes, fecha, hora de la última modificación y el nombre del archivo.

La primera columna esta organizada en cuatro grupos separados, aunque ciertamente no parece muy organizado.

El primer grupo consta de un solo carácter, y muestra el tipo de archivo.


símbolo    

atributo  

ddirectorio
-archivo
lenlace simbolico
ssocket de dominio Unix
pcanalización con nombre
devicec personaje archivo
barchivo de dispositivo de bloques

Los siguientes nueve caracteres muestran los permisos del archivo, divididos en tres grupos, cada uno compuesto por tres. El primer grupo de tres caracteres muestra la lectura, escritura y ejecución para el  propietario del archivo. El grupo siguiente se muestra la lectura, escritura y ejecución para el grupo del archivo. Del mismo modo, el último grupo de tres caracteres muestra los permisos para el grupo otro. En cada grupo, el primer carácter es el permiso de lectura, el segundo permiso de escritura, y el tercero, el permiso de ejecución.

Los personajes son bastante fáciles de recordar.

símbolo    

permiso   

r leer
wescritura
x ejecucion
- ninguno

¿Qué significa esto en la práctica? Vamos a echar un ejemplo. Recuerde que la lista de directorios imaginario que hicimos al principio? La salida se veía así:


drwxr-xr-x 2 debian linux 4096 ene 15 20:10 certificados
-rw-r----- 1 debian linux 4096 feb 12 2006 ssh.txt

Como ya hemos observado en la primera linea, dir es un directorio, porque la primera columna se inicia con una d . El propietario de este directorio es usuario debian y el propietario del grupo es linux. Los primeros tres caracteres, rwx , indican que debian es propietario del directorio, en este caso tiene acceso total al directorio. El usuario debian es capaz de acceder, ver y modificar los archivos de ese directorio. Los siguientes tres caracteres, rx , indican que todos los usuarios que pertenecen al grupo de linux tienen permiso  de lectura y ejecución para el directorio, sin embargo debido a que no tiene permisos de escritura, no pueden realizar ningún cambio en el contenido del directorio. Finalmente, los últimos tres caracteres x  indican que todos los usuarios que no son debian o  los que no pertenecen a grupos de linux tienen permisos de ejecución en el directorio.

continuemos con la segunda linea, esta inicia con un - , este es un archivo, propiedad del usuario debian y grupos linux, al igual que el directorio en nuestro ejemplo. Los primeros tres caracteres rw- , indican que el propietario puede leer y editar el archivo. Con los siguientes tres caracteres, r-- , los usuarios que pertenecen al grupo de linux nada mas puede leer el archivo, estos no pueden modificar o ejecutarlo. Los últimos tres caracteres, --- , indican nadie más tiene acceso al archivo.

Cómo establecer permiso a los archivos




Con el comando chmod se puede establecer permisos a los archivos/directorio. Tanto el usuario root como el propietario del archivo puede establecer permisos de archivo

Hay dos formas de establecer permiso:
simbólicos y numéricos   

Modo simbólico

símbolo  

atributo

uusuario
ggrupo
ootros
Atoda la serie
+añadir permiso
-eliminar permiso
=acabar con los permisos
anteriores y añadir uno nuevo

Miremos un par de ejemplos, tenemos un archivo llamado test.txt y este tiene permiso de acceso para todos los grupos (-rwxrwxrwx).

Eliminaremos todos los permisos, pero agregaremos permisos de lectura para todo el mundo:
#chmod a=r test.txt
El resultado sera r--r--r--

Agregar permiso de ejecución para el grupo:
#chmod g+x test.txt
El archivo quedara r--r-xr--

Añadir permiso de escritura y ejecutar para el propietario del archivo:
#chmod u+wx test.txt
Los permisos del archivo se observaran asi rwxr-xr--

Eliminar permiso de ejecución para el propietario y el grupo:
#chmod ug-x test.txt
Ahora, los permisos son rw-r--r--

Modo numérico

En el modo numérico los permisos están representado de tres dígitos octal.

numero  

atributo

4read (r)
2escritura (w)
1ejecucion (x)
0sin permiso (-)

Para obtener los bits de permisos que desea, se suman los números en consecuencia.
Por ejemplo:

atributo

numero

total

rwx4+2+17
r-x4+15
rw-4+26

Para establecer permisos para el propietario, grupo y otros, se necesita un número de tres dígitos que representa los permisos de todos estos grupos.

ejemplos:
#chmod 755 test.txt
Los permisos del  archivo test.txt quedara rwxr-xr-x . El propietario tiene completo todo los permisos (7 = 4 +2 +1), el grupo y el otro tendran permiso de lectura y ejecutara (5 = 4 +1).


#chmod 640 test.txt
En este caso el archivo test.txt tendra el permiso de rw-r-----. El propietario podra leer y escribir (6 = 4 +2), el grupo leera (4), y los otros no tendran ningún permiso de acceso (0).

El modo numérico no puede ser tan sencillo como el modo simbólico, pero con el modo numérico puede ser mas rapida y eficaz para establecer permiso.

Comando chown, cambia el propietario de un archivo

En linux se puede cambiar el propietario y el grupo de un archivo o un directorio con el comando chown. Tenga en cuenta que nada mas se puede realizar esto solo si es usuario root o el propietario del archivo.

Establecer el propietario del archivo:
#chown debian file.txt
El nuevo propietario del archivo llamado file.txt será el usuario debian. El propietario del archivo del grupo no va a cambiar.

También puedes establecer un grupo al mismo tiempo. Si el nombre del usuario es seguida de dos puntos y un nombre de grupo, el grupo del archivo se cambiará también.
#chown debian:linux file.txt
El archivo file.txt tendra como nuevo propietario el usuario debian y el grupo linux .


Para cambiar el propietario de un directorio y todos los archivos de ese directorio, debes contar con la -R opción:
#chown -R debian Descargas
R significa recursivo y este comando recursivao puede cambiar la propiedad de los directorios y sus contenidos. Después de emitir este comando de ejemplo, el usuario debian será el propietario del directorio Descargas, así como todos los archivos de ese directorio.

Agregando la opcion v mostrara de forma detalla los cambios efectuados:

#chown -v debian Descargas
changed ownership of 'Descargas' to debian

El modo detallado es especialmente útil si cambia la propiedad de varios archivos a la vez. Por ejemplo, esto podría suceder cuando se hace de forma recursiva:

$ chown -Rv debian Descargas
changed ownership of 'Descargas/' to debian
changed ownership of 'Descargas/skype' to debian
changed ownership of 'Descargas/ssh' to udebian

Como se observa con este comando chown -Rv se detalla lo que le hizo a cada archivo.

Comando chgrp, cambia el grupo propietario de un archivo

Además de chown , también puede utilizar el comando chgrp para cambiar el grupo de un archivo o un directorio. Una vez mas se le recuerda que para realizar el cambio usted deber ser el usuario root o el propietario del archivo.

El comando chgrp funciona casi de la misma manera como chown, pero este cambia el grupo del archivo.
$ chgrp linux Descargas
Después de ejecutar este comando el directorio Descargas sera propiedad de un grupo de usuarios linux . Aunque el grupo del archivo ha cambiado a linux , el propietario del archivo continuara siendo el mismo.

Las opciones de utilizar chgrp es lo mismo que usar chown . Así, por ejemplo el -R y -v funcionara de las misma manera que chown.

$ chgrp -Rv linux Descargas
changed group of 'Descargas/' to linux
changed group of 'Descargas/skype' to linux

changed group of 'Descargas/ssh' to linux