zoukankan      html  css  js  c++  java
  • 2.Linux文件和目录

    1. 目录和路径

    linux下比较特殊的目录:
    .         代表此层目录
    ..        代表上一层目录
    -         代表前一个工作目录
    ~         代表『目前使用者身份』所在的home目录
    ~account  代表 account 这个使用者的home目录(account是个帐号名称)
    $PATH变量

    $PATH和Windows系统下的Path环境变量是差不多的,执行命令是会去PATH所指定的路径下搜索是否存在该命令。

    echo $PATH

    可以显示当前的$PATH变量的值。

    目录和文件常用命令
    cd:切换目录
    pwd [-P]:显示当前目录
        -P:显示当前的目录,而不是链接(link)路径
    mkdir [-mp]:新建一个新的目录
        -m :配置文件的权限
        -p :可以建立多层目录
    rmdir [-p]:删除一个空的目录
        -p :连同上一级『空的』目录一起删除
    命令列表
    ls:查看文件和目录
    cp、rm、mv:复制、删除和移动
    basename 目录:获取最后的文件名
    dirname 目录:取得目录名

    2. 文件内容与属性修改

    查看文件内容的命令
    cat  由第一行开始显示文件内容
    tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
    nl   显示的时候,顺道输出行号!
    more 一页一页的显示文件内容
    less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    head 只看头几行
    tail 只看尾巴几行
    od   以二进位的方式读取文件内容!
    touch修改文件时间

    linux文件有三个时间modification time (mtime),status time (ctime),access time (atime)分别是修改时间,状态改变时间,读取时间。

    touch [-acdmt] 文件
    选项与参数:
    -a  :仅修订 access time;
    -c  :仅修改文件的时间,若该文件不存在则不创建新文件;
    -d  :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
    -m  :仅修改 mtime ;
    -t  :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]

    文件默认权限

    umask命令可以显示创建目录和文件时的默认权限值。

    默认文件权限是rw-rw-rw减去默认值,假如umask的值是0022,那么计算规则是rw-rw-rw 减去 0-wx-wx

    默认目录权限是drwx-rwx-rwx 减去默认值,计算规则 drwx-rwx-rwx 减去0-wx-wx,可以用以下命令修改默认值:

    umask 值
    文件隐藏属性

    chattr [+-=][ASacdistu] 文件或目录名称
    选项与参数:
    +   :添加某一个特殊参数,其他原本存在参数则不动。
    -   :移除某一个特殊参数,其他原本存在参数则不动。
    =   :配置一定,且仅有后面接的参数
    
    A  :当配置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime
         将不会被修改,可避免I/O较慢的机器过度的存取磁碟。这对速度较慢的计算机有帮助
    S  :一般文件是非同步写入磁碟的(原理请参考第五章sync的说明),如果加上 S 这个
         属性时,当你进行任何文件的修改,该更动会『同步』写入磁碟中。
    a  :当配置 a 之后,这个文件将只能添加数据,而不能删除也不能修改数据,只有root 
         才能配置这个属性。 
    c  :这个属性配置之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,
         但是在储存的时候,将会先进行压缩后再储存(看来对於大文件似乎蛮有用的!)
    d  :当 dump 程序被运行的时候,配置 d 属性将可使该文件(或目录)不会被 dump 备份
    i  :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、配置连结也无法
         写入或新增数据!』对於系统安全性有相当大的助益!只有 root 能配置此属性
    s  :当文件配置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘
         空间,所以如果误删了,完全无法救回来了喔!
    u  :与 s 相反的,当使用 u 来配置文件时,如果该文件被删除了,则数据内容其实还
         存在磁碟中,可以使用来救援该文件喔!
    注意:属性配置常见的是 a 与 i 的配置值,而且很多配置值必须要身为 root 才能配置
    lsattr [-adR] 文件或目录
    选项与参数:
    -a :将隐藏档的属性也秀出来;
    -d :如果接的是目录,仅列出目录本身的属性而非目录内的档名;
    -R :连同子目录的数据也一并列出来! 

    查看文件类型
    file 文件名
    文件特殊权限
    SUID, SGID, SBIT

    3. 命令和文件的查询

    相关命令

    which [-a] command
    选项或参数:
    -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称
    whereis [-bmsu] 文件或目录名
    选项与参数:
    -b    :只找 binary 格式的文件
    -m    :只找在说明档 manual 路径下的文件
    -s    :只找 source 来源文件
    -u    :搜寻不在上述三个项目当中的其他特殊文件
    locate [-ir] keyword
    选项与参数:
    -i  :忽略大小写的差异;
    -r  :后面可接正规表示法的显示方式
    find [PATH] [option] [action]
    选项与参数:
    1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
       -mtime  n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;
       -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;
       -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。
       -newer file :file 为一个存在的文件,列出比 file 还要新的文件档名
    2. 与使用者或群组名称有关的参数:
       -uid n :n 为数字,这个数字是使用者的帐号 ID,亦即 UID ,这个 UID 是记录在
                /etc/passwd 里面与帐号名称对应的数字。这方面我们会在第四篇介绍。
       -gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在
                /etc/group,相关的介绍我们会第四篇说明~
       -user name :name 为使用者帐号名称喔!例如 dmtsai 
       -group name:name 为群组名称喔,例如 users ;
       -nouser    :寻找文件的拥有者不存在 /etc/passwd 的人!
       -nogroup   :寻找文件的拥有群组不存在於 /etc/group 的文件!
                    当你自行安装软件时,很可能该软件的属性当中并没有文件拥有者,
                    这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。
    3. 与文件权限及名称有关的参数:
       -name filename:搜寻文件名称为 filename 的文件;
       -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:
                       c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB
                       还要大的文件,就是『 -size +50k 』
       -type TYPE    :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f),
                       装置文件 (b, c), 目录 (d), 连结档 (l), socket (s), 
                       及 FIFO (p) 等属性。
       -perm mode  :搜寻文件权限『刚好等於』 mode 的文件,这个 mode 为类似 chmod
                     的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
       -perm -mode :搜寻文件权限『必须要全部囊括 mode 的权限』的文件,举例来说,
                     我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,
                     当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,
                     因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
       -perm +mode :搜寻文件权限『包含任一 mode 的权限』的文件,举例来说,我们搜寻
                     -rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw-------
                     也会被列出来,因为他有 -rw.... 的属性存在!
    4. 额外可进行的动作:
       -exec command :command 为其他命令,-exec 后面可再接额外的命令来处理搜寻到
                       的结果。
       -print        :将结果列印到萤幕上,这个动作是默认动作!

    4.结束

  • 相关阅读:
    【数据结构】线性表&&顺序表详解和代码实例
    【智能算法】超详细的遗传算法(Genetic Algorithm)解析和TSP求解代码详解
    【智能算法】用模拟退火(SA, Simulated Annealing)算法解决旅行商问题 (TSP, Traveling Salesman Problem)
    【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
    10. js时间格式转换
    2. 解决svn working copy locked问题
    1. easyui tree 初始化的两种方式
    10. js截取最后一个斜杠后面的字符串
    2. apache整合tomcat部署集群
    1. apache如何启动
  • 原文地址:https://www.cnblogs.com/Reyzal/p/5012753.html
Copyright © 2011-2022 走看看