Question Quelles choses utiles peut-on ajouter à son .bashrc? [fermé]


Y a-t-il quelque chose que vous ne pouvez pas vivre sans et qui facilitera tellement ma vie? Voici quelques-uns que j'utilise ('' espace disque '' et 'les dossiers' sont particulièrement pratiques).

# some more ls aliases
alias ll='ls -alh'
alias la='ls -A'
alias l='ls -CFlh'
alias woo='fortune'
alias lsd="ls -alF | grep /$"

# This is GOLD for finding out what is taking so much space on your drives!
alias diskspace="du -S | sort -n -r |more"

# Command line mplayer movie watching for the win.
alias mp="mplayer -fs"

# Show me the size (sorted) of only the folders in this directory
alias folders="find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn"

# This will keep you sane when you're about to smash the keyboard again.
alias frak="fortune"

# This is where you put your hand rolled scripts (remember to chmod them)
PATH="$HOME/bin:$PATH"

142


origine


Cela devrait être un wiki de la communauté - Toro
Devenu wiki de la communauté. Prendre plaisir. - Gareth
canalisé à plus? Je parie que vous seriez plus heureux avec moins ou moins -F - derobert
Sauf qu'il y a ce "tri" avant le plus, puisque le tri nécessite une entrée complète, le moins -F vous permettrait simplement de voir le tri plus rapidement, et je parie que c'est assez rapide. - GreenKiwi
Juste au cas où quelqu'un serait intéressé, il existe un service qui vous permet de naviguer, de créer une liste et de rechercher vos alias: alias.sh - Sam152


Réponses:


J'ai un petit script qui extrait des archives, je l'ai trouvé quelque part sur le net:

extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xvjf $1    ;;
           *.tar.gz)    tar xvzf $1    ;;
           *.bz2)       bunzip2 $1     ;;
           *.rar)       unrar x $1       ;;
           *.gz)        gunzip $1      ;;
           *.tar)       tar xvf $1     ;;
           *.tbz2)      tar xvjf $1    ;;
           *.tgz)       tar xvzf $1    ;;
           *.zip)       unzip $1       ;;
           *.Z)         uncompress $1  ;;
           *.7z)        7z x $1        ;;
           *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }

81



Agréable. Encore une fois cependant, il y a cet argument IDE / Vim concernant la connaissance des commandes en mémoire. Un peu de script fantastique cependant. Vraiment aller dans le .bashrc Cheers! - Gareth
Il existe une commande Linux simple et agréable appelée "unp", le Unpacker qui fait cela et plus encore. - Sander Marechal
La commande a une fonctionnalité manquante. Il ne peut pas ouvrir le paquet 7z à boost.org/doc/libs/1_39_0/more/getting_started/… correctement. Savez-vous comment résoudre le problème? - Léo Léopold Hertz 준영
Les nouvelles versions de tar détectent automatiquement le type d'archive et peuvent donc extraire tous les formats pris en charge en utilisant simplement «tar xvf». - Prof. Moriarty
@Sander Dtrx n'est pas mauvais à cela non plus. Il s'assure que l'archive extrait dans son propre sous-répertoire. - Tobu


