######## ./creausuarios ============================================== #.................................................... pon() { tput cup ${1} ${2} echo -ne "${3}" } #..................................... pedir() { clear numero=0 pon 5 5 "GRUPO DE CUENTAS A CREAR (p.ej.: \"caia\" ) : " ; read grupo pon 6 5 "crear $grupo DESDE el numero: " ; read contador pon 7 5 "crear $grupo HASTA el numero: " ; read hasta pon 8 5 "DIRECTORIO BASE (ej.: \"/home/caia/\") :" ; read dirbase } #..................................... poner_numero() { if [ $contador -lt 10 ] then numero="0$contador" else numero="$contador" fi } #..................................... crear() { /usr/sbin/userdel -r $grupo$numero /usr/sbin/adduser -d $dirbase$grupo$numero $grupo$numero -m echo "$grupo$numero" | passwd $grupo$numero --stdin # read -n 1 -p " ===================== [enter] para continuar ===" } #..................................... confirmar() { echo -e " Se va crear el grupo de usuarios : \n $grupo$contador al $grupo$hasta" echo -e " en el directorio $dirbase" echo -ne " \n para CANCELAR ahora, pulsa control-C, o enter para seguir" read nada } #..................................... pedir if ! [ -d "$dirbase" ] then echo "***********************************************" echo -e " \"$dirbase\" NO existe. Debes crearlo antes. " echo "***********************************************" else confirmar until [ "$contador" -gt "$hasta" ] do poner_numero crear contador=`expr $contador + 1` done fi ######## ./calc_con_bc ============================================== #!/bin/bash proceso() { clear tput cup 10 10 ; echo -n "primer operando : " read ope1 tput cup 12 10 ; echo -n "OPERACION······· : " read -n 1 operacion tput cup 14 10 ; echo -n "segundo operando : " read ope2 # barra="\\" ; echo $barra ; read # resultado=`expr $ope1 \\$operacion $ope2` resultado=`echo "scale=3; $ope1 $operacion $ope2" | bc` tput cup 16 10 ; echo "RESULTADO -------> $resultado" } salida="x" until [ $salida = "q" ] do proceso tput cup 19 10 echo -n "Pulsa [enter] para seguir, o \"q\" para salir" read -n 1 salida done clear ######## ./corta_pid_del_ps ============================================== read -p "NOMBRE de procesos a buscar:" cadena read -p "NOMBRE de USUARIO a buscar:" usuario # ps -aex | grep "login" | grep ex1cai | cut -c-5 ps -aex | grep $cadena | grep $usuario | cut -c-5 ######## ./creaunuser ============================================== /usr/sbin/adduser -d /home/ex1casb/ex1casb10 ex1casb10 -m echo "ex1casb10" | passwd ex1casb10 --stdin ######## ./mata_por_usuario ============================================== clear read -p "Usuario (nombre, o parte)-->" usuario for proceso in `ps -aex | grep login | grep $usuario | cut -c-5 ` do echo "Proceso : $proceso ..... " echo "`ps -p $proceso -o "%u %c %p"`" read -p "¿ MATARLO ??? (s / n)-->" opcion if [ ${opcion:=n} = "s" ] ; then kill -9 $proceso fi done ######## ./borrausuarios ============================================== clear numero=0 echo -ne "GRUPO de usuarios a BORRAR (p.ej.: caia ) : " ; read grupo echo -ne "DESDE el numero: " ; read contador echo -ne "HASTA el numero: " ; read hasta until [ "$contador" -gt "$hasta" ] do if [ $numero -lt 10 ] then numero="0$contador" else numero="$contador" fi echo -ne "/usr/sbin/userdel -r $grupo$numero ????? " ; read nada /usr/sbin/userdel -r $grupo$numero contador=`expr $contador + 1` done ######## ./ls_colores ============================================== vi /etc/DIR_COLORS . /etc/profile.d/colorls.sh ######## ./monta_smb ============================================== mount -t smbfs -o username=antonio2,password=antonio2 //nt_aula_inf/caia /servlin ls /servlin ######## ./para_vnc.txt ============================================== case "$VNCDESKTOP" in kde) startkde & ;; *) xterm -geometry 40x10+40+40 -ls -title "$VNCDESKTOP Desktop" & twm & ;; esac ######## ./pruexit ============================================== #......... prueba de retorno de funciones funcion() { [ -d /nada/ ] } if funcion ; then echo "SI....." else echo "...............NO ......" fi ######## ./ver_sesiones ============================================== #!/bin/sh # #---.----|----.----|----.----|----.----|----.----|----.----|----.----|----. # 5 10 20 30 40 50 60 70 #-------------------------------------------------------------------------- # meollo() { numses=`echo "$sesiones" | cut -c-9 | sort | grep $elemento -c` if [ ! $elemento = "root" ] ; then lin=`expr $lin + 1` tput cup $lin 5 ; echo -ne "$elemento" tput cup $lin 17 ; echo -ne "$numses" cont_usu=`expr $cont_usu + 1` cont_ses=`expr $cont_ses + $numses` if [ $numses -gt 1 ] ; then echo -ne "\a\a\a\a\a\a" tput cup $lin 20 ; echo -ne "\e[31m <******* \e[0m" fi else ses_root=$numses fi } # while true do ses_root=0 sesiones=`who | cut -c-9 | sort` # usuarios=`who | cut -c-9 | sort | uniq` # la siguiente tambien funciona ( sort -u = sort | uniq ) # NO funcionan juntas -c y -u (-u es unique, descarta lineas duplicadas # y -c muestra la cuenta, no las lineas) en el sort usuarios=`who | cut -c-9 | sort -u` clear ; lin=2 ; tput cup $lin 5 ; echo -ne "USUARIO Nº SESIONES" lin=`expr $lin + 1` tput cup $lin 5 ; echo -ne "------- --- " cont_usu=0 cont_ses=0 for elemento in $usuarios do meollo done #...... al final solo para root if [ $ses_root -gt 0 ] ; then lin=`expr $lin + 1` tput cup $lin 5 ; echo -ne "# root #" tput cup $lin 17 ; echo -ne "$ses_root#" fi #....................... echo -ne "\n__________________________________________________" echo -ne "\n_________ CONTADORES (no se incluye a root ) _____" echo -ne "\n" echo -ne "\n - total usuarios: $cont_usu" echo -ne "\n - total sesiones: $cont_ses" echo -ne "\n**************************************************\n\n" sleep 30s done ######## ./borra_papelera ============================================== clear fichero="j" until [ $fichero = "q" ] do ls papelera read -p "Nombre del fichero a eliminar -->" fichero if [ $fichero = "q" ] ; then continues if [ -f $fichero ] ; then read -p "¿ BORRAR $fichero ?? ( s / n )" opcion if [ $opcion = "s" ] ; then rm papelera/$fichero fi else read -n 1 -p "$fichero NO EXISTE. Pulsa una tecla para continuar..." fi done ######## ./mes_en_letra ============================================== #........ convierte numero de mes en letra clear tablames=( [0]="mesCERO" [1]="Enero" [2]="Febrero" [3]="Marzo" [4]="Abril" [5]="Mayo" [6]="Junio" [7]="Julio" [8]="Agosto" [9]="Septiembre" [10]="Octubre" [11]="Noviembre" [12]="Diciembre" ) # tablames[0]="CERO" ; tablames[1]="Enero" ; tablames[2]="Febrero" # tablames[3]="Marzo" ; tablames[4]="Abril" ; tablames[5]="Mayo" # tablames[6]="Junio" ; tablames[7]="Julio" ; tablames[8]="Agosto" # tablames[9]="Septiembre" ; tablames[10]="Octubre" # tablames[11]="Noviembre" ; tablames[12]="Diciembre" echo -ne "..... DIA :" ; read dia echo -ne "..... MES :" ; read mes echo -ne "..... ANO :" ; read ano echo -ne "\n\n---La fecha tecleada es: DIA $dia de ${tablames[$mes]} de $ano\n" ######## ./cuenta_usu ============================================== num=`who | sort -c` clear ; echo -ne "\n\n\n\n\n" echo -ne "....... El número de usuarios en el sistema es de $num." read nada ######## ./longitud_y_color ============================================== # numcolor=${1:-"44"} while true do clear echo -ne "\n\n\n--------- cadena:" ; read cadena if [ "${#cadena}" -gt 7 ] ; then echo -ne " cadena mayor de 7" ; read nada fi echo -e " CADENA:--->\e["$numcolor"m$cadena\e[0m<---" echo -ne " LONGITUD:--->\e["$numcolor"m${#cadena}\e[0m<--- [enter]" ; read nada done ######## ./monta_pclinux ============================================== echo -ne "\n\n.....................................\n\n" echo " 1.- //pclinux/antonio en /pclinuxantonio (usuario antonio)" echo -e " 2.- //pclinux/servlin en /servlin (usuario antonio2)\n" echo -n " Opción: " ; read opcion case $opcion in 1 ) echo -ne "contraseña para antonio:" ; read contra echo " mount -t smbfs -o username=antonio,password=$contra //pclinux/antonio /pclinuxantonio" read nada mount -t smbfs -o username=antonio,password=$contra //pclinux/antonio /pclinuxantonio contra="" ls /pclinuxantonio ;; 2 ) echo "mount -t smbfs -o username=antonio2,password=antonio2 //pclinux/servlin /servlin" read nada mount -t smbfs -o username=antonio2,password=antonio2 //pclinux/servlin /servlin ls /servlin ;; esac ######## ./ejer_if ============================================== # clear echo -n " teclea un numero:" ; read numero if [ $numero -gt 25 ] then echo ".....mayor de 25" else if [ $numero -eq 25 ] then echo ".....igual a 25" else if [ $numero -lt 25 ] then echo ".....menor de 25" fi fi fi ######## ./cuenta_fich ============================================== cuenta=`ls | wc -l` echo "estoy en `pwd` y hay $cuenta ficheros" ######## ./borra_por_nom_tam ============================================== clear echo -ne "Borrar ficheros que empiecen por (\$nombre*) :" ; read nombre echo -ne "\n\n Tamaño '([+/-]tamaño[ck...](\$tamano)' :" ; read tamano echo -ne "\n\n" find $ruta -name "$nombre*" -size $tamano -ok rm -i {} \; ######## ./imp_fich_con_cab_a_fich ============================================== #23456789012345678901234567890123456789012345678901234567890123456789012345 # 1 2 3 4 5 6 7 linea="----------------------------------------------------------------------" cabecera=" " echo " " > paralp while [ ! "$cabecera" = "q" ] do clear ; tput cup 5 5 until [ "${#linea}" -lt 70 ] do echo -ne "Cabecera:" ; read linea done if [ ! "$cabecera" = "q" ] ; then until [ [ -f $fichero ] -o [ "$fichero" = "q" ] ] do ls -c echo -ne "Fichero:" ; read fichero done echo $linea >> paralp cat $fichero >> paralp fi done less -e paralp ######## ./pone_path ============================================== clear tput cup 5 5 echo -e "rutas actuales:--> $PATH" rutaorig=$PATH tput cup 8 5 echo -n 'Hacer-->export PATH="$PATH:/usr/aplis:/usr/aplis/bin" ?' read nada export PATH="$PATH:/usr/aplis:/usr/aplis/bin" clear tput cup 5 5 echo -e "\n.......... rutas actuales: \n-->$PATH" export PATH=$rutaorig tput cup 10 5 echo -ne "----- Restaurado 'PATH' a :\n-->$PATH" tput cup 15 5 echo -e "\n.......... rutas restauradas: \n---> $PATH" ######## ./ej_compara_num ============================================== # clear echo -n " teclea el PRIMER numero:" ; read primero echo -n " teclea el SEGUNDO numero:" ; read segundo if [ "$primero" -gt "$segundo" ] then echo " el primero ($primero) es MAYOR que el segundo ($segundo) " else if [ "$primero" -eq "$segundo" ] then echo " el primero ($primero) es IGUAL que el segundo ($segundo) " else if [ "$primero" -lt "$segundo" ] then echo " el primero ($primero) es MENOR que el segundo ($segundo) " fi fi fi ######## ./lista_cuent_usu ============================================== # cat /etc/passwd | cut -d: -f1 -s | sort | column -c 4 | less cat /etc/passwd | cut -d: -f1 -s | sort | column | less ######## ./busca_con_find_grep ============================================== find /home/nra/paraweb/ -type f -exec grep -Hn find {} \; ######## ./paralp ============================================== ######## ./long_de_variable ============================================== read -p "Teclea caracteres para la variable \"linea\" :" linea largo="${#linea}" read -p "La longitud de \"linea\" es de $largo caracteres" nada ######## ./manda_varios_a_uno ============================================== # # para usar con: # "find /home/pepito/scripts -type f -exec sh manda_varios a uno {} \;" # ------------------------ # recibe en "$1" desde el "{}" del find echo -e "\n######## $1 ==============================================\n\n" >> todos cat $1 >> todos