ln命令(创建链接)
ln命令创建硬链接(很少使用了)
ln <源文件> <目标链接>
比如ln hello.txt hello2.txt,这两个文件内容是一样的,并且对其中一个文件进行修改了之后,访问另一个文件也发生了变化,因为本质上这两个文件就是同一个文件。
硬链接的两个文件的id号是一样的
硬链接的局限性
-
同一文件系统内使用:
- 硬链接只能链接同一个文件系统内的文件,无法跨文件系统链接。这是因为硬链接实际上是文件系统中相同 inode 的多个名称,而 inode 是特定于文件系统的概念。
-
不能链接目录(文件夹):
- 硬链接不能用于链接目录,这是因为这样可能导致系统中的环形链接,进而导致文件系统损坏。
-
删除文件的影响:
- 删除原始文件并不会影响已创建的硬链接,但硬链接不再指向任何有效的数据,可能导致数据丢失或无法访问。
ln命令创建软链接(符号链接)
可以看出来软链接有着不同的id号,软链接本身也是一种文件,可以看到用ls -l查看详细信息,这个软链接的类型是l开头,表明是一个软链接类型文件
而且软连接并没有上面硬链接的局限性,软连接我们就可以理解为一种快捷方式,这种快捷方式的作用也有很多,比如说可以让文件名称变得简洁化,跨文件共享等等。
格式:ln -s [目标文件或目录] [软链接名称]
这里的软链接就相当于window下的快捷方式,软链接只是一个指向,而不是物理上面的移动
注意符号:~,这个符号前面我们提到过,它的意思是我们的home目录下的默认用户
日期和时区
date命令
当这个格式化字符串中间有空格的时候会报错,我们可以用双引号来包裹这个字符串来解决这个问题 。
date命令中利用-d选项来进行日期计算
修改Linux时区
这里具体如何操作请看:第四章-05-日期和时区_哔哩哔哩_bilibili
IP,主机名和域名解析
IP地址
V4为32位,V6为128位,所以V4IP大概有60多亿个,现在各种东西都开始联网,显然之后不太够用,所以现在V6已经开始使用了。
特殊IP地址
主机名
域名解析
我们发现这里会先查看本机的记录,所以我们可以来通过配置这个文件来做一些有意思的事情,也可以方便于我们,比如配置自己主机名与域名解析的一个映射就不用记忆自己的IP了
配置Linux固定IP地址
为什么需要固定IP?
详细操作依旧是看黑马视频,这里不加详细介绍
网络请求和下载
ping命令
wget命令
无论下载是否成功/完整都会生成这么一个文件,所以我们下载到一般不想下载了,可以去将这个文件删除。
curl命令
端口
认识端口
套接字=IP地址+端口号
端口号可以帮助我们锁定到一台计算机上具体的某一项服务
IP地址是我们刚刚的说的分为ipv4和ipv6
端口号长度为16位,所以范围为0-65535
计算机之间的通讯使用的就是套接字,我们进行计算机之间不同的通讯就是要编写套接字的过程
在计算机网络中,通信双方之间的数据交换通常通过套接字进行。编写套接字的过程包括创建套接字、绑定 IP 地址和端口号、监听连接请求、接受连接请求、发送和接收数据等步骤,这些步骤通常由网络编程中的套接字 API 完成。
端口的分类
- 知名端口(Well-known Ports):范围从 0 到 1023。这些端口通常用于常见的网络服务,如 HTTP(80 端口)、FTP(21 端口)、SSH(22 端口)等。
- 注册端口(Registered Ports):范围从 1024 到 49151。这些端口通常由用户进程或应用程序使用,可以用于自定义的应用程序或服务。
- 动态或私有端口(Dynamic or Private Ports):范围从 49152 到 65535。这些端口通常由客户端程序动态分配,用于临时通信或客户端应用程序的使用。
查看端口占用
nmap命令
netstat命令
这两个命令详细使用在这里不加详细说明
进程管理
认识进程
查看进程
我们常常使用ps -ef来查看所有进程
我们在查看进程的时候常常会配合管道符和grep命令来使用
回忆一下grep命令,这个命令的用途是过滤出来文件中带有关键字的选项,那么这里的话我们可能会感到奇怪,这里查看进程的话明明没有文件啊?那如何来运用grep来过滤文件内容呢?
这就要用到我们学过的管道符了
管道符可以适用于很多种的命令组合,只要左边命令能得到一个输出,右边需要输入,就可以用到管道符,这里就相当于是将左边使用ps -ef获得的信息来作为了grep命令的输入。
示例
ps -ef | grep tail //这样便从进程信息中过滤出了与tail有关的进程
ps -ef | grep “11.56” //这样便从进程信息中过滤出了与11.56启动的进程
关闭进程
这里什么时候需要用到选项 -9 呢?当我们确保一定要将这个进程来关闭的话加上-9,防止一些流氓程序不听命令,加上-9强制一定关闭。
主机状态监控
掌握查看主机运行状态的监控命令
这里暂时不做介绍
环境变量
环境变量的介绍
这其实就是环境变量的作用
具体当我们执行cd命令的时候环境变量是如何来起作用的呢?
我们使用env命令来查看系统中的环境变量,并且用grep和管道符来筛选,管道符真的很有用!!
这里环境变量的作用是:帮助我们在系统中任意地方执行一个程序,环境变量都可以帮助我们找到并且运行这个程序
$符号
我们上面知道了linux中的环境变量是以一种键值对的形式存储的,比如PATH为键,值为后面那一长串,我们于是便可以通过$符号来取到PATH键对应的值,然后使用我们的echo命令来输出出来
自行设置环境变量
这里具体操作不做详细介绍
压缩和解压
mindmap
1.了解.tar格式的压缩文件,了解如何对其进行压缩和解压
2.了解.tar.gz,.tar.bz2,.tar.xz格式的压缩文件,了解如何对其进行压缩和解压
3.了解.zip格式的压缩文件,并知道如何对其压缩和解压
压缩格式总体介绍
在Linux中,常见的压缩包格式包括:
tar:tar 是 Linux 下的归档工具,用于将多个文件打包成一个文件,但不会进行压缩。通常与其他压缩工具(如 gzip、bzip2)一起使用,形成常见的压缩格式,如 .tar.gz、.tar.bz2 等。
gzip:gzip 是一种常见的压缩工具,用于压缩单个文件,生成的文件以 .gz 扩展名结尾。
bzip2:bzip2 是另一种常见的压缩工具,与 gzip 类似,但通常能产生更高的压缩比。生成的文件以 .bz2 扩展名结尾。
zip:zip 是一种跨平台的压缩工具,可以在Linux中使用。它能够将多个文件和目录打包成一个文件,并进行压缩,生成的文件以 .zip 扩展名结尾。
7z:7z 是一种高效的压缩工具,支持多种压缩算法,如 LZMA、LZMA2、BZip2 等,生成的文件通常以 .7z 扩展名结尾。
这些是Linux系统中最常见的压缩包格式,每种格式都有其自己的特点和用途。
下面我们介绍到的是前四种压缩格式压缩解压方法。
.tar格式详细介绍
-
打包多个文件和目录:
.tar
文件可以将多个文件和目录合并到一个文件中,保持原有的文件结构和元数据(如权限、时间戳等)。 -
不压缩:
.tar
格式仅用于打包文件,而不对文件内容进行压缩。因此,生成的.tar
文件大小与所有被打包文件的总大小相同。 -
常与压缩工具结合使用:为了减少
.tar
文件的大小,通常会将.tar
文件与压缩工具一起使用,如gzip
、bzip2
、xz
等,分别生成.tar.gz
、.tar.bz2
、.tar.xz
等格式的压缩归档文件。
.gz格式和.tar.gz详细介绍
.gz
格式文件
.gz
文件是通过gzip
压缩单个文件得到的。- 它只对单个文件进行压缩,不支持打包多个文件或目录。
- 使用
gzip
命令可以对.gz
文件进行压缩或解压。也可使用gunzip命令解压
.tar.gz
格式文件
.tar.gz
文件实际上是一个.tar
归档文件经过gzip
压缩后的文件。- 首先,
.tar
文件是由tar
命令将多个文件和/或目录打包在一起的,打包后的文件通常称为 “tarball”,文件扩展名为.tar
。 - 然后,这个
.tar
文件再用gzip
压缩,生成.tar.gz
文件。 .tar.gz
文件既包含多个文件或目录的结构,又对整个打包后的.tar
文件进行了压缩。- 使用tar命令对
.tar.gz
文件进行压缩和解压。
.tar.gz
、.tar.bz2
、.tar.xz
这三种文件类型的基本处理流程都是一样的,都是先使用 tar
命令将多个文件或目录打包成一个 .tar
归档文件,然后在此基础上使用不同的压缩算法进行压缩,生成不同的压缩文件格式,都是使用的tar命令进行压缩和解压操作。.gz ,.bz2和.xz这三种格式使用的压缩和解压命令是不一样的。
tar命令参数介绍
针对.tar,.tar.gz,.tar.bz2,.tar.xz,压缩格式,我们都可以使用tar命令对其进行压缩和解压缩操作。
.tar和.tar.gz压缩
注意:
1. - f选项必须放置为最后一个选项
2. - z选项如果要使用的话,一般要放置为第一个选项
.tar和.tar.gz压缩实例
我们分别使用了下面两条命令
tar -cvf test.tar 1.txt 2.txt 3.txt
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
我们可以看到压缩为.tar.gz格式明显体积小了很多,但是不加-z选项,仅仅压缩为 .tar,可以看到体积反而增大了一点点,这也证实了.tar仅仅是对这几个文件做了一个简单打包。
.tar和.tar.gz解压
注意:
1. - C选项单独使用,和解压所需的其他参数分开。
.tar和.tar.gz解压实例
.tar.bz2和.tar.xz格式文件压缩解压
.tar.bz2和.tar.xz格式文件压缩解压和上面介绍的.tar.gz格式文件压缩解压格式几乎一样。
在上面我们发现.tar.gz格式文件压缩解压都比.tar格式文件多了一个-z选项。.tar.bz2格式文件压缩解压多的是-j选项,.tar.xz格式文件压缩解压多的是-J选项,
tar -jcvf archive.tar.bz2 file1 file2 file3 //压缩为bz2格式示例
tar -jxvf archive.tar.bz2 -C ar //将bz2格式文件解压到ar目录下
tar -Jcvf archive.tar.bz2 file1 file2 file3 //压缩为xz格式示例
tar -Jxvf archive.tar.bz2 -C ar //将xz格式文件解压到ar目录下
zip命令压缩文件
unzip命令解压文件
删除压缩文件
直接使用rm命令即可,不用加-r,这个删除压缩包和删除普通文件操作一样
Linux中文件的格式
在 Linux(以及类 Unix 系统)中,文件后缀通常用于标识文件的类型或者格式,但并不像 Windows 中那样对文件内容有强制性的约束。这意味着文件的后缀主要是为了方便用户和程序来识别文件的类型和用途。
具体来说:
-
文件后缀的作用:
- 标识文件类型:例如,文件后缀
.txt
表示文本文件,.jpg
表示 JPEG 图像文件,.mp3
表示音频文件等等。这些后缀帮助用户识别文件内容的预期用途。 - 关联默认程序:在桌面环境中,文件后缀通常与关联的默认程序相关联,以便双击打开文件时能够自动使用正确的应用程序打开。(比如我们再window电脑下可以设置一些文件的默认打开方式,比如pdf,就是根据文件的后缀名字来设置默认打开方式)
- 标识文件类型:例如,文件后缀
-
文件内容的约束:
- 在类 Unix 系统中,文件内容的约束通常由文件本身的数据和格式决定,而不是由文件的后缀决定。这意味着即使给一个文本文件(例如
.txt
后缀)改为.jpg
后缀,其内容仍然是文本数据,只是系统和应用程序可能会错误地尝试使用图像查看器打开它,而不会导致文件内容本身发生变化。
- 在类 Unix 系统中,文件内容的约束通常由文件本身的数据和格式决定,而不是由文件的后缀决定。这意味着即使给一个文本文件(例如
-
命令行操作:
- 在命令行操作中,文件后缀通常不会影响文件的处理方式。命令如
cat
、cp
、mv
等会根据文件内容和格式进行操作,而不会仅仅依赖于文件后缀来决定如何处理文件。
- 在命令行操作中,文件后缀通常不会影响文件的处理方式。命令如
总结来说,Linux 中的文件后缀主要是一种约定和标识,方便用户和程序识别文件的类型和用途,而并非对文件内容有强制性的约束。
对于我们上面的压缩和解压文件中的后缀也是方便用户和程序识别文件的类型和用途,比如定义了zip后缀,帮助告诉我们这个文件内容的压缩格式,在解压的时候我们就知道是用unzip可以进行解压,如果我们命名为.7z格式,对文件内容不造成影响,但是会让我们在对文件进行操作的时候可能误导我们。所以虽然文件格式在linux中没有功能或内容上的作用,但是可以帮助我们识别文件的类型和用途,还是要正确命名。