cd - | 이전 디렉토리 |
cd ~ | 홈 디렉토리 |
.. | 상위 디렉토리 |
... | 두 단계 상위 |
take dirname | mkdir + cd |
d | 최근 디렉토리 목록 |
1-9 | d 목록에서 이동 |
Ctrl+A | 줄 시작으로 |
Ctrl+E | 줄 끝으로 |
Ctrl+U | 커서 앞 줄 삭제 |
Ctrl+K | 커서 뒤 줄 삭제 |
Ctrl+W | 커서 앞 단어 삭제 |
Ctrl+R | 명령 히스토리 검색 |
Ctrl+L | 화면 지우기 |
Tab | 자동 완성 |
Tab Tab | 모든 완성 목록 |
Ctrl+Z | 프로세스 일시정지 |
!! | 마지막 명령 |
!$ | 마지막 인자 |
history | 히스토리 표시 |
history -10 | 마지막 10개 명령 |
history | grep pattern | 히스토리 검색 |
!! | 마지막 명령 실행 |
!n | n번 명령 실행 |
!-n | n번 전 명령 실행 |
!string | string으로 시작하는 명령 실행 |
!?string | string 포함 명령 실행 |
^old^new | 마지막 명령에서 치환 |
fc | 에디터에서 마지막 명령 편집 |
# In .zshrc
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt SHARE_HISTORY # Share across sessions
setopt HIST_IGNORE_DUPS # Ignore duplicates
setopt HIST_IGNORE_SPACE # Ignore if starts with space
setopt HIST_REDUCE_BLANKS # Remove extra blanks
setopt HIST_VERIFY # Show before executing * # Any string
? # Any single char
[abc] # Any of a, b, c
[a-z] # Range
[^abc] # Not a, b, c **/* # Recursive
**/*.js # All .js files recursively
*.{js,ts} # .js or .ts files
*~*.bak # All except .bak
*(.) # Regular files only
*(/) # Directories only
*(@) # Symbolic links only ls *(.) # Files only
ls *(/) # Directories only
ls *(.m-7) # Modified in last week
ls *(.L+100) # Larger than 100 bytes
ls *(.om[1,10]) # 10 most recent files setopt EXTENDED_GLOB alias ll='ls -la'
alias ..='cd ..'
alias ...='cd ../..' alias -g G='| grep'
alias -g L='| less'
alias -g H='| head'
alias -g T='| tail'
alias -g NUL='> /dev/null 2>&1'
# Usage: ls G pattern alias -s txt=vim
alias -s py=python
alias -s json=code
alias -s md=code
# Usage: file.txt (opens in vim) alias # List all
alias name # Show specific
unalias name # Remove alias alias g='git'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'
alias gs='git status'
alias gd='git diff'
alias gco='git checkout' alias ~='cd ~'
alias -- -='cd -'
alias 1='cd -'
alias 2='cd -2' alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i' function greet() {
echo "Hello, $1!"
}
# Usage: greet World function mkcd() {
mkdir -p "$1" && cd "$1"
} function extract() {
case $1 in
*.tar.gz) tar xzf $1 ;;
*.tar.bz2) tar xjf $1 ;;
*.tar.xz) tar xJf $1 ;;
*.zip) unzip $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*) echo "Unknown format" ;;
esac
} function replace() {
find . -type f -name "$1" -exec \
sed -i "s/$2/$3/g" {} +
} omz update | Oh My Zsh 업데이트 |
omz reload | 설정 다시 로드 |
omz changelog | 변경 로그 표시 |
omz plugin list | 플러그인 목록 |
omz plugin info plugin | 플러그인 정보 |
omz theme list | 테마 목록 |
omz theme set theme | 테마 설정 |
# Path to oh-my-zsh
export ZSH="$HOME/.oh-my-zsh"
# Theme
ZSH_THEME="robbyrussell"
# Plugins
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
z
docker
kubectl
)
source $ZSH/oh-my-zsh.sh # Built-in
git # Git aliases and functions
z # Jump to directories
docker # Docker completions
kubectl # Kubectl completions
npm # npm completions
# External
zsh-autosuggestions
zsh-syntax-highlighting
zsh-completions setopt AUTO_CD # cd without typing cd
setopt CORRECT # Command correction
setopt CORRECT_ALL # Argument correction
setopt NO_CASE_GLOB # Case insensitive glob
setopt GLOB_DOTS # Include dotfiles
setopt EXTENDED_GLOB # Extended globbing
setopt NUMERIC_GLOB_SORT # Sort numerically
setopt AUTO_PUSHD # Auto push directories
setopt PUSHD_IGNORE_DUPS # No duplicate pushd autoload -Uz compinit && compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '(%b)'
PROMPT='%F{green}%n@%m%f:%F{blue}%~%f ${vcs_info_msg_0_}
%# ' # Add to PATH
export PATH="$HOME/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
# Environment variables
export EDITOR="vim"
export VISUAL="code"
export LANG="en_US.UTF-8" # Load order:
# 1. ~/.zshenv - Always
# 2. ~/.zprofile - Login shell
# 3. ~/.zshrc - Interactive shell
# 4. ~/.zlogin - Login shell
# 5. ~/.zlogout - Login shell logout