笔记总结(Linux命令、网络、正则)

一、Linux终端命令


1. 启动终端的快捷键: ctr + alt + t
2. 终端字体放大: ctr+shift+'+'
3. 终端字体缩小: ctr+'-'
4. ls : 查看当前目录的文件信息
4.1 ls 路径: 查看指定目录的信息
5. pwd: 查看目录所在的路径
5. touch: 创建文件
5.1 touch 1.txt 2.txt 创建多个文件
5.2 touch {1..3}.txt 创建多个文件
6. mkdir: 创建文件夹
7. rmdir: 删除空文件夹
8. rm: 默认删除的是文件文件, 提示:删除文件夹需要加上-r选项, -r:以递归的方式把文件夹里面的所有文件全部删除
9. cd: 切换目录
9.1: cd 目录名: 切换到指定目录
9.2: cd .: 切换到当前目录
9.3: cd ..: 切换到上一级目录
9.4: cd ~: 切换用户所在目录
9.5: cd : 切换用户所在目录 , 等价与 cd ~
9.6: cd -: 切换到上一次目录
10. 绝对路径: 从根目录算起的路径就是绝对路径
11. 相对路径: 从当前目录算起的路径就是相对路径
12. 总结: 如果要进入的目录离根目录和当前目录都不近,统一使用绝对路径
13. 自动补全: 两次tab键
14. cp: 拷贝
14.1 cp 文件名  路径 : 把文件拷贝指定路径(指定目录)
14.2 cp 文件名 路径/新文件名 : 把文件拷贝到指定路径,然后修改程新的文件名
14.3 cp 文件夹 路径 -r: 拷贝文件夹到指定目录,提示:需要加上-r选项
14.4 cp 路径/文件名 路径/新的文件名 : 把指定目录下的文件拷贝到新的目录下并重命名
14.5 cp 文件名 新的文件名: 拷贝文件把文件改成新的文件名,原文件还存在
15. mv: 移动
15.1 mv 文件名 路径: 把文件移动到指定路径(目录)
15.2 mv 文件名 路径/新的文件名 : 先把文件移动到指定目录然后重命名
15.3 mv 路径/文件名 目标路径/新的文件名: 把指定文件移动到目标路径里面然后重命名
15.4 mv 文件名 新的文件名 : 重命名
16. tree: 以目录数的方式显示目录文件信息
16.1 tree 路径: 查看指定路径的树状目录信息
17. cal: 查看当前月份的日历
17.1 cal -y: 查看全年的日历
18. date: 当前时间
18.1 date "+%Y年%m月%d日 %H:%M:%S" 获取当前时间的年月日十分秒
19. history: 查看历史命令
19.1 !历史命令编号: 执行指定命令
20. 终端命令的格式
20.1 命令名 命令选项 参数  -》 命令名(ls, cp, mv) 命令选项(-r) 参数(文件名或者路径),提示: 选项和参数可以进行调换位置,但是如果报错选项需要加在命令的后面,比如: scp -r
20.2 命令的选项和参数可以有多个也可能没有


