Ayuda con unos scripts

Hola, hoy he tenido un examen y salvo la parte teórica, la práctica ha ido un poco mas (he hecho 1/3); con los comandos siempre me he apañado un poco mal.
Quisiera saber si alguien me puede ayudar con ellos:

El primero es: Contar el número de usuarios de /etc/passwd que NO sean root. Yo he hecho:
v=`cat /etc/passwd > usuarios`
wc -l $v usuarios
echo "nr de usuario es `expr $v - 1`"

No me da bien el resultado.
¿por qué si quito la palabra usuarios de la segunda fila, no me hace nada el script? al fin y al cabo lo que lee es la variable y no el archivo.

El segundo es: Crear un fichero .html con la información del fichero (que no me acuerdo cómo se llamaba) pero la orden para verlo era "df".
Podría hacerse sin consultar el fichero en cuestión, y haciéndolo directamente con la orden "df" y luego guardarlo en un archivo como html?

Gracias a todos.
Lo primero hay muchas formas de hacerlo, te pongo un par de ejemplos:
echo "$(($(cat /etc/passwd | wc -l) - 1))"

awk -F: '{ if ( $1 != "root" ) print; }' /etc/passwd | wc -l

O algo que se parece a lo que has hecho:) :
v=`cat /etc/passwd | wc -l`
echo "nr de usuario es `expr $v - 1`"


Lo segundo no hay quien lo entienda, mírate el manual de df para ver si hace lo que crees...
Yog-Sothoth escribió:Lo primero hay muchas formas de hacerlo, te pongo un par de ejemplos:
echo "$(($(cat /etc/passwd | wc -l) - 1))"

awk -F: '{ if ( $1 != "root" ) print; }' /etc/passwd | wc -l

O algo que se parece a lo que has hecho:) :
v=`cat /etc/passwd | wc -l`
echo "nr de usuario es `expr $v - 1`"


Lo segundo no hay quien lo entienda, mírate el manual de df para ver si hace lo que crees...

He conseguido hacer por mi cuenta el de contar usuarios excepto root:
cat /etc/passwd | grep -v "root" | wc -l


Así de simple... si al examen hubiera tenido más tiempo lo habría resuelto sin problemas.

Bueno, podrías recomendarme alguna guía de los comandos para scripts en linux? porque en exámenes futuros me podría servir bastante.
cat /etc/passwd | grep -v root | wc -l
PD: Lo he puesto algo tarde jaja. No le había dado a enviar!
Esta bien, pero si hubiera un usuario que se llamara arooturo, por poner un ejemplo, tú solución tampoco lo contabilizaría. Una expresión regular muy simple resuleve este problema. Tampoco es necesario usar cat:

grep -v "^root:" /etc/passwd | wc -l


Libros sobre esto hay muchos, curiosamente hoy me he topado con uno por twitter, sólo lo he mirado un poco por encima pero te puede valer: http://linuxcommand.org/tlcl.php
Yog-Sothoth escribió:Lo segundo no hay quien lo entienda, mírate el manual de df para ver si hace lo que crees...

El segundo es crear un fichero .html a partir del fichero que guarda la información sobre el espacio en disco y todo eso. Pero no me acuerdo cómo se llamaba el fichero, creo que era partitions pero yo no encuentro la ruta.

Lo que quiero decir es que en el fichero, hay lo mismo que si ejecutaras "df".
pues si es eso, añades los tags de html en el fichero y punto...

Seguramente tendrás que leer la salida de df linea por linea, y cada linea con el codigo html
Yog-Sothoth escribió:Esta bien, pero si hubiera un usuario que se llamara arooturo, por poner un ejemplo, tú solución tampoco lo contabilizaría. Una expresión regular muy simple resuleve este problema. Tampoco es necesario usar cat:

grep -v "^root:" /etc/passwd | wc -l



Puedes prescindir del wc, el propio grep tiene una opción para contar los "matches"

grep -c -v "^root:" /etc/passwd
nu_kru escribió:pues si es eso, añades los tags de html en el fichero y punto...

Seguramente tendrás que leer la salida de df linea por linea, y cada linea con el codigo html

Vale bien, es muy fácil así, pero nunca he tocado el html XD

Podrías hacerme un breve resumen de cómo se haría?

Gracias y saludos.
De manera basica y sino recuerdo mal..

<html>
     <body>

         <p> Añadir el texto que quieras</p>
         <p> una por linea</p>             
     </body>
</html>


Mismamente en este mismo foro acaban de colgar un manual de html, para lo básico es eso
9 respuestas