Connexion

Besoin d'aide ? Une question ? Un avis ? Rejoignez nous sur notre salon IRC pour clavarder

Forum

Discussions Libres Fais péter ton bashrc ! Qu'avez vous dans votre bashrc ?

Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 2844

Le 31/05/2020 à 08h26
Bonjour,

Je suis admiratif des topic genre les conky, vous vous les partagez. Dans le même genre mais version ligne de commande, il y a le fameux .bashrc.

Le fichier ${HOME}/.bashrc contient des variables et des commandes en bash. C'est dans le répertoire de chaque utilisateur, donc ça le lui est propre, chacun peut le modifier.

Ça permet avant tout, d'automatiser quelques procédure, ajouter des fonctions, simplifier des commandes.
Par exemple, la commande ls sur Mageia n'est pas directement la commande ls !
À l'ouverture d'un terminal, plusieurs fichier seront "sourcé" et pris en compte, commançant par ${HOME}/.bashrc qui par défaut source /etc/bashrc qui source /etc/profile.d/60alias.sh
Dans ce dernier fichier, ls est redéfini en 'ls -F --color=auto'
Et la commande ll n'existe pas. C'est un raccourci vers ls (déjà modifié) -l soit ls -F --color=auto -l

Il est possible donc de s'ajouter des commandes dans le terminal pour "aller plus vite".

Voici quelques fonctions que j'ai ajouté :

Affiche le pourcentage de batterie restant :
Code BASH :
function BATTERY { for i in $(ls /sys/class/power_supply/B*/capacity); do SUM="$((${SUM}+$(cat ${i})))"; NB=$((${NB}+1)); done; echo "$((${SUM}/${NB}))"; }


