zoukankan      html  css  js  c++  java
  • 自我学习笔记02

    1、描述Linux发行版的系统目录名称命名规则以及用途。

    Linux系统目录名称

    Linux系统根目录. (2)

     

    命名规则:

                1、文件名严格区分大小写。

                2、文件可以使用除了/以外的任意字符,但是不建议使用特殊字符。

                3、文件名长度最长不能超过255个字符。

                4、所有以 . 开头的文件都为隐藏文件。

    根据文件名写法不同:

    1.绝对路径:有根目录(/)开始起写的完整的文件名路径和目录名称路径。

    2.相对路径:相对于当前路径的文件名写法,如 ./home/test

     

    2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

    文件系统中的数据分为两类,分别是数据和元数据。
    数据:指的是普通文件中的实际数据;
    元数据:指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者、以及文件数据块的分布信息等等;

    查看文件的元数据信息需要用到一个命令:stat
    stat命令的作用为显示文件的状态信息,输出的信息比ls命令输出的信息更加详细。

    [root@localhost ~]# stat anaconda-ks.cfg 
      File: ‘anaconda-ks.cfg’
      Size: 1922          Blocks: 8          IO Block: 4096   regular file
    Device: 802h/2050d    Inode: 201326658   Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: system_u:object_r:admin_home_t:s0
    Access: 2019-11-03 05:04:41.649084810 +0800
    Modify: 2019-09-26 22:17:46.117659968 +0800
    Change: 2019-09-26 22:17:46.117659968 +0800
     Birth: -

    File:文件的名称;
    Size:文件的大小;
    Blocks:占用的磁盘块数;
    IO Block:IO块大小;
    regular file:这里是显示文件的类型,这是一个普通文件
    Device:所在设备;
    Inode:Inode节点号;
    Links:被链接的次数;
    Access(第一个):访问权限;
    Uid:uid号和属主;
    Gid:gid号和属组;
    Access(第二个):文件最近一次的访问时间;
    Modify:文件的修改时间;
    Chang:文件的改变时间

     

    修改时间定义:

        当该文件的【内容数据】变更时,将会更新这个时间,内容数据指的是文件内容,而不是文件属性或权限、

    在默认的情况下ls查看的就是文件的mtime(修改时间)、

    touch:修改文件时间或创建新文件

    1.建立一个空文件

    2.将某一个文件日期自定义为目前(mtime与atime)

    参数 含义
    -a 或--time=atime或--time=access或--time=use 只更改读取时间
    -c 或 –no-create 不建立任何文件
    -d <时间日期> 使用指定的日期,而非现在的时间
    -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
    -m 或--time=mtime或--time=modify 只更改修改时间
    -r <参考文件或目录> 把指定文件或目录的日期和时间通通设置成参考文件或目录的日期时间
    -t <日期时间> 使用指定的日期时间,而非现在的时间
    --help 在线帮助

     

    修改文件读取时间

    [root@localhost data]# ll
    total 4
    -rw-r--r--. 1 root root 2304 Nov  3 05:14 passwd
    [root@localhost data]# touch -a passwd 
    [root@localhost data]# stat passwd 
      File: ‘passwd’
      Size: 2304          Blocks: 8          IO Block: 4096   regular file
    Device: 803h/2051d    Inode: 67          Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:etc_runtime_t:s0
    Access: 2019-11-05 09:23:39.609513260 +0800
    Modify: 2019-11-03 05:14:41.026038938 +0800
    Change: 2019-11-05 09:23:39.609513260 +0800
     Birth: -

    修改文件修改时间

    [root@localhost data]# date;ll passwd;ll --time=atime passwd;ll --time=ctime passwd
    Tue Nov  5 09:30:03 CST 2019 # 当前系统时间
    -rw-r--r--. 1 root root 2304 Nov  3 05:14 passwd # 文件修改时间
    -rw-r--r--. 1 root root 2304 Nov  5 09:23 passwd # 文件读取时间
    -rw-r--r--. 1 root root 2304 Nov  5 09:23 passwd # 文件创建时间
    [root@localhost data]# touch -d "-2 day ago" passwd 
    [root@localhost data]# date;ll passwd;ll --time=atime passwd;ll --time=ctime passwd
    Tue Nov  5 09:33:00 CST 2019
    -rw-r--r--. 1 root root 2304 Nov  7  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov  7  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov  5 09:32 passwd
    [root@localhost data]# touch -t "201911111111" passwd 
    [root@localhost data]# date;ll passwd;ll --time=atime passwd;ll --time=ctime passwd
    Tue Nov  5 09:34:23 CST 2019
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov  5 09:34 passwd

    3、总结软连接和硬连接区别,并用实例操作说明。

    硬链接和软连接区别
    1.本质:硬链接 同一个文件多个文件名,软连接不同文件

    [root@localhost data]# ll
    total 8
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    [root@localhost data]# ln passwd passssss
    [root@localhost data]# ln -s passwd pass.link
    [root@localhost data]# ll
    total 12
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile


    2.跨分区:硬链接不支持跨分区,软连接支持跨分区

    [root@localhost ~]# ln profile /data/wahaha
    ln: failed to create hard link ‘/data/wahaha’ => ‘profile’: Invalid cross-device link
    [root@localhost ~]# ln -s profile /data/wahaha
    [root@localhost ~]# ll . /data/
    .:
    total 12
    -rw-------. 1 root root 1922 Sep 26 22:17 anaconda-ks.cfg
    -rw-r--r--. 1 root root 1970 Sep 26 22:58 initial-setup-ks.cfg
    -rw-r--r--. 1 root root 1819 Nov  5 10:00 profile
    
    /data/:
    total 12
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile


    3.目录:硬链接不支持目录创建,软连接支持目录创建

    [root@localhost data]# ll
    total 12
    drwxr-xr-x. 2 root root    6 Nov  5 10:02 dirtest
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile
    [root@localhost data]# ln dirtest dir111
    ln: ‘dirtest’: hard link not allowed for directory
    [root@localhost data]# ln -s dirtest dir111
    [root@localhost data]# ll
    total 12
    lrwxrwxrwx. 1 root root    7 Nov  5 10:02 dir111 -> dirtest
    drwxr-xr-x. 2 root root    6 Nov  5 10:02 dirtest
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile


    4.相互关系:硬链接相互是平等独立的关系,软连接删除原始文件后软连接失效

    [root@localhost data]# rm -df dirtest
    [root@localhost data]# ll
    total 12
    lrwxrwxrwx. 1 root root    7 Nov  5 10:02 dir111 -> dirtest
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile
    [root@localhost data]# rm -f passssss 
    [root@localhost data]# ll
    total 8
    lrwxrwxrwx. 1 root root    7 Nov  5 10:02 dir111 -> dirtest
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile


    5.硬链接inode相同,软连接inode不同

    [root@localhost data]# ll -i 
    total 8
          72 lrwxrwxrwx. 1 root root    7 Nov  5 10:02 dir111 -> dirtest
    33554496 drwxr-xr-x. 2 root root    6 Nov  5 10:05 dirtest
          69 lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
          67 -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
          68 -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
          70 lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile
    [root@localhost data]# ln passwd passssswd
    [root@localhost data]# ll -i
    total 12
          72 lrwxrwxrwx. 1 root root    7 Nov  5 10:02 dir111 -> dirtest
    33554496 drwxr-xr-x. 2 root root    6 Nov  5 10:05 dirtest
          69 lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
          67 -rw-r--r--. 2 root root 2304 Nov 11  2019 passssswd
          67 -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
          68 -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
          70 lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile

    6.连接数:创建硬链接连接数会增加。增加软连接连接数不会增加
    [root@localhost data]# ll
    total 8
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    [root@localhost data]# ln passwd passssss
    [root@localhost data]# ln -s passwd pass.link
    [root@localhost data]# ll
    total 12
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile


    7.路径:硬链接:原始文件的当前工作目录。软连接:原始文件路径相对软连接的相对路径

    [root@localhost dirtest2]# pwd
    /data/dirtest/dirtest2
    [root@localhost dirtest2]# ln ../../passwd ../passwd1
    [root@localhost dirtest2]# ln -s ../passwd ../passwd2
    [root@localhost dirtest2]# ll ../
    total 8
    drwxr-xr-x. 2 root root    6 Nov  5 10:22 dirtest2
    -rw-r--r--. 4 root root 2304 Nov 11  2019 passwd1
    lrwxrwxrwx. 1 root root    9 Nov  5 10:26 passwd2 -> ../passwd
    -rw-r--r--. 4 root root 2304 Nov 11  2019 passwdtest

    8.文件类型:硬链接:和原始文件一样 软连接:和原始文件不一样是l类型
    [root@localhost data]# ll
    total 12
    lrwxrwxrwx. 1 root root    7 Nov  5 10:02 dir111 -> dirtest
    drwxr-xr-x. 2 root root    6 Nov  5 10:05 dirtest
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssswd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    lrwxrwxrwx. 1 root root    7 Nov  5 10:00 wahaha -> profile
    [root@localhost data]# file passwd;file passssswd;file profile;file wahaha;
    passwd: ASCII text
    passssswd: ASCII text
    profile: ASCII text
    wahaha: symbolic link to `profile'

    9.命令不一样。硬链接:ln 软连接:ln –s
    [root@localhost data]# ll
    total 8
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile
    [root@localhost data]# ln passwd passssss
    [root@localhost data]# ln -s passwd pass.link
    [root@localhost data]# ll
    total 12
    lrwxrwxrwx. 1 root root    6 Nov  5 09:58 pass.link -> passwd
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passssss
    -rw-r--r--. 2 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 1819 Nov  5 09:42 profile

    4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    1.touch 创建新文件或修改文件时间

    1.建立一个空文件

    2.将某一个文件日期自定义为目前(mtime与atime)

    参数 含义
    -a 或--time=atime或--time=access或--time=use 只更改读取时间
    -c 或 –no-create 不建立任何文件
    -d <时间日期> 使用指定的日期,而非现在的时间
    -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
    -m 或--time=mtime或--time=modify 只更改修改时间
    -r <参考文件或目录> 把指定文件或目录的日期和时间通通设置成参考文件或目录的日期时间
    -t <日期时间> 使用指定的日期时间,而非现在的时间
    --help 在线帮助

     

    修改文件读取时间

    [root@localhost data]# ll
    total 4
    -rw-r--r--. 1 root root 2304 Nov  3 05:14 passwd
    [root@localhost data]# touch -a passwd 
    [root@localhost data]# stat passwd 
      File: ‘passwd’
      Size: 2304          Blocks: 8          IO Block: 4096   regular file
    Device: 803h/2051d    Inode: 67          Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:etc_runtime_t:s0
    Access: 2019-11-05 09:23:39.609513260 +0800
    Modify: 2019-11-03 05:14:41.026038938 +0800
    Change: 2019-11-05 09:23:39.609513260 +0800
     Birth: -

    修改文件修改时间

    [root@localhost data]# date;ll passwd;ll --time=atime passwd;ll --time=ctime passwd
    Tue Nov  5 09:30:03 CST 2019 # 当前系统时间
    -rw-r--r--. 1 root root 2304 Nov  3 05:14 passwd # 文件修改时间
    -rw-r--r--. 1 root root 2304 Nov  5 09:23 passwd # 文件读取时间
    -rw-r--r--. 1 root root 2304 Nov  5 09:23 passwd # 文件创建时间
    [root@localhost data]# touch -d "-2 day ago" passwd 
    [root@localhost data]# date;ll passwd;ll --time=atime passwd;ll --time=ctime passwd
    Tue Nov  5 09:33:00 CST 2019
    -rw-r--r--. 1 root root 2304 Nov  7  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov  7  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov  5 09:32 passwd
    [root@localhost data]# touch -t "201911111111" passwd 
    [root@localhost data]# date;ll passwd;ll --time=atime passwd;ll --time=ctime passwd
    Tue Nov  5 09:34:23 CST 2019
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov 11  2019 passwd
    -rw-r--r--. 1 root root 2304 Nov  5 09:34 passwd

    2.ls 文件及目录查看

    参数 含义
    -a
    显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为隐藏,不会列出)
    -A
    显示除隐藏文件“.”和“..”以外的所有文件列表
    -C
    多列显示输出结果。这是默认选项
    -l
    与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列
    -F
    在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符
    -b
    将文件中的不可输出的字符以反斜线“”加字符编码的方式输出
    -c
    与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间
    -d
    仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表
    -f
    此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果
    -i
    显示文件索引节点号(inode)。一个索引节点代表一个文件
    --file-type
    与“-F”选项的功能相同,但是不显示“*”
    -k
    以KB(千字节)为单位显示文件大
    -l
    以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等
    -m
    用“,”号区隔每个文件和目录的名称
    -n
    以用户识别码和群组识别码替代其名称
    -r
    以文件名反序排列并输出目录内容列表
    -s
    显示文件和目录的大小,以区块为单位
    -t
    用文件和目录的更改时间排序
    -L
    如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目
    -R
    递归处理,将指定目录下的所有文件及子目录一并处理
    --full-time
    列出完整的日期与时间
    --color[=WHEN]
    使用不同的颜色高亮显示不同类型的

     

    查看所有文件包含隐藏文件

    [root@localhost ~]#ls -a
    .                .bash_history  .bashrc  .cshrc                profile  .viminfo
    ..               .bash_logout   .cache   .dbus                 .rnd     .Xauthority
    anaconda-ks.cfg  .bash_profile  .config  initial-setup-ks.cfg  .tcshrc

    查看文件以长格式显示

    [root@localhost ~]#ls -l
    total 12
    -rw-------. 1 root root 1922 Sep 26 22:17 anaconda-ks.cfg
    -rw-r--r--. 1 root root 1970 Sep 26 22:58 initial-setup-ks.cfg
    -rw-r--r--. 1 root root 1819 Nov  5 10:00 profile

    以时间降序方式显示文件 

    [root@localhost ~]#ls -tSlr
    total 12
    -rw-r--r--. 1 root root 1819 Nov  5 10:00 profile
    -rw-------. 1 root root 1922 Sep 26 22:17 anaconda-ks.cfg
    -rw-r--r--. 1 root root 1970 Sep 26 22:58 initial-setup-ks.cfg

    3.cp 复制文件

    参数 含义
    -a
    此参数的效果和同时指定"-dpR"参数相同
    -d
    当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
    -f
    强行复制文件或目录,不论目标文件或目录是否已存在
    -i
    覆盖既有文件之前先询问用户
    -l
    对源文件建立硬连接,而非复制文件
    -p
    保留源文件或目录的属性
    -R/r
    递归处理,将指定目录下的所有文件与子目录一并处理
    -s
    对源文件建立符号连接,而非复制文件
    -u
    使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件
    -S
    在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀
    -b
    覆盖已存在的文件目标前将目标文件备份
    -v
    详细显示命令执行的操作

     

    复制文件/etc/profile到/tmp/下

    [root@localhost ~]#cp /etc/profile /tmp
    [root@localhost ~]#ls /tmp
    profile

    文件夹递归复制

    [root@localhost data]#ll
    total 0
    drwxrwxr-x+ 2 root root 75 Nov 11 01:00 dir
    drwxr-xr-x. 2 root root 22 Nov 10 06:19 scripts
    [root@localhost data]#cp -r dir/ dir2
    [root@localhost data]#ll
    total 0
    drwxrwxr-x+ 2 root root 75 Nov 11 01:00 dir
    drwxr-xr-x. 2 root root 75 Nov 11 01:01 dir2
    drwxr-xr-x. 2 root root 22 Nov 10 06:19 scripts

     

     

    4.mv 移动文件

    mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

    mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

    1. 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
    2. 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

    注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

    选项 含义
    --backup=<备份模式>
    若需覆盖文件,则覆盖前先行备份
    -b
    当文件存在时,覆盖前,为其创建一个备份
    -f
    若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
    -i
    交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
    --strip-trailing-slashes
    删除源文件中的斜杠“/”
    -S<后缀>
    为备份文件指定后缀,而不使用默认的后缀
    --target-directory=<目录>
    指定源文件要移动到目标目录
    -u
    当源文件比目标文件新或者目标文件不存在时,才执行移动操作

     

    移动文件(未指定文件名)

    [root@localhost data]#mv 3.txt dir/
    [root@localhost data]#ll dir/
    total 0
    -rwxr-xr-x. 1 root root 0 Nov 10 06:41 2.txt
    -rw-r--r--. 1 root root 0 Nov 10 06:41 3.txt
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang1
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang2
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:35 wang3
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:36 wang4

    移动文件并改名(指定文件名)

    [root@localhost dir]#mv 3.txt 3.txt.bak
    [root@localhost dir]#ll
    total 0
    -rwxr-xr-x. 1 root root 0 Nov 10 06:41 2.txt
    -rw-r--r--. 1 root root 0 Nov 10 06:41 3.txt.bak
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang1
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang2
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:35 wang3
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:36 wang4

     

     

    5.rm 删除文件

    rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

    注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

    选项 含义
    -d
    直接把欲删除的目录的硬连接数据删除成0,删除该目录
    -f
    强制删除文件或目录
    -i
    删除已有文件或目录之前先询问用户
    -r/R
    递归处理,将指定目录下的所有文件与子目录一并处理
    --preserve-root
    不对根目录进行递归操作
    -v
    显示指令的详细执行过程

     

    删除文件

    [root@localhost dir]#ll
    total 0
    -rwxr-xr-x. 1 root root 0 Nov 10 06:41 2.txt
    -rw-r--r--. 1 root root 0 Nov 10 06:41 3.txt.bak
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang1
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang2
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:35 wang3
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:36 wang4
    [root@localhost dir]#rm 2.txt 
    rm: remove regular empty file2.txt’? y
    [root@localhost dir]#ll
    total 0
    -rw-r--r--. 1 root root 0 Nov 10 06:41 3.txt.bak
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang1
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang2
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:35 wang3
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:36 wang4

    强制删除文件不提示(慎用)

    [root@localhost dir]#ll
    total 0
    -rw-r--r--. 1 root root 0 Nov 11 01:00 2.txt
    -rw-r--r--. 1 root root 0 Nov 10 06:41 3.txt.bak
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang1
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang2
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:35 wang3
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:36 wang4
    [root@localhost dir]#rm -f 2.txt 
    [root@localhost dir]#ll
    total 0
    -rw-r--r--. 1 root root 0 Nov 10 06:41 3.txt.bak
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang1
    -rw-r--r--. 1 root root 0 Nov  9 04:35 wang2
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:35 wang3
    -rw-rw-r--. 1 wang wang 0 Nov  9 04:36 wang4

     

    删除文件夹及文件夹内容(默认无法删除文件夹需添加)

    [root@localhost data]#rm dir2
    rm: cannot remove ‘dir2’: Is a directory
    [root@localhost data]#rm -r dir2
    rm: descend into directory ‘dir2’? y
    rm: remove regular empty file ‘dir2/wang1’? ^C
    [root@localhost data]#rm -rf dir2
    [root@localhost data]#ll
    total 0
    drwxrwxr-x+ 2 root root 75 Nov 11 01:00 dir
    drwxr-xr-x. 2 root root 22 Nov 10 06:19 scripts

     

     

    6.dd

    dd命令用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。

    建议在有需要的时候使用dd 对物理磁盘操作,如果是文件系统的话还是使用tar backup cpio等其他命令更加方便。另外,使用dd对磁盘操作时,最好使用块设备文件。

    选项 含义
    bs=<字节数>
    将 ibs(输入)与 obs(输出)设成指定的字节数
    cbs=<字节数>
    转换时,每次只转换指定的字节数
    conv=<关键字>
    指定文件转换的方式
    count=<区块数>
    仅读取指定的区块数
    ibs=<字节数>
    每次读取的字节数
    obs=<字节数>
    每次输出的字节数
    of=<输出到文件>
    输出到文件
    seek=<区块数>
    一开始输出时,跳过指定的区块数
    skip=<区块数>
    一开始读取时,跳过指定的区块数

     

    创建一个1M大小的文件a.txt

    [root@localhost data]#dd if=/dev/zero of=a.txt bs=1M count=1
    1+0 records in
    1+0 records out
    1048576 bytes (1.0 MB) copied, 0.00106493 s, 985 MB/s
    [root@localhost data]#ll -h
    total 1.1M
    -rw-r--r--. 1 root root   34 Nov 11 01:06 1.txt
    -rw-r--r--. 1 root root 1.0M Nov 11 01:14 a.txt
    drwxrwxr-x+ 2 root root   75 Nov 11 01:00 dir
    drwxr-xr-x. 2 root root   22 Nov 10 06:19 scripts
    • if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
    • of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
    • bs 代表字节为单位的块大小。
    • count 代表被复制的块数。
    • /dev/zero 是一个字符设备,会不断返回0值字节()。

    1048576 bytes (1.0 MB) copied, 0.00106493 s, 985 MB/s

    硬盘读取速度

     

    7.file 查看文件类型

    file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

    选项 含义
    -b
    列出辨识结果时,不显示文件名称
    -c
    详细显示指令执行过程,便于排错或分析程序执行的情形
    -f<名称文件>
    指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
    -L
    直接显示符号连接所指向的文件类别
    -m<魔法数字文件>
    指定魔法数字文件
    -v
    显示版本信息
    -z
    尝试去解读压缩文件的内容

    查看文件类型

    [root@localhost data]#file 1.txt 
    1.txt: ASCII text

    查看文件类型不显示文件名称

    [root@localhost data]#file -b 1.txt 
    ASCII text

    查看文件MIME类别

    [root@localhost data]#file -i 1.txt 
    1.txt: text/plain; charset=us-ascii

     

    8.cat 查看文件内容

    cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令。

    注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

    选项 含义
    -n或-number
    有1开始对所有输出的行数编号
    -b或--number-nonblank
    和-n相似,只不过对于空白行不编号
    -s或—squeez-blank
    当遇到有连续两行以上的空白行,就代换为一行的空白行
    -A
    显示不可打印字符,行尾显示“$”
    -e
    等价于"-vE"选项
    -t
    等价于"-vT"选

    查看文件内容

    [root@localhost data]#cat 1.txt 
    abc 123
    ddd
    ccc
    fff
    222
    333
    444
    555
    666
    777

    查看文件内容并对内容进行编号

    [root@localhost data]#cat 1.txt 
    abc 123
    ddd
    ccc
    fff
    222
    333
    444
    555
    666
    777

    查看文件内容显示行号如有空白则不标记编号

    [root@localhost data]#cat -n 1.txt 
         1    abc 123
         2    ddd
         3    333
         4    
         5    444
         6    
         7    555
         8    666
         9    777
    [root@localhost data]#cat -b 1.txt 
         1    abc 123
         2    ddd
         3    333
    
         4    444
    
         5    555
         6    666
         7    777

    5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符

    [root@localhost ~]#cp /etc/profile /tmp/
    [root@localhost ~]#vim /tmp/profile

    在vim命令模式下输入:进入扩展命令模式输入以下代码。就可以完成行首的空白键删除了

    :%s/^s+//g

    %s/要查找的文字/要替换的文字/g

    ^:行首

    s:空格或者tab键

    +:一个以上

    6、在vim中设置tab缩进为4个字符

    根据自己需要。如果只配置自己使用可以在当前用户下创建文件.vimrc文件写入配置信息    

    如果是所有用户都希望生效可修改/etc/vimrc文件写入配置信息

    set ts=4
    set expandtab
    set autoindent
  • 相关阅读:
    经常出现null错误之tostring
    删除sql计划 调用的目标发生了异常。 (mscorlib) 其他信息: 用户 'sa' 登录失败。
    js打印保存用户输入的内容
    vs调试有时能进去后台,有时不能进去
    vs当前不会命中断点,还没有为该文档加载任何符号
    动软数据库文档生成器 失败错误码HRESULT:0x80010105 解决办法
    关于ckeditor过滤掉html样式标签之我见
    快速批量插入sqlserver方法之我见
    vs找不到svn源代码管理插件之我见
    有关大学,有关爱好,有关学习,有关奋斗,有关理想:大学应该干些什么?我大学三年以来的感悟
  • 原文地址:https://www.cnblogs.com/Ronald-wang/p/11832354.html
Copyright © 2011-2022 走看看