文档库 最新最全的文档下载
当前位置:文档库 › (8)g 玩转Linux下的Modem

(8)g 玩转Linux下的Modem

(8)g 玩转Linux下的Modem
(8)g 玩转Linux下的Modem

玩转Linux下的Modem

Modem可谓Linux下最难搞定的设备之一,它是我们使用Linux时许多失望和喜悦的源泉。本文介绍Modem相关的各种问题,比如端口、中断、PnP以及Modem 检测、网络配置,等等。

端口与Modem类型

计算机有许多连接其内部和外部世界的接口,部分接口是专用的,例如键盘接口只能连接键盘而不能连接任何其他设备,连鼠标也不能。

连接外部设备的多用途接口称为“端口”(Port)。大多数PC机都带有两个串行端口和一个并行端口。串行端口用一条线路串行传送数据,每次传送一个数据位,接收后再组合成字节。并行端口使用八条线路每次并行传送8个数据位。大多数家用打印机都连接到PC的并行端口。

Modem是一种通过电话线路传送数字信息的设备。我们知道,电话系统原本只为传送语音信息而设计,Modem技术突破了这一局限,它能够调制(modulate)数字信息,把数字信息转换成可以通过电话线路发送的模拟信号。在接收端,模拟信号重新被转换成数字信号(即解调,demodulate)。Modem这个词就是从modulator-demodulator缩写得到。

Modem发明于串行口广泛应用的时代。那时的Modem都是独立在计算机外的设备,通过电缆连接到串行口。今天我们仍可以见到这种外置的Modem,但更多的是插入主板的Modem卡,即内置Modem。由于大多数计算机都带有二个串行口,内置Modem通常增加第三个端口。

外置Modem的设置一般都相当简单,只需接好串行口和Modem之间的电缆、接上电话线、开启电源,大多数外置Modem就能直接开始工作。

内置Modem刚出现时,它的板子上总是带有所有通信所需的电路元件,并提供设置地址和IRQ的跳线。硬件厂商总是在寻求降低成本的途径。随着PC功能越来越好,Modem厂商开始用软件来替代部分电路元件,这些Modem称为软Modem 或Winmodem。软Modem价格低廉,它用设备驱动程序来完成原来必须由Modem 卡电路元件完成的部分任务。

软Modem的问题在于它的驱动程序是为Windows而不是为Linux编写的。虽然不存在什么特别的原因使得这种驱动程序的Linux版本无法编写,不过这最终

还得看Modem厂商。到目前为止还没有厂商这么做。这就意味着软Modem不能在Linux下工作。

购买Modem时应注意它是否注明了Linux兼容。软Modem的清单可以在https://www.wendangku.net/doc/8b14927817.html,/~gromitkc/winmodem.html找到。根据经验,如果Modem包装盒注明了“HCF”、“HSP”、“Winmodem”或“soft modem”字样,那么它很可能不能用于Linux。

总线、中断、地址和PnP

PC机的大多数配件都和CPU、内存一起直接插入主板。主板提供许多扩展卡的接口,供显示卡、Modem之类的设备接入使用。现在也有许多主板直接集成这些功能,因此也就不需要再加这些扩展卡。许多集成到主板的Modem都可以顺利地在Linux下工作。

主板上的接口连接到系统总线。总线有许多类型,较早的PC使用ISA总线,新的PC使用PCI总线。还有其他一些总线类型,但通常只涉及这两种总线。这些总线的物理和电学特性都是不兼容的,ISA卡绝不能插入PCI插槽,因此购买Modem之前一定要搞清楚可以使用的总线。除非你的机器非常古老,一般它会支持PCI。

在计算机和新插入的卡建立联系之前,计算机必须知道该卡的I/O地址(输入/输出地址)和中断请求线。

当计算机想要和插入系统总线的卡通信时,它通过发送I/O地址来选中该卡。每块卡都只应答自己的地址,所有卡都必须有不同的地址,

中断(Interrupt)稍微复杂一点。当我们在浏览器中输入一个URL地址,就会建立与目标网站的连接,Modem开始接收数据;与此同时,计算机还可以做其他事情,比如监视鼠标状态、打印输出等等。计算机不应该单独排外地专注于一件事情,应该有一种方法让Modem告诉计算机说:“打扰一下,这儿有传送给你的数据”。这种方法就是中断。

每一个中断都有一个独一无二的编号,称为IRQ。IRQ是Interrupt ReQuest 的缩写。中断的数量很多,必须搞清楚每一个中断被分配到了什么设备上。例如,如果中断来自Modem,就不应该去检查鼠标。

早期的扩展卡提供跳线让用户设置其I/O地址和IRQ。这种方法很容易出错,比如容易把两块卡设置成相同的地址或IRQ。为解决这个问题,软硬件厂商们共同建立了一个标准,这个标准允许计算机主动地查询各个扩展卡并分配I/O地址和IRQ。它不仅使得地址和IRQ的分配自动化,同时也避免了可能出现的冲突。这个标准就是“即插即用”,即Plug and Play,简称PnP。

