目录
一、文件命令知识点
- ls -al 隐藏文件也以长格式显示 -S文件大小排序 -t按时间 --color=never/always/auto(--命令完整拼写)
- cp(也可以做到复制文件)
-f同名覆盖 -i询问是否覆盖 -r子目录复制
-u更新(每个时间都对应一个实数;用最新的文件覆盖;时间戳/三个时间:1创建修改时间、2文件取用时间、3权限修改时间)
- rm -fir 仅能删除普通文件不能删系统文件
- mv -fiu
- man 1 ls 查询选项:1Linux常用命令 2系统调用 3库函数
- 略看
1.cat tac 显示在终端(滚屏溢出500) -n行号 横向跳格 空格 换行 -E T v A 编辑符号特定显示 2.more 分屏查看只能往后(鼠标除外) 翻页空格 回车滚一行 /字符串 查找字符串 q退出 less 支持pg up down ls -al /etc | less grep显示更丰富 3.head -n值 文件名 tail 默认十行 eg:截取10到20行 head -n20 test.c | tail -n10 4.touch -acdmt修改时间属性 5.vim -iao G:光标到最后一行 d1G:删除第一行到最后一行 yG:复制光标到文件末尾 p1G /name(?name):查找name 标记为深颜色 u:回退到上一步(Windows下的crtl+z) crtl+r:前进到一下步 7+yy+p :光标处开始复制7行 3+dd :光标处开始删除3行 /re X/x相当delete nx光标 6.底行模式 /** * :n1,n2行号范围 s替换/word1/word2/gc全局询问 * :n1,$ s/word1/word2/g * :% s/word1/word2/g **/ 底行模式功能键 : !ls 底行模式执行Linux命令 :w n1 n2 filename 页码n1到n2另存为filename文件 :set nu显示行号 :set nonu取消行号 多文档编辑 vim demo1.c demo2.c demo3.c 多窗口文档编辑 :sp demo4.c 通过一个文件打开在两个窗口显示 1、crtl+w窗口切换 2、ctrl+wk向上移动光标 CTRL+wg向下移动光标 CTRL+ww则来回切换 3、:n下一个 :N上一个 4、:!files 文件列表 7.vim选取行号:1、alt+鼠标不受限的选中文字 2 、v+移动光标 3、crtl+v 整行选取
-
1. scanf("%s",string) 输入字符串不能带空格 scanf("%[^\n]",string) 输入字符串可以带空格,^就是省略号) 2.输入分隔符默认有三个:空格 回车 tab 格式字符和普通字符 格式字符如:%d %s 普通字符如:\n 3.gets 编译后的文件自带warning fgets没有警告 4. float div(int a,int b) { return ((float) a)/b ; } 如果在编译时直接用div.c文件而不在main.c里声明函数 3/5 结果为0.0000 这表示没有声明函数时(#include"div.h"),main.c默认div函数return的是int而不是float div(int x,int y) //???
8.数据库编程 -lsqlite3 线程编程 -lpthlited
二、gcc深度理解
1.gcc交叉编译流程C语言和C++
2. 指出文件位置./207/0115/main.c eg:gcc main.c -lcal -L./ -I./207/0115/ -o main
3.-D宏名:等效于.c里的#define PI = 3.14
eg: gcc hello.c -o hello -DPI=3.14
4.这里运行的还是动态库.so,不怕被static迷惑了;
libcal.a和libcal.so都存在/usr/lib 程序会优先选择libcal.so动态库;
静态库:1、gcc -c demo1.c demo2.c demo3.c
2、ar-rcs libcal.a demo1.o demo2.o demo3.o
3、gcc main.c -lcal -L./ -o main
动态库:
5.gdb调试版比发行版文件大几倍
1、 gcc -g 添加调试信息 -C不删除注释信息
2、 gcc -g demo.c -o demo
3、 gdb test --tui //图形界面
run break 17设置断点 delete取消断点 info break查看断点 continue print i显示当前值 print sum next/n list滚屏 quit y layout asm layout src layout split