此文包含的命令:

cd、pwd、mkdir、rmdir、rm、ls、cp、mv、cat、tac、more、less、head、tail、od、touch、umask、chattr、lsattr、file、chgrp、chown。

理论:

一、档案的种类

  正规档案:[-]

  1. 纯文本档案(ASCII):用户看得懂的数字或字母等组成的。
  2. 二进制文件(binary): 操作系统认识的文件。即可执行的0101代码文件。
  3. 数据格式文件(data): 应用程序认识的文件格式。例如last命令才能查看的/var/log/wtmp登入数据记录文件。

  目录(directory):[d]

  连结档(link):[l]

    类似与windows的快捷方式。

  设备与装置文件(device):[b]、[c]     通常在/dev目录下

  1. 区块(block)设备档 :[b] 例如硬盘,可以随机在硬盘的不同区块读写。
  2. 字符(character)设备文件:[c] 例如键盘鼠标,一次性顺序读取。

  资料接口文件(sockets):[s]       通常在/var/run目录下

    这种类型的档案通常被用在网络上的数据承接,我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行                             数据的沟通

  数据输送文件(FIFO, pipe):[p]

    FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。

二、档案的扩展名

  1. *.sh : 脚本戒批处理文件 (scripts),因为批处理文件为使用shell写成的
  2. *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等。
  3. *.html, *.php:网页相关档案,分别代表 HTML 语法不 PHP 语法的网页档案啰!.html 的档案可使用网页浏览器直接打开,.php的档案透过client端的浏览器浏览server端,以得到运算后的网页。

三、权限与指令的关系

  1. 让用户能进入某目录成为『可工作目录』的基本权限为何:
    1. )可使用的指令:例如 cd 等变换工作目录的指令
    2. )目录所需权限:用户对这个目录至少需要具有 x 的权限
  2. 用户在某个目录内读取一个档案的基本权限为何?
    1. )可使用的指令:例如本章谈到的 cat, more, less等等
    2. )目录所需权限:用户对这个目录至少需要具有 x 权限;
    3. )档案所需权限:使用者对档案至少需要具有 r 的权限才行!
  3. 让使用者可以修改一个档案的基本权限为何?
    1. )可使用的指令:例如 nano 或 vi 编辑器等;
    2. )目录所需权限:用户在该档案所在的目录至少要有 x 权限;
    3. )档案所需权限:使用者对该档案至少要有 r, w 权限
  4. 让一个使用者可以建立一个档案的基本权限为何?
    1. )目录所需权限:用户在该目录要具有 w,x 的权限
  5. 让用户进入某目录并执行该目录下的某个指令的基本权限为何?
    1. )目录所需权限:用户在该目录至少要有 x 的权限;
    2. )档案所需权限:使用者在该档案至少需要有 x 的权限

四、特殊的权限--suid、sgid、sbid

  1. SUID (set UID)

    当 s 这个标志出现在档案拥有者的 x 权限上时(『-rwsr-xr-x』),则此档案有SUID属性,如/usr/bin/passwd。

    1. SUID的限制和功能:
      1. SUID 权限仅对二迚制程序(binary program)有效;(对shell script和目录都无效)
      2. 执行者对于该程序需要具有 x 的可执行权限;
      3. 本权限仅在执行该程序的过程中有效 (run-time);
      4. 执行者将具有该程序拥有者 (owner) 的权限。
  2. SGID (set GID)

    s 在群组的 x 时则称为 Set GID, 即SGID。 例如 /usr/bin/locate

    1. 如果是对档案来说, SGID 有如下的功能:
      1. SGID 对二迚制程序有用;
      2. 程序执行者对于该程序来说,需具备 x 的权限;
      3. 执行者在执行的过程中将会获得该程序群组的支持!
    2. 如果是对目录来说, SGID 有如下的功能:
      1. 用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
      2. 用户在此目录下的有效群组(effective group)将会变成该目录的群组;即进入该目录的用户创建的档案或目录属组都是此目录的属组。
      3. 用途:若用户在此目录下具有 w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目录的群组相同。
  3. SBIT (Sticky Bit)

   Sticky Bit, SBIT 目前只针对目录有效,对于档案已经没有效果了。

     SBIT 对于目录的作用是:

    1. 当用户对于此目录具有 w, x 权限,亦即具有写入的权限时;
    2. 当用户在该目录下建立档案或目录时,仅有自己与 root 才有权力删除该档案

