send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Script que genera una estructura de directorios FHS

  • 5 Respuestas
  • 4505 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Stiuvert

  • *
  • Moderador Global
  • Mensajes: 2662
  • Actividad:
    6.67%
  • Reputación 14
    • Ver Perfil
  • Skype: stiuvert@gmail.com
  • Twitter: @Stiuvert
« en: Julio 25, 2015, 03:31:33 pm »
El otro día estuve viendo un esquema del sistema de archivos de Linux realizado por  @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, y como tenía un script que generaba la estructura he decido postearlo. Básicamente consiste en crear los directorios y la estructura.

Servirá para los que recién empiezan en Bash, algo sencillo para ir jugando con menús y comparaciones. Tengo una segunda versión que reliza copias de seguridad si lo encuentro lo postearé aunque animo a los usuarios a que realicen sus Scripts.

Un saludo

Código: Bash
  1. #!/bin/bash
  2. # Crear un script que genere una estructura de directorios y cumpla las normas FHS.
  3. # By Stiuvert
  4.  
  5. opc=1
  6. flag=0
  7.  
  8. while [ $opc -ne 0 ];do
  9. clear
  10. echo '1. - Crear estructura de directorios FHS'
  11. echo '2. - Crear estructura en el directorio /usr'
  12. echo '3. - Crear estructura en el directorio /var'
  13. echo '0. - Salir'
  14. echo -n "Elige una opción: "
  15. read opc
  16.  
  17.  
  18. # Estructura FHS
  19. if [ $opc -eq 1 ];
  20. then
  21.     clear
  22.         echo '- /proc'
  23.         echo '- /sys'
  24.         echo '- /cdrom'
  25.         echo '- /initrd'
  26.         echo '- /bin'
  27.         echo '- /boot'
  28.         echo '- /dev'
  29.         echo '- /etc'
  30.         echo '- /home'
  31.         echo '- /lib'
  32.         echo '- /media'
  33.         echo '- /mnt'
  34.         echo '- /opt'
  35.         echo '- /root'
  36.         echo '- /sbin'
  37.         echo '- /tmp'
  38.         echo '- /usr'
  39.         echo '- /var'
  40.     echo 'Crear los siguientes directorios (s/n): ' #pregunta si o no
  41.         read crear
  42.         if [ $crear == "s" ]; # 'S' creamos los directorios
  43.         then   
  44.            mkdir /{proc,sys,cdrom,initrd,bin,boot,dev,etc,home,lib,media,mnt,opt,root,sbin,tmp,usr,var}
  45.            flag=1
  46.            sleep 1
  47.         fi
  48.         if [ $crear == "n" ]; # 'n' vuelve al menu principal
  49.         then [ $opc -eq 0 ];   
  50.         fi
  51. fi
  52.  
  53.  
  54. # El directorio /usr
  55. if [ $opc -eq 2 ];
  56. then
  57.         if [ $flag -eq 1 ];
  58.         then
  59.     clear
  60.         echo '- /usr/bin'
  61.         echo '- /usr/include'
  62.         echo '- /usr/lib'
  63.         echo '- /usr/local'
  64.         echo '- /usr/sbin'
  65.         echo '- /usr/src'
  66.     echo 'Crear los siguientes directorios (s/n): ' #pregunta si o no
  67.         read crear
  68.         fi
  69.        
  70.         if [ $crear == "s" ]; # 'S' creamos los directorios
  71.         then
  72.         mkdir /usr/{bin,include,lib,local,sbin,src}
  73.         sleep 1
  74.         fi
  75.        
  76.         if [ $crear == "n" ]; # 'n' vuelve al menu principal
  77.         then [ $opc -eq 0 ];
  78.         fi
  79. fi
  80.  
  81.  
  82. # El directorio /var
  83. if [ $opc -eq 3 ];
  84. then
  85. if [ $flag -eq 1 ];
  86. then
  87.     clear
  88.         echo '- /var/cache'
  89.         echo '- /var/lib'
  90.         echo '- /var/lock'
  91.         echo '- /var/log'
  92.         echo '- /var/mail'
  93.         echo '- /var/run'
  94.         echo '- /var/spool'
  95.         echo '- /var/tmp'
  96.     echo 'Crear los siguientes directorios (s/n): '
  97.         read directorios
  98. fi
  99.  
  100.         if [ $directorios == "s" ]; # 'S' creamos los directorios
  101.         then
  102.         mkdir /var/{cache,lib,lock,log,mail,run,spool,tmp}
  103.         sleep 1
  104.         fi
  105.        
  106.         if [ $crear == "n" ]; # 'n' vulve al menu principal
  107.         then [ $opc -eq 0 ];
  108.         fi
  109. fi
  110.  
  111. done
  112.  

Desconectado CRC-_-

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
  • #!/bin/env python >_<
    • Ver Perfil
« Respuesta #1 en: Julio 25, 2015, 05:16:21 pm »
Gracias por el tiempo que as dedicado a crear el script, como bien dices me sirven para empezar a coger el punto a bash. Tengo algunas dudas en el código que no se que significan. Saludos

