UNIX系统开发-sdb命令使用:程序执行控制

合集下载

UNIX操作

UNIX操作

一、UNIX简单操作Sun 系统操作常用命令系统启动:1、开机先开显示器,后开主机电源敲入用户名、密码登录用户名:zd2000 密码:zd2004启动NSC300UX在桌面控制台上点击“nsc300ux”,或者在用户管理中点击启动系统,字样就可以自动启动了,直到弹出告警窗口为启动成功2、注:非正常断电,会对系统造成很大损害,不能对机器直接按电源键关机或者直接按电源键关机后再开,要打开终端窗口后输入相关命令来实现,关机:右键——工具——终端打开终端输入su (回车)口令:zd2004出现“#”号输入init 5重启:右键——工具——终端打开终端su (回车)口令:zd2004出现“#”号输入init 6或者reboot备份:右键——工具——终端打开终端在/u s e r s/z d2000后输入c d s q l/t o o l s(回车)在目录后输入b a c k u p_o r a c l e(空格)d a t a20100108(回车)即可完成数据库的备份此时,在/u s e r s/z d2000/s q l/O r a c l e_d a t a文件夹下面有个文件名为d a t a20100108.d m p的文件。

该文件就是备份的数据库。

备份zd2000文件夹:右键——工具——终端打开终端su (回车)口令:zd2004出现“#”号# pwd(用于查看当前路径)(显示:# /users/zd2000)# cd ..# pwd(显示:# /users)# ls(用于显示该路径下的文件和文件夹)(显示:# Oracle zd2000 …)# tar cvf zd2000-1071.tar zd2000就可以生成zd2000-1071.tar 的文件在路径:/users下注意:打包文件用的命令如下:tar cvf 打包生成的文件名称.tar 被打包的文件名称解包文件用的命令如下:tar xvf 打包生成的文件名称.tar二、Oracle数据库简单操作1、右键——工具——终端打开终端,2、导入信息表输入cd exe 回车进入/zd2000/exe输入imp_data 6 遥信表的名字(例如yx_10812.txt)-reset 回车这个是导入遥信imp_data 7 遥测表的名字(例如yc_10812.txt)-reset 回车这个是导入遥测imp_data 15 遥控表的名字(例如yk_10812.txt)-reset 回车这个导入遥控2、导出信息表输入exp_data 6 遥信表的名字(例如yx_10812.txt)回车这个是导出遥信exp_data 7 遥信表的名字(例如yc_10812.txt)回车这个是导出遥测exp_data 15 遥控表的名字(例如yk_10812.txt)回车这个是导出遥控不管是导入或者导出的数据表都存放在/zd2000/data/imp_exp下面,再把文件拷出就可以3、注意事项轻易不要导入数据库文件就是dmp文件如果要导出数据库文件操作如下:cd sql/tools/ 回车进入/zd2000/sql/tools输入backup_oracle 备份的文件名称(例如data10816)回车备份后生成的文件在zd2000/sql/oracle_data 目录下面再把文件拷出就可以三、画面编辑1、点击画面调用上三角符号,然后在弹出的菜单栏中选择画面编辑2、在画面编辑菜单栏中——打开图形——选择需要编辑的图形3、打开图形后,必须点击一下菜单栏中的“选择”按钮,才能继续下一步操作4、画面编辑必须有工程师指导操作,个人勿自己操作5、在图标的“图形组”里点击“图形显示”,左键点击弹出的画面就能进入主接线图,在主接线图上点击间隔名称可调用间隔的画面,注意:.因主接线图上画面太多,主接线图禁止遥控,做遥控要进入分图里控。

UNIX操作系统常用功能操作系统常用命令

UNIX操作系统常用功能操作系统常用命令

UNIX操作系统常用功能ls功能:显示指定工作目录下之内容语法:ls [参数选项][目录名]说明:显示指定工作目录下的内容参数选项:如下图选项选项说明-a 显示所有文档及目录,包括隐藏文件-l 将文档名、文档类型、权限、拥有者、大小等信息详细列出-r 将文档以相反次序显示(原定按英文字母次序)-t 将文档依修改时间之先后次序列出-A 同 -a ,但不列出“.” (当前目录) 及 ".." (父目录)-F 在列出的文档名称后加一符号;例如可执行文档则加“*”,目录则加“/”,符号链接文件加“@”-R 递归地显示子目录中的内容Dir功能:同 lscd功能:变换工作目录语法:cd [目录名]说明:用于更换工作目录例题:如下1、cd .. 更换目录回到上一级目录2、cd . 更换到当前目录3、cd ~ 更换目录到当前用户的个人宿主目录4、cd /etc/vsftpd/ 更换到/etc/vsftpd目录5、cd / 更换目录到根目录pwd功能:显示用户当前的工作路径,显示出完整的当前活动目录名称。

语法:pwd说明:显示当前工作目录的绝对路径clear功能:在允许的情况下清除屏幕语法:clear说明:清楚屏幕上的信息man功能:查看指令用法的help语法:man [参数选项] 帮助主题。

说明:man实际上就是查看命令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助功能。

man是manual(手册)的缩写字,它的说明非常的详细,建议记得一些基本用法就可以了。

mkdir功能:用来建立新的目录语法:mkdir [参数选项] 目录名说明:创建一个空目录,要求此用户在当前目录上具有写权限参数选项:如下图选项选项说明-m mode 为新目录设置访问模式。

-p 如果父目录不存在,创建所有的父目录。

rmdir功能:用来删除已建立的目录语法:rmdir [参数选项]目录名说明:删除一个或多个空目录或空子目录,要求此用户在当前目录上具有写权限rm功能:删除文档及目录。

UNIX系统开发-sdb命令使用:源程序的显示和搜索

UNIX系统开发-sdb命令使用:源程序的显示和搜索

UNIX系统开发-sdb命令使用:源程序的显示和搜索sdb命令的使用同我们前面介绍过的mail,ftp一类工具类似,sdb也是一个命令解释程序。

也就是说,用户在sdb提示符(一个星号*)下输入sdb能够识别的命令,sdb将根据被调试的程序的具体情况给出响应。

例如,在运行myprog出错,生成core文件之后进入sdb时,sdb将给出如下的响应:$ sdb myprog12: return ((100/atoi(ValueInput))? TESTOK:! TESTOK);*sdb给出来的实际上是程序出错所在的函数,在源程序文件中的行号以及出错那一行的语句。

在sdb的使用中要注意三个“当前”概念:(1)当前文件即当前将要被执行的语句所在的那个源程序文件(2)当前函数即当前将要被执行的语句所在的那个函数(3)当前行这个概念只有在编译时加入-g选项才会有,它指的是将要被执行的那条语句。

与当前行相应,有一个行号的概念。

它指的是每条语句在程序中位于第几行。

注意行号是从文件头开始计算的,第一行的行号为1,空白行和注释也包括在内。

