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

目录

[1 Linux 目录树、绝对路径与相对路径](#1 Linux 目录树、绝对路径与相对路径)

[2 ls pwd cd 目录基础命令](#2 ls pwd cd 目录基础命令)

pwd:打印当前工作目录

ls:列出目录内容

[cd:切换目录 change directory](#cd:切换目录 change directory)

[3 touch mkdir rmdir rm 文件目录增删](#3 touch mkdir rmdir rm 文件目录增删)

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

[mkdir 创建目录](#mkdir 创建目录)

[rmdir 删除空目录](#rmdir 删除空目录)

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

[4 man 帮助手册](#4 man 帮助手册)

[5 cp mv 复制、移动与重命名](#5 cp mv 复制、移动与重命名)

[cp copy 复制](#cp copy 复制)

[mv move 移动 / 重命名](#mv move 移动 / 重命名)

[6 文件内容查看 cat more less head tail](#6 文件内容查看 cat more less head tail)

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

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

[less:更强大分页工具,推荐优先用 less](#less:更强大分页工具,推荐优先用 less)

head:看文件开头内容

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

[7 date cal 时间与日历](#7 date cal 时间与日历)

[date 时间](#date 时间)

[cal 日历](#cal 日历)

[8 find which whereis alias](#8 find which whereis alias)

[find 在目录树中搜索文件](#find 在目录树中搜索文件)

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

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

[alias 设置命令别名](#alias 设置命令别名)

[9 grep 文本过滤搜索](#9 grep 文本过滤搜索)

[10 压缩解压 zip /unzip 、tar](#10 压缩解压 zip /unzip 、tar)

zip/unzip

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

[11 bc 、uname](#11 bc 、uname)

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

uname:查看系统内核信息

[12 终端高频快捷键](#12 终端高频快捷键)

[13 本篇小结](#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,无参数,输出当前所在位置的绝对路径。

cpp 复制代码
[whb@bite-alicloud test]$ pwd
/home/whb/test

ls:列出目录内容

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

表格

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

示例:

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

cd:切换目录 change directory

语法:cd 路径

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

3 touch mkdir rmdir rm 文件目录增删

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

语法:touch [选项] 文件名

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

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

cpp 复制代码
touch test.txt
touch -a test.txt

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

mkdir 创建目录

语法:mkdir [选项] 目录名

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

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

rmdir 删除空目录

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

  • -p 删除空目录之后,如果父目录也变空,一并向上删除。
cpp 复制代码
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 行

cpp 复制代码
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 查看包内文件列表

  • -z gzip 压缩格式 .tar.gz

  • -j bzip2 压缩 .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:查看系统内核信息

cpp 复制代码
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终止程序。
相关推荐
Omics Pro1 小时前
00后大3休学创业!AI虚拟细胞
大数据·数据库·人工智能·算法·机器学习·自然语言处理
(Charon)1 小时前
【C++面试】手写智能指针(一):从unique_ptr理解独占所有权与移动语义
开发语言·c++
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-Nginx常用命令与环境变量配置
java·网络·nginx
sp42a1 小时前
Java 加解密组件再设计
java
李游Leo1 小时前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 输入帧内参与位姿的版本一致性门禁【鸿蒙心迹】
c++·3d·harmonyos
FYKJ_20101 小时前
springboot家政服务平台66766-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·spark·课程设计
caoerzhong1 小时前
开源 WMS 合规交付实务:JeeWMS 仓库管理系统在 GPL-3.0 下的源码台账与交付清单
java·开源
梦想画家1 小时前
SQLMesh 模型类型详解(一):EMBEDDED——不建表的共享逻辑
数据库·数据挖掘·sqlmesh
ao-weilai1 小时前
MySQL数据库:数据类型
android·数据库·mysql