IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 计算机基础知识总结 -> 正文阅读

[系统运维]计算机基础知识总结

1. Linux常用基本命令

文件管理

命令功能
touch创建文件
mkdir创建目录
rm删除文件 / 目录
vim文件编辑
cat文件查看
cp复制
mv移动
file查看文件类型
wc文件容量
pwd当前位置
cd切换到指定目录下
ls显示指定目录下的内容

用户管理

命令功能
id查当前id
su切换当前用户
usermod修改用户信息
passwd设置密码

/etc/passwd ????用户文件位置
/etc/group ????用户组文件位置
/etc/shadow ????认证信息文件位置

进程管理

命令功能
ps查看进程
pgrep指定显示
top动态查看
nice更改优先级
renice更改优先级状态
Ctrl+z当前进程打入后台
jobs查看后台进程
bg调到前台(不占用shell)
fg调到前台
kill关闭进程
systemctl start sshd开启sshd服务
w -i显示谁登陆过last

软件仓库搭建

  1. 下载安装包,hostnamectl 查看系统版本
  2. 创建目录,mount 挂载镜像
  3. cd /etc/yum.repos.d/ 下建文件,名以repo结尾,两个仓库AppStream和BaseOS
  4. dnf install gcc 安装

dnf list ????列出软件信息
dnf install ????安装软件
yumdownloader httpd -destdir=/mnt ????下载仓库中的安装包到目录

远程登陆服务器

shh -l root 192.168.0.10 ????连接

文件传输

上传???? scp 文件名 root @ 192.168.0.10:/root/路径
下载???? scp root @ 192.168.0.10:/root/路径
有的不复制,没有的复制 ????rsync -lr

打包: tar cf 文件
压缩: zip / gzip / bzip / xz
解压: unzip / gunzip
直接打包: tar zcf / tar zxf

定时任务/延迟任务

命令功能
at 01:52设定延时任务
at -c 1查看任务
at -r 1取消任务
mail查看输出

白名单: /etc/at.allow
黑名单: /etc/at.deny

crontab -e ????定时任务(crond服务) 秒 分 时 天 月 周

系统级任务: 进目录 cd /etc/cron.d 写文件

2. C++基础知识

面向对象的四大特征

  1. 抽象:抽出具体事物的普遍特性;
  2. 封装:把数据和处理都包在一起;
  3. 继承:可以给别的函数使用;
  4. 多态:同一个函数的多种形态。

C++和C语言有什么不同

序号方向CC++
1面向面向过程——解决问题面向对象——找谁解决
2头文件#include<stdio.h>#include<iostream>
3函数重载函数名不允许相同函数名相同但其他参数不同,则两个函数不同
4命名空间无此概念using namespace std;
5输入输出需要写变量类型cin/cout 不用写变量类型,可以自动识别
6动态内存malloc / freenew / delete

new/delete 和 malloc/free 的区别

  1. 属性:new是关键字,需要编译器支持;malloc是库函数,需要头文件支持;
  2. 参数:new申请内存时不用指定内存块的大小,编译器会根据类型计算;
  3. 返回类型:new返回对象类型指针;malloc返回void*,需要强制转换;
  4. 分配失败:new会抛出bas_alloc异常;malloc分配失败会返回NULL;
  5. 内存区域:new会在自由存储区申请内存;malloc会在堆上申请内存。

类与结构体的区别

序号方向结构体
1存储位置栈存储堆存储
2公有私有默认public默认private
3保护声明不能声明protected可以声明protected
4构造函数不能声明默认的构造函数不限制声明构造函数
5类型不同值类型引用类型

当函数参数或局部变量与成员变量重名时,就必须用 this

构造函数和析构函数

构造函数的特点:

  1. 创建对象时调用 ;
  2. new可调用;
  3. 必须与类同名;
  4. 没有返回值;
  5. 可以有多个构造函数。

默认构造函数:如果没有创建构造函数就会有一个隐藏的不带参数的构造函数。
作用:

  1. 建立标识;
  2. 开辟内存空间;
  3. 完成成员初始化。

析构函数的特点:

  1. 离开作用域时调用;
  2. delete可调用;
  3. 与类同名并加 ~ ;
  4. 没有参数;
  5. 没有返回值;
  6. 只能有一个析构函数。

拷贝构造函数和赋值运算符重载

拷贝构造函数:防止二次释放

  1. 类之间直接复制;
  2. 函数值传递;
  3. 作为返回值传递。

赋值运算符重载:
stack s;
stack t;
t = s;

指针和引用的区别

序号指针引用
1指向一块内存,内容是地址某块内存的别名
2定义后还可以变只能在定义时初始化(必须初始化)
3需要解引用不需要解引用
4sizeof指针是指针大小sizeof引用是对应类型大小

几种关键字

友元声明friend: 其他类或外部函数要访问类中私有成员
特点:单向性;不可传递性。

const限定符:
变量:只读,不可修改;定义时必须初始化;
#define宏定义:预处理时替换,没有类型,不分配内存。const相反。
指针:指针常量,不可修改地址;
引用:别名;
函数:非const类型参数不接受const变量;
类:const成员变量,要初始化;const成员函数,表示不修改成员变量

