安卓开发需要了解的Linux必备知识点

Linux必备知识点

  • 前言
    • Linux用户和用户组、用户和组的关系
      • Linux用户
      • Linux用户和组的关系
    • 什么是文件权限,如何修改文件权限
      • 文件的权限又四部分组成:
      • 修改文件权限:
      • 修改文件属组、属主:
    • shell
      • 什么是shell
      • shell下怎样查看一个环境变量
      • shell下怎样添加环境变量
    • 如何查看文件内容:全部内容,分页查看,查看前几行,查看后几行
      • cat概述及语法
      • more概述及语法
      • grep概述及语法

前言

作为一名安卓开发人员,在开发过程中,不可避免需要涉及到一些安卓之外的知识点,例如linux。一些大公司的项目都是放在linux服务器上,需要与linux进行交互,需要了解一些linux命令。

Linux用户和用户组、用户和组的关系

Linux用户

我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,
然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,

  1. 安全性 ,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
  2. 每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。;

Linux用户和组的关系

用户和用户组的对应关系有:一对一、一对多、多对一和多对多;下图展示了这种关系:

  1. 一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。
  2. 一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。
  3. 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。
  4. 多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

什么是文件权限,如何修改文件权限

文件的权限又四部分组成:

权限定义:-rw-r–r--
第一部分:第 1 位,有三种取值:普通文件(-)、目录(d),链接(l),这个例子是 - 代表是一个普通文件。
第二部分:第 2-4 位,表示属主的权限:可读(r)、可写(w)、可执行(x),如果对应的位没有权限用 - 表示。
第三部分:第 5-7 位,表示属组的权限,表示方法同属主。
第四部分:第 8-10 位,表示其他组的权限,表示方法同属主。

  1. 属主 每个文件都有一个属主,这个属主是一个用户,一般哪个用户创建了文件,那它的属主就是谁,但是是可以修改的。
  2. 属组 属组是跟这属主的,一般哪个属主创建了文件,那么用户的属组也是它创建的文件的属组,也是可以修改。
    3.其他组 除了属主和属组外的其他系统用户和用户组都是其他组。

修改文件权限:

修改权限时会用到 u、g、o,它们分别代表属主、数组、其他组。下面看几个例子来学习修改文件权限吧。

(1)使用 + 和 - 来增加和减少权限,如下图,安装图中的操作试一试吧,我只演示了 u+x 和 o-r,
你可以试试其他组合,比如:u+x、o+rw、u+w 等等.

 chmod u+x 1.txt    给1.txt添加属主的可执行权限

(2)使用数字来描述权限,我们可以分别使用一个八进制数字表示属主、属组、其他组的权限。
比如:八进制 5 转换成四位二进制是 0101,
我们去后三位分别表示 rwx 权限,1 代表有权限,0 代表没有权限,所以八进制 5 代表的权限是 r-x。那么 755 代表的 权限就是 rwxr-xr-x
语法:
chmod [-R] xyz 文件或目录

,我们将上图的 1.txt 的权限用数字的方式改一下看看,如下:

   chmod 755 1.txt 

修改文件属组、属主:

  1. chgrp:更改文件属组
    语法:
    chgrp [-R] 属组名 文件名

    参数选项:
    -R:递归更改文件属组,就是在更改某个目录文件的属组时, 如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

  2. chown:更改文件属主,也可以同时更改文件属组

    语法:
    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名

    进入 /root 目录(~)将install.log的拥有者改为bin这个账号:
    chown bin install.log

    将install.log的拥有者与群组改回为root:
    chown root:root install.log

shell

什么是shell

首先shell的英文含义是“壳”;
它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息。

shell下怎样查看一个环境变量

  1. 使用echo命令查看单个环境变量。例如:
    echo $PATH
  2. 使用env查看所有环境变量。例如:
    env
  3. 使用set查看所有本地定义的环境变量。

shell下怎样添加环境变量

  1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
    用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

     例如:编辑/etc/profile文件,添加CLASSPATH变量 
              # vi /etc/profile 
              export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
    

    注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

  2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
    用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

     例如:编辑guok用户目录(/home/guok)下的.bash_profile 
     	vi/home/guok/.bash.profile添加如下内容:					  
     	exportCLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib 
    

    注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

  3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
    在shell的命令行下直接使用[export 变量名=变量值] 定义变量,

    该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,

    shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

如何查看文件内容:全部内容,分页查看,查看前几行,查看后几行

cat概述及语法

  1. 概述
    查看文件内容、创建文件、文件合并、追加文件内容 等功能,它的特点是会一次显示所有内容,适合查看内容较少 的文本文件。

  2. 语法

     cat [-b] file 
     cat [-n] file 
     
     参数解释:
     -b:对非空输出的行编号
     -n:对输出的所有的行编号
    

more概述及语法

  1. 概述
    当文件超过窗口时,会分屏显示文件;当文件内容较少时,与cat效果没区别,当文件内容较多时,会显示一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)

  2. 语法

     more  file 
     
     参数解释:
     -b:对非空输出的行编号
     -n:对输出的所有的行编号
    
  3. –More–(XX%)此时可以根据以下不同操作做出回应。

    显示文本下一屏内容:空格键
    一次滚动文本的一行:Enter
    回滚一屏:b
    前滚一屏:f
    退出:q

grep概述及语法

  1. 概述
    Linux系统中grep命令是一种强大的文本搜索工具。

  2. 语法

     grep [选项] 查找的目标字符 文件名 
     
     grep的选项也很多,这里只介绍三个:
     -n:显示匹配行及行号
     -v:显示不包含匹配文本的所有行(相当于求反)
     -i:忽略大小写
    
    
      **注意:Linux命令选项是可以连用的,例如: grep -nvi Hello test.txt**
    

你可能感兴趣的:(linux,android,shell)