ORDENES BASICAS
Objetivos.
• Manejar órdenes básicas para ordenar, cortar, extraer y unir archivos.
• Manejar los permisos en archivos y directorios.
Recursos:
Herramientas.
Los comandos a utilizar en esta práctica son:
http://es.tldp.org/Manuales-LuCAS/LIPP/lipp-1.1-html-2/lipp.htm
sort chmod
cut tail
tr paste
paste umask
Los comandos a utilizar en esta práctica son:
http://es.tldp.org/Manuales-LuCAS/LIPP/lipp-1.1-html-2/lipp.htm
sort chmod
cut tail
tr paste
paste umask
Procedimiento:
1.- Ordenar archivos.
Deberá crear un archivo de texto llamado
dir1/agenda1,
con la siguiente información:
Nombre telefono
Juan 303-3030
Maria 101-3032
Pablo 402-5060
Cesar 506-0394
Judith 796-4044
Patricia 695-4004
dir1/agenda1,
con la siguiente información:
Nombre telefono
Juan 303-3030
Maria 101-3032
Pablo 402-5060
Cesar 506-0394
Judith 796-4044
Patricia 695-4004
1.1 Liste por pantalla el número de personas que almacena el archivo "agenda1" sin
repeticiones.
#sort -u agenda1
repeticiones.
#sort -u agenda1
1.2 Liste en orden alfabético de apellidos el archivo "agenda1".
#sort +1 -d agenda1
#sort +1 -d agenda1
1.3.- Añade a datos1.num el contenido de datos1 con sus líneas numeradas.
#cat -n agenda1 >> agenda1.num
Muestra de nuevo agenda1.num con sus líneas numeradas. Crea un archivo
agenda1.ord con las líneas de agenda1 ordenados. Visualízalo.
#cat -n agenda1.num
#sort datos1 >> agenda1.ord
#cat -n agenda1 >> agenda1.num
Muestra de nuevo agenda1.num con sus líneas numeradas. Crea un archivo
agenda1.ord con las líneas de agenda1 ordenados. Visualízalo.
#cat -n agenda1.num
#sort datos1 >> agenda1.ord
1.4 Cree otro archivo con la estructura de "agenda1" y llámelo "agenda2". Clasifique en
orden inverso los archivos "agenda1" y "agenda2", colocando la salida en el archivo
"ageninv" y utilizando el segundo campo como clave de clasificación.
#sort 1 +1 -r agenda1 agenda2 > ageninv
orden inverso los archivos "agenda1" y "agenda2", colocando la salida en el archivo
"ageninv" y utilizando el segundo campo como clave de clasificación.
#sort 1 +1 -r agenda1 agenda2 > ageninv
1.5 Visualice las líneas del archivo "agenda2" ordenadas, suprimiendo todas menos la
primera ocurrencia de las líneas que tengan el mismo apellido.
#sort -d agenda2 | uniq -d -n0
primera ocurrencia de las líneas que tengan el mismo apellido.
#sort -d agenda2 | uniq -d -n0
1.6 Visualice el archivo de cuentas de usuarios, ordenado por identificativo de usuario
(recuerde que se trata del tercer campo y que están separados por ":" ).
#sort -d -t:/etc/passwd
(recuerde que se trata del tercer campo y que están separados por ":" ).
#sort -d -t:/etc/passwd
1.7 Partiendo de "agenda1" y "agenda2", obtenga un archivo llamado "telefonos" cuyo
contenido sea la fusión de los dos anteriores sin repetir elementos y clasificado en
primer orden por prefijo y en segundo por nombre.
#sort +2 +0 -u agenda1 agenda2 > telefonos
contenido sea la fusión de los dos anteriores sin repetir elementos y clasificado en
primer orden por prefijo y en segundo por nombre.
#sort +2 +0 -u agenda1 agenda2 > telefonos
1.8. Los siguientes ejemplos deben funcionar con el archivo
/etc/passwd
. Este nombre
en negrita, es el archivo que almacena la información sobre todos los usuarios de una
máquina LINUX. Es un archivo de texto con cada línea dividida en 7 campos. Cada
campo está separado por el carácter ' : ' . Realiza una copia del mismo y llámale
claves
("
cp /etc/passwd ~/claves
"
).
Realice ahora los siguientes ejercicios y explique qué hace
cada uno de ellos:
#sort claves: Tomará a los números como una lista de caracteres y el ordenamiento no será el esperado
#sort -r claves : Se invierte el orden de clasificacion de claves
#sort +2n -t: /etc/passwd:
#sort +2n -t: -n /etc/passwd
. Este nombre
en negrita, es el archivo que almacena la información sobre todos los usuarios de una
máquina LINUX. Es un archivo de texto con cada línea dividida en 7 campos. Cada
campo está separado por el carácter ' : ' . Realiza una copia del mismo y llámale
claves
("
cp /etc/passwd ~/claves
"
).
Realice ahora los siguientes ejercicios y explique qué hace
cada uno de ellos:
#sort claves: Tomará a los números como una lista de caracteres y el ordenamiento no será el esperado
#sort -r claves : Se invierte el orden de clasificacion de claves
#sort +2n -t: /etc/passwd:
#sort +2n -t: -n /etc/passwd
2.- Caracteres de sustitución y selección de información.
2.1.- Cree un archivo que esté formado por el identificativo (UID), el nº de usuario y el
nº de grupo de los usuarios.
#cut -d -f1,3,4 /etc/passwd > users
nº de grupo de los usuarios.
#cut -d -f1,3,4 /etc/passwd > users
2.2.- Obtenga un listado en el que aparezcan los nombres de los grupos de usuarios en
el sistema, así como los usuarios que formen parte de cada grupo.
#cut -d: -1,4 /etc/group
2.3. El comando
el sistema, así como los usuarios que formen parte de cada grupo.
#cut -d: -1,4 /etc/group
2.3. El comando
tr
se usa para cambiar ciertos caracteres de un archivo por otros.
tr
suele ser usado en conjunción con la redirección de entrada/salida. Realice ahora los
siguientes ejercicios y explique qué hace cada uno de ellos:
#tr a z < claves: Redirecciona clave y se le cambia los acarecteres a a-z
#tr '[A-Z]' '[a-z]' < claves: Se hace casi lo mismo que el primero lo unico que aca se especifica que tambien sea para las las mayusculas
#tr -d ' ' < claves
2.4. El comando
se usa para cambiar ciertos caracteres de un archivo por otros.
tr
suele ser usado en conjunción con la redirección de entrada/salida. Realice ahora los
siguientes ejercicios y explique qué hace cada uno de ellos:
#tr a z < claves: Redirecciona clave y se le cambia los acarecteres a a-z
#tr '[A-Z]' '[a-z]' < claves: Se hace casi lo mismo que el primero lo unico que aca se especifica que tambien sea para las las mayusculas
#tr -d ' ' < claves
2.4. El comando
cut
nos sirve para extraer campos de un archivo (generalmente
columnas). Observa el resultado de los siguientes ejemplos y explique cuál es su
comportamiento:
#cut –c1 /etc/passwd
#cut –c1,5,10-20 /etc/passwd
#cut –d: -f3- /etc/passwd
nos sirve para extraer campos de un archivo (generalmente
columnas). Observa el resultado de los siguientes ejemplos y explique cuál es su
comportamiento:
#cut –c1 /etc/passwd
#cut –c1,5,10-20 /etc/passwd
#cut –d: -f3- /etc/passwd
3. División y unión de archivos
3.1. Divida el archivo /etc/
termcap
en partes, pero antes debe tener una copia en su
directorio de trabajo para poder realizar la acción.
#split termcap
#split -100 termcap
en partes, pero antes debe tener una copia en su
directorio de trabajo para poder realizar la acción.
#split termcap
#split -100 termcap
3.2. El comando
paste
realiza exactamente lo contrario que el comando
cu
t.
paste
enlaza un archivo con otro, de tal manera, que inserta
uno al lado del otro
y no
debajo. Ejemplos a comentar:
Sean los siguientes archivos:
archivo nombres archivo direcciones
george 55 Aim Avenue
fred 1005 Marks road
david 5 Thompson Street
janet 43 Pedwell road
#paste nombres direcciones
#paste –d: nombres direcciones
#paste –s nombres
paste
realiza exactamente lo contrario que el comando
cu
t.
paste
enlaza un archivo con otro, de tal manera, que inserta
uno al lado del otro
y no
debajo. Ejemplos a comentar:
Sean los siguientes archivos:
archivo nombres archivo direcciones
george 55 Aim Avenue
fred 1005 Marks road
david 5 Thompson Street
janet 43 Pedwell road
#paste nombres direcciones
#paste –d: nombres direcciones
#paste –s nombres
3.3. Como ejercicio final de repaso de algunos comandos ya vistos, conteste las
siguientes preguntas:
siguientes preguntas:
Se necesita para todas las preguntas el siguiente archivo,
libro.telefonos
libro.telefonos
george!2334234!55 Aim Avenue
fred!343423!1005 Marks road
david!5838434!5 Thompson Street
janet!33343!43 Pedwell road
Observe que el elemento delimitador de los campos para este archivo es el símbolo
“!”, y que los campos son el nombre, el número de teléfono y la dirección
¿Qué harían los siguientes comandos LINUX?
No ejecute los comandos hasta que
no esté seguro de lo que hace.
En particular no intente ejecutar el primero de ellos:
rmdir ~
cat /etc/passwd
ls ../dir1/agenda1
fred!343423!1005 Marks road
david!5838434!5 Thompson Street
janet!33343!43 Pedwell road
Observe que el elemento delimitador de los campos para este archivo es el símbolo
“!”, y que los campos son el nombre, el número de teléfono y la dirección
¿Qué harían los siguientes comandos LINUX?
No ejecute los comandos hasta que
no esté seguro de lo que hace.
En particular no intente ejecutar el primero de ellos:
rmdir ~
cat /etc/passwd
ls ../dir1/agenda1
4. Permisos
4.1 Observe los permisos que el archivo agenda1. Realice una copia del mismo,
llamelo temp1. Vamos a quitar a la copia permisos de lectura y escritura para el
propietario del archivo, ejecutando los siguientes comandos:
llamelo temp1. Vamos a quitar a la copia permisos de lectura y escritura para el
propietario del archivo, ejecutando los siguientes comandos:
#ls –l
Qué permisos tiene temp1?
Ejecute
#chmod u-r,u-w temp1 (quita permisos de lectura y escritura al archivo temp1)
Permita que el propietario pueda leer, escribir y ejecutar el archivo.
#chmod o-rwx temp1
Dar a todos los usuarios acceso al archivo.
#chmod +r temp1
Quitar permisos de ejecución a todos los usuarios excepto al propietario.
#chmod u+rwx temp1
Qué sucede con los siguientes comandos?
#chmod a+r temp1
#chmod og-x temp1
Añadamos los permisos de lectura al grupo y al resto
chmod g+r agenda1
chmod o+r temp1
¿Y ahora qué permisos tienen?
Crearemos un archivo de la siguiente forma:
# ls -l > hola
Podemos observar que el propietario de este archivo es root, que pertenece al
grupo root, y que sus bits de acceso están de la siguiente forma : rw-r-----. ¿Que
indica todo esto?
El cálculo de la máscara de umask se efectúa de la siguiente forma:
#umask
Ejercicios de Repaso:
Qué comandos utilizaría para:
ordenar un archivo por nombres
ordenar un archivo en orden descendente por el número de teléfono
mostrar sólo la columna de las direcciones
cambiar todos los caracteres delimitadores “!” por “:”
mostrar la primera línea del archivo
mostrar la línea que contiene la información sobre
david
¿Qué efecto tendría el siguiente comando:
paste –d: -s libro.telefonos
Qué permisos tiene temp1?
Ejecute
#chmod u-r,u-w temp1 (quita permisos de lectura y escritura al archivo temp1)
Permita que el propietario pueda leer, escribir y ejecutar el archivo.
#chmod o-rwx temp1
Dar a todos los usuarios acceso al archivo.
#chmod +r temp1
Quitar permisos de ejecución a todos los usuarios excepto al propietario.
#chmod u+rwx temp1
Qué sucede con los siguientes comandos?
#chmod a+r temp1
#chmod og-x temp1
Añadamos los permisos de lectura al grupo y al resto
chmod g+r agenda1
chmod o+r temp1
¿Y ahora qué permisos tienen?
Crearemos un archivo de la siguiente forma:
# ls -l > hola
Podemos observar que el propietario de este archivo es root, que pertenece al
grupo root, y que sus bits de acceso están de la siguiente forma : rw-r-----. ¿Que
indica todo esto?
El cálculo de la máscara de umask se efectúa de la siguiente forma:
#umask
Ejercicios de Repaso:
Qué comandos utilizaría para:
ordenar un archivo por nombres
ordenar un archivo en orden descendente por el número de teléfono
mostrar sólo la columna de las direcciones
cambiar todos los caracteres delimitadores “!” por “:”
mostrar la primera línea del archivo
mostrar la línea que contiene la información sobre
david
¿Qué efecto tendría el siguiente comando:
paste –d: -s libro.telefonos