21. 查看帮助
21.1 --help : 命令 --help
22.2 man : man 命令
22. rm 的选项  rm -rf
22.1 -i: 删除文件或者文件夹的时候有消息提醒
22.2 -r: 以递归的方式删除文件夹里面的所有内容
22.3 -d: 删除空文件夹
22.4 -v: 显示删除后描述信息
22.5 -f: 删除的文件不存在不会报错,如果存在直接删除
23. ls选项
23.1 -l: 以列表方式显示文件信息
23.2 -a: 显示隐藏文件
23.3 -h: 显示文件大小的单位
23.4 ll ->ls -al
23.5 l -> ls
24. mkdir 选项
24.1 -p: 把所依赖的文件夹提前创建好
25. cp 选项
25.1 -f: 直接覆盖,默认cp也是覆盖,一般不用设置
25.2 -i: 如果文件存在显示提醒
25.3 -v: 显示拷贝后的路径描述
25.4 -r: 以递归方式把文件夹里面的所有内容全部拷贝过去
26. mv 选项
26.1 -i: 如果文件存在显示提醒
26.2 -v: 显示移动后的路径描述
26.3 -f: 直接覆盖,默认mv也是覆盖,一般不用设置
27. 重定向(>, >>): 把重新规定显示方向,把终端显示的内容保存到文件里面,以后查看信息在文件里面进行查看即可
27.1 > 表示如果文件存在先把文件内容清空然后再写入,相当于文件操作的w模式
27.2 >> 表示如果文件存在,在原有数据的基础上进行追加写入,相当于文件操作的a模式
27.3 总结: 可以结合重定向使用的命令: ls, tree,cat
28. more: 分屏显示
28.1 f: 下一页(空格)
28.2 b: 上一页(只针对与文件,结合管道使用上一页看不了(b不管用))
28.3 回车: 下一行
28.4 q:退出


29. gedit: 文本编辑工具的命令, 可读可写
30. cat: 在终端查看文件内容,只读不能编辑, 提示:只适合查看小型文件
31. cat 1.txt 2.txt > 3.txt 文件的合并
32. |: 管道,可以理解成存储数据的容器
32. 1.可以结合管道使用的命令有: ls, cat ,tree 等命令
33. 链接
33.1 软链接: 好比是快捷方式,原文件删除后快捷方式就不能使用了,注意点: 创建软链接不会对硬链接数加1
33.2 硬链接: 好比一个人有多个名字,某一个名字不适用了,通过其它名字以后可以找到这个人,含义:原文件
删除通过硬链接文件依然可以获取文件数据, 注意点:创建硬链接,硬链接数会加1, 可以结合引用计数去理解硬链接数
33.3 注意点: 文件夹不能创建硬链接,但是可以创建软链接
33.4 坑点总结: 如果创建的软链接和原文件不在同一目录里面,那么原文件的路径使用绝对路径,比如: ln -s /home/python/Desktop/ABC/1.txt ~/Desktop/1-s.txt


