ls -a显示所有文件 -S 按大小排序 -t按时间
--color = never不以颜色区分不同对象 always 、auto
cp -f强制复制(覆盖目标文件)-i 询问拷贝(是否覆盖)-r连子目录一起复制 -u比原文件新则复制 -ad
文件的时间属性:时间戳 生成或者修改时间,读取时间,修改属性时间
rm -f强制 -i询问 -r递归
mv -f -i -u 目录相同 名字不同 实现重命名
cat 顺序显示文件内容(终端显示最后一行为文件最后一行) -n显示行号 -ETvA 显示文件中的编辑符号
tac 倒序显示(终端显示最后一行为文件第一行)
more 顺序分页查看文件内容 空格翻一页 回车翻一行
/字符串 查找显示关键词 q退出
less 分页查看 pageup pagedown
head -nx 取头部x行 默认取10行
tail -nx 取尾部x行 管道符连接两个命令可截取文件中间行
nl 显示行号
od 二进制方式显示
|管道符 前一个命令结果作为后一个命令输入
grep 在指定的文件名范围内查找含有指定字符串的内容,若有则打印出含有该字符串的一行文本
(了解)
touch 创建空文件 -acdmt修改时间属性
passwd 修改密码
su 切换用户 默认root
tar -xvzf解压 -cvzf压缩 目标名 生成名
clear 清屏
ifconfig 查看IP地址 eth0(网卡名字) 设置
vi 命令行模式(整块命令复制删除),i插入模式(编辑)esc退出到命令行 : 底行模式(执行指令)
命令行功能键:[n]yy复制当前[开始的n行] p粘贴 u撤销 [n]dd删除当前[开始的n行] /name查找光标后名为name的字符串 G光标移动到文件尾 d1G 光标位置到文件第一行全部删除 x删除光标后一个字母 :n1,n2 s/word1/word2/gc 第n1行到n2行 查找word1替换成word2 全局(没有则只换第一个) 询问 1,$全文 可直接用%
底行模式功能键:w保存 q退出 q!强制退出 wq保存退出 w[filename]另存为filename的文件 w 1,10 保存1到10行为新文件 set nu显示行号 set nonu 取消行号 命令前加!可在底行模式执行命令
扩展:命令行模式 v可选光标经过字符 V可选光标所在整行 ctrl v 可选中矩形
多文档编辑 vim 文件1 文件2 文件3 n下一个文件 N上一个文件 files 显示打开文件列表
多窗口功能 vim 文件 sp 文件 ctrl ww 光标在不同窗口切换 ctrl j 光标切下窗口 ctrl k光标切上窗口 q退出当前光标所在窗口
预处理:
宏展开(define):是简单的字符替换,宏名换成宏体,不做运算,不做语法分析
条件编译:用来做程序分段调试
文件包含(include):include <库函数> “自定义函数” 实际是按文件地址区分 用被包含文件的内容替换include命令
路径 lib:模块库 include:标准头文件 所有目标文件是二进制形式
>重定向符
编译是以文件为单位
函数、声明、变量等构成文件,文件构成程序
gcc -E 得到预处理文件.i -S 得到汇编文件.s -c 得到目标文件.o -C 不删除注释信息 -o 本次操作得出结果的文件名 不给则默认可执行文件为a.out -g 需要调试时的必要步骤,可执行程序会附加调试信息,大小会成倍增加
-Idirname 将dirname指出的目录加入到程序头文件目录列表中 大写i 定位所需头文件位置,与主函数同目录下可省略
-Ldirmane 将dirname指出的目录加入到库文件的目录列表中 定位所需静态库位置
-lname 连接时装载名为libname.a的库,位于默认目录或-L选项确定的目录下 指定所需静态库名称
sqliet3 数据库 -lpthread
-staic 静态链接库文件
程序库:包含通用函数的数据和二进制可执行机器码的文件,不能单独运行,没有main
静态库:执行程序前已经加入到执行代码中 后缀.a
动态库:执行时加入到代码中 后缀.so
ar rcs 静态库名 目标文件1 目标文件2 rc静态库不存在就创建 s更新库文件
先创建函数声明目标文件,再创建静态库,将目标文件装入库中,编译源文件时指定静态库路径、静态库名称,若包含自定义头文件还需指定头文件路径
动态库创建:gcc -shared -fPIC -o 库名.so 源文件.c
动态库的使用:gcc 源文件.c ./ 库名.so -o 可执行文件名
-Wall生成所有警告信息 -w不生成任何警告
输入截至只认回车的输入方法 get s:会有一个警告无法消除,scanf%[^\n]: f get s:
-D宏定义 -U取消宏定义