linux基础:8、文档属性、基础命令介绍(3)

文档属性)

我们都知道,在windows下如果我们要查看文件或目录文件的属性的话,我们可以采用在目标文件上右键然后选择属性的方式来查看。同样在linux下文件也是有着自己的属性的,接下来是我个人在此问题上的总结,将会用最简洁的方式表达出来。

文档属性查看命令:ls -l

============================================================================
[[email protected] ~]# ls -l
total 40
-rw-------. 1 root root  967 Feb 13 05:17 anaconda-ks.cfg
-rw-r--r--. 1 root root   72 Mar  9 21:42 crontab.sh
drwxr-xr-x. 4 root root 4096 Mar  5 05:00 dir4
-rw-r--r--. 1 root root 8749 Feb 13 05:17 install.log
-rw-r--r--. 1 root root 3161 Feb 13 05:15 install.log.syslog
-rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin
-rw-r--r--. 1 root root  183 Mar  5 05:30 test11
-rw-r--r--. 1 root root   14 Mar  5 05:33 test22
-rw-r--r--. 1 root root    0 Mar  5 05:28 test33
[权限位] [inode连接数] [属主] [属组] [大小] [mtime] [文件名称]
============================================================================

让我们以"-rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin"为例

权限位

- rw-  r-- r--. 1 root root  512 Feb 18 19:34 mbr.bin

[1][234][567][890]

第1位代表文件类型:

- 普通文件

d 目录文件

l 链接文件

b 块设备文件(储存设备)

s socket文件(用于通信)

p pipe文件

...

第2-4位代表属主的权限

r-read;w-write;x-execute分别对应着"读、写、执行"三个权限,属主如果不具有此权限则显示为"-"

第5-7位代表属组的权限

r-read;w-write;x-execute分别对应着"读、写、执行"三个权限,属主如果不具有此权限则显示为"-"

第8-0位代表其他人的权限

r-read;w-write;x-execute分别对应着"读、写、执行"三个权限,属主如果不具有此权限则显示为"-"

PS:至于权限位最后的那个点,那是selinux的存在导致的,如果文件拥有selinux上下文环境则显示"."

PS:执行权限对于目录文件来说,代表着是否可以进入此目录的含义。

inode连接数

-rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin

代表与此文件inode号相同的文件数量(至于inode详细情形,我们以后在探讨)

属主

    -rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin

代表了此文件归属于哪个用户

属组

    -rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin

代表了此文件归属于哪个用户组

文件大小

    -rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin

默认大小的单位是字节,我们可以用ls -lh命令来让它显示单位

==================================================================================
[[email protected] ~]# ls -lh
total 40K
-rw-------. 1 root root  967 Feb 13 05:17 anaconda-ks.cfg
-rw-r--r--. 1 root root   72 Mar  9 21:42 crontab.sh
drwxr-xr-x. 4 root root 4.0K Mar  5 05:00 dir4
-rw-r--r--. 1 root root 8.6K Feb 13 05:17 install.log   #不是以字节为单位的会显示单位
-rw-r--r--. 1 root root 3.1K Feb 13 05:15 install.log.syslog
-rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin       #以字节为单位的依旧不会显示
-rw-r--r--. 1 root root  183 Mar  5 05:30 test11
-rw-r--r--. 1 root root   14 Mar  5 05:33 test22
-rw-r--r--. 1 root root    0 Mar  5 05:28 test33
==================================================================================

mtime

    -rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin

文件的修改(modify)时间

文件名称

    -rw-r--r--. 1 root root  512 Feb 18 19:34 mbr.bin


与文件属性相关的命令)

chmod

作用:修改文件权限

语法

chmod [选项] [u=rwx,][g=rwx,][o=rwx] filename

chmod 744 filename      #r=4,w=2,x=1

chmod u+x filename

选项:

-R 递归改变子目录及子目录下所有文件。

==================================================================================
#chmod [选项] [u=rwx,][g=rwx,][o=rwx] filename
[[email protected] ~]# chmod u=rwx,g=rwx,o=rwx mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwxrwxrwx. 1 root root 512 Feb 18 19:34 mbr.bin
#可以单独改某个角色的权限
[[email protected] ~]# chmod o= mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwxrwx---. 1 root root 512 Feb 18 19:34 mbr.bin

#chmod 744 filename   个人觉得最常用
[[email protected] ~]# chmod 700 mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwx------. 1 root root 512 Feb 18 19:34 mbr.bin

#chmod u+x filename   特殊情况下很方便
[[email protected] ~]# chmod g+rw mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwxrw----. 1 root root 512 Feb 18 19:34 mbr.bin
==================================================================================

chown

作用:修改文件属主、属组

语法:chown [选项] user:group filename

选项:

-R 递归改变子目录及子目录下所有文件。

==================================================================================
[[email protected] ~]# ls -l mbr.bin
-rwxrwx---. 1 root root 512 Feb 18 19:34 mbr.bin
[[email protected] ~]# chown nagios:nagios mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwxrwx---. 1 nagios nagios 512 Feb 18 19:34 mbr.bin

