news 2026/10/4 1:40:01

【C++进阶】02 Linux基本指令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C++进阶】02 Linux基本指令

目录

1 Linux 目录树、绝对路径与相对路径

2 ls pwd cd 目录基础命令

pwd:打印当前工作目录

ls:列出目录内容

cd:切换目录 change directory

3 touch mkdir rmdir rm 文件目录增删

touch:创建普通空文件;修改文件时间属性

mkdir 创建目录

rmdir 删除空目录

rm 删除文件 / 目录(高频,谨慎操作)

4 man 帮助手册

5 cp mv 复制、移动与重命名

cp copy 复制

mv move 移动 / 重命名

6 文件内容查看 cat more less head tail

cat:一次性全部输出文件内容

more:分页查看,只可以向下翻页

less:更强大分页工具,推荐优先用 less

head:看文件开头内容

tail:看文件末尾,日志查看神器

7 date cal 时间与日历

date 时间

cal 日历

8 find which whereis alias

find 在目录树中搜索文件

which:查找可执行命令所在路径

whereis:查找命令、手册、源文件位置

alias 设置命令别名

9 grep 文本过滤搜索

10 压缩解压 zip /unzip 、tar

zip/unzip

tar(最常用,打包 + 压缩)

11 bc 、uname

bc:终端计算器,支持浮点运算

uname:查看系统内核信息

12 终端高频快捷键

13 本篇小结


1 Linux 目录树、绝对路径与相对路径

Linux 所有文件从根目录/开始,整棵倒置的目录树。

  • 绝对路径:以/开头,从根开始完整路径。不受当前所在目录影响,配置文件大量使用绝对路径。示例:/home/whb/test
  • 相对路径:不以/开头,相对于当前工作目录定位文件。命令行操作最常用。

特殊目录符号:

  • .当前目录
  • ..上一级父目录
  • ~当前登录用户家目录:普通用户/home/用户名;root 用户/root
  • -上一次所在目录

系统核心目录简单介绍:

  • /bin:普通用户可执行基础命令
  • /sbin:超级管理员 root 特权命令
  • /home:普通用户家目录存放位置
  • /root:root 超级用户家目录
  • /etc:系统各类配置文件
  • /dev:硬件抽象设备文件
  • /var:经常变化的数据(日志、缓存)
  • /tmp:临时文件目录

2 ls pwd cd 目录基础命令

pwd:打印当前工作目录

语法:pwd,无参数,输出当前所在位置的绝对路径。

[whb@bite-alicloud test]$ pwd /home/whb/test

ls:列出目录内容

语法:ls [选项] [目录/文件名]常用选项:

表格

选项作用
-a显示全部,包含.开头隐藏文件
-l详细信息展示,权限、所有者、大小时间
-d把目录本身当作文件展示,不列出内部内容
-R递归遍历所有子目录
-t按修改时间排序
-F标记文件类型,/代表目录、*可执行程序
-nUID、GID 数字代替用户名

示例:

ls #列出当前目录 ls -a #看隐藏文件 ls -l #详细信息 ls -al #组合选项 ls -d /etc #只看etc目录本身信息

cd:切换目录 change directory

语法:cd 路径

cd .. #回到上级目录 cd ~ #回到自己家目录 cd /home/whb #绝对路径跳转 cd ../temp #相对路径跳转 cd - #回到上一次访问的目录 cd #不带参数,直接回家目录

3 touch mkdir rmdir rm 文件目录增删

touch:创建普通空文件;修改文件时间属性

语法:touch [选项] 文件名

  • -a修改访问时间 access
  • -m修改修改时间 modify

文件不存在就新建空文件;文件已经存在,更新文件时间戳。

touch test.txt touch -a test.txt

可以使用stat 文件名查看文件的三种时间:Access、Modify、Change。

mkdir 创建目录

语法:mkdir [选项] 目录名

  • -p递归创建多级目录,中间不存在目录自动生成
mkdir dir1 mkdir -p a/b/c/d #一次性创建多层嵌套目录

查看树状目录:tree,没有安装:yum install -y tree

rmdir 删除空目录

只能够删除完全空的目录,如果目录里面有文件,无法删除。语法:rmdir [-p] 目录

  • -p删除空目录之后,如果父目录也变空,一并向上删除。
rmdir dir1 rmdir -p a/b/c/d

rm 删除文件 / 目录(高频,谨慎操作)

语法:rm [选项] 文件/目录

表格

选项说明
-f强制删除,只读文件也直接删,不提示
-i删除前交互式询问确认
-r / -R递归,删除目录以及目录下全部内容

⚠高危警告:不要执行rm -rf /,会把系统根目录全部摧毁。

rm file.txt #删除普通文件 rm -r dir #删除非空目录 rm -ri dir #删除每一步询问 rm -rf dir #强制递归删除,无确认提示

4 man 帮助手册

Linux 命令参数繁多,不需要全部死记硬背,man 查看系统联机手册。 语法:man [章节号] 命令/函数

man 手册分为多个章节:

  1. 普通 shell 命令
  2. 系统调用(内核提供接口,open read 等系统 API)
  3. C/C++ 库函数(printf、strcpy)
  4. 设备特殊文件
  5. 配置文件格式说明
  6. 系统管理员 root 命令
man ls #查看ls命令,默认从第一章搜索 man 2 open #看系统调用open man 3 printf #看C库函数printf man man #查看man自己的帮助 q #退出man页面

