你知道常见的目录操作吗?

知道如何查询文件内容吗?

了解 umask 指令吗,知道如何查看和设置文件的默认权限吗?

知道文件的隐藏属性吗,了解如何设置(chattr指令)并查看(lsattr指令)吗?

知道文件的特殊权限吗,了解如何设置(chmod指令)和查看(ls指令)吗?

了解 file 指令吗,知道怎样查询文件的详细类型吗?

了解whereis 与locate以及find指令的区别吗,知道如何查找文件与指令的位置吗?

了解FHS吗?

如果有你不知道的,那么这篇文章可以带你了解这些知识。

1.目录与文件相关操作

1.对目录的操作

对目录的操作主要是:创建目录、删除目录、查看当前目录、变换目录等。

1.删除非空目录

格式:

  rm  -r  mydir  //删除目录(非空目录)及里面的所有内容。

注意:当需要删除一个非空目录时,最好通过普通用户来执行递归删除操作(系统不会每删除一个文件就询问一次 )。为什么呢?因为当使用root用户执行递归删除操作时,系统为了安全每删除一个文件就会询问一次。

2.移动文件与目录或更新目录名

移动文件: 当mv指令的第一个参数为文件A,最后一个参数为目录dir时,表示将A文件移到目录dir当中。

更新目录名:当mv指令的第一个参数为目录mydir,最后一个参数为修改后的目录名称(该目录名必须不存在,否则就是移动目录了)时,表示将目录mydir的名称更改目录名dir。

移动目录:当mv指令的第一个参数为目录mydir,最后一个参数为目录dir时,表示将目录mydir移到目录dir中。

2.对文件的操作

对文件的操作主要有:创建文件、删除文件、移动文件、查看文件等。

3.取得路径的文件名称与目录名称

指令格式:

  basename  文件绝对路径名  //获取文件名

  dirname  文件绝对路径名  //获取文件路径

2.文件内容查阅

3.文件与目录检视

4.文件默认权限

1.查询文件默认权限

指令:umask  //不带参数代表查询文件默认权限

不带选项和参数执行该指令默认情况下会输出 。

这4个数字分为两部分0(这是第一部分)和022(这是第二部分)来看。

接下来先看022代表的意思:

1.第一部分

这部分与文件的特殊权限有关。

该部分仅包含一个数字。

2.第二部分

这部分与普通权限(即读、写、执行)有关。

该部分包含3个数字,第一个数字(0)代表当前用户,第二个数字(2)代表当前组,第三个数字(2)代表其他用户。

0:代表当前用户的权限,且权限为rwx;为什么是这样?默认rwx权限都具备,这里的0代表没有减去权限,因此当前用户的权限还是rwx。

2:代表当前组的权限,且权限为r-x;为什么是这样?默认rwx权限都具备,这里的2(用二进制表示就是10)代表减去权限w,因此当前用户的权限是r-x。

2:代表当前组的权限,且权限为r-x;为什么是这样?默认rwx权限都具备,这里的2(用二进制表示就是10)代表减去权限w,因此当前用户的权限是r-x。

2.设置默认的文件权限

指令:umask  //带参数表示设置默认的文件权限

实例:umask  000  //表示当前用户、当前群组、其他用户创建的文件都具有rwx权限

5.文件隐藏属性

设置文件隐藏属性指令chattr与查看文件隐藏属性指令lsattr很重要

1.设置文件隐藏属性

指令:chattr  

个人认为上面的 a 和 i 这两个属性最重要。

接下来看一下文件隐藏属性案例:

这个指令很重要,尤其是在系统的数据安全方面,由于这些属性是影藏的,因此只有使用lsattr指令才能查看隐藏属性。

2.查看文件隐藏属性

指令:lsattr

6.文件特殊权限

1.文件特殊权限种类

一共有三种:SUIDSGIDSBIT

注意:SUID使用在文件上、而SBIT是用在目录上的,而SGID二者皆可。

2.特殊权限功能

1.SUID特殊权限

SUID的全称是Set UID,顾名思义,设置UID。该权限只针对文件有效(目录无效)

这样讲限制与功能你有可能不理解,那接下来我们举个例子:

3.设置特殊权限

chmod指令设置特殊权限。

1.chmod数字格式设置

指令案例:chmod 4777 filename  //给filename设置的所有用户的权限为rwxs

下面就举一个实例加深理解:

2.chmod字符格式设置

指令案例:chmod  u=rwxs,go=r-x filename  //给filename设置的当前用户权限为rwxs、组和其他用户设置r-x权限

2.SGID特殊权限

与SUID不同的是,SGID可以针对文件或目录来设置(即该权限对文件和目录都有效)。

SGID权限对于文件和目录的功能是不同的。

1.SGID权限对于文件的功能

SGID功能和要求如下:

下面讲解一个实例来加深理解:

SGID权限对于文件的功能已经讲完了,接下来讲一下SGID权限对于目录的功能。

2.SGID权限对于目录的功能

当目录设置成了SGID权限后就会具备以下功能:

3.SBIT特殊权限

7.查询文件的类型

之前通过 ls -l 指令可以查看文件的类型与属性,但是ls命令中显示的文件类型是比较宽松的文件类型(一般文件、连接文件、目录文件),那么如果我想知道详细的文件类型呢?该怎么办:使用file指令。

指令:file

8.文件与指令的搜索

文件与指令的搜索就是找出文件与指令的位置。

1.指令文件名的搜索

我们经常在终端上使用指令,比如ls、cat等,那怎么知道这些指令被放在哪里呢?可以通过which和type指令查找指令文件存放的位置。

1.which(寻找可执行文件)

这里的可执行文件指的是二进制文件

格式

  which  command  //列出一个从PATH可以找到的指令文件名

注意:which这个指令是根据PATH环境变量所规范的路径,去搜索“可执行文件”的文件名,所以重点是找出“可执行文件”而已!which后面接的是完整文件名。which无法寻找bash的内置指令(bash内置指令不在PATH环境变量中),但是可以通过type找出bash的内置指令。

2.文件文件名的搜索

在Linux下有很多搜索文件的指令。通常find指令不是很常用,因为速度比较慢。一般我们先用whereis或者locate指令来搜索,如果找不到才会用find来搜索。那么这些不同的搜索指令各有什么特点呢?

whereis:仅仅只寻找系统中某些特定目录下的文件。特定目录:/bin/sbin、/usr/share/man、/usr/src等几个目录下的某些子目录。

locate:利用数据库来搜索文件名。

find:直接搜索硬盘。

1.whereis指令详解

实例:

2.locate指令详解

keyword:表示部分文件名。

locate可以通过部分文件名找到一个或多个文件;可以通过部分文件名找到文件这个功能是特别好的。

注意:locate有个限制,因为locate搜寻的数据是从“已创建的数据库 /var/lib/mlocate/”里面的数据中查找的,而数据库的创建默认是在每天执行一次,所以在你新建文件之后,却在数据库更新之前去查找该文件,那么locate会告诉你找不到该文件,因为你必须以root身份使用updatedb手动更新数据库。手动更新数据库之后再使用locate就可以查找到文件了。

updatedb指令用法

格式:

  updatedb  //根据/etc/updatedb.conf的设置去搜寻硬盘内的文件名,并更新/var/lib/mlocate/目录内的数据库文件

3.find指令详解

find的功能特别强大,因此用法也有点复杂,有以下几种:

《1》查找并显示指定目录下那些指定时间段内被修改过的文件的文件位置。

《2》查找并显示指定目录下属于某个指定使用者或群组的文件的文件位置。

《3》查找并显示指定目录下指定的文件名或权限的文件的文件位置。

《4》额外的功能,就是使用额外的指令对查找的结果进行处理。

以上4种大的功能的查找是通过不同的选项以及参数来实现的。

统一格式

  find  [ path ]  [ opation ]  [ action ]

在此根据功能区分分别讲解选项与参数的意义:

1.查找并显示指定目录下那些指定时间段内被修改过的文件的文件位置

2.查找并显示指定目录下属于某个指定使用者或群组的文件的文件位置

3.查找并显示指定目录下指定的文件名或权限的文件的文件位置

4.额外功能

实例1

查找/home/zxp_user中大于1MB的文件

Linux系列(6):入门之文件与目录管理的更多相关文章

  1. Linux命令工具基础02 文件及目录管理

    文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...

  2. linux学习(2)——文件和目录管理

    (二) 一:绝对路径和相对路径                                                                                     ...

  3. Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)

    在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...

  4. (五)Linux之文件与目录管理以及文本处理

    Linux之文件与目录管理 目录 Linux之文件与目录管理 前言 绝对路径与相对路径说明: 一.目录常用命令 常用处理目录的命令: 切换目录 cd 显示当前路径 pwd 查看目录下文件 ls 创建目 ...

  5. Linux 文件与目录管理

    Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...

  6. CentOS(十)--与Linux文件和目录管理相关的一些重要命令②

    在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...

  7. CentOS(九)--与Linux文件和目录管理相关的一些重要命令①

       接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...

  8. [Linux] Linux学习笔记(5)-文件与目录管理

    1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...

  9. Linux学习-文件和目录管理 

    Linux文件和目录管理  文件系统架构  1.Linux文件系统具有层级性     1)文件或者目录起始于根目录"/"成为树状结构    2)最顶层由/开始   2 ...

随机推荐

  1. Friend-Graph (HDU 6152)2017中国大学生程序设计竞赛 - 网络选拔赛

    Problem Description It is well known that small groups are not conducive of the development of a tea ...

  2. zookeeper系列(九)zookeeper的会话详解

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6103870.html尊重原创,大家共同学习: 一.前言 ...

  3. maven在pom文件中引入了icepdf-core包,pom文件却莫名的报错,说jai_core包missing

    maven在pom文件中引入了icepdf-core包,却莫名的报错,说jai_core包missing,把这个jai_core包引入之后还是一样报错,PS:icepdf-core使用的时候不用引用j ...

  4. 外网访问内网的FTP服务器

    转自 外网访问内网的FTP服务器 首先感谢作者给出的总结,原文是介绍Serv-U的,我针对FileZilla Server进行了稍微修改,仅看操作可直接跳到分割线后第3部分. 1. 背景简介最近研究如 ...

  5. cast()、decimal(M,D) --SQL对查询字段保留小数位操作

    参考:http://database.51cto.com/art/201005/201651.htm http://www.lai18.com/content/1693593.html 直接上例子,以 ...

  6. mysql if--else

    SQL之case when then用法 case具有两种格式.简单case函数和case搜索函数. --简单case函数 case sex when '1' then '男' when '2' th ...

  7. 实验吧中围在栅栏中的爱-------writeup

    涉及知识点:栅栏密码解密.摩斯密码解密.替代密码解密 题目 可以看到下面一行东西,明显是一串摩斯密码,利用CTFCrakTools将密文解密 得到另一串密码kiqlwtfcqgnsoo 那么我们尝试着 ...

  8. Kettle源码学习(一)——把Kettle项目跑起来

    kettle(pentaho data integration),是一款开源的C/S版的ETL工具,最近打算学习一下kettle源码,并自己写一个mini kettle,并改造成基于事件触发的流处理模 ...

  9. o enclosing instance of type ArrayList_day02 is accessible. Must qualify the allocation with an enclosing instance of type ArrayList_day02

    错误日志: 这个错误是因为我创建的一个类,内中又创建了一个内部类,为什么呢在new内部类的时候出现错误呢,因为类中方法(函数)是在是在public static void main(String [] ...

  10. nodejs获取常见疾病数据示例

    日常生活中有一些常见的疾病,这个可以通过百度等搜索到,但是如果你要完成一款app或者小程序.网站之类的该如何来获取常见疾病的信息呢?首先想到的是通过爬虫爬取数据,然后整理搜索....其实这种方法还是太 ...