linux的文件及目录

标题

用户与用户组

/etc/passwd 系统账号
/etc/shadow 密码记录
/etc/group 组信息

文件权限

1、更快所属用户组,chgrp
chgrp [-R] dirname/filename
参数:-R递归修改
范例:chgrp users install.log
2、更改文件拥有者,chown
范例:
chown bin install.log
chown root:root install.log
3、更改属性,chmod
范例:
chmod 777 .bashrc
chmod u=rwx,go=rx .bashrc
chmod a+x .bashrc
chmod a-x .bashrc

目录属性的意义

r:表示具有读取目录结构清单的权限,可以用ls命令将目录的内容列出来
w:表示拥有更改目录结构清单的权限
x:与能否进入该目录有关

文件种类

普通文件 -
目录 d
连接文件 l
块设备文件 b
字符设备文件c
套接字 s
管道 p

目录的相关操作

1、cd
cd~ 表示进入当前用户的家目录
cd~account 表示进入account用户的家目录
cd.. 表示进入上一层目录
cd- 表示返回前一个工作目录
2、pwd
pwd [-P]:显示出实际路径,而非使用连接(link)路径
3、mkdir
mkdir [-mp]目录名
参数:
-m:设置文件的权限
-p:递归建立目录
范例:
mkdir -p test1/test2/test3/test4
mkdir -m 711 test2
4、rmdir删除空目录
rmdir [-p] 目录名
参数:
-p:与上层’“空”目录一起删除

执行文件路径的变量:$PATH

查看:echo $PATH
设置: PATH=”$PATH”:/root

查看文件和目录:ls

参数:
-a:全部文件,包括隐藏
-A:全部文件,包括隐藏,排除.和..
-d:仅列出目录
-f:直接列出结果,而不进行排序
-F:根据文件、目录等信息,附加数据结构,例如:*表示可执行文件,/表示目录,|表示FIFO文件,=表示套接字
-h:列出文件大小,如mb,gb
-i:列出inode位置,而非列出文件属性
-l:列出详细信息
-n:列出uid和gid
-r:将结果反向排序
-R:与子目录一起列出来
-S:按文件大小排序
-t:按时间排序
- -color=nerver:不显示颜色区分
- -color=always:显示颜色区分
- -full-time:以完整时间显示
- -time=(atime,ctime):输出访问时间和改变时间

复制cp

参数:
-a: 相当于pdr
-d:若源文件为连接文件,则复制连接文件属性而非文件本身
-f:强制
-i:交互
-p: 与文件的属性一起复制,而非使用复制文件本身
-r:递归目录复制
-l: 建立硬链接,而非复制文件本身
-s: 复制成符号链接
-u:若目标文件比源文件旧,更新目标文件。

删除rm

参数:
-f:强制
-i: 交互
-r: 递归删除

移动、重命名mv

参数:
-f:强制
-i: 交互
-u: 更新,若目标文件已在且源文件比较新,才会更新。

查看文件内容

1、cat

参数:
-A:相当于-vET
-E:显示换行符$
-T:显示[tab]符^I
-v: 列出一些看不出来的特殊字符
-n:显示行号

扫描二维码关注公众号,回复: 1467372 查看本文章

2、反向显示tac

3、nl显示时添加行号

参数:
-b a:表示不论是否为空行,也同样列出行号
-b t:如果有空行,空行不要列出行号,默认为此
-n ln:行号在屏幕的最左方显示,且不加0
-n rn:行号在屏幕的最右方显示,且不加0
-n lz: 行号在屏幕的最左方显示,且加0
-n rz:行号在屏幕的最右方显示,且加0
-w:行号字段占用的位数

翻页查看

1、less可以上下翻页

enter:向下翻一行
空格键:向下翻动一页
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
/:向上搜索字符串
?:向下搜索字符串
n: 重复前一个搜索
N:反向重复前一个搜索
:f:显示文件名及当前显示的行数
q:离开less程序

2、more可以向下查看

修改文件时间与创建新文件:touch

mtime:修改时间
ctime:状态时间
atime:访问时间
注意:
默认情况下,ls显示的是文件的mtime。
即使复制一个文件,并复制所有属性,但也没有办法复制ctime。
参数:
-a:仅修改atime为当前时间
-m:仅修改mtime为当前时间
-c:仅修改时间而不建立文件
-d:后面接日期,修改atime和mtime,ctime不变
-t:后面接日间,格式为[YYMMDDhhmm]日期在atime和mtime都改变了,但ctime则是记录当前时间
范例:
touch /tmp/test:如果test文件存在,则修改atime、mtime、ctime,否则建立test文件。
touch -d “2 days ago” /tmp/test:将atime和mtime日期修改为两天前。
touch -t 0507150202 /tmp/test:将atime和mtime日期修改为2005/07/15 02:02,ctime日期修改为当前日间。

文件特殊权限

一、SUID,SGID,SBIT介绍
1.SUID:s出现在文件所有者的x权限上。
1)SUID只能用于二进制可执行文件,对目录无效
2)执行者若具有该文件的x权限,则将具有文件所有者的权限
3)权限只在文件执行时有效,执行完毕不再拥有所有者权限

