1. 基本命令

Shell 操作是 Linux 开发的基础。掌握文件操作、管道、重定向、文本处理(grep/sed/awk)等。

2. 编辑器 — Vim / Emacs

Linux 下两大经典编辑器。至少精通一个,推荐 Vim(服务器环境几乎一定有)。

3. 构建工具 — Make / CMake

  • Make:经典的构建自动化工具,通过 Makefile 定义编译规则
  • CMake:跨平台构建系统,自动生成 Makefile 或 VS 项目文件,现代项目首选

4. 调试器 — GDB

命令行调试器,支持断点、单步、变量查看、内存检查。核心命令:

gdb ./program
(gdb) break main
(gdb) run
(gdb) next
(gdb) print variable
(gdb) backtrace

5. 版本控制 — Git

现代开发必备。SVN 和 CVS 已逐渐被 Git 取代。

git init / git clone
git add / git commit / git push
git branch / git merge

6. 代码导航 — ctags / cscope

在大型代码库中快速定位函数定义、调用关系。

ctags -R .              # 生成标签文件
cscope -Rbkq            # 建立索引

配合 Vim 使用,跳转代码效率极高。

7. 进程间通信(IPC)

Linux 提供多种 IPC 机制:管道、信号、消息队列、共享内存、信号量、Socket。理解这些是系统级编程的基础。

8. 多线程 — Pthreads / C++ Thread

  • POSIX Threads (pthreads):C 语言多线程标准接口
  • C++11 std::thread:现代 C++ 内置线程库
  • Boost.Thread:C++11 之前的多线程方案

9. 内存检测 — Valgrind

检测内存泄漏、越界访问、未初始化读取等问题:

valgrind --leak-check=full ./program

10. GUI 开发 — Qt

跨平台 C++ GUI 框架,支持信号/槽机制、网络、数据库、多线程等。Linux 下最成熟的 GUI 方案。


参考:OSChina