#2640 Es un directorio con el nombre DIR_BASE en el home del usuario.
He faltado a las clases de scripts por lesión y ahora no se por donde cogerlos :S
#2640 Es un directorio con el nombre DIR_BASE en el home del usuario.
He faltado a las clases de scripts por lesión y ahora no se por donde cogerlos :S
#2641 vamos,que hemos de ayudarte a hacer los deberes xD
Bueno, vamos por partes.
Hacer un script no deja de ser otra cosa que ir poniendo comandos o instrucciones que haríamos en la consola, siguiendo un orden.
Yo ya sé como hacer el script, pero no te voy a dar la solución. Otra cosa es ayudarte a que lo saques tú.
Para empezar, lo primero que te piden es crear un directorio de nombre DIR_BASE en la home de un usuario, llamemosle paco:
/home/paco/DIR_BASE
Y luego una serie de directorios dentro de DIR_BASE.
Bien, piensa como lo harías con comando en la consola/terminal, y luego los pones en el script, grabas el fichero, le das permisos de ejecución y lo pruebas.
También puedes pegarlo aquí.
Empieza con lo primero que te piden, una vez conseguido, continuas.
Ves pegando aquí el código.
#2642 Lo primero que hago es cat /etc/passwd para ver el user de la maquina virtual no?
/home/ausias
Entonces hago mkdir /home/Ausias/DIR_BASE
Esto seria así no?
Pretendo aprender no que me lo hagáis por eso preguntaba algún consejo o ayudita, que si me lo hacéis en el examen no sabre hacerlo xD
#2643 Para saber le usuario hay varias formas. Una de ellas es mirando el fichero /etc/passwd. Ahí, ademas te da mas información como la home del usuario.
Otra forma es con las variables de entorno. Si el usuario que va a ejecutar el script, es el usuario en el cual, tienes que crear el directorio en su home,puedes usar las variables de entorno:
env | grep HOME
revisa que la home del usuario ausias sea /home/ausias. Y recuerda que en Linux, ausia, no es lo mismo que Ausias, o que AuSiAS. diferencia las mayus de las minus.
#2644 Comprobado es
/home/ausias
todo en miniscula.
Ahora para crear los demas directorios sería
mkdir /home/ausias/DIR_BASE/DIR1
correcto?
Y volver a hacerlo dos veces más para el DIR2 y el DIR3.
#2646 Vale ya he creado los tres directorios dentro de DIR_BASE y lo he comprobado.
Ahora dentro de cada DIR hago:
touch nom.txt
para crear el fichero, ahora mi duda es: para que salga el nombre de usuario sería poner
touch nom.txt > $USER
#2647 el comando touch lo único que hace es crear un fichero con el nombre que le indicas, pero si lo abres está vacío.
El simbolo > redirige la salida de un comando, a un fichero.
$USER no es un fichero, es una variable. Por lo tanto, ¿tiene sentido el ultimo comando que has puesto?
#2648 No tiene sentido xD Se que el touch crea un fichero en blanco y se que en el terminal con nano puedo rellenarlo, pero no se como hacer que te diga el USER sin ser cutre y ponerlo yo a mano.
#2650 Me devuelve el user. Mi problema ahora es que en el terminal crear el archivo nombre.txt y que contenga el user no se como ponerlo.
He probado modificando con nano el archivo e intentando introducir el comando whoami pero no lo he logrado.
#2651 Supongo que:
whoami > nom.txt
Con el ">" le dices que lo que salga del whoami lo guarde en el .txt
Ahí entra el símbolo >. Te envía la salida de un comando, a un fichero.
Si ponemos:
whoami > nom.txt
En lugar de mostarte el usuario por pantalla, te lo guardará en el fichero nom.txt
#2654 en tu caso, utilizas la variable de entorno $USER, que guarda el nombre del usuario, en este caso, ausias.
Claro que sirve En Linux hay varias formas o soluciones para hacer las cosas.
Si, con hostname es similar
#2655 Ahora el que me da problemas es el resumen.txt, que me guarde el nombre del usuario y de la maquina es lo mismo, pero que me guarde la fecha actual seria
FECHA=`date +%C-%B-%A`
después poner
$FECHA > resumen.txt
?
#2656 pruebalo y lo verás xD Pero si te fijas bien, solo pasarás en resumen.txt, el valor de la variable FECHA
#2657 Vale, he puesto
echo "`date +%C-%B-%A`" > resum.txt
y me la ha guardado bien
Me falta saber el numero de ficheros que tiene el usuario en todo el sistema que eso si que no tengo ni una noción de como hacerlo. Y saber el numero de ficheros que tiene el usuario en todo el sistema y que tengan permiso para todos.
#2658 en resum.txt no ha de guardar, el usuario, el hostname y la fecha? diria que tal como lo pones te guarda solo la fecha
#2659 Si si me he colado xD para que me los guarde todos sería algo como
"$USER $HOST/hostname `date +%C-%B-%A`"
pero solo me guarda el user y la fecha :S
#2661 Si pones > añades cosas al archivo, si vuelves a poner > se borra lo que tenias para ponerlo.
Si pones > y después >> añade las cosas sin borrar lo anterior no?
Ahora lo he hecho por separado, pero el $HOST me lo deja en blanco y el "hostname" >> resum.txt me pone hostname.
Pero si uso el comando hostname solo si que me devuelve el nombre de la maquina.
cd ~/
mkdir DIR_BASE
cd DIR_BASE
mkdir DIR1
whoami > DIR1/nombre.txt
mkdir DIR2
hostname>DIR2/maquina.txt
mkdir DIR3
cd DIR3
whoami > resumen.txt
hostname >> resumen.txt
date >> resumen.txt
find / -type -f -print | wc -l >> resumen.txt
chmod -r / 777
find / -type -f -print | wc -l >> resumen.txt
#2662 Con > , si en elarchivo a dodne rediriges la salida del comando, hay contenido, lo machaca con lo que le pasas tu. Con >>, lo que hace es agregarlo debajo, hace un "append".
si con elcomando hostname te funciona, usa el comando hostname, o la variable de entorno $HOSTNAME
#2663 la gracia es que lo saque por si solo el chaval. No darle la respuesta.
#2667 con chmod se puede hacer como tu dices, o directamente con el valor númerico:
r = 4
w = 2
x = 1
rwx = 7
#2668 Vale y para la última parte, sería usando find pero no se como hacer para que me busque todos los ficheros del usuario y menos aún los permisos.
#2669 Con el comando find y el argumento -perm y el argumento -user
find / -type f -user ausias -perm 0775