Código: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

$opc -ne 0 --> $op se que llamas a una variable pero -ne?
$opc -eq 1 --> -eq?
¡La información tiene que ser libre y accesible a tod@ el mundo!

Desconectado Stiuvert

  • *
  • Moderador Global
  • Mensajes: 2662
  • Actividad:
    6.67%
  • Reputación 14
    • Ver Perfil
  • Skype: stiuvert@gmail.com
  • Twitter: @Stiuvert
« Respuesta #2 en: Julio 25, 2015, 07:53:33 pm »
Buenas,

while [ $opc -ne 0 ];do #mientras opc sea distinto a 0

Lo que hace es forzar a entrar en el menú, es decir, la opción 0 es salir por lo tanto digo "mientras opc (variable opción) no sea 0 hacer ESTO.

Tu segunda duda creo que es esto:

if [ $opc -eq 1 ];

Significa que, si opción es igual a 1 hazme esto.

El usuario tiene que elegir en el menú que es lo que quiere hacer, si escoge 1 pues la primera opción, si escoge 2 la segunda opción y si escoge 0 pues saldrá del programa.


Un saludo

Desconectado po6xsecpo

  • *
  • Underc0der
  • Mensajes: 45
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: po6xsecpo@gmail.com
« Respuesta #3 en: Agosto 25, 2015, 06:42:06 pm »
Cuando usas condicionales (if o while) en bash se testea el valor booleano (true||false) de lo que está entre "[  ]"
El operador "[ ]" equivale al comando "test". Si consutlas "man test" podrás notar que son nomenclaturas ej.
"-eq" == "equals" == "==" ó este otro "-ge" == "greater or equals" == ">=".

Consultando la manpage tendrás esto más claro.

Saludos. Po6xKernel
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Gracias por el tiempo que as dedicado a crear el script, como bien dices me sirven para empezar a coger el punto a bash. Tengo algunas dudas en el código que no se que significan. Saludos

Código: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

$opc -ne 0 --> $op se que llamas a una variable pero -ne?
$opc -eq 1 --> -eq?

Desconectado xianur0n

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Enero 11, 2016, 04:37:50 am »
Se que el post esta un poquito viejito pero he visto que en el foto no hay tanta documentacion sobre bash. asi que tratare de explicar un poquitillo mas. tal y como explico po6xsecpo, -ne ,-eq, -a, -o son opciones del comando test. esta es la sintasis del comando test: test <opciones> <string>, donde opciones son las opciones aceptadas por el comando test y string es el parametro al que se le aplicaran las opciones. el comando test puede ser utilizado de la siguiente forma [ .... ], mas claro podemos omitir la palabra test siempre y cuando pongamos la expression evaluada entre brackets, en la ultima version de bash 4.0xx se aconseja a usar doble brackets [[ .... ]]. espero que ayude un poquito mas.
Perdon por revivir el post, solo trataba de extender un poco mas la explicacion.
« Última modificación: Enero 11, 2016, 08:40:44 am por rollth »

Desconectado nameless

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
« Respuesta #5 en: Diciembre 27, 2016, 08:58:12 am »
Código: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#!/usr/bin/env bash

(( $EUID != 0 )) && printf "you must be root...\n" && exit ||  while [[ ${exit:-n} != [Yy] ]]; do

echo '********
1-Crear estructura de directorios FHS
2-Crear estructura en el directorio /usr
3-Crear estructura en el directorio /var
4-Salir
**************'
        read -rep $'Entry option : \n' op
        case $op in
                1) printf "hello op1\n";;
                2) printf "hello op2\n";;
                3) printf "hello op3\n";;
                4) read -rep $'Exit Y/N? \n' exit ;;
                *)read -rep $'error enter a valid option... press enter to continue...\n' && clear
                        op= ;;
        esac
done

Dentro de las opciones pones el code del mkdir. Los if los puedes trabajar como test, y en vez del "s" para una pregunta usa Regex.
Saludos

 

¿Te gustó el post? COMPARTILO!



Script para ejecutar un archivo BAT con salida nula

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1379
Último mensaje Julio 18, 2011, 10:13:11 pm
por ANTRAX
Script para extraer el valor de una clave del registro

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1385
Último mensaje Julio 18, 2011, 10:12:40 pm
por ANTRAX
[Bash] sencillo script para backups

Iniciado por CRC-_-

Respuestas: 1
Vistas: 1809
Último mensaje Enero 17, 2016, 03:01:10 pm
por CRC-_-
[Script] Instalación de Sublime Text 2

Iniciado por R3v0lve

Respuestas: 0
Vistas: 1353
Último mensaje Septiembre 28, 2015, 04:16:43 am
por R3v0lve
[Bash] Script que loggea tu IP publica.

Iniciado por xianur0n

Respuestas: 0
Vistas: 1887
Último mensaje Enero 18, 2016, 03:16:39 pm
por xianur0n