33.5 补充:为什么创建软链接如果没有和原文件在同一个目录里面需要使用绝对路径,因为默认情况打开软链接是在当前目录里面找原文件的, 所以需要指定原文件的路径
@@@@
34. grep: 在文件里面查找指定内容 pip list|grep mysql
34.1 -n: 显示行号
34.2 -i: 忽略大小写
34.3 -v: 根据内容取反
支持的通配符: ^, $, [123], .  使用的方式 grep "^a" 1.txt -n
35. find: 在指定目录查找文件 find 路径 -name "文件名"
35.1 -name: 根据文件名去查找
35.2 -size: 根据大小去查找,但是不准确,一般不用
35.3 -perm: 根据文件权限去查找
支持的通配符: *,? [], *: 匹配0个或者多个字符, ?:匹配任意一个字符 [35]:匹配列举的任意一个字符 
使用方式: find . -name "*.txt"
36. ls: 通过通配符查看文件信息
支持的通配符: *, ? , []
总结: 通配符就是起到了模糊查询的作用
使用方式: ls *.txt, 注意点不用加上双引号
37. tar 打包
37.1 tar -cvf test.tar *.txt -> test.tar 注意是以包,没有压缩
38. gzip 压缩
38.1 gzip test.tar -> test.tar.gz 压缩包
39. tar 打包及压缩
39.1 tar -zcvf test.tar.gz *.txt -> test.tar.gz 压缩包
39.2 -z: 压缩 -c: 打包  v: 显示打包文件信息 f:指定文档名称
40. tar 解包
40.1 tar -xvf test.tar -> 包里面的文件
41. gzip解压缩
41.1 gzip -d test.tar.gz -> test.tar 包
42. tar 解压缩及解包
42.1 tar -zxvf test.tar.gz -> 压缩包里面的文件
42.2 -C: 解压到指定目录  tar -zxvf test.tar.gz -C ./123
43. bz2压缩及解压缩
43.1 tar -jcvf test.bz2 *.txt -> test.bz2 压缩包
43.2 tar -jxvf test.bz2  -> 压缩包里面的文件
43.3 tar -jxvf test.bz2 -C 456 ->把压缩包解压到指定路径
44. zip 压缩和解压缩
44.1 zip test[.zip可选] *.txt ->test.zip 压缩包
44.2 unzip test.zip  -> 获取压缩包里面的文件
44.3 unzip test.zip -d 567 ->把压缩包解压到指定路径
45. chmod: 修改权限
45.1 用户角色: u: 当前用户  g:同组用户 o: 其它用户  a: 所有用户
45.2 权限: r(4):可读 w(2): 可写 x(1): 可执行
45.3 使用字母法设置文件可读可写可执行 chmod a=rwx 1.txt
45.4 使用数字法设置文件可读可写可执行 chmod 777 1.txt
45.5 使用字母法设置文件没有权限 chmod a=- 1.txt  或者  chmod a= 1.txt
45.6 使用数字法设置文件没有权限 chmod 000 1.txt
45.7 使用字母法设置不同用户的权限: chmod u=r,g=w,o=rw 1.txt
46. cp选项
-a: 保留文件权限,针对是其它用户的权限, -a包含-r选项 也就是说-a可以对文件夹进行拷贝
47. which: 查看命令的位置(路径)
47. which ls
48. sudo -s: 切换到管理员   su -
49. 执行命令报权限不够可以在命令前面加sudo, 比如: sudo apt-get install sl
50. who: 查看当前登陆的用户
51. whoami:当前用户
52. passwd: 修改密码
53. exit: 退出用户
54. scp: 远程拷贝
54.1 scp 1.txt python@192.168.36.106:/home/python/Desktop  -》 把本地的文件拷贝到远程服务器上
54.2 scp -r test python@192.168.36.106:/home/python/Desktop-》 把本地的文件夹拷贝到远程服务器上
54.3 scp python@192.168.36.106:/home/python/Desktop/1.txt . -》把服务器的文件远程拷贝到本地
54.4 scp -r python@192.168.36.106:/home/python/Desktop/test . -》把服务器的文件夹远程拷贝到本地
55. ssh: 远程登陆
56. vim的使用
56.1 vim的模式:命令模式,编辑模式,末行模式
56.2 命令模式进入编辑模式:i  命令模式进入末行模式:冒号(:), 提示编辑不能进入末行模式需要通过命令模式进入,
命令模式是编辑模式和末行模式的中转站
56.3 编辑模式和末行是进入命令模式:esc
56.4 yy:复制光标所在行, 提示: 3yy:复制光标所在行及下面两行数据
56.5 p: 粘贴, 提示: 粘贴多次: 数字+p
56.6 dd: 剪切(删除)
56.7 V: 选中光标经过的行, 提示:把光标经过的行进行复制使用:y
56.8 shift+6: 回到行首
56.9 shift+4: 回到行末
56.10 G: 回到最后一行
56.11 gg: 回到第一行
56.12 数字+G:回到指定行
56.13 x: 从前往后删除数据
56.14 X: 从后往前删除数据
56.15 上下左右, 上: k, 下:j 左:h 右:l  可以使用上下左右的方向键
56.16 ctr+f: 看下一页 ctr+b: 看上一页
56.17 查询: ->:/1 , n:查看下一个内容 N:查看上一个内容
56.18 替换: -> :%s/1/2/g  全局替换    %:整个文件 s:替换 1:原内容 2:替换后内容 g: 全局
56.19 替换指定行内容 -> :38,39s/2/3 替换38,39两行数据
56.20 u:撤销   ctrl+r :反撤销
56.21 shift + > 往右缩进     shift+ < 往左缩进
56.22 . 重复上一次操作
56.23 :wq = :x -> 保存退出  :w 只是保存




