J'ai eu cette étrange idée un jour en lisant un article pour Enable Sysadmin. J'étais curieux de savoir quelles commandes les administrateurs système Linux utilisaient dans leurs fichiers bashrc. Le fichier bashrc est un endroit pour personnaliser votre environnement Linux et créer des alias qui peuvent vous faire gagner du temps sur la ligne de commande.
J'ai décidé de demander à nos Sudoers s'ils partageraient les alias qu'ils créaient et utilisaient tout le temps. Bien que je n'aie pas été surpris par les excellentes réponses, j'ai trouvé quelques éléments à prendre en compte pour mes raccourcis.
L'idée était que partager cela inspirerait les autres à améliorer leur savoir-faire bashrc. Jetez un œil à ce que notre groupe Sudoers a partagé et, s'il vous plaît, empruntez tout ce que vous voulez pour faciliter votre vie d'administrateur système.
[ Vous pourriez également aimer : Analyse de l'historique de Bash sous Linux ]
Jonathan Roemer
# Require confirmation before overwriting target files. This setting keeps me from deleting things I didn't expect to, etc
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Add color, formatting, etc to ls without re-typing a bunch of options every time
alias ll='ls -alhF'
alias ls="ls --color"
# So I don't need to remember the options to tar every time
alias untar='tar xzvf'
alias tarup='tar czvf'
# Changing the default editor, I'm sure a bunch of people have this so they don't get dropped into vi instead of vim, etc. A lot of distributions have system default overrides for these, but I don't like relying on that being around
alias vim='nvim'
alias vi='nvim'
Valentin Bajrami
Voici quelques fonctions de mon ~/.bashrc
fichier :
# Easy copy the content of a file without using cat / selecting it etc. It requires xclip to be installed
# Example: _cp /etc/dnsmasq.conf
_cp()
{
local file="$1"
local st=1
if [[ -f $file ]]; then
cat "$file" | xclip -selection clipboard
st=$?
else
printf '%s\n' "Make sure you are copying the content of a file" >&2
fi
return $st
}
# This is the function to paste the content. The content is now in your buffer.
# Example: _paste
_paste()
{
xclip -selection cliboard -o
}
# Generate a random password without installing any external tooling
genpw()
{
alphanum=( {a..z} {A..Z} {0..9} ); for((i=0;i<=${#alphanum[@]};i++)); do printf '%s' "${alphanum[@]:$((RANDOM%255)):1}"; done; echo
}
# See what command you are using the most (this parses the history command)
cm() {
history | awk ' { a[$4]++ } END { for ( i in a ) print a[i], i | "sort -rn | head -n10"}' | awk '$1 > max{ max=$1} { bar=""; i=s=10*$1/max;while(i-->0)bar=bar"#"; printf "%25s %15d %s %s", $2, $1,bar, "\n"; }'
}
Pierre Gervais
Pour m'arrêter la nuit, je tue toutes les sessions SSH, puis tue toutes les connexions VPN :
#!/bin/bash
/usr/bin/killall ssh
/usr/bin/nmcli connection down "Raleigh (RDU2)"
/usr/bin/nmcli connection down "Phoenix (PHX2)"
Valentin Rothberg
alias vim='nvim'
alias l='ls -CF --color=always''
alias cd='cd -P' # follow symlinks
alias gits='git status'
alias gitu='git remote update'
alias gitum='git reset --hard upstream/master'
Fours Steve
alias nano='nano -wET 4'
alias ls='ls --color=auto'
PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\w \[\e[01;34m\]$\[\e[00m\] "
export EDITOR=nano
export AURDEST=/var/cache/pacman/pkg
PATH=$PATH:/home/stratus/.gem/ruby/2.7.0/bin
alias mp3youtube='youtube-dl -x --audio-format mp3'
alias grep='grep --color'
alias best-youtube='youtube-dl -r 1M --yes-playlist -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]''
alias mv='mv -vv'
shopt -s histappend
HISTCONTROL=ignoreboth
Jason Hibbets
Bien que mes alias bashrc ne soient pas aussi sophistiqués que ceux des technologues précédents, vous pouvez probablement dire que j'aime beaucoup les raccourcis :
# User specific aliases and functions
alias q='exit'
alias h='cd ~/'
alias c='clear'
alias m='man'
alias lsa='ls -al'
alias s='sudo su -'
Bonus :Organisation des fichiers bashrc et nettoyage des fichiers
Nous savons que de nombreux administrateurs système aiment créer des scripts pour rendre leur travail plus automatisé. Voici quelques conseils de nos Sudoers qui pourraient vous être utiles.
Chris Collins
Je ne sais pas qui je dois remercier pour cela, une femme géniale sur Twitter dont je ne me souviens plus du nom, mais cela a complètement changé l'organisation de mes alias bash et de mes commandes.
J'ai Ansible drop individual ~/.bashrc.d/
avec n'importe quel alias, commande ou raccourci que je veux, lié à une technologie particulière ou à un rôle Ansible, et peut tous les gérer séparément par hôte. C'est la meilleure astuce que j'ai jamais apprise pour les fichiers .bashrc.
Git stuff obtient un ~/.bashrc.d/git.bashrc
, Kubernetes va dans ~/.bashrc.d/kube.bashrc
.
if [ -d ${HOME}/.bashrc.d ]
then
for file in ~/.bashrc.d/*.bashrc
do
source "${file}"
done
fi
Pierre Gervais
Ce ne sont pas des alias bashrc, mais je les utilise tout le temps. J'ai écrit un petit script nommé clean
pour se débarrasser des lignes en excès dans les fichiers. Par exemple, voici nsswitch.conf
avec plein de commentaires et de lignes vides :
[pgervase@pgervase etc]$ head authselect/nsswitch.conf
# Generated by authselect on Sun Dec 6 22:12:26 2020
# Do not modify this file manually.
# If you want to make changes to nsswitch.conf please modify
# /etc/authselect/user-nsswitch.conf and run 'authselect apply-changes'.
#
# Note that your changes may not be applied as they may be
# overwritten by selected profile. Maps set in the authselect
# profile always take precedence and overwrites the same maps
# set in the user file. Only maps that are not set by the profile
[pgervase@pgervase etc]$ wc -l authselect/nsswitch.conf
80 authselect/nsswitch.conf
[pgervase@pgervase etc]$ clean authselect/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
automount: sss files
services: sss files
shadow: files sss
hosts: files dns myhostname
bootparams: files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
publickey: files
aliases: files
[pgervase@pgervase etc]$ cat `which clean`
#! /bin/bash
#
/bin/cat $1 | /bin/sed 's/^[ \t]*//' | /bin/grep -v -e "^#" -e "^;" -e "^[[:space:]]*$" -e "^[ \t]+"
[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]
Récapitulez
C'est tout. Avoir un environnement personnalisé et efficace rend votre expérience Linux encore meilleure. Le fichier bashrc est un excellent endroit pour implémenter ces personnalisations. J'espère que le partage de ces conseils vous incitera à mettre à jour votre fichier bashrc et vous évitera quelques frappes au clavier.