Linux基础 for Android

一、  Linux系统根目录结构

 

目录名

描 述

bin

用户级二进制工具

boot

Linux内核镜像文件及开机相关文件,由bootloader程序读取并装载

dev

各种系统硬件设备

etc

系统配置文件及其他配置文件

home

用户工作目录

lib

系统运行时所需的各种库文件

opt

操作系统额外安装的应用程序目录

proc

内核及进程所虚拟的系统文件,该目录不会占用磁盘空间,其数据都存在内存中

root

管理员工作目录

sbin

该目录下的二进制工具程序仅用于管理员

sys

一般是驱动程序对应的虚拟系统文件

usr

管理安装的、所有用户都可以访问的应用程序

var

放置系统执行过程中经常变化的文件,如调试信息文件或者相关统计文件

 

 

二、  Linux启动过程

 

首先是开机,给系统供电,此时硬件电路会产生一个确定的复位时序,保证CPU是最后一个被复位的器件。正确复位之后,CPU开始执行引导程序Bootloader,用来装载内核之类的程序。

第二步是执行内核程序,内核程序初始化时执行初始化各种硬件,包括内存、显示器、网络接口、输入设备,然后建立起线程调度及内存管理所需的各种内部数据结构。

第三部就是运行Home程序,比如Windows系统的桌面。通过该程序可以方便地启动其它应用程序。

 

三、Android开发过程中常用Linux命令

●man

man的含义就是manual,即手册。使用格式 man command,command为具体的命令名称。

●find

find命令用于查找某个文件或者文件夹,例如:

$find . –name “*.java”

其中.表示当前目录。

●grep

grep命令用于字符串匹配。例如,查找hello.java文件中包含“Activity”字符串的所有地方,使用如下命令。

$grep “Activity”hello.java

●xargs

该命令可理解为一个标识,代表上一条命令的执行结果,并作为下一条命令的参数。Linux命令可以流水线执行,两个命令用“|”分隔符隔开。下面进行举例说明:

$ls | xargs grep “oa”

查找当前目录下文件名中包含“oa”的所有文件。

$find . –name “.java” | xargs grep “Activity”

查找当前目录下所有包含“Activity”字符串的java文件。

$find `find . –name res` -name “*.xml” | xargs grep status_bar_size

该命令中,``符号是数字键1左边的符号,此处对find命令进行了嵌套使用,内嵌的find命令用于查找名称为res的目录或文件,外部的find命令从得到的这些目录下继续查找.xml文件。

●cat

cat命令用于链接文件内容并输出文件内容。cat参数中的文件可以是普通意义上的有存储空间的文件,也可以是Linux系统中的设备文件。

 

$cat main.java
$sudo cat /dev/disk0

 

●chmod

在Linux系统中,文件的访问者被划分为三类,针对这三类用户指定不同的访问权限。

usr(u) 用户自身,即创建该文件的用户

group(g)用户所在组

other(o) 其它用户

chmod命令就是用于设置这三类访问者对某文件的访问权限。

访问权限分为读(r)、写(w)、执行(x)权限,可以通过ls –l 命令查看文件的访问权限。

Linux使用10位数据表示访问的权限。例如”drwxr-xr-x”,下面进行说明

bit0:使用-或d表示,前者表示这是一个文件,后者表示这是一个目录。

bit1-bit3:user的访问权限

bit4-bit6:group的访问权限

bit7-bit9:other的访问权限

chmod命令应用举例

$chmod u+x copy.sh

即是给user添加执行(x)的权限。也可以用a来代表三类用户,如a+x等。

而对于Android手机底层的Linux,chmod命令不识别r、w、x这样的参数,而只能使用8进制数字值来表示,比如:

$chmod  777 copy.sh

其中777为8进制的数,对应的二进制数据为111 111 111,分别代表了u,g,o三类用户的访问权限。

●ps,kill

ps用于列出当前运行的所有进程,kill用于杀死某个进程。这两个命令多用于系统调试。

●export

该命令用于将某个变量值的作用域设为全局范围。比如,可以将某个路径赋值给系统环境变量PATH,然后再export PATH

 

你可能感兴趣的:(android)