本文主要是介绍4个月拿下年薪30w,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Linux基础命令学习
1.使用软件平台 VMware Workstation Pro
内容:虚拟化软件
功能:通过软件 虚拟出硬件
2.Linux主目录内容解释
形式:linux@ubuntu:~$
解释:
linux -- 用户名
@ -- at
ubuntu -- 主机名
: -- 提示符
~ -- 主目录 //当前所在的位置
$ -- 表示是普通用户
# -- 超级用户
3.常用基础命令学习
命令汇总:
pwd
ls
cd
touch
mkdir
cp
mv
rmdir
rm
1.pwd命令 (Print Work Directory)
功能:
打印当前所在的工作路径 (//目录 --相当于是windows下的文件夹)
eg:
/home/linux //用户的主(家)目录
补充:系统中文件的组织形式:
windows下:
硬盘
|-- C盘
|-- D盘
|-- E盘
linux
硬盘 / 根目录
|-- home
| |--linux
| ......
2.ls命令 (list)
功能:
清单 罗列
eg:
ls //查看当前目录下的内容
ls (目录名) // 查看指定目录下的内容
ls -l 目录名(或文件名) //查看目录下文件属性信息(或某个文件的属性信息)
(long)此处 -l 可接在 ls 命令后,也可放在结尾。
3.cd命令 (Change Directory)
功能:
切换目录
eg:
cd 路径名 // 切换到指定的目录下
cd //回家
cd - //切换到上一次操作的目录
cd . //. 表示当前目录
cd .. //上一级目录
cd ~ //~ 表示的就是 /home/linux 家目录
4.touch命令
功能:
创建一个文件
eg:
touch 文件名 // 创建一个文件
补充:
sudo (super do) //临时切换为超级用户
在权限不够时使用 sudo 命令执行
eg:
sudo touch 文件名 // 此命令 sudo 一般是在根目录下执行操作时使用 也可与其他命令结合如 rm 命令等
nautilus . //图形界面下查看当前目录
5.mkdir命令 (make directory)
功能:
创建目录
eg:
mkdir 目录名 // 创建指定的目录
mkdir 1/2/3 -p //-p 选项 parent
(//可以一次性 创建多级目录)
6.cp命令 (copy)
功能:
复制源文件至目标文件
eg:
cp 1.txt 2.txt //普通文件
cp test/1/1.txt test/1/2.txt //指定目录进行文件复制
cp dir1 dir2 -r // 目录操作需要加上 -r 选项 表示递归操作
7.mv命令 (move)
功能:
剪切源文件至目标文件
eg:
mv 123.txt 456.txt //改名字 --重命名
mv 123.txt dir1 //将123.txt 移动到 dir1下面 dir1本身已经存在
//dir1本身不存在,相当于改名字
//此命令也可像 cp 命令一样指定目录
8.rm命令 (remove)
功能:
删除目录或文件
eg:
rm 123.txt //删除123.txt
rm dir1 -r //目录需要 -r 表示递归删除
//此命令也可同上 cp 与 mv 命令一样指定目录
9.rmdir命令 (与rm命令相似但过于局限不常使用)
功能:
删除空白目录,非空白目录不能删除
10.关于路径的补充
绝对路径:
形式上看: /home/linux //只要是以 /(根目录)开头的
相对路径
形式上看: 直接从当前目录开始往下走
含义上:
参考起点不同
4.一些常用的控制命令
ctrl + l //清屏
终端大小设置:
ctrl + shift + +
ctrl + -
ctrl + 0 // 恢复默认大小
ctrl + c //强制结束操作
5.编译过程
总述:
IDE 开发环境
开发流程
1.编辑代码 -- vim / vi //编写代码
2.编译代码 -- gcc //编译器
3.运行代码 -- ./a.out //运行代码
4.调试代码 -- gdb // debug 调试工具
1.vim / vi 使用
s1: vi hello.c
回车之后,进入vim的命令模式
s2: 按 i 键 (insert)
此时从命令模式 进入 插入模式(编辑模式)
s3: 按 ESC 键
退出插入模式,回到了命令模式
s4: 按 shift + : // 底行模式
输入 w //write ---保存
输入 wq //quit ---保存并退出
进阶应用:
(命令模式下)
1.复制:
Myy //复制光标所在的这一行
//M数字 表示复制 从光标所在行开始 M行内容
Np //粘贴
//N数字 可以 粘贴 N份
shift + v //行选中 配合方向键 选中多行
(选中的情况下)
按一下 y 复制
按 p 粘贴
ctrl + v //块选中
2.删除:(同样可以和上边复制一样在前边加上数字,作用意义一样表示多行删除)
dd //删除光标所在的这一行
3.剪切:
dd + p //剪切
2.gcc 使用
gcc hello.c //编译代码
3. ./a.out 使用
运行代码
C语言内容
1.基本数据类型:
整型
浮点型
字符型
数据可分为:
常量
变量
在程序运行过程中
值不能被改变的量 -- 常量
值能被改变的量 -- 变量
1.整型:
常量形式:
123 //十进制
0x123 //十六进制
0123 //八进制
补充:
进制:(进位的制度 )
逢几进一
十进制:
0 1 2 3 4 5 6 7 8 9
10 11 12 13 .... 19
20 21 ...
十六进制:
0 1 2 3 4 5 6 7 8 9 a b c d e f // 10 11 12 13 14 15
10 11 12 ... 1a 1b ... 1f
20 ...
八进制:
0 1 2 3 4 5 6 7
10 11 12 13 ...
二进制:
0 1 //二进制
重点补充:
1.十进制 转 二进制
除 2 取余法
2|123
-------
2|61 ... 1 ----低位
-------
2|30 ... 1
-------
2|15 ... 0
------
2|7 ... 1
------
2|3 ... 1
-----
2|1 ... 1
-----
0 ... 1 ----高位
结果:0111 1011
2.二进制 转 十进制
加权求和
BCD码
//8 4 2 1
1 0 1 1
结果:11
3.十六进制 转 二进制
1位 十六进制数 对应 4位 二进制数
0111 1011(二进制)
7 b (十六进制)
4.八进制 转 二进制
1位 八进制数 对应 3位 二进制数
001 111 011(二进制)
1 7 3 (八进制)
变量形式:
描述一个变量
语法:
数据类型 变量名;
整型:
int // 4个字节
short // 2个字节
long // 8个字节
long long // 8个字节
signed / unsigned (有无符号位)
int a (默认情况下为有符号位)
变量名起名: (一些要求与注意点)
1.数字,字母,下划线
2.数字不是开头
3.区分大小写
4.不能与关键字重名
5.不要和系统二级关键词重名 (include 预处理的命令)
6.不能与库函数重名
两种赋值情况:
int a = 10; //初始化 开空间的同时给了值
int a; //先开空间 后给值
a = 10; // 赋值
补充:存储模式
大端存储
小端存储 //高高低低
高位数据 存储在 高地址处
低位数据 存储在 低地址处
有符号位数据:
数据最高位 充当符号位
0 正
1 负
符号位| --- 数值位
0 |000 0000 0000 0000 0000 0000 0111 1011 //+123
1 |000 0000 0000 0000 0000 0000 0111 1011 //-123
补充:
补码:
//负数
原码
1|000 0000 0000 0000 0000 0000 0111 1011 //-123
反码 =符号位不变,其余位按位取反
1|111 1111 1111 1111 1111 1111 1000 0100 //-123
补码 = 反码 + 1
1|111 1111 1111 1111 1111 1111 1000 0101 //-123
f f f f f f 8 5
//正数(原码 = 反码 = 补码)
有符号数:
有一位为符号位
包含了 正数 负数
无符号数:
不包含符号位
包含 非负数
结论:
整数 计算机中存的都是补码
关于有无符号位的范围问题:
unsigned int
0000 0000 0000 0000 0000 0000 0000 0000 //最小值
1111 1111 1111 1111 1111 1111 1111 1111 //最大值
+ 1
---------------------------------------
1 0000 0000 0000 0000 0000 0000 0000 0000 2^32 - 1 //42亿多
signed int [-2^31 ~ +2^31-1]
0|000 0000 0000 0000 0000 0000 0000 0000 //最大值 (此码为补码)
0|111 1111 1111 1111 1111 1111 1111 1111 //2 ^ 31 - 1 (21亿多)(此码为对应原码)
1|000 0000 0000 0000 0000 0000 0000 0000 //最小值 (此码为补码)
1|000 0000 0000 0000 0000 0000 0000 0000 //某个负数的补码 -2^31
---规定 符号位 既充当符号位 又 充当数值位
故其值为负数,充当数值位时直接当作二进制数求对应数值 无需转为原码(且也无对应原码)
1|000 0000 0000 0000 0000 0000 0000 0000 //负数
//负的0
//负数 -2^31
1|111 1111 1111 1111 1111 1111 1111 1111 //某个负数的补码
1|000 0000 0000 0000 0000 0000 0000 0001 //-1 (原码)
unsigned short [0~2^16-1] // 65536-1
signed short [-2^15 ~ +2^15-1] // -32768 ~ 32767
整型的溢出:(上/下溢出)
1111 1111 1111 1111
+ 1
--------------------------------
1 0000 0000 0000 0000
0000 0000 0000 0000
- 1
---------------------------------
1 1111 1111 1111 1111
2.浮点型:
常量形式 :
1.234
1.2e3 //科学计数法形式 (1.2*10^3 )
1.2E3 //e后面 可以是正数 或 负数 不能是小数
变量形式 :
float //单精度
double //双精度
数据类型存储:
eg:6.25
step1: [ 将小数 转换为 二进制形式的小数 ]
整数部分: (除2取余法)
0110
小数部分:(乘2取整法) (注意此处每次取整后的后续运算为只使用小数部分)
0.25 * 2 = 0.5 --- 0 高 ( 2^(-1) )
0.5 * 2 = 1 --- 1 低 ( 2^(-2) )
形如:
0.9 * 2 = 1.8 --- 1
0.8 * 2 = 1.6 --- 1
0.6 * 2 = 1.2 --- 1
0.2 * 2 = 0.4 --- 0
0.4 * 2 = 0.8 --- 0
0.8 * 2 = 1.6 --- 1 ( 后边就无限循环了 这时就和精度有关了 )
组合:0110.01
step2:[ 将二进制形式的小数,写成科学计数法形式 ]
1234.56 ---> 1.23456*10^3
110.01 ---> 1.1001 * 2^2 //科学计数法形式
step3:[ 按照 IEEE 754 标准 存放 ]
1位 符号位 | 8位-指数位 | 尾数位
0 | 2 + 127 |
| -127~128 |(有效指数个数为 -127~128)
1000 0001 1001 0000 0000 0000 0000
结果: 0100 0000 1100 1000 0000 0000 0000 0000
4 0 c 8 0 0 0 0
不同精度下的储存格式:
double 8字节
符号位 | 指数位 | 尾数位
| 11位 | 52位
+1023
float 4字节
符号位 | 指数位 | 尾数位
| 8 位 | 23位
+127
浮点常量的类型:
默认识别为double类型
0.9f //表示识别为 float类型
0.9L //L表示long double
整型常量:
默认识别为int类型
123L //long int
123LL //long long int
123UL //unsigned long int
3.字符型:
t <---> 0100101010
a <---> 0101010
编码 ( ASCII )
字符数据:
存到计算机
a ---> 编码值 (数值) ---> 无符号的整数
常量形式:
' a ' //字符常量
变量形式:
char ch; //tiny int
unsigned char [0~2^8-1] //255
signed char [-128~127]
补充:
ascii表:
0~32 控制字符 不可见
'0'~'9' //48~57
'A'~'Z' //65~90
'a'~'z' //97~122
'0' ----- 0
大小写转换 加减 32
字符常量的形式:
' a '
' \141 '
' \x61 '
97 //十进制表达
0141 //八进制表达
0x61 //十六进制表达
2.运算符 与 表达式
1.算术运算 :
+
-
*
/ //注意: 1.除数不能为0 2.整型数相除 ---相当于是整除 (结果取整) 3.若是小数除法直接的结果
% //取余 注意:
1.浮点型不能做求余运算 用途:
2.求余运算 第二操作数 不能是 0 a.判断奇数偶数(a%2 ==?)
3.求余运算的结果的符号 取决于 左操作数的符号 b.a%N 结果 [0~N-1]
++ //自加
-- //自减
++/--的补充:
i++ //先用 (表达式的结果) 后 i 自加
++i //先 i 自加 ,后用 (表达式的结果)
但最终 i++ 与 ++i 的表达式结果都是自加 1
2.表达式 :
由运算符 和 运算数 构成字符序列
1+2 //所有的表达式都是有结果的(值)
//表达式一定是有数据类型的
补充:隐式类型转换
规则:
从右向左 :必转
从下到上:
低精度类型 与 高精度类型混合运算 :此时 低精度 往 高精度转
eg:
10+'a'+1.5 - 8765.1234 *'b'
10 + 'a' + 1.5 - (8765.1234 *'b') //优先级
(((10 + 'a') + 1.5) - (8765.1234 *'b') ) //结合性
(int + int)
(double + double)-(double)
强制类型转换:
( 类型 ) 表达式
这篇关于4个月拿下年薪30w的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!