二、有关网络笔记
1. 网络:把双方或者多方的设备(电脑,智能手机,ipad等)连接起来的一个工具
  1.1 学习网络的目的: 通过网络把数据从一方传递到另外一方,完成数据的共享
2. ip地址
2.1: ip地址:标识网络中唯一的一台设备
2.2. ip地址的作用:通过ip地址找到唯一的一台设备,然后给设备发送数据
2.3. ip地址分为 ipv4 和 ipv6  , ipv4: 点分十进制 ipv6:是十六进制的数据
3. 私有ip: 在局域网中使用的ip地址
3.1 192.168.xx.xx  172.16.xxx.xx  10.0.xxx.xxx
3.2 本机ip地址: 127.0.0.1  本机域名: localhost
3.3 域名方便大家记忆某个电脑的ip地址, 域名和ip地址一一对应的
3.4 ping 127.0.0.1 说明电脑的网卡没有问题
4. ifconfig & ping
4.1 ifconfig: 查看网卡信息 , window: ipconfig
4.2 ping: 检查网络是否有问题
4.3 ping 127.0.0.1 说明电脑的网卡没有问题
4.4 ping 192.168.36.104 说明在同一个局域网内
4.5 ping www.baidu.com 说明能够上网
5. 端口:
5.1 端口就是数据传入和传出的一个通道,好比教室的大门

6. 端口号
6.1 端口号:使用唯一的一个编号表示一个端口,范围0-65535
6.2 知名端口:系统使用的端口号 范围:0-1023
6.3 动态端口: 程序员可以给程序设置的端口号 范围:1024-65535, 如果不给程序设置端口号,那么系统自动在动态端口范围内找一个空闲的端口号给程序进行设置
6.4 netstat -an 查看哪些端口号在使用
6.5 lsof -i[tcp/udp]:8080 根据端口号找对应的应用程序 
6.6 提示: 如果查看其它用户的应用程序,需要加上sudo,比如:sudo lsof -i:3306
6.7 kill -9 进程编号 : 强杀进程
7. 网络通信流程
7.1 通过ip地址找到对应的设备,然后通过端口号找到端口,然后通过端口把数据给应用程序
8. socket
8.1 socket翻译成中文是套接字,是数据的搬运工,是负责数据从一方发送到另外一方的,完成不同电脑进程之间通信的工具









三、tcp和udp笔记


1. TCP: 面向连接可靠的传输协议, 全拼:Transmission Control Protocol
2. UDP: 用户数据报协议  全拼:User Datagram Protocol, 不是面向连接的,创建socket就可以直接发送数据,不能保证数据的可靠性,但是速度快
3. TCP的特点
3.1 面向连接, 间接验证对方地址的有效性
3.2 可靠的传输
3.2.1 应答机制,对方收到数据底层会回复
3.2.2 超时重传,隔一段时间会给对方重新发生数据,如果对方一直没有回复那么会认为对方掉线了。
3.2.3 错误校验,发送方发送的数据包和接收方接收的数据包序号不一致,tcp会自动对数据包进行排序, 如果数据包重复会删除重复的数据包
3.2.4 流量控制, 如果对方的网卡缓冲区达到一定上限,发送方就不能再发送数据,等待数据开始接收完成以后再给其发送数据,保证电脑不被卡死
4. TCP和UDP的不同点
4.1 tcp是面向连接的,udp不面向连接
4.2 tcp能保证数据的有序和准确性, udp不能保证
4.3 tcp有超时重传, udp没有
4.4 tcp有错误校验机制,udp没有
4.5 tcp有舍弃重复数据包的机制,udp没有
4.6 tcp有流量控制 ,udp没有
4.7 tcp适合做文件上传和下载,也就是说绝大多数应用使用的都是tcp
4.8 udp适合做广播,比如:飞秋上线,音视频传输:比如:qq视频和微信音视频
4.9 udp传输速度比tcp要快,资源开销udp比tcp要少