计算机启动时首先运行的软件是BIOS(Basic Input Output System)。BIOS 唤醒计算机的所有设备,简单地检查计算机安装了哪些设备,然后装入操作系统。PnP设备的许多配置工作均由BIOS完成,但也有部分工作要由操作系统完成。Linux还未能提供完善的PnP支持,虽然许多PnP设备可配置成在Linux下工作,但也有许多不能。

如果Linux没有初始化某个PnP设备,不要马上对此绝望,很有可能存在解决方法。请查看isapnp工具的文档,Modem-HOWTO同样可以提供帮助。如果兼容设备清单包含了该类Modem,不管它是不是PnP的,很可能无需任何额外的努力它就可以顺利地工作。

安装Modem最常见的问题有三个:I/O地址或IRQ设置冲突,使用的是软Modem,不完善的PnP支持导致Modem配置错误。

配置拨号网络

Modem接入计算机之后,怎样才能找到它?

如果Modem是外置式的,那么你应该清楚它连接到了COM1还是COM2。如果Modem是内置式的,那么它很可能连接到COM3。COM1、COM2这类名字是Microsoft 对串行端口的称呼。在Linux中,COM1被称为/dev/ttyS0, COM2是/dev/ttyS1,而COM3 则是/dev/ttyS2。在较早的Linux中,COM端口可能分别叫做/dev/cua0、/dev/cua1以及/dev/cua2。

如果Modem是在Linux安装期间配置的,那么/dev目录下会生成/dev/modem。这应该是一个指向Modem正确端口的连接。要查看/dev/modem指向了何处,在X终端输入命令file /dev/modem。输出结果应当类如:

/dev/modem: symbolic link

to ttyS2

它告诉我们Modem安装在COM3。如果/dev/modem存在且没有指向Modem实际安装的端口,则应删除该连接。有些Linux发行版本提供一个名为modemtool 的工具,使用它可以创建正确的连接。

请确保所有用户都具有访问/dev/modem以及串行端口的权限。

如果你使用KDE,那么kppp是一个帮助你配置和管理Internet连接的优秀工具。大多数Linux发行都提供kppp。注意在建立拨号连接之前必须先收集必要的信息,比如用户名字、密码、电话号码、DNS服务器地址。下面是具体的配置过程。

步骤1:指定系统所安装的Modem

启动kppp。如果不能在KDE菜单上找到它,试一下/usr/bin/kppp命令。

首先要做的事情是让kppp知道Modem在哪里。点击Setup按钮,在配置窗口中选择“Device”。

点击“Modem Device:”旁边的箭头,出现一个可选用Modem端口的清单,选择Modem所接入的端口。接下来,再把“Connection Speed:”设置成115200,当然如果机器支持的话也可以把这个速度设置得更高。

步骤2:测试Modem

要测试Modem,先选择“Modem”页。点击“Query Modem”按钮,此时将出现一个窗口显示查询Modem的进度。请确保“Modem Volumn”(音量)设置在指示条的中间,以便在Modem工作时听到声音。

如果kppp不能找到Modem,你可以返回步骤1试一下另外的端口(或速度)。

步骤3:设置帐号参数

接下来就可以设置帐号参数。返回“Accounts”页,选择“New”设置一个新的帐号。

在“Dial”页下面,取一个容易使人记起拨号目标的名字(建议使用ISP 的名字)并将它输入“Connection Name”框。然后再将ISP的电话输入“Phone Number”框。

现在选择“IP”页,选中“Dynamic IP Address”检查框(如果ISP提供了固定的IP地址,则不要选中该项)。在DNS页,输入ISP提供的DNS服务器的IP地址。

点击OK保存新创建的帐号。再次点击OK关闭“Configuration”窗口。

步骤4:连接

现在我们回到了最初的kppp窗口。输入用户名字和密码,然后点击“Connect”按钮。

如果计算机能接通Modem,它将开始向设定的ISP拨号。此时可以听到Modem 拨号的声音。

用Minicom测试Modem

把Modem接入计算机之后首先要做的事情之一是测试一下看看它能否工作。这可以使用前面介绍的kppp,如果kppp不行,还可以使用一个名为minicom的Linux小工具。

第一次运行minicom的时候必须进入设置模式,告诉它Modem所使用的端口。在X终端输入命令minicom -s(必须以root身份运行),此时将出现一个菜单。使用“Serial port setup”,确保端口和速度的设置都正确无误。

配置好minicom之后,接下来就可以直接向Modem发送命令。大多数Modem 都支持“贺氏协议”(Hayes Protocol)。试一下AT命令,如果Modem能正常工作,它将应答OK。如果没有得到OK应答,那么可能端口设置错误,可能Modem 已经损坏,可能Modem不能适应你所设置的速度等选项。

另外一个可能的原因是Modem被设置成了“静默”模式。试一下ATE1Q0V1命令。该命令告诉Modem回显并应答用户命令(如果它能够接受命令的话)。

贺氏协议

正如计算机业的其它许多事情,标准往往是由特定领域第一个取得成功的公司建立。第一个真正成功的Modem厂商是贺氏(Hayes)。贺氏开发了一种用于控制其Modem的非常简洁的语言,即贺氏协议(Hayes Protocol)。今天,贺氏协议得到了几乎所有Modem的支持。