#还可以单独改变属主或属组
[[email protected] ~]# chown root mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwxrwx---. 1 root nagios 512 Feb 18 19:34 mbr.bin
#单独修改属组
[[email protected] ~]# chown :root mbr.bin
[[email protected] ~]# ls -l mbr.bin
-rwxrwx---. 1 root root 512 Feb 18 19:34 mbr.bin
==================================================================================

umask

作用:通过设置umask值,来控制新建目录文件及普通文件的初始权限

配置文件(初始化):

全局 /etc/profile

个人 ~/.bashrc        #"~"是家目录的意思

语法:

查看 umask

修改 umask=022

原理:

目录文件的默认完整权限是777(rwxrwxrwx)

减掉umask的022(----w--w-),所以新建目录文件权限为(rwxr-xr-x)755;

普通文件的默认完整权限是666(rw-rw-rw-)

减掉umask的022(----w--w-),所以新建目录文件权限为(rw-r--r--)644。

==================================================================================
[[email protected] ~]# umask
0022
#第一个0我们会在之后介绍到,它代表的是特殊权限位的umask

#创建普通文件
[[email protected] ~]# touch newfile;ls -l newfile
-rw-r--r--. 1 root root 0 Mar 10 00:10 newfile
#022+644=666

#创建目录文件
[[email protected] ~]# mkdir newdir;ls -ld newdir
drwxr-xr-x. 2 root root 4096 Mar 10 00:13 newdir
#022+755=777
==================================================================================

PS:普通文件的默认完整权限之所以是666,是因为普通文件默认不需要执行权限。

chattr

作用:设置文件的隐藏权限

语法:chattr +隐藏权限 filename

隐藏权限:

a 這個档案将只能增加资料,而不能刪除也不能修改资料,只有root才能设定这个属性

i 这个档案将不能做内容、名称、权限、设定连接文件等等任何的修改

==================================================================================
#隐藏权限a
[[email protected] ~]# cat newfile
hi                                        #原内容
[[email protected] ~]# chattr +a newfile
[[email protected] ~]# echo > newfile
-bash: newfile: Operation not permitted   #单纯的修改内容被拒绝了
[[email protected] ~]# echo good >>newfile
[[email protected] ~]# cat newfile
hi                                        #成功追加了新内容
good

