操作系统实验1:Linux常用命令及简单C语言程序调试

1.1实验目的

了解Linux系统的组织和行为,包括 Linux的用户界面、目录结构组织、运行程序的基本方式。通过使用终端(terminal)熟悉Linux Shell 、常见命令(cd、ls、ps、chmod等)和 redirect、pipe机制。学习使用vi或者gedit等编辑器编辑一个c语言源程序,并用gcc对源程序进行编译以及运行生成的可执行文件并熟悉调试方法。

1.2实验内容及要求

(记录实验详细过程,包括源代码、调试方案设计及调试过程问题分析、实验结果的示例程序及相关分析)

1.2.1 熟悉一些常见命令和 redirect、pipe机制

1.cd(change directory)用于切换当前工作目录、ls(list)用于显示指定工作目录下的内容

(cd ~是跳转到当前用户的家目录)

显示指定工作目录usr下的内容

(ls -lh:以人类可读的方式显示当前目录中的文件和目录大小)

2. ps (process status)用于显示当前进程的状态

(ps -A:列出所有的进程)

默认情况下只显示了程序的进程ID(Process ID, PID)、它们运行在哪个终端(TTY)以及进程已用的CPU时间。

3. chmod(change mode)是控制用户对文件的权限的命令

(--help : 显示辅助说明)

(1)ugoa:u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

(2)+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

(3)r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

4. redirect

输出重定向:

(echo用于字符串的输出, cat 用于查看文件内容,使用>会使文件里已经存在的内容将被新内容替代。>>为追加方式)

输入重定向:

5. pipe机制

“|”是Linux管道命令操作符。使用 “|”可以将两个命令分隔开,“|”左边命令的输出就会作为“|”右边命令的输入,此命令可连续使用。

bc 命令是任意精度计算器语言,通常在linux下当计算器用。输出结果“2+4”作为输入内容传递给了计算器语言bc,对“2+4”经过运算后输出。

1.2.2 编辑一个c语言源程序并编译运行

1.终端方式

Vim编辑器:

(编辑模式:按i键,命令模式:按esc键)

GDB调试

注:gcc编译的时候需要加上-g参数。启动 GDB 的同时,通过添加 --silent可将部分无用信息屏蔽掉

(gdb) break/b xxx 在源代码指定的某一行设置断点,其中 xxx 用于指定具体打断点的位置。

(gdb) run/ r执行被调试的程序,其会自动在第一个断点处暂停执行。

(gdb) continue/c  当程序在某一断点处停止运行后,使用该指令可以继续执行,直至遇到下一个断点或者程序结束。

(gdb) list/l  显示源程序代码的内容,包括各行代码所在的行号。

(gdb) quit/q  终止调试。

2. Code::blocks方式

安装软件:Ubuntu安装codeblocks,笔记-CSDN博客

1.3 实验总结

   经过这次实验我学习了如何用VMware在真实机上创建一台Linux虚拟机,并学习了使用vi编辑器编辑一个c语言源程序,并用gcc对源程序进行编译以及运行生成的可执行文件。安装了Linux下的可视化调试工具Code::blocks并熟悉了它的基础使用方式。

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、 实验目的 1、掌握在虚拟机环境下安装 Linux系统 2、熟练掌握基本 shell命令 3、熟练掌握shel1高级操作 二、 开发工具和运行环境 Vmware15虚拟机,Centos7的iso镜像文件 三、 实验内容 1、在虚拟机环境下安装 CentOS7操作系统 如果有虚拟机环境,可以直接安装,如果没有,需要先行安装虚拟机软 件。 Linux的安装步骤: (1)选择界面安装 (2)语言选择 (3)选择安装信息 (4)选择安装软件 (5)设置磁盘分区方案 (6)手动分区 (7)设置根口令及验证 2、基本 shell命令 1)pwd命令:显示当前所在目录 (2)date命令:显示日期 ()who命令:显示当前正在系统中的所有用户名字,使用终端设备号, 注册时间 ()cal命令:显示某年内指定的日历 (5) uname命令:查看当前操作系统的信息 (6)wc命令:统计文件中的文件行数、字数和字符数 (7) clear命令:清屏 3、在线帮助命令 ()man命令名:显示该命令的功能、选项等说明() whatis命令名:只给出简单介绍信息 (3)nfo命令名:另外一种帮助命令 (4)help命令名:显示内置命令( shell) 4、 Shell命令的高级操作 (1) shell的命令补全: 先输入命令的前几个字母,然后按[TAB]键,如果与输入字母匹配的 仅有一个命令名或文件名,系统将自动补全,如果有多个与之匹配,系统 将发出报警声音,如果再按一下[TAB]键,系统将列出所有与之匹配的命 令或文件名。 (2) shel的历史命令: 在提示符下输入 history命令查看所有历史命令若执行以前历史命令 列表中的某一个命令,则执行“!n”,n为历史命令列表中的编号。向上 方向键可以翻出最近使用的命令 (3) shell的重定向 输出重定向符号有“>”和“>>”,输入重定向符为“<”。错误重定向 输出“2>”,把命令行出错的信息保存到指定的文件中去 4)shel1的管道操作: 管道线“”前面的命令的输出是管道线“”后面命令的输入。 命令1命令2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guts350

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值