⚡ 명령줄 경험을 강화하세요

.bashrc 및 .bash_profile 조직



아무리 강조해도 지나치지 않은 것은 쉘 세션이 시작될 때 로드되는 dotfile/구성 파일을 분할하는 것이 얼마나 편리한지입니다. 셸에 대해 조금 알고 있다면 아마도 .bashrc.bash_profile 파일을 본 적이 있을 것입니다.
.bashrc는 새 비로그인 셸이 열릴 때마다 실행됩니다(비로그인 셸은 이미 서버에 로그인한 다음 새 셸을 연 경우와 같습니다). .bash_profile는 로그인 시 한 번 실행됩니다. 따라서 시스템에 ssh로 접속하거나 컴퓨터에 로그인할 때.

일반적으로 .bashrc에서 다음을 찾을 수 있으므로 모든 셸 구성이 .bash_profile에 있을 수 있고 새 셸이 열릴 때 모든 것이 로드됩니다.

[ -n "$PS1" ] && source ~/.bash_profile;


위의 작업을 수행하는 것이 좋지만 .bashrc 파일의 구성을 모듈식 청크로 분할하는 것이 더 낫다고 굳게 믿습니다. .bash_profile 상단 근처에 다음 블록을 추가하면 aliases , exports 및 만들고자 하는 다른 분리에 대한 구성을 분할할 수 있습니다.

# Load the shell dotfiles, and then some:
for file in ~/.{exports,aliases}; do
    [ -r "$file" ] && [ -f "$file" ] && source "$file";
done;
unset file;


그런 다음 위의 방법으로 .aliases.exports 파일을 생성하고 셸 시작 시 로드될 모든 구성으로 파일을 채울 수 있습니다.

.수출


exports 환경 설정을 시스템 및 시스템에서 실행되는 소프트웨어에 노출합니다. 특정 환경 변수를 변경하여 조정할 수 있는 가장 일반적으로 사용되는 도구에 사용할 수 있는 사용자 지정 수준에 놀랄 것입니다.

다음은 .exports 또는 .bash_profile 에서 설정할 수 있는 몇 가지 환상적인 옵션입니다.

Note: the following configuration can live in your .bash_profile as well if you didn't setup a separate .exports file.



# Increase Bash history size. Allow 32³ entries; the default is 500.
export HISTSIZE='32768';
export HISTFILESIZE="${HISTSIZE}";
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';

# Prefer AU English and use UTF-8. - universal way of setting language
export LANG='en_AU.UTF-8';
export LC_ALL='en_AU.UTF-8';


.inputrc



.inputrc 파일은 대화형 셸 프로그램(예: Bash 및 Python)에 영향을 주는 다양한 사용자 지정 옵션을 제공합니다. GNU Realine library을 활용하는 모든 라이브러리는 .inputrc 파일에 포함된 사용자 정의를 채택할 수 있습니다.

놀랍게도 이 기능의 대부분은 기본적으로 비활성화되어 있습니다! 다음은 내가 사용하는 몇 가지 옵션과 그 기능에 대한 설명입니다.

# When pressing Tab autocomplete, match regardless of case
set completion-ignore-case on

# Use the text that has already been typed as the prefix for searching through
# commands (i.e. more intelligent Up/Down behavior)
"\e[B": history-search-forward
"\e[A": history-search-backward

# List all matches in case multiple possible completions are possible
set show-all-if-ambiguous on


.별칭



별칭은 명령 집합을 다른 단어/명령으로 변환alias할 수 있도록 셸 환경을 사용자 정의할 수 있는 매우 과소평가된 또 다른 방법입니다.

다음은 별칭을 사용하여 쉘 사용 속도를 높이는 방법에 대한 몇 가지 좋은 예입니다.

Note: the following configuration can live in your .bash_profile as well if you didn't setup a separate .aliases file.



# Easier navigation: .., ..., ...., ....., ~ and -
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ~="cd ~" # `cd` is probably faster to type though
alias -- -="cd -"

# Reload the shell (i.e. invoke as a login shell)
alias reload="exec ${SHELL} -l"

# Print each PATH entry on a separate line
alias path='echo -e ${PATH//:/\\n}'

# Enable aliases to be sudo’ed
alias sudo='sudo '


당신이 적용할 수 있는 또 다른 다채로운 변화! 다음 구성을 추가하면 lsgrep의 출력 색상을 사용자 정의할 수 있습니다.

# Detect which `ls` flavor is in use
if ls --color > /dev/null 2>&1; then # GNU `ls`
    colorflag="--color"
    export LS_COLORS='no=00:fi=00:di=01;31:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
else # macOS `ls`
    colorflag="-G"
    export LSCOLORS='BxBxhxDxfxhxhxhxhxcxcx'
fi

# List all files colorized in long format
alias l="ls -lF ${colorflag}"

# List all files colorized in long format, excluding . and ..
alias la="ls -lAF ${colorflag}"

# List only directories
alias lsd="ls -lF ${colorflag} | grep --color=never '^d'"

# Always use color output for `ls`
alias ls="command ls ${colorflag}"

# Always enable colored `grep` output
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage.
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'


위의 구성은 아래에서 볼 수 있습니다.

폴더는 빨간색, 실행 권한이 있는 파일은 녹색, 표준 파일은 회색으로 표시됩니다.



요약



정말 잘 작동하는 다른 멋진 명령줄 해킹이 있습니까? 트위터에서 나에게 연락하여 알려주고 보여주세요.

좋은 웹페이지 즐겨찾기