Localiser une adresse IP
Code BASH :
function IPLOC() { curl https://iplocate.io/api/lookup/${1} 2>/dev/null | jq '.'; }


Résoudre un nom d'hote
Code BASH :
function DNSRES() { curl -s -H "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=${1}" | jq ".Answer" ; }


Encoder et décoder une chaine de caractère avec comme clef le contenu de la variable KEYPASS
Code BASH :
KEYPASS=UnMotDePasse
function ENCODE() { echo "${*}" | openssl enc -aes-192-cbc -pass pass:${KEYPASS} | basenc --base64 -w 0 ; echo '' ; }
function DECODE() { echo "${*}" | basenc -d --base64 | openssl enc -aes-192-cbc -d -pass pass:${KEYPASS} ; }

Code BASH :
KEYPASS=UnMotDePasse
function DECODE() { if [ 0 -ne ${#} ]; then echo "${*}" |  openssl enc -a -aes-192-cbc -d -k "${KEYPASS}" ; else openssl enc -a -aes-192-cbc -d -k "${KEYPASS}" </dev/stdin ; fi ; }
function ENCODE() { if [ 0 -ne ${#} ]; then echo "${*}" | openssl enc -a -aes-192-cbc -k "${KEYPASS}" ; else openssl enc -a -aes-192-cbc -k "${KEYPASS}" </dev/stdin ; fi ; }


Pour faire un paquet RPM
Code BASH :
function BUILD () 
{ 
    SPEC_F=${1} ;
    SPEC_N=$(basename ${SPEC_F}); 
    LOGNAME="${HOME}/rpmbuild/LOGS/log-$(date "+%Y-%m-%d-%H-%M")-${SPEC_N}.txt";
    STATUS_F="${HOME}/rpmbuild/STATUS.md";
    START_T=$(date "+%H:%M:%S");
    touch ${STATUS_F};
    touch ${LOGNAME};
    rpmbuild -ba ${1} --undefine=_disable_source_fetch 2>&1 | tee ${LOGNAME};
    RET=${?};
    RETt=$(tail -n1 ${LOGNAME} | sed -e 's/^.*exit //');
    if [ "0" = "${RETt}" ] ; then
        RET=0;
    else
        RET=1;
    fi
    END_T=$(date "+%H:%M:%S");
    echo -e "Build starts at ${START_T} and ends at ${END_T}\nExit code ${RET}\n\a" | tee -a ${LOGNAME};
    if [ 0 -ne ${RET} ] ; then
        if [ 0 -eq $(grep -c "${SPEC_N}" ${STATUS_F} ) ] ; then #Is not in STATUS yet
            echo -e "FAILS\t${SPEC_N}" >> ${STATUS_F};
        else
            sed -i -e "s/^.*${SPEC_N}.*\$/FAILS\t${SPEC_N}/" ${STATUS_F};
        fi
        cp ${LOGNAME} ${HOME}/rpmbuild/LOGS-KO/
    else
        if [ 0 -eq $(grep -c "${SPEC_N}" ${STATUS_F} ) ] ; then #Is not in STATUS yet
            echo -e "pass\t${SPEC_N}" >> ${STATUS_F};
        else
            sed -i -e "s/^.*${SPEC_N}.*\$/pass\t${SPEC_N}/" ${STATUS_F};
        fi
        cp ${LOGNAME} ${HOME}/rpmbuild/LOGS-OK/
    fi
    return ${RET};
}


Pour vérifier qu'une adresse email n'a pas eu son mot de passe fuité (ma dernière, je viens de la faire ce matin :) )
Code BASH :
function CHK_MAIL() {
    MAIL2CHK=$(echo ${1} | sed -e 's/@/%40/') ;
    RHTTPCODE=$(curl -sI "https://haveibeenpwned.com/unifiedsearch/${MAIL2CHK}" -H 'User-Agent: Mozilla/5.0' -H 'Accept-Language: fr,fr-FR;' | head -n1 | cut -d ' ' -f 2) ;
    if [ 404 -eq ${RHTTPCODE} ] ; then
        echo "No leak found." ;
    fi
    if [ 200 -eq ${RHTTPCODE} ] ; then
        curl "https://haveibeenpwned.com/unifiedsearch/${MAIL2CHK}" -H 'User-Agent: Mozilla/5.0' -H 'Accept-Language: fr,fr-FR;';
        echo "" ;
    fi
    return 0;
}


Ma définition de lll (mieux que ll, plus mieux que ls)
Code BASH :
alias lll='ls -lisah --color'


Son adresse ipv4 vu d'internet
Code BASH :
alias IPV4="curl -s ipinfo.io/ip"


Pareil pour l'ipv6
Code BASH :
alias IPV6="/usr/sbin/ip address show | grep inet6 | sed '/host/d' | sed -e 's/[[:space:]]*inet6 \([:[:alnum:]]*\)\/[[:digit:]]*.*/\1/g'" 


Un racourci vers termbin
Code BASH :
alias TB="nc termbin.com 9999"


Pour afficher le poids des fichiers dans les dossiers (et trouver quel dossier prends trop de place pour traquer le fichier)
Code BASH :
alias DU='du -Pax -d 1 | sort -hr'



Je pense à Guygoye qui commence à jouer avec une Rpi, donc une commande ssh à taper qui mériterai :
alias PiSSh="ssh user@ip.ip.ip.ip ..."
Juste un exemple ! ;)
   
Yuusha Membre non connecté

Rang

Avatar

Inscrit le : 04/07/2017 à 19h52

Localisation : Gironde

Messages: 792

Le 31/05/2020 à 11h03
Merci pour ce partage Jybz. Hum le miens n'a rien d'exceptionnel. Il ne contient que des lignes trouvées dans un vieux Linux Pratique (dont la moitié ne doit plus fonctionner :hehe: ), quelques alias de commandes et des modifications du $PATH pour différents logiciels compilés sur ma machine.
Je noterai quelques commandes pour l'historique des commandes :
Code BASH :
HISTCONTROL=ignoreboth
shopt -s histappend
HISTSIZE=1000

Auquel j'ajoute que je limite le défilement de mon terminal à 10000 lignes.
Mon prompt:
Code BASH :
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ "

Je l'aime bien mais ça fait des années que je n'y ai pas touché et il n'est pas optimisé pour une utilisation avec git.

Mes alias de ls :
Code BASH :
alias ll='ls -lF'
alias la='ls -A'
alias l='ls -CF'
alias lal='ls -alF'
alias lrt='ls -lrtF'
alias cls='clear; ls'
alias l.='ls -d .[^.]*'
alias lh='ls -lh'
alias lt='ls -lt'


Mes alias de grep :
Code BASH :
alias grepi='grep -i'
alias grepR='grep -R'
alias grepiR='grep -iR'


Quelques autres alias que j'utilise :
Code BASH :
alias h='history'
 
alias e='emacs'
alias mdiff='diff -EwBys'
alias ge='gedit'
alias tree='tree -CF'
 
alias reload='. ~/.bashrc'

Le reste des commandes est un mélange des modifications des différents $PATH et des liens vers des bashrc spécifiques à des logiciels. J'ai plus de customisations dans mon .emacs que dans mon bashrc.
   
gerard-ll Membre non connecté

Rang

Avatar

Inscrit le : 09/12/2011 à 11h31

Localisation : La Champagne

Messages: 379

Le 31/05/2020 à 11h17
Bonjour,

Ben le mien est tout petit! :

Code TEXT :
# .bashrc
 
# User specific aliases and functions
 
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 
alias free='free -h'
 
cowsay -f tux "Bonjour Gérard"


J'ai juste rajouté un truc qui fait beau avec cowsay. :)


Pal mal Mageia!

@+
Gérard
   
marc-andré Membre non connecté

Rang

Avatar

Inscrit le : 29/09/2015 à 00h10

Localisation : cavaillon

Messages: 811

Le 31/05/2020 à 11h26
bravo et merci pour tous ça.
une belle somme de temps passé pour faire tous ça!


ACER Aspire 64 bits 4 coeurs , 4 Go RAM , 1 To SATA, 1ssd 240 Gio ;
Mageia7.1 gnome fedora31 gnome, opensuse tumbleweed gnome
Liberté et sécurité sont les arguments classiques pour LINUX. En prime il y a aussi la dignité et la confiance ressentie depuis que je suis sous Mageia
   
teutates Membre non connecté

Rang

Avatar

Inscrit le : 24/09/2011 à 01h41

Localisation : Ariège

Messages: 1385

Le 31/05/2020 à 16h39
Bonjour,

Les miens, sans aucune prétention :

Météo
Code BASH :
alias meteo="curl wttr.in/Foix?lang=fr"
alias lune="curl wttr.in/Moon?lang=fr"


Extinction PC
Code :
     alias dodo="shutdown now"


Toco y se gausos !
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)
Site web    
Guygoye Membre non connecté

Rang

Avatar

Inscrit le : 25/10/2018 à 09h40

Localisation : 92

Messages: 606

Le 31/05/2020 à 19h28
Jybz :
Je pense à Guygoye qui commence à jouer avec une Rpi, donc une commande ssh à taper qui mériterai :
alias PiSSh="ssh user@ip.ip.ip.ip ..."
Juste un exemple ! ;)


Oui quand j'étais sur Fedora je m'en servais pour faire mes mises à jour automatiquement. Mais c'était plus simple il y avait la commande sudo.

Là ça ne marche pas mais je note pour le ssh ne n'y avais pas pensé.
   
Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 2844

Le 31/05/2020 à 21h15
teutates :
Les miens, sans aucune prétention :

Météo
Code BASH :
alias meteo="curl wttr.in/Foix?lang=fr"
alias lune="curl wttr.in/Moon?lang=fr"


J'adopte la météo !!! Génial !
   
funix Membre non connecté

Rang

Avatar

Inscrit le : 17/12/2012 à 21h03

Messages: 758

Le 31/05/2020 à 21h41
Génial les alias de météo, pour la phase de la lune il manque juste les hauteurs de marée, adopté !


FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
Blog - http://olivier.hoarau.org
Site web    
teutates Membre non connecté

Rang

Avatar

Inscrit le : 24/09/2011 à 01h41

Localisation : Ariège

Messages: 1385

Le 31/05/2020 à 22h29


Toco y se gausos !
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)
Site web    
joel Membre non connecté

Rang

Avatar

Inscrit le : 10/04/2011 à 18h32

Localisation : Belleville - Rhône

Messages: 478

Le 31/05/2020 à 22h34

alias bc="bc -l" # pour que bc me donne les chiffres après la virgule dans les résultats d'une division

alias pass="passwd-gen -p" # génèrer des mots de passe

# Pour ajouter un horodatage à la commande history
# http://www.it-connect.fr/ajouter-un-horodatage-a-la-commande-history/
export HISTTIMEFORMAT="%F %T : "


joel
   
Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 2844

Le 31/05/2020 à 22h42
joel :

# Pour ajouter un horodatage à la commande history
# http://www.it-connect.fr/ajouter-un-horodatage-a-la-commande-history/
export HISTTIMEFORMAT="%F %T : "

:amour:
J'adopte aussi !
   
Ami age Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 18/08/2012 à 10h28

Localisation : France

Messages: 4442

Le 01/06/2020 à 10h09
ça va chercher les infos où pour la météo ?


.
_____________________________________ :silence: :silence: :silence:
::d . .Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.
Site web    
teutates Membre non connecté

Rang

Avatar

Inscrit le : 24/09/2011 à 01h41

Localisation : Ariège

Messages: 1385

Le 01/06/2020 à 20h23
Ami age :
ça va chercher les infos où pour la météo ?

Si tu évoques mon alias météo, les infos sont repéchées sur http://wttr.in
Voir les explications sur https://par-teutates.blogspot.com/2017/09/la-meteo-dans-un-terminal.html


Toco y se gausos !
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)
Site web    
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 2531

Le 01/06/2020 à 21h26
Bonjour,

wttr.in est basé sur wego qui va chercher les informations sur les sites : darksky.net, openweathermap.org et Worldweatheronline ( après je ne sais pas quel est le fournisseur utilisé parmi les 3 listés sur wego ( peut être plus Worldweatheronline ?) .
   
OPS56 Membre non connecté

Rang

Avatar

Inscrit le : 18/11/2008 à 18h55

Localisation : Morbihan

Messages: 1570

Le 01/06/2020 à 22h13
Voici le mien, j'ai adopté la metéo et la lune :super:
Code BASH :
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
alias y2mp3="youtube-dl -t -x --audio-format mp3 --audio-quality 0"
alias y2mp4="youtube-dl -t -f mp4"
alias Fixe="ssh -XC ops@fixe"
alias Cps="ssh -XC cps@CPS"
alias Tps="ssh -XC tps@TPS"
alias meteo="curl wttr.in/Vannes?lang=fr"
alias lune="curl wttr.in/Moon?lang=fr"


J'ai juste youtube-dl pour récupérer des vidéos ou du son.
Plus les connexions SSH vers les machines de la maison.

@+


frenchmageiauser_a1258
Asus X71SL Intel P7350 - 4Go Ram - Nvidia 9300m GS (Tri boot Mageia 7- 64 bits - Plasma 5.15.4 / Open suse 15.1 Plasma 5.12.8 / Windows 8.1)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 7-64 bits - Plasma 5.15.4 / Mint 18.1 Cinamon / Open Suse 15.1 Plasma 5.12.8)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie