Linux档案与目彔的基本操作(查看与权限)
此文包含的命令:
cd、pwd、mkdir、rmdir、rm、ls、cp、mv、cat、tac、more、less、head、tail、od、touch、umask、chattr、lsattr、file、chgrp、chown。
理论:
一、档案的种类
正规档案:[-]
- 纯文本档案(ASCII):用户看得懂的数字或字母等组成的。
- 二进制文件(binary): 操作系统认识的文件。即可执行的0101代码文件。
- 数据格式文件(data): 应用程序认识的文件格式。例如last命令才能查看的/var/log/wtmp登入数据记录文件。
目录(directory):[d]
连结档(link):[l]
类似与windows的快捷方式。
设备与装置文件(device):[b]、[c] 通常在/dev目录下
- 区块(block)设备档 :[b] 例如硬盘,可以随机在硬盘的不同区块读写。
字符(character)设备文件:[c] 例如键盘鼠标,一次性顺序读取。
资料接口文件(sockets):[s] 通常在/var/run目录下
这种类型的档案通常被用在网络上的数据承接,我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行 数据的沟通
数据输送文件(FIFO, pipe):[p]
FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。
二、档案的扩展名
- *.sh : 脚本戒批处理文件 (scripts),因为批处理文件为使用shell写成的
- *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等。
- *.html, *.php:网页相关档案,分别代表 HTML 语法不 PHP 语法的网页档案啰!.html 的档案可使用网页浏览器直接打开,.php的档案透过client端的浏览器浏览server端,以得到运算后的网页。
三、权限与指令的关系
- 让用户能进入某目录成为『可工作目录』的基本权限为何:
- )可使用的指令:例如 cd 等变换工作目录的指令
- )目录所需权限:用户对这个目录至少需要具有 x 的权限
- 用户在某个目录内读取一个档案的基本权限为何?
- )可使用的指令:例如本章谈到的 cat, more, less等等
- )目录所需权限:用户对这个目录至少需要具有 x 权限;
- )档案所需权限:使用者对档案至少需要具有 r 的权限才行!
- 让使用者可以修改一个档案的基本权限为何?
- )可使用的指令:例如 nano 或 vi 编辑器等;
- )目录所需权限:用户在该档案所在的目录至少要有 x 权限;
- )档案所需权限:使用者对该档案至少要有 r, w 权限
- 让一个使用者可以建立一个档案的基本权限为何?
- )目录所需权限:用户在该目录要具有 w,x 的权限
- 让用户进入某目录并执行该目录下的某个指令的基本权限为何?
- )目录所需权限:用户在该目录至少要有 x 的权限;
- )档案所需权限:使用者在该档案至少需要有 x 的权限
四、特殊的权限--suid、sgid、sbid
- SUID (set UID)
当 s 这个标志出现在档案拥有者的 x 权限上时(『-rwsr-xr-x』),则此档案有SUID属性,如/usr/bin/passwd。
- SUID的限制和功能:
- SUID 权限仅对二迚制程序(binary program)有效;(对shell script和目录都无效)
- 执行者对于该程序需要具有 x 的可执行权限;
- 本权限仅在执行该程序的过程中有效 (run-time);
- 执行者将具有该程序拥有者 (owner) 的权限。
- SUID的限制和功能:
- SGID (set GID)
s 在群组的 x 时则称为 Set GID, 即SGID。 例如 /usr/bin/locate
- 如果是对档案来说, SGID 有如下的功能:
- SGID 对二迚制程序有用;
- 程序执行者对于该程序来说,需具备 x 的权限;
- 执行者在执行的过程中将会获得该程序群组的支持!
- 如果是对目录来说, SGID 有如下的功能:
- 用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
- 用户在此目录下的有效群组(effective group)将会变成该目录的群组;即进入该目录的用户创建的档案或目录属组都是此目录的属组。
- 用途:若用户在此目录下具有 w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目录的群组相同。
- 如果是对档案来说, SGID 有如下的功能:
- SBIT (Sticky Bit)
Sticky Bit, SBIT 目前只针对目录有效,对于档案已经没有效果了。
SBIT 对于目录的作用是:
- 当用户对于此目录具有 w, x 权限,亦即具有写入的权限时;
- 当用户在该目录下建立档案或目录时,仅有自己与 root 才有权力删除该档案
五、档案的时间属性。
- modification time (mtime): 当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔!
- status time (ctime): 当该档案的『状忞 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
- access time (atime): 当『该档案的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会更新该档案的 atime 了。
- 总结:
- 对目录没有x执行权限就无法访问目录。
- w权限对于档案不包含删除权限;对于目录则可以删除目录或档案。
- 复制行为(cp)会复制执行者的属怅不权限.
命令:
一、常用命令
- cd 变换目录
- pwd 显示当前工作目录
- ls [-aAdfFhilnrRSt] 目录名称 显示目录或档案属性
- ls [--color={never,auto,always}] 目录名称
- -a 全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来(常用)
- -d 仅列出目录本身,而不是列出目录内的档案数据(常用)
- -l 长数据串行出,包含档案的属性与权限等等数据;(常用)
- -S 以档案容量大小排序,而不是用档名排序
- -t 依时间排序,而不是用档名。
- --full-time 以完整时间模式 (包含年、月、日、时、分) 输出
- --time={atime,ctime} 输出 access 时间或改变权限属性时间 (ctime) 而非内容变更时间 (modification time)
4. cp [-adfilprsu] 来源文件(source) 目标文件(destination)
- cp [options] source1 source2 source3 .... directory
- -a 相当亍 -pdr 的意思,至亍 pdr 请参考下列说明;(常用)
- -i 若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- -p 连同档案的属性一起复制过去,而非使用默认属性(备份常用);
- -r 递归持续复制,用于目录的复制行为;(常用)
- -d 若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身。
- -s 复制成为符号链接文件 (symbolic link),亦即『快捷方式』档案;
- -u 若 destination 比 source 旧才更新 destination !比对的时间为创建时间(mtime)。
5. mv [-fiu] source destination
- mv [options] source1 source2 source3 .... directory
- -f force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖;
- -i 若目标档案 (destination) 已经存在时,就会询问是否覆盖!
- -u 若目标档案已经存在,且 source 比较新,才会更新 (update) 比对的时间为创建时间。
6. rm [-fir] 档案或目录
- -f 就是 force 的意思,忽略不存在的档案,不会出现警告讯息;
- -i 互动模式,在删除前会询问使用者是否动作
- -r 递归删除,最常用在目录的删除
7. umask [-S] 查看档案设定分数
- 新建目录或档案的权限等于预设权限减去umask权限,目录预设权限默认为777,档案预设权限默认为666
- umask xxxx 为设置umask值
8. file 文件路径 查看文件类型
二、目录相关命令
- mkdir [-mp] 目录名称 创建一个新目录
- -m 直接设置目录的权限。
- -p 帮助你直接将所需要的目录(包含上层目录)递归建立起来!
- rmdir [-p] 目录名称 删除一个空目录
- -p 连同上层『空的』目录也一起删除
三、档案相关命令
- cat [-AbEnTv] 档案名
- -n 打印出行号,连同空白行也会有行号,与 -b 的选项不同;
- -b 列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -A 相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- tac 档案名 反向列示
- more 档案名
- 空格键 (space):代表向下翻一页;
- Enter :代表向下翻『一行』;
- /字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
- :f :立刻显示出文件名以及目前显示的行数;
- q :代表立刻离开 more ,不再显示该档案内容。
- b 或 [ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。
- less 档案名
- 空格键 :向下翻动一页;
- [pagedown]:向下翻动一页;
- [pageup] :向上翻动一页;
- /字符串 :向下搜寻『字符串』的功能;
- ?字符串 :向上搜寻『字符串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
- q :离开 less 这个程序;
- head [-n number] 档案
- -n 后面接数字,代表显示几行的意思(接负数则表示除了后面n行)
- tail [-nf number] 档案
- -n 后面接数字,代表显示几行的意思
- -f 表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
- od [-t TYPE] 档案
- -t :后面可以接各种『类型 (TYPE)』的输出,例如:
- a :利用默认的字符来输出;
- c :使用 ASCII 字符来输出
- d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
- f[size] :利用浮点数(floating)来输出数据,每个数占用 size bytes ;
- o[size] :利用八进制(octal)来输出数据,每个整数占用 size bytes;
- x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;
- touch [-acdmt] 档案
- -a :仅修订 access time;
- -c :仅修改档案的时间,若该档案不存在则不建立新档案;
- -d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
- -m :仅修改 mtime ;
- -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
四、目录或档案权限相关命令
- chgrp 改变所属群组
- # chgrp -R user test 修改test目录及其子目录或档案的属组为user
- chown 改变档案拥有者
- chown [-R] 账号名称 档案戒目彔
- hown [-R] 账号名称:组名 档案戒目彔
- chmod 改变权限
- 数字类型改变档案权限
- 命令: # chmod [-R] xyz 目录或档案
- owner = rwx = 4+2+1 = 7----------X
- group = rwx = 4+2+1 = 7----------y
- others= --- = 0+0+0 = 0----------z
- 符号类型改变档案权限
- 命令: # chmod [-R] ABC,ABC,ABC 目录或档案-----------ABC之间用逗号分开
- A={u 属主 g 属组 o 其他人 a 所有}--------一次可多选
- B={ + 加入 - 除去 = 设定 }
- C={r 读 w 写 x 执行 } --------一次可多选
- 数字类型改变档案权限
- SUID、SGID、SBIT 特殊权限设置
- 基本属性的基础上,前面再加上一个1、2、3、4、5、6、7之中的一个!
- u+s 或g+s 或o+t
- chattr [+-=][ASacdistu] 档案或目录名 配置文件夹或档案的隐藏属性
- a :当设定 a 之后,这个档案将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这个属性。使用>>添加内容
- i :让一个档案『不能被删除、改名、设定连结也无法 写入或新增资料!』对亍系统安全性有相当大的帮助!只有 root 能设定此属性
- lsattr [-adR] 档案或目录 显示档案或目录的隐藏属性
- -a :将隐藏文件的属性也秀出来;
- -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
- -R :连同子目录的数据也一并列出来!
五、指令与档案的查找
- which (寻找『执行档』)
- which 是根据用户所设定的 PATH 变量内的目录去搜寻可执行文件的!
- which [-a] 执行档名称
- -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称
- whereis (寻找特定的档案)
- 搜寻数据库档案,速度较快。(因为 Linux 系统会将系统内的所有档案都记录在一个数据库档案里面)
- whereis [-bmsu] 档案或目录名
- -b :只找 binary 格式的档案
- -m :只找在说明文件 manual 路径下的档案
- -s :只找 source 杢源档案
- -u :搜寻丌在上述三个项目弼中的其他特殊档案
- locate (寻找特定的档案)
- 『已建立的数据库 /var/lib/mlocate/』
- 更新locate数据库的命令:updatedb。updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设定,然后再去硬盘里面进行搜寻文件名的动作
- locate [-ir] keyword
- -i :忽略大小写的差异;
- -r :后面可接正则表示法的显示方式
- find (寻找特定的档案)
- find可以根据【时间】、【使用者或组名】、【档案权限以及名称、大小】、【-exec 接额外的动作 \;】----其中而外的动作中由【指令加{}组成】---{}为前面find匹配的内容
- find [PATH] [option] [action]
- 例题:
- 找出 /etc 底下,档案大小介于 50K 到 60K 之间的档案,并且将权限完整的列出 (ls -l):
- find /etc -size +50k -a -size -60k -exec ls -l {} \;
- 尝试用 find 找出目前 linux 系统中,所有具有 SUID 的档案有哪些?
- find / -perm +4000 -print
- 找出 /etc 底下,容量大于 1500K 以及容量等于 0 的档案:
- find /etc -size +1500k -o -size 0
- 找出 /etc 底下,档案容量大于 50K 丏档案所属人丌是 root 的档名,且将权限完整的列出 (ls -l);
- find /etc -size +50k -a ! -user root -exec ls -ld {} \;
- find /etc -size +50k -a ! -user root -type f -exec ls -l {} \; 均可
- 找出 /etc 底下,3天前5天内更改过的档案
- find /etc -mtime +3 -a -mtime -5 -exec ls -l {} \;
Linux档案与目彔的基本操作(查看与权限)的更多相关文章
- 第六章、Linux 的档案权限不目彔配置
1. 使用者不群组 2. Linux 档案权限概念 2.1 Linux 文件属怅 2.2 如何改变文件属怅不权限: chgrp, chown, chmod 2.3 目彔不档案乀权限意丿 2.4 Lin ...
- 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)
第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...
- Linux档案与目录管理
Linux档案与目录管理1. 目录与路径1.1 相对路径与绝对路径1.2 目录的相关操作: cd, pwd, mkdir, rmdir cd [相对路径或绝对路径]cd ~ [用户]: 切换家目录cd ...
- 01 Linux档案与目录管理
1. 目录与路径 1.1绝对路径和相对路径 绝对路径:一定有根目录/写起,例如:/usr/share/doc 相对路径:不是由根目录/写起,例如:由/usr/sha ...
- Linux 档案与目录管理
『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...
- 82 fsck-检查与修复 Linux 档案系统
Linux fsck命令用于 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统. 语法 fsck [-sACVRP] [-t fstype] [--] [fsck-opt ...
- Linux下防火墙开启相关端口及查看已开启端口
最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误: Exception in thread "m ...
- linux:档案权限
一.例如:-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc 详细: 1.-rw-r--r--:档案类型和权限(总共十个栏位) 1.1:第一个栏位代表 ...
- linux下的二进制文件的编辑和查看
linux下的二进制文件的编辑和查看 http://blog.csdn.net/wangxiaoqin00007/article/details/6618003 一.在Linux下查看二进制文件的软件 ...
随机推荐
- 禁用sqlserver的锁升级
锁升级 SQLSERVER.DB2中的锁是内存里面实现的,这就有个资源消耗问题,当锁的数量达到一个阀值或内存有压力时,就会引发锁升级.实际的情况是从row lock直接升级到table lock,而不 ...
- pt-kill使用
percona-toolkit-2.2.10使用举例 以pt-kill为例 --help,可以看到帮助信息 -------- 运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQ ...
- 【java消息格式化】使用MessageFormat进行消息格式化
主要介绍了: 消息格式化的基本使用: 格式化:匹配数字: 格式化:匹配日期: 格式化:匹配时间: 格式化:多次匹配: MessageFormat用来格式化一个消息,通常是一个字符串.MessageFo ...
- HAProxy安装配置详解
简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...
- JVM参数(二)参数分类和即时(JIT)编译器诊断
在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数.我同样会讨论一些关于JIT编译器诊断的有趣参数. JVM 参数分类 HotSpot JVM 提供了三类参数.第一类包括了标 ...
- haproxy+keepalived实现高可用负载均衡
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...
- Spring Boot自定义错误页面,Whitelabel Error Page处理方式
我已经是Spring Framework框架的忠实粉丝.对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题.但是,它构建的J2EE项目变得比较臃肿,需要被一 ...
- hihocoder 1391 [扫描线]
/* 题意: 两方对阵,互发导弹.防护罩可以让导弹原速反向. 每一枚导弹有发射时间航行时间伤害值. 防护罩也有开启时间和防御时间. 其中一方防护罩开启时间已知,求另一方防护罩合理安排开启时间使得己方受 ...
- Xcode取消某条警告
[Xcode取消某条警告] 像下面这样,把双引号“”内的内容替成实际的警告类型即可. #pragma clang diagnostic push #pragma clang diagnostic ...
- Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)
sqoop2-1.99.4和sqoop2-1.99.3版本操作略有不同:新版本中使用link代替了老版本的connection,其他使用类似. sqoop2-1.99.4环境搭建参见:Sqoop2环境 ...