前天做了个入门,学了一些linux的基本操作,文件的操作命令等,经过一天的巩固,今天又来了一堆干货,很杂,但是很有用
上代码(简单命令)
今天跟明天下午自习的任务基本就是linux下c语言的相关知识了
编译器;编译器;调试器;makefile文件等
开始编辑命令:
i 在光标前输入文本
I 在当前行开始输入文本
a 在光标后输入文本
A 在当前行末尾输入文本
o 在当前行后输入新一行
O 在当前行前输入新一行
光标移动命令:
b 移动到当前单词的开始
e 移动到当前单词的结尾
w 向后移动一个单词
h 向前移动一个字符 ←
j 向下移动一行 ↓
k 向上移动一行 ↑
l 向后移动一个字符 →
删除命令:
x 删除光标所在的字符
dw 删除光标所在的单词
d$ 删除光标至行尾所有字符
D 同 <d$>
dd 删除当前行
ndd 删除当前行以后的n行
改变与替换操作命令:
r 替换光标所在的字符
R 替换字符序列
cw 替换一个单词
ce 同cw
c$ 替换自光标位置至行尾的所有字符
C 同c$
cc 替换当前行
拷贝和粘贴命令:
yw 将光标所在单词复制到粘贴板
y$ 将光标至行尾的字符复制到粘贴板
Y 同y$
yy 将当前行复制到粘贴板
nyy 将当前行后的n行复制到粘贴板
P 将粘贴板中的内容粘贴在光标前
p 将粘贴板中的内容粘贴在光标后
其他有用的命令:
nG 跳到第n行
u 撤销
. 重做
配对括号的查找:
用法:将光标移动到一个括号上,按下%,光标跳转到其配对的括号上
{}、()
页面操作:
ctrl + b #向前移动一页
ctrl + f #向后移动一页
zz #将当前行置于屏幕中央
gg #移动到第一行行首
G #移动到最后一行行首
数字 + 命令:
nG #跳到第n行
nx #删除n个字符
ndd #删除当前行以后的n行
nyy #将当前行后的n行复制到粘贴板
n+ #向后跳转n行
n- #向前跳转n行
n↑↓←→ #向上下左右跳转n次
以上为命令行模式下指令
设置vi:
:set number等于:set nu 显示行号
: set nonumber等于:set nonu 隐藏行号
:set autoindent 智能缩进
:set mouse=a 开启鼠标
文件保存及退出命令:
:q 不保存退出
:q! 不保存强制性退出
:w 保存编辑
:w filename 另存为文件 filename
:wq 保存退出
:x 同 :wq
ZZ 同 :wq
查询命令:
/abc 向后查询abc
?abc 向前查询abc
n 向后继续查询
N 向前继续查询
替换与查找:
查找+替换:
:s/old/new 替换该行第一个old为new
:s/old/new/g 可以替换全行中所有的old为new
:#,#s/old/new/g 替换两行之间出现的old为new,#,#为两行的行号
:%s/old/new/g 替换全文的old为new
:%s/old/new/gc 全文替换前需确认
以上为底行模式命令
插入模式即为正常输入代码
第二个重要知识点为gcc编译器和gbd调试器
在我看来,gcc编译器是一个强大的编译程序,负责c语言与二进制机器码之间的转换
而gbd调试器是用来检验程序功能实现的重要工具,只不过不是基于图形界面,而是用代码操作
gcc相关的文件分为:
.c为后缀的文件,c语言源代码文件;
.h为后缀的文件,是程序包含的头文件;
.i为后缀的文件,是已经预处理过的c源代码文件;
.s为后缀的文件,是汇编语言源代码文件
.o为后缀的文件,是编译后的目标二进制文件;
分别对应4个过程的源文件与目标文件
有几点要注意:
(1)gcc example.c -o example #直接生成可执行文件
(2)./example #运行可执行文件
(3)若不使用 -o 则生成可执行文件 a.out
(4)Linux头文件默认放在/usr/include中
至于gbd调试器,只要记住一些功能就行了:
1、 l(list) #一次列出10行代码(list n,m #列出n~m行)
2、 r(run) #执行程序(未设置断点,将程序执行完毕)
3、 b(break) #b+行号,在该行设置断点
4、 c(continue) #当程序运行时,继续运行程序,直到遇到断点
5、 i b(info break) #查看断点信息
6、 d+编号 #(delete)删除该断点(d删除所有断点)
7、 clear+行号 #删除指定行断点(不加行报错)
8、 p(print) #p+变量名,显示变量的值
9、 s(step) #单步执行(进入调用函数)
10、 n(next) #不进入调用的函数,只在主函数中运行
11、 return/finish #退出step进入的调用函数
12、 q(quit) #退出gdb调试
今天的代码量感觉很多知识很杂,但是通过理解来记忆的话,也不是很难,一小步而已,但确实在进步。