CentOS操作学习(二)
上一篇学习了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
相关文章:
CentOS操作学习(二)
上一篇学习了CentOS的常用指令CentOS指令学习-CSDN博客 现在我们接着学习 一、Vi编辑器 这是CentOS中自带的编辑器 三种模式 进入编辑模式后 i:在光标所在字符前开始插入a:在光标所在字符串后开始插入o:在光标所在行的下面另起一新行插入…...
OpenCV技术应用(9)— 视频的暂停播放和继续播放
前言:Hello大家好,我是小哥谈。本节课就手把手教大家如何控制视频的暂停播放和继续播放,希望大家学习之后能够有所收获~!🌈 目录 🚀1.技术介绍 🚀2.实现代码 🚀1.技术介绍…...
C#时间戳转换
时间戳转化为时间 long oldtime1703235741; System.DateTime startTime TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); var newtimestartTime.AddMilliseconds(oldtime).ToString("yyyy-MM-dd HH:mm:ss.fff"); 时间转化为时…...
Postgresql源码(118)elog/ereport报错跳转功能分析
1 日志接口 elog.c完成PG中日志的生产、记录工作,对外常用接口如下: 1.1 最常用的ereport和elog ereport(ERROR,(errcode(ERRCODE_UNDEFINED_TABLE),errmsg("relation \"%s\" does not exist",relation->relname)));elog(ERRO…...
Python Selenium中的强大等待设置详解
更多资料获取 📚 个人网站:ipengtao.com 在Web自动化测试中,等待是至关重要的一环,而Selenium提供了丰富的等待设置来确保测试脚本的可靠性和稳定性。本文将深入研究Python Selenium中常用的必备等待设置,包括显式等待…...
ACL实现固定时间访问资源——项目
文章目录 一、前言二、项目拓扑三、项目需求四、配置思路五、配置步骤1 IP地址2 端口类型3 静态路由4 流策略 六、结语 免责声明 本文旨在提供信息和解决问题的建议,观点和建议可能不适用于个人情况,仅供参考!!! 文章中…...
前端学习——关于前端框架的思考
前端框架 我们知道在AngularJS,react,vue等前端框架出现之前,前端开发都是通过js直接操作dom树来实现的,而有了前端框架之后,前端开发基本上不需要在直接操作dom树,相当于在原生html的dom树之间和前端程序…...
大创项目推荐 深度学习+opencv+python实现车道线检测 - 自动驾驶
文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &am…...
Linux(二)常用命令
文章目录 一、文件管理命令1.1 chmod1.2 chown1.3 cat1.4 cp1.5 find1.6 head1.7 tail1.8 less1.9 more1.10 mv1.11 rm1.12 touch1.13 vim1.14 >和>>1.15 scp1.16 ln1.17 怎么用命令查看日志 二、文档管理命令2.1 grep2.2 wc2.3 echo 三、磁盘管理命令3.1 cd3.2 df3.3…...
PHP通过mailer发送邮箱
<?php namespace sw\controler\action;require(APP_DIR./extend/PHPMailer/class.phpmailer.php); require(APP_DIR./extend/PHPMailer/class.smtp.php); class action_test_mailer extends Base {public function test(){$smtpemailto"1967899707qq.com";//接收…...
c# OpenCV 基本绘画(直线、椭圆、矩形、圆、多边形、文本)(四)
我们将在这里演示如何使用几何形状和文本注释图像。 Cv2.Line() 绘制直线 Cv2.Ellipse() 绘制椭圆Cv2.Rectangle() 绘制矩形Cv2.Circle() 绘制圆Cv2.FillPoly() 绘制多边形Cv2.PutText() 绘制文本 一、绘制直线 Cv2.Line(image, start_point, end_point, color, thickness) …...
js键盘事件keydown事件,防止重复触发,组合键的配合使用
js键盘事件keydown事件,防止重复触发 键盘事件类型主要有三种: keydown 、keypress(不建议使用,部分浏览器已放弃)和 keyup 。 添加普通键盘keydown事件 // 监听键盘按下事件document.addEventListener(keydown, function(event) {// 输出按…...
【Docker】升级docker或者docker到docker-ce完全保留镜像和容器,不影响原容器使用方法
升级docker或者docker到docker-ce完全保留镜像和容器,不影响原容器使用方法 一、介绍二、升级方法 三、遇到问题说明 以下是我的使用场景,docker升级到docker-ce,但对于docker-ce升级也通用!亲测! 一、介绍 CentOS自带…...
22 3GPP在SHF频段基于中继的5G高速列车场景中的标准化
文章目录 信道模型实验μ参考信号初始接入方法波形比较 RRH:remote radio head 远程无线头 HTS:high speed train 高速移动列车 信道模型 考虑搭配RRH和车载中继站之间的LOS路径以及各种环境(开放或峡谷),在本次实验场…...
C语言之初识C语言
文章目录 前言一、什么是C语言二、第一个C语言程序三、数据类型四、变量,常量1、变量1.1 变量的命名1.2 变量的分类1.3 变量的使用1.4 变量的作用域和生命周期2、变量 五、字符串1. 概念2. 求解字符串的长度【strlen】3. 转义字符【含笔试题】 六、注释七、选择语句…...
Modbus-TCP数据帧
Modbus-TCP基于4种报文类型 MODBUS 请求是客户机在网络上发送用来启动事务处理的报文MODBUS 指示是服务端接收的请求报文MODBUS 响应是服务器发送的响应信息MODBUS 证实是在客户端接收的响应信息 Modbus-TCP报文: 报文头MBAP MBAP为报文头,长度为7字节,…...
linux搭建gitlab
gitlab的介绍 区别于github,github是面向互联网基于git实现的代码托管平台,gitlab是基于Ruby语言实现的git管理平台软件,一般用于公司内部代码仓库。 gitlab组成 Nginx 静态Web服务器Gitlab-workhorse 轻量级的反向代理服务器Gitlab-shell 用…...
GEM5 Garent CPU cache消息传递路径:1. NI部分
简介 我们仔细分析下图怎么连的,以及消息传递路径。 图来自https://www.gem5.org/documentation/general_docs/ruby/ 代码的连接 fs.py->ruby.py-> gem5/configs/ruby/MESI_Two_Level.py 中的 create_system( options, full_system, system, dma_ports, b…...
Java设计模式之单例模式以及如何防止通过反射破坏单例模式
单例模式 单例模式使用场景 什么是单例模式?保障一个类只能有一个对象(实例)的代码开发模式就叫单例模式 什么时候使用? 工具类!(一种做法,所有的方法都是static,还有一种单…...
python flask+vue实现前后端图片上传
python flaskvue实现前后端图片上传 vue代码如下: <template><div><input type"file" change"handleFileChange"/><button click"uploadFile">上传</button><br><img :src"imageUrl&…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