在用core文件进行调试时,当前行和当前函数分别被设成是程序出错时所执行的那条语句所在地行和函数(如同上面显示出来的那样)。

但如果在编译时未加-g选项,显示出来的将只有函数名和函数的地址了。

在对活动进程进行排错时,sdb将把当前函数和当前行分别设成是main()函数和main()函数的第一个可执行的语句行。

不论是哪种情况,sdb都将显示出*提示符。

在此提示符之下我们可以输入各种sdb命令,以控制程序的执行或观察变量的变化情况,等等。

在下面的几个小节中我们将分别详细讨论这些问题。

源程序的显示和搜索程序出错一般来说不只是出错的那条语句本身造成的。

事实上出现错误经常是前面或相关的代码执行了不正确的操作或少了某些必要的处理。

因此调试过程中经常要观察一下源程序中的语句,或者在程序中搜索某个符号出现在什么地方。

UNIX常用命令介绍

UNIX常用命令介绍

2.4 UNIX常用命令介绍用户对某一操作系统的认识,往往是从使用和接触操作系统开始的,而接触操作系统最常用的方法就是使用操作系统的命令。

尽管现代操作系统都对用户提供交互式的图形界面,但在使用操作系统时仍不可避免地要用到命令操作方式,这是因为图形界面的处理也是建立在命令处理的基础之上的。

有经验的人都知道,使用命令处理的效率往往会比使用图形界面处理高出很多,而可视化的图形界面主要解决的问题是提供友好交互和摆脱枯燥的命令记忆方式。

2.4.1 UNIX命令使用方法当某个用户正确地通过了系统的注册和登录后,就进入到UNIX的命令管理程序shell的第一个进程中。

shell可以完成UNIX命令的解释执行过程,它大体上可以分成两类:一类是s hell的内部命令,另一类是shell的外部命令。

对用户来讲,内、外部命令在使用方法上没有太多的差异,只是在响应时间上略有不同。

当用户发出内部命令时,系统可直接从内存中选择调用与执行。

而shell的外部命令是那些功能较强、占用空间较大的扩展命令,它们一般不包含在shell中,因此在系统启动时并不被装入内存,只是在使用时才从系统的指定存储介质中调入内存,用完后就释放所占用的内存空间。

外部命令往往功能强大,因此所占用的磁盘空间和内存空间都比较大,甚至有些外部命令实际上就是一个实用程序,它所占用的空间和处理过程的复杂度可以与一个小型系统规模相比,因此对外部命令的管理通常包含着对内、外存空间的控制和管理。

1. UNIX的命令格式使用UNIX命令的方法可以有多种,例如,可以在命令行上输入命令,或是将命令编写在批处理文件中。

无论怎样,命令的使用格式是统一的,UNIX的一般命令格式为:Command[-options][arguments]其中:Command表示UNIX命令名。

[options]表示命令的执行选项,可以取默认值。

[arg uments]表示命令的执行参数,可以默认。

UNIX操作系统命令大全

UNIX操作系统命令大全

UNIX操作系统命令大全1. ls:列出当前目录中的文件和目录。

2. cd:切换当前工作目录。

3. pwd:显示当前工作目录的路径。

4. mkdir:创建一个新目录。

5. rmdir:删除一个空目录。

6. cp:复制文件或目录。

7. mv:移动或重命名文件或目录。

8. rm:删除文件或目录。

9. touch:创建一个新文件。

10. cat:连接文件并打印到标准输出设备上。

11. less:逐页显示文件内容。

12. head:显示文件的开头几行。

13. tail:显示文件的末尾几行。

14. grep:在文件中查找匹配的字符串。

15. find:从指定目录开始递归地查找文件。

16. tar:打包和压缩文件。

17. unzip:解压缩文件。

18. chmod:更改文件的权限。

19. chown:更改文件的所有者。

20. chgrp:更改文件的所属组。

21. ps:显示当前运行的进程。

22. top:动态显示系统资源使用情况。

23. kill:终止一个进程。

24. ssh:使用安全外壳协议远程登录到另一台计算机。

25. scp:通过安全外壳协议在本地计算机和远程计算机之间传输文件。

26. ping:测试与另一台计算机的网络连接。

27. ifconfig:显示和配置网络接口。

28. netstat:显示网络连接、路由表和网络接口统计信息。

29. hostname:显示或设置主机名。

30. whoami:显示当前登录的用户。

31. su:切换到另一个用户身份。

32. sudo:以超级用户的身份执行命令。

33. date:显示或设置系统日期和时间。

35. df:显示文件系统的磁盘使用情况。

36. du:显示目录或文件的磁盘使用情况。

37. tar:创建备份文件或将备份文件释放到系统中。

38. gzip:使用GNU的zip压缩程序压缩文件。

39. gunzip:解压文件。

40. zip:创建一个zip文件。

41. uname:显示系统信息。

操作系统UNIX系统及答案

操作系统UNIX系统及答案

UNIX系统练习题(一)单项选择题1.由于与系统的绝大局部程序都用c语言写成,因此它具有( )的特点。

A有效简练 B.易移植 c.可扩大 D.开放性2.使命令的执行结果不在屏幕上显示,而是写到另一个文件中去,这种功能称为 A.脱机输出 B.管道 c联机输出 D.输出重定向3.能把第一条命令的输出作为第二条命令的输入的功能是由( )机制实现的。

A链接 B.批处理 c.管道 D.输出重定向4.由父进程执行系统调用fork创建一个子进程,那个子进程的初始状态为( )。

A.创建状态 B.睡眠状态 c.就绪状态 D.僵死状态5.UNIX System v系统中,存储管理主要采用( )。

A.对换技术 B.页式虚拟存储 c段式存储管理 D段页式虚拟存储6.UNIX系统中在磁盘上开辟对换区作为内存的逻辑扩大,在治理对换空间时采纳了( )。

A.空闲区表 B.位示图 c.块表 D.映射图7.特别文件是指与( )有关的文件。

A.文本 B.图像 c.外围设备 D二进制代码8 UNIX对磁盘中索引节点区进展治理时,把索引节点区空闲块的块号放至( )。

A.引导块 B.超级块 c.索引节点区 D.文件存储区9 UNIX系统中把设备也当作文件对待,所有设备文件都放在( )目录中。

A./bin B./lib C./dev d./usr10.在块设备管理时,由( )为设备驱动程序提供信息. A空闲缓冲区队列 B.设备缓冲区队列 c.设备开关表 D.设备I/O请求队列(二)填空题1.UNIX是一个交互式的______操作系统,采用以全局变量为中心的______构造。

2.UNIX的系统构造可分成______和______两局部。

3.内核层是UNIX系统的核心,它实现存储治理、______ 、设备治理和______等功能,并为外壳层提供系统挪用。

4 外壳层由______、高级语言的编译和说明程序、______和系统库组成。

UNIX系统开发-sdb的启动

