☰
Linux系统(02)——所有基本指令全解(零基础详解版)
2026/10/2 16:14:18 网站建设 项目流程

⭐️博主:此生决int-@CSDN博客

速胜派就是最大的投降派!!!

🔥热门专栏🔥

深入理解 C++ 系列|算法系列

快速复习系列|Linux系列

Gitee地址:财哥 | GitHub地址:财哥


文章目录

    • 上期回顾
  • Linux基本命令
    • 常用热键
    • 一切皆文件
    • Linux 理论知识:路径的认识
      • 与Windows的联系:
      • pwd 命令(Print Working Directory)
      • 1,ls 指令(list)
        • 1.1,直接ls
        • 2,ls -l
        • 3,ls -a
        • 4,ls -al
        • 4, `ls 目录名`
      • 2,cd 指令(Change Directory)
      • 3,touch:创建文件 / 更新时间
      • 4,mkdir(make directory):创建目录
      • 5,rmdir(remove Directory):删除空目录
      • 6,rm(remove):删除文件或目录
      • 7,man(manual):查看命令手册(命令帮助文档,命令百科全书)
      • 8,cp(copy):复制文件或目录
      • 9,mv(move):移动 (剪切)/ 重命名
        • `cp` 和 `mv` 对比
      • Linux补充知识2——文件分类
      • 10,echo:向终端输出内容
        • cat(concatenate):查看文件内容
        • >:输出重定向
        • >>:追加重定向
        • 输入重定向 `<`
        • 两个重定向总结
        • 管道 `|` 组合命令
      • 查看文件内容
        • 10,cat:查看小文件
          • `cat -n`:显示行号
        • `tac`:反向查看文件
        • 11,more:分页查看文件(大文件)
        • 12,less:增强版分页查看文件(大文件)
      • 代码示例:
        • 13,head:查看文件头部若干行(默认10)
        • 14,tail:查看文件尾部若干行(默认10)
          • `tail -f`:实时查看日志——非常重要
      • 15,grep(global regular expression print):文本过滤搜索
          • grep -i 忽略大小写查找
          • grep -n 显示行号查找
          • grep -r 当前目录递归查找
      • 15,date:显示/设置系统日期时间
          • 小知识——时间戳
          • 益智小故事——为什么电脑关机后,开机还能知道现在几点?
      • 16,cal(calendar):查看日历
      • 17,find:文件搜索查找
      • 18,which:查找可执行程序路径
      • 19,whereis:查找命令的二进制、源码、手册位置
          • 区别
      • 20,alias:设置命令别名
      • 22,top:实时查看系统进程资源
      • 23,zip/unzip:zip格式压缩和解压缩
      • 24,tar(tape archive):打包解压(重要)
          • tar的重要参数
      • 25,rzsz:串口传输文件工具
        • `rz`:从本地上传文件到 Linux
        • `sz`:从 Linux 下载到本地
        • `scp`(secure copy):安全复制
      • 26,bc(basic calculator):命令行计算器
      • 27,uname -r:查看内核版本信息
    • 下期预告
      • Linux权限
    • 结语

上期回顾

大家好,这里是此生弃int(财哥),欢迎来到我的博客。上一篇我们学习了解了Linux的历史演变,成功购买并部署了自己的云服务器,那么今天,我们就来学习一些基础的Linux命令吧!

Linux基本命令

在讲解命令之前,我们要先来了解一些基础知识

常用热键

[Tab]:自动补全——命令/路径自动补全。
[Ctrl] + C:终止当前前台程序
[Ctrl] + D:EOF / 退出当前 Shell
Ctrl + R:搜索历史命令
↑和↓:历史命令
history:查看历史命令

一切皆文件

Linux的最大的一个特点和理解——一切皆文件!

在 Linux 中,很多资源都可以通过“文件”的方式进行统一访问。

例如:

资源Linux中的体现
普通文件/home/test.txt
目录/home/
磁盘设备/dev/sda
键盘/dev/input/...等设备文件
终端/dev/pts/0等
鼠标/dev/input/...等设备文件
管道可以通过文件描述符进行读写
网络连接可以通过类似文件的文件描述符进行读写

包括但不限于你的屏幕,鼠标,键盘,磁盘等等
所以,如果可以找到对应的文件,比如找到屏幕文件,我们就可以向屏幕文件里面输入内容,那么就可以显示在屏幕上!(注意,不要读写磁盘文件哦,非常危险!)
Linux 为很多硬件设备和系统资源提供了类似文件的访问接口,程序可以通过统一的文件操作机制与这些资源进行交互