2.SGID:s出现在文件所属群组的x权限上。
SGID和SUID不同,可以用于目录
1)使用者若有此目录的x,w权限,则可进入和修改此目录
2)使用者在此目录下的群组将变成该目录的群组,新建的文件,群组是此目录的群组。

SGID对于文件来说
1)SGID只对二进制可执行文件有效
2)执行者若具有该文件的x权限,则将具有文件所属群组的权限
3)权限只在文件执行时有效,执行完毕不再拥有所属群组权限

3.SBIT:t出现在文件其他用户的x权限上。
1)和SUID,SGID不同的是,只能用于目录
2)使用者在该目录下,仅自己与root才有权力删除新建的目录或文件

二、为什么要使用特殊权限
举个例子,比如 /usr/bin/passwd 这个二进制文件。
它的权限是 -rwsr-xr-x ,我不是所有者,我具有”x”权限,我执行它时,获得了它的所有者(即root)的权限,
所以在该二进制程序执行时,我可以用它来读到我平时是没有权限访问的 /etc/shadow 文件(-r——–),从而能更改我自己的密码

三、修改SUID,SGID,SBIT权限
1.符号类型修改权限
chmod u+s test –为test文件加上suid权限
chmod g+s test –为test文件加上sgid权限
chmod o+t test –为test文件加上sbit权限

2.数字类型修改权限
我们知道普通文件的rwx权限修改
对于特殊权限,需要在最前面增加一位,SUID:4,SGID:2,SBIT:1
chmod 4777 test –test拥有SUID权限,rwsrwxrwx
chmod 2777 test –test拥有SGID权限,rwxrwsrwx
chmod 1777 test –test拥有SBIT权限,rwxrwxrwt

显示文件类型 file

参数:
-L:显示链接指向的实际文件的相关信息
范例:

[root@moban tmp]# ln -s /bin/cp cp
[root@moban tmp]# ll
[root@moban tmp]# file -L cp
cp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[root@moban tmp]# file cp
cp: symbolic link to `/bin/cp'

搜索文件which、whereis、locate、find

which:只能寻找执行文件和别名(alias),在PATH变量里面寻找。
whereis :可以找到可执行命令和man page ,从数据库(/var/lib/slocate/slocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件。
locate:同上,数据库大至每天更新一次,不过文件名是部分匹配。
find:是直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用。

1、which

语法:
[root @redhat ~]# which 可执行文件名称
参数:
-a:将所可找到的命令都列出,而不仅仅列出第一个找到的命令
例如:
[root @redhat ~]# which passwd
/usr/bin/passwd

2、whereis

语法:
[root @redhat ~]# whereis [-bmsu] 文件或者目录名称
参数:
-b:只找二进制文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:没有说明文档的文件
例如:
[root @redhat ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz
将和passwd文件相关的文件都查找出来
[root @redhat ~]# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
只将二进制文件查找出来

3、 locate

语法:
[root@redhat ~]# locate 文件或者目录名称
例 如:
[root@redhat ~]# locate passwd
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passwd.jsp
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_admin_war/admin.war/jsp/platform/passwd.jsp
/lib/security/pam_unix_passwd.so
/lib/security/pam_passwdqc.so
/usr/include/rpcsvc/yppasswd.x
/usr/include/rpcsvc/yppasswd.h
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph
/usr/lib/kde3/kded_kpasswdserver.la
/usr/lib/kde3/kded_kpasswdserver.so
/usr/lib/ruby/1.8/webrick/httpauth/htpasswd.rb
/usr/bin/vncpasswd
/usr/bin/userpasswd
/usr/bin/yppasswd

4、 find

语法:
[root@redhat ~]# find 路径 参数
参 数说明:
时间查找参数:
-atime n :将n*24小时内存取过的的文件列出来
-ctime n :将n*24小时内改变、新增的文件或者目录列出来
-mtime n :将n*24小时内修改过的文件或者目录列出来
-newer file :把比file还要新的文件列出来
名称查找参数:
-gid n :寻找群组ID为n的文件
-group name :寻找群组名称为name的文件
-uid n :寻找拥有者ID为n的文件
-user name :寻找用户者名称为name的文件
-name file :寻找文件名为file的文件(可以使用通配符)
-nouser:查找文件的拥有者不在/etc/passwd中的文件
-nogroup:查找文件的拥有组不在/etc/group中的文件
例 如:
[root@redhat ~]# find / -name zgz
/home/zgz
/home/zgz/zgz
/home/weblogic/bea/user_projects/domains/zgz
/home/oracle/product/10g/cfgtoollogs/dbca/zgz
/home/oracle/product/10g/cfgtoollogs/emca/zgz
/home/oracle/oradata/zgz

[root@redhat ~]# find / -name ‘zgz
/home/zgz
/home/zgz/zgz1
/home/zgz/zgzdirzgz
/home/zgz/zgz
/home/zgz/zgzdir
/home/weblogic/bea/user_projects/domains/zgz
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00006
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00002
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00004
/home/weblogic/bea/user_projects/domains/zgz/zgz.log
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00008
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00005

猜你喜欢

转载自blog.csdn.net/borntodieee/article/details/80266542