UNIX系统开发-sdb的启动

UNIX系统开发-sdb的启动首先来看看在哪些情况下需要对程序进行调试。

第一种情况(这是大多数用户都会碰到的),程序在运行过程中忽然跳了出来,屏幕上显示一个xxxx-core dumped消息,然后Shell提示符就又显示出来了,其中xxxx表示出错原因。

这种情况的出现一般是系统核心认为进程的执行出现了异常,如进程试图去访问一块不允许它访问的存储区域(Memory Fault,Segmentation Fault);或者扫描某个无终止符的字符串(Bus Error);或者浮点运算溢出或被0除(Arithmetic Exception),等等。

此时操作系统会把进程当时的内存映象写到当前目录下的一个名叫core的文件中。

这种情况下我们可以使用sdb来检查此core文件,以决定出错的地点以及程序执行的状态,如函数间的调用关系、变量的值,等等。

第二种情况,程序可能并没有什么异常行为,但就是怎么也得不到正确的输出结果。

这时需要在该进程运行过程中对之进行调试。

这种情况下我们可以使用sdb逐条语句地跟踪程序的执行过程,并在执行过程中检查有关变量的值的变化情况。

上述两种情况并不是绝然分开的。

实际上它们可以结合在一起使用。

例如,当我们利用core 文件对某个已终止的进程进行调试时,可以在sdb中重新启动相应程序的运行,然后对语句的执行进行一些控制。

这样我们就能够知道在出现异常之前哪个程序到底是如何动作的。

为了使sdb能够很好地对程序进行调试,在编译程序时应指示编译程序和链接程序在目标代码中加入调试用的各种信息,如程序中的变量名、函数名及其在源程序中的行号等。

我们知道,使用-g选项可以完成这一点。

如我们可以用如下命令编译前一章给出的有毛病的程序代码:$ cc -o myprog myprog.c myfunc.cmyprog.c:myfunc.c:$ ls -l myprog-rwx-xr-x 1 yxz users 4224 Sep 1 10:17 myprog$ cc -g -o myprog myprog.c myfunc.cmyprog.cmyfunc.c$ ls -l myprogtotal 26-rwxr-xr-x 1 yxz users 5404 Sep 1 10:21 myprog$这时我们会发现,新生成的myprog比不带-g 选项生成的myprog要大的多。

unix指令大全

