Salut,
quelques unes de mes fonctions les plus utiles :
Lister sauf :
function sl()s
{
# Cette fonction nécessite l'activation des motifs étendus
# c-Ã -d de mettre "shopt -s extglob" dans son bashrc
for i in "$@"
do
liste_excep="$liste_excep""$i""|"
done
liste_excep=$(echo "$liste_excep" | rev | cut -b 2- | rev)
liste_excep="!(""$liste_excep"")"
liste_excep=$(echo "$liste_excep" | sed "s/-/*/g")
ls -d $liste_excep
}
Permet de lister le contenu (comme ls) moins les arguments; s'utilise comme ça:
sls -aaa- toto- -log
Pour lister tous sauf les fichiers :
- contenant "aaa"
- ou commençant par "toto"
- ou finissant par "log"
En effet, le "-" sert de joker comme le fait le "*" dans un ls classique
Nota : nécessite d'avoir mis "shopt -s extglob" dans son .bashrc
Changer le titre du terminal :
function titre()
{
if [ "$#" = "0" ]
then
echo -e "\033]0;$(pwd) - Terminal\007"
else
if [ "$#" = 1 ]
then
if [ "$1" = "" ]
then
echo -e "\033]0;Terminal\007"
elif [ "$1" = "H" ]
then
echo -e "\033]0;$(date +%T) - Terminal\007"
else
echo -e "\033]0;$1 - Terminal\007"
fi
else
titre_tmp=""
for i in $(seq 1 $#)
do
titre_tmp="$titre_tmp $1"
shift
done
echo -e "\033]0;$titre_tmp - Terminal\007"
fi
fi
}
Permet de changer le titre du terminal (pratique quand on en a plusieurs d'ouvert et qu'on les consacre à une utilisation précise).
Si l'argument est une chaine de caractère, le titre du terminal sera "
chaine de caractère - Terminal".
Si l'argument est "", le titre du terminal sera réinitialisé à "Terminal".
S'il n'y a pas d'argument, le titre du terminal sera "
chemin du dossier courant - Terminal".
Afficher le chemin complet d'un fichier:
function chemin() # Affichier le chemin complet de l'argument
{
chemin="$(pwd)"
chemin="$chemin/$1"
echo "$chemin" | tr -d " "
}
Faire un petit bilan de l'espace sur la machine:
function esp_occ_serveur()
{
# Récupération nom serveur et matricule utilisateur
hote=`hostname`
utilisateur=`whoami`
# Test existence répertoire perso sur machine, si non, sortir
if [[ ! ( -d "/$hote/$utilisateur" ) ]]
then
return
fi
###---###---###---###---###---###---###---###
# Variable de quantification d'occupation #
###---###---###---###---###---###---###---###
lim_serveur=90 # seuil de remplissage serveur en % pour avertissement
lim_utilisateur=10 # seuil d'espace utilisateur en % pour avertissement
# Récupération des infos du serveur et de l'utilisateur
hote=`hostname`
utilisateur=`whoami`
esp_perso_occ=`du -h /"$hote"/"$utilisateur" | egrep "($utilisateur)$" | cut -f1`
esp_total=`df -h | grep /"$hote" | awk {'print $2'}`
esp_occ=`df -h | grep /"$hote" | awk {'print $3'}`
esp_libre=`df -h | grep /"$hote" | awk {'print $4'}`
pourc_occ=`df -h | grep /"$hote" | awk {'print $5'}`
pourc_occ_ss_signe=`echo "$pourc_occ" | rev | cut -b 2- | rev`
# valeur en ko pour le calcul du pourcentage perso
esp_total_ko=`df -k | grep /"$hote" | awk {'print $2'}`
esp_perso_occ_ko=`du -k /"$hote"/"$utilisateur" | egrep "($utilisateur)$" | cut -f1`
pourc_occ_perso=$((100*$esp_perso_occ_ko/$esp_total_ko))
# Affichage des infos
echo " -----> Connecté sur : \"$hote\" en tant que : $utilisateur."
echo " -----> Etat d'occupation de \"$hote\" :"
echo " --> Espace total de \"$hote\" : $esp_total."
echo " --> Espace occupé total sur \"$hote\" : $esp_occ."
echo " --> Espace libre sur \"$hote\" : $esp_libre."
echo -e " --> Pourcentage d'occupation de \"$hote\" : $pourc_occ."
echo -e " --> Espace perso sur \"$hote\" : $esp_perso_occ, soit "$pourc_occ_perso %"."
# Affichage d'un avertissement si serveur trop rempli et utilisateur trop gourmand
if [ "$pourc_occ_ss_signe" -gt "$lim_serveur" ] && [ "$pourc_occ_perso" -gt "$lim_utilisateur" ]
then
echo ""
echo "ATTENTION : le pourcentage d'occupation de \"$hote\" dépasse $lim_serveur %"
echo "et vous en occupez actuellement $pourc_occ_perso%."
echo ""
fi
}