贺氏协议的命令以AT开头,一行之内单个“AT”之后可以跟随多个命令。虽然贺氏协议的应用已经相当普遍,但某些Modem仍不能支持完整的贺氏命令集。要得到Modem所支持贺氏命令的完整清单,请参见Modem手册或制造商网站。

下面是你应该熟悉的基本命令,大多数Modem都支持这些命令:

Z:(重新)初始化/重置

H:挂断

Ln:扬声器音量(L0=最低,L1=低,L2=中,L3=高)

Mn:扬声器控制(M0=关,M1=连接后关,M2=总是开启)

Vn:结果码格式(V0=以数字显示结果码,V1=以文字显示结果码)

En:命令回显(E0=不回显,E1=回显命令)

《中文Linux应用编程界面(API)规范》

《中文Linux应用编程界面(API)规范》 编制说明 一、任务来源 根据国家863计划信息技术领域,软件重大专项,中文Linux和办公软件相关标准与规范课题研究开发任务的规定,和根据国家质检总局和信息产业部2003年放国家标准和行业标准制、修订计划安排,制订《中文Linux应用编程界面(API)规范》。该项目由中软网络技术股份有限公司负责起草,项目计划代号为 二、工作过程 在国家任务下达后,中软网络技术股份有限公司就组织了工作组,在前期工作的基础上,收集与翻译了国际上有关Linux的主要标准的最新版本LSB 1.3(目前的最新版本为 LSB 2.0)和OpenI13N 1.3。总结了多年来在Linux开发工作和标准制订工作的经验。在“非典”肆虐期间,编写了制订《中文Linux应用编程界面(API)规范》的计划和大纲。 在“四所”的组织下成立了“中文Linux标准”工作组。在工作组的统一安排下,确定了编写工作的计划与大纲。于2003年9月初,编写了《中文Linux 应用编程界面(API)规范》初稿,提交工作组讨论。工作组前后经过了近10次讨论,几经修改,先后提交了三次修改稿,才形成了《征求意见稿》。《征求意见稿》通过在网上和有关单位广泛征求意见,收集了许多很好的意见。工作组又组织了有FSG和OpenI18N有关人员和国内的Linux厂商、专家及有关人员参加的“Linux标准研讨会”。 2004年4月信息产业部成立Linux标准工作组,组织更大范围的企业参与标准的制定工作。在此基础上工作组对“意见汇众”进行了深入的整理、分析和讨论,确定了修改意见。根据这些意见,经过修改,我们提交了《中文Linux 应用编程界面(API)规范》的《送审稿》。 2006年在发展基金及国家十五项目的支持下,中国电子技术标准化研究所组织国内主要Linux操作系统发布商,对标准的符合性测试展开研究,并根据测试研究的结果对标准做中描述不够严谨的地方做出相应调整。 三、主要说明 1、标准的目的

常用linux命令(面试常用)

date显示系统日期 cd.. 返回上级目录 pwd 显示当前路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a显示隐藏文件 ls -lh 显示权限 tree 显示文件和目录由根目录开始的树形结构 shutdown -h now 关闭系统 mkdir dir1 创建目录 rm -f file1 删除文件 rmdir 删除目录 cp 复制文件 find /-name file1 从/开始进入根文件系统搜索文件和目录 groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 passwd 修改口令 passwd user1 修改一个用户的口令 gunzip file1.gz 解压一个file1.gz的文件 gzip file1 压缩文件 cat file1 从第一个字节开始查看文件 grep Aug /log/massages 在 massage文件中查找关键字Aug grep ^Aug /log/massages 在 massage文件中查找以Aug开头的词汇df 查看磁盘空间占用情况,使用权是所有用户 free 查看内存的使用情况 quota 显示磁盘使用情况和限制情况,使用权是超级用户 lp 打印文件 ifconfig 查看和更改网络接口的地址和参数 ping检测主机网络接口状态,使用权限是所有用户 Telnet 远程登录 ftp 文件传输 more一页一页显示档案内容 who 查看目前谁在线 finger 查看关于系统用户的信息 clear 清除屏幕

linux常用命令

新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握。 由于操作和使用环境的陌生,如果要完全熟悉Linux的应用我们首先要解决的问题就是对Linux常用命令的熟练掌握。本章我们就来介绍Linux的常用基本命令。 Linux常用命令 1.Linux命令基础 Linux区分大小写。在命令行(shell)中,可以使用TAB键来自动补全命令。即可以输入命令的前几个字母,然后按TAB键,系统自动补全命令,若不止一个,则显示出所有和输入字母相匹配的命令。 按TAB键时,如果系统只找到一个和输入相匹配的目录或文件,则自动补全;若没有匹配的内容或有多个相匹配的名字,系统将发出警鸣声,再按一下TAB键将列出所有相匹配的内容(如果有的话)以供用户选择。 首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中―系统管理员‖拥有最高权限。 在启动Linux后屏幕出现如下界面显示:Red Hat Linux release 9 (Shrike) Kernel 2.4.20.8 on an i686

