Ras le bol de taper systemctl tout le temps ?

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.

Ras le bol de taper systemctl tout le temps ?

Messagede le Manchot Masqué » Dim 30 Juil 2017, 22:58

En 2013, M. Lennart Poettering, créateur de systemd chez Redhat, fut sollicité par plusieurs administrateurs informatiques pour "raccourcir" sa commande systemctl en sc (cf. https://bugzilla.redhat.com/show_bug.cgi?id=905612).
Il faut dire que dans le monde informatique, les administrateurs système/réseau aiment beaucoup les commandes courtes, faciles à retenir et à chaîner. C'est même une des forces du BASH face à ses concurrents de l'autre monde.
L'autre problème, soulevé par de nombreux administrateurs, c'est que la commande systemctl est beaucoup trop proche de sysctl, qui elle sert à modifier certains réglages réseaux dans /etc/sysctl.conf.

Mais l'histoire retiendra surtout ici que M. Poettering fit la sourde oreille, et balaya d'un geste l'outrecuidance de ces gueux qui voulaient renommer son précieux. Qu'importe : la simplicité et l'efficacité finissent toujours par l'emporter. Dans notre cas, la solution tient en trois lignes :

Code: Select All Code
. /usr/share/bash-completion/completions/systemctl
alias sc='systemctl'
complete -F _systemctl sc


à placer dans /root/.bash_aliases, et l'affaire est pliée : 7 caractères économisés plusieurs fois par jour et des risques d'erreurs en moins, c'est toujours bon à prendre. Il est juste dommage que M. Poettering ne l'ait pas compris.

L'astuce est de https://unix.stackexchange.com/questions/224227/how-do-you-make-an-alias-or-function-that-retains-tab-completion, et démontre une fois encore la souplesse du monde libre, mais aussi son efficacité.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
 
Messages: 316
Inscription: Lun 26 Mai 2008, 21:05
Localisation: Guebwiller
Distribution: Debian, Ubuntu
Niveau: Moitié plein !

Re: ras le bol de taper systemctl tout le temps ?

Messagede juice » Dim 30 Juil 2017, 23:38

Intéressant. J’aurais bien aimé faire la même chose avec la complétion sur les services / units
avec mes fonctions du type :

Code: Select All Code
# Systemd functions
if [ -n $(groups | grep -o wheel) ]; then
    if [ $(id -u) != 0 ]; then
        service="sudo systemctl"
    else
        service="systemctl"
    fi
    # Start systemd service
    sdstart() {
        $service start "$@"
    }

mais bon, pas sur que ça manche :roll:
juice
 
Messages: 183
Inscription: Dim 29 Juin 2008, 10:06
Localisation: Oberentzen
Distribution: Archlinux
Niveau: à bulle ?

Re: Ras le bol de taper systemctl tout le temps ?

Messagede juice » Dim 05 Nov 2017, 00:45

Je me suis finalement rallié à ta solution, mais plutôt avec un « sd » comme alias et le tout dans le fichier
/etc/bash.bash_aliases

Code: Select All Code
# Systemd aliases and functions
. /usr/share/bash-completion/completions/systemctl
alias sd='systemctl'
complete -F _systemctl sd

alias sdservices='systemctl list-units -t service'
alias sdfailed='systemctl --failed'
alias sdfiles='systemctl list-unit-files'
alias sderr='journalctl -p err'
juice
 
Messages: 183
Inscription: Dim 29 Juin 2008, 10:06
Localisation: Oberentzen
Distribution: Archlinux
Niveau: à bulle ?


Retourner vers Sur un logiciel

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités