# ===== CodeLab: tool-terminal =====
# 以下代码片段按文章出现顺序拼接, 共 7 段

# ----- 片段 1 (bash) -----
# 看看当前用的是哪个 Shell
echo $SHELL
# 查看配置文件是否存在
ls -la ~/.bashrc
# 让修改立即生效(不用重开终端)
source ~/.bashrc

# ----- 片段 2 (bash) -----
# 临时别名(当前终端有效,关掉就没了)
alias ll='ls -la'
alias gs='git status'
alias gd='git diff'
alias up='cd .. && ls'

# 查看当前所有别名
alias

# ----- 片段 3 (bash) -----
# 查看最近的命令历史
history
# 只看和 git 有关的
history | grep git
# 重复执行上一条命令
!!
# 用管理员权限重跑上一条命令
sudo !!

# ----- 片段 4 (bash) -----
# 用户名@主机名:当前目录,换行后是 $ 提示符
export PS1='\u@\h:\w\n\$ '

# 加上 Git 分支(如果当前目录是 Git 仓库)
export PS1='\u@\h:\w $(git branch 2>/dev/null | grep "^*" | tr -d "* ")\$ '

# ----- 片段 5 (bash) -----
# 在 ~/.bashrc 里加上这个函数
mkcd() {
  mkdir -p "$1" && cd "$1"
}

# 之后直接使用
mkcd my_new_project

# ----- 片段 6 (bash) -----
# 安装 tmux(Ubuntu/Debian)
sudo apt install tmux
# 新建一个名为 work 的会话
tmux new -s work
# 从会话里分离(程序继续在后台跑)
# 快捷键:先按 Ctrl+b,再按 d
# 重新连回会话
tmux attach -t work
# 列出所有会话
tmux ls

# ----- 片段 7 (bash) -----
# Ubuntu/Debian 安装 Zsh
sudo apt install zsh
# 安装 oh-my-zsh(会自动把默认 Shell 切到 zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 确认当前 Shell
echo $SHELL