Linux 理论知识:路径的认识

  • Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
  • 普通文件 ——叶子节点
  • 目录 ——叶子(空目录),路上节点
  • 理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性

分类:

类型定义特点常见使用场景
绝对路径一般从/开始,不依赖当前目录即可定位文件的路径方式。不依赖当前所在目录,路径具有唯一性;用户所在目录发生变化时,路径通常不会失效。特定服务的配置文件中经常使用。
相对路径相对于当前用户所处目录,用于定位文件的路径方式。依赖当前所在目录,使用更加便捷。命令行操作中使用较多。

与Windows的联系:

我们日常在点击文件的时候可以看到:

pwd 命令(Print Working Directory)

语法:pwd

功能:显示用户当前所在的目录

常用选项:无

举例:

[root@VM-0-10-centos ~]# pwd/root#这就是当前目录

1,ls 指令(list)

语法:ls [选项] [目录或文件]

功能:
对于目录,该命令列出该目录下的所有子目录与文件。
对于文件,将列出文件名以及其他信息。

所有选项:

选项功能说明示例 / 补充
-a列出目录下的所有文件,包括以.开头的隐含文件。ls -a
-d将目录像文件一样显示,而不是显示其下的文件。ls -d 指定目录
-i输出文件的 i 节点(inode)的索引信息。ls -ai 指定文件
-k以 KB(千字节)的形式表示文件大小。ls -alk 指定文件
-l以长格式列出文件的详细信息。ls -l
-n用数字形式的 UID、GID 代替用户名和组名。介绍 UID、GID
-F在每个文件名后附加一个字符,用于说明文件类型。*:可执行普通文件;/:目录;@:符号链接;`:FIFO;=`:套接字
-r对目录中的文件进行反向排序。ls -lr
-t按文件的修改时间进行排序。ls -lt
-s在文件名之前输出文件所占用的磁盘块大小。可用于查找目录下较大的文件
-R递归列出所有子目录中的文件。ls -R
-1每行只输出一个文件名。ls -1

常用命令:ls、ls-a、ls-l、ls-al

1.1,直接ls
[root@localhost ~]# lsDesktop Documents Downloads test.txt

表示当前目录中有:Desktop、Documents、Downloads、test.txt这些文件。

2,ls -l

显示文件的详细的信息。
代码示例:

[root@VM-0-10-centos ~]# pwd/root[root@VM-0-10-centos ~]# lstest01[root@VM-0-10-centos ~]# ls -ltotal4drwxr-xr-x2root root4096Sep921:56 test01
3,ls -a

显示所有文件,包括隐藏文件。隐藏文件一般以 . 开头
示例:

[root@VM-0-10-centos ~]# ls -a..bash_history .bash_profile .cache .cshrc .pip .ssh test01...bash_logout .bashrc .config .npmrc .pydistutils.cfg .tcshrc
4,ls -al

两个结合,查看所有文件包括隐藏文件的详细信息
示例:

4,ls 目录名

可以直接查看指定目录:
示例:

lscaige

2,cd 指令(Change Directory)

例子
假设当前:

/home/user

里面有:

/home/user/code

那么可以:

cdcodecd.#.表示当前目录cd..#..表示上一级目录cd~#进入当前用户的家目录。cd#与上面一样,进入当前用户的家目录。cd-#返回上一次所在目录

举例:

root@iZbp1762zeqzauorez4cw0Z:~# pwd/root root@iZbp1762zeqzauorez4cw0Z:~# tree.├── caige │?? └── test01 ├── snap │?? ├── lxd[error opening dir]│?? └── tree │?? ├──54│?? ├── common │?? └── current ->54└── test0110directories,0files root@iZbp1762zeqzauorez4cw0Z:~# cd caigeroot@iZbp1762zeqzauorez4cw0Z:~/caige# pwd/root/caige#打开了caige目录

3,touch:创建文件 / 更新时间

最基本的用法:

touchtest.txt

两种情况,test.txt
1,如果不存在:创建一个空文件。

2,已经存在:不会把原来的内容清空,而是更新相关时间信息。

4,mkdir(make directory):创建目录

注意是创建目录而不是文件,

mkdirtest# 在当前所在目录下创建目录testmkdir-pa b c# 创建多级目录

5,rmdir(remove Directory):删除空目录

只能删除空目录

6,rm(remove):删除文件或目录

rmtest.txt# 删除文件test.txtrm-rtest# 删除整个test文件夹(所有东西)

常用选项;
rm -r;recursive,递归。就是全部删除为止
rm -f:force,强制。就是不用确认
rm -rf:强制递归删除!!(非常危险!)
Linux 命令行中删除文件通常不会像 Windows 回收站那样给你一个方便的恢复机制。
⚠️⚠️⚠️⚠️危险命令!⚠️⚠️⚠️⚠️

