本文是 知识点积累 系列文章的第六篇,记录日常学习中遇到的 操作系统相关 的知识点,包括 Linux、Windows、MacOS等
1.Linux相关
1.1.shell脚本
1.2.命令相关
1.2.1.vim命令
1.2.2.nslookup命令
1.2.3.curl命令
1.2.4.nano命令
- nano是一个符终端的文本编辑器,比vi/vim使用更简单些
- 命令详解:https://wangchujiang.com/linux-command/c/nano.html
1.2.5.ls命令
-
ls怎么查看文件大小
shls [-lh] [-s] -l:以长格式显示文件和目录的列表,以字节为单位显示大小。(请参见下面的示例。) -h:文件或目录大小大于 1024 字节时,请以 KB、MB、GB 或 TB 来表示文件大小和目录大小。此选项还可以修改 -o、-n、-@ 和 -g 选项显示的输出,以使用新格式显示文件或目录大小。有关更多信息,请参见 ls(1) 手册页。 -s:显示文件和目录(以块为单位)的列表。
1.2.6.make命令
- make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。可以用来编译和安装 各种内核和开源项目。
- makefile:描述项目代码的依赖关系,make命令就是依赖这个文件,对项目进行编译的
- 学习博客:https://www.ruanyifeng.com/blog/2015/02/make.html
1.2.7.netstat命令
-
netstat命令用于显示网络状态,学习博客:https://www.runoob.com/linux/linux-comm-netstat.html
-
netstat输出结果默认有6列
shProto Recv-Q Send-Q Local Address Foreign Address State
-
Proto:协议,TCP/UDP
-
Local Address:网络连接是有2方参与,Local Address表示自己这方的地址 ip:port
-
Foreign Address:网络连接是有2方参与,Foreign Address表示对面那方的地址 ip:port
-
State :表示当前的网络连接中,自己这方处于出于什么阶段。
- 这就是3次握手、4次挥手的那些状态
- 比如:客户端关闭连接,我们立马执行netstat,可以看到客户端的tcp连接,处于TIME_WAIT状态,这就是在等待2个MSL后,才能关闭连接
shroot@graham-virtual-machine:~# netstat | grep 34819 tcp 0 0 localhost:51908 localhost:34819 TIME_WAIT
-
1.2.8.ps命令
- ps命令能够给出当前系统中进程的快照,注意是执行命令那一时刻的快照。动态的话,需要使用top命令
- 学习博客参考:
1.2.9.ufw命令
-
ufw 是 Uncomplicated Firewall 的简称,是linux用来管理防火墙的命令
-
常用操作:
-
查看 当前防火墙 开放端口的情况
shsudo ufw status
-
开放指定端口
shsudo ufw allow 12345
-
-
具体的学习博客:https://www.zzxworld.com/posts/linux-ufw-firewall-command
1.2.10.telnet命令
-
telnet 通常用于远程登录,或者用于测试一个ip+port是否畅通
-
常用命令:
-
远程登录,能登录上就说明是畅通的
shtelnet ip port
-
-
windows下没有telnet的问题
- windows下默认没有开启telnet,需要在控制面板->windows功能->telnet客户端开启
- 如果还不能远程连接,再按win+R,打开运行窗口,输入services.msc,打开服务窗口,把这个服务开启
-
telnet学习博客:
1.2.11.iptables命令
- iptables原理:https://zhuanlan.zhihu.com/p/545054578
- iptables命令学习:https://wangchujiang.com/linux-command/c/iptables.html
1.3.Linux琐碎知识点
1.3.1.GNU 是什么,和 Linux 是什么关系?
- 以下内容是从 https://www.zhihu.com/question/319783573/answer/656033035 拷贝的一个匿名评论,说的很清楚
- Unix 系统被发明之后,大家用的很爽。但是后来开始收费和商业闭源了。
- 一个叫 RMS 的大叔觉得很不爽,于是发起 GNU 计划(GNU's Not Unix),模仿 Unix 的界面和使用方式,从头做一个开源的版本。
- 然后他自己做了编辑器 Emacs 和编译器 GCC。因此,GNU 是一个计划或者叫运动。
- 在这个旗帜下成立了 FSF,起草了 GPL 等。
- 接下来大家纷纷在 GNU 计划下做了很多的工作和项目,基本实现了当初的计划。包括核心的 gcc 和 glibc。
- 但是 GNU 系统缺少操作系统内核。原定的内核叫 HURD,一直完不成。同时 BSD(一种 UNIX 发行版)陷入版权纠纷,x86 平台开发暂停。
- 然后一个叫 Linus 的同学为了在 PC 上运行 Unix,在 Minix 的启发下,开发了 Linux。注意,Linux 只是一个系统内核,系统启动之后使用的仍然是 gcc 和 bash 等软件。
- Linus 在发布 Linux 的时候选择了 GPL,因此符合 GNU 的宗旨。
- 最后,大家突然发现,这玩意不正好是 GNU 计划缺的么。于是合在一起打包发布叫 GNU / Linux。然后大家念着念着省掉了前面部分,变成了 Linux 系统。
1.3.2.什么是GPL协议
- GPL,全称 General Public License,通用公共授权协议,常用的开源协议。最早是由斯托曼撰写,用于GNU计划
- 科普性学习:
2.windows相关
2.1.查看端口占用
- netstat -aon|findstr "8081"
- https://www.runoob.com/w3cnote/windows-finds-port-usage.html