请教高手:怎样才能精通Linux系统编程?
工作4年,现在因为工作需要刚涉及Linux系统。请问如何能够快速的学习Linux的应用程序开发?
作为通常的方法是看书和看代码。我手里有一本大部头的Linux开发书籍,但是我觉得这种大部头并不适合学习,因为看到书籍中间的部门,前面的部分已经忘记了,永远都没法精通。
------解决方案--------------------unix 环境高级编程 一定要看
linux的命令一定要熟 VI要精通
多写makefile,多分析问题。
------解决方案--------------------光看不练永远不会成为高手;光练不看也一样。
------解决方案--------------------建议先花一个星期好好学习VI,网上有本Learning the vi editor,非常不错。
然后再花一个月学习Linux的各种命令,Shell编程以及Makefile的写法(请坚持使用VI或VIM)
最后开始看《Unix高级环境编程》第二版,边看边写程序,想偷懒的话,至少要把书上所有的代码抄一遍。
大概一共需要四个月左右,即可脱离菜鸟级别。
另:
如果你把硬盘上的Windows删掉,或者Windows仅仅用来娱乐,学习进度会更快
------解决方案--------------------GNU/Linux编程指南入门·应用·精通(第二版)
unix 环境高级编程
作为入门教材,都很不错!
当然,在这之前,你必须“驯服”Linux环境!能Linux下完成windows下的日常工作!
------解决方案--------------------VI 编写大全
常用VI 编辑
1 基本编辑指令(由指令模式进入编辑模式)
1.1 Append(追加,既在原光标所在位置后面加入字符)
a 从光标所在位置後面开始插入数据,
A 从光标所在行的最後面开始插入数据
1.2 Insert(插入,既在原光标所在位置前插入字符)
i 从光标所在位置前面开始插入数据
I 从光标所在行最前面开始插入数据
1.3 Open
o 在光标所在行的下一行插入数据
O 在光标所在行的上一行开始插入数据
1.4 Replay (替换,既替换光标所在位置字符)
r 修改光标所在字元,一次只修改一个,既光标所在字 符 ,并且不改变命令行状态
R 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止
1.5 chang(改变,既先删除需要改变的字符,然后在改变的位置输入)
cw 改变光标所在位置的的一个字节,然后进入插入模式,如果光标在字符中间,则改变光标所在位置到该字节的结束,如果光标在字节的开头,则改变整个字节
cb 改变光标所在位置前的一个字节~~~~
cnw 改变光标所在位置的后n个字节
c0 改变光标所在位置到行的开头的字节
c$ 改变光标所在位置到行结束的字节
2 光标移动指令
2.1 行的移动
h 向左移动 nh 向左移动n个字符
j 向下移动 nj 向下移动n行
k 向上移动 nk 向上移动n行
l 向右移动 nl 向右移动n个字符
0 移动到光标所在行的最前面
$ 移动到光标所在行的最后面
b 移动到下一个字的第一个字母
w 移动到上一个字的第一个字母
字符与数值的组合,
nw 移动到下n个字的第一个字母
nb 移动到上n 个字的第一个字母
2.2 段的移动
Ctrl+f 向上一页
Ctrl+b 向下一页
H 移动到当前屏幕的第一行
M 移动到当前屏幕的中间行
L 移动到当前屏幕的最后一行
2.3 移动屏幕,但光标的位置不变
z (enter) 移动当前行到屏幕的顶端,并滚动
z . 移动当前行到屏幕的中间,并滚动
z- 移动当前行到屏幕的底端,并滚动
2.4 按句子移动光标
( 从光标位置移动到句子的开始
) 从光标的位置移动到下一个句子
3 删除 复制
dd 删除所在的行
D 删除从光标位置开导到所在行的末尾
dl 向右删除一个字符
dh 向左删除一个字符
dj 删除本行加下一行,总共删除2行
yy 复制 所在的行
5yh 向前复制5个字符
nyj 向下复制n行(包括当前行,则有N+1行)
nyk 向上复制n行(~~~~~~~~~~~~)
删除和复制同理
d ,y 与下面的字符结合可控制删除,复制的位置
0 光标所在位置到该行的最后一个字符
$ 光标所在位置到该行的第一个字符
复制的字符被放在缓存区,P 把复制的内容放到光标之前的位置
p 把复制的内容放到光标之后的位
4 取消上一次操作
u 取消上次操作and 保存删除的行,当删除了不想删除的字符时,按u可以回到最后一次操作前的状态,连续按u 可以恢复到前n个状态。
p(小写) 复制上一次删除的内容,复制到当前光标的下一位置,连续按p 则复制n个相同的内容
P 复制到当前光标的上一位置
. 重复三次操作
5 连接下一行
J 连接光标所在行的下一行
6 查找字符
/word 查找/下的字符,光标停留在查找的字符出
for example /dec 查找屏幕中的字符 dec
fx (x代表任意一个字符) 查找当前行光标后的字符x
Fx 查找当前行光标前的字符x
; 重复查找
7 复习
Table 2.1: Edit Commands
Text Object Change Delete Copy
1 word cw Dw yw
2 words, not counting punctuation 2cW or c2W 2dW or d2W 2yW or y2W
3 words back 3cb or c3b 3db or d3b 3yb or y3b
1 line cc Dd yy or Y
to end of line c$ or C d$ or D y$
to beginning of line c0 d0 y0
single character r x or X yl or yh
five characters 5s 5x 5yl
Table 2.2: Movement
Movement Commands
, , ,
h, j, k, l
forward by word w or W
backward by word b or B
to end of line $
to beginning of line 0