最近在整一个 Android 项目,需要用到 linux shell 的知识,还好,之前只是写过一些简单的 shell,也看过很多大牛写的 shell 文件,佩服的泪牛满面,书到用时方恨少。
只好拼命补习!还好,项目结了,感慨万千,特此小记!
ls 这个命令只要是接触过 linux 的人,基本上都使用过它。有木有?!
使用 vim 编辑器打开 why.sh 这个文件,编辑内容如下(你也可以任意写,但是要按 shell 的套路来):
很简单的 shell,呵呵!
执行脚本可以 ./why.sh,但是此时你不可以执行它,使用 ls -l 找找答案。
可以看出,没有执行权限(x)。在往下面说之前,先了解一下 – rw- r– r– 是什么意思。
rwx 可以使用二进制数据 0、1 来表示,即存在就是 1,不存在就是 0,所以 rwx 是111(十进制是7),以此类推:
r- – 就是 100, -wx 就是011,r-x 就是 101.
把 – rw- r– r– 分为(1)(2)(3)(4)四个部分来说。
(1) – 表示是一个文件,(d 表示是一个目录, l 表示该文件是一个链接文件)
(2)rw- 表示当前用户可以操作这个文件的权限(可读可写不可执行,值是110 = 6)
(3)r– 表示与当前用户同一个组的可以操作这个文件的权限(可读不可写不可执行,100 = 4)
(4)r– 表示其它用户可以操作这个文件的权限(可读不可写不可执行,值是100 = 4)
如果你使用 chmod 777 filename,就相当于开放这个 filename 的所有权限给任何用户组的用户。
另外,我们还需要知道 u、o、g、a 表示什么含义??
他们分别是 user、other、group、all 的简写。所以下面的含义很简单:
chmod u + 权限(r 、w、x) file
chmod o + 权限(r 、w、x) file
chmod g + 权限(r 、w、x) file
chmod a + 权限(r 、w、x) file
分别表示:
改变当前用户、其它用户、当前用户同组的、所有用户对 file 的操作权限。
这个时候,就可以改变 why.sh 文件的权限为可执行了,两种方式(等效的):
chmod u+x why.sh
chmod 744 why.sh
改变之后,如下图:
那麽,你就可以执行这个小脚本了。
chown、chgrp 可以改变文件的属主和用户组。这里不再赘述!