rm-rf/# 强制递归删除根目录!rm-rf*# 强制递归删除当前目录下的所有文件,隐藏文件除外

所以,互联网上的删库跑路代码就是:rm -rf /

7,man(manual):查看命令手册(命令帮助文档,命令百科全书)

manls# 查看命令ls的帮助文档,不知道ls怎么用的时候可以用这个命令

里面一般是这样的:

但是其实现在有AI了,AI查询也非常方便!

8,cp(copy):复制文件或目录

# cp 源文件 目标文件touchtest.txt# 新建一个test.txt文件cptest.txt test2.txt# 复制生成一份test2.txt文件# 把文件复制到目录。文件夹cptest.txt dir/# 把 `test.txt` 复制到 `dir` 目录中。# 复制文件夹cp-rtestdir/# r递归,复制整个文件夹到dir目录

总结:
cp 文件 → 直接 cp
cp 目录 → 通常需要 cp -r

9,mv(move):移动 (剪切)/ 重命名

# backup目录存在,并且和test.txt在同一目录(当前目录)下mvtest.txt backup/#把test.txt剪切到backup/# 两个都是文件,第二个文件不存在mvtest.txt hello.txt# 重命名# test.txt test.c都存在且在同一目录(当前目录)mvtest.txt test.c# 结果就只剩下一个test.c

原则:
mv 源文件 目标不存在→ 重命名
mv 源文件 目标是目录→ 移动到该目录
mv 源文件 目标是已存在的普通文件→ 覆盖目标文件

cp和mv对比
对比cpmv
含义copymove
复制文件✅❌
移动文件❌✅
重命名通常不用于此✅
原文件是否保留✅通常不保留
目录操作cp -r可以直接移动目录

Linux补充知识2——文件分类

Linux 中,文件类型不是通过文件后缀来区分的。系统主要通过文件的类型信息来识别文件。

注意:文件有没有.c、.txt、.jpg等后缀,并不是 Linux 判断文件类型的依据。后缀主要是给人和部分工具使用的。

Linux 常见文件类型:
通过ls -l查看文件时,第一个字符可以表示文件类型:

符号文件类型说明
-普通文件文本、可执行文件、库、图片、视频等都可以属于普通文件
d目录文件用来组织和管理其他文件
c字符设备文件键盘、显示器、终端等,数据以字符流的形式进行读写
b块设备文件磁盘等设备,数据通常以数据块为单位进行读写
l链接文件Linux 中的软链接
p管道文件用于进程之间进行数据传输

10,echo:向终端输出内容

把指定内容输出到标准输出。

echo“hello caige”

echo 不是“打印”,标准输出不一定非要显示在屏幕上。
例如

cat(concatenate):查看文件内容

查看内容比较少的文本文件。

cattest.txt# 把test.txt里面的内容输出到屏幕上
>:输出重定向

不要把程序的标准输出送到终端,而是送到指定文件。

echohello#输出到屏幕echohello>test.txt# 输出到文件test.txt,会清空原文件,如果文件不存在,创建先创建在写入

创建文件,或者清空原文件后重新写入。

>>:追加重定向

在文件末尾继续添加内容

输入重定向<

例如某些支持标准输入的程序,可以:

command(命令)<test.txt

把test.txt的内容作为这个程序的标准输入。

现在先了解即可

两个重定向总结

区别:

写法作用原文件存在时
>输出重定向覆盖原内容
>>输出追加保留原内容,在末尾追加

2,重定向并不只适用于echo

重定向是 Shell 提供的一种通用机制,而不是echo专属功能。

很多命令都会产生标准输出。例如 ls等等,他们默认输出到屏幕,但是,

ls>file.txt# 把ls输出的内容输出到文件file.txt里面,可以通过cat来查看pwd>path.txt# 把当前路径保存到(输出到)path.txt 文件
管道|组合命令

‘|’把一个命令的输出交给另一个命令,|不是把输出保存到文件,而是把一个程序的标准输出作为另一个程序的标准输入。

查看文件内容

10,cat:查看小文件

把文件内容输出到标准输出。

cat -n:显示行号
tac:反向查看文件
cattest.txt# 把test.txt的内容直接打印到屏幕给我看root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n file.txt1file.txt2new.txt3test.txt4file.txt5new.txt6test.txt7/root/caige/test01/test# 测试tac tac没有-n选项,只能用管道root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n file.txt | tac7/root/caige/test01/test6test.txt5new.txt4file.txt3test.txt2new.txt1file.txt
11,more:分页查看文件(大文件)

