Skip to content

Commit deb62ba

Browse files
committed
feat: add Linux basic use
1 parent 22beb04 commit deb62ba

16 files changed

+247
-85
lines changed

.idea/.gitignore

-8
This file was deleted.

.idea/inspectionProfiles/Project_Default.xml

-20
This file was deleted.

.idea/inspectionProfiles/profiles_settings.xml

-6
This file was deleted.

.idea/misc.xml

-7
This file was deleted.

.idea/modules.xml

-8
This file was deleted.

.idea/python_test_development.iml

-8
This file was deleted.

.idea/vcs.xml

-6
This file was deleted.

Linux/README.md

+244
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
## Linux 系统流行的几个主要的版本
2+
3+
**[putty 远程连接虚拟机的下载地址](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)**
4+
5+
> * **ubuntu(乌班图)**
6+
> * 是一个以桌面应用为主的 Linux 操作系统
7+
> * 由于是桌面应用的 linux 操作系统,所以说占用的资源是比较大的(尤其是作为服务器而言的话,占用的资源是很大的)
8+
> * 所以说我们不建议使用乌班图作为我们的服务器
9+
> * **CentOS**
10+
> * 对我们的服务器性能新型了优化操作
11+
> * 没有桌面应用,所以说性能高,并且稳定性高
12+
13+
## Linux 注意事项
14+
15+
> * 严格区分我们的大小写
16+
> * 在 linux 中,一切皆文件
17+
> * Linux 系统中的文件一般是不具备扩展名的,但是有一些文件为了提高阅读性,所以说就具备了扩展名
18+
> * 压缩包: **`*.gz | *.bz2 | *.tar.bz2 | *.tgz`**
19+
> * 二进制文件: **`*.rpm`**
20+
> * 网页文件:**`*.html *.css *.jsp *.php`**
21+
> * 脚本文件:**`*.sh`**
22+
> * 配置文件:**`*.conf`**
23+
> * 一定要把下面的以太网进行打开
24+
25+
![](../images/linux.png)
26+
27+
### Linux 具体的操作
28+
29+
> * `/` 代表的是我们的根目录
30+
> * 切换到根目录的方法是: `cd /`
31+
32+
33+
34+
## Linux 常用命令
35+
36+
### 查看 Linux 系统的 ip 地址
37+
38+
> * 对于我们旧版本的查看 ip 地址的方式是: `ifconfig`
39+
> * 但是现在的查看 ip 地址的方式是: `ip addr`
40+
41+
### Linux 系统的目录结构
42+
43+
> * `cd /`
44+
> * `ll` 显示我们的目录结构,或者说我们的 `ls` 也是可以的
45+
46+
![image-20241207193744109](..\images\Linux01.png)
47+
48+
> * **bin** 存放的是我们的二进制可执行文件
49+
> * **sbin** 存放的是只有超级用户才可以访问的二进制文件
50+
> * **etc** 存放的是系统配置文件
51+
> * **usr** 存放的是系统共享的资源,存放的是我们安装的应用
52+
> * ***home*** **存放的是普通用户的目录**
53+
> * ***root*** **存放的是超级用户的目录**
54+
> * ***dev*** **用户存放的是设备文件**
55+
> * **lib** 存放的是我们的程序运行时候的所需要的公共库以及模板
56+
57+
58+
59+
### Linux 系统的 ls [-options] 命令
60+
61+
> * `-a 或者 --all` 列出所有的文件,包含我们的隐藏文件
62+
> * `-l` 列出文件的详情信息,等价于 `ll`
63+
> * `目录名` 显示我们的指定目录的详情
64+
> * `-h` 就是显示信息给人看,更容易懂一点
65+
> * 所以说最全面的组合就是我们的: `ls -a -l 目录名` 或者说 `ll -a 目录名`
66+
> * `ls -ahl`
67+
> * `ll -ah`
68+
69+
70+
71+
### Linux 系统的 cd [-options] 命令
72+
73+
> * `cd ~` 返回的是当前用户的 home 目录
74+
> * `cd /` 直接返回根目录
75+
> * `cd /目录名` 返回的是从根目录开始的目录
76+
> * `cd ..` 返回上一级目录
77+
> * `cd -` 在操作的临近的两个目录之间进行切换
78+
> * **`pwd`** 显示我们当前所在的目录
79+
> * **`whoami`** 显示的是当前进行操作的用户是谁
80+
81+
82+
83+
### Linux mkdir 创建目录命令
84+
85+
> * `mkdir 目录名`
86+
> * `mkdir 目录名1 目录名1/目录名2`
87+
> * 实现的就是先创建我们的目录名1,然后随机创建目录名2
88+
> * `mkdir -p 目录名1/目录名2`
89+
> * 等价于上面命令的效果
90+
91+
92+
93+
### Linux rmdir|rm 删除目录命令
94+
95+
> * `rmdir 目录名`
96+
> * `rmdir 目录名1/目录名2 目录名1`
97+
> * 就是先删除我们的目录名2,然后删除我们的目录名1
98+
> * 因为如果目录中的内容不为空的话,那么就会导致最终的提示目录不为空,无法删除的效果了
99+
> * `rm -r 目录名1`
100+
> * 这个时候就是实现的是递归删除我们的目录,不管内部是否为空,都进行删除了
101+
> * `rm -rf 目录名` 就是实现的是强制递归删除,就没有上面的一个一个的问答式的删除了
102+
103+
![image-20241207203845514](..\images\Linux02.png)
104+
105+
106+
107+
### Linux vi/vim 命令编辑文件
108+
109+
> * `vi 文件名` 这个时候就实现了我们的进入了某个文件的编辑模式了
110+
> * 但是我们进行编辑文件的时候,我们需要指定编辑文件的模式
111+
> * **一般模式** —— 可以浏览文件内容,进行文件的快捷的操作,处于命令模式状态下的操作
112+
> * 单行复制 —— **`yy`**
113+
> * 多行复制 —— **`num yy`** `5yy`
114+
> * 粘贴操作 —— **`p`**
115+
> * 单行删除 —— **`dd`**
116+
> * 多行删除 —— **`num dd`** `5dd`
117+
> * **插入模式** —— 可以自由的编辑文件内容
118+
> * **底行模式**
119+
> * 在我们的底行模式中,我们可以对文件的操作进行修改的
120+
> * 可以退出文件的编辑: `q!`
121+
> * 可以保存文件并且退出 `wq 文件名`
122+
123+
![image-20241207210102559](..\images\Linux03.png)
124+
125+
> **根据上面的流程图我们是可以知道的是,我们的 vi/vim 的工作原理**
126+
>
127+
> **所以说我们进行编辑文件并且退出的具体步骤是:**
128+
>
129+
> * **vi/vim 文件名**
130+
> * 实习的是进入**命令模式**
131+
> * 这一步选择的是我们的**编辑文件的具体的模式是什么**
132+
> * **然后根据我们的选择实现进入不同模式的输入模式**
133+
> * **ESC 按钮**
134+
> * **就是实现的是我们的从输入模式转换到我们的命令模式**
135+
> * ****
136+
> * 在我们的命令模式中输入了 **** 后,**我们就可以实现进入我们的底行模式了**
137+
> * **在底行模式中我们是可以控制是否退出本次文件编辑的操作流程**
138+
139+
140+
141+
### Linux 查看文件内容 cat | more | less
142+
143+
> * **`cat 文件名`** 实现的就是我们的快速的查看我们文件的内容
144+
> * 但是我们需要主要的是我们的 **`cat`** 只可以实现我们的查看少部分的文件内容
145+
146+
> * **`more 文件名`** 实现的是使用分页的模式进行查看我们的文件内容
147+
> * **回车继续查看下一行,空格查看下一页,b返回上一页,q退出浏览**
148+
149+
150+
151+
### Linux cp 复制
152+
153+
> * **`cp 源文件目录 目标文件目录`**
154+
> * 这个就可以实现我们的将将源文件复制到我们指定的位置的操作了
155+
> * **`-r`** 就是实现的是递归的进行复制的操作
156+
157+
158+
159+
### Linux mv 移动
160+
161+
> * **`mv 源文件或者目录 目标文件或者目录`**
162+
> * 实现的就是我们的移动文件到指定目录的操作了
163+
> * 同时为了避免我们的目标位置存在一个相同名的文件照成最终的冲突,所以说,提供了可选项 **`-f`**
164+
> * **`mv -f 源文件或者目录 目标文件或者目录`**
165+
166+
167+
168+
### Linux ln 链接
169+
170+
> * **就是实现的是我们的多个文件的指向的是同一个节点或者指向不同的节点**
171+
> * 显示具体每个文件关联节点信息的操作是: **`ll -i`**
172+
> * 就是因为这种多个文件之间链接的节点相同,所以说最终多个文件实现查看的内容一致的
173+
> * **硬链接(.hard)**
174+
> * 就是实现的是具有**相同的** **i 节点** 以及**存储block块** ,可以看作是同一个文件
175+
> * **`ln 源文件 目标文件`**
176+
> * ![image-20241207235913880](..\images\Linux04.png)
177+
> * **硬链接的两个文件之间不可分区,不能针对目录进行使用**
178+
> * 那么这个时候我们的文件**真真被删除的时候是在没有任何的硬链接指向该 *i节点***
179+
> * **软链接(.soft)**
180+
> * **软链接文件和源文件的 i节点有所不同**,相当于就是对我们的源文件的一种快捷方式罢了
181+
> * **`ln -s 源文件 目标文件`**
182+
> * ![image-20241208000503129](..\images\Linux05.png)
183+
184+
185+
186+
### Linux find 命令
187+
188+
> * **`find [搜索范围] [搜索条件]`**
189+
> * 避免后面的大范围搜索资源,因为十分的占用系统资源
190+
> * **`find / -name foo`**
191+
> * 按照文件名搜索
192+
> * **`find / -iname foo`**
193+
> * 不区分大小写,按照文件名进行搜索
194+
> * 因为我们的 Linux 系统的文件名是严格区分大小写的
195+
> * **`find [检索范围] [检索关键字] [搜索条件] [时间范围]`**
196+
> * 该命令是用来实现的是寻找在规定时间内我们的修改文件的内容
197+
> * **时间范围设置**
198+
> * **-10** 表示的是在十天内进行修改了的文件
199+
> * **`10`** 十天内修改的文件
200+
> * **`+10`**
201+
> * **搜索条件设置**
202+
> * **`atime`** 访问文件的时间
203+
> * **`ctime`** 改变文件属性的时间
204+
> * **`mtime`** 修改文件内容的选择
205+
> * **`find / -mtime +10`**
206+
> * **`find [检索范围] -size [检索条件] [-a/o -size [另一个检索零界点]]`**
207+
> * **`.`** 就是检索范围中的在本级目录中进行寻找操作
208+
> * **`-size`** 就是表示的是根据文件大小进行检索
209+
> * **`-a`** 表示的是逻辑与
210+
> * **`-o`** 表示的是逻辑或
211+
> * 检索条件就是进行具体给定的文件大小限制
212+
> * **`-25k`** 寻找的是小于25kb 的文件
213+
> * **`25k`** 寻找的是文件大小等于 25kb 的文件
214+
> * **`+25k`** 寻找的是文件大小大于 25kb 的文件
215+
> * **`find . -size -25k -a -size +15k`**
216+
> * **`find [检索范围] [检索关键字] [检索条件] -exec [自定义需要执行的linux语句] {} \;`**
217+
> * 这样就可以实现的是将我们通过范围检索的机制实现把检索结果传给需要执行的 Linux 语句进行执行了
218+
219+
220+
221+
### Linux grep 命令
222+
223+
> * 实现的是根据我们的文件内容进行查找的方法
224+
> * **`grep [查找时所用下面的修饰符] 正则表达式 文件或者目录`**
225+
> * **`-i`** 实现的是忽略大小写进行查找
226+
> * **`-v`** 实现的就是取反的操作,排除我们查询到的那一行
227+
> * **`-n`** 实现的是打印出我们的查找到的那一行的行数
228+
229+
230+
231+
### Linux tar 命令
232+
233+
> * 我们的该命令可以实现的是帮助我们对文件进行解压和压缩的操作
234+
> * 进行压缩和解压时候的可选项
235+
> * **`c`** 必须书写,该选项决定了是进行我们的**压缩处理**
236+
> * **`x`** 必须书写,该选项决定了是进行我们的**解压处理**
237+
> * 其他可选项
238+
> * **`z`** 表示使用我们的 gzip 算法进行压缩
239+
> * **`v`** 显示压缩工程中使用的文件
240+
> * **`f`**
241+
> * **进行压缩的命令**
242+
> * **`tar -zcvf 压缩后的文件名.tar 需要进行压缩的源目录`**
243+
> * **进行解压的命令**
244+
> * **`tar -zxvf 需要解压的源文件 -C 指定解压后的路径`**

demo/thread.py

-19
This file was deleted.

images/Linux01.png

51.2 KB
Loading

images/Linux02.png

20.8 KB
Loading

images/Linux03.png

45.7 KB
Loading

images/Linux04.png

9.45 KB
Loading

images/Linux05.png

19.5 KB
Loading

images/linux.png

27.2 KB
Loading

README.md renamed to sql/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
> * `UDP(User Datagram Protocol)` 用户数据包协议没有三次握手,**不稳定不可靠,性能高**(视频通话)
1313
> * 代码
1414
15-
![](./images/img_01.png)
15+
![](../images/img_01.png)
1616

17-
![](./images/img_02.png)
17+
![](../images/img_02.png)
1818

1919
* ACK 就是应答的意思Acknowleage
2020
* TCP 的连接是全双工模式,所以说就要求我们的实现基本的两边的同意才可以执行某种行为
@@ -415,7 +415,7 @@
415415
>
416416
> * 用户管理功能的设计
417417
> * 考虑每一个数据库中的表的设计,每个表之间的联系
418-
> * ![img](./images/img.png)
418+
> * ![img](../images/img.png)
419419
420420
421421

0 commit comments

Comments
 (0)