作为Linux环境下的开发者,掌握高效的工作流程能极大提升生产力。以下是一份全面的Linux编码生存指南:
zsh + oh-my-zsh:比bash更强大的shell
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
tmux:终端复用神器
sudo apt install tmux
# 常用命令:
# tmux new -s session_name # 新建会话
# Ctrl+b d # 分离会话
# tmux attach -t session_name # 重新连接
sudo apt install code # 或从官网下载.deb包
推荐扩展: - Remote - SSH (远程开发) - GitLens - Docker - Vim模拟 (VSCodeVim)
sudo apt install neovim
基础配置(~/.config/nvim/init.vim):
" 基本设置
set number
set tabstop=4
set shiftwidth=4
set expandtab
set smartindent
" 插件管理 (使用vim-plug)
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'airblade/vim-gitgutter'
Plug 'tpope/vim-fugitive'
call plug#end()
" 快捷键映射
nnoremap <C-n> :NERDTreeToggle<CR>
nnoremap <C-p> :Files<CR>
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.editor "nvim" # 使用你喜欢的编辑器
git config --global pull.rebase true # 推荐设置
# 创建新分支
git checkout -b feature-branch
# 交互式rebase整理提交
git rebase -i HEAD~3
# 查看更改
git diff --color-words
# 优雅地查看日志
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
# 安装Docker
sudo apt install docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # 将当前用户加入docker组
# 常用命令
docker build -t myapp . # 构建镜像
docker run -it --rm myapp # 运行容器
docker-compose up -d # 使用compose启动服务
# pyenv安装
curl https://pyenv.run | bash
# 常用命令
pyenv install 3.9.7 # 安装特定Python版本
pyenv global 3.9.7 # 设置全局版本
pyenv virtualenv 3.9.7 myenv # 创建虚拟环境
gcc -g program.c -o program # 编译时加入调试信息
gdb ./program # 启动调试
# 常用GDB命令
break main # 在main函数设置断点
run # 运行程序
next # 单步执行
print variable # 打印变量值
backtrace # 查看调用栈
perf:系统级性能分析
perf stat ./program # 基本统计
perf record ./program # 记录性能数据
perf report # 查看报告
Valgrind:内存调试和性能分析
valgrind --leak-check=yes ./program
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 17)
add_executable(myapp main.cpp src/utils.cpp)
# 查找并链接库
find_package(Boost REQUIRED COMPONENTS filesystem system)
target_link_libraries(myapp PRIVATE Boost::filesystem Boost::system)
CC = gcc
CFLAGS = -Wall -g
TARGET = myapp
SRCS = main.c utils.c
OBJS = $(SRCS:.c=.o)
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
bash
pandoc input.md -o output.pdf --template=eisvogel --listings
Host dev-server
HostName server.example.com
User devuser
Port 2222
IdentityFile ~/.ssh/dev_key
Compression yes
ServerAliveInterval 60
优化键盘工作流: - 学习vim基本操作(即使不使用vim) - 自定义快捷键(通过xmodmap或桌面环境设置) - 使用窗口管理快捷键(Alt+Tab等)
man <command>
bash
npm install -g tldr
tldr tar
记住,优雅的Linux开发环境是逐步构建的。从基础开始,根据需要逐步添加工具和配置,最终形成最适合你工作流的开发环境。