基础指令

目录相关

  1. pwd
    打印当前所在路径
  2. ls
    列出目录内容
ls        # 简单列表
ls -l     # 详细信息(权限、大小、时间)
ls -a     # 显示隐藏文件
ls -la    # 详细 + 隐藏
ls -lt    # 按时间排序
  1. cd
    切换目录
cd /home      # 绝对路径
cd ..         # 返回上一级
cd ../..      # 返回上两级
cd ~          # 回家目录
cd -          # 返回上一次所在目录

文件相关

  1. touch
    创建空文件 / 更新文件时间
touch test.txt
  1. mkdir
    创建文件夹
mkdir test
mkdir -p a/b/c  # 递归创建多级目录
  1. rm
    删除文件 / 文件夹(危险!)
rm file.txt     # 删除文件
rm -r dir       # 删除文件夹
rm -rf dir      # 强制删除(不询问)
  1. cp
    复制文件 / 目录
cp a.txt b.txt
cp -r dir1 dir2  # 复制目录必须加 -r
  1. mv
    移动 / 重命名
mv a.txt b.txt   # 改名
mv a.txt ../    # 移动到上一级

文件查看相关

  1. less
    分页查看大文件(最强)
less test.cpp

快捷键:
上下键 滚动
/字符串 向下搜索
?字符串 向上搜索
n 下一个匹配
N 上一个匹配
q 退出
常用选项:

less -N test.cpp   # 显示行号
less -i test.cpp   # 忽略大小写
  1. head
    看文件前 N 行
head test.cpp
head -n 20 test.cpp
  1. tail
    看文件末尾,实时监控日志
tail test.cpp
tail -n 20 test.cpp
tail -f test.log   # 实时刷新(监控日志必备!)
  1. find
    在系统里找文件
    find 从哪搜 -按什么搜 搜什么
    例子:
find ~ -name "*.hpp"
find / -name test.cpp
find . -type f      # 只找文件
find . -type d      # 只找目录
  1. grep
    在文件里搜索字符串(最强文本工具)
    grep “main” test.cpp
    常用:
grep -n "main" test.cpp   # 显示行号
grep -i "Main" test.cpp   # 忽略大小写
grep -v "main" test.cpp   # 反向匹配(不要main)

压缩相关

  1. zip / unzip
zip test.zip file1 file2
zip -r test.zip dir/
unzip test.zip
unzip test.zip -d /tmp  # 解压到指定目录
  1. tar(最常用)
    打包压缩
    tar -czvf test.tar.gz dir/
    c 创建
    z gzip 压缩
    v 显示过程
    f 指定文件
    解压
tar -xzvf test.tar.gz
tar -xzvf test.tar.gz -C /tmp  # 解压到指定目录
  1. ps
    查看进程
ps aux
ps aux | grep "nginx"
  1. kill
    杀死进程
kill pid
kill -9 pid  # 强制杀

网络相关

netstat
查看端口占用

netstat -natp
netstat -natp | grep 8080

IPC相关

  1. ipcs
    查看共享内存 / 消息队列 / 信号量
ipcs
ipcs -m  # 只看共享内存
ipcs -q  # 只看消息队列
  1. ipcrm
    删除 IPC 资源
ipcrm -m shmid
ipcrm -q qid

系统资源相关

top
实时监控系统(任务管理器)

top
  1. free
    看内存
free -h
  1. df
    看磁盘挂载
df -h
  1. du
    看文件 / 目录大小
du -sh .
du -sh *

权限相关

  1. su
    切换用户
su root
su user
  1. chmod
    修改文件权限
chmod 777 file
chmod 644 file
chmod +x file  # 加执行权限
  1. chgrp
    修改所属组
chgrp user file

常用工具

一、Vim 编辑器(Linux 必备文本编辑器)
核心:三大模式(所有操作必须牢记模式切换)
默认打开是普通模式;按 i 进插入模式;按 : 进底行模式;按 Esc 退回普通模式。

  1. 普通模式(默认模式)
    功能:控制光标移动、删除、复制、粘贴、撤销、剪切
    核心快捷键:
    分类 ---------------- 命令--------------- 作用
    光标移动--------- h j k l ------- 左、下、上、右(方向键替代)
    光标移动--------- gg----------- 跳转到文件第一行
    光标移动--------- G------- 跳转到文件最后一行
    删除 ----------------dd --------------删除整行
    删除 ---------------5dd- -----------删除5 行(数字 + dd)
    复制 -----------------yy -----------复制整行
    复制 ------------------3yy -----------复制3 行
    粘贴--------------- p --------------粘贴到光标下一行
    撤销--------------- u --------------撤销上一步操作
    反撤销 ------------------Ctrl + r------------ 恢复撤消
    剪切 --------------------dd + p------- 删除行 + 粘贴 = 剪切
  2. 插入模式
    功能:输入 / 编辑文字(像记事本一样打字)
    进入方式:
    i:在光标前插入
    a:在光标后插入
    o:在光标下一行新建行插入
  3. 底行模式
    功能:保存、退出、搜索、显示行号、文本替换
    核心命令:
    命令 作用
    :w 保存文件
    :q 退出文件
    :wq 保存并退出
    :q! 强制退出(不保存)
    :set nu 显示行号
    :set nonu 取消行号
    /字符串 向下搜索字符串
    ?字符串 向上搜索字符串
    n/N 下一个 / 上一个搜索结果
    二、gcc/g++(C/C++ 编译器)
    核心:程序编译的 4 个阶段
    源文件 .c → 预处理 → 编译 → 汇编 → 链接 → 可执行文件