unix指令大全
-R 递归地改变所有子目录下所有文件的存取模式
[例子]:
chown mary file 将文件 file 的文件主改为 mary
chown 150 file 将文件 file 的UID改为150
1.14 chgrp
[语法]: chgrp [-R] 文件组 文件...
-p 删除所有已经为空的父目录
-s 当使用-p 选项时,出现错误不提示
[例子]:
rmdir /tmp/abc 删除目录 /tmp/abc
rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b
及/tmp/a 空,则删除
1.6 cat
[语法]: cat [-u] [-s] [-v[-t] [-e]] 文件...
cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp
1.10 mv
[语法]: mv [-f] [-i] 文件1 [文件2...] 目标
[说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名
-1 每行仅列一项
[例子]:
ls 列出当前目录下的文件
ls -al /bin 以长列表的形式列出目录 /bin 下的所有文件,包括隐藏文件
1.2 pwd
[语法]: pwd
[说明]: 本命令用于显示当前的工作目录
[例子]:
pwd 显示出当前的工作目录
1.3 cd
[语法]: cd [目录]
示,敲任意键后推出

UNIX常用命令

UNIX常用命令

UNIX常⽤命令UNIX 常⽤命令50個最常⽤的Unix/Linux命令tar grep find ssh sedawk vim diff sort exportargs ls pwd cd gzipbzip2 unzip shutdown ftp crontabservice ps free top dfkill rm cp mv catmount chmod chown passwd mkdirifconfig uname whereis whatis locateman tail less su mysqlyum rpm ping date wget⽂件和⽬錄:這些命令允許你創建的⽬錄和處理⽂件。

命令描述cat 顯⽰⽂件內容cd 改變當前⽬錄chgrp 改變⽂件或⽬錄之群組擁有權chmod 改變⽂件或⽬錄屬性cp 拷⾙檔案file 顯⽰檔案型態find 找尋檔案grep 在本⽂檔中找尋字串head 顯⽰⽂件的前幾⾏ln 連結檔案或⽬錄ls 將某⼀個⽬錄的內容顯⽰出來mkdir 創建⽬錄more 以分⾴形式顯⽰數據mv 搬移或重新命名檔案od 以⼋進位查看檔案內容pwd 顯⽰現在⼯作⽬錄的路徑rm 刪除⽂件或⽬錄rmdir 刪除⼦⽬錄,⽬錄內須無檔案tail 顯⽰⽂件的最後幾⾏touch 改變⽂件或⽬錄之最後修改時間操作数据:可以⽐較改變⽂件的內容,並⽤下⾯的命令。

命令描述awk 模式和扫描处理语⾔cmp ⽐較兩個⽂件的內容comm ⽐較排序數據cut 挑出檔案的部份欄資料diff ⽐較⽂件或⽬錄之內容dircmp 對⼆個⽬錄下的檔案進⾏⽐較expand Expand tabs to spacesjoin 結合兩個有共同的連結欄位的檔案perl 數據操作語⾔sed Stream text editorsort 排序檔案內容split 將⽂件拆分為較⼩的⽂件csplit 將⼀個⼤的檔案分割成若⼲個較⼩的檔tar 將檔案以保存檔⽅式從磁帶或磁碟中取出或存放tr 字元轉換的處理uniq 去除檔案相同的⾏(須相鄰)wc 計算檔案的⾏數、字數及字元數vi 開啟 vi ⽂件編輯器vim Opens vim text editorfmt Simple text formatterspell Check text for spelling errorispell Check text for spelling errorispell Check text for spelling erroremacs GNU project Emacsex, edit Line editoremacs GNU project Emacsemacs GNU project Emacs压缩⽂件:⽂件可能被壓縮以節省空間。

sdbus用法

sdbus用法

`sdbus` 是一个命令行工具,它是Systemd 的一个组件,用于通过D-Bus 接口与systemd 进行交互。

D-Bus 是一个消息总线系统,用于在计算机上的不同程序之间进行通信。

`sdbus` 提供了一种方式,允许用户通过shell 命令来操作systemd 管理系统和服务。

以下是一些基本的`sdbus` 命令用法:1. **列出所有单元文件**```sdbus list```2. **启动一个服务**```sdbus start <service-name>```3. **停止一个服务**```sdbus stop <service-name>```4. **重启一个服务**```sdbus restart <service-name>```5. **查看服务状态**```sdbus list-unit-files```6. **查看服务详细状态**```sdbus journal <service-name>```7. **设置一个服务的自动启动**```sdbus enable <service-name>```8. **禁用一个服务的自动启动**```sdbus disable <service-name>```9. **检查服务是否已启动**```sdbus is-active <service-name>```10. **检查服务是否已启用**```sdbus is-enabled <service-name>```请注意,`sdbus` 命令可能因不同的Linux 发行版和systemd 版本而有所不同。

在使用之前,应该查看你的系统上的具体`sdbus` 版本和文档。

如果`sdbus` 不是你的系统上的默认D-Bus 客户端,你可能需要使用特定的D-Bus 客户端命令,如`dbus-send`,来与systemd 进行交互。

uinux常用命令

uinux常用命令

UNIX常用命令以下只说明各常用指令的基本用法, 若需详细说明, 请用 man 去读详细的 manual.1.关於档案/目录处理的命令ls——列目录这是最基本的档案指令。

ls 的意义为 "list",也就是将某一个目录或是某一个档案的内容显示出来。

格式:ls -1ACFLRabcdfgilmnopqrstux -W[sv] [files]例:#ls (不跟任何参数以简单格式列出当前目录中所有档案)#ls bin (简单格式列出名为bin的文件或目录下的所有档案)#ls /u/ilasII_GB/lib (全路径,列出lib目录下的所有档案)ls 的常用参数如下:-a : 在 UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用 ls将不会显示出这个档案的名字,我们称此类档案为隐藏档。

如 .profile、.tcshrc等如果我们要察看这类档案,则必须在其后加上参数 -a 。

-l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,如档案存取权,档案拥有者( owner ),档案归属组,档案大小,档案最後更新时间,甚而 symbolic link 的档案是 link 那一个档等等。

显示结果如下所示:drwxrwxrwx 30 root bin 1024 May 23 10:38 udrwxrwxrwx 2 root sys 512 Jul 28 1999 uacndrwxrwxrwx 5 root sys 512 Jul 27 1999 udklrwxrwxrwx 1 root sys 11 Jul 27 1999 unix -> /stand/unixdrwxrwxrwx 35 root auth 1024 Apr 3 13:45 usr在开始的10个字符上系统给出文件的用户权限。

该序列分成四个域。

第一个字符为类型域,第2、3、4个字符为用户主域,第5、6、7个字符为同组用户域,第8、9、10个字符为其它用户域,域中字符的含义如下:? 在类型域中:d 表示此文件是一个目录- 表示此文件是一个普通文件b 表示此文件是一个特殊的块设备I/O文件c 表示此文件是一个特殊的字符设备I/O文件l 表示此文件是一个连接文件。

unix操作系统常用命令

unix操作系统常用命令

unix操作系统常用命令Unix操作系统是非常常见、流行的操作系统之一,它被广泛应用于网络服务器、数据中心等领域。

Unix操作系统内置了很多命令和工具,这些命令和工具可以帮助管理员和开发人员管理系统、进行开发和维护等任务。

在本文中,我们将讨论一些Unix操作系统常用命令。

一、文件和目录管理命令1. cd:切换当前工作目录。

2. pwd:显示当前工作目录的路径。

3. mkdir:创建一个新目录。

4. rmdir:删除一个空目录。

5. ls:列出目录内容。

6. cp:复制文件或目录。

7. mv:移动或重命名文件或目录。

8. rm:删除文件或目录。

9. touch:创建一个新文件或更新现有文件的时间戳。

10. chmod:更改文件或目录的权限。

二、文本文件处理命令1. cat:连接和显示文件内容。

2. less:在终端上查看文件内容。

3. grep:在文件中查找一个模式。

4. awk:文本处理工具,可以处理大量的文本文件数据。

5. sed:文本处理工具,可以进行单行文本替换、多行文本编辑等。

6. sort:对文件进行排序。

7. uniq:删除文件中的重复行。

8. tee:将文件内容从标准输入中读取,并将其复制到标准输出和文件中。

9. diff:比较两个文件或目录之间的差异。

10. wc:计算文件中的行数、单词数和字节数。

三、进程管理命令1. ps:查看系统中运行的进程。

2. kill:结束一个进程。

3. top:实时查看系统资源使用情况和进程状态。

4. bg:将一个进程放到后台运行。

5. fg:将一个后台进程恢复到前台运行。

6. nice:更改进程的优先级。

7. renice:更改运行中的进程的优先级。

四、网络管理命令1. ping:测试网络连接并检查响应时间。

2. netstat:查看正在使用的网络接口和连接。

3. traceroute:追踪数据包的路由路径。

4. route:设置或显示内核的路由表。

LinuxUnix系统下常用的命令

LinuxUnix系统下常用的命令

LinuxUnix系统下常⽤的命令Linux/Unix系统下常⽤的命令:shell环境命令⾏环境命令解释器shell环境下写脚本,就是shell脚本将多条命令写成⾃动化脚本,⾃动批量执⾏结合计划任务定时执⾏ ctontab——后台服务管理者基本思路思路:遇到困难的"三把斧"我是谁?我在哪⼉?我有什么?⾝份⽬录有权限⽂件、⽬录1、查看⽤户⾝份:id 我是谁?⾝份有权限有关1)查看最初登录⾝份:who am i2)查看当前⽤户名:whoami3)查看当前⽤户详细⾝份:id⽤户id、⽤户名、组id、组名4)查看当前在线⽤户情况:who 或 w5)改变⽤户⾝份:su ⽤户名su 直接改变为root2、查看当前⼯作⽬录: pwd 我在哪⾥?1)改变⽬录:cd ⽬录路径名绝对路径:从/开始表⽰当前路径:⽬前所在⽬录路径名 pwd查看相对路径:从当前路径开始表⽰特殊⽬录名: . 当前⽬录 .. 上⼀层⽬录 ~ 主⽬录2)查看系统环境变量:echo $变量名echo $PATH 命令的搜索路径将常⽤的命令所在路径名添加到PATH值中,后续直接使⽤相对路径可以直接执⾏命令名。

