




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Unix/Linux 程序环境 第第 1 章概述章概述1主讲: 姜林美 Email : Unix/Linux 程序环境 第第 1 章概述章概述2课程内容Linux及及Linux编程环境概述编程环境概述C语言基础与提高语言基础与提高GNU开发工具链的使用开发工具链的使用GTK+编程基础编程基础Gtk+基本构件基本构件Gdk与与cairo绘图基础绘图基础文件文件进程、信号和消息队列进程、信号和消息队列shell编程(编程(bash)俄罗斯方块 Unix/Linux 程序环境 第第 1 章概述章概述3参考文献Internet (google & baidu)DevhelpGNU/LINUX
2、环境编程环境编程.M.Tim JonesUNIX环境高级编程环境高级编程. W.Richard StevensLinux程序设计程序设计(第(第4版)版). Neil Matthew. Linux教程(第教程(第2版)版).孟庆昌孟庆昌,牛欣源牛欣源. 电子工业出版社电子工业出版社Linux应用程序开发指南应用程序开发指南. 机械工业出版社机械工业出版社.许宏松等许宏松等实用技术:开发实用技术:开发Linux应用应用用用GTK+和和GDK开发开发Linux图形用户界面应用图形用户界面应用. Eric Harlow著著. 童寿彬等译童寿彬等译Foundations of GTK+ Develop
3、ment. Andrew Krause第一章 Linux及Linux编程环境概述4 Unix/Linux 程序环境 第第 1 章概述章概述51.1 Linux操作系统概述Linux的诞生和发展(的诞生和发展( Linux大事大事TOP 100)1991年年9月发布月发布0.01版版目前最新版本目前最新版本 2.6.32查看内核版本查看内核版本: uname -a各版本规模比较各版本规模比较Linux内核版本号文件数量(个)源代码行数(行)0.017684130.1299154860.97187389281.004871651652.0116436862012.4.221030246865342
4、.6.27之后未统计1000万行以上 Unix/Linux 程序环境 第第 1 章概述章概述61.1 Linux操作系统概述Linux名称的由来及发音名称的由来及发音Linus最初取名为最初取名为Freax,后改名为与,后改名为与Linus谐音的谐音的Linux根据根据Torvalds Linus本人的说法,依照国际音标其本人的说法,依照国际音标其发音为发音为links u http:/www.L /pronunciation/torvalds-says-Linux.wav Unix/Linux 程序环境 第第 1 章概述章概述71.1 Lin
5、ux操作系统概述Linux发展要素发展要素Unixu Unix1969年在年在Bell实验室诞生实验室诞生, Ken.Thompson和和Dennis Ritchie开发的分时操作系统开发的分时操作系统;u 大型系统采用的主流操作系统,采用固定机型的解决大型系统采用的主流操作系统,采用固定机型的解决方案,各主要计算机产商有其自有版本的方案,各主要计算机产商有其自有版本的UNIX;u Linux是是Unix的一种典型的克隆系统,采用了几乎一的一种典型的克隆系统,采用了几乎一致的致的API接口。接口。Minixu 由荷兰由荷兰Andrew S.Tanenbaum于于1987年开发完成;年开发完成;
6、u 主要目的:操作系统原理课程的教学使用。主要目的:操作系统原理课程的教学使用。u 优点:小、有源码优点:小、有源码 Unix/Linux 程序环境 第第 1 章概述章概述81.1 Linux操作系统概述Linux发展要素发展要素GNU计划计划u Richard M. Stallman(RMS) 1984年创立年创立 GNU项目,项目,1985年创办年创办FSF。u GNU = GNUs Not UNIX,开发了:,开发了:emacs编辑系统、编辑系统、bash shell 程序、程序、gcc 系列编译程序、系列编译程序、gdb 调试程调试程序等免费软件序等免费软件u FSF = the Fr
7、ee Software Foundation,自由软件基,自由软件基金会依靠一些公司捐助和其它商业捐助来维持,进行金会依靠一些公司捐助和其它商业捐助来维持,进行软件开发的工作和保护、推广自由软件的工作软件开发的工作和保护、推广自由软件的工作u GPL = General Public License(Copyleft),旨在推,旨在推广自由软件的使用和学习,防止别有用心的公司在对广自由软件的使用和学习,防止别有用心的公司在对免费软件进行一些修改后就申请版权。因此免费软件进行一些修改后就申请版权。因此GPL 协协议要求在对软件进行修改后,如果要再次发布,就需议要求在对软件进行修改后,如果要再次发
8、布,就需要将已修改的部分同时发布出来。要将已修改的部分同时发布出来。 Unix/Linux 程序环境 第第 1 章概述章概述91.1 Linux操作系统概述Linux发展要素发展要素POSIX (Portable Operating System Interface for Computing Systems)标准标准u 由由IEEE 和和ISO/IEC 开发的标准簇开发的标准簇, POSIX.1标准标准(1988 年年9 月批准);月批准);u 描述了操作系统的调用服务接口,用于保证编制的应描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运用程序可以
9、在源代码一级上在多种操作系统上移植运行,可称为行,可称为Unix的国际标准。的国际标准。u 最新标准从最新标准从/austin/获取获取u 在在1991-1993 年间,年间,POSIX 标准的制定处在最后投票标准的制定处在最后投票敲定的时候,此时敲定的时候,此时Linux刚刚起步,这个刚刚起步,这个UNIX标准使标准使得得Linux能够与绝大多数能够与绝大多数UNIX 系统兼容系统兼容Internet网络网络u 如果没有如果没有Intenet网,没有遍布全世界的无数计算机骇网,没有遍布全世界的无数计算机骇客的无私奉献,那么客的无私奉献,那么Lin
10、ux最多只能发展到最多只能发展到0.13(0.95)版的水平。版的水平。 Unix/Linux 程序环境 第第 1 章概述章概述101.1 Linux操作系统概述Linux和和Unix的异同的异同开源软件开源软件 vs 商业软件;商业软件;Unix大多与硬件配套,即操作系统与硬件绑定;大多与硬件配套,即操作系统与硬件绑定;Linux可运行于多硬可运行于多硬件平台;件平台;Unix历史悠久,历史悠久,Linux源于源于Unix但设计思想更优秀;但设计思想更优秀;常见版本常见版本uUnix: Sun的的Solaris、IBM的的AIX、HP的的HP-UX和基于和基于x86平台平台的的SCO UNI
11、X / UNIXware。uLinux:Ubuntu、Debian、Slackware、Fedora和和RHEL、CentOS、Open SuSe、Mandriva、红旗、红旗Linux等,参见网站:等,参见网站:http:/ Linux在安装和使用上较在安装和使用上较Unix容易。容易。 Unix/Linux 程序环境 第第 1 章概述章概述111.1 Linux操作系统概述Linux人才需求人才需求Linux人才需求超过人才需求超过Unix与与Windows持平持平人才缺口极大人才缺口极大(超过超过100万万 )u http:/ http:/ http:/ http:/ Unix/Linu
12、x 程序环境 第第 1 章概述章概述121.2 Linux编程环境Linux的安装的安装(Ubuntu 10.04 LTS)在硬件上直接安装在硬件上直接安装u 光驱安装光驱安装u 硬盘安装硬盘安装在虚拟机上安装在虚拟机上安装u VMware workstationu Virtualboxu Virtual pc安装后系统更新与升级安装后系统更新与升级u sudo apt-get updateu sudo apt-get dist-upgradeu sudo apt-get upgrade Unix/Linux 程序环境 第第 1 章概述章概述131.2 Linux编程环境编程环境的安装及配置编
13、程环境的安装及配置中文输入法安装中文输入法安装usudo apt-get install scim scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-input-padusudo sh -c echo export XMODIFIERS=im=SCIM ; export GTK_IM_MODULE=scim ; export QT_IM_MODULE=scim ; scim -d /etc/X11/Xsession.d/95xinput usudo chmod 755 /etc/X11/Xsession
14、.d/95xinput中文乱码解决中文乱码解决uhttp:/ Unix/Linux 程序环境 第第 1 章概述章概述141.2 Linux编程环境编程环境的安装及配置编程环境的安装及配置gvimusudo apt-get install vim-gtk u选项选项set syntax=on set expandtabset nuset ts=4set sw=4set smset cinset aiset nowraplet &termencoding=&encodingset fileencodings=utf-8,gb18030,gbk,gb2312,big5u模式:指令、输
15、入、末行模式:指令、输入、末行u基本命令基本命令移动:h,j,k,l,w,b,0,$,G ;插入:a, i, o, O;更改:r, R, c复制: y;删除:x, d;查找:?, /, f取消:u;重做:ctrl+r Unix/Linux 程序环境 第第 1 章概述章概述151.2 Linux编程环境编程环境的安装及配置编程环境的安装及配置build-essentialusudo apt-get install build-essentialu编译:编译:gcc o xxxx filename.cg+ -o xxxx filename.cpp/ccGTK+参见:参见: http:/ u编译选项
16、编译选项: pkg-config cflags libs gtk+-2.0eclipse cdt安装参见:安装参见:http:/ 其它参见:其它参见:http:/ Unix/Linux 程序环境 第第 1 章概述章概述161.2 Linux编程环境Linux的文件组织结构的文件组织结构结构图结构图 Unix/Linux 程序环境 第第 1 章概述章概述171.2 Linux编程环境Linux的文件组织结构的文件组织结构环境变量环境变量u$PATH : 搜索路径搜索路径u$PS1 : 提示符提示符u显示环境变量命令:显示环境变量命令:printenv, envu由资源文件预先定义由资源文件预先定
17、义bash shell全局性系统环境变量的资源文件l/etc/rcx.d/* l/etc/rc.locall/etc/profilel/etc/environment (仅debain系列如ubuntu)l/etc/bashrc 或/etc/bash.bashrc (ubuntu下)用户定制的系统环境变量l/.bash_profilel/.bashrc/etc/profile中设定的变量(全局)可以作用于任何用户,用户定制的环境变量只作用于本用户执行顺序为:/etc/profile =/etc/environment= (/.bash_profile | /.bash_login | /.pr
18、ofile) = /.bashrc = /etc/bash.bashrc = /.bash_logout Unix/Linux 程序环境 第第 1 章概述章概述181.2 Linux编程环境Linux的文件组织结构的文件组织结构环境变量环境变量u各资源文件的作用:各资源文件的作用: /etc/profile: 为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。 /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。 /.bash_profil
19、e: 用户可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 /.bashrc: 该文件包含专用于某用户的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。 /.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. /.bash_profile 是交互式、login 方式进入 bash 运行的,/.bashrc 是交互式 non-login 方式(终端窗口)进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。 Uni
20、x/Linux 程序环境 第第 1 章概述章概述191.2 Linux编程环境Linux的文件组织结构的文件组织结构配置文件配置文件u /etc/passwd 每行表示一个用户的信息;7个段位;冒号分割;如: linuxsir:x:501:502:/home/linuxsir:/bin/bash 第一字段:用户名(也被称为登录名);在上面的例子中,用户名是linuxsir; 第二字段:口令;无用,已被映射到/etc/shadow 文件中; 第三字段:UID ; 第四字段:GID; 第五字段:用户名全称,这是可选的,可以不设置; 第六字段:用户的主目录所在位置;上例中为/home/linuxsi
21、r ; 第七字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash; Unix/Linux 程序环境 第第 1 章概述章概述201.2 Linux编程环境Linux的文件组织结构的文件组织结构配置文件配置文件u/etc/fstab 每行表示一条挂载信息;6个段位;空白字符分割;格式fs_spec fs_file fs_type fs_options fs_dump fs_pass如:UUID=CDEDBE95A6C93A99 /mnt/win_vm ntfs defaults,utf8,rw,user 0 1fs_spec 要加载的
22、文件系统所在的设备或远程文件系统fs_file - 加载的目录点fs_type - 定义了该设备上的文件系统,ext3、ext4、vfat(Windows系统的fat32格式)、ntfs、iso9660等。fs_options - 特定参数选项,逗号分隔;一般使用defaults。其他选项:lro或rw 以只读或读写模式加载该文件系统luser 允许普通用户加载该文件系统lnoauto 使用mount a命令(例如系统启动时)时不自动加载lumask=022 文件权限的掩码 liocharset=gbk 编码fs_dump - 该选项被dump命令使用来检查一个文件系统应该以多快频率进行转储,
23、若不需要转储就设置该字段为0fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0 Unix/Linux 程序环境 第第 1 章概述章概述211.2 Linux编程环境Shell简介简介什么是什么是Shellu 一个做为用户与一个做为用户与Linux系统之间的操作接口程序,系统之间的操作接口程序,允许用户向操作系统输入需要执行的命令;允许用户向操作系统输入需要执行的命令;u 一种高级、解释性程序设计语言一种高级、解释性程序设计语言Shell的种类的种类u Bour
24、ne shell(sh)u C shell(csh)u Korn shell(ksh)u Bourne Again shell(bash) Unix/Linux 程序环境 第第 1 章概述章概述221.2 Linux编程环境Shell简介简介shell脚本文件示例脚本文件示例执行执行shell脚本脚本u输入定向到输入定向到shell脚本脚本$ /bin/bash 脚本名u以脚本名作为参数以脚本名作为参数$ 脚本名参数u将将shell脚本的权限设置为可执行脚本的权限设置为可执行$ chmod a+x example$ ./exampleshell通配符通配符u?通配单个字符,如?通配单个字符,如
25、ls tes?.txtu* 通配所有字符通配所有字符/字符串,如字符串,如ls tes*.*uset 通配方括号中任何一个单个字符,如通配方括号中任何一个单个字符,如ls testfx.*uset 通配不包括号方括号内的任何单字符,如通配不包括号方括号内的任何单字符,如ls testfx.*u 通配大括号内的任何字符串,如通配大括号内的任何字符串,如ls test,t1,t2.*#!/bin/bashecho you are welcome to use bashecho current work driectory is $PWDecho you are $LOGNAME Unix/Linu
26、x 程序环境 第第 1 章概述章概述231.2 Linux编程环境Linux的基本操作的基本操作获取帮助获取帮助u-helpifconfig -helpumanman manman 3 printfuinfo? 显示命令,tab跳到下一个超链接位置,RET转到该链接info infoinfo 3 printfuman工具显示非工具显示非GNU工具的信息,工具的信息,info补充非补充非GNU工具信息工具信息及显示及显示GNU工具信息。工具信息。 Unix/Linux 程序环境 第第 1 章概述章概述241.2 Linux编程环境Linux的基本操作的基本操作管道:管道:u格式:命令格式:命令1
27、 | 命令命令2u功能:将命令功能:将命令1执行的输出作为命令执行的输出作为命令2执行的输入执行的输入u举例举例ls -l | grep hellops ax | grep ftpd | wc l输入、输出重定向输入、输出重定向u格式:格式:、u文件描述符:文件描述符:0标准输入;标准输入;1标准输出;标准输出;2标准错误输标准错误输出出u举例举例ls l lsoutput.txtps lsoutput.txtkill HUP 1234 killout.txt 2killerr.txtkill l 1234 killouterr.txt 2&1cat bye.txt Unix/Linu
28、x 程序环境 第第 1 章概述章概述251.2 Linux编程环境Linux的基本操作的基本操作浏览及搜索文件系统浏览及搜索文件系统u pwd: 显示当前路径显示当前路径u cd:切换当前路径:切换当前路径 cd ./. cd 或cd 回到用户主目录u find:搜寻磁盘查找文件:搜寻磁盘查找文件 -name 按名字查找。如:查找子目录/usr中的spell命令:lfind /usr -name spell -print -atime 按照日期或日期范围查找。如:查找最近十天未使用的程序:lfind /usr/bin -type f -atime +10 -print -mtime 按修改时间
29、查找,如:查找建立不到一天的新文件或者二十四小时内修改过的文件:lfind /usr/bin -type f -mtime -1 -print 查找文件并执行命令。如:lfind -name *.svn -exec rm -f ; Unix/Linux 程序环境 第第 1 章概述章概述261.2 Linux编程环境Linux的基本操作的基本操作浏览及搜索文件系统浏览及搜索文件系统uwhich:通过:通过PATH环境变量到该路径内查找文件环境变量到该路径内查找文件which passwduwhereis:快速查找二进制文件、源代码文件和手册页:快速查找二进制文件、源代码文件和手册页whereis
30、 -bmsu findulocate:在文件名数据库(一般每天更新一次)中查找文件:在文件名数据库(一般每天更新一次)中查找文件locate *.txtugrep:在文件内进行搜索:在文件内进行搜索 grep OPTIONS PATTERN FILE. 常用选项l-r 递归搜索子目录l-i 忽略大小写 示例lgrep cout test.c Unix/Linux 程序环境 第第 1 章概述章概述271.2 Linux编程环境Linux的基本操作的基本操作浏览及搜索文件系统浏览及搜索文件系统uwhatis:从程序使用手册中抽出介绍从程序使用手册中抽出介绍whatis printfuapropos
31、: 查找手册页中的相关信息查找手册页中的相关信息apropos finduman K: 同同apropos浏览目录及阅读文件浏览目录及阅读文件uls, ll, dir, vdirucatcat n test.c 输出并显示行号umoremore test.c 空格下一页,b上一页u lessless test.c 有许多类似VI的浏览命令uhead, tail 查看头或尾若干行查看头或尾若干行head n10 test.ctail f test.c 跟踪文件的变化 Unix/Linux 程序环境 第第 1 章概述章概述281.2 Linux编程环境Linux的基本操作的基本操作运行进程运行进程
32、u后台运行:后台运行:&, 如:如:vi &ujobs: 查看终端启动了哪些程序查看终端启动了哪些程序uCtrl + Z 暂停前台程序暂停前台程序ubg JOBID 切换到后台运行切换到后台运行ufg JOBID 切换到前台运行切换到前台运行查看进程:查看进程:psu示例:示例:ps axps efu常用选项:常用选项:-e:显示所有进程。-f:全格式。-u:打印用户格式,显示用户名和起始时间。浏览目录及阅读文件u重要输出字段重要输出字段 UID 进程所有者的用户名 PID 进程号 STAT 进程状态,常见的值有:lR: 可执行的。lS: 睡眠状态。lZ: 僵尸。lI: 空闲。
33、 Unix/Linux 程序环境 第第 1 章概述章概述291.2 Linux编程环境Linux的基本操作的基本操作结束进程结束进程uCTRL + C 结束前台进程结束前台进程ukill命令命令: kill -s 信号 进程号 kill -l 信号u命令中的参数说明:命令中的参数说明: -s:指定需要送出的信号。既可以是信号名也可以对应数字。 -l:显示信号名称列表睡眠进程睡眠进程usleep:使当前正在执行的进程在规定的时间内处于睡眠:使当前正在执行的进程在规定的时间内处于睡眠sleep time 睡眠time秒kill s SIGCONT pid 唤醒 Unix/Linux 程序环境 第第
34、 1 章概述章概述301.2 Linux编程环境Linux的基本操作的基本操作tar (tape archive):建立档案文件:建立档案文件u命令参数命令参数:c (创建)f (文件)v (verbose)w (提问)t (测试,查看)x (展开,解包)u示例:示例:tar c(v)f mydir.tar mydir 创建mydir.tartar xf mydir.tar mydir/mydir2/file23 从档案文件中解出file23文件tar zxvf myfile.tar.gz 解压并解包myfile.tar.gz文件 Unix/Linux 程序环境 第第 1 章概述章概述311.
35、2 Linux编程环境Linux的基本操作的基本操作文件拷贝、移动、链接文件拷贝、移动、链接u cp:拷贝:拷贝 cp file1 /file2 cp r dir1 dir2u mv: 移动或更名移动或更名 mv file1 file2 mv file1 /file2u ln: 创建链接文件创建链接文件 ln 源文件 链接名 ln s 源文件 链接名 硬链接与符号链接,硬链接只能存在于同一文件系统,符号链接可以存在于不同文件系统;硬链接:一份档案两个名称,符号链接:一个特殊的档案,其内容指向另一个档案的位置。 Unix/Linux 程序环境 第第 1 章概述章概述321.2 Linux编程环境
36、Linux的基本操作的基本操作挂装和卸载文件系统挂装和卸载文件系统u 挂装:挂装:mount options device directory sudo mount -o ro /dev/hda3 /mnt/disk_3 sudo mount t iso9660 /dev/cdrom /mnt/cdrom sudo mount t iso9660 o loop /img/cd_1.iso /mnt/vcdrom sudo mount -au 卸载:卸载:umount -f directory umount /mnt/vcdrom umount l /mnt/disk_3 Unix/Linux 程序环境 第第 1 章概述章概述331.2 Linux编程环境Linux的基本操作的基本操作查看文件系统的使用情况查看文件系统的使用情况u df:显示当前所有文件系统的使用情况:显示当前所有文件系统的使用情况, df h df -i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 刷漆施工协议合同标准文本
- 农田入股合同标准文本
- 下发合同标准文本通知
- VI设计合同标准文本
- 买房合同物业合同标准文本
- 业主与物业协议合同标准文本
- 劳务工资合同标准文本
- 学生网络安全知识教育
- 学生在网络环境下的信息筛选与判断能力研究
- 地铁扶梯政策解读课件
- 2024年内蒙古气象部门招聘呼和浩特包头鄂尔多斯等考试真题
- 炎德·英才大联考长郡中学2025届高三3月月考试卷(七)地理试卷(含答案详解)
- 脑梗死合并慢阻肺的护理查房
- 2025年腾讯测试笔试试题及答案
- 2024年国家水利部黄河水利委员会事业单位考试真题
- 2025年西安铁路职业技术学院单招职业技能测试题库学生专用
- 2025年浙江建设职业技术学院单招职业技能测试题库含答案
- 《经济形势分析》课件
- T-CPI 11037-2024 石油天然气钻采设备水力振荡器技术与应用规范
- 《APQP基础知识》课件
- 点亮人文关怀守护生命花开-护理人文关怀模式在一例脑卒中后焦虑患者中的应用
评论
0/150
提交评论