第5讲Ubuntu下编程
- 格式:pdf
- 大小:1.48 MB
- 文档页数:32
学会在win10的ubuntu子系统下编译micropython在Win10的应用商店中,提供了Linux的子系统,这是实际上是一个虚拟机软件,与virtualbox和vmplayer功能类似。
下面就介绍在Linux子系统中安装工具链和编译micropython的方法。
先确认一下Windows10系统的版本,如果是LTSB版(Long Time Service Branch 企业长期服务版),就需要更换到企业版,LTSB版是不能运行Linux子系统的。
如果还没有安装过Linux子系统功能,首先需要在控制面板的“程序和功能”中允许适用于Linux的Windows子系统功能,并重新启动计算机。
然后就可以在应用商店中,通过搜索Linux或者ubuntu,找到ubuntu应用。
注意现在应用商店里ubuntu有两个版本,分别是16.04和18.04。
这两个版本都是长期服务器版,但是我们需要选择第一个,也就是16.04版本,因为目前gcc-arm编译器还没有支持18.04,使用18.04版本就需要自己手工安装编译器,比较麻烦。
安装好ubuntu 16.04后,运行就会出现下面的控制台样式窗口,它默认是只有控制台(shell)界面,没有图形化界面。
我们可以通过 lsb_release -a 命令查看系统版本。
这个新安装的ubuntu可以看成是一个全新的系统,大部分软件都需要自己安装。
我们先安装arm-gcc编译器,同时可以更新一下软件仓库的内容。
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppasudo apt updatesudo apt install gcc-arm-embedded然后安装git软件:sudo apt install git还需要安装gcc编译器和make软件:sudo apt install gcc make到这一步,需要的软件基本安装完成,下面是用git 同步下载micropython 源码。
Ubuntu系统搭建JAVA环境教程Ubuntu12.04下手动安装JDK在ubuntu下可以通过多种方式来安装jdk,如使用Adept/新立得软件管理器在其中分别搜索"sun-java6-jre"和"sun- java6-jdk"并标记安装、通过apt-get命令来安装(sudo apt-get install sun-java6-jre、sudo apt-get install sun-java6-jdk)、同样也可以通过从java 官网上下载jdk安装文件进行手动安装(我下载的文件是:jdk-6u20-linux-i586.bin),这也正是本文所要讲述的一种安装方法。
从官网下载下来的安装文件(如:jdk-6u20-linux-i586.bin)默认都是没有执行权限的,可以通过$ls -l 命令查询到相关信息,所以首先第一步是要将安装文件赋予可执行权限,可以通过命令$ sudo chmod u+x /usr/lib/jvm/jdk-6u20-linux-i586.bin 来实现。
成功修改安装文件权限后,通过命令$ cd /usr/lib/jvm/ 进入安装文件所在目录,然后执行命令$./jdk-6u20-linux-i586.bin 屏幕将会出现jdk安装的相关信息,然后一路回车,直至屏幕显示要求输入yes/no,此时输入y并回车,当前目录下将会多出一个jdk1.6.0_20的目录,这也意味jdk已成功安装。
成功安装完JDK后,接下来我们将要进行JDK的配置,使用命$ sudo gedit /etc/environment对environment文件进行修改并添加以下代码:1.PATH="/usr/lib/java/jdk1.6.0_20/bin"2.CLASSPATH="/usr/lib/java/jdk1.6.0_20/lib"3.JAVA_HOME="/usr/lib/java/jdk1.6.0_20"若PATH已存在,则用冒号作间隔,将jdk的bin目录地址加上,这样java的环境变量将配置成功了,但这样默认使用的JDK可能还不是我们刚才安装的,因为ubuntu可能还会有默认的jdk,如openjdk;所以,为了使默认使用的是我们安装的jdk,还需执行如下命令:1.$ sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_20/bin/java3002.3.$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk1.6.0_20/bin/javac 3004.5.$ sudo update-alternatives --config java成功执行命令后,我们安装的JDK就是系统默认的了,执行命令$ java -version就可以成功看到JDK的相关信息了如:1.java version "1.6.0_20"2.Java(TM) SE Runtime Environment (build 1.6.0_20-b02)3.Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)下面的安装不是andrid运行所需要的java2013-01-15 19:08 人气:307ubuntu系统怎么样安装JAVA环境的方法其实很简单,Ctrl+Alt+T打开终端输入两三次命令就可以成功安装JAVA了,还可以选择JAVA的安装版本。
Ubnuntu完全教程Ubuntu的发音Ubuntu,源于非洲祖鲁人和科萨人的语言,发作oo-boon-too 的音。
了解发音是有意义的,您不是第一个为此困惑的人,当然,也不会是最后一个:)大多数的美国人读ubuntu 时,将u 作为元音发音,类似单词who 或者boo ,重音在第二个音节即u'buntu ,oo-boon-too 。
如果您喜欢撒哈拉,喜欢它令人窒息的温柔、梦幻般的寂寥还有张扬恣肆的旷远,您大可在第一个u,后面带些嗡嗡声:oom-boon-too。
Ubuntu的中文发音大约为:乌班图Ubuntu的涵义Ubuntu这个单词源自非洲,意谓“班图精神”────谁都不是一座孤岛,自成一体。
每个人都包孕于人类,因他人存在而存在,因他人幸福而幸福。
Ubuntu当前版本Ubuntu Linux v6.06 LTS (Dapper Drake)LTS:Long Term SupportDapper Drake:当前版本的开发代号Ubuntu的特点Ubuntu 完全基于Linux 操作系统,可以免费得到社区及专业机构的支持。
庞大的社区是它成长的沃土,请向这片动人的热忱敞开心扉。
Ubuntu 社区恪守Ubuntu 理念:自由!软件应是自由的,应尊重人类的自由意志,它与人类之间不应有任何隔膜。
本地语种,功能限制,自主改进的权利……都不应成为使用的障碍或负担。
自由,让Ubuntu 与传统的私有软件从根本上不同: 免费不能用来遮羞,您有权修正它,直到满意为止。
Ubuntu 适合桌面和服务器。
当前Ubuntu 发布版支持PC (Intel x86), 64-bit PC (AMD64) 和PowerPC (Apple iBook 和Powerbook, G4 和G5) 架构。
Ubuntu 包涵了超过16,000 种软件,核心的桌面系统却只有一张光盘,Ubuntu 覆盖了所有的桌面应用程序,从文字处理,电子表格到web 服务器和开发设计环境一应俱全。
ubuntu下编译驱动程序的准备ubuntu不带linux内核源码,需要自己下载安装。
1,查看自己的内核版本uname -r2,查看源内的内核源码类表apt-cache search linux-source3,下载安装内核源代码sudo apt-get install linux-source- //我选的是这一个,自己看着办吧4,等待........下载完成后,在/usr/src下会有一个文件名为linux-source-5,解压缩包tar jxvf linux-source- //看清自己的版本解压后会生成一个源代码目录/usr/src/linux-source-6,进入源码目录后,配置文件make oldconfig7,生成内核make8,疯狂等待,大约1个多小时9,编译模块make modules10,安装模块make modules_install大功告成!^_^下面说一下Makefile文件$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install #PWD当前工作目录的变量obj-m := hello.o#hello.o是你要生成的驱动,以后可以自己改KERNELDIR:=/lib/modules/#这里别抄,写成你自己的版本,这个目录执行了内核源码目录PWD:=$(shell pwd) #将当前工作目录赋值该PWD modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:下面是一个经典的Hello,world!例子自己make一下就行了。
#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk(KERN_ALERT "Hello, world!\n");return 0;}static void hello_exit(void){printk(KERN_ALERT"Goodbye, cruel world!\n");}module_init(hello_init);module_exit(hello_exit);本文是参考了网上多篇帖子而写的算不上什么原创。
Linux系统简介=============路径====路径分为绝对路径和相对路径。
绝对路径的起始点为根目录**/** ,例如``/usr/local/bin`` 就是绝对路径,它指向系统中一个绝对的位置,不受其它因素影响。
相对路径的起始点为当前目录,如果您现在位于``/usr`` 目录,那么相对路径``local/bin`` 所指示的位置为``/usr/local/bin``也就是说,相对路径所指示的位置,除了相对路径本身,还受到当前位置的影响。
例如Linux 系统中常见的目录``/bin`` 、``/usr/bin`` 、``/usr/local/bin`` ,如果只有一个相对路径``bin``\ ,那么它指示的位置可能上面三个目录中的任意一个,也可能是其它目录。
如果我告诉您到``bin`` 目录寻找一个文件,您可能搞不清楚是哪一个``bin`` 目录。
只有当前位置确定,相对路径指示的位置才能够确定。
现在我说,``/usr/local`` 目录下,它的相对路径``bin`` 中有某个文件,这样就比较明确了。
在相对路径中**.** 表示当前目录,**..** 表示当前目录的上一级目录。
假设您安装了一个程序,它的主程序没有被放置到上面三个``bin`` 目录中的任何一个,或者其它系统能够找到的地方,您就得告诉系统,它的可执行文件在哪里。
可以使用绝对路径,例如:``/home/user/bin/可执行文件``或者定位到``/home/user/bin`` 目录,使用相对目录来定位它``./可执行文件``如果您定位到了它的子目录,比如``/home/user/bin/gui``\ ,您可以使用**..** 来表示它的上级目录``../可执行文件``路径相关命令::cd (change directory) 更改目录。
pwd (print working directory)显示当前路径。
ls (list) 显示当前目录中的文件列表。
Linux系统简介=============路径====路径分为绝对路径和相对路径。
绝对路径的起始点为根目录**/** ,例如``/usr/local/bin`` 就是绝对路径,它指向系统中一个绝对的位置,不受其它因素影响。
相对路径的起始点为当前目录,如果您现在位于``/usr`` 目录,那么相对路径``local/bin`` 所指示的位置为``/usr/local/bin``也就是说,相对路径所指示的位置,除了相对路径本身,还受到当前位置的影响。
例如Linux系统中常见的目录``/bin`` 、``/usr/bin`` 、``/usr/local/bin`` ,如果只有一个相对路径``bin``\ ,那么它指示的位置可能上面三个目录中的任意一个,也可能是其它目录。
如果我告诉您到``bin`` 目录寻找一个文件,您可能搞不清楚是哪一个``bin`` 目录。
只有当前位置确定,相对路径指示的位置才能够确定。
现在我说,``/usr/local`` 目录下,它的相对路径``bin`` 中有某个文件,这样就比较明确了。
在相对路径中**.** 表示当前目录,**..** 表示当前目录的上一级目录。
假设您安装了一个程序,它的主程序没有被放置到上面三个``bin`` 目录中的任何一个,或者其它系统能够找到的地方,您就得告诉系统,它的可执行文件在哪里。
可以使用绝对路径,例如:``/home/user/bin/可执行文件``或者定位到``/home/user/bin`` 目录,使用相对目录来定位它``./可执行文件``如果您定位到了它的子目录,比如``/home/user/bin/gui``\ ,您可以使用**..** 来表示它的上级目录``../可执行文件``路径相关命令::cd (change directory) 更改目录。
pwd (print working directory)显示当前路径。
ls (list) 显示当前目录中的文件列表。
ubuntu下codeblocks起步-鼠标响应鼠标是计算机的一个主要输入设备,那么一个C::B程序怎样才能接受鼠标的响应呢?下面的这个工程就简单地介绍了一下鼠标响应事件,第二个程序(双击事件)的原理类似于游戏中控制物体移动的方法,即通过计算物体的下一位置来重绘物体或窗体。
新建wxWidgets工程。
选择2.8.0版本的wxWidgets。
给工程命名为MouClick,保存工程。
wxWidgets project选项卡中分别选用“wxSmith”和“Frame based”项,创建frame工程。
其他几项默认:首先编译一下我们创建的frame工程,你会看到下面的对话框。
这是一个编译器为我们创建的默认的frame工程。
鼠标单击事件:这个响应事件的添加类似于vc,很简单。
选中主窗体,在右下角的event事件选项卡中找到左键单击选项(EVT_LEFT_DOWN),为主窗体添加左键单击事件OnLeftDown(注:其他响应事件的添加也类似)。
在void MouClickFrame::OnLeftDown(wxMouseEvent& event)函数中添加如下一行代码:wxMessageBox(_T("Hi,你单击了一下窗体!"), _("left click"));就是在单击时弹出一个对话框,编译运行。
双技鼠标事件:为主窗体添加鼠标左键双击事件(EVT_LEFT_DCLICK):OnLeftDClick。
好,现在开始我们的第二个程序:为mouClickFrame类(在MouClickMain.h中,-_-!!这个好像不用说。
)添加如下成员(红色为添加的):class test2Frame: public wxFrame{public:test2Frame(wxWindow* parent,wxWindowID id = -1);virtual ~test2Frame();private://(*Handlers(test2Frame)void OnQuit(wxCommandEvent& event);void OnAbout(wxCommandEvent& event);void OnPaint(wxPaintEvent& event);void OnKeyDown(wxKeyEvent& event);void OnLeftDown(wxMouseEvent& event);void OnClose(wxCloseEvent& event);void OnLeftDClick(wxMouseEvent& event);//*)void RePaint(float dx,float dy,int flag);//自定义重绘窗体函数//(*Identifiers(test2Frame)static const long idMenuQuit;static const long idMenuAbout;static const long ID_STATUSBAR1;//*)private:wxBitmap m_bmp;//要载入的图片wxPoint oldpoint;//记录图片变化前的坐标float x;//记录x轴上的变化量float y;//记录y轴上的变化量wxPoint curpoint;//记录变化后的坐标//(*Declarations(test2Frame)wxStatusBar* StatusBar1;//*)DECLARE_EVENT_TABLE()};打开MouClickMain.cpp文件,在MouClickFrame的构造函数中初始化变量如下:m_bmp.LoadFile( _T("./bitmap1.bmp"),wxBITMAP_TYPE_BMP); //装如位图oldpoint.x=70;oldpoint.y=70;curpoint.x=70;curpoint.y=70;x=0.0;y=0.0;添加头文件如下:#include <wx/bitmap.h>#include <wx/math.h>#include <wx/wx.h>#include <wx/event.h>#include <wx/defs.h>#include <wx/utils.h>在主窗体的OnPaint事件中添加代码如下:void test2Frame::OnPaint(wxPaintEvent& event){wxPaintDC dc(this); //创建DCdc.DrawBitmap(m_bmp, curpoint.x, curpoint.y, true); //显示图片}下面来写我们自定义的RePaint事件。
ubuntu课程设计一、课程目标知识目标:1. 让学生理解Ubuntu操作系统的基本概念,掌握其历史背景和特点;2. 使学生掌握Ubuntu操作系统的安装、配置及基本使用方法;3. 帮助学生了解Linux操作系统的基本命令和文件系统结构。
技能目标:1. 培养学生独立安装和配置Ubuntu操作系统的能力;2. 培养学生熟练使用Ubuntu操作系统进行日常工作和学习的基本技能;3. 培养学生运用Linux命令行解决简单问题的能力。
情感态度价值观目标:1. 培养学生对开源软件和自由软件精神的认同,提高其创新意识和团队协作精神;2. 激发学生对计算机操作系统的学习兴趣,培养其探索精神和自主学习能力;3. 引导学生树立正确的网络安全意识,养成遵守法律法规和道德规范的良好习惯。
课程性质:本课程为信息技术课程,以实践操作为主,理论讲解为辅。
学生特点:学生处于高年级,具备一定的计算机操作基础,对新鲜事物充满好奇,具备较强的自主学习能力。
教学要求:结合学生特点和课程性质,采用任务驱动、案例教学等方法,注重培养学生的实践能力和创新能力。
在教学过程中,关注学生的个体差异,充分调动学生的学习积极性,确保课程目标的实现。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. Ubuntu操作系统简介:包括其历史、特点和开源精神;2. Ubuntu操作系统的安装与配置:讲解安装过程、分区策略、网络配置等;3. Ubuntu操作系统基本使用:文件管理、软件安装与卸载、系统设置等;4. Linux基本命令:文件操作、目录操作、权限管理、文本处理等;5. 文件系统结构:介绍Linux文件系统结构,理解目录树及其作用;6. Ubuntu操作系统安全与维护:系统更新、病毒防护、软件源管理等;7. 个性化设置与软件推荐:介绍实用软件、桌面环境、系统优化等。
教学大纲安排:第一课时:Ubuntu操作系统简介;第二课时:Ubuntu操作系统的安装与配置;第三课时:Ubuntu操作系统基本使用;第四课时:Linux基本命令(一);第五课时:Linux基本命令(二);第六课时:文件系统结构;第七课时:Ubuntu操作系统安全与维护;第八课时:个性化设置与软件推荐。
前言下面的命令大都需要在控制台 / 终端 / shell下输入。
控制台, 终端, 和 shell意味着同样一件事 - 一个命令行界面,他可以用来控制系统。
打开一个控制台:应用程序 --> 附件 --> 终端任何一个使用 'sudo' 作为前缀的命令都需要拥有管理员(或 root) 访问权限。
所以你会被提示输入你自己的密码。
安装升级查看软件xx x安装内容dpkg -L xxx查找软件库中的软件apt-cachesearch正则表达式或aptitu de search软件包显示系统安装包的统计信息apt-cachestats显示系统全部可用包的名称apt-cachepkgnam es显示包的信息apt-cacheshow k3b查找文件属于哪个包dpkg -S filena meapt-file search filena me查看已经安装了哪些包dpkg -l也可用dpkg -l | less翻页查看查询软件xx x依赖哪些包apt-cachedepend s xxx查询软件xx x被哪些包依赖apt-cacherdepen ds xxx增加一个光盘源sudo apt-cdromadd系统更新sudo apt-get update (这一步更新包列表)sudo apt-get dist-upgrad e (这一步安装所有可用更新)或者sudo apt-get upgrad e (这一步安装应用程序更新,不安装新内核等)清除所有已删除包的残馀配置文件dpkg -l |grep ^rc|awk '{print$2}' |sudo xargsdpkg -P如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。
dpkg: --purgeneedsat leastone packag e name argume ntType dpkg --help for help aboutinstal lingand deinst allin g packag es [*];Use `dselec t' or `aptitu de' for user-friend ly packag e manage ment; Type dpkg -Dhelpfor a list of dpkg debugflag values;Type dpkg --force-help for a list of forcin g option s;Type dpkg-deb --help for help aboutmanipu latin g *.deb files; Type dpkg --licens e for copyri ght licens e and lack of warran ty (GNU GPL) [*].Option s marked[*] produc e a lot of output- pipe it throug h `less' or `more' !编译时缺少h文件的自动处理sudo auto-apt run ./config ure查看安装软件时下载包的临时存放目录ls /var/cache/apt/archiv es备份当前系统安装的所有包的列表dpkg --get-select ions| grep -v deinst all > ~/somefi le从上面备份的安装包的列表文件恢复所有包dpkg --set-select ions< ~/somefi lesudo dselec t清理旧版本的软件缓存sudo apt-get autocl ean清理所有软件缓存sudo apt-get clean删除系统不再使用的孤立软件sudo apt-get autore move如果使用sudo apt-get autore move--purge的话会把这些孤立软件的残留配置文件也一并移除查看包在服务器上面的地址apt-get -qq --print-uris instal l ssh | cut -d\' -f2彻底删除Gn omesudo apt-get --purgeremove liborb it2彻底删除KD Esudo apt-get --purgeremove libqt3-mt libqtc ore4一键安装 LAMP 服务sudo taskse l instal l lamp-server删除旧内核sudo aptitu de purge~ilinux-image-.*\(\!`uname-r`\)导入ppa源的key值#W: GPG签名验证错误:unch jaunty Releas e: 由于没有公钥,下列签名无法进行验证: NO_PUB KEY 5126890CDCC7AFE0sudo apt-key adv --recv-keys --keyser ver keyser ver.ubunt 5126890CDCC7AFE0 #5126890CDCC7AFE0替换为你需要导入的K ey值增加 add-apt-reposi tory命令sudo apt-get instal l softwa re-proper ties-common增加一个pp a源sudo add-apt-reposi toryppa:user/ppa-name#使用 ppa 的地址替换ppa:user/ppa-name添加163镜像源sudo add-apt-reposi tory"deb http://mirror /ubuntu/ `lsb_re lease -cs` main restri cteduniver se multiv erse"sudo add-apt-reposi tory"deb http://mirror /ubuntu/ `lsb_re lease -cs`-update s main restri cteduniver se multiv erse"sudo add-apt-reposi tory"deb http://mirror /ubuntu/ `lsb_re lease -cs`-securi ty main restri cteduniver se multiv erse"系统升级1这里指的是版本间的升级,例如 9.04=>10.04。