计算机基础知识总结

2023-11-01

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语言有什么不同

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

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

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

状态码:

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

HTTP服务器

  1. 启动服务器;
  2. 启动客户端(网页)输入 http://127.0.0.1:8080,发送请求报文给服务器,服务器端收到报文;
  3. 服务器端向服务器发送响应报文,客户端(网页)信息栏可以看到报文首部信息,页面上可以看到报文主题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机基础知识总结 的相关文章

随机推荐

  • C# 使用OpenCV基本图像操作功能

    C 使用OpenCV OpenCV是一个开源的跨平台计算机视觉和机器学习软件库 可以运行在Linux Windows Android和Mac OS操作系统上 C 在上位机开发中比较常用 有些项目需要在上位机上加入一些机器视觉相关的功能 在下
  • 五笔字形字根及难字拆分

    http blog sina com cn s blog 5cf6d51f0100b17o html 一 字根助记词 11王旁青头戋 兼 五一 12土士二干十寸雨 13大犬三 羊 古石厂 14木丁西 15工戈草头右框七 21目具上止卜虎皮
  • C-数据的储存(上)

    文章目录 前言 一 数据类型详细介绍 1 内置类型 1 整形家族 2 浮点数家族 2 构造类型 也称自定义类型 3 指针类型 4 空类型 二 整形在内存中的存储 1 空类型计算机中的整数有三种2进制表示方法 2 大小端 1 什么是大小端 2
  • 课设攻略--人脸特征点检测与图像风格迁移fast-style-transfer-master

    1 1必做题要求 人脸特征点检测 1 对实时的视频进行人脸检测功能 定位和标准 著名的深度学习库opencv和dlib均可检测出图像中的人脸 dlib更提供算法 从标注人脸特征点的数据集中训练模型 高效检测出人脸特征点 用于美颜 人脸位置摆
  • NUC980开源项目24-Please port gnulib freadahead.c to your platform!

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • Struts2远程代码执行漏洞

    漏洞描述 CVE 2020 17530是对CVE 2019 0230的绕过 Struts2官方对CVE 2019 0230的修复方式是加强OGNL表达式沙盒 而CVE 2020 17530绕过了该沙盒 在特定的环境下 远程攻击者通过构造恶意
  • 基于STM32的恒流源设计

    1 概述 本设计以STM32F103RCT6为主控芯片 利用MOS管的恒流区特点 设计恒流源 设计电流范围为1 300mA 2 原理 基本原理图 Q2为N沟道MOS管 在正常工作情况下 运放与MOS管之间构成深度负反馈 使得输入控制电压与V
  • Qt的程序打包

    1 打包exe程序 设置应用程序的图标 在Qt的pro中加入 RC ICONS 图标名 ico 到网上找个在线转换ico的工具即可 1 qt的编译模式切换到release版本 2 编译运行后找到自己放代码的位置 release版本的 3 新
  • c++类模板与继承

    继承中父子类和模板类的结合情况 1 父类是一般类 子类是模板 类 2 父类是模板类 子类是一般类 3 父类和子类都是模板类 1 include
  • 定义简单的切面

    连接点方法 preform public interface Performance void preform 定义实现类 Component public class Concert implements Performance Over
  • 【安装Pytorch】

    1 查看已有的虚拟环境 conda env list 2 创建自己的虚拟环境 conda create n name python 3 8 示例 conda create n pytorch python 3 8 param name 3
  • 2个月月活突破1亿,增速碾压抖音,出道即封神的ChatGPT,现在怎么样了?ChatGPT它会干掉测试?

    从互联网的普及到智能手机 都让广袤的世界触手而及 如今身在浪潮中的我们 已深知其力 前阵子爆火的ChatGPT 不少人保持观望态度 现如今 国内关于ChatGPT的各大社群讨论 似乎沉寂了不少 现在怎么样了 我们先来复盘 ChatGPT是一
  • 极限的运算法则

    极限的运算法则 两个无穷小的和也是无穷小 定理 有限个无穷小的和也是无穷小 无穷多个无穷小的和是1 定理 有界函数与无穷小的乘机也是无穷小 推论 常数与无穷小的乘积也是无穷小 推论 有限个无穷小的乘积也是无穷小 无限多个无穷小的乘积不一定是
  • 解决eclipse突然打不开了的问题

    网上搜了有大概六种 我又get一个解决方案 找到属于自己的方案才是关键 解决方式 7种 1 通过在命令行中输入 where java 找到除jdk目录下的所有java相关程序 直接删掉 一般会在C WINDOWS system32下 2 内
  • SQL刷题:SQL必知必会

    MySQL函数参考教程 1 多字段排序用逗号隔开 对多个字段排序的时候 同样满足默认ASC select cust id order num from Orders order by cust id order date desc sele
  • PicGo使用阿里云OSS配置图床

    PicGo使用阿里云OSS配置图床 前言 安装 PicGo PicGo molunerfinn com 以上是PIcGo的配置阿里云OSS需要的值 1 阿里云创建用户 登录阿里云 鼠标移到头像位置则可看到 点击访问控制 创建新用户 开启op
  • 摩拜单车红包骑行引发的潮汐问题思考

    前言 摩拜刚刚推行红包骑行的时候写的 最近比较忙一直忘记了 今天有时间发出来 言语不当之处 还望见谅 希望各位发表意见 谢谢 PS 摩拜单车相关人员已经看过 表示还可以 谢谢 2017 年 共享单车有很多 最先进入人们眼帘的应该是那一个类似
  • Part 5:Pandas 数据统计函数【汇总类统计、唯一去重和按值计数、相关系数和协方差】

    Pandas 数据统计函数 1 汇总类统计 2 唯一去重和按值计数 3 相关系数和协方差 import pandas as pd 1 预备步骤 对数据进行读取和预处理 将温度都改为Int类型 fpath datas beijing tian
  • jquery正则表达式写法

    const FloatRegex 0 9a zA Z 1 if FloatRegex test value this message error 只能输入数字 字母 下划线 小圆点 return
  • 计算机基础知识总结

    文章目录 1 Linux常用基本命令 文件管理 用户管理 进程管理 软件仓库搭建 远程登陆服务器 文件传输 定时任务 延迟任务 2 C 基础知识 面向对象的四大特征 C 和C语言有什么不同 new delete 和 malloc free