成都网站建设设计

将想法与焦点和您一起共享

linux文件属性的命令 linux文件属性

Linux文件基本属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

创新互联是一家专注于成都做网站、网站制作与策划设计,坊子网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:坊子等地区。坊子做网站价格咨询:18980820575

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@www /]# ls -l

total 64

dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin

dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot

……

实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定(如下图)。

从左至右用0-9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

语法:

chgrp [-R] 属组名 文件名

参数选项

语法:

chown [–R] 属主名 文件名

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

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

[root@www ~]# chown bin install.log

[root@www ~]# ls -l

-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log

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

[root@www ~]# chown root:root install.log

[root@www ~]# ls -l

-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

chmod [-R] xyz 文件或目录

选项与参数:

举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:

[root@www ~]# ls -al .bashrc

-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc

[root@www ~]# chmod 777 .bashrc

[root@www ~]# ls -al .bashrc

-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

那么我们就可以使用 u, g, o 来代表三种身份的权限!

此外, a 则代表 all ,即全部的身份。读写的权限可以写成 r, w, x ,也就是可以使用下表的方式来看:

colgroupcol span="1" width="166"col span="1" width="166"col span="1" width="166"col span="1" width="166"col span="1" width="166"/colgroup

| chmod | u

g

o

a | +(加入)

-(除去)

=(设定) | r

w

x | 文件或目录 |

如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

Linux文件相关命令

grep命令:

grep命令是非常重要的命令,可以对文本进行查找和搜索

常用参数如下:

常用实例:

1、在多个文件中查找:

grep "file" file_1 file_2 file_3

2、输出除之外的所有行 -v 选项:

grep -v "file" file_name

3、标记匹配颜色 --color=auto 选项:

grep "file" file_name --color=auto

4、使用正则表达式 -E 选项:

grep -E "[1-9]+"

egrep "[1-9]+"

5、只输出文件中匹配到的部分 -o 选项:

echo this is a test line. | grep -o -E "[a-z]+."

line.

echo this is a test line. | egrep -o "[a-z]+."

line.

6、统计文件或者文本中包含匹配字符串的行数-c 选项:

grep -c "text" file_name

2

7、输出包含匹配字符串的行数 -n 选项:

grep "text" -n file_name

cat file_name | grep "text" -n

8、多个文件

grep "text" -n file_1 file_2

9、搜索多个文件并查找匹配文本在哪些文件中:

grep -l "text" file1 file2 file3...

10、grep递归搜索文件

在多级目录中对文本进行递归搜索:

grep "text" . -r -n

11、忽略匹配样式中的字符大小写:

echo "hello world" | grep -i "HELLO"

hello

12、选项 -e 指定多个匹配样式:

echo this is a text line | grep -e "is" -e "line" -o

is

line

13、也可以使用 -f 选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。

cat patfile

aaa

bbb

echo aaa bbb ccc ddd eee | grep -f patfile -o

14、在grep搜索结果中包括或者排除指定文件:

只在目录中所有的.php和.html文件中递归搜索字符"main()"

grep "main()" . -r --include *.{php,html}

15、在搜索结果中排除所有README文件

grep "main()" . -r --exclude "README"

16、在搜索结果中排除filelist文件列表里的文件

grep "main()" . -r --exclude-from filelist

touch abc.txt 创建一个名为abc.txt的文件

touch -r 指定文件时间与参考文件相同

touch -t 201608012234.55[yyyymmddhhmm.ss] abc.txt 更改文件为指定的时间

touch temp 创建一个名为temp的文件

vi编辑器有三种模式,命令行模式、编辑模式、底行模式。

vi 文件名进入命令行模式,Insert进入编辑模式,编辑完成Esc退出编辑模式,:wq进入底行模式并保存修改,:q直接退出保存。

tar命令用于打包压缩文件,常用的压缩命令还有bzip2,gzip

bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件

bzip2 file1 压缩一个叫做 'file1' 的文件

gunzip file1.gz 解压一个叫做 'file1.gz'的文件

gzip file1 压缩一个叫做 'file1'的文件

gzip -9 file1 最大程度压缩

rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包

rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'

rar x file1.rar 解压rar包

unrar x file1.rar 解压rar包

tar -cvf archive.tar file1 创建一个非压缩的 tarball

tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件

tar -tf archive.tar 显示一个包中的内容

tar -xvf archive.tar 释放一个包

tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下

tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包

tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包

tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包

tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包

zip file1.zip file1 创建一个zip格式的压缩包

zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包

unzip file1.zip 解压一个zip格式压缩包

