Linux环境高级编程实验.

Slides:



Advertisements
Similar presentations
投資 & 購屋置產 報告 ( 課程 : 個人理財規劃 ) 授課老師 : 許秀鶴 授課老師 : 許秀鶴 報告學生 : 報告學生 : 許文耀 學號 : 許文耀 學號 : 張慧珍 學號 : 張慧珍 學號 : Next 個人簡介.
Advertisements

江西省委组织部远教办 ( 地 市 小 集 成 系 统 )培 训
二月春风似剪刀, 这些变化得瞧瞧 主讲老师:王海 2016年1月27日20:00 YY频道:
上課教材 Database Slide Windows筆電 (32 bit)
关于“人肉搜索”的滥用及其所引发的 “网络暴力”的道德与法律思考
订单合并拆分功能详解 荷叶.
责任 感恩 安全 开学第一课 广西柳州市柳东新区雒容镇盘古小学王秀娅 QQ:
励步英语授权流程.
命令行操作 shell介绍 常见三种Shell ---Bourne shell(sh) ---C shell(csh)
2012單位主機及電腦教室管理人員資訊安全管理會議
主讲:邓 志 龙 Linux 网络技术 主讲:邓 志 龙
网御网络审计系统后台维护培训.
UBLink集團 裕笠科技股份有限公司 遠豐科技股份有限公司 鉅創科技股份有限公司
2016年1月20日20:00 YY频道:
第10章 局域网与Internet互联 RCNA_T010.
第1讲 实验环境.
Adviser :Quincy-Wu Speaker :Kai-Jia Chung Date :
資訊安全與系統管理 2013/3/13 Chien wei lin.
第六章 在华为路由器上配置动态路由OSPF协议(实训)
Netman Linux 的防火牆設計與應用 Netman
UNIX系統與資料庫安裝 Why UNIX 常用的工具程式介紹 資料庫的安裝.
第16章 編譯與升級Kernel系統核心 課前指引
网络地址转换(NAT) 及其实现.
Raspberry Pi Lesson 2 – Setup to Use
Linux 的進階檔案處理.
嵌入式Linux开发快速入门 迟思堂工作室 李迟
網路指令 講師 : 郭育倫
第7章:文件共享与远程控制 第6章:vi/vim——回顾 本章教学目标: vi/vim的三种工作模式 vi/vim的基本用法
VM架設及LAMP基本設定 陳柏盛.
Linux.
主讲:邓 志 龙 Linux网络技术 主讲:邓 志 龙
Step up to make a difference
Vi 編輯器的練習的說明 因為本課程的實習課是Unix 的工作環境。過去的經驗告訴我,如果你完全未用過Unix 的指令及其 vi 編輯器,你將很難跟上進度,希望學員一定要預先作練習。我們提供了Unix 指令的簡介,以及 vi 編輯器的介紹 ( 請参閱網站中的13&14-unix.pdf 為其講義;13-unix.exe、14-fortran.exe則為其課程錄影.
Spark零基础入门——Spark入门基础
Syslog介紹.
Small Cell創新應用與服務專題 實驗單元:建立Small Cell執行環境
編譯環境介紹.
第三章 文本编辑器vi.
Linux server 連線軟體: 主機:kitty.cs.pu.edu.tw 帳號:dar 密碼:n….w.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
黃印良 本教材引用自 作者:Edward Lee
Windows 2003 server 進階介紹 麋鹿.
第9章 维护Linux网络 Linux的强大功能体现在网络上,网络用户无论是将Linux作为客户机还是服务器来使用都需要对其网络进行管理和维护,在管理和维护网络时,尤其在网络通信时更侧重于对信息安全性的考虑。 本章从网络的基础知识出发,详细介绍Linux下防火墙的功能与作用、路由器的原理以及SSH协议和相关的软件。通过本章的学习,使读者熟悉Linux下网络的相关知识,具备掌握管理和维护Linux网络的基本技能。
岗位技能(二)Linux系统配置与管理 项目3 TCP/IP网络接口配置
第 11 章 設定 Internet 連線 著作權所有 © 旗標出版股份有限公司.
第 5 章 文字編輯工具 內容: Vi Vim.
Linux 操作系统 Vim 编辑器的使用.
實務操作練習題.
第二章 防火墙基础技术.
Chapter 8 Use Linux Text Editor VBird 2005/08/04
TinyOS开发环境安装 基于Ubuntu14.04.
WisPLC GET STARTED NOW! 1.Download NetPerSec:
雲端計算.
编辑文本文件 软件包管理 Samba 在Linux下使用Windows共享打印机
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab3.
雲端計算.
雲端計算.
實驗23 NetSim - Network Address Translation (NAT)
Web Programming 網際網路程式設計
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab3.
杨振伟 清华大学 第一讲:Linux环境下编程(1)
講員:游文志 排程系統教育訓練 後台管理系統 講員:游文志
Linux 服务器配置与管理 用yum管理 软件包 宁波城市职业技术学院
实验一:编译运行Linux内核并使用gdb进行调试
Lab01 工作站&Linux操作 日期:2011/03/07.
如何連上工作站 WorkStations: 1. Solaris 2. Linux Use X-Win32 (for Solaris)
RHCE.
杨振伟 清华大学 第一讲:Linux环境下编程(1)
Linux网络配置管理.
熟悉VC++开发环境.
Presentation transcript:

Linux环境高级编程实验

实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用

实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

基本环境搭建 网络环境配置 APT工具使用 SecureCRT配置

网络环境配置---NAT方式 虚拟机菜单:VM----Settings….------选择Hardware标签,选择Network Adapter,选择NAT

网络环境配置 由于是复制虚拟机,可能出现下列情况

网络环境配置

网络环境配置 修改/etc/network/interfaces文件 文件内容: auto eth1 假设当前网卡名称是eth1,从dmesg | grep eth 命令中获知的 iface eth1 inet static address 192.168.18.20 netmask 255.255.255.0 gateway 192.168.18.2

网络配置 接下来需要确定虚拟机的IP地址是多少。 虚拟机菜单:Edit----Virtual Network Editor ------选择NAT标签

网络配置 添加DNS: 在/etc/resolv.conf中添加 nameserver 202.112.14.151 或

主机名配置 访问/etc/hostname文件 将主机名设为你的姓名拼音------以此杜绝抄袭实验报告 重启操作系统 #reboot

网络配置 重新启动网络: 检查网络: #/etc/init.d/networking restart #ping www.uestc.edu.cn

加入学校APT源 APT从预选设置好的软件源下载软件包 学校提供了高速的软件下载源 在/etc/apt/sources.list开头处加入学校提供的软件源 http://ubuntu.uestc.edu.cn VMWare中的已经有快照 执行更新 #apt-get update

APT工具 Linux操作系统上安装软件,非常复杂 APT工具 软件之间非常复杂的依赖关系 复杂的配置、编译、安装过程 安装时自动维护软件之间的依赖关系 自动的配置、编译、安装过程

Cache存放:软件元数据,如名称,依赖关系 APT工具 APT源服务器 存放:各种软件源码、软件名称、依赖关系 我们的机器 Cache存放:软件元数据,如名称,依赖关系

APT工具 修改apt源,即添加APT服务器地址 检索软件信息 /etc/apt/sources.list #apt-get update 使修改生效 检索软件信息 #apt-cache pkgnames 显示所有可以安装的软件 #apt-cache pkgnames | grep g++ #apt-cache policy 软件名称 查看该软件是否安装

APT工具 安装 重新安装 卸载 清理 #apt-get install 名称 #apt-get install --reinstall 名称 卸载 #apt-get remove 名称 清理 #apt-get clean 清楚deb包

APT工具 获取源码包 构建编译环境 编译源码包 安装 #apt-get source 名称 下载并在当前目录下解压 #apt-get build-dep 名称 安装关联的软件包 编译源码包 #dpkg-buildpackage 生成可执行文件和deb 安装 #dpkg –I *.deb

SecureCRT配置 安装openssh 检查结果 使用SecureCRT连接 #apt-get install openssh-server 检查结果 #ps –ef | grep ssh 若未找到, #/etc/init.d/ssh restart 使用SecureCRT连接

文件传输 #apt-get install lrzsz #rz 向Linux服务发送文件 #sz 文件名 Linux服务器向客户端发送文件

编程环境 #apt-get install build-essential

压缩工具 #apt-get install zip

实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

vi的使用(示例) 进入vi #vi [filename] (示例) vi的三种工作模式 指令行模式 文本输入模式 行末模式

vi的三种工作模式(示例) Command Mode Insert Mode Last Line Mode 键入Esc 输入i、a或o 输入冒号 Insert Mode Last Line Mode

vi的基本使用(示例) 查找字符串(指令模式下) 替换字符串(行末模式下) /字符串 查找下一个:n 查找上一个:N :n1,n2s/word1/word2/gc 在[n1,n2]行之间,用word2替换word1,c用于询问是否要替换 可用$代表最后一行

vi的基本使用(示例) 删除操作(指令模式下) 复制操作(指令模式下) 粘贴操作(指令模式下) 恢复操作(指令模式下) dd:删除光标所在行 ndd:删除光标所在的向下n行 d1G:删除光标所在行到第一行 dG:删除光标所在行到最后一行 复制操作(指令模式下) 将上述dd,替换为yy 粘贴操作(指令模式下) p:复制的数据在光标的上一行粘贴 恢复操作(指令模式下) u

vi的基本使用(示例) 行末模式下 :q 退出vi :q! 强制退出vi :w 保存 :w filename 另存为 :wq 保存退出 :! Command 执行操作系统的命令,ls等 :set nu 显示行号

vi的基本使用(示例) 到指定行 打开多个文件 G:到文件尾 nG:到第n行 :n:到第n行 :split 文件名:水平分割 :vsplit 文件名:纵向分割 :quitall:关闭所有窗口

vi的基本使用(示例) 区域操作 在指令行模式下,按下v,移动光标,选中区域;可以再按下v,取消选择 复制该区域:y 粘贴该区域:p 删除该区域:d 剪切该区域:x

vi插件 需要安装的插件 exuberant-ctags (使用apt) cscope (使用apt) taglist omnicppcomplete a winmanager minibufExplorer grep

Vi插件 安装说明 Ctags,cscope使用apt安装 其他的需要下载,解压到~/.vim即可 分析.vimrc文件(示例)

实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

make的使用 进行实际程序开发时,由于涉及到众多的源文件、头文件、依赖库等等,因此,编译指令可能会很长 每次书写浪费时间,效率过低 解决方案: 使用make工具,进行编译操作

实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

gdb的使用 进入gdb(使用apt安装gdb) 查看当前文件 设置断点 使用-g选项编译,加入调试信息 #gdb 要调试的可执行文件名 >list >list 文件名:行号 设置断点 >break 行号

gdb的使用 清除断点 运行调试 查看变量值 >clear 行号 >run >continue >display 表达式

gdb的使用 监控表达式的值 执行下一语句 查看汇编代码 >watch 表达式 >step >next >disass

gdb的使用 查看寄存器 查看内存区域 >info registers >x /10xb 地址/产生地址的表达式 以16进制查看大小为10字节的内存区域

gdb调试多进程 多开一个终端,以监控子进程 子进程中,进入实际代码前,加上sleep(60),以方便获取子进程ID 在新开的终端中,在进程的工作目录内,运行 #gdb (gdb) attach 子进程ID (gdb) break 行号 (gdb) continue

gdb调试多线程 同时只能调试一个线程 查看当前线程 线程间切换 当调试一个线程时,其他线程都不运行 注意,当在线程间切换时,打好返回的断点 info thread 线程间切换 thread 线程ID(gdb分配的id) 当调试一个线程时,其他线程都不运行 set scheduler-locking on run之后才能输入该命令 注意可能要用continue 注意,当在线程间切换时,打好返回的断点