⾯试题:如何在Linux中安装某软件并部署使⽤?<1> 将软件安装包tar、zip、gz,传输到Linux某⽬录下:⽐如:/usr/bin/tomcat6.tar<2> 需要对压缩包进⾏解压: tar⽐如:/usr/bin/tomcat6<3> 进⼊bin⽬录中,修改.sh⽂件的权限为可执⾏:cd /usr/bin/tomcat6/binchmod a+x *.sh<4> 将bin⽬录添加到系统环境变量PATH中:cd 回主⽬录⽬前⽐如bash环境vi .bash_profile 系统环境配置⽂件在PATH中追加⽬录名:PATH=$PATH:$HOME/bin:/usr/bin/tomcat6/bin保存关闭source .bash_profile 让配置⽂件重新读取⽣效<5> 可以在任意⽬录下执⾏bin⽬录中命令,启动tomcat6⽐如startup.sh 启动服务器shutdown.sh 关闭服务器3、查看⽬录下内容:ls 有什么?1)查看⽬录下内容的详细属性:ls -l⽂件类型权限属主属组⼤⼩Byte 最后⼀次修改时间- d 644-rw-r--r-- 1 alice girls 1326 7⽉ 12 16:48 passwd2)查看当前⽬录的详细属性:ls -ld3)查看所有内容:ls -al 包括隐藏内容4)查看⽬录层次:ls -R5)按照时间排序:ls -lt4、系统进程管理:ps -ef 或 ps -aux1)查看当前系统所有进程:ps -ef2)根据pid杀进程:kill 进程id3)根据进程命令名批量杀进程:pkill 命令名4)关闭控制台当前进程:ctrl+c5)挂起控制台当前进程:ctrl+z6)查看后台挂起的任务:jobs7)后台任务前置:fg 任务号5、⽂件系统管理:1)创建⽬录:mkdir ⽬录名 ...2)创建⽂件:touch ⽂件名3)查看⽂件内容:cat ⽂件名不翻页more ⽂件名翻页回车-跳⾏、空格-翻页、q-退出vi ⽂件名可编辑head和tail 头尾tail -f 监控⽇志⽂件的动态4)拷贝:cp 源⽂件路径名新路径名5)重命名/移动:mv 源⽂件路径名新路径名6)删除⽂件: rm ⽂件名rm -f ⽂件名可关闭交互删除空⽬录:rmdir ⽬录名删除⾮空⽬录:rm -r ⽬录名rm -rf ⽬录名可关闭交互6、改变⽂件/⽬录的权限:chmod 规则⽂件/⽬录名chmod a+x *.shchmod 644 1.txtchmod 755 dir1规则:⾓⾊ u g o a⾃⼰同组其它所有⼈操作 + -增加去除权限 r w x可读可写可执⾏简易规则:数字表达法644 rw- r-- r--755 rwx r-x r-x777 rwx rwx rwx744 rwx r-- r--7、输出重定向: > >>将之前命令输出的结果写⼊后续⽂件中保存⽤途:命令⾏下结果保存和分析,⽐如运⾏⽇志适⽤⾯:Linux/Unix/Windows都⽀持> 输出重定向,新的会覆盖旧的>> 输出追加重定向,新的会在原有⽂件结尾追加内容⽐如:Linux中 cat /etc/passwd |grep tom > 1.txtWindows: adb shell monkey ... > 2.txt8、管道符:|将前⼀个命令的输出,作为后⼀个命令的输⼊:分⼯协作cat /etc/passwd | grep tom常见⽤法:| more 分页| grep 过滤| sort 排序| wc 统计9、⽂本编辑器:vivi ⽂件名vi1)三种模式切换底⾏模式 <--: / -- 命令模式 --i a o O--> 输⼊模式---回车-->(默认) <---Esc ---2)如何保存退出:Esc 回命令模式 -> : 底⾏模式 wq3)其它命令:拷贝单词 yw 拷贝⾏ yy 5yy粘贴 p删除字符 x 删除⾏ dd 5dd光标移动⽅向键、h j k l撤销 u另存为 :w ⽂件名保存 :w不保存强制退出 :q!10、其它:1)⽹络⽅⾯:查看⽹络IP地址: ifconfig设置⽹络:netconfig查看⽹络是否可达:ping IP地址关闭防⽕墙:iptables -F查看端⼝号情况:netstat2)磁盘管理:查看磁盘情况:fdisk -l df -k mount3)查看命令帮助⼿册:man 命令名4)查看系统性能情况,⽐如CPU、内存情况:top定时刷新系统资源信息,供性能监控使⽤结束监控:ctrl+c 或 q内存Memory 可⽤Mem: 1030888k av, 158284k used, 872604k free,0k shrd, 32636k buff87028k actv, 1056k in_d, 8172k in_c交换分区:虚拟内存不能频繁使⽤,否则存在系统瓶颈Swap: 2048276k av, 0k used, 2048276k free56832k cachedPID USER PRI NI SIZE RSS SHARE STAT %CPU %1 root 15 0 468 468 420 S 0.0 02 root 15 0 0 0 0 SW 0.0 03 root 15 0 0 0 0 SW 0.0 05)打包和解包:tar将整个 /home/alice/dir1 ⽬录下的⽂件全部打包成为 /home/alice/dir1.tar$ cd$ tar -cvf dir1.tar dir1 <==仅打包,不压缩!解压dir1.tar$ tar -xvf dir1.tar。

Unix编程艺术:掌握Unix下的编程技巧

Unix编程艺术:掌握Unix下的编程技巧

Unix编程艺术:掌握Unix下的编程技巧Unix编程艺术是一门非常重要的技能,在Unix操作系统下进行编程开发是许多程序员的首选。

Unix系统提供了强大的工具和环境,能够让开发者更高效地完成工作。

掌握Unix编程艺术可以让开发者更加灵活地处理复杂的问题,提高编程效率和质量。

在这篇文章中,我将介绍一些Unix编程的技巧和方法,帮助读者更好地掌握Unix编程艺术。

一、熟练掌握Shell编程Shell编程是Unix系统中最基本的编程语言,通过Shell编程可以进行系统管理、脚本编写等工作。

熟练掌握Shell编程可以帮助开发者更好地理解Unix系统的工作原理,提高工作效率。

在编写Shell 脚本时,需要注意以下几点:1.确保脚本可读性强:合理命名变量和函数,使用注释解释代码逻辑,提高代码的可维护性。

2.处理错误和异常情况:编写脚本时需要考虑各种错误和异常情况,并进行合理的处理,确保程序的稳定性。

3.使用合适的工具和技巧:在Shell编程中,可以使用诸如grep、awk、sed等工具来处理文本数据,提高处理效率。

二、熟练使用管道和重定向在Unix系统中,管道和重定向是非常重要的特性,可以帮助开发者更好地处理输入输出流。

熟练使用管道和重定向可以大大提高工作效率,特别是在处理大量数据时更为重要。

一些常见的使用技巧包括:1.使用管道连接多个命令:通过管道可以将多个命令的输出连接起来,完成数据的传递和处理。

2.使用重定向控制输入输出:通过重定向可以控制命令的输入输出,如将命令的输出保存到文件或者从文件中读取。

3.使用管道和重定向强大的数据处理能力:通过结合使用管道和重定向,可以实现复杂的数据处理操作,灵活应对各种需求。

三、合理使用环境变量和别名Unix系统中的环境变量和别名是非常便捷的工具,在编程过程中可以大大简化操作。

合理使用环境变量和别名可以减少重复工作、提高效率。

一些常见的使用技巧包括:1.设置常用环境变量:设置一些常用的环境变量,如路径、编辑器等,可以减少重复输入。

UNIX基础教程

UNIX基础教程

UNIX基础教程UNIX是一种多用户、多任务操作系统,广泛用于Unix-like的操作系统中。

它提供了一个强大且灵活的环境,适用于各种不同的应用程序和领域。

