Page 1 sur 1

Ras le bol de taper systemctl tout le temps ?

Publié : dim. 30 juil. 2017, 22:58
par le Manchot Masqué
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 : Tout sélectionner

. /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/question ... completion, et démontre une fois encore la souplesse du monde libre, mais aussi son efficacité.

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

Publié : dim. 30 juil. 2017, 23:38
par juice
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 : Tout sélectionner

# 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:

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

Publié : dim. 05 nov. 2017, 00:45
par juice
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 : Tout sélectionner

# 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'

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

Publié : dim. 26 nov. 2017, 17:52
par juice
Pour que tout marche bien avec la commande sudo, il faut rajouter ceci dans le ~/.bashrc de chaque utilisateur
déclaré « administrateur » :

Code : Tout sélectionner

alias sudo='sudo '

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

Publié : dim. 04 févr. 2018, 11:21
par uniks
Bonjour et merci à tous pour cette astuce qui m'a sauvée la vie!
J'avoue que ça m'a énervé de taper tout le temps systemctl, j'ai cherché d'autres moyens mais votre astuce a bien marché!
tronconneuse thermique thermique