目录
linux中一切接文件,两大特殊文件 1、根目录/ 3、家目录:~ /home/hq
快捷键
放大终端字体 ctrl shift +、
缩小终端字体 ctrl -
清屏 ctrl L ,命令clear
退出 CTRL c
打开终端
在当前文件夹下打开终端 ctrl shift n
在家文件夹下打开终端 ctrl alt t
关闭终端 ctrl d 命令exit
常用命令
新建命令
新建文件夹
新建一个文件夹 mkdir 24081
新建多个文件夹 mldir 44 55 66
新建多层嵌套文件夹 mkdi -p 55/66/77
注意:当55和66文件夹存在时可以mkdir 55/66/77直接新建文件夹,但是只要有其中一个不是嵌套关系或者不存在的话就需要用完整的命令
新建文件
新建一个文件 touch file.c
新建多个文件 touch file.c file2.c file3.c
注意:同名文件夹新建会报错,同名文件更新时间戳
查看命令
ls 查看当前路径下的所有内容
ls -a 查看当前路径下的所内容包括隐藏文件
ls -l 查看当前路径下的所有内容,包括隐藏内容及详细信息
文件类型:七种 bcd-lsp
b:块设备文件 /dev l:软链接
c:字符设备文件 /dev/input s:套接字文件
d:目录文件 文件夹 p:管道文件
-:普通文件 .c .h
文件权限
r:可读 w:可写 x:可执行 -表示不可读不可写不可执行
rwx rwx rwx 自己 组内 其他
r:4 w:2 x:1 rw-rw-r-- 权限值:664
chmod 777 test.c 修改文件权限
路径切换命令
cd 文件名 切换到下一级
cd.. 切换到上一级
cd. 返回原地址
cd/ 返回根目录
cd- 运行上一行命令
复制、移动
复制普通文件: cp 文件夹名 目的地址
复制文件夹 : cp 文件夹名 目的地址
移动(剪切:mv 文件名/文件夹名 目的地址
重命名:mv 文件名/文件夹名 目的地址
另存为: cp 文件名 目标地址/新名字
路径表示形式
相对路径:以当前位置为参照
绝对路径:从根目录开始
删除
删除文件 rm 文件名
删除文件夹 rm -r文件夹名
强制删除 rm -f 文件或文件名
历史记录
cat 文件名:在终端显示所有文件内容
head 文件名:在终端默认显示前10行命令
head -n 文件名:终端显示前n行内容
tail 文件名 :在终端默认显示后10行内容
tail -n 文件名:终端显示文件后n行内容
vi编辑器
vi编辑器的三种模式
命令行模式:复制,粘贴、撤销、光标移动
插入模式:编写代码 IOA iao
底行模式:保存、退出、复制、分屏、查找、替换
保存 w 退出 q 保存并退出 wq 强制 !
vscode编辑器
建议打开整个文件夹
code 文件夹名字
简单编程步骤:
1. 创建文件 touch file.c
2. 打开vi编辑器 vi file.c 默认在命令行模式,需要切换到插入模式
3. 编写代码
4. 进入底行模式 w保存
5. 运行程序: gcc file1.c 编译c文件,生成可执行文件
6. 运行: ./a.out
#include <stdio.h>
// #预处理
//<> 头文件 地址:/usr/include
// " " 一般位置在当前文件夹内部
intmain(int argc,constchar*argv[])
{
//主函数 程序的入口 main:函数名
printf("logo\n");
//终端输出 \n换行
return0;
//程序的结束 0整型 int 决定函数定义时的数据类型
}
gcc编译器
高级语言(C语言)---机器识别不了,借助编译器
简写:
gcc file2.c 生成可执行文件名a.out
./a.out
另一种简写:
gcc file2.c -o file2(可执行文件名,可自己命名)
./file2
完整编译步骤:
1. 预处理 展开头文件、删除注释,替换宏定义
gcc -E hello.c -o hello.i
2. 编译:检查语法错误,有错报错,没错会转变成汇编语言,生成汇编文件
gcc -S hello.i -o hello.s
3. 汇编:把汇编文件生成不可执行的二进制文件
gcc -c hello.s -o hello.o
4. 链接:链接库文件,最终生成机器能够识别的二进制的可执行文件
gcc hello.o -o hello(可执行文件,可以自己取名)
计算机存储单位
位:最小存储单位 1 0 1字节byte =8位bit
1B=8bit
1KB=1024B 2^10
1MB=1024KB
1GB=1024MB
1TB=1024GB
计算机数据表示形式
数值型数据
二进制 0 1 2:10
八进制 0-7 8:010
十进制 0-9
十六进制 0-9 a-f 16:0x10
非数值型数据
字符型 用' '包裹
man man :查看man手册
man手册:用来查看一些命令、函数的用法
1 可执行程序或 shell 命令
2 系统调用(内核提供的函数)
3 库调用(程序库中的函数)
man ascii 查看ASCII码表
'\0' 0 字符串结束标志 ' 0' 48 字符0
'\n' 10 换行 'A' 65
空格 32 'a' 97
字符转数字 '2'-48==2
'A' +32 = 'a'
'A' +' ' = 'a'
词法符号
关键字(32个):
存储类型:outo static extern
数据类型: int short long char float double signed unsigned
分支 :if else switch case default
循环: for fo while go to break continue
构造数据类型:struct enum union
其他: void const sizeof typedef volatile return
虚拟内存空间
32位
64位
栈区
堆区
全局区、静态区
常量区
标识符
定义变量名,定义数组名,定义函数名等要遵循标识符命名规则
1、由字母、数字、下划线组成
2、开头不能是数字
3、不能和关键字重名 最好能看见名字就知道它的意思
运算符
算术运算符、逻辑运算符、关系运算符、位运算符、三目运算符、赋值运算符
算术运算符
+ - * / % ++ --
/:如果是整数相除,结果向下取整。小数和整数相除,保留小数位
强制类型转换(float)5/2 短暂的强制转换
1)int a=5/2; 3)flaoat a=5.0/2;
printf("%d",a); //结果:2 printf("%.1f\n",a);//结果为2.5
.1运行结果保留一位小数
2)flaoat a=5/2;
printf("%f\n",a);//结果:2.000000
%:取余运算 只能用于整数运算
++ :在自身的基础上加一
独立成句
int a=5 1) ++a; 2)a++;
printf("%d\n",a);//6 printf("%d\n",a);//6
赋值运算:
int a=5 1)int b= a++; // = + 2)int b= ++a; // + =
printf("%d %d\n",a,b);//6 5 printf("%d %d\n",a,b);//6 6