四、


并发: 任务数大于cpu的核数叫并发,多个任务交替执行, 并发看起来是一起运行其实是一个假象。
并行: 任务数小于或者等于cpu的核数并行,并行才能真正意义上多个任务一起运行




五、1. 进程:通俗理解一个运行起来的程序或者软件叫做进程
1.1 每次启动一个进程都向操作系统索要运行资源,进程是操作系统资源分配的基本单位
1.2 默认情况下启动一个进程默认只有一条线程,这个线程主线程, 线程是依附在进程里面的,没有进程就没有线程,进程可以有多个线程
1.3 如何理解进程:可以把进程想成公司,公司会给员工提供办公资源(办公电脑,办公桌椅等资源), 真正干活的是员工, 公司好比进程,员工好比是线程
2. 进程和线程的对比
2.1 进程: 每次启动一个进程都需要向操作系统索要运行资源,进程是操作系统资源分配的基本单位
2.2 线程: 执行代码的分支,线程是cpu调度的基本单位, 线程是依附在进程里面的,没有进程就没有线程,默认一个进程只有一个线程,但是可以开辟多个线程
2.3 进程不共享全局变量, 线程共享全局变量但是要注意资源竞争数据错误的问题, 可以使用线程同步(join)或者互斥锁
2.4 多进程开发比单进程多线程开发稳定性要强, 因为某个进程死了不会影响其它进程的运行,但是单进程多线程开发,如果这个进程死了,那么进程中的所有线程都不能再运行了
2.5 多进程开发比单进程开发资源要分配的多,多线程可以利用进程中的资源,但是每次启动一个进程都需要向操作系统索要运行资源



六、1. 进程、线程、协程对比
1. 先有进程,然后进程里面可以创建多个线程,线程里面可以有多个协程
2. 进程之间不共享全局变量,线程之间共享全局变量,但是要注意资源竞争的问题
3. 多进程开发比单进程多线程开发稳定性要强,但是多进程开发比多线程开发资源开销要大
4. 线程之间执行时无序的,但是协程在不开辟线程的基础上可以完成多任务,多个任务按照一定顺序交替执行
5. 协程以后主要用在网络爬虫,网络请求,每开辟协程大概需要5k空间
6. 开辟一个线程大概需要512k空间,进程需要资源更多


七、正则表达式


7.1匹配单个字符
# .     匹配任意1个字符(除了\n)
# [ ] 匹配[ ]中列举的字符
# \d 匹配数字,即0-9
# \D 匹配非数字,即不是数字
# \s 匹配空白,即 空格,tab键
# \S 匹配非空白
# \w 匹配单词字符,即a-z、A-Z、0-9、_、汉字
# \W 匹配非单词字符(# \W: 匹配不是字母,不是汉字,不是数字,不是下划线)


7.2匹配多个字符
# * 匹配前一个字符出现0次或者无限次,即可有可无
# + 匹配前一个字符出现1次或者无限次,即至少有1次
# ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
# {m} 匹配前一个字符出现m次
# {m,n} 匹配前一个字符出现从m到n次
# {m,}: 至少出现m次
#  m:    0表示匹配0次


7.3 以xx开头和以xx结尾
# ^: 表示以什么字符串开头
# 扩展
# [^47]: 除了4或者7以外都可以匹配
# ^: 表示以什么字符串开头
# $: 表示以什么字符串结尾


7.4 匹配分组
# | 匹配左右任意一个表达式
# (ab) 将括号中字符作为一个分组
# \num 引用分组num匹配到的字符串
# (?P<name>) 分组起别名
# (?P=name) 引用别名为name分组匹配到的字符串



















































































































  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值