login: 输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个―#‖提示符时,表明你登录成功! 屏幕显示Linux提示符:[root@localhost root]#_ 这里需要说明的是―Red Hat Linux release 9 (Shrike)‖表示当前使用的操作系统的名称及版本。―2.4.20.8‖表示Linux操作系统的核心版本编号。―i686‖表示该台电脑使用的CPU的等级。 下面我们来介绍常用基本命令 一,注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout

Linux基础及应用习题解析

1、Linux是所谓的“Free Software”,这个“Free”的含义是什么?() A、Linux不需要付费 B、Linux发行商不能向用户收费 C、Linux可自由修改和发布 D、只有Linux的作者才能向用户收费 2、Linux系统各组成部分中哪一项是基础?() A、内核 B、X Window C、Shell D、GONME 3、Linux内核管理系统不包括的子系统是哪个?()还包括设备管理系统 A、进程管理系统 B、内存管理系统 C、文件管理系统 D、硬件管理系统 4、下面关于Shell的说法,不正确的是哪个?() A、操作系统的外壳 B、用户与Linux内核之间的接口 C、一种和C类似的高级程序设计语言 D、一个命令语言解释器 5、以下哪种Shell类型在Linux环境下不能使用?() A、B Shell B、K Shell C、R Shell D、Bash 6、安装Linux至少需要几个分区?() A、2 B、3l C、4 D、5 7、RHEL Server 5系统启动时默认由以下哪个系统引导程序实施系统加载?() A、GRUB B、LILOl C、KDE D、GNOME 8、/dev/hda5 在Linux中表示什么?() A、IDE0接口上从盘 B、IDE0接口上主盘的逻辑分区 C、IDE0接口上主盘的第五个分区 D、IDE0接口上从盘的扩展分区 9、系统引导的过程一般包括如下几步:(1)MBR中的引导装载程序启动;(2)用户登录;(3)Linux内核运行;(4)BIOS自检。以下哪个顺序是正确的?()A、(4) (2) (3) (1) B、(4) (1) (3) (2) C、(2) (4) (3) (1) D、(1) (4) (3) (2) 10、KDE中要调整桌面墙纸及字体需要打开哪个组件?() A、文件管理器 B、我的电脑 C、控制中心 D、屏幕保护程序 11、Linux有几个虚拟终端?() A 、5 B、6 C、7 D、8 12、输入命令的时候,选项和参数之间可以用什么符号隔开?() A、% B、! C、空格 D、~ 13、pwd命令的功能是什么?() A、设置用户的口令 B、显示用户的口令 C、显示当前目录的绝对路径 D、查看当前目录的文件 14、输入“cd”命令并按【Enter】键后,将有什么结果?() A、从当前目录切换到根目录 B、屏幕显示当前目录 C、从当前目录切换到用户主目录 D、从当前目录切换为上一级目录

LINUX常用数据结构

/* * List definitions. */ #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } #define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } /* * List functions. */ #define LIST_INIT(head) { \ (head)->lh_first = NULL; \ } #define LIST_INSERT_AFTER(listelm, elm, field) { \ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ (listelm)->field.le_next->field.le_prev = \ &(elm)->field.le_next; \ (listelm)->field.le_next = (elm); \ (elm)->field.le_prev = &(listelm)->field.le_next; \ } #define LIST_INSERT_HEAD(head, elm, field) { \ if (((elm)->field.le_next = (head)->lh_first) != NULL) \

怎样执行在Linux上运行应用程序

如何执行在Linux上运行的应用程序 关键字:Linux 先决条件 要充分理解本文,必须具备Windows 环境下桌面应用程序的工作经验,我认为读者对如何使用Linux 桌面有一个基本的了解。使用一个运行的Linux 计算来机探讨本文的概念和示例是很有帮助的。 概述 有时候第一次在Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务器服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志(x)。 运行用户空间应用程序 Linux 在内核空间或用户空间运行进程。用户空间是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。 默认情况下,只有root 用户有权访问内核空间。root 用户是Linux 中的超级用户,相当于Windows 中的管理员帐户。在root 用户帐户下运行应用程序可能会引起安全风险,是不可取的。 很多服务器服务需要root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户才是标准的用户帐户。主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。 设置权限 您可以使用chmod 命令在一个文件中设置执行权限。在Linux 中,umask 设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护Linux 计算机的安全性。 大多数Linux 发行版具有一个值为022 的umask 设置,这意味着,默认情况下一个新文件权限设置为644.权限的数字表示形式采用读(4)、写(2)、执行(1) 的格式。因此,默认权限为644 的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。 例如,为每个人赋予一个文件的执行权限,使用chmod a+x 命令。a 表示所有人,加号(+) 表示添加,而x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。 如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。 更具体地说,您可以在一个可执行文件中设置访问控制列表(ACL) 权限,赋予特定用户或组权限来运行该应用程序。使用setfacl 实用工具设置ACL 权限。 对于这些需要以root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要root 权限的服务器服务的各种选项。 选项描述 作为root 用户不推荐用于服务器服务。当用户已经知道root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。 SetUID 由于安全问题,不推荐使用。SetUID 允许标准用户以另一个用户方式,比如root 用户,执行一个文件。 sudo 很常用,并且被认为是一个很好的实践。sudo 授予一个用户或组成员权限以执行可能额外需要root 权限的文件。该用户不需要知道root 密码。 带有文件权限的标准用户帐户在一个文件上为用户所有者、组所有者或其他人(所有人)