本教程将介绍UNIX的基础知识,包括文件系统、命令行界面、进程管理和网络通信等。

一、文件系统UNIX的文件系统是以层次化的目录结构来组织文件和目录。

用户可以使用命令对文件进行创建、删除、移动和复制等操作。

1.目录结构:UNIX的目录结构以根目录(/)为起点,所有的文件和目录都从根目录开始。

2. 目录操作:用户可以使用命令如cd、ls、mkdir和rmdir等来操作目录。

cd用于切换目录,ls用于列出目录内容,mkdir用于创建目录,rmdir用于删除空目录。

3. 文件操作:用户可以使用命令如cat、cp、mv和rm等来操作文件。

cat用于查看文件内容,cp用于复制文件,mv用于移动文件,rm用于删除文件。

二、命令行界面UNIX的命令行界面是用户与系统交互的主要方式。

用户可以通过输入命令来执行各种操作。

1.命令格式:UNIX的命令由命令名称和选项参数组成。

选项参数用于修改命令的行为,可以是单个字符或长参数。

2. 常用命令:UNIX提供了许多常用的命令,如基本的文件和目录操作命令,如ls、cd、mkdir和rmdir;文件查找和文本处理命令,如find、grep和sed;系统信息和管理命令,如ps、df和top等。

3.命令提示符:UNIX的命令行界面会显示一个命令提示符,用户可以在提示符后输入命令。

通常,命令提示符由当前用户名和主机名组成。

三、进程管理UNIX支持多任务操作,可以同时执行多个程序。

用户可以使用命令来管理进程和程序。

1. 运行程序:用户可以使用命令如./和exec等来运行程序。

./用于运行当前目录下的可执行文件,exec用于替换当前进程并执行新程序。

2. 后台运行:用户可以使用命令如&和nohup等将程序置于后台运行。

&用于将程序放入后台运行,nohup用于使程序在用户注销后继续运行。

UNIX系统开发-程序调试概述

UNIX系统开发-程序调试概述

UNIX系统开发-程序调试概述对任何程序开发而言,程序的调试都是开发过程中的一个重要阶段。

程序调试的目的就是找出程序中隐藏的故障,校正那些不正常的指令,使程序能够正常工作。

程序的调试有几种不同的级别。

最高级别当然是编程人员通过自己肉眼观察和推断,找出那些有毛病的代码并修改之。

最低级别是对汇编代码进行调试。

由于汇编语言代码的复杂、冗长与不直观。

在汇编级对程序进行调试是一件比较费力的事。

但UNIX得开发环境提供了汇编级的调试工具adb。

使用此调试程序可以找出程序执行失败的原因,并在受控的环境下执行程序。

使用得最多的大概还是源程序级即符号级的调试,在此种调试方式下我们能够把高级语言的语句当作一个可执行的最小单位,在调试程序中使用源程序中出现的符号和代码的行号来交互式地引用变量或控制语句的执行。

UNIX环境下进行符号级调试的工具有两个。

一个是dbx,使用它可以确定程序崩溃的位置、显示变量和表达式的值,在程序中设置断点以及跟踪程序的执行,等等。

这一调试工具主要来源于BSD 的UNIXT系统中使用的比较多。

另外一个符号级的调试工具是sdb。

sdb的最初来源于UNIX System V。

它的功能同dbx类似。

使用sdb,我们不仅能够在事后对某个程序进行调试,而且能够在程序运行中对之进行调试。

本章我们主要介绍sdb。

我们将要讨论的内容包括:程序调试概述主要讨论一般的程序调试方法和大部分调试工具都提供的功能。

sdb的启动主要讨论在进入sdb时所涉及到的一些问题。

sdb的交互式命令主要介绍sdb提供的完成各种调试工作的命令的用法。

程序调试概述所谓程序调试,就是找出程序中的错误,进行修改,使之能够正常地运行。

“调试”这一词对应的英文单词为“debug”。

虽然程序调试同编程一样,是一项技巧性和经验性都非常强的工作,但总的来说程序调试还是有其一般性的。

这种一般性不是指程序调试做法上的一般性,而是指程序调试中所用到的各种技术的一般性。

unix命令的一般格式

unix命令的一般格式

unix命令的一般格式Unix命令是在Unix-like系统(如Linux、macOS等)中使用的命令行工具,用于管理文件系统、执行操作、查看和修改系统配置等。

它们是基于文本输入,且按照特定格式和语法进行解释和执行。

一般情况下,Unix命令的格式如下:```command [options] [arguments]```- `command`是要执行的命令的名称,可以是内置命令(如cd、ls等)或外部命令(如grep、find等)。

- `options`是可选的命令选项,用于修改命令的行为。

选项通常以单个字符或长格式形式存在,前面带有一个短横线或两个短横线。

比如,`-l`和`--list`都可以表示“列出详细信息”这个选项。

- `arguments`是命令的参数,用于指定要操作的文件、目录、文本等。

参数可以是单个项,也可以包含多个项,多个项之间使用空格分隔。

例如,`file1 file2`表示对两个文件进行某种操作。

在Unix命令中,还经常使用一些通配符和特殊符号来扩展和操作文件名。

- 通配符:主要有星号(`*`)和问号(`?`)两种。

星号表示匹配零个或多个字符,而问号表示匹配一个字符。

例如,`ls*.txt`表示列出当前目录下所有以.txt结尾的文件。

- 文件路径:Unix命令中通常使用相对路径或绝对路径来指定文件的位置。

相对路径是相对于当前工作目录的路径,而绝对路径从根目录开始指定文件的位置。

除了常规的命令格式外,还有一些其他的扩展和补充。

- 重定向:使用重定向符号(`>`、`>>`、`<`)将命令的输入输出重定向到文件或从文件中获取输入。

例如,`command >file`表示将命令的输出写入到文件中。

- 管道:使用管道符号(`|`)将两个或多个命令通过管道连接起来,前一个命令的输出作为后一个命令的输入。

使用管道可以实现命令的串联处理。

例如,`command1 | command2`表示将`command1`的输出作为`command2`的输入。

UNIX操作系统常用命令

UNIX操作系统常用命令

UNIX操作系统常用命令1. ls命令:用于列出当前目录中的文件和目录。

示例:ls -l 显示文件和目录的详细信息。

2. cd命令:用于切换当前工作目录。

示例:cd /usr/bin 切换到/usr/bin目录。

3. pwd命令:用于显示当前工作目录的路径。

示例:pwd 显示当前工作目录的路径。

4. cp命令:用于复制文件或目录。

示例:cp file1 file2 复制文件file1为file25. mv命令:用于移动文件或目录,或者为文件或目录重命名。

示例:mv file1 file2 将file1重命名为file26. rm命令:用于删除文件或目录。

示例:rm file 删除文件file。

7. mkdir命令:用于创建一个新目录。

示例:mkdir dir 创建一个名为dir的目录。

