142 votos

¿Qué cosas útiles de las que se puede añadir a uno .bashrc?

¿Hay algo que usted no puede vivir sin el y hacer mi vida mucho más fácil? Aquí están algunas de las que yo uso ('espacio en disco' & 'carpetas' son particularmente útiles).

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

24voto

Paul de Vrieze Puntos 111

No más cd ../../../.. pero hasta 4

Sube muchos dirs como el número pasado como argumento, si no llega a un 1 por defecto (que se encuentra en un enlace en un comentario en stackoverflow.com y un poco modificada)

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
}

19voto

81bronco Puntos 7071

Yo lidiar con un montón de diferentes máquinas para uno de mis favoritos es el alias para cada máquina que necesito con frecuencia SSH:

alias claudius="ssh dinomite@claudius"

También es útil para la instalación de un buen .ssh/config y claves ssh para hacer el salto entre las máquinas aún más fácil.

Otro de mis favoritos alias para el traslado de seguridad de directorios:

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

Y algunos de los que comúnmente se utilizan las variaciones de ls (y errores):

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"

La historia puede ser muy útil, pero por defecto en la mayoría de las distribuciones de su historia es impresionado por cada concha de salir, y no se mantiene mucho, para empezar. Me gusta tener de 10.000 líneas de la historia:

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 esa manera, si yo sé que he hecho algo antes, pero no puede recordar los detalles, una rápida history | grep foo va a refrescar mi memoria.

A menudo me encontré con la tubería de salida a través de la awk con el fin de obtener una determinada columna de la salida, como en df -h | awk '{print $2}' encontrar el tamaño de cada uno de mis discos. Para hacer esto más fácil, he creado una función fawk en mi .bashrc:

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

Ahora puedo ejecutar df -h|fawk 2 que ahorra un poco de buena escribiendo.

Si necesita especificar un delimitador (por ejemplo, awk -F: para /etc/passwd), esta función no puede manejar eso. El ligeramente revisado la versión en esta esencia puede manejar arbitraria awk argumentos antes de que el número de campo (pero todavía requiere la entrada de stdin).

13voto

Eddie Puntos 6779

Desde que tengo uso de máquinas muy diferentes, mi .bashrc siempre se pone el símbolo del sistema para incluir, entre otras cosas, el nombre del servidor que estoy actualmente se registran en. De esta manera, cuando estoy a tres niveles de profundidad en telnet/ssh, no me escriba algo equivocado en el lugar equivocado de la ventana. Realmente apesta rm -rf . en la ventana incorrecta! (Nota: En el hogar, telnet está deshabilitado en todos los equipos. En el trabajo, ssh no está siempre activado y no tengo acceso a la root de muchas de las máquinas.)

Tengo un script ~/bin/setprompt que es ejecutado por mi .bashrc, que contiene:

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} "

Esta secuencia de comandos se establece el sistema para el nombre de host seguido por :) si el último comando fue un éxito y :( si el último error de comando.

11voto

Dr.Dredel Puntos 684

Tengo un pequeño script que extrae los archivos, los he encontrado en algún lugar en la red:

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
 }

0voto

Paul Owens Puntos 1617

Color por las páginas de manual en menos hace que las páginas de manual, un poco más fácil de leer:

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'

Color de las páginas de manual, también se puede obtener mediante la instalación de más y su uso como MANPAGER env variable. Si desea utilizar este localizador no sólo para el hombre, el uso de la variable PAGER, como este:

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

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: