学习笔记:
前言
最近在入门python和c linux算后期的基础 所以先学习linux打基础
- 先学linux
- 需要用vmware搭建虚拟机
- 远程连接用finalshell
(PS:我刚才才知道markdown文档按两下回车就会跳出当前编辑的列表/大纲)
认识硬件
CPU是大脑(CPU代码后带U的主打续航,可能性能不够高 )
内存是黑板(临时存储的意思 主看ddr代数 和频率 睿频频率高效率高)
硬盘是课本(sdd s是solid 固态硬盘 现在很便宜了 ,HSD是混合硬盘 HDD(Hard)是固态硬盘)
操作系统属于是软件,是硬件与软件联系的桥梁
没操作系统的电脑是裸机
(PS:题外话 刚才发现微软的path很多都是ms+名称 比如mspaint是画图 msconfig是设置)
认识LINUX
LINUX发行版=Linux内核+系统库+系统软件
kernel.org可以下载linux的内核
发行版就是打包好的LINUX系统
- linux发行版有deepin ubuntu centos等
- redhat:付费的 ibm公司
- centos: redhat免费版
- ubuntu:界面好,适合小白
- 中标麒麟:国内用的系统
虚拟机
模拟硬件安装系统
vmware 和 virtualbox比较常用 前收费稳定 后免费开源
虚拟机与宿主机数据完全隔离
vmware 安装
1.憋出中文
- 如果安装成功 网卡里面会有两个虚拟网卡 没有可以在 编辑-虚拟网络编辑器中重置vmware
配置
用finalshell链接虚拟机
在编辑-虚拟网络编辑器 可看网络
快照
拍快照提高容错率
右键选择虚拟机-点快照-拍照/恢复快照 或快照管理器
快照相当小(相比大量镜像)但实际快照是2-3个
LINUX基础
- 在windows中,文件没有相同父级,而linux中有/ 作为最终父级(安卓和mac也有)叫根目录
,没有盘符一说
- / 正斜线 linux中都用正斜线
- \反斜线
- linux命令中 以 命令 -[选项] 参数
ls
ls是查看当前目录文件
-a 是all 展示所有包括隐藏的
-al 是以每一列的形式展示 可理解为详细展示 -l可记为“列”
-alh h是human 理解为人性化 也就是自动换算单位
后面加上路径就是在某个位置
pwd
是显示当前位置 可记成 盘我的 直接显示当前路径
LINUX目录
bin:存放基础命令
sbin: super 超级命令
etc:存放linux配置
home:root之外的账号
基础指令
- cd:回城命令
- ..是上级目录
- ../.. 再上级目录
- ~ 回城
- -切换
- mkdir 建文件夹 后面加个-p 可以创多级目录
cp copy 拷贝文件(cp 1.txt /aa/2.txt 改名并复制 -r叫递归拷贝 只有这样才能拷贝文件夹)
mv move剪切
rm remove 删除
cat 像猫一样看所有的文件 只显示最后一页 ,同样的有more 可显示更多 注意这两个命令都是显示文件内 而不是文件夹
rm -rf *.txt 删除当前目录下所有txt文件
养成习惯 删文件不加-r 但删任何东西都加-f
which .....是查找某命令的位置
find 路径 -name ‘文件名’ 比如find / -name ‘abc*’
-size +100m 可筛选出100mb以上的东东
echo 类似python的print 但也可以有写入的作用 比如echo ‘hello’ >>1.txt是追加 echo 'hello'>1.txt是覆盖
c基础
helloworld
#include<studio.h>
//标准
int main()
{
printf('he wo');
return 0;
}
和C#好像哈哈
核心语法
注释://是c语言的注释 注意不是# #已经让标准给用了
长注释也一样用 /123/
可以用ctrl+kc 来快速添加注释 和c#一样 ct+ku删注释
关键字 就是有特殊含义的单词 比如void if long else 之类的 ,都是小写的
在vs中蓝色和紫色都是关键字 蓝色都是int long string这些
紫色都是for return这些
常量
整型常量:18
实型常量:1.39(和浮点一样) .93可直接理解为0.93 18.0 等同于18
字符常量:'a'(char)
字符串常量:“123字体”
输出常量
整形:%d
浮点:%f(记为fu)
字符:%c(char)
字符串:%s(string)
所以可以写输出为
printf("%s","这么写是吧");
\r\n是换行 少字母\n会把上一行覆盖
\n 这么写就ok,会自动翻译
printf更适用于打印字符串,所以要用上面的格式写
保留几位小数时候用%.2f这么写 意思是 保留两位
计算时候是从前往后算,所以可以用小括号括起来算逻辑
// 不能多次初始化变量
int a=1;
int a =2;
//这就有问题,直接赋值就行,不要再打int
可以同时搞一堆变量,比如int a=10,b=15;逗号隔开
2进制
0-0
1-1
2-10
3-11
4-100
5-101
6-110
自带的计算器可以直接算出来
二进制 0b开头
八进制 0开头
十六进制 0x开头
去掉开头输入数字就可以算出来
16进制 a是10 b是11 以此类推
手撕二进制
公式:系数乘进制数的位置数(权)的方 相加
也可以背诵8421
或者短除法也可以
图片
分辨率 每一个小格子就是一个像素
三原色 红绿蓝 光学三原色 0-255 111,111,111这样写
数据
1b为最小的存储单位
long类型后缀要有l
sizeof(变量/数据类型)可以直接显示出来占几个字节 short 2 int 4 long 4 longlong8
scanf 获取变量并赋值用 和printf一个格式
scanf("%d %d",&a,&b);
可以同时整两个数据
隐式转换
- 隐式转换 小的变大的取值
- 小数+整数会变小数 小数更大
- 比int小的转int 最后运算
强制转化
int b;
//int的b
short i=(short)b;
//强制把大范围变小范围
char的变量会自动查询码表,相加会变成数字序号。
运算符
自增运算符
--减1 ++加1
int b=a++ 先给b再加
int b= ++a 先加1再给b
赋值运算符
b+=a( b=a+b)
加后赋值
关系运算符
a==b 两个等号,
>
>=
==
用printf int 会1/0返回 0假1真
逻辑运算符
与/而且 用 && 同python的and
用||表示 或者
!叫取反 非
短路
只要左边表达式能确定结果,右边就不会算了,连自增都不可实现
三元运算符 ifelse精简版
a>b?a:b;
条件符合?符合:不符合;
优先级
一元>2>3
和》并》赋值
小括号优先
判断流程
0否1是
if( a==1)
{
}
switch (表达式)
{
case 1:
XXX;
break;
case 2:
XXX;
break;
case 3:
XXX;
break;
case 4:
XXX;
break;
default:
xxx;
break;
}
循环语句
for(int i=1函数初始;i<=100条件:i++控制)
{
}
goto a;
a:xxxxx;
👆一键跳转代码
函数
void hanShu(int a,int b)
{
xxxxx
}
c语言常见函数
math.h
pow次幂
sqrt平方根
ceil进一取整
floor去尾取整
abs绝对值
time.h
time时间