如果文件非常大:可能瞬间刷满整个终端。

这时候可以:使用more命令,它会一页一页显示。

可以按:Space 向后翻页。按:Enter 向下移动一行。

12,less:增强版分页查看文件(大文件)

more不能往回翻,一般都用less来查看大文件
可以使用方向键上下移动,也可以进行搜索。
1,方向键上下移动
2,/进行搜索
3,按“n”寻找下一个匹配位置
4,“q”退出

命令适合场景
cat小文件,快速查看全部内容
tac想从最后一行反向查看
more较大文件,简单分页
less大文件,需要上下翻页、搜索

代码示例:

创建了一个文件,内容是caige:01一直到100,

foriin{1..100};doecho"caige:$(printf'%02d'$i)";done>big.txt
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n big.txt1caige:012caige:023caige:034caige:045caige:056caige:067caige:078caige:089caige:0910caige:1011caige:11# 中间代码已删95caige:9596caige:9697caige:9798caige:9899caige:99100caige:100
13,head:查看文件头部若干行(默认10)
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head big.txtcaige:01 caige:02 caige:03 caige:04 caige:05 caige:06 caige:07 caige:08 caige:09 caige:10
14,tail:查看文件尾部若干行(默认10)
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# tail big.txtcaige:91 caige:92 caige:93 caige:94 caige:95 caige:96 caige:97 caige:98 caige:99 caige:100

head、tail、管道“|”的组合使用:

root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head -50 big.txt # 作用是查看前50行root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head -50 big.txt | tail -10 # 先查看前50行得到一个结果,然后查看这个结果的后10行caige:41 caige:42 caige:43 caige:44 caige:45 caige:46 caige:47 caige:48 caige:49 caige:50
tail -f:实时查看日志——非常重要

-f follow,持续跟踪文件末尾。

Ctrl + C退出

15,grep(global regular expression print):文本过滤搜索

grep -i 忽略大小写查找
grep -n 显示行号查找
grep -r 当前目录递归查找

15,date:显示/设置系统日期时间

data+格式,按照你给的格式输出当前时间
代码示例:

root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# date "+%Y-%m-%d %H:%M:%S" # 按照规定格式显示当前时间2026-10-0116:58:25
格式含义
%Y年
%m月
%d日
%H小时
%M分钟
%S秒
‘%s’时间戳
%F日期,等价于%Y-%m-%d
%T时间,等价于%H:%M:%S
小知识——时间戳
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date +%s1790846115

这个1790846115就是时间戳!他表示从 1970 年 1 月 1 日 00:00:00 UTC 开始,到当前时间经过了多少秒。

date -d @时间戳:时间戳转换为普通时间

root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date -d @1790846115Thu Oct105:15:15 PM CST2026root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date +%Y-%m-%d_%H:%M:%S -d @17259747462024-09-10_21:25:46 root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date -d @0Thu Jan108:00:00 AM CST1970root@iZbp1762zeqzauorez4cw0Z:~/caige/test01#

为什么是1970年1月1日8点,因为主播在中国,是北京时间,东八区

益智小故事——为什么电脑关机后,开机还能知道现在几点?

有人肯定想是因为网路,但是你想想你把网络关了它还是可以正常计时!所以,肯定是手机或者电脑自己里面带了钟表!

主板上有专门的实时时钟电路,并且通常由主板上的纽扣电池供电。

16,cal(calendar):查看日历

cal# 查看当前月的日历cal2023# 查看2023年所有日历cal32024# 查看2024年3月的日历cal-3# 查看今年这个月,上个月,下个月的日历

17,find:文件搜索查找

在指定目录及其子目录中查找所有符合条件的文件。

find.-name"test.txt"# 从当前目录开始,递归寻找名字叫 `test.txt` 的文件。find/-name"test.txt"# 从根目录 `/` 开始寻找 `test.txt`find.-name"*.cpp"# 从这里开始,把所有 `.cpp` 文件找出来。
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01find.-name"test.txt"./test/test.txt root@iZbp1762zeqzauorez4cw0Z:~/caige/test01find/-name"test.txt"/root/test.txt /root/caige/test01/test/test.txt

18,which:查找可执行程序路径

之前说过,命令就是文件!
which就可以帮我们找到某个命令文件在哪里

root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# which ls/usr/bin/ls root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# which pwd/usr/bin/pwd root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# which find/usr/bin/find

19,whereis:查找命令的二进制、源码、手册位置

不仅找命令文件(即运行时运行的是哪个文件),还会找一些与它相关的文件,如帮助文档里面的关于这个命令怎么使用的文件等等

