Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OPERACIONES BASICAS
1. Leer la página del manual instalado en el ordenador correspondiente al comando echo.
¿Cuál es la diferencia entre
$ echo Hola
y
$ echoHola ?
2. Utilizando los comandos who y whoami determinar quien está en el sistema, en qué
dispositivo está conectado y quién piensa el sistema que eres tú.
3. Ejecuta el comando date con las opciones adecuadas para que su salida tenga el formato
dd-mm-aa.
FICHEROS Y DIRECTORIOS
1. Crea un directorio en tu directorio HOME llamado PRACTICAS. Haz que este directorio
sea tu directorio de trabajo actual. ¿Cuál es el pathname completo de este nuevo
directorio?
2. Cambia tu directorio de trabajo otra vez a tu directorio HOME. Desde aquí (no cambies tu
directorio de trabajo), averigua toda la estructura de árbol desde la raiz hasta tu directorio
actual.
5. ¿Cual es el pathname completo del fichero FICH2? ¿Cual es su pathname relativo desde
tu directorio HOME?
6. Usa el comando cat para visualizar por pantalla el contenido del fichero PASCAL. ¿De
que manera podría visualizarse mejor?
7. Borra toda la estructura creada. ¿Como se puede hacer esto usando un único comando rm?
8. Visualiza el contenido del directorio /usr utilizando el comando cat. ¿De qué manera se
podría visualizar mejor?
9. Haz una copia del fichero llamado FICH2 en tu directorio. Cambia el nombre de la copia
que acabas de hacer y llámalo FICH2.B. Crea otro nombre para FICH2.B y llámalo
FICH_PASC.2.
12. Desde tu directorio HOME, borra todos los ficheros del directorio PRACTICAS usando
un único comando.
PERMISOS
1. Observa los permisos del fichero NADA de tu directorio HOME ¿A qué grupo pertenece? ¿A
quién se le permite cambiar la posesión o el grupo?
2. Haz una copia del fichero NADA (nada.copia) ¿De quién es la copia? ¿Cómo puedes cambiar
los permisos para que un compañero de grupo no pueda copiarlo?
3. Cambia los permisos del fichero EJEMPLO en tu directorio HOME para que el propietario
del fichero (tu) pueda leer y escribir en él, cualquiera del grupo pueda sólo leer y los demás no
puedan ni leer, ni escribir ni ejecutar.
4. Copia desde tu directorio HOME el fichero nada en el directorio /bin. ¿Has tenido algún
problema? ¿Por qué?
5. Copia el fichero /bin/cp en tu directorio HOME. ¿Has tenido algún problema? ¿Por qué?
6. Borra todos los permisos del fichero NADA. ¿Puedes ahora cambiar la posesión de ese
fichero al de tu compañero?
LA SHELL
1. Activa una variable de la shell llamada XXX que sea igual a tu nombre. Visualiza su
contenido.
2. Crea una shell hija escribiendo ksh. Mira ahora el contenido de XXX. ¿Qué sucede? Mata la
shell hija (Ctrl-d) ¿sabe algo el padre de la variable XXX ahora?
3. ¿Qué comando se puede escribir en la shell para que la shell hija vea el contenido de la
variable XXX? ¿Cómo pueden verse todas la variables que heredará la shell
4. Crea otra shell hija. Asigna la variable XXX al nombre de tu compañero. ¿Es ahora XXX una
variable local o del entorno? Lista las variables del entorno. ¿Cómo está XXX asignada?
5. Ahora borra la variable XXX de la shell hija. ¿Existe localmente o dentro de tu entorno? ¿Por
que?
6. Mata la shell hija volviendo a la shell de login. Existe todavía XXX. ¿Por qué? ¿Cómo puedes
verificarlo?
EJECUCIÓN DE COMANDOS
1. Cuando se escribe, por ejemplo, el comando date, la shell lo ejecuta ¿Dónde está el comando
date?
3. Usa el comando find para localizar un fichero llamado nada3. Empieza la búsqueda en tu
directorio HOME.
4. Haz este ejercicio con tu compañero. Usa el comando su para cambiarte al identificador de
entrada al sistema de tu compañero. Ahora, comprueba con el comando id tu identificativo de
usuario. ¿Cómo volverías a tu cuenta de entrada otra vez?
NOMBRES DE FICHEROS
1. ¿Cuál seria la salida, desde tu directorio HOME de los comandos:
$ echo*.C
$ echo m[n-t]*.?
$ echo ??????
$ echo *[0-9]*
$ echo *.dat
5. Ordena el fichero PERMISOS según el tercer campo. Haz una ordenación numérica según el
tercer campo. Compara ambas ordenaciones.
2. ¿Por qué echo '$abc' produce $abc mientras que echo "$abc" produce una línea en blanco?
Compruébalo.
PIPELINES
1. Construye un pipeline que cuente el número total de líneas del fichero PERMISOS que
contienen la plantilla "jta[a-z][a-z]*". Cuenta también las líneas que no tienen esa plantilla.
2. Construye un pipeline que cuente el número de usuarios que están conectados al sistema.
3. Construye un pipeline que saque por pantalla una lista ordenada de ficheros (y directorios)
en tu directorio HOME. Hazlo con formato de 3 columnas y sin cabeceras ni colas.
4. Construye un pipeline sencillo que envíe una versión desordenada del fichero NADA a un
fichero llamado NADA.NO_ORDEN y una versión ordenada al fichero NADA.ORDEN
(Usa el comando cat).
5. Construye un pipeline para obtener una lista de los identificadores de los usuarios
conectados al sistema.
6. Construye un pipeline sencillo que cree una lista de la estructura de tu directorio así como
un fichero que contenga la misma información.
MULTITAREA
1. Escribe los comandos
cd /user/man/cat1.Z
cat * > $HOME/gran_fichero &
Ejecuta entonces el comando ps –f. Anota el PID y EL PIDD de los procesos cat. Sal del
sistema y vuelve a entrar. ¿Está el proceso cat? Antes de continuar borra el fichero
gran_fichero.
2. Repite le ejercicio anterior utilizando el comando nohup. Salte del sistema y vuelve a entrar.
Ejecuta el comando ps -f. ¿Quien es el padre ahora del comando cat?
3. Asigna a una variable llamada dir la salida del comando pwd. ¿Cómo se puede buscar el
número de caracteres en la cadena que contiene esa variable?
4. Cámbiate al directorio $HOME/practicas/. Asigna a una variable llamada "pdir" la salida del
comando pwd. Ahora vuelve a tu directorio HOME utilizando dicha variable.
3. Escribir un programa en la shell que pida el nombre y los dos apellidos de un usuario y los
escriba en la pantalla con el siguiente orden Primer apellido Segundo apellido, Nombre.
4. Escribe un programa en la shell llamado invertir que reciba hasta 9 argumentos y los escriba
en orden inverso.
5. Escribe un programa en la shell que liste el numero de argumentos que se le ha pasado (como
máximo 9), y liste por pantalla los tres primeros en líneas separadas. ¿Qué lista de
argumentos produciría la siguiente salida para este programa?
No puedo
escribir esto
más rápido
2. Escribe un programa en la shell que saque por pantalla el primero y el último argumento de la
línea de comandos.
4. Escribe un programa en la shell que separe las horas, minutos y segundos del comando date,
asigne estos valores a variables y saque por pantalla lo siguiente "En estos momentos son las
HR horas, MIN minutos, SEG segundos"
2. Crea una construcción if interactiva que visualice por pantalla SI si X es igual a abc y NO en
caso contrario.
Si no hay ningún argumento en la línea de comandos o las opciones no son -a, -b o -c,
sacará por pantalla un mensaje de error para indicar esa circunstancia.
3. Modifica el programa del reloj de la práctica anterior de forma que el valor de las horas
aparezca en formato de 12 horas, AM/PM.
2. Escribe un programa de la shell que visualice por pantalla la frase "Hola a todos" 50 veces, sin
utilizar un bucle FOR.
3. Escribe un programa de la shell llamado esta_dentro que se ejecute en batch y que verifique
cada 60 segundos si un usuario en particular ha entrado en el sistema. Cuando el usuario entre
en el sistema, imprime un mensaje en tu terminal que refleje la entrada e informe de en qué
terminal ha entrado el usuario (Nota: utilizar el comando sleep).