《Linux应用程序设计》复习题

.一、选择题 1.下面哪个命令是用来定义shell的全局变量( ) A. exportfs B. alias C. exports D. export 2. 将当前目录下的文件移动到目录/home/linux下的命令为。 A. cp /home/linux B. mv /home/linux C. lls / home/linux/ D. mv /root/ /home/linux/ 3.如果要列出一个目录下的所有文件需要使用命令行( )。 A. ls –l B. ls-t C. ls –a D. ls –d 下Makefile文件中,表示第一个依赖目标的系统变量是() A.$@ B.$* C.$< D.$# 位系统下,定义一个指向字符类型的变量short i,那么sizeof(i)的值是( ) B.2 6.在用ls –l 查看文件属性时,字符设备文件类型的标志是( ) 7. 在linux下进行shell编程时,注释符是。 A. # B. /* */ D. 以上都不对 8. 任何时候用户需要回到用户主目录时可以使用命令。 A. cd B. pwd C. path D. cd . 9. 下列属于文件包含的命令是_________。 A. #define N 25 B. #endif C. #include "" D. #else 10. 下列关于Linux安装的说法中,不正确的是。 A.如果计算机的内存为128MB,则SWAP分区(交换分区)的大小通常设定为256M。 B.安装时Linux分区的文件系统类型一般为ext2或ext3。

C.安装时要进行磁盘分区,如果选择“自动分区”,系统会自动保留硬盘上原来的数据。 除了可以从光盘安装外,还可以从网上下载Linux的iso映像文件,从硬盘安装。 11. 下列说法中,不正确的是。 A. Shell程序编写完后还需要用gcc编译器编译。 B.可以通过将shell程序作为sh命令的输入来执行shell程序。 C. shell程序中定义的函数不能有参数。 D. Linux是免费使用和自由传播的类UNIX操作系统,但它并不是没有版权。 二.判断题 init 启动进程需要读取的系统配置文件是/etc/inittab。(√) 下令某个进程在后台运行,可在此命令后面加符号&。( √) 3.如果route add default gw netmask 命令成功运行的话,此机器的IP地址有可能是。 (X ) 程序编写完后还需要用gcc编译器编译。(X ) 5.计算机内存中正数的补码和原码一样,负数的补码等于其原码加1(X ) 6.在RedHat中cd ~ 这个命令会把你送回到你的家目录。(√) 三.填空题 IP协议采用四层层级结构,从下到上分别是:网络接口层.____ 互联网络层______ 、_ ___传输层______ .和应用层。 2.使用GCC 生成可执行文件似乎是一步完成的,实际上经历了如下四个步骤:__预处理____.编译.汇编和__连接______。 3.一个C语言程序的执行起点是__主函数________。

linux常用命令大全

& &命令可用在其他任何命令的后面,它用来通知计算机在后台运行某一命令。通过把作业放在后台,用户可以继续使用当前的shell来处理其他命令;如果命令在前台运行的话,那么用户在此进程结束前不能继续使用当前的shell。 adduser adduser命令由root或其他具有权限的管理员用来创建新用户,跟在adduser命令后面的是所要创建的帐号名,例如:adduser flying alias alias命令用来设置命令的别名或替代名。一般说来别名往往是实际命令名的缩写。例如用户为ls设置一个别名dir: alias dir=ls 若仅输入alias本身时,系统将显示当前所有的别名。 bg bg命令用来迫使被挂起的进程在后台运行。例如,当你已经在前台启动了一个命令时(没有在此命令后使用&),你才想到这一命令将运行较长一段时间,但你这时还需使用shell。在这种情况下,可通过ctrl+z挂起当前运行的进程。此时你既可以使它长期挂起,也可以通过输入bg把这一进程放到后台运行。这样shell就可以用来执行其他的命令了。 cat cat通常是用来在屏幕上滚动显示文件的内容。它的格式是: cat〈filename〉 cd cd用来改变目录。这一命令非常有用,它有三种典型的使用方法。 cd移到目录树的上一层 cd~移动到用户的主目录,与单独使用cd相同 cd directory name改变到指定的目录 cp cp用来拷贝对象。例如要把file1拷贝到file2,用如下命令: cp file1 file2 dd dd命令用来转换文件格式。 fg fg命令用来激活某个被挂起的进程并使它在前台运行。当有一个进程正在运行时,由于某种原因需要挂起它,在执行完其他任务后,需要重新把这一进程调到前台运行,这时便可用bg命令使这一进程继续运行。 find find命令用来查找指定目录的文件。当找到后将按照用户的要求对文件进行处理。语法是: find以它为起点进行搜索的目录想要查找的文件名或元字符对文件执行的操作 grep grep命令用来在指定的对象中搜索指定的文本。语法是:grep〈text〉〈file〉。它还可以和其他命令的结果联合使用,例如: ps -ef|grep-v root 这一命令要求grep接受ps命令的输出,并除去所有包含单词root的进程(-v的含义是显示与文本不匹配的内容)。在不使用-v选项时,这一命令将显示进程清单中所有包含单词root的进程。 halt halt命令用来通知内核关闭系统,它是一个只能由超级用户执行的命令。 hostname 既可以用来显示系统当前的主机名或域名,也可用来设置系统的主机名。 login 当向系统注册时,将使用login。login命令也可用来随时从这一用户改变到另一用户。 logout

