problemas con linux

Comments   3   Date Arrow  October 14, 2007 at 10:23pm   User  by Gonzalo Arreche

Estaba yo configurando y retocando mi elive gem, recien instalado (gracias diego por la descarga :P), cuando decido que demora demasiado en arrancar, ok, una de las formas de hacer que linux (o cualquier otro sistema operativo) arranque mas rapidamente, es.. logico ! que cargue menos aplicaciones al hacerlo. Para lograr mi cometido, me dirijo a una consola (logueado como root, por supuesto), voy hasta uno de mis directorios favoritos “/etc“, y luego a “rc5.d“, ya que utilizo modo grafico, y en debian el runlevel para ese modo es el 5. Borro algunos archivos (los enlaces, claro), que veo innecesarios.. y entre rm y rm.. en una de esos momentos en que uno viaja al infinito y toca las estrellas y todas esas cosas.. presiono la combinacion de teclas exactas para escribir lo siguiente:

# rm archivo_que_no_recuerdo * <ENTER>
rm: no se puede borrar “archivo_que_no_recuerdo”: No existe el fichero o directorio.

Que ? como que no existe ? hmm.. regreso a la tierra y repaso el comando introducido…
# rm archivo_que_no_recuerdo *
borrara archivo_que_no_recuerdo y luego TODOS los archivos, incluyendo archivo_que_no_recuerdo, que ya no existe. RAYOS !!! borre todo ! nooooo… y soy root, fuck !! y aurora ? bueno.. tengo el listado de archivos producido por un “ls” justo antes de borrarlos.. y ya que esos son enlaces y los destinos estan todos en el mismo directorio, supongo que me servira de algo.. sin dudarlo, guardo esa lista en un archivo:

# cat > lista <<EOF
> (selecciono el listado y lo pego)
> EOF

edito la lista para dejar un archivo por linea (me sirve como esta, pero queda mas bonito asi :D)

# nano lista # (no, no uso el vi xq apesta XD)

luego veremos como puedo utilizarlo a mi favor, supongo el “for” me ayudara en esto..

# for a in `cat lista`; do echo $a; done

y obtengo el listado de archivos, tal y como lo tengo guardado, con el formato:

S[0-9]{2}[a-z.-]+ –> ej. S99rc.local

los enlaces siguen la siguiente regla (supongo):

S([0-9]{2})([a-z.-]+) apunta a ../init.d/$2

por lo que tendria modificar la cadena.. para obtener el nombre del archivo separado del “S[0-9]{2}“, no es de las cosas que se hacer mejor, pero supongo podre arreglarmelas.. :P
Veamos, se que existe una utilidad llamada “sed“, que “man sed” me dice acepta expresiones regulares tipo perl, eso me gusta :), una simple prueba, para ver si es lo que necesito:

# echo “ab”|sed -r ’s/(a)(b)/\2\1/’
ba

Correcto !, ahora aplicarlo a mi lista:

# for a in `cat list`; do echo $a|sed -r “s/S([0-9]{2})(.*)/\2/”; done

y los nombres son impresos correctamente, de la forma: rc.local, ahora a crear los enlaces:
# for a in `cat list`; do echo $a|sed -r “s~(S[0-9]{2})(.*)~ln -s ../init.d/\2 \1\2~”; done

eso me imprime algo como:

ln -s ../init.d/rc.local S99rc.local

que es justo lo que necesito, y para terminar, agrego un “eval“:

# for a in `cat list`; do eval “`echo $a|sed -r ’s~(S[0-9]{2})(.*)~ln -s ../init.d/\2 \1\2~’`”; done
# ls

y listo, tengo todos los archivos que necesito donde los necesito ;).. eaea !.. si, ya se que estaras pensando “hay una forma mas (simple|rapida|mejor|eficiente|*) de hacerlo”, pero bueno, era para salir de un apuro ;)

Moraleja: no tome si se loguea como root ! XDD

PD: Desconozco la razon por la cual tipee “*” al final de la instruccion “rm” (por las dudas ;) )

Tagged   ayudas · linux · problemas · sistemas operativos · soluciones

3 Comments

  • #1.   Daniel 11.12.2007

    Salado laburo (Y)

    pero con el VI no te metas eh! jeejej

    salutes o/

  • #2.   Marcelo 12.20.2007

    Creo que en realidad en lugar de borrar los enlaces es mejor que vayas a /etc/rc5.d y renombres los enlaces a los servicios que empiezan con “S” a “K” para que no se enlacen durante el arranque.

    O también puedes ir a /etc/init.d y hacer un chmod -x a los servicios que no necesites. :D

  • #3.   Gonzalo Arreche 12.21.2007

    @Daniel: bueno, al menos parece que existe gente que usa el vi.. a veces pienso q es algo q ponen en las distros simplemente por nostalgia :D

    @Marcelo: jaja.. bue, eliminarlos era mas.. (divertido?).. jajaja.. espero recordar eso para la siguiente XDD..

    Saludos.. :P

Leave a Comment