.bashrc에 어떤 유용한 것들을 추가 할 수 있습니까? [닫은] -alF | grep /$” #

당신이 없이는 살 수없고 내 인생을 훨씬 더 쉽게 만들 수있는 것이 있습니까? 여기 내가 사용하는 것들이 있습니다 ( ‘diskspace’& ‘folders’가 특히 편리합니다).

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



답변

아카이브를 추출하는 작은 스크립트가 있는데 인터넷 어딘가에 있습니다.

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
 }


답변

다른 컴퓨터를 많이 사용하기 때문에 .bashrc항상 현재 로그인 한 서버의 이름을 포함하도록 명령 프롬프트를 설정합니다. 이렇게하면 telnet / ssh의 세 수준 깊이에있을 때 잘못된 창에 잘못된 것을 입력하지 않습니다. 정말 rm -rf .잘못된 창으로 빨려 들어갑니다 ! (참고 : 집에서는 모든 컴퓨터에서 텔넷이 비활성화되어 있습니다. 직장에서 ssh는 항상 활성화되어 있지 않으며 많은 컴퓨터에 대한 루트 액세스 권한이 없습니다.)

내에 ~/bin/setprompt의해 실행되는 스크립트 가 .bashrc있습니다.

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

이 스크립트는 프롬프트를 호스트 이름으로 :)설정하고 마지막 명령이 성공 :(했는지 여부와 마지막 명령이 실패했는지 여부를 설정합니다.


답변

맨 페이지의 색상이 적 으면 맨 페이지를 좀 더 쉽게 읽을 수 있습니다.

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'

컬러 맨 페이지는 대부분을 설치하고 MANPAGER env 변수로 사용하여 얻을 수도 있습니다. 이 호출기를 man뿐만 아니라 PAGER 변수를 사용하려면 다음과 같이 사용하십시오.

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


답변

더 이상 cd ../../../ .. 최대 4 개

기본적으로 1만큼 올라가지 않는 경우 인수로 전달 된 수만큼 많은 수의 dirs를 증가시킵니다 (stackoverflow.com의 주석 링크에 있고 비트를 수정 함)

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
}


답변

나는 많은 다른 머신을 다루기 때문에 내가 가장 좋아하는 것 중 하나는 자주 SSH 해야하는 각 머신의 별칭입니다.

alias claudius="ssh dinomite@claudius"

또한 좋은 설정에 유용 .ssh/config하고 SSH 키 도 쉽게 기계 사이에 호핑 확인합니다.

내가 가장 좋아하는 별명 중 하나는 디렉토리를 옮기는 것입니다.

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

그리고 일반적으로 사용되는 ls(및 오타) 변형의 일부 :

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"

히스토리는 매우 유용 할 수 있지만 기본적으로 대부분의 배포판에서는 히스토리가 종료 될 때마다 히스토리가 사라지고 시작하기에는 많은 시간이 걸리지 않습니다. 나는 10,000 줄의 역사를 갖고 싶다.

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"

그렇게하면 내가 전에 무언가를했지만 세부 사항을 기억하지 못한다는 것을 알면 빨리 기억을 끌어내는 history | grep foo데 도움이됩니다.

각 디스크의 크기를 찾는 awk것처럼 출력의 특정 열을 얻기 위해 출력을 파이핑하는 경우가 종종 df -h | awk '{print $2}'있었습니다. 이것을 쉽게하기 위해 fawk.bashrc에 함수 를 만들었습니다 .

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

나는 이제 df -h|fawk 2타이핑을 잘 할 수있는 달리기 를 할 수있다 .

당신은 구분 기호를 (지정해야하는 경우 예를 들어 , awk -F:위해 /etc/passwd),이 기능은 명백히을 처리 할 수 없습니다. 이 요지 에서 약간 개선 된 버전 awk은 필드 번호 앞에 임의의 인수를 처리 할 수 ​​있습니다 (그러나 여전히 stdin의 입력이 필요합니다).


답변

GPG 암호화 bashrc

우리 모두 sudoers가 쉽게 읽을 수 없도록 bashrc에 넣고 싶은 것을 가지고 있다고 확신합니다. 이것에 대한 나의 해결책은 다음과 같습니다.

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

GPG 에이전트가 있으므로 몇 시간마다 개인 키의 비밀번호 만 입력하면됩니다. 사용자가 정의한 변수, 함수 및 별명을 RAM에서 추출 할 수 있기 때문에 여전히 시스템 사용자를 신뢰해야합니다. 그러나 나는 주로 내 노트북에 사용합니다. 도난 당하면 다음과 같은 것을 쉽게 보지 않기를 바랍니다.

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


답변

이것은 이것을위한 멋진 자료입니다 :

.bashrc를 보여주세요