Linux常用命令详解(配合示例说明,清晰易懂)

Linux常用命令详解 (常用、详细) BISTU 自动化学院 刷碗小工(frisen.imtm) 2010年11月 开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看) (配合Ctrl + F可快速查找你想了解的命令)

索引:(待完善) 文件说明:Linux命令很多,但最常用的80个左右 文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂 由于忙于其他事情,改进排版的工作只能搁置了 最后,望此文档能为大家Linux学习之路献微薄之力 一、路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令: 一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“command not find”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。 二、命令顺序: 若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。 三、参数(或称选项)顺序: 一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a –v”与输入“–v –a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–a cmd1 –v cmd2”,则不能任意改变选项顺序。 四、常用参数: 下面所列的是常见的参数(选项)意义: --help,-h 显示帮助信息 --version,-V 显示版本信息 -v 繁琐模式(显示命令完整的执行过程) -i 交谈模式(指定界面) -l 长列表输出格式 -q,-s 安静模式(不显示任何输出或错误信息) -R 递归模式(连同目录下所有文件和子目录一起处理) -z 压缩 五、命令的结合与定向: 命令中除了一般命令外,还有管道(或称途径)(|)与定向(>或>>)。 管道(途径)的用法: “命令一[选项]”| “命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls /etc”会列出etc下的所有文件,若加上“| less”,也就是“ls /etc | less”,则会将“ls /etc”的结果通过less分页输出。 定向的用法: 将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“ls > temp.txt”,就会将ls 的结果输出到文件temp.txt中。“>”与“>>”的差异在于前者是覆盖,而后者是附加。 六、命令中的命令: 许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合

Linux应用程序开发

Linux应用程序开发 二、项目 说明:下列各个项目中的程序都要同时支持单字符选项和长选项 还需要支持一些事实上每一个GNU程序都会接受或应该接受的普通选项 具体要求每个程序都要增加以下两个选项: -h --help 列出所有可用选项用法信息,然后顺利退出程序。 -v --version 输出版本号,然后顺利退出程序。 4. 模式的含义。 4.1 创建库libpm.a,库中至少有以下函数。 // 判断模式是否整数代码 bool isIntcode (char *pattern); // 在作为模式的信号符号名前面加上SIG char *plussig (char *pattern); // 在作为模式的资源符号名前面加上RLIMIT_ char *plusrlimit (char *pattern); // 输出模式的含义,采用选项-o时,outf为1;否则为0 void printpm (int outf); 4.2 在调用库函数sqrt(x)时,如果x当前的值小于零,则会导致定义域错误。 如果你的程序还调用了strerror函数或perror函数,则有可能在标准输出看到如下错误消息: Math argument out of domain of func 这一错误消息在头文件/usr/include/asm-generic/errno-base.h中列出: #define EDOM 33 /* Math argument out of domain of func */ 其符号名和代码分别是EDOM和33,错误消息实际上是错误的含义。 errno-base.h共列出34个错误,而头文件errno.h中的错误代码为35-131。 类似地,头文件/usr/include/bits/signum.h中定义了信号的符号名和代码。 例如:只要从键盘按下Ctrl-C键,系统就把信号SIGINT发送给当前进程,提前结束运行。 此信号的定义如下: #define SIGINT 2 /* Interrupt (ANSI). */ 头文件/usr/include/asm-generic/resource.h也用同样的方式列出资源限制,例如:

Linux常用

常见问题 linux—注销已登录的用户 在使用电脑的时候,发现自己的电脑上有其他的用户登陆。如果其他用户用的是自己的名字,那么就能通过who去查询出来,但是如果登陆的都是root用户,那么肯定不知道是谁,所以需要我们清除他们;另外呢,如果登陆的用户突然断掉,那么肯定会有过期的登陆信息需要清除 方法一: 1,查明登陆端口; # who root pts/1 Apr 8 00:06 (172.29.0.29) root pts/2 Apr 8 04:15 (172.29.0.21) 2,通知该用户将要关闭他: # echo "I will close your connection" > /dev/pts/2 这样他的终端将显示该信息。 3,关闭用户连接 # fuser -k /dev/pts/2 方法二: 事项:远程通过SSH注销已登录的用户 #who –s #pkill –kill –t pts/x (X就是对应你kill用户号) 文件和文件夹重命名 rename 1.1、rename命令用字符串替换的方式批量改变文件名 1.2、语法