8. rmdir命令:用于删除一个空目录。

示例:rmdir dir 删除名为dir的空目录。

9. cat命令:用于查看文件的内容。

示例:cat file 查看文件file的内容。

10. less命令:用于分页查看文件的内容。

示例:less file 分页查看文件file的内容。

11. grep命令:用于在文件中匹配指定模式的文本。

示例:grep pattern file 在文件file中符合模式pattern的文本。

12. find命令:用于在指定的目录及其子目录中符合条件的文件。

示例:find /path -name "pattern" 在目录/path及其子目录中匹配模式pattern的文件。

13. chmod命令:用于修改文件的权限。

示例:chmod 755 file 修改文件file的权限为rwxr-xr-x。

14. chown命令:用于修改文件或目录的所有者。

示例:chown user file 修改文件file的所有者为user。

15. ps命令:用于列出当前系统中的进程。

示例:ps 显示当前运行的进程。

UNIX系统操作命令大全

UNIX系统操作命令大全

第一章登录和退出用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计算机登录到ITPNET上都将访问相同的文件系统。

1.1 登录当屏幕上出现Login提示符时,用户可以输入自己的用户注册名,并按回车键。

若有口令,系统将提示用户输入密码,并按回车键,口令输入正确后,用户登录成功。

这时,屏幕上会显示出一些信息和命令提示符。

如:Login: guest [Enter]passwd: ****** [Enter]sun%注: 用户名要用小写字母输入,UNIX系统区分大小写字母。

1.2 退出当用户准备退出自己的计算机帐号时,可在系统示符下输入logout或exit或按[Ctrl-D]。

当屏幕出现Login时,用户可以安全地离开计算机了。

如:sun% logout [Enter]Login:1.3 修改口令为了防止他人使用自己的帐号,在你首次登录后,请用passwd命令修改只有本人知道的保密口令,口令通常由此可6到8个字母数字组成。

如:sun% passwd [Enter]Old Passwd: ******New Passwd: ******Retype New Passwd: ******注:当你退出系统再次登录时,就要使用新的口令。

第二章目录操作命令2.1 显示目录命令:pwd(print working directory)格式:pwd功能:显示出用户当前工作目录的全路径名。

例如:% pwd2.2 建立目录命令:mkdir(make directory)格式:mkdir directory_name功能:建立新目录例如:% mkdir directory命令:cd(change directory)格式:cd directory_name功能:改变当前工作目录注释:目录名选项有:(1) 目录名,转到当前目录下的子目录。

(2) .. 表示转到当前目录的父目录。

(3) / 表示转到根目录。

sdb操作规程

sdb操作规程

sdb操作规程SDB操作规程第一章总则第一条为了加强对SDB的管理和维护,确保企业信息的安全,保护用户隐私,制定本规程。

第二条本规程适用于公司内部所有关于SDB的操作。

第三条SDB(Simple Database)是一种轻量级数据库管理系统,用于存储和管理企业的重要信息。

第四条SDB的使用者必须具备一定的计算机知识和操作技能,并遵守本规程。

第五条SDB的使用者应尽量减少对数据库的修改操作,避免数据丢失和错误。

第六条所有SDB的操作记录以及异常情况必须进行及时记录和报告。

第二章操作规定第七条SDB的操作需要经过审批程序,未经批准不得进行操作。

第八条操作者在进行SDB操作前必须核实所要进行操作的对象和范围,避免对错误数据进行操作。

第九条操作者对SDB的修改操作必须进行备份,一旦数据丢失或者错误,必须及时进行还原。

第十条SDB的备份数据必须定期进行校验,确保备份的完整性和可用性。

第十一条在进行SDB的修改操作时,操作者必须在备注中说明操作目的和内容。

第十二条操作者在进行SDB的修改操作后,必须进行测试和验证,确保修改操作的正确性。

第十三条对于SDB的操作记录必须进行定期归档,保存一定时间,以备后续查询和分析。

第三章安全措施第十四条对于SDB的操作必须在安全环境下进行,防止非法获取或篡改数据。

第十五条操作者在进行SDB操作前必须登录个人账号,并确保账号的安全。

第十六条操作者必须定期更改个人账号密码,并避免在他人电脑上进行操作。

第十七条对于SDB的操作必须进行权限控制,不同用户只能操作自己被授权的范围。

第十八条操作者必须保护好个人账号的安全,不得向他人透露或共享账号信息。

第十九条操作者在进行SDB操作时,应注意保密工作,不得将操作内容透露给与其无关的人员。

第四章异常处理第二十条发现SDB异常情况时,操作者必须立即暂停操作,并上报相关人员。

第二十一条对于SDB异常情况的处理,需要经过相关人员确认和审批后才能继续操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UNIX系统开发-sdb命令使用:程序执行控制我们说程序调试的主要目的是观察变量的变化情况。

但如果程序就一直不停地运行直至它终止或出错时才停下来的话,将没有机会去观察任何变量。

因此,如何有效地控制程序中各语句的执行,使之在适当的时候暂停下来,待调试人员在显示或设置了某些存储单元的值之后再从停下的地方继续执行下去,是调试程序应具有的一项基本功能。

在这一节中我们就来具体介绍如何控制程序的运行。

对程序执行控制的第一个问题是设置断点。

一个断点实际上就是程序中某行语句。

当程序执行到这条语句时控制会重复返回到sdb,由此提供给用户进行其他操作,如显示变量值的机会。

1.断点的设置和删除在sdb中设置断点的方法比较多。

但基本是b命令的变种。

例如,我们可以使用如下语句在main()函数的第一个可执行行(非变量定义这类语句)设置一个断点:* main:b也可以直接用行号来设置断点。

例如,在myprog.c中,第10行是main()函数中的第一个可执行语句,则使用如下命令也能达到同样的效果:* 10b注意这是在myprog.c为当前文件的情况下进行的。

如果直接输入:* b命令,则可将当前行设成是一个断点。

但是若当前行不是一个可执行语句,那么sdb将把当前行之后的第一个可执行语句处设置一个断点。

在设置完断点之后,为了解程序中设置有哪些断点,可以使用B命令:* B0x80483f0 myprog.c:10 main+0x80x80483f7 myprog.c:11 main+0xf0x8048407 myprog.c:12 main+0xlf0x8048440 myprog.c:9 T estInput0x8048447 myprog.c:10 TestInput+ 0x70x804482 myprog.c:13 T estInput+ 0x42在设置完断点之后要将其删除,可以使用d命令。

如:* main:dsdb将把在main()函数中设置的第一个可执行行上的断点删除。

如果直接使用d命令,sdb 将逐个列出所有断点并询问用户是否删除之。

回答y断点将被删除。

使用D命令则可删除程序中设置的所有断点。

2.sdb中启动程序的运行在设置好所需的断点之后我们就可以重新启动程序的运行了。

这可以使用r命令。