Depuis que j’utilise autant de machines différentes, mon .bashrc définit toujours l'invite de commande pour inclure, entre autres choses, le nom du serveur auquel je suis actuellement connecté. De cette façon, quand je suis à trois niveaux dans telnet / ssh, je ne tape pas la mauvaise chose dans la mauvaise fenêtre. C'est vraiment nul rm -rf . dans la mauvaise fenêtre! (Remarque: à la maison, telnet est désactivé sur toutes les machines. Au travail, ssh n'est pas toujours activé et je n'ai pas d'accès root à de très nombreuses machines.)

J'ai un script ~/bin/setprompt qui est exécuté par mon .bashrc, qui contient:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

# Throw it all together 
PS1="${RESET}${YELLOW}\h${NORMAL} \`${SELECT}\` ${YELLOW}>${NORMAL} "

Ce script définit l'invite sur le nom d'hôte suivi de :) si la dernière commande a réussi et :( si la dernière commande a échoué.


39



Le $? check est une bonne idée, je l’aime bien. - derobert
Je montre aussi le statut dans mon invite, mais je garde la valeur numérique et le colore en rouge s'il est différent de zéro, sinon en vert. - pgs
Intéressant.... - imapollo


La couleur des pages de manuel en moins facilite la lecture des pages de manuel:

export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

Des pages de manuel colorées peuvent également être obtenues en installant most et en l’utilisant comme variable env. MANPAGER. Si vous souhaitez utiliser ce téléavertisseur non seulement pour l'homme, utilisez la variable PAGER, comme ceci:

export PAGER="/usr/bin/most -s"

25





Plus de cd ../../../ .. mais en hausse de 4

Monte plusieurs dires en tant que nombre passé en argument, si aucun ne monte de 1 par défaut (trouvé dans un lien dans un commentaire dans stackoverflow.com et modifié un peu)

up(){
  local d=""
  limit=$1
  for ((i=1 ; i <= limit ; i++))
    do
      d=$d/..
    done
  d=$(echo $d | sed 's/^\///')
  if [ -z "$d" ]; then
    d=..
  fi
  cd $d
}

24



Cette version de up () semble inutilement complexe. J'utilise cette version: up () {cd $ (eval printf '../'%.0s {1 .. $ 1}) && pwd; }. Vous pouvez supprimer l'appel de 'pwd' si vous le souhaitez. - Matthew G
J'utilise quelque chose comme ceci: # Alias ​​de navigation dans les répertoires alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..' - Matt Kenefick


Je traite avec beaucoup de machines différentes, donc un de mes favoris est les alias pour chaque machine que je dois fréquemment SSH pour:

alias claudius="ssh dinomite@claudius"

Il est également utile de configurer un bon .ssh/config et clés ssh pour rendre le saut parmi les machines encore plus facile.

Un autre de mes alias préférés concerne les répertoires suivants:

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."

Et certains pour les variations couramment utilisées de ls (et fautes de frappe):

alias ll="ls -l"
alias lo="ls -o"
alias lh="ls -lh"
alias la="ls -la"
alias sl="ls"
alias l="ls"
alias s="ls"

L’historique peut être très utile, mais par défaut sur la plupart des distributions, votre historique est époustouflé par la sortie de chaque shell et il n’en reste pas beaucoup. J'aime avoir 10 000 lignes d'histoire:

export HISTFILESIZE=20000
export HISTSIZE=10000
shopt -s histappend
# Combine multiline commands into one in history
shopt -s cmdhist
# Ignore duplicates, ls without options and builtin commands
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:[bf]g:exit"

De cette façon, si je sais que j’ai déjà fait quelque chose mais que je ne me souviens pas des détails, un rapide history | grep foo aidera à rafraîchir ma mémoire.

Je me suis souvent retrouvé en train de sortir awk afin d'obtenir une certaine colonne de la sortie, comme dans df -h | awk '{print $2}' pour trouver la taille de chacun de mes disques. Pour faciliter cela, j'ai créé une fonction fawk dans mon .bashrc:

function fawk {
    first="awk '{print "
    last="}'"
    cmd="${first}\$${1}${last}"
    eval $cmd
}

Je peux maintenant courir df -h|fawk 2 ce qui économise un peu de frappe.

Si vous devez spécifier un délimiteur (par exemple., awk -F: pour /etc/passwd), cette fonction ne peut évidemment pas gérer ça. La version légèrement révisée de cette essence peut gérer arbitraire awk arguments avant le numéro de champ (mais nécessite toujours une entrée de stdin).


19



J'utilise aussi les touches ssh alias et ssh ... ça rend tout facile - devin
+1 pour les astuces de contrôle de l'historique. - Rene Saarsoo
vous pouvez mettre les alias de nom d’hôte dans le fichier .ssh / config dans le même sens. Dans ce cas, ajoutez une entrée 'Host cloudius' avec 'username dinomite' - Sirex


Bashrc crypté par GPG

Je suis sûr que nous avons tous des choses que nous aimerions mettre dans nos bases et que nous ne voulons pas que les sudoers puissent les lire facilement. Ma solution à ceci est:

if [ -f ~/.bash_private.gpg ]; then
   eval "$(gpg --decrypt ~/.bash_private.gpg 2>/dev/null)"
fi

J'ai un agent GPG qui le rend, donc je n'ai qu'à entrer le mot de passe de ma clé privée toutes les quelques heures. Vous devez toujours faire confiance aux utilisateurs du système, car vos variables, fonctions et alias que vous définissez peuvent être extraits de la RAM. Cependant, je l'utilise principalement pour mon ordinateur portable. En cas de vol, je ne veux pas que quelqu'un voie facilement des choses comme:

alias MYsql='mysql -uadmin -psecret'
wglatest(){ wget -O https://admin:secret@server.com/latest; }

15



Cryptez-vous également votre historique dans ce cas? Pourquoi ne pas chiffrer votre $ home - Rqomey
@Rqomey, le fait est que je n'ai pas à chiffrer mon historique car mes mots de passe n'apparaissent pas dans mon .bash_history car ils sont masqués par des alias ou des fonctions. Vous y voyez des choses comme MYsql < garbagecollect.sql au lieu de mysql -uadmin -psecret < garbagecollect.sql - Bruno Bronosky


c'est une ressource géniale pour cela:

montre nous ton .bashrc


12