static限定符:
变量:静态变量,改变作用域和生存周期;
函数:只源文件内部使用的函数;
成员变量:对象共享变量;
成员函数:类提供的函数,静态成员对象的接口。

内联函数inline:如同整个函数体替换在主函数中

  1. inline是放在函数体前才能声明为内联函数;
  2. 类中成员函数默认为内敛函数;
  3. 编译器会决定是否为内联函数。

继承顺序和构造顺序

继承顺序:

多重继承
菱形继承
使用虚继承

构造顺序:
在这里插入图片描述

虚函数

虚函数: 父子类有相同函数;如果调用父类那就调用父类自己的函数;如果调用子类,看子类有没有virtual,没有调用父类中的函数,有则调用子类中的函数。
本质:虚函数表
纯虚函数:定义抽象表virtual int GetLength() const = 0;

重载和覆盖的区别

序号重载覆盖
1函数名相同,但其他参数有不同函数名和所有的参数都相同
2同一个类中不同成员函数之间的关系父类与子类中不同成员函数的关系
3根据参考列表决定根据对象类型决定
4在编译时确定调用在执行时确定调用

定义和声明的区别

定义:变量分配存储空间,为变量指定初始值。只有一个定义;
声明:向程序表明变量的类型和名字。

内存的存储内容

在这里插入图片描述

内存泄漏和内存溢出的区别

内存泄漏: 在动态申请内存空间时,对指针申请了空间,但使用完后未进行释放,指针变为野指针,形成内存泄漏。
内存溢出: 内存泄漏的堆积会导致内存溢出,内存溢出是你要的内存空间超过系统给分配的空间。

vector的内存增长问题

vector的内存增长问题,其中 size() 和 capacity() 问题,vector的内存分配是按照2的倍数分配内存的。当前容量对插入元素不够时,分配一块新的内存(2倍),然后复制旧内存,释放旧内存,会多次涉及拷贝构造函数和析构函数。

3. Linux系统编程

进程和线程的区别

序号方向进程线程
1定义程序的执行过程执行的每一个任务
2包含包含多个线程只属于一个线程(本身)
3地址有自己的地址空间没有地址空间,他包含在进程的地址空间中
4资源消耗更多的计算机资源开销代价更小
5共享不同进程间数据很难共享同一进程下不同线程数据容易共享

进程

fork() 父子进程:父进程返回值是子进程的pid;子进程返回值是0。

特点:

  1. 并发进行:两进程同时跑,互不干扰;
  2. 相同但独立的地址空间:系统会把虚拟内存拷贝一份出来,两进程名自有堆和栈;
  3. 加static地址会短,静态变量在数据区,地址较小。

休眠:sleep(1)

僵尸进程:子进程退出,父进程未获得子进程状态信息;在父进程调用wait;有害
孤儿进程:父进程先于子进程退出;init进程为新父进程;无害

线程

比进程更小的独立运行的基本单位,是并发的;

线程标识: pthread_self()
创建: pthread_creat(id,NULL,函数,函参)

线程共用全局变量也共用局部变量

使用线程合并:pthread_join(id,返值) 主进程等待子进程跑完

信号量: 让父进程和子进程有序打印
sem_wait(&sem) ????上锁
sem_post(&sem) ????解锁

互斥量:
pthread_mutex ????定义互斥量
pthread_mutex_lock(&互斥量) ????加锁
pthread_mutex_unlock(&互斥量) ????解锁

信号量互斥量
对象:线程和进程对象:线程
可由不同线程完成加解锁由同一线程使用
用于线程同步用于线程互斥

条件变量: 完成条件后再执行线程
pthread_cond_t 条件变量 = PTHREAD_COND_INITIALIZER;
条件等待:pthread_cond_wait(&条件变量,&互斥量)
单个激活:pthread_cond_signal(&条件变量)

读写锁: 读取过程共同读,提高工作效率
读锁:读过程中其他读也可以进行读操作
写锁:写过程中不能进行其他操作

HTTP网络编程

HTTP是应用层上的协议,HTTP是基于TCP/IP通信协议来传递数据,可以使用建立socket的方式来监听某一端口(8080端口),来实验这个web服务器。基于socket来实现客户端和服务器的交流。

HTTP协议是超文本传输协议,通过http请求可以访问服务器上的HTML文件、图片等。

请求报文: 客 => 服
在这里插入图片描述

GET是客户端把密码或检索信息发给服务器,发给URL

响应报文: 服 => 客
在这里插入图片描述

注意:文本格式去掉,可响应各种类型的文件

状态码:

状态码对应英文意义
200OK请求成功
301Moved Permanently资源被永久转移到其他URL
404Not Found请求资源不存在
500Internal Server Error服务器内部错误,无法完成请求

HTTP服务器

  1. 启动服务器;
  2. 启动客户端(网页)输入 http://127.0.0.1:8080,发送请求报文给服务器,服务器端收到报文;
  3. 服务器端向服务器发送响应报文,客户端(网页)信息栏可以看到报文首部信息,页面上可以看到报文主题。
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:27:02  更:2021-10-29 13:27:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:31:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码