五、档案的时间属性。

  1.   modification time (mtime): 当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔!
  2.   status time (ctime): 当该档案的『状忞 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
  3.   access time (atime): 当『该档案的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会更新该档案的 atime 了。
  • 总结:
  1. 对目录没有x执行权限就无法访问目录。
  2. w权限对于档案不包含删除权限;对于目录则可以删除目录或档案。
  3. 复制行为(cp)会复制执行者的属怅不权限.

命令:

一、常用命令

  1. cd  变换目录
  2. pwd 显示当前工作目录
  3. 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 文件路径  查看文件类型

二、目录相关命令

  1. mkdir [-mp] 目录名称 创建一个新目录

    • -m  直接设置目录的权限。
    • -p  帮助你直接将所需要的目录(包含上层目录)递归建立起来!  
  2. rmdir [-p] 目录名称 删除一个空目录
    • -p  连同上层『空的』目录也一起删除

三、档案相关命令

  1. cat [-AbEnTv] 档案名

    • -n  打印出行号,连同空白行也会有行号,与 -b 的选项不同;
    • -b  列出行号,仅针对非空白行做行号显示,空白行不标行号!
    • -A  相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  2. tac 档案名 反向列示
  3. more 档案名
    • 空格键 (space):代表向下翻一页;
    • Enter :代表向下翻『一行』;
    • /字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
    • :f :立刻显示出文件名以及目前显示的行数;
    • q :代表立刻离开 more ,不再显示该档案内容。
    • b 或 [ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。
  4. less 档案名
    • 空格键 :向下翻动一页;
    • [pagedown]:向下翻动一页;
    • [pageup] :向上翻动一页;
    • /字符串 :向下搜寻『字符串』的功能;
    • ?字符串 :向上搜寻『字符串』的功能;
    • n :重复前一个搜寻 (与 / 或 ? 有关!)
    • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    • q :离开 less 这个程序;
  5. head [-n number] 档案
    • -n 后面接数字,代表显示几行的意思(接负数则表示除了后面n行)
  6. tail [-nf number] 档案
    • -n  后面接数字,代表显示几行的意思
    • -f  表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
  7. 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 ;
  8. touch [-acdmt] 档案
    • -a :仅修订 access time;
    • -c :仅修改档案的时间,若该档案不存在则不建立新档案;
    • -d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
    • -m :仅修改 mtime ;
    • -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]

四、目录或档案权限相关命令

  1. chgrp 改变所属群组

    • # chgrp -R user test   修改test目录及其子目录或档案的属组为user
  2. chown  改变档案拥有者
    • chown [-R] 账号名称 档案戒目彔
    • hown [-R] 账号名称:组名 档案戒目彔
  3. chmod  改变权限
    1. 数字类型改变档案权限

      • 命令: # chmod [-R] xyz 目录或档案
      • owner = rwx = 4+2+1 = 7----------X
      • group = rwx = 4+2+1 = 7----------y
      • others= --- = 0+0+0 = 0----------z
    2. 符号类型改变档案权限
      1. 命令: # chmod [-R] ABC,ABC,ABC 目录或档案-----------ABC之间用逗号分开
      2. A={u 属主 g 属组 o 其他人 a 所有}--------一次可多选
      3. B={ + 加入 - 除去 = 设定 }
      4. C={r 读   w 写   x 执行 } --------一次可多选
  4. SUID、SGID、SBIT  特殊权限设置
    • 基本属性的基础上,前面再加上一个1、2、3、4、5、6、7之中的一个!
    • u+s 或g+s 或o+t
  5. chattr [+-=][ASacdistu] 档案或目录名  配置文件夹或档案的隐藏属性
    1. a :当设定 a 之后,这个档案将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这个属性。使用>>添加内容
    2. i :让一个档案『不能被删除、改名、设定连结也无法 写入或新增资料!』对亍系统安全性有相当大的帮助!只有 root 能设定此属性
  6. lsattr [-adR] 档案或目录   显示档案或目录的隐藏属性
    1. -a :将隐藏文件的属性也秀出来;
    2. -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
    3. -R :连同子目录的数据也一并列出来!  

