第一节 在手机上配置Python运行环境
1.下载和*** Scripting Layer for Android (SL4A)
Scripting Layer for Android (SL4A) 是一个开源项目,目标是为android系统提供脚本语言的支持,使用户可以直接在android平台上进行脚本语言的编辑、解释和执行。这些脚本语言已经可是使用很多封装好的android API来开发功能丰富的android应用程序,并且使开发变得更加的简单和高效!这个平台支持多种脚本语言,比如 Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, shell 等,你可以选择你熟悉的语言进行开发,本系列教程使用Python为编程脚本语言SL4A项目的地址:页面打开后,你可以选择用手机扫描该页面的二维码将应用直接下载并***到手机上,或者点击二维码图片,将应用下载的电脑上在传输到手机上***。你要是懒得去项目主页,直接扫描下图的二维码即可:
2.下载和*** Python for android
在项目主页面的右上方,有该应用支持的所有脚本语言的下载列表,如下图所示;选择你使用的语言,打开相应的语言环境的下载页面,与下载SL4A的方式类似,将该语言包应用下载并***到你的手机上。我打开的是Python的页面,如下图所示:程序***完成后,打开Python for Android应用,在应用的最上方会有一个Install的按钮,点击该按钮,就会自动下载Python相关的文件并解压和***,这个过程结束后,你的android手机上的Python开发环境就配置好了!
3.第一个HelloWorld程序
打开SL4A应用,会进入Python示例代码列表,基本上是对主要API的演示,部分示例可能由于偏老,运行时会提示方法过期或者运行异常的问题,这个至少修改少许代码即可,有机会的话,我会在后续课程中介绍这是示例以及修正的方法。点Menu键,然后点击Add,选择Python2.6.2,就会新建一个Python脚本文件,将文件的名字命名为:HelloPythonInAndroid.py点击屏幕进入脚本编辑区,开始输入如下内容:
import androiddroid = android.Android()droid.makeToast(&Hello, Python in Android&)
输入完成后,如下图所示:
点击Menu,选择Save&Run,恭喜你,你已经用Python完成了第一个Android应用:HelloPythonInAndroid!
第二节 第一个有实用价值的应用
1.python预备知识
单行注释使用#号,#以后的内容是注释,不会被解释器解释执行执行;import语句用来导入模块,后面跟模块名;python中的变量不需要声明类型,变量被赋值之后类型会自动指定,这也是动态语言的特性之一;
元组,python基本数据结构之一,使用这样的形式表示:元组1=(数据1,数据2,数据3)元组一旦生成后就不能修改了元组可以嵌套包括他自己在内的所有列表类型的数据集合,如:元组2=(元组1,数据4,数据5)元组中数据的获取方法: 元组名[索引编号]
字典,python基本数据结构之一,使用这样的形式表示:字典1={键1:值1,键2:值2,键3:值3}字典可以嵌套包括他自己在内的所有列表类型的数据集合字典中数据的获取方法:字典名[键名] 或者 字典名[索引编号]
格式化字符串:字符串中的%s会被后面的对象替换掉,例如:&Hello,%s& % &PuLee&最后返回的结果是:Hello,PuLee注意两个字符串之间的那个%号不要漏掉了!
2.图书价格查询器的功能分析
第一步:调用条形码扫描程序,扫描书的条形码,然后从条形码中获得书籍的ISBN编号
第二步:构造查询书籍价格的Url地址,使用豆瓣的图书搜索功能
第三部:打开浏览器,传入构造好的Url地址,返回查找的结果
3.图书价格查询器的设计实现
实现代码如下:#导入Android的API模块import android#获得操作对象droid = android.Android()#运行扫描程序,返回一个元组code = droid.scanBarcode()#从扫描程序返回的元组中取得isbn编号isbn = code[1]['extras']['SCAN_RESULT']#构造查询书籍的Urlurl = &/subject_search?search_text=%s&cat=1001& % isbn#打开浏览器,传入构造好的Url,返回查找结果droid.startActivity(&android.intent.action.VIEW&,url)
最后的返回的查询结果:
第三节 在电脑上编写程序在手机上运行
最手机上写脚本是一件每场辛苦的事情,虽然SL4A人性化的为我们提供了API快速插入功能,并且优美的Python为我们省去了输入分号和括号之苦,但是没有智能感知,没有关键字补全,狭小的按键,输入符号的困难,还是让我没有勇气去在手机上写超过50行的程序.改为在电脑上编写代码,再复制到手机上运行!那么,如何快速的将PC上编写的代码发送到手机上呢?
1. 一些传统的方法
1.1 数据线这个就不用我多说了吧,应该都会的,但是随身带数据线是件很麻烦的事情,所以应该再找些其他方法!1.2 wifi和数据线原理差不多,很多的android的PC客户端都已经支持通过wifi连接手机了,比如豌豆荚,但是不是哪里都有wifi的.1.3使用具有网络同步功能的笔记管理软件通过笔记管理软件,比如,在pc端编写好脚本,上传,然后再在手机上下载下来,粘帖到SL4A中.
2.将程序的代码生成二维码图片
上面的几种方法要么对硬件有要求(数据线,无线路由),要么要下载额外的软件(笔记管理软件),都比较麻烦,其实SL4A的作者也考虑到了这个问题,为我们提供了一种很有趣的代码输入方式:扫描二维码!
方法如下:1. 打开二维码生成页面:,在Contents后面的下拉列表中选择:Text2. 在Text content 后文本区的第一行输入脚本的名称,比如:HelloWorld.py3. 在他的下方输入脚本的内容.4. 在Barcode size 后的下拉列表中选择:L5. 点击Gernerate 生成二维码6. 将右边生成的二维码保存或者与你的朋友们分享!生成的二维码如图所示:
3. 使用手机扫描生成的二维码,并将其转化为py脚本
二维码生成了,如何将它导入手机呢?1.启动SL4A进入脚本列表2.按菜单键(MENU)3.点击Add4.点Scan Barcode5.扫描生成的二维码,脚本便会自动显示在列表中(名称就是第一行的名称)ps:二维码最多容纳的字符为4296个,所以只能用来存放较短的脚本!
另一篇文章:
在Android上用python(Perl、Lua、BeanShell等)编程
&原文来自:/?p=110001
偶然间发现了google code上的一个项目&&
该项目开发了一个叫SL4A(Scripting Layer for Android),也被称为ASE(Android Scripting Environment)的软件
该软件可允许一些脚本语言如python、Perl、Lua、Javascript(甚至可以用BeanShell&&可以解释Java代码了)在android平台上来编写并编译程序。
SL4A还能访问Android API,可以在手机上直接开发Android应用!虽然我还没这能耐,但想想还觉得爽啊。
我还发现可以利用SL4A的服务器或是通过USB,在电脑上写脚本然后发送至手机上运行。()
这是款很好很强大的软件!!&&
下面说说如何在Android上用python写程序。
打开项目主页:&下载SL4A软件。
用手机上的条码扫描器扫描位于正中的条码并在手机里下载,或者点击它下载再通过usb传输到手机去。***它。
接下来,就是增加python语言支持了。
有两种方式***python解释器。
1. 在项目主页右边Featured downloads处选择并将其下载至手机,方法同上,然后在手机上***后执行。执行后是一个黑色界面,上面有 Install 按钮,点击它就会自动下载压缩包。
2. 执行SL4A ,按手机的Menu键,选Interpreters, 再按Menu,选Add,就会出现各种支持的语言了,选Python2.6.2 程序便会自动下载并***。
py文件的执行:
python***后是会有一些范例的,点击便会自动执行,但范例都是Android API的范例。
自己来写一个:
依次按Menu & Add - Python2.6.2
取个名字:hello.py& 下面就可以写代码了,第一个程序当然是hello world&& ~/(???)/~啦啦啦
代码如下:
print &hello world&
按Menu,Save&Run ,屏幕就出现结果了。&
至此,手机就可以用python写程序啦,***其他语言也是同理。
在Interpreters里直接点击Python 2.6.2的话,可进入python命令行界面,可以直接执行代码,但还是建议新建py文件,因为在命令行界面下不能用全键盘打字,打命令很痛苦:(
Android API:
感谢这新闻,让我知道了这一好东西:
阅读(...) 评论()安卓Android系统超级终端命令行大全_android开发_ThinkSAAS
安卓Android系统超级终端命令行大全
安卓Android系统超级终端命令行大全
/tag/%E5%AE%89%E5%8D%93android%E7%B3%BB%E7%BB%9F%E8%B6%85%E7%BA%A7%E7%BB%88%E7%AB%AF%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%A4%A7%E5%85%A8free1.作用free命令用来显示内存的使用情况,使用权限是所有用户。2.格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V]3.主要参数-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。-s delay:显示每隔多少秒数来显示一次内存使用情况。-t:显示内存总和列。-o:不显示缓冲区调节列。4.应用实例free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。#free -b -s5使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。 Android系统在超级终端下必会的命令大全(一)
busybox BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。 1、 BusyBox 的诞生 BusyBox 最初是由 Bruce Perens 在 1996 年为 Debian GNU/Linux ***盘编写的。其目标是在一张软盘上创建一个可引导的 GNU/Linux 系统,这可以用作***盘和急救盘。 2、busybox的用法 可以这样用busybox #busybox ls 他的功能就相当运行ls命令 最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能. #ln -s busybox ls #ln -s busybox rm #ln -s busybox mkdir 然后分别运行这三个链接: #./ls #./rm #./mkdir 就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox,但是只要链接名不同,完成的功能就不同,很多linux网站都提供busybox的源代码下载。 3、配置busybox busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手. #cp busybox-1.00.tar.gz /babylinux #cd /babylinux #tar xvfz busybox-1.00.tar.gz #cd busybox-1.00 #make menuconfig 下面是需要编译进busybox的功能选项。 General Configuration应该选的选项 Show verbose applet usage messages Runtime SUID/SGID configuration via /etc/busybox.conf Build Options Build BusyBox as a static binary (no shared libs) 这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作. Installation Options Don’t use /usr 这个选项也一定要选,否则make install 后busybox将***在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接. 其它选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。 4、编译并***busybox #make #make install 编译好后在busybox目录下生成子目录_install,里面的内容: drwxr-xr-x 2 root root 4096 11月 24 15:28 bin rwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -& bin/busybox drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin 其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接. Android系统在超级终端下必会的命令大全(二) 一、***和登录命令 reboot1.作用reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。2.格式reboot [-n] [-w] [-d] [-f] [-i]3.主要参数-n: 在重开机前不做将记忆体资料写回硬盘的动作。-w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。-d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。-i: 在重开机之前先把所有与网络相关的装置停止。 mount1.作用mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。2.格式mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir3.主要参数-h:显示辅助信息。-v:显示信息,通常和-f用来除错。-a:将/etc/fstab中定义的所有文件系统挂上。-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。-t vfstype:显示被加载文件系统的类型。-n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。4.应用技巧在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版***了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。(1)Linux可以识别的文件系统◆ Windows 95/98常用的FAT 32文件系统:vfat ;◆ Win NT/2000 的文件系统:ntfs ;◆ OS/2用的文件系统:hpfs;◆ Linux用的文件系统:ext2、ext3;◆ CD-ROM光盘用的文件系统:iso9660。虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。(2)确定设备的名称在Linux中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是FloppyDisk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、hdd。hda1中的“1”代表hda的第一个硬盘分区(partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查/var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。(3)查找挂接点在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(MountPoint)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat):软盘 ===&mount -t ext2 /dev/fd0 /mnt/floppycdrom ===&mount -t iso9660 /dev/hdc /mnt/cdromSCSI cdrom ===&mount -t iso9660 /dev/sdb /mnt/scdromSCSI cdr ===&mount -t iso9660 /dev/sdc /mnt/scdr不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount1.作用umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。2.格式unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir3.使用说明umount命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD--ROM,这样就不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。 exit1.作用exit命令的作用是退出系统,它的使用权限是所有用户。2.格式exit3.参数exit命令没有参数,运行后退出系统进入登录界面。 Android系统在超级终端下必会的命令大全(三) 二、文件处理命令mkdir1.作用mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。2.格式mkdir [options] 目录名3.[options]主要参数-m, --mode=模式:设定权限,与chmod类似。-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。-v, --verbose:每次创建新目录都显示信息。--version:显示版本信息后离开。4.应用实例在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:$ mkdir -m 777 tskgrep1.作用grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大小写(只适用于单字符)。-h:查询多文件时不显示文件名。-l:查询多文件时只输出包含匹配字符的文件名。-n:显示匹配行及行号。-s:不显示不存在或无匹配文本的错误信息。-v:显示不包含匹配文本的所有行。pattern正则表达式主要参数::忽略正则表达式中特殊字符的原有含义。^:匹配正则表达式的开始行。$: 匹配正则表达式的结束行。:到匹配正则表达式的行结束。[ ]:单个字符,如[A]即A符合要求 。[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。。:所有的单个字符。* :有字符,长度可以为0。正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。4.应用实例查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3}.[0-0{3}。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。$grep ’[0-9 ]{3 }.[0-0{3}’ ipfile补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持q模式范围的应用及与之相对应的一些更加规范的模式。dd1.作用dd命令用来复制文件,并根据参数将数据转换和格式化。2.格式dd [options]3.[opitions]主要参数bs=字节:强迫 ibs=及obs=。cbs=字节:每次转换指定的。conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。count=块数目:只复制指定的输入数据。ibs=字节:每次读取指定的。if=文件:读取内容,而非标准输入的数据。obs=字节:每次写入指定的。of=文件:将数据写入,而不在标准输出显示。seek=块数目:先略过以obs为单位的指定的输出数据。skip=块数目:先略过以ibs为单位的指定的输入数据。4.应用实例dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:$ rdev vmlinuz /dev/hda$dd if=vmlinuz of=/dev/fd0上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。
find1.作用find命令的作用是在目录中搜索文件,它的使用权限是所有用户。2.格式find [path][options][expression]path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。3.主要参数[options]参数:-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。-mindepth levels:表示至少查找到开始目录的第level层子目录。-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。-version:打印版本。[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。--name:支持统配符*和?。-atime n:搜索在过去n天读取过的文件。-ctime n:搜索在过去n天修改过的文件。-group grpoupname:搜索所有组为grpoupname的文件。-user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。-size n:搜索文件大小是n个block的文件。-print:输出搜索结果,并且打印。4.应用技巧find命令查找文件的几种方法:(1)根据文件名查找例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:find / -name lilo.conffind命令后的“/”表示搜索整个硬盘。(2)快速查找文件根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:find /etc -name smb.conf这样,使用“快速查找文件”方式可以缩短时间。(3)根据部分文件名查找方法有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:find / -name ’*abvd*’输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。(4) 使用混合查找方式查找文件find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。find /etc -size +500000c -and -mtime +1mv1.作用mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。2.格式mv[options] 源文件或目录 目标文件或目录3.[options]主要参数-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。4.应用实例(1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:$ mv /usr/cbu/ * .(2)将文件cjh.txt重命名为wjz.txt:$ mv cjh.txt wjz.txt ls1.作用ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。2.格式ls [options][filename]3.options主要参数-a, --all:不隐藏任何以“.” 字符开始的项目。-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。--author:印出每个文件著作者。-b, --escape:以八进制溢出序列表示不可打印的字符。--block-size=大小:块以指定的字节为单位。-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。-f:不进行排序,-aU参数生效,-lst参数失效。-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。-g:like -l, but do not list owner。-G, --no-group:inhibit display of group information。-i, --inode:列出每个文件的inode号。-I, --ignore=样式:不印出任何符合Shell万用字符的项目。-k:即--block-size=1K。-l:使用较长格式列出信息。-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。-m:所有项目以逗号分隔,并填满整行行宽。-n, --numeric-uid-gid:类似-l,但列出UID及GID号。-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。-Q, --quote-name:将项目名称括上双引号。-r, --reverse:依相反次序排列。-R, --recursive:同时列出所有子目录层。-s, --size:以块大小为序。4.应用举例ls命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色表示是其它格式文件。ls最常使用的是ls- l。文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)。后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s表示当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组ID)。t表示设置标志位(留在内存,不被换出)。如果该文件是目录,那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件,那么在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名称。 Android系统在超级终端下必会的命令大全(四) diff1.作用diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。2.格式diff [options] 源文件 目标文件3.[options]主要参数-a:将所有文件当作文本文件来处理。-b:忽略空格造成的不同。-B:忽略空行造成的不同。-c:使用纲要输出格式。-H:利用试探法加速对大文件的搜索。-I:忽略大小写的变化。-n -rcs:输出RCS格式。cmp1.作用cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。2.格式cmp[options] 文件名3.[options]主要参数-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。cat1.作用cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。2.格式cat [options] 文件1 文件2……3.[options]主要参数-n:由第一行开始对所有输出的行数编号。-b:和-n相似,只不过对于空白行不编号。-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。4.应用举例(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令:$ cat README (2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:$ cat README INSTALL File1(3)cat还有一个重要的功能就是可以对行进行编号。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:$ cat -b /etc/named.confln1.作用ln命令用来在文件之间创建链接,它的使用权限是所有用户。2.格式ln [options] 源文件 [链接名]3.参数-f:链结时先将源文件删除。-d:允许系统管理者硬链结自己的目录。-s:进行软链结(Symbolic Link)。-b:将在链结时会被覆盖或删除的文件进行备份。链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(InodeIndex)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。 Android系统在超级终端下必会的命令大全(五) 系统管理命令df1.作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。2.格式df [options]3.主要参数-s:对每个Names参数只给出占用的数据块总数。-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。-k:以1024字节为单位列出磁盘空间使用情况。-x:跳过在不同文件系统上的目录不予统计。-l:计算所有的文件大小,对硬链接文件则计算多次。-i:显示inode信息而非块使用量。-h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。-P:使用POSIX输出格式。-T:显示文件系统类型。4.说明df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的***点等。超级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%。这是因为Linux系统为超级用户保留了10%的空间,由其单独支配。也就是说,对于超级用户而言,他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作。5.应用实例Linux支持的文件系统非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息:#df -T文件系统 类型 容量 已用 可用 已用% 挂载点/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% //dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C/dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G从上面除了可以看到磁盘空间的容量、使用情况外,分区的文件系统类型、挂载点等信息也一览无遗。top1.作用top命令用来显示执行中的程序进程,使用权限是所有用户。2.格式top [-] [d delay] [q] [c] [S] [s] [n]3.主要参数d:指定更新的间隔,以秒计算。q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。c:显示进程完整的路径与名称。S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。s:安全模式。i:不显示任何闲置(Idle)或无用(Zombie)的行程。n:显示更新的次数,完成后将会退出top。4.说明top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。下面列出了详细解释。PID(Process ID):进程标示号。USER:进程所有者的用户名。PR:进程的优先级别。NI:进程的优先级别数值。VIRT:进程占用的虚拟内存值。RES:进程占用的物理内存值。SHR:进程使用的共享内存值。S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。%CPU:该进程占用的CPU使用率。%MEM:该进程占用的物理内存和总内存的百分比。TIME+:该进程启动后占用的总的CPU时间。Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。:立刻刷新。P:根据CPU使用大小进行排序。T:根据时间、累计时间排序。q:退出top命令。m:切换显示内存信息。t:切换显示进程和CPU状态信息。c:切换显示命令名称和完整命令行。M:根据使用内存大小进行排序。W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。free1.作用free命令用来显示内存的使用情况,使用权限是所有用户。2.格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V]3.主要参数-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。-s delay:显示每隔多少秒数来显示一次内存使用情况。-t:显示内存总和列。-o:不显示缓冲区调节列。4.应用实例free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。#free -b -s5使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。 Android系统在超级终端下必会的命令大全(六) kill1.作用kill命令用来中止一个进程。2.格式kill [ -s signal | -p ] [ -a ] pid …kill -l [ signal ]3.参数-s:指定发送的信号。-p:模拟发送信号。-l:指定信号的名称列表。pid:要中止进程的ID号。Signal:表示信号。4.说明进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解***和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。5.应用实例(1)强行中止(经常使用杀掉)一个进程标识号为324的进程:#kill -9 324(2)解除Linux系统的死锁在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID,然后使用kill命令停止这个程序:#kill -SIGKILL XXX其中,XXX是包含有Mozolla浏览器的程序的进程标识号。(3)使用命令回收内存我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:#kill -9 XXX其中,XXX是无用的进程标识号。然后使用下面命令:#free此时会发现可用内存容量增加了。(4)killall命令Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -HUP inetd四、网络操作命令ifconfig1.作用ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。2.格式ifconfig -interface [options] address3.主要参数-interface:指定的网络接口名,如eth0和eth1。up:激活指定的网络接口卡。down:关闭指定的网络接口。broadcast address:设置接口的广播地址。pointopoint:启用点对点方式。address:设置指定接口设备的IP地址。netmask address:设置接口的子网掩码。4.应用说明ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络,这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给eth0接口IP地址207.164.186.2,并且马上激活它,使用下面命令:#fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令,这个命令将显示机器所有激活接口的信息。带有“-a”参数的命令则显示所有接口的信息,包括没有激活的接口。注意,用ifconfig命令配置的网络设备参数,机器重新启动以后将会丢失。如果要暂停某个网络接口的工作,可以使用down参数:#ifconfig eth0 downip1.作用ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。几乎所有的Linux发行版本都支持该命令。2.格式ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]3.主要参数OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式。目前,ip支持如表1所示选项。OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示。表1 ip支持的选项-V,-Version 打印ip的版本并退出。-s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或多次,则输出的信息将更为详尽。-f,-family 这个选项后面接协议种类,包括inet、inet6或link,强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或any。link比较特殊,它表示不涉及任何网络协议。-4 是-family inet的简写。-6 是-family inet6的简写。-0 是-family link的简写。-o,-oneline 对每行记录都使用单行输出,回行用字符代替。如果需要使用wc、grep等工具处理ip的输出,则会用到这个选项。-r,-resolve 查询域名解析系统,用获得的主机名代替主机IP地址COMMAND设置针对指定对象执行的操作,它和对象的类型有关。一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些对象不支持这些操作,或者有其它的一些命令。对于所有的对象,用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令,ip会使用默认的命令。一般情况下,默认命令是list,如果对象不能列出,就会执行help命令。ARGUMENTS是命令的一些参数,它们倚赖于对象和命令。ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个关键词加一个数值组成。为了方便,每个命令都有一个可以忽略的默认参数。例如,参数dev是ip link命令的默认参数,因此ip link lseth0等于ip link ls dev eth0。我们将在后面的详细介绍每个命令的使用,命令的默认参数将使用default标出。4.应用实例添加IP地址192.168.2.2/24到eth0网卡上:#ip addr add 192.168.1.1/24 dev eth0丢弃源地址属于192.168.2.0/24网络的所有数据报:#ip rule add from 192.168.2.0/24 prio 32777 rejectping1.作用ping检测主机网络接口状态,使用权限是所有用户。2.格式ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址3.主要参数-d:使用Socket的SO_DEBUG功能。-c:设置完成要求回应的次数。-f:极限检测。-i:指定收发信息的间隔秒数。-I:网络界面使用指定的网络界面送出数据包。-l:前置载入,设置在送出要求信息之前,先行发出的数据包。-n:只输出数值。-p:设置填满数据包的范本样式。-q:不显示指令执行过程,开头和结尾的相关信息除外。-r:忽略普通的Routing Table,直接将数据包送到远端主机上。-R:记录路由过程。-s:设置数据包的大小。-t:设置存活数值TTL的大小。-v:详细显示指令的执行过程。ping命令是使用最多的网络指令,通常我们使用它检测网络是否连通,它使用ICMP协议。但是有时会有这样的情况,我们可以浏览器查看一个网页,但是却无法ping通,这是因为一些网站处于安全考虑***了防火墙。另外,也可以在自己计算机上试一试,通过下面的方法使系统对ping没有反应:# echo 1 & /proc/sys/net/ipv4/icmp_echo_ignore_all Android系统在超级终端下必会的命令大全(七) netstat1.作用检查整个Linux网络状态。2.格式netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]3.主要参数-a-all:显示所有连线中的Socket。-A:列出该网络类型连线中的IP相关地址和网络类型。-c-continuous:持续列出网络状态。-C-cache:显示路由器配置的快取信息。-e-extend:显示网络其它相关信息。-F-fib:显示FIB。-g-groups:显示多重广播功能群组组员名单。-h-help:在线帮助。-i-interfaces:显示网络界面信息表单。-l-listening:显示监控中的服务器的Socket。-M-masquerade:显示伪装的网络连线。-n-numeric:直接使用IP地址,而不通过域名服务器。-N-netlink-symbolic:显示网络硬件外围设备的符号连接名称。-o-timers:显示计时器。-p-programs:显示正在使用Socket的程序识别码和程序名称。-r-route:显示Routing Table。-s-statistice:显示网络工作信息统计表。-t-tcp:显示TCP传输协议的连线状况。-u-udp:显示UDP传输协议的连线状况。-v-verbose:显示指令执行过程。-V-version:显示版本信息。-w-raw:显示RAW传输协议的连线状况。-x-unix:和指定“-A unix”参数相同。-ip-inet:和指定“-A inet”参数相同。4.应用实例netstat主要用于Linux察看自身的网络状况,如开启的端口、在为哪些用户服务,以及服务的状态等。此外,它还显示系统路由表、网络接口状态等。可以说,它是一个综合性的网络状态的察看工具。在默认情况下,netstat只显示已建立连接的端口。如果要显示处于***状态的所有端口,使用-a参数即可:#netstat -aActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 *:32768 *:* LISTENtcp 0 0 *:32769 *:* LISTENtcp 0 0 *:nfs *:* LISTENtcp 0 0 *:32770 *:* LISTENtcp 0 0 *:868 *:* LISTENtcp 0 0 *:617 *:* LISTENtcp 0 0 *:mysql *:* LISTENtcp 0 0 *:netbios-ssn *:* LISTENtcp 0 0 *:sunrpc *:* LISTENtcp 0 0 *:10000 *:* LISTENtcp 0 0 *:http *:* LISTEN……上面显示出,这台主机同时提供HTTP、FTP、NFS、MySQL等服务。telnet1.作用telnet表示开启终端机阶段作业,并登入远端主机。telnet是一个Linux命令,同时也是一个协议(远程登陆协议)。2.格式telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称IP地址]3.主要参数-8:允许使用8位字符资料,包括输入与输出。-a:尝试自动登入远端系统。-b:使用别名指定远端主机名称。-c:不读取用户专属目录里的.telnetrc文件。-d:启动排错模式。-e:设置脱离字符。-E:滤除脱离字符。-f:此参数的效果和指定“-F”参数相同。-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。-k:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。-K:不自动登入远端主机。-l:指定要登入远端主机的用户名称。-L:允许输出8位字符资料。-n:指定文件记录相关信息。-r:使用类似rlogin指令的用户界面。-S:服务类型,设置telnet连线所需的IP TOS信息。-x:假设主机有支持数据加密的功能,就使用它。-X:关闭指定的认证形态。4.应用说明用户使用telnet命令可以进行远程登录,并在远程计算机之间进行通信。用户通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了通过telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此,这种情况下能使用的功能是很少的。telnet只为普通终端提供终端仿真,而不支持X-Window等图形环境。当允许远程用户登录时,系统通常把这些用户放在一个受限制的Shell中,以防系统被怀有恶意的或不小心的用户破坏。用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。route1.作用route表示手工产生、修改和查看路由表。2.格式#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]3.主要参数-add:增加路由。-delete:删除路由。-net:路由到达的是一个网络,而不是一台主机。-host:路由到达的是一台主机。-netmask Nm:指定路由的子网掩码。gw:指定路由的网关。[dev]If:强迫路由链指定接口。4.应用实例route命令是用来查看和设置Linux系统的路由信息,以实现与其它网络的通信。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。使用下面命令可以增加一个默认路由:route add 0.0.0.0 192.168.1.1 Android系统在超级终端下必会的命令大全(八) 五、系统安全相关命令su1.作用su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。2.格式su [选项]… [-] [USER [ARG]…]3.主要参数-f , -fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。-l , -login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。-m, -p ,-preserve-environment:执行su时不改变环境变数。-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。USER:欲变更的使用者账号,ARG传入新的Shell参数。4.应用实例变更账号为超级用户,并在执行df命令后还原使用者。 su -c df rootumask1.作用umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。2.格式umask [-p] [-S] [mode]3.参数-S:确定当前的umask设置。-p:修改umask 设置。[mode]:修改数值。4.说明传统Unix的umask值是022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那么这种“组保护模式”就不在需要了。严密的权限设定构成了Linux安全的基础,在权限上犯错误是致命的。需要注意的是,umask命令用来设置进程所创建的文件的读写权限,最保险的值是0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw-----。在~/.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。5.应用实例umask -Su=rwx,g=rx,o=rxumask -p 177umask -Su=rw,g=,o=上述5行命令,首先显示当前状态,然后把umask值改为177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。chgrp1.作用chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。2.格式chgrp [选项]… 组 文件…或chgrp [选项]… -reference=参考文件 文件…将每个的所属组设定为。3.参数-c, -changes :像 -verbose,但只在有更改时才显示结果。-dereference:会影响符号链接所指示的对象,而非符号链接本身。-h, -no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。-f, -silent, -quiet:去除大部分的错误信息。-reference=参考文件:使用的所属组,而非指定的。-R, -recursive:递归处理所有的文件及子目录。-v, -verbose:处理任何文件都会显示信息。4.应用说明该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。5.应用实例改变/opt/local /book/及其子目录下的所有文件的属组为book,命令如下:$ chgrp - R book /opt/local /bookchmod1.作用chmod命令是非常重要的,用于改变文件或目录的访问权限,用户可以用它控制文件或目录的访问权限,使用权限是超级用户。2.格式chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法(相对权限设定);另一种是包含数字的数字设定法(绝对权限设定)。(1)字符设定法chmod [who] [+ | - | =] [mode] 文件名◆操作对象who可以是下述字母中的任一个或它们的组合u:表示用户,即文件或目录的所有者。g:表示同组用户,即与文件属主有相同组ID的所有用户。o:表示其它用户。a:表示所有用户,它是系统默认值。◆操作符号+:添加某个权限。-:取消某个权限。=:赋予给定权限,并取消其它所有权限(如果有的话)。◆设置mode的权限可用下述字母的任意组合r:可读。w:可写。x:可执行。X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。s:文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。t:保存程序的文本到交换设备上。u:与文件属主拥有一样的权限。g:与和文件属主同组的用户拥有一样的权限。o:与其它用户拥有一样的权限。文件名:以空格分开的要改变权限的文件列表,支持通配符。一个命令行中可以给出多个权限方式,其间用逗号隔开。(2) 数字设定法数字设定法的一般形式为: chmod [mode] 文件名数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要改变权限的文件列表,支持通配符。数字表示的权限的含义如下:0001为所有者的执行权限;0002为所有者的写权限;0004为所有者的读权限;0010为组的执行权限;0020为组的写权限;0040为组的读权限;0100为其他人的执行权限;0200为其他人的写权限;0400为其他人的读权限;1000为粘贴位置位;2000表示假如这个文件是可执行文件,则为组ID为位置位,否则其中文件锁定位置位;4000表示假如这个文件是可执行文件,则为用户ID为位置位。3.实例如果一个系统管理员写了一个表格(tem)让所有用户填写,那么必须授权用户对这个文件有读写权限,可以使用命令:#chmod 666 tem上面代码中,这个666数字是如何计算出来的呢?0002为所有者的写权限,0004为所有者的读权限,0020为组的写权限,0040为组的读权限,0200为其他人的写权限,0400为其他人的读权限,这6个数字相加就是666(注以上数字都是八进制数),结果见图1所示。图1 用chmod数字方法设定文件权限从图1可以看出,tem文件的权限是-rw-rw-rw-,即用户对这个文件有读写权限。如果用字符权限设定使用下面命令:#chmod a =wx tem Android系统在超级终端下必会的命令大全(九) chown1.作用更改一个或多个文件或目录的属主和属组。使用权限是超级用户。2.格式chown [选项] 用户或组 文件3.主要参数-dereference:受影响的是符号链接所指示的对象,而非符号链接本身。-h, -no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。-from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的,才会更改所有者和组。其中一个可以省略,这已省略的属性就不需要符合原有的属性。-f, -silent, -quiet:去除大部分的错误信息。-R, -recursive:递归处理所有的文件及子目录。-v, -verbose:处理任何文件都会显示信息。4.说明chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户ID;组可以是组名或组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。5.应用实例1.把文件shiyan.c的所有者改为wan$ chown wan shiyan.c2.把目录/hi及其下的所有文件和子目录的属主改成wan,属组改成users。$ chown - R wan.users /hichattr1.作用修改ext2和ext3文件系统属性(attribute),使用权限超级用户。2.格式chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录3.主要参数-R:递归处理所有的文件及子目录。-V:详细显示修改内容,并打印输出。-:失效属性。+:激活属性。= :指定属性。A:Atime,告诉系统不要修改对这个文件的最后访问时间。S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。D:检查压缩文件中的错误。d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。s:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。u:Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。4.说明chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。5.应用实例1.恢复/root目录,即子目录的所有文件# chattr -R +u/root2.用chattr命令防止系统中某个关键文件被修改在Linux下,有些配置文件(passwd ,fatab)是不允许任何人修改的,为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:# chattr +i /etc/fstabps1.作用ps显示瞬间进程 (process) 的动态,使用权限是所有使用者。2.格式ps [options] [--help]3.主要参数ps的参数非常多, 此出仅列出几个常用的参数。-A:列出所有的进程。-l:显示长列表。-m:显示内存信息。-w:显示加宽可以显示较多的信息。-e:显示所有进程。a:显示终端上的所有进程,包括其它用户的进程。-au:显示较详细的信息。-aux:显示所有包含其它使用者的进程。4.说明要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用:ps aux图2 ps-aux命令详解图2第2行代码中,USER表示进程拥有者;PID表示进程标示符;%CPU表示占用的CPU使用率;%MEM占用的物理内存使用率;VSZ表示占用的虚拟内存大小;RSS为进程占用的物理内存值;TTY为终端的次要装置号码。STAT表示进程的状态,其中D为不可中断的静止(I/O动作);R正在执行中;S静止状态;T暂停执行;Z不存在,但暂时无法消除;W没有足够的内存分页可分配;高优先序的进程;N低优先序的进程;L有内存分页分配并锁在内存体内 (实时系统或I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。4.应用实例在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外,还可以使用下面的命令:ps aux | sort +5n Android系统在超级终端下必会的命令大全(十) 六、其他命令tar1.作用tar命令是Unix/Linux系统中备份文件的可靠方法,几乎
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发***微信