5 cp mv 复制、移动与重命名

cp copy 复制

语法:cp [选项] 源 目标

表格

选项
-i覆盖前询问
-r / -R递归复制目录
-f强制覆盖不提示
cp a.txt b.txt #复制文件 cp -r dir1 dir2 #复制整个目录 cp *.txt dir2 #通配符,把所有txt复制到dir2 cp -i a.txt b.txt #覆盖提示

mv move 移动 / 重命名

语法:mv [选项] 源 目标

  1. 如果目标是已经存在目录:把源移动进这个目录;
  2. 如果目标不存在:执行重命名。 选项:
  • -i:覆盖前询问
  • -f:强制覆盖不提示
mv old.txt new.txt #重命名 mv file.txt ~/test/ #移动文件到目标目录 mv -i a.txt b.txt

6 文件内容查看 cat more less head tail

cat:一次性全部输出文件内容

语法:cat [选项] 文件

  • -n:所有行打印行号
  • -b:仅非空行打印行号
  • -s:多个连续空行压缩为一行

适合小文件;大文件刷屏,不要 cat 大日志。

cat test.txt cat -n test.txt

more:分页查看,只可以向下翻页

more test.txt #回车向下一行,空格向下一页,q退出

less:更强大分页工具,推荐优先用 less

可以向上、向下翻页,支持文本搜索。

less test.txt -N #显示行号 /字符串 #向下搜索 ?字符串 #向上搜索 q #退出

head:看文件开头内容

默认输出前 10 行

head test.txt head -5 test.txt #只看前5行

tail:看文件末尾,日志查看神器

默认输出末尾 10 行

tail test.txt tail -20 test.txt #末尾20行 tail -f test.log #实时追踪文件新增内容,看动态日志

组合小技巧,管道|,查看文件 180‑200 行:

head -200 test.txt | tail -20

7 date cal 时间与日历

date 时间

date #打印当前系统时间 date +%Y/%m/%d-%H:%M:%S #格式化输出 date +%s #输出Unix时间戳(1970‑01‑01 UTC到现在秒数) date -d @1700000000 #时间戳转回可读时间

修改系统时间需要 root 权限:date -s "2025‑01‑01 12:00:00"

cal 日历

cal #当月日历 cal 2025 #整年日历 cal -3 #展示上一个月、本月、下一个月

8 find which whereis alias

find 在目录树中搜索文件

find ~ -name "test.c" #在家目录下,按文件名搜索test.c

which:查找可执行命令所在路径

which ls which pwd

whereis:查找命令、手册、源文件位置

whereis ls

alias 设置命令别名

alias ll='ls -l' #设置别名ll代表ls -l alias #查看当前全部别名

9 grep 文本过滤搜索

在文件中搜索匹配字符串,输出匹配行。 语法:grep [选项] "关键词" 文件名

表格

选项功能
-i忽略大小写
-n输出匹配内容同时打印行号
-v反向匹配,输出不包含关键词的行
grep "hello" test.txt grep -i "hello" test.txt grep -vn "hello" test.txt

10 压缩解压 zip /unzip 、tar

zip/unzip

zip -r test.zip testdir/ #压缩目录,-r递归 unzip test.zip -d /tmp #解压到/tmp目录

tar(最常用,打包 + 压缩)

tar 参数:

  • -c创建压缩包
  • -x解包
  • -t查看包内文件列表
  • -zgzip 压缩格式.tar.gz
  • -jbzip2 压缩.tar.bz2
  • -v显示过程(调试用,生产环境建议去掉)
  • -f指定包文件名,f 参数必须放在参数最后!
  • -C指定解压目标目录
# 打包压缩 tar -zcvf test.tar.gz dir/ # 查看包内容 tar -ztvf test.tar.gz # 解压 tar -zxvf test.tar.gz -C /tmp

11 bc 、uname

bc:终端计算器,支持浮点运算

bc

uname:查看系统内核信息

uname -a #输出全部内核、硬件信息 uname -r #只打印内核版本号

12 终端高频快捷键

  1. Tab:命令、文件名自动补全,写命令必用。
  2. Ctrl + C:终止当前正在运行的程序。
  3. Ctrl + D:EOF 结束输入;退出终端,等价 exit。
  4. history:查看历史敲过的全部命令。

13 本篇小结

  1. Linux 文件系统以/根目录起点,分清绝对路径、相对路径,熟悉~ .. . -特殊路径符号。
  2. ls pwd cd是目录三大基础命令;touch mkdir rmdir rm管理文件目录,rm -rf谨慎使用。
  3. man帮助手册,不用死记全部命令参数。
  4. 文件复制cp、移动重命名mv。
  5. 文件查看:小文件 cat;大文件优先 less;head/tail 查看首尾,tail‑f 追踪日志。
  6. grep文本过滤;find文件搜索;tar是最主流打包压缩工具。
  7. 善用 Tab 补全,Ctrl+C终止程序。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 1:37:21

MATLAB实现泽尼克多项式:从原理到工程绘图

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:21

八邻域算法在智能车图像处理中的边界追踪与补线实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:21

深度学习中的卷积核(kernel)与滤波器(filter)本质辨析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:06

MR25H40CDF+STM32F756ZG:SPI接口实现MRAM掉电不丢数据

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:37:04

Linux UVC驱动开发实战:从uvc_driver.rar编译到v4l2出图全链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 1:35:43

软件工程案例教程习题的工程化实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华