rename(参数) 1.3、重命名 2.2支持通配符 mv 1.1、mv 重命名 1.2、用法 用法:mv [选项]... [-T] 源文件目标文件 或:mv [选项]... 源文件... 目录 或:mv [选项]... -t 目录源文件... 1.3、参数 必选参数对长短选项同时适用。 --backup[=CONTROL] 为每个已存在的目标文件创建备份-b 类似--backup 但不接受参数 -f, --force 覆盖前不询问 -i, --interactive 覆盖前询问 -n, --no-clobber 不覆盖已存在文件 如果您指定了-i、-f、-n 中的多个,仅最后一个生效。 --strip-trailing-slashes 去掉每个源文件参数尾部的斜线 -S, --suffix=SUFFIX 替换常用的备份文件后缀 -t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY -T, --no-target-directory treat DEST as a normal file -u, --update move only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done -Z, --context set SELinux security context of destination file to default type 1.4、示例 #w.text重命名为yy.text #mv w.text yy.text 解压缩rar文件

Linux常用命令练习

Linux常用命令练习一.相关理论 1.Linux目录结构

2.命令的使用方式 在Linux系统中打开终端的方式有以下两种: 一种是在桌面上依次单击“应用程序→附件→终端”可打开如图的终端窗口;另一种是在Linux桌面上单击鼠标右键,从弹出的快捷菜单中选择“终端”命令,也可打开终端窗口。

3.获取命令帮助 命令man 语法:man (command) 功能:查阅指定命令或资源的联机手册。 说明:man命令后直接跟需要帮助的命令所需参数,显示过程中按q退出。 例man ps 4.常用的文件操作命令包括: (1) pwd 功能说明:显示工作目录。 语法:pwd 补充说明:执行pwd指令可得知工作目录的绝对路径名称。 (2) cd 功能说明:切换目录。 语法:cd [目的目录] 补充说明:cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。 (3) ls 功能说明:列出目录内容。 语法:ls [-1aAcdlrR] 补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。 参数: -1 每列仅显示一个文件或目录名称。 -a 显示下所有文件和目录。 -A 显示所有文件和目录,但不显示现行目录和上层目录。 -c 以更改时间排序,显示文件和目录。 -d 显示目录名称而非其内容。 -l 使用详细格式列表。 -r 反向排序。 -R 递归处理,将指定目录下的所有文件及子目录一并处理。

(4) mkdir 功能说明:建立目录 语法:mkdir [-p][--help][--version][-m <目录属性>][目录名称] 补充说明:mkdir可建立目录并同时设置目录的权限。 参数: -m<目录属性>或--mode<目录属性> 建立目录时同时设置目录的权限。 -p 若所要建立目录的上层目录目前尚未建立,则一并建立上层目录。 --help 显示帮助。 --verbose 执行时显示详细的信息。 --version 显示版本信息。 (5) rmdir 功能说明:删除目录。 语法:rmdir [-p][--help][--verbose][--version][目录...] 补充说明:当有空目录要删除时,可使用rmdir指令。 参数: -p或--parents 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删 除。 --help 在线帮助。 --verbose 显示指令执行过程。 --version 显示版本信息。 (6) cp 功能说明:复制文件或目录。 语法:cp [-adfilpPrRsv] [--help] [--version][源文件或目录][目标文件或目录] [目的目录] 补充说明:cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。 参数: -a 此参数的效果和同时指定"-dpR"参数相同。 -d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指 向与源文件或目录连接的原始文件或目录。

Linux应用编程手册

LINUX 应用编程函数自学手册

第1类时间编程类 (3) 1.1 获取日历时间 (3) 1.2 获取格林威治时间 (3) 1.3 获取本地时间 (4) 1.4 以字符串方式显示时间 (4) 1.5 获取高精度时间 (5) 第2类系统调用文件编程类 (6) 2.1 打开文件 (6) 2.2 创建文件 (7) 2.3 关闭文件 (8) 2.4 读文件 (9) 2.5 写文件 (9) 2.6 定位文件 (10) 2.7 复制文件描述符 (11) 第3类库函数文件编程类 (12) 3.1 打开文件 (12) 3.2 关闭文件 (13) 3.3 读文件 (14) 3.4 写文件 (14) 3.5 定位文件 (15) 第4类多进程编程类 (17) 4.1 创建进程 (17) 4.2 创建进程 (18) 4.3 进程等待 (18) 4.4 执行程序 (19) 第5类管道通讯编程类 (20) 5.1 创建无名管道 (20) 5.2 创建有名管道 (21) 5.3 删除有名管道 (21) 第6类信号通讯编程类 (23) 6.1 发送信号 (23) 6.2 处理信号 (23) 第8类信号量编程类 (24) 8.1 创建/打开信号量集合 (24) 8.2 操作信号量 (25) 8.3 获取键值 key (26) 8.4操作信号量 (27)

第1类时间编程类1.1 获取日历时间 1.1.1 函数名 time 1.1.2 函数原形 time_t time(time_t *t) 1.1.3 函数功能 返回日历时间 1.1.4 所属头文件 1.1.5 返回值 成功:返回日历时间失败:-1 1.1.6 参数说明 t:不为空的情况下保存返回值 1.2 获取格林威治时间 1.2.1 函数名 gmtime 1.2.2 函数原形 Struct tm* gmtime(const time_t *timep) 1.2.3 函数功能 将参数timep所指定的日立时间转化为标准时间1.2.4 所属头文件

