计算机网络基础
一、IP地址
了解IP地址扮演的角色有助于明白IP地址的含义乃至IP地址和子网掩码的关系
IP(Internet Protocol—网际互连协议),是TCP/IP体系中的网络层协议,它可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层。他最大的作用是网际互连,因此它是统一的国际标准,大家都按这一套来,网际中传输的额资源只有通过IP识别才能找到网关(局域网内部负责人),再通过网卡(MAC地址)进而定位到电脑。简单来说,IP就是位于网络层的一个通用的用来标识网络主机进行通讯的协议。
TCP/IP体系涵盖很广,包括应用层:Telnet、FTP、SMTP等,传输层:UDP、TCP,数据链路层:ARP、RARP,网络层:ICMP、IP、IGMP,每个协议都发挥着重要的作用。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”。
二、子网掩码
子网掩码是一个32位的2进制数 ,它必须结合IP地址一起使用。
子网掩码只有一个作用,就是将某个IP地址划分成“网络地址”和“主机地址”两部分。
其实很多时候,你并不知道这个IP地址究竟是A类、B类还是C类地址,那么子网掩码的作用就出现了,子网掩码通过和IP地址的“与”运算,求出主机地址是多少。
三、广播地址
A类地址分配给规模特别大的网络使用,B类地址分配给一般的中型网络,C类地址分配给小型网络,如局域网,C类地址分配给小型网络,如局域网。
很多情况下IP地址会以十进制表示,但是大家也不要忘了他的二进制表现形式
这儿的IP地址表现形式参考二进制,若从十进制表现形式(例1.0.0.0)来看,点隔开了每个字节(1字节8位),也就是说A类地址第一个字节是网络地址、后三个字节是主机地址。
比如一个C类IP地址:192.168.1.1,那么网络地址:192.168.1.0、主机地址:0.0.0.1
网络地址是子网中最小的地址,主机地址该网段中 主机的地址编号,大家把网络地址想象成街道地址,把主机地址想象成门牌号就容易理解了,两者结合的IP地址就是具体的家庭地址(电脑主机)。
广播地址是专门用于同时向网络中所有工作站进行发送的一个地址
广播地址是该子网主机地址全1的地址,即子网中最大的地址
比如案例1中的网络地址192.163.0.0(二进制11000000 10100011 00000000 00000000),将其主机地址位置都填上1(二进制11000000 10100011 11111111 11111111),那么他的网络地址就是192.163.255.255(十进制),举个例子,不一定符合现实~
计算方式:广播地址 = (~子网掩码) | 网络地址
这计算公式意思是(子网掩码位取反)或网络地址,需要相关知识,详情见此链接:位运算 看这篇就够了
个人建议形象理解吧,往网络地址的主机地址位置(都是0)填上1即可,下边的案例二算是进阶吧,有需求的同学可以学习下。
vim编辑器基本操作
一、vim的三种模式
命令模式:不能对文件直接编辑,只能通过快捷键进行一些操作(如移动光标、复制、粘贴等),打开vim后默认进入命令模式;
末行模式:可在末行输入一些命令对文件进行操作(如搜索、替换、保存、退出、高亮等);
编辑模式:可对文件内容进行编辑;
vim的进入和退出
进入:
语法1:vim 文件路径 //直接打开指定文件(光标位于首行或上次关闭文件时光标的所在行)
语法2:vim +数字 文件路径 //打开指定文件并将光标移动到指定行(数字对应的行数)
语法3:vim +/关键词 文件路径 //打开指定文件并高亮显示关键词
语法4:vim 文件路径1 文件路径2 文件路径3 //可同时打开多个文件,文件之间可切换操作
二、vim模式切换(重点)
1.切换到命令模式
用vim指令打开文件时默认为命令模式;
按一下键盘ESC键可从编辑模式切换到命令模式;
按一下或连按两下ESC键或用键盘删除末行模式下的英文符号:可从末行模式切换到命令模式
2.切换到末行模式
命令模式下键盘输入英文符号:可切换到末行模式;
3.切换到编辑模式
命令模式下键盘输入字母i或a(还有其他字母也可以这两个比较常用)可切换到编辑模式以编辑
注意:vim刚打开文件时默认为命令模式,命令模式可切换到末行模式或编辑模式,但末行模式与编辑模式之间不能直接相互切换;
三、命令模式
语法1:^ //键盘输入符号^,光标移动到光标所在行的行首
语法2:$ //键盘输入符号$,光标移动到光标所在行的行尾
语法3:gg //键盘输入字母gg,光标移动到文件的首行
当输入一个g时不是正确语法在右下角可以看到输入的内容g,当输入两个g时立刻会执行命令,这里不便演示,只需按语法输入命令即可执行
语法4:G //键盘输入字母G,光标移动到文件的尾行
语法5:ctrl+b //键盘ctrl+b,向上翻屏(前提是文件内容足够翻屏)
语法6:ctrl+f //键盘ctrl+f,向下翻屏
语法7:数字G //键盘输入数字+字母G,光标移动到指定行(数字对应的行数)
语法8:数字+键盘方向键上/下 //键盘输入数字+键盘方向键上/下,光标以光标所在行为准向上/下移动指定行(对应的数字)
语法9:数字+键盘方向键左/右 //键盘输入数字+键盘方向键左/右,光标以光标所在位置为准向左/右移动指定个字符(对应的数字)
语法10::数字 //键盘输入英文符号:+数字再回车,光标移动到指定行(属于末行模式)
复制与粘贴
语法1:yy //键盘输入字母yy,复制光标所在行
语法2:数字yy //键盘输入数字+字母yy,从光标所在行开始向下复制指定行(数字对应的行数,包括了光标所在行)
语法3:ctrl+v //键盘ctrl+v进入可视化复制,用键盘的方向键控制复制区域,然后键盘输入字母yy即可完成复制
上图中,进入可视化复制后可用键盘方向键控制复制区域,选中区域后输入yy即可完成复制,右下角的3*6表示当前复制区域的大小,17,4表示光标的当前位置是第17行第4个字符
粘贴语法:p //键盘输入字母p即可在光标处粘贴复制的内容
3.剪切/删除
语法1:dd //键盘输入字母dd,剪切光标所在行,光标所在行的下面行会上移填补剪切行
语法2:数字dd //键盘输入数字+字母dd,从光标所在行起向下剪切指定行(数字对应的行数,包括了光标所在行),后面行会上移填补剪切部分
语法3:D //键盘输入字母D,剪切光标所在行但后面行不会上移填补剪切行,剪切行变空
删除语法:删除即剪切后不复制,删除操作使用剪切语法
4.撤销与恢复
撤销语法::u //键盘输入符号:和字母u再回车(属于末行模式),撤销上一步操作
恢复语法:ctrl+r //键盘ctrl+r,恢复撤销操作(即取消之前的撤销操作)
五、末行模式
1.保存
语法1::w //键盘输入英文符号:+字母w再回车,保存当前文件
语法2::w 文件路径 //键盘输入英文符号:+字母w+空格+文件路径再回车,另存为指定文件
2.退出
语法1::q //键盘输入英文符号:+字母q再回车,退出当前文件
语法2::wq //键盘输入英文符号:+字母wq再回车,保存当前文件并退出
语法3::q! //键盘输入英文符号:+字母q+英文符号!再回车,不保存对文件的修改并退出
语法::q外部命令 //键盘输入英文符号:+字母q+外部命令再回车,外部命令如 ls 命令等,不退出文件的同时执行外部命令,执行后按任意键可以切换回文件
4.搜索/查找
语法1::/关键词 //键盘输入英文符号:+/+关键词再回车,按关键词查找,查找到的内容会被高亮显示
语法2:N/n //键盘输入字母N/n,光标移动到上/下一个查找到的内容(属于命令模式)
语法3::nohl //键盘输入英文符号:+字母nohl再回车,取消查找到的内容的高亮显示,若不取消内容会一直高亮显示
5.替换
语法1::s/搜索的内容/新内容 //用新内容替换光标所在行第一处被搜索到的内容
语法2::s/搜索的内容/新内容/g //用新内容替换光标所在行全部被搜索到的内容
语法3::%s/搜索的内容/新内容 //用新内容替换整个文件每一行第一处被搜索到的内容
语法4::%s/搜索的内容/新内容/g //用新内容替换整个文件全部被搜索到的内容
用户及权限管理
1.用户账户
用户账号文件:
保存用户名称、宿主目录、登录Shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
管理员用户:登录后显示“#”,拥有本机最高权限,root是操作系统默认的超级用户账号
普通用户:登录后显示“$”,账号权限受限制,一般只有在用户自己的家目录中有完整权限
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。
root:x:0:0:root:/root:/bin/bash
字段1:用户帐号的名称
字段2:用户密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
2.组账户
组账号文件:
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组 GID 号。
附加组(公共组):用户除了基本组以外,额外添加指定的组。
root:$6$VyOUGqOC$v5HlLM1wagZC/FwGfnrtJFnlT:18445:0:99999:7:::
字段1:用户帐号的名称
字段2:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
字段9:保留字段(未使用)
添加用户账号-useradd
useradd 【选项】 用户名
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。
-u | 指定用户的 UID 号,要求该 UID 号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录 |
-e | 指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式 |
-g | 指定用户的基本组名(或使用 GID 号),对应的组名必须已存在 |
-G | 指定用户的附加组名(或使用 GID 号),对应的组名必须已存在 |
-M | 不建立宿主目录 |
-s | 指定用户的登录Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统) |
[root@bogon ~]# useradd test -u 2000 -G root -M -s /bin/noloqin -e 2024-5-1 #创建一个用户名为test,uid为2000,附加组为root,不登陆shell,不创建宿主目录,失效时间为2024年5月1日的用户
[root@bogon ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon ~]# tail -1 /etc/passwd
test:x:2000:2000::/home/test:/bin/noloqin #/bin/noloqin是不登录shell
[root@bogon ~]# tail -1 /etc/shadow
test:!!:19827:0:99999:7::19844: #19844是失效时间
[root@bogon ~]# id test
uid=2000(test) gid=2000(test) 组=2000(test),0(root)
[root@bogon ~]#