一、VMware虚拟机
虚拟机:是一个虚拟的环境,运行在宿主机的一个隔离区
二、Ubuntu
操作系统:是计算机的操作系统,管理硬件和软件的系统
他是任何人机器交流的必将之路
2.1 操作系统的分类
操作系统 | 内核 |
---|---|
windows | windowsNT |
Ubuntu | Linux |
Macos | Unix |
2.2 Ubuntu的系统分区
三、认识终端命令
ubuntu@ubuntu:~$
第一个ubuntu 用户名
第二个ubuntu 用户所属组
@ : 分割符
~ 家目录 【当前目录的路径】
$ 普通用户权限
管理员权限
命令 | 解释 |
---|---|
sudo su root | 切换管理员权限 |
su ubuntu | 回到普通用户权限 |
四、终端命令
格式1: 指令 【选项】 【参数】
格式2: 指令 【参数】 【选项】
注意:选项和参数可以省略不写,指令、选项、参数之间必须使用空格隔开
4.1ls指令
作用:查看当前目录的所有文件或文件夹
命令 | 解释 |
---|---|
ls | 查看当前目录下的所有文件或文件夹 |
ls -a | 查看当前目录下的所有文件或文件夹,包括隐藏文件 |
ls 目录名 | 查看该目录下的所有文件 |
ls 文件名 | 把文件名这个字符串,进行打印 |
ls dir1/dir2 | 查看当前目录下的dir1下的dir2的所有文件及目录 |
ls dir1 -a | 查看当前目录下的dir1的所有文件及目录,包括隐藏文件 |
ls -l | 查看当前目录下的所有详细信息 |
ls -la | 查看当前目录下的所有详细信息包括隐藏文件 |
ls -lh | 查看当前目录下的所有详细信息,并以K M G 等为单位进行显示 |
ls -lha | 查看当前目录下的所有详细信息,并以K M G 等为单位进行显示,包括隐藏文件 |
ls dir3/dir1 -lha | 查看dir3下面的dir1目录的所有详细信息,以KMG等为单位,包括隐藏文件 |
4.2cd指令
作用:进入到文件夹【等价于windows下的双击打开】
命令 | 解释 |
---|---|
cd dir3 | 进入到当前目录下的dir3目录 |
cd | 直接回到家目录下 |
cd ~ | 直接回到家目录下 |
cd dir3/dir1 | 进入到当前目录下的dir3下的dir1目录 |
cd . | 进入到当前目录【没有反应】 |
cd - | 回到上一次操作的目录下,并打印绝对路径 |
cd …(此处为两个. ) | 进入到当前目录下的上一级目录 |
4.3touch指令
作用:创建文件
注意:在创建文件时,不识别后缀名,但是在后期编译时识别后缀名
命令 | 解释 |
---|---|
touch file1 | 在当前目录下创建文件file1 |
touch file1 file2 | 在当前目录下创建多个文件 |
touch dir1/file1 | 在当前目录下dir1目录下创建file1文件 |
4.4mkdir指令
作用:创建文件夹
命令 | 解释 |
---|---|
mkdir dir | 在当前目录下创建dir目录 |
mkdir dir1 dir2 | 在当前目录下创建多个目录 |
mkdir dir1/dir2 -p | 在当前目录下嵌套创建目录 |
mkdir d1/d2 d3/d4 -p | 在当前目录下创建多个嵌套目录 |
4.5rmdir指令
作用:删除空目录的
注意:不能删除文件,不能删除非空目录
命令 | 解释 |
---|---|
rmdir d1 | 删除当前目录下的d1空目录 |
rmdir d1 d2/d3 d4/d5/d6 | 删除当前目录下的多个嵌套空目录 |
4.6rm指令
作用:删除文件或者文件夹【可空可非空】
命令 | 解释 |
---|---|
rm file1 file2 | 删除当前目录下的多个文件 |
rm d1 d2 d3 -r | 删除当前目录下的多个目录 |
4.7cp指令
作用:赋值和粘贴
-
cp file1 file2 文件拷贝文件
当file2不存在,把file1复制一份,重命名为file2
当file2存在,把file1的内容复制一份覆盖file2 -
cp file1 dir1 | 文件拷贝目录
dir1目录必须提前存在,把file1复制一份存储到dir1 -
cp dir1 dir2 -r 目录拷贝目录
当dir2不存在时,把dir1复制一份,取名为dir2
当dir2存在时,把dir1复制一份,存到dir2里面,dir2原来的内容不变
4.8 mv指令
作用:剪切【复制、粘贴、删除】
-
mv file1 file2 对文件剪切
当file2不存在时,把file1复制一份,取名为file2,删除file1
当file2存在,把file1复制一份替换file2的内容,删除file1 -
mv file1 dir1 文件剪切到目录
注意:
dir1必须存在,如果dir1中没有同名文件,把file1剪切到dir1里面
如果dir1存在同名文件,时file1覆盖dir1中同名文件 -
mv dir1 dir2 对目录进行剪切
当dir2不存在时,把dir1目录重名为dir2
当dir2存在时,把dir1剪切到dir2中,删除dir1
4.9clear指令
作用:清屏【ctrl l】
4.9 tab健
作用:自动补全
4.10cat指令
作用:查看文件的内容,一般用来赋值
命令 | 解释 |
---|---|
cat file1 | 查看文件中的内容 |
cat file1 -n | 在查看文件中内容时,显示行号 |
4.11echo指令
作用:直接打印字符串,类似printf
4.12man指令
作用:查看手册
4.13重定向
> 删除,并复制 注意:只能定向给一个文件
- cat file1 > file2
当file2不存在时,创建file2,把file1的内容赋值给file2
当file2存在时,file1的内容覆盖file2的内容,file2原来不存在
- cat file1 file2 > file3 把file1和file2里面的内容存到file3中
- cat file1 file2 > file3 file4
- echo file1 > file2
当file2不存在时,创建file2,把file1字符串覆盖file2
当file2存在时,把file1字符串覆盖file2
>> 追加
- cat file1 >> file2
当file2不存在时,创建file2,把file1的内容赋值给file2
当file2存在时,file1的内容追加file2的内容后面
- echo file1 >> file2
当file2不存在时,创建file2,把file1字符串追加file2
当file2存在时,把file1字符串追加到file2的后面
4.14 pwd指令
作用:查看当前目录的绝对路径
五、Vi/Vim编译器
作用:编写代码
5.1 Vi的使用格式
格式 vi 文件名 或者 vim 文件名
vi和touch的区别:
1> vi需要手动保存,如果不保存,文件创建失败
2>touch自动保存文件,直接创建成功
5.2 命令行模式
作用:赋值、粘贴、删除等
命令 | 解释 |
---|---|
yy | 赋值光标所在行 |
nyy | 赋值从光标开始的n行 |
选中y | 可以随意复制 |
进入底行模式 m,ny | 赋值m-n行 |
p | 粘贴(当选中赋值时,粘贴在光标后) |
dd | 剪切光标所在行【删除】 |
ndd | 剪切从光标开始的n行 |
选中d | 可以随意剪切 |
进入底行模式 m,nd | 剪切m-n行 |
gg | 光标移动到首行的第一个字符 |
G | 光标移动到尾行的第一个字符 |
ngg nG | 光标移动到指定的n行的第一个字符 |
ggyG | 复制全文 |
ggdG | 剪切全文 |
gg=G | 自动调整全文格式 |
= | 选中,自动调整格式 |
u | 撤回上一次操作 |
ctrl r | 反撤回 |
x | 剪切光标所在的一个字符 |
X | 剪切光标前一个字符 |
5.3 插入模式
作用:编写代码
命令 | 解释 |
---|---|
A | 在光标所在行的行尾插入 |
a | 在光标所在位置的后面插入 |
o | 在光标所在行的下一行插入 |
O | 在光标所在行的上一行插入 |
I | 在光标所在行的行首插入 |
i | 在光标虽在位置的前面插入 |
S | 删除光标所在行的整行,并插入 |
s | 删除光标所在位置,并在光标位置插入 |
insert | 在光标虽在位置的前面插入 |
5.4 底行模式
作用:保存,退出,查找,替换
命令 | 解释 |
---|---|
w | 保存 |
q | 退出 |
wq | 保存并退出 |
q! | 不保存,并强制退出 |
wqa | 保存全文 |
x | 保存并退出 |
/字符串 | 查找,并高亮显示 |
noh | 取消高亮 |
%s/字符串1/字符串2 | 把每一个的第一个字符串1替换为字符串2 |
%s/字符串1/字符串2/g | 把全文字符串1替换为字符串2 |
m,ns/字符串1/字符串2/g | 把m-n之间的字符串1替换为字符串2 |
set number/nu | 显示行号 |
set nonumber/nonu | 取消行号 |
5.5 三种模式之间的切换
插入模式-----> 底行模式
插入--esc->命令行--冒号-> 底行模式
底行模式 ----->插入模式
底行模式--回车结束底行模式输入,直接跳转到-->命令行模式---Aios-->插入模式
六、gcc编译器
1,直接编译,默认可执行文件a.out
gcc 文件名
./a.out
2, 自动可执行文件名
gcc 文件名 -o 自定义可执行文件名
./自动可执行文件名
3,重点: 分步编译ESc iso
预处理.i ----> 编译.s ---->汇编.o --->链接.out
1>预处理:展开头文件、删除注释、替换宏定义
gcc -E 1.c -o 1.i
2>编译:检查语法的正确性
gcc -S 1.i -o 1.s
3>汇编:把汇编文件转换为二进制文件
gcc -c 1.s -o 1.o
4>链接:把二进制文件转换为链接文件
gcc 1.o -o bbb
七、第一个程序
注释方法
注释 | 解释 |
---|---|
// | 单行注释 |
/* */ | 多行注释 |
#if 0 #endif | 宏定义注释 |
#头文件,或者宏定义的标志
//<>:在系统库直接查找
//“”:先在当前目录下查找,不存在,再系统库中查找
//stdio.h: printf scanf
//stdlib.h:malloc free
//string.h:strlen strcmp …
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
printf("fgshdsj%d",12);
return 0;
}
八、计算机的进制
1> 计算机中的进制:二进制、八进制、十六进制
2> 生活中的进制:十进制、七进制、365进制、60进制
3>计算机主要进制:二进制【电路只有闭合和打开的状态】
进制三要素:基数、数码、位权
学习 | 十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|---|
基数 | 10 | 2 | 8 | 16 |
数码 | 0-9 | 0-1 | 0-7 | 0-9 a-f/A-F |
位权 | …10^2 10^1 10^0 | …2^2 2^1 2^0 | …8^2 8^1 8^0 | …16^1 16^0 |
8.1 计算机的二进制
1字节=8byt 1byt=两位(如01)
1> 加、减:逢二进一、借一当二
2>有符号数、无符号数
无符号数:没有正负之分
0000 0000 ---->0
1111 1111
有符号数:由正负之分