本文是Linux Shell脚本系列教程的第(一)篇,更多shell教程请看:Linux Shell脚本系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识。 Shell简介 Shell自身是一个用C语言编写的程序,是用户来使用Unix或Linux的桥梁,用户的大部分工作都需要通过Shell来完成。只有熟练使用shell,才能熟练掌握linux。 可以说:Shell既是一种命令语言,又是一种程序设计语言。 作为命令语言,它可以交互式地解释和执行用户输入的命令;而作为程序设计语言,它可以定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 Shell虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式来协调各个程序的运行。…
August 3, 2016
Linux: chmod 和 chown用法小结
chmod
chmod指令是更改文件读写执行权限的.
文件权限可以通过ls -a
或ll
来看,在每个文件前有10个字符,第一个是d
是文件夹,否则为一划.后面三组rwx
,分别是读取,写入和执行的权限; 三组分别是用户自己,同组以及其他人的相应rwx
权限. 没有执行权限, 脚本和程序也不能直接跑; 没有写权限,就没法生成和保存文件; 没有读的权限就连访问都难. 一般文件权限是755
,下面将介绍.
权限有两种表示方式, rwx
方式和数字方式. r权限代表1,w权限代表2,x权限代表4,无权限代表0. rwx
权限数字的值累加起来,就是一个用户/组/其余人的相应权限,例如775
代表用户和组具有rwx
权限,而其他人只有rx
权限没有写权限.
命令格式: chmod(选项)(权限模式 文件)
选项
-c或--changes
:效果类似“-v”参数,但仅汇报更改的部分;-f或--quiet或--silent
:强制执行,不显示错误信息;-R或--recursive
:递归处理,将指令目录下的所有文件及子目录一并处理;-v或—-verbose
:显示指令执行过程;--reference=<参考文件或目录>
:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
权限模式
<权限范围>+<权限设置>
:开启权限范围的文件或目录的该选项权限设置;<权限范围>-<权限设置>
:关闭权限范围的文件或目录的该选项权限设置;<权限范围>=<权限设置>
:指定权限范围的文件或目录的该选项权限设置;
其中权限范围为:
u
: User,即文件或目录的拥有者;g
: Group,即文件或目录的所属群组;o
: Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;a
: All,即全部的用户,包含拥有者,所属群组以及其他用户;
其中权限设置为:
r
: 读取权限,数字代号为“4”;w
: 写入权限,数字代号为“2”;x
: 执行或切换权限,数字代号为“1”;-
: 不具任何权限,数字代号为“0”;s
: 特殊功能说明:变更文件或目录的权限。- 不指明权限范围时默认为All所有人.
- 两种模式:
权限范围+/-/=权限设置
,例如u+x
就是用户增加执行权限; 不同组别设置使用,
分隔,例如u+wx,g+w,o-wx
这样; 也可以ug+wx
写.o=r
就是只有读权限(r–);+x
就是三个组都增加执行权限.- 三个数字模式, 例如755代表用户具有rwx, 组和其他人有rx.
比较重要知识点就是: 怎么知道权限, 怎么改变权限, 755代表什么, -R 对文件夹使用.
chmod u+x,g+w f01 #为文件f01设置自己可以执行,组员可以写入的权限 chmod u=rwx,g=rw,o=r f01 #rwxrw-r-- chmod 764 f01 #rwx-wx--x权限 chmod a+x f01 #对文件f01的u,g,o都增加可执行属性 chmod -R +x DirName #对整个文件夹及里面内容都增加执行权限
chown
chown指令是更改文件归属的,归属哪个用户,用户组是什么.对应将影响chmod里rwx
效果.
用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。-R选项后可以对整个文件夹操作. 只有文件主(改变自己的文件)和超级用户(改变他人的)才可以便用该命令。非root管理员慎用.
命令格式: chown 选项 用户:组 文件
-c或--changes
:效果类似“-v”参数,但仅汇报更改的部分;-f或--quite或--silent
:强制执行,不显示错误信息;-h或--no-dereference
:只对符号连接的文件作修改,而不更改其他任何相关文件;-R或--recursive
:递归处理,将指定目录下的所有文件及子目录一并处理;-v或--version
:显示指令执行过程;--dereference
:效果和“-h”参数相同;--help
:在线帮助;--reference=<参考文件或目录>
:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;--version
:显示版本信息。
归属可以只更改用户用户 文件
.
除了用户:组名
的写法,一般linux还可以用户.组名
(MacOS不行..).
记住 -R 对文件夹, 用户:组 的写法就可以了.比较简单.
更多参考:
3 Comments