解析嵌入式Linux开发常用的实用命令

时间:2011-09-03

 

  嵌入式 Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快,linux是可以定制的,其系统内核只有约134KB.第三,Linux是的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU.而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中常用的TCP/IP协议有完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。

  用samba配置网络共享Author:

  1.在网络服务配置中使能samba服务

  方法一,配置网络服务:#setup ,到相应的网络服务中选中samba即可

  方法二,#service smb  start //启动samba服务#service smb  restart //重启samba 服务

  可以通过命令 #service smb status 查看是否启动了samba服务;

  可以通过命令netstat查看samba默认的端口是否打开,如: #netstat -an | grep 901

  2. 建立samba用户

  l#smbadduser user1:user2

  其中user1是Linux系统中使用的用户名,user2是Window系统中使用的用户名(即Samba的共享名),尽量使用相同的名字以免记错。

  l#smbpasswd user //修改用户的密码 + #smbpasswd -a -e qxbing  //添加用户并使能用户

  注:刚开始时不能连接到qxbing的home目录,通过查看/etc/samba目录下的smbpasswd文件知道还需要开通用户服务(#cat /etc/samba/smbpasswd 发现用户qxbing用了[UD]字段,其中D意为account disabled),用#smbpasswd -e qxbing  //使能用户qxbing

  3. 配置samba系统

  可以从Web浏览器中对samba进行配置,确认已经安装了samba-swat组件并开启了swat服务(默认下都已经安装了)。在Web浏览器地址栏中输入:https://192.168.21.63:901 就可以连接到samba的Web界面了,在http上面可以对samba进行配置了。

  4. 从Window系统上访问共享目录

  先查看"本地连接-属性"中的"Microsoft 网络客服端"是否选中,如果没有则点击"安装"安装它。

  这时在window的Dos命令界面("开始-运行")中输入:就可以打开设置的共享目录了。其中192.168.21.63是Linux系统的IP地址(即Samba服务器端的IP地址),qxbing是刚才配置用户名。

  为了避免每次登录时都输入IP+用户名,可以从"工具-映射网络驱动器"中输入和密码就可以每次从"我的电脑"中登录了。

  5.Swat服务的启动

  Swat是samba的图形化配置工具,通常使用xinetd服务启动swat,可以通过编辑/etc/xinetd.d/swat这个配置文件,然后再重启xinetd服务就可以启动swat服务了。修改swat的配置文件 #vi  /etc/xinetd.d/swat

  其配置文件的内容如下:

  service swat

  {

  disable    =   yes

  port       =   901

  socket_type=   stream

  wait       =   no

  user       =   root

  server     =   /usr/sbin/swat

  log_on_failture= USERID

  only_from  =  127.0.0.1

  }

  修改这个配置文件,把[disable] 字段的yes改为no,它表示是否提供swat服务。把[only_from  =  127.0.0.1] 这一行注释掉或删除掉,它表示只让本网卡使用。

  ,重启xinetd服务 #service xinetd restart  或重新载入配置文件 #service xinetd reload

  CVS的使用

  CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。CVS的基本工作思路是这样的:在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。由源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件到本地,然后用户可以在本地任意修改,用CVS命令进行提交,由CVS源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。

    1.创建cvs仓库

  #mkdir /cvsroot

  #chmod 777 /cvsroot

  $cvs –d /cvsroot init

  $export CVSROOT=/cvsroot

  首先使用root帐户在根目录下创建一个cvsroot目录,并修改目录访问权限为所有人都可以访问。再用普通用户创建并初始化cvs仓库。设置CVSROOT环境变量(或在bashrc文件中配置,或/etc/profile文件中配置),供以后使用。

  2.向cvsroot中添加目录

  $cd /home/qibing/myproject

  $cvs import –m "first time" myproject v1 r1

  到需要加到cvs中的工程目录下,允许import命令把目录下的所有文件和目录添加到cvs的管理中。注意,尽量删除掉myproject目录下对编译和make没有影响的文件和目录,比如。o、。dep、可执行文件等等,包括COPYING等根据系统automake或autoconf生成的文件和目录。

  3.使用cvs

  $mkdir /home/qibing/cvsroot

  $cd /home/qibing/cvsroot

  $cvs  checkout  myproject

  先在自己的目录下创建一个用于cvs管理的目录cvsroot,这时可以从cvs服务器上checkout工程目录了。

  下面是几个经常用到的cvs管理的命令,下面的命令都是在本地cvs工程目录myproject中使用,

  $cvs up –AC

  更新至主线

  $cvs tag –b mytag

  在主线上打分支标签mytag

  $cvs up –r mytag

  进入到分支mytag中,此后的修改都是在分支上进行

  $cvs up –j mytag

  把分支mytag的修改合入到主线,并更新至主线

  $cvs st –v | more

  查看打过的标签,包括主线和分支;和当前所在的分支标签或主线

  $cvs ci –m "something words"

  把修改合入到当前所在的分支标签或主线上

  $cvs tag mymaintag

  在主线上打标签,以标记软件版本或开发的阶段

  $cvs up ./

  检查是否有冲突

  $cvs diff

  显示当前修改与当前tag的不同

  $cvs –z3 diff –uBb

  显示当前修改与当前tag的不同,显示的更详细一些

  4.向cvsroot中添加新加的文件

  $cd /home/qibing/cvsroot/myproject

  $cvs  add  file.c

  $cvs  commit –m "first add" file.c

  首先到本地cvs目录中,用add命令添加文件,再把此文件commit上到cvs中。

  Linux系统配置

    1.配置ip地址

  l#ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.255.0  // 配置eth0的IP地址和子网掩码

  l运行 #setup 从界面中配置,选择网络配置对网络进行配置

  l修改文件 /etc/sysconfig/network-script/ifcfg-eth0 中的字段对eth0进行配置,其内容为:

  DEVICE   =  eth0

  ONBOOT   =  yes

  BOOTPROTOL = static

  IPADDR   =  192.168.21.63

  NETMASK  =  255.255.255.0

  GATEWAY  =  192.168.21.1

  如果仅配置基本的网络配置,还可以配置修改文件 /etc/sysconfig/network

  注:要为单网卡系统配置多个IP,则使用虚拟设备名,例如建立文件 /etc/sysconfig/network-script/ifconfig-eth0:1 ,并在文件中加上/etc/sysconfig/network-script/ifcfg-eth0中的内容即可。

  l配置完后,到/etc/rc.d/init.d 目录下重启相应的网络服务,

  #./network  restart

  #./xinetd  restart

  2.配置超级网络服务xinetd

  xinetd的配置文件为 /etc/xinetd.conf ,一般通过配置 /etc/xinetd.d 目录下的各个网络服务配置文件来启动各个相应的网络服务,再重启xinetd服务或重新载入xinetd的配置文件

  i#service xinetd restart

  或 #service xinetd reload

  注:其相应字段的解释为

  i wait = no  // 设置该服务是否为多线程,no为多线程,yes为单线程

  ii user = xx  // 指定服务进程的 UID

  iii group=xx   // 指定服务进程的 GID

  iV log_on_failture // 指定当客服端连接失败时的日志记录选项,ATTEMPT (记录失败的尝试),HOST(记录客服端的IP),USERID(记录客服端的用户UID),RECORD(记录附加的客户信息)

  V    port = xx   // 指定该服务使用的端口

  3.使用telnet服务

  Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

  i #rpm -q telnet-server

  查看是否安装了telnet-server包

  ii 修改telnet的配置文件/etc/xinetd.d/telnet

  如果只是简单地启动telnet服务,只需要将disable属性值改为no

  其他字段的解释为:

  only_from = 192.168.21.33

  access_times = 8:00-18:00

  表示只允许IP地址192.168.21.33访问,而且访问的时间必须在8:00-18:00之间。

  iii  如何在Window系统中连接telnet服务器

  从"开始-程序-附件-通讯"中选择"超级终端",选择超级终端的"连接时使用"选项中的 TCP/IP(winsock),再输入要连接的telnet服务器的IP地址即可(telnet默认使用端口为23)。在超级终端中跟在shell中一样地运行Linux的命令

  注:可以在日志文件 /var/log/messages中查看网络服务信息。

  4.怎样配置nfs服务器

  NFS是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。

  编辑NFS的配置文件,10.12.43.40服务器上支持NFS:

  编辑 /etc/exports 加入

  /opt/platform/bin 10.12.43.77(rw,sync,no_root_squash) //设定可以加载的目录和板子的IP,其中10.12.43.77为板子的IP地址

  然後执行

  # /etc/init.d/nfs restart    或 #service nfs restart

  此时在板子上可以利用# mount -t nfs 10.12.43.40:/opt/platform/bin /mnt 确认是否成功启动NFS Server (10.12.43.40为Linux主机的IP位址)

  注:exports中内容的解释,

  l /opt/platform/bin 是提供服务的主机要共享的目录。

  l10.12.43.75(rw,sync,no_root_squash)是确定哪些计算机可以访问共享目录。可以写多个主机名,但他们之间要有空格,如:

  /opt/platform/bin 10.12.43.75(rw,sync,no_root_squash) 10.12.43.77(rw,sync,no_root_squash)

  个(rw,sync,no_root_squash)后面有一个空格。

  /etc/exports的访问选项

  ro 可读写导出这个文件系统

  rw 只读导出这个文件系统

  /etc/exports的例子:

  /opt/platform/target_mv 10.12.43.77(rw,sync)

  /opt/platform/root_minigui 10.12.43.77(rw,sync)

  /opt/platform/root_minigui 10.12.13.250(rw,sync,no_root_squash)

  /opt/platform/bin 10.12.43.77(rw,sync)

  /opt/platform/target_mv 10.12.43.44(rw,sync,no_root_squash)

  /opt/platform/bin 10.12.43.44(rw,sync,no_root_squash)

  /opt/platform/bin 10.12.43.34(rw,no_root_squash)

  /opt/platform/bin 10.12.43.88(rw,sync,no_root_squash)

  用户机的配置,使机器每次重启自动安装nfs文件系统

  要使机器每次启动时自动安装nfs文件系统,需要把这个nfs文件系统加一个项目到/etc/fstab文件上。如:

  qibing /mnt/nfs  nfs   noauto,ro 0     0

  5.怎样配置tftp服务器

  TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69.TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。

  配置tftp的配置文件

  tftp的配置文件在/etc/xinetd.d/tftp配置文件。

  tftp配置文件的内容是:

  # default: off

  # description: The tftp server serves files using the trivial file transfer \

  #  protocol.  The tftp protocol is often used to boot diskless \

  #  workstations, download configuration files to network-aware printers, \

  #  and to start the installation process for some operating systems.

  service tftp

  {

  disable= no

  socket_type= dgram

  protocol= udp

  wait = yes

  user= root

  server= /usr/sbin/in.tftpd

  server_args= -s /tftpboot

  per_source= 11

  cps= 100 2

  flags= IPv4

  }

  可以在这里配置共享的目录/tftpboot等信息。

  启动tftp服务

  运行命令#/etc/init.d/xinetd restart 就可以启动tftp服务了,因为tftp需要xinetd的支持。

  6.Linux系统配置及命令

  u如何修改中英文设置

  i 修改文件/etc/sysconfig/i18n 中的相应字段,其内容为

  LANG="zh_CN.UTF-8"

  SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"

  SYSFONT="latarcyrhed-sun16"

  修改其中的LANG后面的为en_US就可以改为英文语言了

  u修改系统启动的默认级别,修改文件/etc/inittab中的 id:5:initdefault,把其中的5改为3就是字符界面启动了

  u命令#which xxx 可以查看命令xxx 在哪个目录下的bin文件。如#which locale 则输出/usr/bin/locale.

  u解压bzip文件,用file命令可以查看压缩文件的类型。解压tar文件,

  #bunzip2 xxx.tar // 生成 xxx.tar.out文件

  #tar -xvf xxx.tar.out // 解压xxx.tar.out文件

  7.Linux任务管理

  u       Cron建立任务计划

  #service crond start启动cron

  #service crond stop 重启cron

  #service crond reload 重载cron守护进程的配置文件

  或直接在/etc/rc.d/rc.local脚本末添加service crond start 使得开机自动运行。文件 /etc/crontab是cron服务的配置文件。用命令#crontab -e 可以编辑自己的crontab文件。其格式为:

  分钟 小时 日 月 周  [用户名] 命令

  */10   6-8  1,15  *   *   ls> /tmp/messagetxt

  注:前五个位置分别代表分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)和星期(0-6),其中用户名可以省略。上面格式表示:1号和15号,早上6点到8点,每个10分钟,执行命令ls >/tmp/message.txt.该文件编辑完后不必再重启crond.

  uAt命令

  可以用命令 #rpm -q at 查看at软件是否安装了,#service atd start 开启at服务,然后配置at.

  首先键入 #at time 命令,time按照以下几种格式:

  HH:MM 小时:分钟,时间后面可以跟AM和PM

  MMDDYY,MM/DD/YY, MM.DD.YY, 月日年

  英文"月份 日期 年份"比如:Juanuary 15 2007 ,年份可有可无。

  +时间,时间以minutes, hours, days或weeks为单位,如:at 1:00 PM + 1days,则表示在一天后的1:00 PM 执行。

  Midnight表示12:00AM,moon表示:12:00 PM,teatime表示4:00 PM

  在输入at time 命令后会出现at> 提示符,则在此输入需要执行的命令,回车,按ctrl+D,依次反复,按ctrl+D退出。

  Batch服务是系统负荷在0.8以下时执行某项任务

  输入 #batch 出现at>提示符,然后输入需要执行的命令即可。

  /etc/at.allow和/etc/deny文件

  这两个文件是来限制用对at和batch的访问而使用的,每一行一个用户名,不允许有空行。如果没有在at.allow文件中出现,则所有在at.deny文件中出现的用户都将禁止对at和batch的访问。

  u       查询任务

  #atq          :查询将要执行的任务及他们的任务号

  #atrm  任务号 :删除对应任务号的任务

 



  
上一篇:ZigBee开发3D眼镜与电视连接的方案
下一篇:抛弃传统嵌入式LabVIEW助力工程师进行系统开发

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料