五、指令与档案的查找

  1. which (寻找『执行档』)
    1. which 是根据用户所设定的 PATH 变量内的目录去搜寻可执行文件的!
    2. which [-a] 执行档名称
      1. -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称
  2. whereis (寻找特定的档案)
    1. 搜寻数据库档案,速度较快。(因为 Linux 系统会将系统内的所有档案都记录在一个数据库档案里面)
    2. whereis [-bmsu] 档案或目录名
      1. -b :只找 binary 格式的档案
      2. -m :只找在说明文件 manual 路径下的档案
      3. -s :只找 source 杢源档案
      4. -u :搜寻丌在上述三个项目弼中的其他特殊档案
  3. locate (寻找特定的档案)
    1. 『已建立的数据库 /var/lib/mlocate/』
    2. 更新locate数据库的命令:updatedb。updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设定,然后再去硬盘里面进行搜寻文件名的动作
    3. locate [-ir] keyword
      1. -i :忽略大小写的差异;
      2. -r :后面可接正则表示法的显示方式
  4. find   (寻找特定的档案)
    1. find可以根据【时间】、【使用者或组名】、【档案权限以及名称、大小】、【-exec 接额外的动作 \;】----其中而外的动作中由【指令加{}组成】---{}为前面find匹配的内容
    2. 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档案与目彔的基本操作(查看与权限)的更多相关文章

  1. 第六章、Linux 的档案权限不目彔配置

    1. 使用者不群组 2. Linux 档案权限概念 2.1 Linux 文件属怅 2.2 如何改变文件属怅不权限: chgrp, chown, chmod 2.3 目彔不档案乀权限意丿 2.4 Lin ...

  2. 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)

    第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...

  3. Linux档案与目录管理

    Linux档案与目录管理1. 目录与路径1.1 相对路径与绝对路径1.2 目录的相关操作: cd, pwd, mkdir, rmdir cd [相对路径或绝对路径]cd ~ [用户]: 切换家目录cd ...

  4. 01 Linux档案与目录管理

      1. 目录与路径 1.1绝对路径和相对路径         绝对路径:一定有根目录/写起,例如:/usr/share/doc         相对路径:不是由根目录/写起,例如:由/usr/sha ...

  5. Linux 档案与目录管理

    『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...

  6. 82 fsck-检查与修复 Linux 档案系统

    Linux fsck命令用于 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统. 语法 fsck [-sACVRP] [-t fstype] [--] [fsck-opt ...

  7. Linux下防火墙开启相关端口及查看已开启端口

    最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误: Exception in thread "m ...

  8. linux:档案权限

    一.例如:-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc 详细: 1.-rw-r--r--:档案类型和权限(总共十个栏位) 1.1:第一个栏位代表 ...

  9. linux下的二进制文件的编辑和查看

    linux下的二进制文件的编辑和查看 http://blog.csdn.net/wangxiaoqin00007/article/details/6618003 一.在Linux下查看二进制文件的软件 ...

随机推荐

  1. 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题

    虽然把WebDriver定义为一个静态变量了,但是每次执行测试都要打开多个窗口,挺浪费时间的. 找了很多中方法,比如使用setUpClass, BeforeSuite都没有完全解决问题.后来无意间发现 ...

  2. Type Project has no default.properties file! Edit the project properties to set one.

    Description Resource Path Location Type Project has no default.properties file! Edit the project pro ...

  3. gauss消元

    题意描述:有n个星球,m台望远镜.每台望远镜有一个开始时间和结束时间,但只给出了月.日的信息,没有给出年份,每台望远镜记录了它所观测的星球上发生的各类事件的次数.每类事件持续的时间是恒定的,且不会超过 ...

  4. 关于 try catch catch

    catch 和 finally 一起使用的常见方式是:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源. public class abc { st ...

  5. 关闭和开启oracle

    1.使用sqlplus 启动和关闭数据库. 答:使用sqlplus以sysdba的身份登录数据库 因为我的数据库是启动状态,所以我就先演示数据库的关闭 数据库的关闭使用语句shutdown immed ...

  6. 只适用于HTML的DOM对象

    前面,已经学习了如何对树结构进行遍历,并添加.删除.修改任何XML文档中的节点.但是,还有一些对象和属性石只适用于HTML的.列如,document.body就是一个纯HTML对象.只要HTML文档中 ...

  7. Apache Httpd + Subversion 搭建HTTP访问的SVN服务器

    最近要搭建一个SVN服务器.简单安装之后,本地访问没有问题,但作为服务器肯定是需要HTTP访问.搜索之后,以下是我按照网上的资料搭建的过程,以备后用和参考.(所有软件安装步骤略,没有特殊的,如果没有特 ...

  8. hbase shell 基本命令总结

    访问hbase,以及操作hbase,命令不用使用分号hbase shell 进入hbase list 查看表hbase shell -d hbase(main):024:0> scan '.ME ...

  9. Selenium

    Selenium可以抓取完整的页面的html但是request 和java的url不能抓的很完整. selenium的方法是dirver.page_source

  10. 使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2

    使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2 参考原文:How to Move a Datafile from Filesystem to ...