美文网首页
二、全程第二周

二、全程第二周

作者: 无法成为野兽 | 来源:发表于2019-02-15 11:27 被阅读0次

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

    文件管理工具:
    1、pwd 显示工作目录

    [root@node04 ~]# pwd
    /root
    

    2、cd cd [/PATH/TO/SOMEDIR] 改变目录
    cd: 切换回家目录

    [root@node04 bin]# cd
    [root@node04 ~]# pwd
    /root
    

    cd ~: 切换回自己的家目录

    [root@node04 ~]# cd /bin
    [root@node04 bin]# cd ~
    [root@node04 ~]# pwd
    /root
    

    cd ~USERNAME: 切换至指定用户的家目录

    [root@node04 ~]# cd /bin
    [root@node04 bin]# cd ~root
    [root@node04 ~]# pwd
    /root
    

    cd -: 在上一次的所在目录与当前目录之间来回切换

    [root@node04 ~]# cd -
    /bin
    [root@node04 bin]# cd -
    /root
    [root@node04 ~]# cd -
    /bin
    [root@node04 bin]# cd -
    /root
    

    3、ls: list, 列出指定目录下的内容;
    -a: 显示所有文件,包括隐藏文件;

    [root@node04 ~]# ls -a
    .   anaconda-ks.cfg  .bash_logout   .bashrc  .config  .dbus      .ICEauthority         .local   .viminfo     公共  视频  文档  音乐
    ..  .bash_history    .bash_profile  .cache   .cshrc   .esd_auth  initial-setup-ks.cfg  .tcshrc  .Xauthority  模板  图片  下载  桌面
    [root@node04 ~]#
    

    -A: 显示除. 和..之外 的所有文件;

    [root@node04 /]# ls -a
    .  ..  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@node04 /]# ls -A
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    -l:--long,长格式列表,即显示文件的详细属性信息;

    [root@node04 /]# ls -l
    总用量 28
    lrwxrwxrwx.   1 root root    7 2月  14 13:30 bin -> usr/bin
    dr-xr-xr-x.   5 root root 4096 2月  14 13:40 boot
    drwxr-xr-x   19 root root 3220 2月  14 15:07 dev
    drwxr-xr-x. 139 root root 8192 2月  14 16:08 etc
    drwxr-xr-x.   3 root root   20 2月  14 13:42 home
    lrwxrwxrwx.   1 root root    7 2月  14 13:30 lib -> usr/lib
    lrwxrwxrwx.   1 root root    9 2月  14 13:30 lib64 -> usr/lib64
    drwxr-xr-x.   2 root root    6 4月  11 2018 media
    drwxr-xr-x.   2 root root    6 4月  11 2018 mnt
    drwxr-xr-x.   3 root root   16 2月  14 13:34 opt
    dr-xr-xr-x  176 root root    0 2月  14 15:07 proc
    dr-xr-x---.  14 root root 4096 2月  14 15:09 root
    drwxr-xr-x   39 root root 1220 2月  14 16:08 run
    lrwxrwxrwx.   1 root root    8 2月  14 13:30 sbin -> usr/sbin
    drwxr-xr-x.   2 root root    6 4月  11 2018 srv
    dr-xr-xr-x   13 root root    0 2月  14 15:07 sys
    drwxrwxrwt.  18 root root 4096 2月  14 17:05 tmp
    drwxr-xr-x.  13 root root  155 2月  14 13:30 usr
    drwxr-xr-x.  21 root root 4096 2月  14 13:40 var
    

    -h, --human-readable: 对文件大小单位换算;换算后结果可能非精确值;

    [root@node04 /]# ls -h
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    -d: 查看目录自身而非其内部的文件列表;

    [root@node04 /]# ls -h
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    [root@node04 /]# ls -d
    .
    

    -r: reverse,逆序显示;

    [root@node04 /]# ls -r
    var  usr  tmp  sys  srv  sbin  run  root  proc  opt  mnt  media  lib64  lib  home  etc  dev  boot  bin
    

    -R: recursive, 递归显示

    
    
    [root@node04 ~]# ls -R test01/
    test01/:
    test02
    
    test01/test02:
    test03
    
    
    test01/test02/test03:
    test04
    
    
    test01/test02/test03/test04:
    
    
    4、cat     文件文本查看器
    [root@node04 ~]# cat 1.txt
    1
    2
    
    
    3
    34\\\
    hjdkhdk
    djhkdhj
    cb
    cbn
    122
    djij
    

    -n: 给显示文本行编号;

    [root@node04 ~]# cat -n 1.txt
         1  1
         2  2
         3
         4  3
         5  34\\\
         6  hjdkhdk
         7  djhkdhj
         8  cb
         9  cbn
        10  122
        11  djij
        12
    

    -E: 显示行结束符$;

    [root@node04 ~]# cat -E 1.txt
    1$
    2$
    $
    3$
    34\\\$
    hjdkhdk$
    djhkdhj$
    cb$
    cbn$
    122$
    djij$
    $
    

    5、tac 文件文本查看工具:

    [root@node04 ~]# tac 1.txt
    
    
    djij
    122
    cbn
    cb
    djhkdhj
    hjdkhdk
    34\\\
    3
    
    
    2
    1
    

    6、file:查看文件内容类型;

    [root@node04 ~]# file 1.txt
    1.txt: ASCII text
    

    7、关机或重启命令:shutdown
    -h: halt
    -r: reboot
    8、date:系统时钟, 显示日期时间:date

    [root@node04 ~]# date
    2019年 02月 14日 星期四 17:34:24 CST
    

    9、hwclock,clock: 硬件时钟,显示或设定硬件时钟

    [root@node04 ~]# hwclock
    2019年02月14日 星期四 17时34分52秒  -0.865988 秒
    [root@node04 ~]# clock
    2019年02月14日 星期四 17时34分57秒  -0.802841 秒
    

    10、cal:日历

    [root@node04 ~]# cal
          二月 2019
    日 一 二 三 四 五 六
                    1  2
    3  4  5  6  7  8  9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28
    
    
    [root@node04 ~]# cal 2019
                                   2019
    
    
            一月                   二月                   三月
    日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
           1  2  3  4  5                   1  2                   1  2
    6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
    13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
    20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
    27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                                  31
            四月                   五月                   六月
    日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
        1  2  3  4  5  6             1  2  3  4                      1
    7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
    14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
    21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
    28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                                  30
            七月                   八月                   九月
    日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
        1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
    7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
    14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
    21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
    28 29 30 31            25 26 27 28 29 30 31   29 30
    
    
            十月                  十一月                 十二月
    日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
           1  2  3  4  5                   1  2    1  2  3  4  5  6  7
    6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
    13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
    20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
    27 28 29 30 31         24 25 26 27 28 29 30   29 30 31
    

    二、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z

    [root@node04 test]# mkdir -pv /tmp/a{1/{a,b},2}
    mkdir: 已创建目录 "/tmp/a1"
    mkdir: 已创建目录 "/tmp/a1/a"
    mkdir: 已创建目录 "/tmp/a1/b"
    mkdir: 已创建目录 "/tmp/a2"
    [root@node04 test]# mkdir -p {x,q}_{y,z}
    [root@node04 test]# ls
    q_y  q_z  x_y  x_z
    

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

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

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

    [root@node04 ~]# stat 1.txt
      文件:"1.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68770216    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-14 17:29:18.375151310 +0800
    最近更改:2019-02-14 17:29:11.522141746 +0800
    最近改动:2019-02-14 17:29:11.522141746 +0800
    创建时间:-
    
    

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

    示例
    -a: 仅修改access time;

    [root@node04 ~]# stat 1.txt
      文件:"1.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68770216    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-14 17:29:18.375151310 +0800
    最近更改:2019-02-14 17:29:11.522141746 +0800
    最近改动:2019-02-14 17:29:11.522141746 +0800
    创建时间:-
    [root@node04 ~]# touch -a 1.txt
    [root@node04 ~]# stat 1.txt
      文件:"1.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68770216    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-15 10:02:36.996527610 +0800
    最近更改:2019-02-14 17:29:11.522141746 +0800
    最近改动:2019-02-15 10:02:36.996527610 +0800
    创建时间:-
    
    

    -m:仅修改modify time;

    [root@node04 ~]# touch -m 1.txt
    [root@node04 ~]# stat 1.txt
      文件:"1.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68770216    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-15 10:02:36.996527610 +0800
    最近更改:2019-02-15 10:03:56.751635360 +0800
    最近改动:2019-02-15 10:03:56.751635360 +0800
    创建时间:-
    
    

    四、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    [root@node04 ~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
    [root@node04 ~]# ls /tmp/t
    test/                       tracker-extract-files.0/
    tfile-2019-02-15-10-12-39   tracker-extract-files.1000/
    [root@node04 ~]# ls /tmp/tfile-2019-02-15-10-12-39
    /tmp/tfile-2019-02-15-10-12-39
    
    

    五、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    [root@node04 mytest1]# mkdir -p /tmp/mytest1/
    [root@node04 mytest1]# cp -rv /etc/p*[^0-9] /tmp/mytest1/
    
    

    六、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack。

    [root@node04 ~]# groupadd jack
    [root@node04 ~]# useradd -u 5001 -d /tmp/tom/  -s /bin/zsh -G jack tom
    [root@node04 home]# cat /etc/passwd | grep tom
    tom:x:5001:5001::/tmp/tom/:/bin/zsh
    [root@node04 home]# id tom
    uid=5001(tom) gid=5001(tom) 组=5001(tom),1001(jack)
    

    七、常用的用户以及文件管理命令有哪些,并演示命令以及用法?

    Linux上的文件管理类命令有三个,分别是:cp、mv、rm命令。
    cp:
     复制文件和目录的命令。cp命令分为两种,分别是:单源复制和多源复制:
     单源复制:
       如果目标文件和目录(DEST)不存在,则实现创建此文件,并复制源文件的数据流至DEST中。
       如果DEST文件存在:
        如果DEST是非目录文件,则会覆盖目标文件;
        如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,再复制文件。
     多源复制:
      如果目标文件不存在,错误;
      如果目标文件存在:
        如果目标文件是非目录文件,错误;
        如果目标是目录文件,分别复制每个文件至目标目录中,并保持原名。

    格式:
    cp [选项] 源目录或文件 目标目录或文件

    选项:
    -i:交互式复制,覆盖之前提醒用户确认;

    [root@node04 ~]# cp -i 1.txt 11.txt
    cp:是否覆盖"11.txt"? y
    [root@node04 ~]#
    

    -r/R :递归复制,将指定目录下的所有文件与子文件一并处理;

    [root@node04 ~]# cp /etc/system
    systemd/            system-release      system-release-cpe
    [root@node04 ~]# cp /etc/system
    systemd/            system-release      system-release-cpe
    [root@node04 ~]# cp -r /etc/systemd/ /tmp/
    [root@node04 ~]# tree  /tmp/systemd
    /tmp/systemd
    ├── bootchart.conf
    ├── coredump.conf
    ├── journald.conf
    ├── logind.conf
    ├── system
    

    -d:当复制符号链接时,把目标文件或目录也建立为符号链接,并指向源文件或目录链接的原始文件或目录;

    [root@node04 ~]# ll 13.txt
    lrwxrwxrwx 1 root root 5 2月  15 11:03 13.txt -> 1.txt
    [root@node04 ~]# cp -d 13.txt 14.txt
    [root@node04 ~]# ll 14.txt
    lrwxrwxrwx 1 root root 5 2月  15 11:04 14.txt -> 1.txt
    

    -p:保留源文件或目录的属性;

    [root@node04 ~]# cp 1.txt 15.txt
    [root@node04 ~]# stat 1.txt
      文件:"1.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68770216    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-15 10:58:37.500989084 +0800
    最近更改:2019-02-15 10:03:56.751635360 +0800
    最近改动:2019-02-15 10:03:56.751635360 +0800
    创建时间:-
    [root@node04 ~]# stat 15.txt
      文件:"15.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68792125    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-15 11:06:53.666406782 +0800
    最近更改:2019-02-15 11:06:53.666406782 +0800
    最近改动:2019-02-15 11:06:53.666406782 +0800
    创建时间:-
    [root@node04 ~]# cp -p  1.txt 16.txt
    [root@node04 ~]# stat 16.txt
      文件:"16.txt"
      大小:46              块:8          IO 块:4096   普通文件
    设备:803h/2051d        Inode:68792126    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    最近访问:2019-02-15 10:58:37.500989084 +0800
    最近更改:2019-02-15 10:03:56.751635360 +0800
    最近改动:2019-02-15 11:07:14.673472995 +0800
    创建时间:-
    

    mv:
      移动或重命名文件。

    用法:
    mv [选项] SOURCE DIRECTORY

    选项:
    -i:交互式操作,覆盖前先询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。

    [root@node04 ~]# cp 1.txt /tmp
    [root@node04 ~]# mv -i 1.txt /tmp/
    mv:是否覆盖"/tmp/1.txt"? y
    

    -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。

    [root@node04 ~]# mv -f  1.txt /tmp/
    [root@node04 ~]#
    

    rm:
     删除文件或目录。
     注意:使用rm命令要格外小心,一旦删除则无法恢复。所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)

    用法:
    rm [选项] 文件

    选项:
    -i:删除已有文件或目录之前先询问用户。(只有root用户默认rm=rm -i)

    [root@node04 ~]# rm 3.txt
    rm:是否删除普通空文件 "3.txt"?y
    [root@node04 ~]#
    

    -f:强制删除文件或目录

    [root@node04 ~]# rm -f 10.txt
    [root@node04 ~]#
    

    -r/R:递归处理,将指定目录下的所有文件与子目录一并处理。

    [root@node04 ~]# rm -r test01
    rm:是否进入目录"test01"? y
    rm:是否进入目录"test01/test02"? y
    rm:是否进入目录"test01/test02/test03"? y
    rm:是否删除目录 "test01/test02/test03/test04"?y
    rm:是否删除目录 "test01/test02/test03"?y
    rm:是否删除目录 "test01/test02"?y
    rm:是否删除目录 "test01"?y
    [root@node04 ~]#
    

    相关文章

      网友评论

          本文标题:二、全程第二周

          本文链接:https://www.haomeiwen.com/subject/ldjpeqtx.html