阶段--------- 命令----- 作用-------- 输出文件
预处理 ------gcc -E ----宏替换、头文件展开、去注释、条件编译 .i文本
编译 --------gcc -S ----检查语法,翻译成汇编语言 .s汇编
汇编 --------gcc -c ----汇编转二进制机器码(不可独立运行) .o目标文件
链接 ----------gcc------ 合并库文件,生成可执行文件 可执行程序
完整示例:

# 1. 预处理
gcc -E hello.c -o hello.i
# 2. 编译
gcc -S hello.i -o hello.s
# 3. 汇编
gcc -c hello.s -o hello.o
# 4. 链接(生成最终程序)
gcc hello.o -o hello
  1. 两种链接方式
    ① 静态链接(-static)
    原理:把库文件代码直接拷贝到可执行程序中
    优点:运行不需要依赖库文件,移植方便
    缺点:程序体积大,浪费空间
    ② 动态链接(默认)
    原理:程序运行时动态加载库文件
    优点:程序体积小,多个程序共享库
    缺点:运行必须依赖库文件
  2. 静态库 / 动态库 生成与使用
    ① 静态库(.a)生成
# 1. 生成.o二进制文件
gcc -c add.c sub.c
# 2. 打包成静态库 libxxx.a
ar -rc libmymath.a add.o sub.o

② 动态库(.so)生成

# 1. 生成与位置无关的.o文件
gcc -fPIC -c add.c sub.c
# 2. 生成动态库 libxxx.so
gcc -shared -o libmymath.so add.o sub.o

③ 库的使用(核心参数)

gcc test.c -I ./include -L ./lib -l mymath -o test

-I:指定头文件路径
-L:指定库文件路径
-l:指定库名称(去掉lib和.a/.so)
3. gcc 核心选项速查

选项 ----作用
-E 仅预处理
-S 仅编译到汇编
-c 仅汇编到二进制
-o 指定输出文件名
-g 生成调试信息(gdb 调试必备)
-static 强制静态链接
-fPIC 生成动态库专用的位置无关码
-shared 生成动态库
三、gdb(Linux 程序调试工具)

  1. 调试前提
    必须用 gcc -g 编译,嵌入调试信息,否则无法调试!
gcc test.c -o test -g
  1. 启动 gdb
gdb ./test
  1. 核心调试命令

命令 简写 作用
run r 直接运行程序
start - 逐行调试(停在第一行)
next n 逐过程调试(不进入函数)
step s 逐语句调试(进入函数内部)
break 行号 b 设置断点
info break i b 查看所有断点
delete 断点号 d 删除断点
print 变量 p 查看变量值
bt - 查看函数调用栈
quit q 退出 gdb
四、make(自动化编译工具)

  1. 作用
    解决多文件编译繁琐的问题,通过 Makefile 脚本,一键编译整个项目。
  2. Makefile 核心规则
    makefile
    目标: 依赖文件
    命令(必须以Tab开头!)
  3. 极简示例
makefile
test: main.c add.c sub.c
	gcc main.c add.c sub.c -o test

clean:
	rm -f test
  1. 使用
make       # 一键编译
make clean # 清理可执行文件
  1. 原理
    只编译修改过的文件,大幅提升编译速度
    大型项目(nginx、mysql)必备工具
    五、git(分布式版本控制工具)
  2. 核心作用
    管理代码版本(回滚、备份、对比)
    多人协作开发(GitHub/Gitee)
  3. 三大区域
    工作区:写代码的地方
    暂存区:临时保存代码
    本地仓库:永久保存版本
    远程仓库:GitHub/Gitee 云端仓库
  4. 最常用命令
    表格
    命令 作用
git init	初始化本地仓库
git clone 仓库地址	克隆远程仓库到本地
git add 文件名	将文件添加到暂存区
git add .	添加所有文件到暂存区
git commit -m "备注"	提交到本地仓库
git push	推送到远程仓库
git pull	拉取远程代码到本地
git status	查看文件状态
git log	查看提交历史
git branch	查看 / 创建分支
git checkout 分支名	切换分支
  1. 标准工作流程
git clone https://xxx.git  # 克隆代码
git add .                  # 添加文件
git commit -m "完成功能"   # 提交本地
git push                   # 推送到远程
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