Linux应用基础模拟试题

Linux应用基础模拟试题二 一、单项选择题(每小题分,共40题,计60分) BCDBD CAAAC DAADD BBCDA BBDBA CBADC DABAC ABBDB 1、ldconfig的配置文件是( B )。 A、 /lib/lD、so B、 /etc/LD、 C、 /etc/l D、 D、 /etc/ 2、下面哪个命令可以压缩部分文件( C )。 A、 tar -dzvf * B、 tar -tzvf * C、 tar -czvf * D、 tar -xzvf * 3、网络服务的daemon是( D )。 A、 lpd B、 netd C、 httpd D、 inetd 4、Linux与windows 95的网上领居互联,需要提供什么daemon( B )? A、 bind B、 smbd C、 nmbd D、 shard 5、对于Apache服务器,提供的子进程的缺省的用户是( D )。 A、 root B、 apached C、 httpd D、 nobody 6、sendmail中缺省的未发出信件的存放位置是( C )。 A、 /var/mail/ B、 /var/spool/mail/ C、 /var/spool/mqueue/ D、 /var/mail/deliver/ 7、apache的主配置文件是( A )。 A、 httpD、conf B、 httpD、cfg C、 D、 8、关于可装载的模块,装载时的参数,如I/O地址等的存放位置是( A )。 A、 /etc/ B、 /etc/ C、 /boot/ D、 /etc/sysconfig 9、在 Linux 中,如何关闭邮件提示( A )? A、 biff n B、 mesg n C、 notify off D、 set notify=off 10、在 bash shell 环境下,当一命令正在执行时,按下 control-Z 会( C )。 A、中止前台任务 B、给当前文件加上 EOF. C、将前台任务转入后台 D、注销当前用户 11、定义bash环境的用户文件是( D )。 A、 bash & .bashrc B、 bashrc & .bash_conf C、 bashrc & bash_profile D、 .bashrc & .bash_profile 12、下面哪条命令用来显示一个程序所使用的库文件( A )? A、 ldd B、 ld so C、 modprobe D、 ldconfig

LINUX常用命令

档案目录管理 名称: cd 使用权限: 所有使用者 使用方式: cd [dirName] 说明: 变换工作目录至dirName。其中dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory (也就是刚login 时所在的目录)。 另外,"~" 也表示为home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。 范例: 跳到/usr/bin/ : cd /usr/bin 跳到自己的home directory : cd ~ 跳到目前目录的上上两层: cd ../.. cd - 返回进入当前目录前所在目录 名称:df 使用权限: 所有使用者> 使用方式: df [选项]... [FILE]... 显示档案系统的状况,或是看所有档案系统的状况(预设值) -a, --all 包含所有的具有0 Blocks 的档案系统 --block-size={SIZE} 使用{SIZE} 大小的Blocks -h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...) -H, --si 很像-h, 但是用1000 为单位而不是用1024 -i, --inodes 列出inode 资讯,不列出已使用block -k, --kilobytes 就像是--block-size=1024 -l, --local 限制列出的档案结构 -m, --megabytes 就像--block-size=1048576 --no-sync 取得资讯前不sync (预设值) -P, --portability 使用POSIX 输出格式 --sync 在取得资讯前sync -t, --type=TYPE 限制列出档案系统的TYPE -T, --print-type 显示档案系统的形式

入门学习Linux常用必会60个命令实例详解

入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。 -------------------------------------------------------------------------------- Linux必学的60个命令(1)-安装与登陆命令 login 1.作用 login的作用是登录系统,它的使用权限是所有用户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数

嵌入式Linux应用:概述

Embedded Linux applications: An overview Linux now spans the spectrum of computing applications, including IBM's tiny Linux wrist watch, hand-held devices (PDAs and cell phones), Internet appliances, thin clients, firewalls, industrial robotics, telephony infrastructure equipment, and even cluster-based supercomputers. Let's take a look at what Linux has to offer as an embedded system, and why it's the most attractive option currently available. One. Emergence of embedded systems The computers used to control equipment, otherwise known as embedded systems, have been around for about as long as computers themselves. They were first used back in the late 1960s in communications to control electrome chanical telephone switches. As the computer industry has moved toward ever smaller systems over the past decade or so, embedded systems have moved along with it, providing more capabilities for these tiny machines. Increasingly, these embedded systems need to be connected to some sort of network, and thus require a networking stack, which increases the complexity level and requires more memory and interfaces, as well as, you guessed it, the services of an operating system. Off-the-shelf operating systems for embedded systems began to appear in the late 1970s, and today several dozen viable options are available. Out of these, a few major players have emerged, such as VxWorks, pSOS, Neculeus, and Windows CE. Two. Advantages/disadvantages of using Linux for your embedded system Although most Linux systems run on PC platforms, Linux can also be a reliable workhorse for embedded systems. The popular "back-to-basics" approach of Linux, which makes it easier and more flexible to install and administer than UNIX, is an added advantage for UNIX gurus who already appreciate the operating system because it has many of the same commands and programming interfaces as traditional UNIX. The typical shrink-wrapped Linux system has been packaged to run on a PC, with a

相关文档