root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
区别
对比whichwhereis
主要目的找可执行命令找程序相关文件
常见结果可执行文件路径程序、man 等多个位置
常见用法which gccwhereis gcc
适合场景确认实际执行哪个命令查看程序相关资源

20,alias:设置命令别名

给一个命令设置一个更方便的名字。
1,当前会话有用,想要长期有用要修改写到~/.bashrc文件
2,记得加引号把“命令”括起来

aliasll='ls -al'# ls -l 起一个方便使用的名字——ll,当前会话ll就会执行ls -lalias# 查看当前所有别名命令unaliasll# 删除ll这个别名

22,top:实时查看系统进程资源

相当于Windows的资源管理器
会进入一个动态变化的界面。

它可以查看:

  • CPU 使用情况
  • 内存使用情况
  • 系统负载
  • 运行中的进程
  • 每个进程的资源占用

    退出按q

23,zip/unzip:zip格式压缩和解压缩

ziptest.zip test.txt# zip 目标文件名 要压缩的文件名ziptest.zip a.txt b.txt c.txt# 压缩多个文件zip-rproject.zip project/# 压缩目录# `unzip`:解压unziptest.zip# 把 `test.zip` 解压到当前目录。unziptest.zip-doutput# 把 `test.zip` 解压到 `output` 目录。

24,tar(tape archive):打包解压(重要)

这个是打包,zip是压缩,打包就是相当于封装成一个文件夹,大小不变
压缩大小减小,

将多个文件/目录打包成一个归档文件,并配合压缩算法进行压缩。

tar的重要参数
参数含义
-ccreate,创建归档
-xextract,解包
-vverbose,显示详细过程
-ffile,指定归档文件
-z使用 gzip
-j使用 bzip2
-J使用 xz
-C指定操作目录

所以,一般都是用的组合操作

tar-cfproject.tar project/# 普通打包tar-cvfproject.tar project/# 显示打包过程打包tar-xfproject.tar# 解包tar-czvfproject.tar.gz project/# 可视化打包并gzip压缩tar-xzvfproject.tar.gz# 可视化解包并解压gzip包
对比ziptar
常见环境Windows / Linux 都常见Linux/Unix 非常常见
主要作用压缩/解压打包/归档,可配合压缩
常见文件.zip.tar、.tar.gz、.tar.xz
目录处理zip -r天然适合目录归档
Linux 软件包相对少见非常常见

25,rzsz:串口传输文件工具

rz:从本地上传文件到 Linux

把本地电脑上的文件传输到 Linux 服务器。

rz-C/root/caige/test01/# 上传的Linux指定文件夹
sz:从 Linux 下载到本地

把 Linux 上的hello.cpp发送到本地电脑。

sz test.txt# 把 Linux 中的 `test.txt` 发送到本地。
scp(secure copy):安全复制

通过 SSH 安全地复制文件。可以直接在两台通过 SSH 通信的机器之间复制文件。

scp/root/test.txt root@192.168.1.100:/root/# scp 源文件 目标用户@目标主机:目标路径scp-rcaige root@192.168.1.100:/root/# 传递目录scproot@192.168.1.100:/root/caige/test.cpp.# 从服务器下载文件,
对比rz/szscp
依赖ZMODEM + 终端软件支持SSH
常见场景XShell 等终端中快速传文件机器之间复制
是否需要交互选择文件rz通常需要通常直接写路径
是否适合脚本化不太适合更适合
是否需要 SSH不完全等同于 SCP 的 SSH 传输方式是
目录传输受工具支持影响scp -r
Linux 服务器开发常见度学习/临时传文件方便很常见

26,bc(basic calculator):命令行计算器

bc是 Linux 中的一个命令行计算器。

直接输入:bc即可进入,Ctrl + D退出

27,uname -r:查看内核版本信息

可以查看当前正在运行的 Linux Kernel 版本信息。

root@iZbp1762zeqzauorez4cw0Z:~/caige/test01uname-r5.15.0-190-generic

下期预告

Linux权限


结语

本文到此结束,感谢大家的阅读!如果觉得本文对你有所帮助,欢迎点赞、收藏、关注,也欢迎在评论区一起交流讨论。
也欢迎订阅我的
深入理解 C++系列:从语法入门到底层原理,系统掌握现代 C++
算法系列:从入门到精通,蓝桥杯、ACM、LeetCode 与面试算法全路线
快速复习系列:知识梳理、查漏补缺,考前冲刺必备
Linux系列:从零带你系统学习Linux系统,深入理解计算机组成原理!


愿每一次敲下键盘,都比昨天更进一步!
愿每一行代码落下,都让未来多一种可能!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询