一、今日所学内容
文件的相关操作
文件操作:
1.创建:touch 文件名 / touch 文件名1 文件名2 文件名3 (文件名加后缀)
2.删除:rm 文件名
rm //:通配符可以代替所有字符,全部删除
(Tab键:自动补全,上下键查找指令记录,补充最少的字符)
3.移动:mv 目标文件 目标路径 / mv 目标路径下的文件 目标路径
mv 文件1 文件2(如果文件2不存在,相当于给文件1命名文件2)
mv 目标路径下的文件 .(当前目录)
4.复制:cp 目标文件 目标路径 / cp 目标路径下的文件 目标路径
cp 目标路径下的文件 .(当前目录)
5.查看文件内容:cat 文件名
如:查看鼠标设备:/dev/input和mouseX
cd /dev/input
ls
sudo cat mouse2
(输入密码,移动鼠标查看输入字符,ctrl+c停止)
6.修改文件权限:chmod 文件权限每组相应的八进制转换成十进制数的组合 文件名
r | w | x |
---|---|---|
1/0 | 1/0 | 1/0 |
【注】:1代表赋值给相应权限,0代表没有,用421组合
如:
r | w | x |
---|---|---|
1 | 1 | 1 |
r | w | x |
---|---|---|
1 | 0 | 0 |
r | w | x |
---|---|---|
1 | 1 | 0 |
chmod 746 1.c
【注】表示含义:当前用户可读可写可执行 当前用户组可读 当前其他用户可读可写
注意:在家目录以外操作文件,需要管理员权限,即sudo 指令
文件夹操作:
1.创建:mkdir 文件夹名 / mkdir 文件夹名1 文件夹名2 文件夹名3
mkdir -p 文件夹/文件夹/文件夹(递归创建)
2.删除:rm -r 文件夹名/rm -r 文件夹名1 文件夹名2 文件夹名3
3.移动:mv 文件夹名 目标路径/mv 文件夹名1 文件夹名2 文件夹名3 目标路径
4.复制:cp -r 文件夹名 目标路径
5.查看:ls
6.修改文件权限:chmod 文件权限每组相应的八进制转换成十进制数的组合 文件名(和文件的修改权限相同)
VI编辑器:全编辑器
打开格式:vi 文件名
三种模式:
命令行模式:默认模式,此模式下可实现文本的粘贴,复制等功能。
模式切换:‘a’\‘i’\‘o’进入插入模式
‘shift’+‘:’进入低行模式
插入模式:文本编辑模式
模式切换:‘esc’返回命令行模式
底行模式:此模式下可实现文本的保存、退出等操作
模式切换:‘esc’返回命令行模式
命令行模式:
yy:复制光标所在行(移动光标)
nyy:复制光标所在行向下n行内容
p:粘贴光标下一行
dd:剪切光标所在行
ndd:剪切光标所在行向下n行内容
u:撤销
ctrl R:恢复撤销
nG:把光标跳转到第n行行首
底行模式:
保存:w
退出:q
若有编辑内容,但又并不想保存:强制退出:q!
保存退出:wq/x
指令+!:强制执行指令操作
到最后一行:底行模式下,G
查找字符:底行模式下,
/字符(按n向下查找,按N向上查找)
替换字符:底行模式下,
50,100s/要替换字符/替换成的字符/g
删除行:底行模式下,
n行,m行d
【注】:若不正常关闭vi编辑器,就会出现报错
ls -a()查看文件以及隐藏文件
rm .文件名.swp(删除相应隐藏文件)
【c程序分析】
#include<stdio.h>//头文件,printf函数的声明在stdio.h文件里面
int main()//主函数,程序执行的入口
{
printf("hello world!\n");//格式化输出函数
‘\n’:换行符
return 0;//返回值,执行到这里,函数结束
}
程序从编写到执行流程:
1.vi编辑器编写代码并保存
2.gcc编译工具编译代码生成二进制可执行文件
gcc 文件名//生成的可执行文件默认叫a.out
注意:gcc 文件名 -o 自定义可执行文件名
这样 可以生成自定义名字的可执行文件
3.执行可执行文件:./可执行文件名
练习:把1-10的和输出到终端
#include<stdio.h>
int main(int argc, const char *argv[])
{
printf("%d\n",1+2+3+4+5+6+7+8+9+10);
//%d是输出整型数据
printf("%s\n","hello world");
//%s是输出字 符串
return 0;
}
【变量常量】
变量:在程序执行期间数值可以发生变化的量
定义格式:
存储类型 数据类型 变量名
存储类型决定变量在内存中的位置
//注意,一般定义变量时不加存储类型,系统默认在栈区
给变量开辟空间
数据类型:变量在内存中的存储格式以及变量占据内存的
大小
00000000 1111111
基本数据类型:
char 字符型 1字节
int 整型 4字节
short 短整型 2字节
long 长整型 4字节
float 单精度浮点型 4字节
double 双精度浮点型 8字节
float和 double区别:float保留到小数点后6-7位
double保留到小数点后15-16位
面试题:
int b;//if(b==0)<br /> float a;问:如何判断a是否等于0<br /> 答案:if(a>-0.0000001&&a<0.0000001)
练习:计算不同类型变量占据空间的大小
#include<stdio.h>
int main(int argc, const char *argv[])
{
char a;
int b;
short c;
long long d;
float e;
double f;
a = 'f';
b = 10;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(b));
printf("%d\n",sizeof(c));
printf("%d\n",sizeof(d));
printf("%d\n",sizeof(e));
printf("%d\n",sizeof(f));
return 0;
}
sizeof(变量名)
常量:程序在运行期间数值不可以发生改变的量
分类:
整型常量:进制数
浮点型常量:3.14,科学计数法表示形式
字符常量:’a’ ‘\n’ ‘\t’ ‘ ‘
//字符常量在代码中需要加单引号
字符串常量:”hello world“ “nihaoa”
//需要加双引号
注意:在字符串最后 会有一个看不见的’\0‘
面试题:请问 a ,’a’, “a”的区别
<br /> 标识常量:宏定义<br /> 定义格式:<br /> #define 标识 目标<br /> ex:#define M 6+7<br /> <br /> 注意:宏定义本质上就是定义一个名称来替换常量表达式<br /> 只是简单的替换<br />
面试题:
#include<stdio.h>
#define M 5+6
#define N 8*M//8*5+6
int main(int argc, const char *argv[])
{
printf("%d\n",N);
return 0;
}
二、今日感受和收获
通过姜浩老师一天的授课,今天学了很多内容,包括对文件和文件夹得操作,vi编辑器得使用,以及程序得编写,编译运行,还有一些C语言的基础知识,收获了很多,感觉很充实。
下午袁文建老师对我们做了一些考研的分享,对我收获颇大,认清了自己,面对现在的考研局势,需要更加努力。
三、问题疑惑
四、未来规划
五、建议
六、作业截图如下
1、
2、
3&4、
5、
6、
7、
8、
vi编辑器1234、
vi编辑器5、
vi编辑器6、
vi编辑器7、
vi编辑器8、
vi编辑器9、
vi编辑器10、
vi编辑器11、
vi编辑器12、
vi编辑器13、
vi编辑器14&15、