which命令用于用户查找命令所有路径

命令格式

file命令用于获取文件属性

命令格式

file 文件名或目录名

命令示例:

使用说明

命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName

cat file1 从第一个字节开始正向查看文件的内容

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

使用示例

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里

cat -n textfile1 textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里

cat -b textfile1 textfile2 textfile3

清空 /etc/test.txt 文档内容

cat /dev/null /etc/test.txt

tac [filename]

从最后一行开始反向查看一个文件的内容,ac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写。

nl [-bnw] 文件

选项与参数:

-b: 指定行号指定的方式,主要有两种:

-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

-b t :如果有空行,空的那一行不要列出行号(默认值);

-n :列出行号表示的方法,主要有三种:

-n ln :行号在荧幕的最左方显示;

-n rn :行号在自己栏位的最右方显示,且不加 0 ;

-n rz :行号在自己栏位的最右方显示,且加 0 ;

-w :行号栏位的占用的位数。

more file1 查看一个长文件的内容,支持一页一页翻动

运行的时候,支持以下几个按键:

空白键 (space):代表向下翻一页;

Enter :代表向下翻『一行』;

/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;

:f :立刻显示出档名以及目前显示的行数;

q :代表立刻离开 more ,不再显示该文件内容。

b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作

less运行时可以输入的命令有:

空白键 :向下翻动一页;

[pagedown]:向下翻动一页;

[pageup] :向上翻动一页;

/字串 :向下搜寻『字串』的功能;

?字串 :向上搜寻『字串』的功能;

n :重复前一个搜寻 (与 / 或 ? 有关!)

N :反向的重复前一个搜寻 (与 / 或 ? 有关!)

q :离开 less 这个程序;

head [-n number]

head -2 file1 查看一个文件的前两行

tail [-n number]

tail -2 file1 查看一个文件的最后两行

tail -f /var/log/messages 实时查看被添加到一个文件中的内容

文件权限列中三位为一组,分别代表相关的用户、组、其它用户的权限

权限列中三位为一组,分别代表相关的用户、组、其它用户的权限

所以修改权限可以分别修改或一同修改,系统中权限分为数字权限与字符权限

数字权限:r=4,w=2,x=1

字符权限:+ 增加 -去除 a取消所有加上给定的

修改权限的命令chmod,命令格式:

chmod 权限 文件名或目录名 修改权限格式

chmod -R 权限 目录名 递归将目录及其下面所有内容权限全部修改

chown 改变文件或目录的属主(所有者)

chown 用户名 文件名或目录名

chown 用户名.组名 文件名或目录名

修改所属组也可用chgrp 命令来完成

当你用ls -l 查看到文件的属主、属组为数字时,就表明该文件的创建用户已被删除。

文件的特殊权限

chattr +i(-i) 文件名 锁定文件(取消锁定)不可删除与清空

chattr +a(-a) 文件名 添加内容(只可添加内容)

使用lsattr 文件名 查看文件的特殊权限

由此可以看出

root用户默认创建的目录权限是755,文件权限是644

普通用户默认创建的目录权限是775,文件权限是664

这也是系统默认的比较安全的权限分配,其实这些默认权限全部都是由umask值来决定的

系统规定了

文件的权限值是从666开始计算(默认权限=权限值-umask值)

目录的权限值是从777开始计算(默认权限=权限值-umask值)

文件1的权限=444 (666-232=434——43(3+1)4)

linux编辑文件命令

linux编辑文件命令有如下:

1、cp命令,作用复制,参数如下:

-a:将文件的特性一起复制。

-p:连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份。

-i:若目标文件已经存在时,在覆盖时会先询问操作的进行。

-r:递归持续复制,用于目录的复制行为。

-u:目标文件与源文件有差异时才会复制。

2、rm命令作用为删除,参数:

-f:就是force的意思,忽略不存在的文件,不会出现警告消息。

-i:互动模式,在删除前会询问用户是否操作。

-r:递归删除,最常用于目录删除,它是一个非常危险的参数。

3、mv命令作用为移动文件:

-f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。

-i:若目标文件已经存在,就会询问是否覆盖。

-u:若目标文件已经存在,且比目标文件新,才会更新。

4、pwd命令,作用为查看”当前工作目录“的完整路径。

pwd-P#显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径。

5、rmdir命令删除目录:

rmdir [选项]... 目录...

-p:递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

-v:verbose显示指令执行过程。


分享标题:linux文件属性的命令 linux文件属性
分享URL:http://chengdu.cdxwcx.cn/article/dopjpis.html