Linux下的常用shell命令,文本编辑器vi和C语言编译、调试工具gcc、gdb的使用心得

来源:互联网 发布:mysql monthsbetween 编辑:程序博客网 时间:2024/05/16 00:42

1.字符界面下的Shell命令操作

1)查看当前目录。pwd

2cat命令:标准的输入、输出,显示文件。参数如下:

-n 输出行编号

-b 对空白行不编号

-s 大于两行的空行换成一行

-v 显示问打印的字符LFDTAB

-E display $ at end of each line

-T display TAB characters as ^I

-A equivalent to –vET

-e equivalent to –vE

新建文件并输入内容:cat >f1

[使用cat命令进行输入时,而且只能用退格键(Backspace)来删除光标前一位置的字符。并且一旦按下回车键,该行输入的字符就不可修改。按Ctrl+D键结束输入。]

 

在用户主目录下创建一个名为f1的文本文件,内容为:

Linux is userful for us all.

You can never imganie how great it is.

 

输入命令“cat f1,查看f1文件的内容。

 

在文件末尾增加内容:cat >>f1

 

(3)  wc命令:显示文件信息,参数如下

-c --bytes

-m --chars

-l --lines

-w –word counts

统计f1文件的行数,单词数和字符数,并将统计结果存放在countf1文件。

输入wc <f1> countf1,再查看cat countf1

 

(4) 分页显示/etc目录中文件及目录(一律按名称排序)

ls /etc|more: 显示第一页,按空格键可查看下一页信息。

ls /etc|head –n 15:显示前15

 

2.通配符的使用

最实用的通配符是:

* --可代表任意多个字符

? –代表一个字符

 

示例:

ls /bin/c*

ls /bin/c??

不常用的:

ls /bin/[c,s,h]*   //首字母为csh

ls /bin/[!a-e]*   //首字母不是abcde

!!        //重复上一步操作。即执行ls /bin/[!a-e]*

 

3.设置手工启动图形化用户界面

/etc/inittab文件中:

id0-6分别代表:0代表关机, 6代表重启,5代表重启到图形界面,其他不用管。

   

4.操作vi

vi是最老土的文本编辑器,和DOS差不多,用起来非常不方便,vimvi的加强版,但本质上都一样,只是增强了一些命名功能。vi的三种模式切换如下:

l  文本编辑模式(插入模式):按“i”键。

l  命令模式:按Esc键。

l  最后行模式:先进入命令模式,再按“:”键。

vi编辑模式注意事项:

编辑模式下最好不要使用BackspaceDeleteInsert以及上下左右方向键。若想使用这些键的功能,应退回到命令模式,使用其他快捷命令完成。

vi令一大堆,掌握下面几个常用命令就OK了。

常用vimvi一样)命令如下:

1)保存

:w /root/vim.txt      //保存,w!为强制保存

:w          //保存(已保存过的)

:w >>file2       //附加保存到文件file2里面

:q!        //强制退出,不保存

**下面三个命令均为:保存并退出(已保存过的)

:wq

直接按ZZ

:x

2)插入

a(光标后插入)

其他:  i(光标前)      I(行首)      A(行尾)     r(替换当前字符)

3)删除与剪切

x     //删除当前光标位置的一个或多个字符

1,16 d      //删除116

dd             //剪切当前行(包括行尾的回车换行符)

d0            //剪切当前行光标之前所有字符,d后面是数字0

d$         //剪切当前行光标之后所有字符

X     //在光标只指向一个字符的情况下,删除光标的前一个字符

4)选择与复制

v             //选定块,从光标处开始选择(可以跨多行选择)

p         //粘贴默认缓冲区的内容,在使用p命令之前不能使用xX命令,否则p失效(本人亲测,原因可能是xX会将缓冲区的内容也一起删除)

y           //复制选定块的内容

yy         //复制当前行

:2,5 co 10        //25行的内容复制到第10行后面

说明:vi的复制、粘贴相当复杂,缓冲区就好象windows下的剪切板一样,它有a-z1-9这么多,例如:要把一行插入a缓冲区,可键入:"ayy,为了把这个文本放回该文件中,键入"ap

5)移动

:13 m 5            //13行移动到第5行后面

6)其他

hjkl     //移动光标,j上、k下(用鼠标滑轮也可以上下移动)

u             //撤销上一步的操作

o、大O      //在当前行之下、之上新开一行,并且进入编辑模式

:sp [filename]  //在同一窗口中打开第二个文件, 在多个编辑文件之间切换,用^ww

:set nu   //设置行号

Ctrl+f    //向前翻屏

Ctrl+b    //向后翻屏

 

5.编辑文件

在终端中直接输入vi file2打开文件

1)搜索(注意,不需要输入:号)

/string        //向后搜索,从光标处向文件尾搜索,按n键继续搜索下一个

?string        //向前搜索

搜索中可使用通配符

2)替换

常用的三种格式:

:s/p1/p2/g          //当前行,p1p2替代

:n1,n2s/p1/p2/g     //n1n2行之间,注意n2s之间无空格

 

 

6.C程序开发

vi中编写一个test1.c程序,对程序进行编译、连接、运行。

编译命令如下:

gcc test1.c    //默认编译产生的可执行文件为a.out

gcc test1.c -o test1.out   //参数-o test1.out用于将生产的可执行文件命名为test1.out

 

7. 调试C程序

使用gdb调试C程序,步骤如下:

1)输入命令“gcc test2.c –g –o test2,重新编译源代码。

2)输入命令“gdb test2,使用gdb调试器对test2进行调试。

3)在gdb提示符(gdb)下输入run运行,输入命令“list”,列出10行源代码,按Enter键将列出下10行代码。

4)在17str[size-i] = str[i]处设置断点,输入:break 15,再run运行会停止在第17行。

5*输入命令“watch str2[size - i]”,设置观察点来观察str2[size - i]变量的值,不知道为什么,我这里显示不了监视点的值(应该能显示old valuenew value的),去掉这一步更好,因为设置监视点代价非常高,而且设置了断点就行了,用不着监视点。

6)输入命令“next”,单步执行for循环。(也可用stepstep能深入调用的函数)

7)用p显示变量或表达式的值,每次执行n后都要执行p非常麻烦,可以用display expr设置自动显示。例如设置了display a[i]以后就会在代码的后面显示1: a[i] = 17

取消display可以用disable display(恢复用enable display)或者delete display

8N步连续执行,用命令:cont N,比如cont 13将从现在开始执行13步后停止。

9)在gdb提示符(gdb)下,输入命令“quit”退出gdb调试器。

注:调试C程序用图形界面的kdbg或者ddd更好,下面是kdbg的界面: