上一篇学习了CentOS的常用指令CentOS指令学习-CSDN博客
现在我们接着学习
这是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 就是把其他人读的权限给取消了。
这套指令就是用来给别的用户授权的
比如现在普通用户想要使用shutdown这个关机指令,就无法直接使用,因为它没有权限。如果他要使用这个指令,就需要超级管理员给它这个权限
visudo? ? ? ??visudo命令是一个用于修改sudo配置文件的工具,可以用来定义用户、组、命令和动作的授权
执行完这个命令之后找到这里,并输入指令?
此时保存退出之后An1ong用户就有了使用shutdown指令的权限
简单解释一下,其结构为
An1ong? ? ? ? ? ?ALL?? ? ? ? ? ? ? ? ? =? ? ? ? ? ? ? ? ? ? (ALL)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? shutdown
用户名? ? ? ? 被管理的主机? ? ? ? =? ? ? ? (可以使用的身份)? ? ? ? 可以使用的命令y
意思就是An1ong用户在所有的主机上可以使用所有的身份来使用shutdown这个命令
没错,超级管理员root那就是root ALL?= (ALL)ALL
不过普通用户在使用shutdown时需要在前面加上sudo才能使用,因为毕竟是root赋予的指令
当我们谈论防火墙时,可以将其比作一堵保护你计算机或网络的墙。它有一些规则,只有符合这些规则的东西才能通过,其他的则被阻止。
它防的是端口,默认会挡住所有端口的请求,我们可以在墙上打几个口来使一些端口放行
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是永久的意思,可以去掉这个选项
firewall-cmd --help? ? ? ? 防火墙帮助
firewall-cmd state? ? ? ? 查看防火墙的状态
firewall-cmd --zone=public --list-ports? ? ? ? 查看所有打开的端口
systemctl stop firewalld
systemctl disable firewalld
我们在开发时候最好直接关上防火墙,不过部署项目之后还是要打开的
netstat -lnpt? ? ? ? ? ? ? ? 查看监听的端口
netstat -lnpt |grep 8888? ? ? ? 检查这个端口被哪个进程占用了
注意:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools
这个我们待会会讲到
例如:在window中使用ipconfig查看ip
IPv4地址中 192.168.41.231 就是你当前在这个局域网中的ip地址,属于 192.168.0.0 到 192.168.255.255 之间的私有地址范围
其中.41就是局域网的网段,.231则代表是你在这个局域网中的标识。
而计算机是不认识41这个网段的,所以需要子网掩码来对这个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