目录
[4.1 man](#4.1 man)
[4.2 clear&&history&&whoami](#4.2 clear&&history&&whoami)
[4.3 pwd](#4.3 pwd)
[4.4 ls](#4.4 ls)
[4.5 cd](#4.5 cd)
[4.6 mkdir&&touch](#4.6 mkdir&&touch)
[1. mkdir](#1. mkdir)
[2. touch](#2. touch)
[4.7 rmdir&&rm](#4.7 rmdir&&rm)
[1. rmdir](#1. rmdir)
[2. rm](#2. rm)
[4.8 cp&&mv](#4.8 cp&&mv)
[1. cp](#1. cp)
[2. mv](#2. mv)
[4.9 cat&&echo&&prinf](#4.9 cat&&echo&&prinf)
[1. cat](#1. cat)
[2. echo](#2. echo)
[4.10 more&&less](#4.10 more&&less)
[1. more](#1. more)
[2. less](#2. less)
[4.11 head&&tail](#4.11 head&&tail)
[1. head](#1. head)
[2. tail](#2. tail)
[4.12 date](#4.12 date)
[1. 显示指定格式的时间](#1. 显示指定格式的时间)
[2. 时间<->时间戳](#2. 时间<->时间戳)
[4.13 find&&grep&&which&&whereis](#4.13 find&&grep&&which&&whereis)
[1. find](#1. find)
[2. grep](#2. grep)
[3. which](#3. which)
[4. whereis](#4. whereis)
[4.14 zip/unzip&&tar(重要)](#4.14 zip/unzip&&tar(重要))
[1. zip/unzip](#1. zip/unzip)
[2. tar](#2. tar)
[4.15 bc&&uname](#4.15 bc&&uname)
[1. bc](#1. bc)
[2. uname](#2. uname)
1、Shell及运行原理
Linux:严格意义上说的是一个操作系统 ,我们称之为"核心( Kernel**)** ",但我们一般用户 ,不能直接使用 Kernel,而是通过 Kernel的**"外壳"程序** ,也就是所谓的 Shell,来与 Kernel沟通。
Shell:是一个命令行解释器 (如Bash、Zsh、Fish等),充当用户与内核之间的"桥梁"。
用户通过Shell****输入命令 ,Shell****解析后传递给 Kernel****执行 ,再将结果返回给用户。
Shell本质是一个进程 ,会创建子进程解释命令 。(Shell不能因为一条命令就挂了)
Shell有方便用户操作和保护操作系统(防止非法命令)的功能。
注意:
Shell (如Bash): 是Linux系统自带的文本交互界面,属于软件层面的概念。
Xshell:是一款第三方开发的SSH客户端工具,用于远程连接Linux服务器(本质是一个图形化工具,内部仍通过Shell与内核交互)。
用户 → Xshell(SSH客户端) → Shell(如Bash) → Kernel(内核)。
2、热键
-
Alt+Enter,进入/退出全屏(Xshell)。
-
Ctrl+C,终止当前的程序。
-
Ctrl+D,退出当前用户。
-
Ctrl+R,搜索历史命令。
-
上下键 ,切换历史命令。
-
快速按两下Tab,命令搜索或补全。
-
Ctrl+Shift+C,复制 ,Ctrl+Shift+V,粘贴。
3、Linux的基础知识
-
目录 == 文件夹。
-
文件 = 内容 + 属性(创建时间等)。同一目录下文件不能同名。
-
Linux,一切皆文件。
Linux的文件结构是一棵 从根目录/ 开始的多叉树。
叶子节点是文件或空目录,非叶子节点是非空目录。
-
Linux****不关心文件的后缀,但是工具(如:gcc要编译.c后缀的文件)关心。建议正常写后缀。
-
*是通配符。
4、Linux的基础指令
不用硬记,用多了就收悉了。
Centos 7如果没有这个命令 就下载 :yum install -y 命令。
目录的 / 可带可不带。
4.1 man
语法:man 选项 (>=0个) 命令
功能:查询手册。
常用选项:
num只在第num****章节查找。

4.2 clear&&history&&whoami
clear:清屏。
history:显示历史命令。
whoami:显示当前用户。
4.3 pwd
pwd:显示当前的路径。
注意:****Linux是**/,Windows是\**。
如:

~表示,当前在家目录。
家目录是用户个人文件的默认位置(路径为/home/用户名,root 用户是/root)。

lesson1表示,当前在lesson1目录,
4.4 ls
语法:ls 选项 (>=0个)目录或文件(默认是当前目录)
功能:对于目录 ,显示目录下 的文件 和目录 。对于文件 ,显示文件。
常用选项:
-a:all,显示目录下 的所有 的文件 和目录 ,包括 以 .开头的隐藏文件。
注意:**任何一个目录 (即便是空目录),都自带** .(当前目录 )和 ..(上级目录)。
-d:将目录 像文件 一样显示,而不是显示其下的文件。
-l:列出文件 和目录 的详细信息 。ls -l == ll,因为常用。
-t:以最近修改时间 排序。
注意:选项 -a -l,-l -a,-al,-la,都行。
例:
-:普通文件,包括文本,可执行程序,库,图片,视频等等。
d:目录。
c:字符文件 ,如:键盘,显示器,终端等等。输入的数据具有顺序。
b:块设备,如:磁盘。
l:链接文件。
p:管道文件。
4.5 cd
语法:cd 目录。
功能:切换工作目录。
用法:
cd绝对路径 (从根目录 / 开始 )。路径不会失效,多用于配置文件。
cd 相对路径 (如:.(当前目录 )或 ..(上级目录 ))。路径简单,多用于日常使用。
cd ~,切换到家目录。
cd -,切换到最近使用的目录。
4.6 mkdir&&touch
1. mkdir
语法:mkdir 选项 (>=0个)dir
功能:在当前目录下 创建以个名为"dir" 的目录。
常用选项:
-p/--parents,此时若路径中的某些目录尚不存在 ,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
tree 命令是一个递归以树状结构显示指定目录的命令。

2. touch
语法:touch 选项 (>=0个) 文件
功能:touch命令可修改文档 或目录 的(Access )访问时间 和(Modify )修改时间 ,也可用于创建新文件。
常用选项:
-a:change only the Access time
-c:change only the Modify time
stat命令用于显示文件或文件系统 的详细状态信息。

4.7 rmdir&&rm
1. rmdir
语法:rmdir 选项 (>=0个) dir
功能:删除空目录 。
常用选项:
-p:当子目录被删除 后,如果父目录因此变为空目录 ,则父目录也会被一并删除。

2. rm
语法:rm 选项 (>=0个) dir/file
功能:删除文件 或目录 (通用)。
常用选项:
-f:即使文件属性为只读(写保护),也直接强制 (force)删除,不再询问(root用户因权限过高,总是询问)
-r:递归 (recursion)删除目录及其包含的所有文件
-i:删除前逐一询问确认
如:-rf,强制删除一个目录(需特别谨慎,该操作不可逆)。
4.8 cp&&mv
1. cp
语法:cp 选项 (>=0个) src dst
功能:复制文件 或目录 。
常用选项:
-f:强制 (force)复制文件 或目录,不询问。
-r:递归 (recursion)拷贝目录
-i:覆盖之前询问用户
注意:
src文件 拷贝到 dst文件 ,dst目标文件 不存在 就自动创建新文件 并拷贝内容 ,dst目标文件 已存在 就覆盖。
src文件 (可多个)拷贝到 已存在的dst目录,正常拷贝,拷贝到 不存在的dst目录,报错。
src目录 拷贝到 已存在/不存在 (会创建)的dst目录, 必须加 -r 才能递归拷贝。
2. mv
语法:mv 选项 (>=0个) src dst
功能:剪切文件 或目录。
常用选项:
-f:强制(force),dst文件已存在 ,不会询问 而直接覆盖 。
-i:dst文件已存在 ,会询问 是否覆盖。
注意:
如果 dst 不存在 ,mv 会认为你想将 src重命名为 dst。
如果 dst****存在且是一个目录,mv 会将 src (可多个)移动到该目录下(保持原名)
4.9 cat&&echo&&prinf
1. cat
语法:cat 选项 (>=0个) file
功能:查看file的内容
常用选项:
-n:对所有行编号
-b:对非空行编号
-s:合并连续空行 为一行
注意:
输出重定向 :cat > file,file不存在会新建或file存在会**覆盖(**当然如果 >file,就是新建一个文件),把读取到的内容写入file。
输出追加重定向 :cat >> file,file不存在会新建或ile存在会追加到文件末尾(不会覆盖)。
tac,从倒数第一行开始显示(倒着显示)。
2. echo
功能:显示字符串(" "或' '都行),自带'\n'

4.10 more&&less
cat一般显示较短的文件内容。
1. more
语法:more 选项 (>=0个) file
功能:一页一页显示内容 ,不支持上翻,只能下翻 (用的少)。
常用选项:
-n:指定显示的行数
在more中输入
q:退出more
2. less
语法:less 选项 (>=0个) file
功能:一页一页显示内容 ,随意浏览 (用的多)。
常用选项:
-i:忽略 (ignore)搜索时的大小写
-N:显示 每行的行号
在less中输入
/字符串:向下搜索 指定字符串,按n继续向下 搜索,按N (反向)向上搜索。
?字符串:向上搜索 指定字符串,按n继续向上 搜索,按N (反向)向下搜索。
q:退出less
4.11 head&&tail
1. head
语法:head 选项 (>=0个) file
功能:用于将文件的开头 内容输出至标准输出 (屏幕),默认 显示文件的前 10 行 。
常用选项:
-n:显示行数
2. tail
语法:tail 选项 (>=0个) file
功能:用于显示指定文件 的末尾内容 。当不指定文件时,会从标准输入(stdin) 读取数据进行处理。常用于实时查看日志文件 。
常用选项:
-f:循环读取 。会不断刷新,使你看到最新的文件 内容(实时)。
-n:显示行数
注意:
|是一个管道 (可以进行命令的组合),左边处理完 ,右边再处理,相当于产生一个临时对象,
如:cat file | tail,显示file的后10行。
4.12 date
语法:date 选项 格式
常用功能:
1. 显示指定格式的时间
date **+**格式
%H:小时
%M:分钟
%S:秒
%X:相当于%H:%M:%S

%Y:年
%m:月份
%d:日
%F:相当于%Y-%m-%d

2. 时间<->时间戳
当前时间 → 时间戳
bash
date +%s
指定时间 → 时间戳
cpp
date -d "2025-4-25 14:12:12" +%s
时间戳 → 可读时间
cpp
date -d @1745561532
// 指定格式输出:
date -d @1745561532 "+%Y-%m-%d %H:%M:%S"
4.13 find&&grep&&which&&whereis
1. find
语法:find****pathname -options filename/pathname
功能:在指定路径 下递归搜索 符合条件的文件或目录
常用选项:
-name:按照文件名查找文件
-type:按文件类型 查找(f=文件 ,d=目录)
目标类型 | 命令示例 | 说明 |
---|---|---|
目录 | find /path -type d -name "dir" |
只匹配目录 |
文件 | find /path -type f -name "*.txt" |
只匹配文件 |
任意 | find /path -name "pattern" |
不限定类型(文件+目录) |
2. grep
语法:grep -options 字符串 文件
功能:在文件中搜索字符串 ,并显示对应行 。
常用选项:
-i:忽略 (ignore)搜索时的大小写
-n:显示行数
-v:反向选择 ,匹配 的不要 ,不匹配 的留下
3. which
功能:搜索 系统命令
4. whereis
功能:快速定位程序的二进制文件、源码和手册页 ,它的设计目的是比 which 提供更全面的程序相关文件信息
4.14 zip/unzip&&tar(重要)
1. zip/unzip
语法:zip****file.zip dir/file
功能:将dir/file压缩 成zip格式
常用选项:
-r:递归(recursion)处理,将指定目录下的所有文件和子目录 一并处理
操作 | zip 命令 |
unzip 命令 |
---|---|---|
单个文件 | zip a.zip file.txt |
unzip a.zip |
目录 | zip -r a.zip dir/ |
unzip a.zip -d target/ |
关于rz/sz工具
用于Windows 机器和远端的 Linux 机器通过 XShell 传输文件 。可以通过拖拽 的方式将文件上传过去。
bash
sudo yum install -y lrzsz
2. tar
压缩:tar czf或**-czf file.tgz src**
解压:tar xzf或**-xzf** file.tgz
-v:显示压缩 或解压 的过程
-C:解压 到指定目录
bash
tar -xzf backup.tgz -C /tmp/
// -C /tmp/ 是独立的参数
注意:f后面紧跟file.tgz
Linux 与Linux的压缩包互传。
scp 压缩包 用户名@IP:指定路径
4.15 bc&&uname
1. bc
功能:简单的计算机

也可以通过|管道,进行计算。

2. uname
uname -r
输出当前 Linux 系统的 内核版本号 (Kernel Release),格式通常为:
主版本号.次版本号.修订号-附加信息
uname -a
输出系统的 完整信息,包括:
-
内核名称
-
主机名
-
内核版本
-
系统架构
-
操作系统名称
-
其他详细信息