上一篇学习了CentOS的常用指令CentOS指令学习-CSDN博客
现在我们接着学习
一、Vi编辑器
这是CentOS中自带的编辑器
三种模式
进入编辑模式后
- i:在光标所在字符前开始插入
- a:在光标所在字符串后开始插入
- o:在光标所在行的下面另起一新行插入
- s:删除光标所在的字符并开始插入
在文件输入完成后,esc返回编辑模式,然后:就可以进入末行模式
:wq 保存并退出
:q! 强制退出不保存
基本使用
翻页
ctrl + f 向下翻一页
ctrl + b 向上翻一页
删除
编辑模式:
dd:删除光标所在行
[number]dd:从光标行开始删除number行,如3dd就是删除三行
末行模式:
:1.4d 删除第一行到第四行
复制
编辑模式:
yy 复制光标所在行
2yy 从光标行开始复制2行,同样的2是number,可以更换
p 粘贴
查找关键字
末行模式:
:/ key 这里面的key可以更换,这个指令就会查找叫key的关键字
n 查找博客
小问题解决
当我们使用:q!指令去强制退出一个编辑过的文件之后,下一次打开就会出现这个提示
这是因为,我们编辑的其实是这个文件的swp文件,当我们正常使用:wq保存并退出时,就会将swp文件的内容转移到源文件中并销毁swp文件。然而我们直接使用:q!指令就没有这个操作了,所以一打开文件就会检测到swq还存在并发起警告。这并不影响使用,不过如果觉得每次都警告很碍眼的话,可以直接手动将swp文件删掉
这样就不会提醒了。
二、系统管理
什么是服务,在windows中,我们打开任务管理器可以看到注册完的服务,如mysql
服务管理
systemctl(system controller)是CentOS7的服务工具中主要的工具
systemctl list-unit-files 查看服务列表
- systemctl start [服务名] 启动服务
- systemctl stop [服务名] 关闭服务
- systemctl restat [服务名] 重启服务
- system status [服务名] 查看服务状态
比如我现在要关掉防火墙,对防火墙进行操作
此时的firewalld.service状态就是dead,也就是关闭状态
开机启动服务
和windows一样,我们可以让某些服务直接在我们启动linux之后就直接启动
systemctl enable [服务名] 开机自动启动服务
systemctl disable [服务名] 开机禁止启动服务
进程管理
什么是进程?同样打开Windows的任务管理器,可以看到此时正在运行的应用与后台进程
进程查看
ps -ef 查看进程列表
这个指令用于报告当前系统的进程状态,可以搭配kill指令随时中断,删除不必要的程序
kill -9 [进程id] 杀死指定id的进程,-9是强制杀死
解释一下这个-9是什么意思,kill 默认是-15,一般不使用默认的,它被称为优雅的退出,信号只是通知对应的进程要进行"安全、干净的退出",程序接到信号之后,退出前一般会进行一些"准备工作",如资源释放、临时文件清理等等,如果准备工作做完了,再进行程序的终止。但是,如果在"准备工作"进行过程中,遇到阻塞或者其他问题导致无法成功,那么应用程序可以选择忽略该终止信号。
我们常碰到一些java项目就是如此,发送kill命令,程序不会退出,要等到 几十秒之后才会退出,一般没耐心等待,所以这个时候,我们就会用 kill -9 必杀命令。
三、权限管理
用户权限
我们在登录的时候使用的username是root,这个就是默认的超级管理员,它拥有一切指令的权限。但是如果多人使用这一个系统的话,这是很不安全的,就比如rm -rf /*这个指令,一键自毁,删库跑路,这是很不安全的。因此我们需要分角色来控制权限。
useradd [username] 创建用户
useradd -G [组名] [用户名] 创建用户并分配一个组
cat /etc/passwd 查看用户列表
这里的格式为格式为
用户名:密码:uid:gid:
密码通常被x替代,uid是用户的id,通常从1000开始,1-499默认为系统账号。gid为组id,如果不分组的话uid就是gid,自己成立一个组。
passwd [密码] 为用户创建密码
su [用户] 切换用户
可以看到#就是超管,$就是普通用户。
文件权限
对一个文件无非就三种操作,读r 写w 执行x
因此,rwx就代表了操作权限,如r-x就代表这个用户只有r与x(读、执行)的权限,并不能进行w写
我们早先在使用ll指令查看文件列表的时候就能注意到最前面由rwx组成,这就代表了文件的权限控制
其结构为
文件类型 | 文件创造者的权限 | 文件创造者所属组的权限 | 其他人的权限 |
---|---|---|---|
d目录 -文件 i软连接文件 | rwx三个组成一组权限,因此这整个结构由13个字符组成 | 最前面1个字符代表文件类型 | 后面12个字符由3个rwx组成,-就是没有那个权限 |
比如wal.txt这个文件前面是 - rw- r-- r--
意思就是这个文件,文件创造者可以对它读写,但是不能执行。而其用户所属组的属下以及其他不相干的用户就只能进行读操作了。
修改权限
chmod [选项] 模式 文件名
选项 -r 就是递归,如果是文件夹就会递归所有的文件
文件创造者就是u ,其所属组就是g,其他人就是o,全部就是a
直接来看例子讲怎么修改吧
就拿刚才的wal.txt举例子,直接u+x,就是给u加个x的权限(为文件创造者加个执行的权限)
再比如 g + wx 就是给所属组加个写与执行的权限, o - r 就是把其他人读的权限给取消了。
sudo授权
这套指令就是用来给别的用户授权的
比如现在普通用户想要使用shutdown这个关机指令,就无法直接使用,因为它没有权限。如果他要使用这个指令,就需要超级管理员给它这个权限
visudo visudo命令是一个用于修改sudo配置文件的工具,可以用来定义用户、组、命令和动作的授权
执行完这个命令之后找到这里,并输入指令
此时保存退出之后An1ong用户就有了使用shutdown指令的权限
简单解释一下,其结构为
An1ong ALL = (ALL) shutdown
用户名 被管理的主机 = (可以使用的身份) 可以使用的命令y
意思就是An1ong用户在所有的主机上可以使用所有的身份来使用shutdown这个命令
没错,超级管理员root那就是root ALL = (ALL)ALL
不过普通用户在使用shutdown时需要在前面加上sudo才能使用,因为毕竟是root赋予的指令
四、网络管理
防火墙
当我们谈论防火墙时,可以将其比作一堵保护你计算机或网络的墙。它有一些规则,只有符合这些规则的东西才能通过,其他的则被阻止。
它防的是端口,默认会挡住所有端口的请求,我们可以在墙上打几个口来使一些端口放行
1、开放防火墙端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent 永久开放8888端口
firewall-cmd --zone=public --remove-port=8888/tcp --permanent 永久关闭8888端口
firewall-cmd --reload 配置生效
开放和关闭端口之后一定要使用firewall-cmd --reload指令,否则此时不会生效(不过如果 使用了--permanent 则重启会生效)
--permanent是永久的意思,可以去掉这个选项
2、查看防火墙信息
firewall-cmd --help 防火墙帮助
firewall-cmd state 查看防火墙的状态
firewall-cmd --zone=public --list-ports 查看所有打开的端口
3、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
我们在开发时候最好直接关上防火墙,不过部署项目之后还是要打开的
4、监听端口
netstat -lnpt 查看监听的端口
netstat -lnpt |grep 8888 检查这个端口被哪个进程占用了
注意:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools
这个我们待会会讲到
计算机网络概念补充
- ip地址:在网络通信中主机的标识符(类似于手机号)
- mac地址:主机的物理网卡的唯一标识符,就是网卡(类似于身份证号)
- 子网掩码:用于区分主机的ip地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段
例如:在window中使用ipconfig查看ip
IPv4地址中 192.168.41.231 就是你当前在这个局域网中的ip地址,属于 192.168.0.0 到 192.168.255.255 之间的私有地址范围
其中.41就是局域网的网段,.231则代表是你在这个局域网中的标识。
而计算机是不认识41这个网段的,所以需要子网掩码来对这个ip进行一通运算最终得到你的网关
- 网关:就是一个网络中的主机连接到另一个网络的主机的关口。(打个比方就是在局域网上开了一个口,因此我们才能连接到公网上,也就是互联网上进行上网)你访问的互联网请求就是你的从你的网关发出又穿过了网关采访到的公网上
- DNS:域名解析服务器,将域名解析成IP地址。一个域名会绑定一个ip,我们访问域名的时候其实DNS会把它转换成ip。这样做是因为域名比ip好记。
静态IP分配
先说一下windows,我们一般连接网络默认的就是自动分配IP
也可以自己配置一个ip,这个不是自动分配的,自然也就不会被改变,也就成了静态的ip
在linux中,我们要配置静态ip,就要在网卡/etc/sysconfig/network-scripts中第一个文件中改
解释一下待会要写的静态分配属性
BOOTPROTO 启动地址的协议 dhcp就是自动分配id static就是静态ip
IPADDP 静态ip的时候我们自己这是的ip地址
NETMASK 默认255.255.255.0就行
BROADCAST 网卡广播地址
GATEWAY 网关地址,别瞎写。在VMware的虚拟网络编辑器中查看,NAT模式的NAT设置中能看到它的ip,我这里结尾是2,那么就是2
具体看这篇博客
【linux】linux系统配置静态IP地址(超详细,手把手教会)-CSDN博客https://blog.csdn.net/u010521062/article/details/114067036