$ sudo chown lewis:root days ##分别改变days文件的属主和属组,属组前必须有冒号,且前边和属主之间没空格
$ sudo chown lewis days ##改变属主
$ sudo chown :root days ##改变属组
$ sudo chown -R lewis iso/ ##改变目录所有权
$ sudo chgrp nogroup days ##专门用来改变属组的语句,也有-R选项
可以设置权限的用户组有:u 文件属主、g 文件属组、o 其他人、a 所有人。注意在用相等符号设置权限时,用户原本的权限不会被保留,只会更新语句中提到的权限,因此不能用相等语句修改部分权限,必须涉及对rwx的全部考量后再选择语句内容。
$ sudo chmod u+x days ##为属主增加执行权限
$ sudo chmod a-x days ##撤销所有人的执行权限
$ sudo chmod ug=rw,o=r days ##赋予属主和属组读写权限,其他人写权限
$ sudo chmod o=u days ##其他人的权限与属主相同
用chmod助记符形式比较直观,但繁琐,9个位置上每个位置只有两种选择,可以用二进制表示,则3位2进制可以用1位8进制,3个8进制数就可以完成对三组权限的表示。其中1代表x,2代表w,4代表r(与实际顺序相反),只要将数字相加就可以代表多种权限。
$ sudo chmod 774 days ##赋予属主、属组读写执行权限,赋予其他人读权限
*************************************************文件类型****************************************************
5、文件类型
Linux共有七种文件类型,ls -l 命令输出的第一项代表了文件类型:
- 普通文件
d 目录
c 字符设备文件
b 块设备文件
s 本地域套接口
p 有名管道
l 符号链接
Linux有两类设备文件:字符设备文件和块设备文件。字符设备指的是能够从它那里读取成字符序列的设备,如磁带和串行线路;块设备指的是用来存储数据并对其各部分提供同等访问权的设备,如磁盘。字符设备有时被称为顺序访问设备,块设备有时被称为随机访问设备。使用块设备,可以从磁盘的任何随机位置获取数据;而使用字符设备,必须按照数据发送的顺序从串行线路上获取。
符号链接(也称软链接)有点像Windows里的快捷方式,用户可以用别名去访问一个文件。
软链接需要使用带-s参数的ln命令来创建
$ ln -s hello_bak hello ##软链接:带
-s 的 ln 命令,取一个别名hello,删除别名不会影响原文件,但删除原文件后别名不再有意义
$ ln -s ../tempx tem ##也可用于目录的别名
$ ln hello_bak2 hello_bak ##硬链接:生成一个新文件互相关联,一个文件的改动同时会改动另一个,很少应用到
*******************************************输入输出重定向和管道******************************************
6、输入输出重定向和管道
重定向和管道是Shell的高级特性,允许用户人为改变程序获取输入和产生输出的位置。
程序默认输出结果的地方为标准输出,一般为显示器,输出重定向把程序的输出转移到另一个地方去。
$ ls > hello_bak ##将输出存入文件hello_bak,若文件不存在会自动创建,若存在会删除内容重新写入
$ ls >> hello_bak ##想要保留原始内容,需要用 >> 重定向
程序默认接收输入的地方为标准输入,通常指键盘。
$ cat ##输入cat后回车,系统会等待输入
$ HELLO ##每输入一行系统会将输入打印在屏幕上
<Ctrl + D> ##直到点击 Ctrl+D 结束
$ cat < days ##重定向符号支持从文件中读入
$ cat days ##文件名作为参数就可以实现这个功能,因此上一条语句很少用到
$ cat << EOF ##立即文件(here document):从键盘读入,遇到设置的终止符(此处为EOF)停止,然后一次性打印
> HELLO ##输入HELLO
> EOF ##输入终止符,停止读入,打印前边读取的内容
$ cat << END >> hello ##输入输出重定向结合使用,以
END 为终止符从键盘读入,将内容追加到 hello 文件后
管道将重定向更进一步,通过“ | ”,将一条命令输出连接到另一条命令输出,如下:
$ ls | grep ay ##首先用 ls 给出文件名列表, 管道接收输出并发送给 grep 命令,从这些输出中找出包含“ay” 的文件名并打印,也可以用多个管道连接出复杂的命令
*******************************************************END**************************************************