#i隐藏权限i
[[email protected] ~]# chattr +i test11
[[email protected] ~]# echo good > test11        #修改内容被拒绝
-bash: test11: Permission denied
[[email protected] ~]# echo good >> test11       #追加内容被拒绝
-bash: test11: Permission denied
[[email protected] ~]# rm -rf test11             #删除文件被拒绝
rm: cannot remove `test11‘: Operation not permitted
[[email protected] ~]# mv test11 testaa          #修改文件名称被拒绝
mv: cannot move `test11‘ to `testaa‘: Operation not permitted
==================================================================================

lsattr

作用:查看文件的隐藏属性

语法:lsattr filename

选项:

-R 连同子目录的资料也一同显示出来

-d 如果接的是目录,列出目录本身的属性,而非目录内的文件属性

==================================================================================
#查看文件特殊权限
[[email protected] ~]# lsattr test11 newfile
----i--------e- test11
-----a-------e- newfile

#删除文件特殊权限
[[email protected] ~]# chattr -i test11
[[email protected] ~]# chattr -a newfile
[[email protected] ~]# lsattr test11 newfile
-------------e- test11
-------------e- newfile
==================================================================================

扩展命令)

history / !

作用:查看和调用历史命令

配置文件(初始化history记录的个数):

全局 /etc/profile

个人 ~/.bashrc

语法:

history

!! 执行上一条命令

!n 执行~/.bash_history里的第n条命令

!-n 执行~/.bash_history里的倒数第n条命令

!关键字 执行关键字匹配的倒数第一条命令,例如!cp就是执行最后一次执行cp的那条命令

==================================================================================
#查看命令history
[[email protected] ~]# history|tail
  784  ls -l /etc -d
  785  ls -d
  786  ls -ld /etc
  787  ls /etc
  788  ls good
  789  echo $?
  790  ls newfile
  791  echo $?
  792  history|grep
  793  history|tail
 
#!!代表着执行上一条命令 
#[[email protected] ~]# !!
history|tail           #这里显示了真正执行的命令
  784  ls -l /etc -d
  785  ls -d
  786  ls -ld /etc
  787  ls /etc
  788  ls good
  789  echo $?
  790  ls newfile
  791  echo $?
  792  history|grep
  793  history|tail
==================================================================================

echo $?

作用:查看上一条命令是否成功,0成功,非0失败

==================================================================================
#echo $?的结果为0,代表上一条命令执行成功
[[email protected] ~]# ls newfile
newfile
[[email protected] ~]# echo $?
0

#echo $?的结果不为0,代表上一条命令执行失败
[[email protected] ~]# ls good
ls: cannot access good: No such file or directory
[[email protected] ~]# echo $?
2
==================================================================================

!$

作用:上一条命令的最后一个参数,以tab或空格来作为参数的间隔。

==================================================================================
#情形1
[[email protected] ~]# ls -l /etc -d
drwxr-xr-x. 59 root root 4096 Mar 10 00:04 /etc
[[email protected] ~]# ls !$
ls -d
.

#情形2
[[email protected] ~]# ls -ld /etc
drwxr-xr-x. 59 root root 4096 Mar 10 00:04 /etc
[[email protected] ~]# ls !$
ls /etc
...内容省略...

#对比情形1和情形2,我们可以大概了解"!$"的作用。
==================================================================================
时间: 2024-08-26 04:47:05

linux基础:8、文档属性、基础命令介绍(3)的相关文章

服务端零基础架设文档

python基础环境搭建 window下环境变量设置 设置后可以方便的使用python命令行,以及python路径下的Script工具. 1.python的安装路径 2.python script 工具的路径 这两个路径加入到path环境变量中去 pywin32 安装 在window下需要访问系统api的地方都需要用到pywin32.可以根据自己的python版本去下载对应的pywin32的安装包.下载地址:http://sourceforge.net/projects/pywin32/file

四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

Java 初学者帮助文档以及基础教程

一下午的时间,大致看了一下Java的文档,进一步熟悉了Java的大体框架和结构,整理了一下有用的资源. 帮助文档: JSE 8 API 英文版 在线HTML格式:http://docs.oracle.com/javase/8/docs/api/index.html JSE 8 API 英文版 zip格式:http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html JSE 6

Linux的帮助文档命令

Linux的帮助文档命令 1.man page man是manual(操作手册)的简写,使用方式: man [指令] man date 在显示的内容中查找内容: / + 搜索你的关键字 上下左右键来查看更多说明,按q退出 man -f man(查找man完整名称的手册) man -k man(模糊查询含有man名称的手册) whatis [命令或数据] <==相当于 man -f [命令或数据] apropos [命令或数据] <==相当于 man -k [命令或数据] 上面的这两个命令要使用

VBA读取、增加自定义和修改文档属性

读取系统文档属性 Sub read()On Error Resume Nextrw = 1Worksheets(1).ActivateFor Each p In ActiveWorkbook.BuiltinDocumentProperties    Cells(rw, 1).Value = p.Name    Cells(rw, 2) = p.Value    rw = rw + 1NextEnd Sub 读取自定义文档属性 Sub Macro1() Cells(1, 2) = ActiveWo

我的文档 属性设置里找不到位置选项,以及文件夹迁移解决方式

我的文档 属性设置里找不到位置选项,以及文件夹迁移解决方式 转载请注明出处.http://blog.csdn.net/aaa123524457/article/details/47056951 欢迎关注http://blog.csdn.net/aaa123524457 刚装好的系统.<我的文档>默认是在C盘里的. 非常多人都会把它移到非系统盘,以避免消耗过多的系统盘资源. 直接说我遇到的问题: 刚装的windows server2008 r2系统,事实上和win7是一样的设置.我把C盘以下的&

让你的linux支持chm文档的阅读

对于程序员来说经常要查看一些Reference帮助文档,可是面对一些旧文档,以及在没有网络的状况下,如何让你的linux支持chm文档的阅读,那么看下文吧! 方法一: 简单方法,在你的Firefox火狐上安装扩展(Add-on),搜索有一个chmreader,选择安装,重启firefox浏览器即可. 要看*.chm只需在终端执行: firefox *.chm & 优点:安装简单,看纯英文文档毫无压力: 缺点:兼容性较差,部分很多中文不支持,如下图我的c语言函数参考手册.chm只能部分显示中文:

[第三章]文档操作的命令-更新....

一.针对文档操作的命令 一般对文档操作的命令比较常用:cat.less.head.tail.grep.cut.sort.wc.uniq.tee.tr.split.sed.awk 其中 grep.sed.awk是正则表达式必须掌握的工具 (1) cut 命令 cut命令用来截取某一个字段,其格式为:“cut -d ‘分隔符’ [-cf] n” ,这里的"n" 是数字,这个命令拥有以下选项 -d        <==后面跟分割字符,分割字符要用单引号括起来 -c        <

Java 添加、读取、修改、删除Word文档属性

Word文档属性包括常规.摘要.统计.内容.自定义等,其中摘要包括标题.主题.作者.经理.单位.类别.关键词.备注等项目,通过设置这些摘要信息或自定义属性可方便对文档的管理.本文中将主要介绍对文档摘要信息的添加,以及读取或者编辑.删除文档中已设置的摘要信息或自定义文档信息.下面将通过Java代码详细介绍.使用工具:Free Spire.Doc for Java (免费版)Jar文件获取及导入:方法1:通过官网下载.下载后,解压,将lib文件夹下的Spire.Doc.jar文件导入java程序.方