당신이 없이는 살 수없고 내 인생을 훨씬 더 쉽게 만들 수있는 것이 있습니까? 여기 내가 사용하는 것들이 있습니다 ( ‘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; }