GNU/Linux >> Tutoriels Linux >  >> Linux

Quelles commandes manquent dans votre fichier bashrc ?

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 fichiers dans ~/.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.


Linux
  1. 10 commandes de recherche pour améliorer votre recherche de fichiers sous Linux [Basics]

  2. A quoi servent les inodes ?

  3. Quels sont vos serveurs de noms

  4. Quel est le but du fichier .bashrc sous Linux

  5. A quoi sert le fichier .la de libtool ?

Lancez Flatpaks depuis votre terminal Linux

Qu'est-ce que ZFS ? Pourquoi les gens en sont-ils fous ?

Bashhub - Accédez à l'historique de votre terminal depuis n'importe où

Que sont les inodes sous Linux ?

Qu'est-ce qu'un fichier .bashrc sous Linux ?

Quel est votre fichier PHP.ini par défaut ?