如:* r 111 2BREAKPOINT process 554 function main() in myprog.c10: for(i=1;i<argc:i++)*sdb将在main()函数中设置第一个断点处停下来并显示该行的语句。

r后面给出的是传给可执行程序myprog的两个参数。

因此上述命令同在shell提示符下输入:$ myrprog 111 2是相同的。

不同的只是在sdb中程序的执行会在断点处停下来。

如果只输入* r命令,sdb使用最近一次执行调试程序时给它提供的参数来启动之。

如果想不带任何参数来重新启动程序的运行,可使用* R命令。

3.控制程序的单步或者连续执行在用r(R)命令启动程序的运行之后,sdb将在第一个断点处暂停程序的运行。

此时断点行成为当前行,但并未被执行。

此时我们可以在sdb的星号(*)提示符下输入前面已介绍过的或后面将要介绍的各种命令。

当然最重要的是显示那些关键变量的值,以了解程序的运行情况。

在这之后便可以继续程序的执行。

继续执行有两种方式。

的一种是单步方式,即逐条语句执行。

这可以使用S命令完成:* sSTEPPED process 584 function main() in myprog.c14: printf("The %dth value '%s' \tis BAD!\n",i,argv[i]);*sdb在执行完当前语句之后,将当前行后移一行并显示出其代码。

对于用户自定义的函数调用,S命令并不将其当成是一条语句,此时它将指示sdb进入该函数(使之成为当前函数)。

如我们可以接着上面输入下列命令:* sSTEPPED process 584 function main() in myprog.c11: if(TestInput(argv[i])== TESTOK)* sBREAKPOINT process 594 function main() in myprog.c11: if(TestInput(argv[i])==TESTOK)* sBREAKPOINT process 584 function T estInput() in myfunc.c9: {while (* ValueInput)}* s也能让sdb将用户自定义的函数调用,当成是一条普通语句而不进入此函数的定义。

此时可以在那些包含有用户自定义函数调用的行,使用S命令以执行之。

s 和S命令都可以接收一个指明待执行的语句数目的参数。

例如:* s 2使sdb执行当前行及其下那行语句,然后当前行之下的第2行将成为新的当前行。

注意当使用s 或S时,如果sdb遇上一个未加-g选项编译的用户自定义函数,那么执行将继续直到一个带-g 选项编译的函数为止。

控制程序执行的第二种是使用c或C命令。

一个最简单的c命令将使sdb从当前行把程序执行到下一个断点处。

在c命令中还可以临时设置“断点”。

例如:* 8c将使sdb在第8行上设置一个断点并使程序从当前行执行至该断点处后停下来,然后将此断点自动删除并等待用户输入其他命令。

在c命令中还可以指定在继续执行时后面第几个断点处停下来。

例如:* c 2将使sdb从当前行开始执行,直到当前行之后的第2个断点为止。

一般的:* c命令实际上相当于:* c 1C命令的作用及用法同c基本上是相同的。

只不过此时sdb将进程收到的终止信号传给该进程进行处理。

这对于调试有软中断处理的进程是很有用的。

但sdb并不是将进程所收到的所有信号都传送给进程进行处理。

要传递的信号可在sdb的命令行中用-s选项指定。

我们可以用g命令来告诉sdb在给定的行开始继续程序的执行:* 6g此命令使sdb在当前文件的第6行处恢复执行。

而:* 6g2使sdb在当前文件的第6行恢复执行并跳过两个断点。

但在使用g命令时必须小心。

如果此命令跳过了那些必须得初始化语句,或者进程的执行被恢复到某个并不终止进程的函数中,此时都将会是程序的执行出现人为的差错。

一般而言,除非能够确信所跳过的代码段是不正确的代码,不要轻易使用g命令。

4 关联命令我们可以告诉sdb在使用到某种情况下暂停下来,完成某些操作之后继续执行。

例如:* 7b t; i/;c将使得sdb在当前文件的第7行设置一个断点,然后每当遇到该断点时都显示函数调用栈(t)、变量i的值(i/),并继续程序的执行(c)。

上述命令的一种变化形式是a(Announce命令)。

例如:* FunctionName:a将使得sdb在程序执行过程中每当函数FunctionName被调用时即显示其函数名和参数值。

而命令:* FunctionName:6a将使得sdb在函数FunctionName中的第6行每次被执行时都将其显示出来。

5.函数调用sdb能够调用程序中用户自定义的任何函数。

这种功能对于下面两种情况可能比较有用:在需要用各种不同的参数对函数进行测试。

用用户自己定义的一个函数来显示程序中的某些数据。

不论是何种情况,我们均可以用如下命令来进行函数调用:* FunctionName(Arg1,Arg2,....)或* FunctionName(Arg1,Arg2,....)/m在第一种用法下,sdb只是简单地执行指定的函数。

在第二种用法下,sdb将在执行指定的函数之后显示返回值。

此值一般将按十进制方式显示,除非指定了另外的显示格式。

提供给函数的参数可以是寄存器名、整数、浮点数、字符、字符串常量或是其他局部当前函数,或者是当前函数可以访问的变量。

6.变量的监视sdb提供了一种被成为“观察点”(Watch)的机制。

借此机制,我们可以监视变量值得变化或某些地址的内容的变化。

例如:* i $m可用于设置对某个变量的观察点。

此处变量i为被监视的变量。

而用:* 0x00400000:m则可将地址0x00400000 处设置成观察点,而0x00400000将成为被监视的地址。

在设置了观察点之后,sdb会同处理S命令一样开始程序的单步执行,并在变量的值或指定地址单元的内容被改变时停止程序的执行。

由于变量值的改变或地址内容的变化,或者其他什么原因而使程序的执行中止,包括因为遇到断点而使程序停止的情形,都将使得所设置的观察点被sdb自动删掉。

被观察的变量必须是当前函数的局部变量或者是当前函数所能够访问的变量其他命令除了上面介绍的五类主要命令之外,sdb还支持其他一些命令。

使用这些命令,可以完成其他一些辅助性的工作。

分别介绍如下。

. !Shell Command此命令可以使sdb去执行指定的Shell Command。

这里Shell Command是一个合法命令。

例如可以输入:* ! ls -lsdb将执行指定的ls -l 命令,并将其输出显示出来。

使用:* ! sh能够生成一个新的Shell进程。

在此新的Shell中可以完成某些工作,然后用exit命令返回到sdb中。

<FileName指示sdb从文件FileName中读取sdb调试命令,并且逐个执行之。

"SomeString指示sdb显示出某个字符串。

常用此命令给出某些提示信息,k此命令将使当前对程序的调试终止,之后仍可用r命令重新启动被调试的程序。

如:* k1111:killed*这里1111是被调试进程的进程号。

* q此命令将使sdb停止其自身的运行而返回至原Shell提示符下。

在调试完程序之后一般都要使用此命令。

相关文档
最新文档