1、文件和目录相关命令
文件系统结构(FHS标准):树形的分层结构
/bin:二进制(binary)的缩写
/boot:系统启动要用的程序
/dev:系统外设
/etc:系统管理时要用到的各种配置文件
/lib:系统动态连接共享库
/home:普通用户的主目录
/root:根用户的主目录
pwd :显示当前目录位置
ls:显示目录内容(不加参数就是当前目录,加就是目标目录)
cd :去到目标目录
-a: 显示.开头文件 ls -a
-l :长格式显示 后面可以加目录
-R :目录里有目录则递归显示
ctrl l:清屏
mkdir:建文件夹
mkdir -p d2/d22;;创建两个联级文件夹;
mkdir -r //删除文件夹
cd 空格 点 点 :上一级
读r写w执行x;//文件权限
df -t:显示文件系统的信息;
u盘会被Linux以目录结构显示
查看文件内容
Cat -s 多个空行合并成一个空行显示
-b 加行号显示
nl 加行号
head
-n 文件名 (前n行,默认10)
tail
-n 文件名(后n行,默认10)
例子:cat -s teat.c ,cat -b test.c
nl test.c head -n test.c
cp :复制 //cp a.c b.c cp a.c ../bank.c';;;可以到不同目录去
(cp 不能复制文件夹)cp -r :复制文件夹
cp -i :交互提示覆盖
复制多个文件到文件夹 :cp file file 目标目录
mv:移动
mv test.c ../ 移动到上一级
mv test.c tes3.c 重命名
mv tst.c ../ tesq.c //移动并重命名
创建删除文件:touch 文件名(对已存在文件touch就是改时间戳)
rm 删除文件;
rm -i file :询问交互
rm -r :删文件夹
vim编辑器:
键盘:编辑模式or 命令交互模式;默认打开命令交互模式;
1、模式切换
命令-》编辑:i ;
编辑-》命令:esc;
2、命令模式的命令:
1、复制行:yy;nyy
2、粘贴:p;(小写p在下一行。大写P在上一行)
3、删除行:dd;ndd;
4、撤销:u;
6、一个字母替换:r(x);
7、R替换模式 一直替换;esc结束;
8、nG跳转到第几行;gg最前;G最后;
(x,nx,删除一个字符或n个字符)
9、交互: :w(保存)name.格式;:wq 保存退出;:wq!强制保存退出;
:x 保存并退出;:q 退出没有修改的文件;:q!强制退出;;
:w file 把当前文件另存为别的文件名;; :r file 读入文件的内容把file的内容读入当前文件;
插入:a(insert模式下,当前光标往后移动一个位置)
o:进入编辑状态插入一个新的下一行;
A:与I相反,行尾转插入
I:进入当前光标对应得行首并进入插入模式;
O:在上面加新的上一行;
:!pwd 显示进入当前文件的目录
:!data 看当前时间;
vim的光标命令
h:左
i:右
j:下
k:上
:N 移动到第n行
1G:移动到文件第一行
G:移动到文件最后一行
:set number(nu) 设置显示行号
:set nobumber(nonu)取消显示行号
查找:/ 查找的字符串 n:继续查找往下; N反向继续查找;支持正则表达式/^the(开头) /end^(结尾);
替换命令:
:s 字符串替换;
:范围(省略为当前行)s/str1/str2 当前行替换没有g则默认替换第一个;
:,(当前行)$(结尾)s/str1/str2/g(g代表符合的全部替换)
: 1,$ s/str1/str2/g 全文替换
:% s/str1/str2 全文
开始行,结束行 s/str1/str2/g
复制
y0 光标至行首的字符拷入剪切板
y$ 光标至行尾的字符拷入剪切板
剪切
d0光标至行首的字符拷入剪切板
d$光标至行尾的字符拷入剪切板
range y 块复制;;:118,119 y
range d 块剪切;;
gcc编译器(c,c++)
.c c源代码
.h 头文件
.i 预处理过的c源代码文件
.s 汇编语言源代码文件
.o 编译后的目标文件
gcc -o hello hello.c -wall(有不规范报警告)
-o 输出可执行文件
-c 只要求编译器输出目标代码.o
-g 调试
./hello 查看输出结果
ctrl shift n 再开一个窗口
利用__FLIE__,__LINE__,__FUNCTION__实现代码跟踪调试(两个下划线)
printf("%s,%s,%d\n",__FLIE__,__LINE__,__FUNCTION__);(可以加在日志里)
文件名,函数名,行号(调试辅助的显示)