Linux文件管理总结

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

  1、ls
   命令作用:列出当前目录的内容或指定目录
   命令格式:ls [options] [files_or_dirs]
   命令选项:
        ls -a 包含隐藏文件    
        ls -l 显示额外的信息
        ls -R 目录递归通过
        ls -ld 目录和符号链接信息
        ls –S 按从大到小排序
        ls –t 按mtime排序
        ls –u 配合-t选项,显示并按atime从新到旧排序
        ls –U 按目录存放顺序显示
        ls –X 按文件后缀排序
[root@cnetos7 /data]#ls
bin  issue  issue~  issue.~1~
[root@cnetos7 /data]#ls -a
.  ..  bin  .b.swo  issue  issue~  issue.~1~
[root@cnetos7 /data]#ls -l
total 20
drwxrwxrwx. 2 root root 4096 Oct 10 16:49 bin
-rw-r--r--. 1 root root   72 Oct 12 11:23 issue
-rw-r--r--. 1 root root   72 Oct 12 11:21 issue~
-rw-r--r--. 1 root root   72 Oct 12 11:22 issue.~1~
[root@cnetos7 /data]#ls -R
.:
bin  issue  issue~  issue.~1~

./bin:
argsnum.sh  b.sh       calc_line.sh  create_script.sh  diskip.sh  ex.sh   p.sh   send.sh  t1.sh
backup.sh   calc_2.sh  color.sh      diskcheck.sh      excute.sh  per.sh  pv.sh  son.sh   zb.sh
示例
  
  2、touch
   命令作用:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;

                                      二是用来创建新的空文件。

   命令格式:touch [OPTION]... FILE...
   命令选项:
        -a 仅改变 atime和ctime
        -m 仅改变 mtime和ctime
        -t [[CC]YY]MMDDhhmm[.ss],指定atime和mtime的时间戳
        -c 如果文件不存在,则不予创建
[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 69          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2019-10-12 11:11:48.361916150 +0800
Modify: 2019-10-12 11:11:48.361916150 +0800
Change: 2019-10-12 11:11:48.361916150 +0800
[root@cnetos7 /data]#touch -a -t 201808081010.00 a
[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 69          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2018-08-08 10:10:00.000000000 +0800
Modify: 2019-10-12 11:11:48.361916150 +0800
Change: 2019-10-12 11:16:06.264899577 +0800
 Birth: -
[root@cnetos7 /data]#touch -m -t 201808081010.00 a
[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 69          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2018-08-08 10:10:00.000000000 +0800
Modify: 2018-08-08 10:10:00.000000000 +0800
Change: 2019-10-12 11:16:22.887898509 +0800
 Birth: -
示例

 

  3、cp

   命令作用:复制文件和目录
   命令格式:cp [options] source... directory
   命令选项:
        -i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖
        -n 不覆盖,注意两者顺序
        -r, -R 递归,若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
        -a 归档,此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
        -d 复制时保留链接,不复制原文件,只复制链接名
        -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
        -f 覆盖已经存在的目标文件而不给出提示
        -u --update 只复制源比目标更新文件或目标不存在的文件
        -b 目标存在,覆盖前先备份
        --backup=numbered 目标存在,覆盖前先备份加数字后缀
[root@cnetos7 /data]#cp /etc/issue /data/
[root@cnetos7 /data]#ls
bin  issue
[root@cnetos7 /data]#cp -b  /etc/issue /data/
cp: overwrite ‘/data/issue’? y
[root@cnetos7 /data]#ls
bin  issue  issue~
[root@cnetos7 /data]#cp -b  /etc/issue /data/ --backup=numbered
cp: overwrite ‘/data/issue’? y
[root@cnetos7 /data]#ls
bin  issue  issue~  issue.~1~
示例
  4、mv
    命令作用:移动和重命名文件
   命令格式:mv [OPTION]... [-T] SOURCE DEST
   命令选项
        -i 交互式
        -f 强制
        -b 目标存在,覆盖前先备份
[root@cnetos7 /data]#mv -i issue /data/a/
[root@cnetos7 /data]#ls /data/a/
issue
[root@cnetos7 /data]#mv -b issue /data/a/
mv: overwrite ‘/data/a/issue’? y
[root@cnetos7 /data]#ls /data/a/
issue  issue~
示例

 

    5、rm
    命令作用:删除
   命令格式:rm [OPTION]... FILE...
   命令选项:  
        -i 交互式
        -f 强制删除
        -r 递归
        --no-preserve-root 删除/
[root@cnetos7 /data]#ls
a  bin  issue~  issue.~1~
[root@cnetos7 /data]#rm -i issue~
rm: remove regular file ‘issue~’? y
[root@cnetos7 /data]#rm -f issue.~1~ 
[root@cnetos7 /data]#rm -rf a
[root@cnetos7 /data]#ls
bin
示例
  
  6、tree
    命令作用:显示目录树
    命令格式:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
    命令选项:        -d: 只显示目录
        -L level:指定显示的层级数目
        -P pattern: 只显示由指定pattern匹配到的路径
 
[root@cnetos7 /data]#tree -d
.
├── a
│   ├── a
│   ├── b
│   ├── c
│   └── d
└── bin

6 directories
[root@cnetos7 /data]#tree -L 1
.
├── a
└── bin

2 directories, 0 files
[root@cnetos7 /data]#tree -p /data/bin/
/data/bin/
├── [-rwxr-xr-x]  argsnum.sh
├── [-rwxr-xr-x]  backup.sh
├── [-rwxr-xr-x]  b.sh
├── [-rwxr-xr-x]  calc_2.sh
├── [-rwxr-xr-x]  calc_line.sh
├── [-rwxr-xr-x]  color.sh
├── [-rwxr-xr-x]  create_script.sh
├── [-rwxr-xr-x]  diskcheck.sh
├── [-rwxr-xr-x]  diskip.sh
├── [-rwxr-xr-x]  excute.sh
├── [-rwxr-xr-x]  ex.sh
├── [-rwxr-xr-x]  per.sh
├── [-rwxr-xr-x]  p.sh
├── [-rwxr-xr-x]  pv.sh
├── [-rwxr-xr-x]  send.sh
├── [-rwxr-xr-x]  son.sh
├── [-rwxr-xr-x]  t1.sh
└── [-rwxr-xr-x]  zb.sh

0 directories, 18 files
示例
 
  7、mkdir
    命令作用:创建目录
   命令格式:mkdir [OPTION]... DIRECTORY...
   命令选项: 
        -p 如果上级目录不存在,则建立
        -v 显示详细信息
        -m MODE: 创建目录时直接指定权限
[root@cnetos7 /data]#mkdir -p 1/2/3
[root@cnetos7 /data]#tree 1/
1/
└── 2
    └── 3

2 directories, 0 files
[root@cnetos7 /data]#mkdir -v aaa
mkdir: created directory ‘aaa’
[root@cnetos7 /data]#mkdir -m 777 a
[root@cnetos7 /data]#ll
total 8
drwxrwxrwx. 2 root root    6 Oct 12 11:55 a
drwxrwxrwx. 2 root root 4096 Oct 10 16:49 bin
示例

  

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

[root@cnetos7 /data]#mkdir -p a/{1,2}/{a,b}
[root@cnetos7 /data]#tree a/
a/
├── 1
│   ├── a
│   └── b
└── 2
    ├── a
    └── b

6 directories, 0 files
[root@cnetos7 /data]#mkdir -p {x,q}/{y,z}
[root@cnetos7 /data]#tree q/ x/
q/
├── y
└── z
x/
├── y
└── z

4 directories, 0 files
示例

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

  1、查看文件元数据

[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 88          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2019-10-12 12:32:09.521606345 +0800
Modify: 2019-10-12 12:32:09.521606345 +0800
Change: 2019-10-12 12:32:09.521606345 +0800
 Birth: -
示例

 

  2、元数据信息的含义

    1、File:文件名

    2、Size:文件大小(单位:B)

    3、Blocks:文件所占块个数

    4、IO Block:每个数据块的大小(单位:B)

    5、regular file:普通文件(此处显示文件的类型)

    6、Inode:文件的Inode号,文件的索引节点号

    7、Links:硬链接次数

    8、Access:权限

    9、Uid:(属主id/属主名)

    10、Gid:(属组id/属组名)

    11、Context:文件所在的环境

    12、Access:最近访问时间access time (atime)

    13、Modify:数据改动时间modification time (mtime)

    14、Change:元数据改动时间status time (ctime)

    15、Creat:文件创建时间

  3、修改文件时间戳信息

[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 69          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2019-10-12 11:11:48.361916150 +0800
Modify: 2019-10-12 11:11:48.361916150 +0800
Change: 2019-10-12 11:11:48.361916150 +0800
[root@cnetos7 /data]#touch -a -t 201808081010.00 a
[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 69          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2018-08-08 10:10:00.000000000 +0800
Modify: 2019-10-12 11:11:48.361916150 +0800
Change: 2019-10-12 11:16:06.264899577 +0800
 Birth: -
[root@cnetos7 /data]#touch -m -t 201808081010.00 a
[root@cnetos7 /data]#stat a
  File: ‘a’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d    Inode: 69          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2018-08-08 10:10:00.000000000 +0800
Modify: 2018-08-08 10:10:00.000000000 +0800
Change: 2019-10-12 11:16:22.887898509 +0800
 Birth: -
示例

 

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

[root@cnetos7 /data]#touch /tmp/tfile"$(date +"%F-%T")"
[root@cnetos7 /data]#ls /tmp/
systemd-private-9134fccafc04430aa9f4eb05f2ca24c3-bolt.service-8syaiZ          vmware-root_6161-1949770682
systemd-private-9134fccafc04430aa9f4eb05f2ca24c3-colord.service-W6c6oV        vmware-root_6173-1991648305
systemd-private-9134fccafc04430aa9f4eb05f2ca24c3-cups.service-YE4lth          vmware-root_6176-968932940
systemd-private-9134fccafc04430aa9f4eb05f2ca24c3-rtkit-daemon.service-8IiS0g  vmware-root_6183-1983194517
tfile2019-10-12-12:52:01                                                      vmware-root_6221-1690178113
tracker-extract-files.0                                                       vmware-root_6241-1714886130
示例

 

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

[root@cnetos7 /tmp/mytest1]#cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
[root@cnetos7 /tmp/mytest1]#ls
pam.d   passwd-       pinforc  plymouth  pnm2ppa.conf  postfix  prelink.conf.d  profile    protocols  purple
passwd  pbm2ppa.conf  pki      pm        popt.d        ppp      printcap        profile.d  pulse      python
示例

 

 

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

[root@cnetos7 /tmp]#useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom
[root@cnetos7 /tmp]#id tom
uid=5001(tom) gid=1003(tom) groups=1003(tom),1002(jack)
示例

 

 

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

  1、用户和组的配置文件   
    /etc/passwd:用户及其属性信息(名称、UID、主组ID等)
    /etc/group:组及其属性信息
    /etc/shadow:用户密码及其相关属性
    /etc/gshadow:组密码及其相关属性
 
  2、useradd
   命令作用:创建用户
   命令格式:useradd [options] LOGIN
   命令选项:
        -u UID
        -o 配合-u 选项,不检查UID的唯一性
        -g GID:指明用户所属基本组,可为组名,也可以GID
        -c "COMMENT":用户的注释信息
        -d HOME_DIR: 以指定的路径(不存在)为家目录
        -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中
        -G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
        -N 不创建私用组做主组,使用users组做主组
        -r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
        -m 创建家目录,用于系统用户
        -M 不创建家目录,用于非系统用户
seradd -u 5001 -d /tmp/tom -s /bin/zsh -g user -G uuuu user
示例

 

  3、usermod

 

    命令作用:修改用户属性
   命令格式:usermod [OPTION] login
   命令选项:
        -u UID: 新UID
        -g GID: 新主组
        -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
        -s SHELL:新的默认SHELL
        -c 'COMMENT':新的注释信息
        -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
        -l login_name: 新的名字;
        -L: lock指定用户,在/etc/shadow 密码栏的增加 !
        -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
        -e YYYY-MM-DD: 指明用户账号过期日期
        -f INACTIVE: 设定非活动期限
[root@cnetos7 /tmp]#id test1
uid=1001(test1) gid=1001(test1) groups=1001(test1
[root@cnetos7 /tmp]#usermod -u 1111 -g qizi -G ntp -s /sbin/nologin -c 'test user' test1
root@cnetos7 /tmp]#id test1
uid=1111(test1) gid=1000(qizi) groups=1000(qizi),38(ntp)
[root@cnetos7 /tmp]#cat /etc/passwd | grep test1
test1:x:1111:1000:test user:1111:/sbin/nologin
示例
 

  4、userdel

   命令作用:删除用户
   命令格式:userdel [OPTION]... login
   命令选项:
        -r: 删除用户家目录
root@cnetos7 /]#ls /home/
qizi  test1
root@cnetos7 /]#userdel -r test1 
[root@cnetos7 /]#ls /home/
qizi
示例

 

  5、groupadd

   命令作用:创建组
   命令格式:groupadd [OPTION]... group_name
   命令选项:
        -g GID: 指明GID号;[GID_MIN, GID_MAX]
        -r: 创建系统组
        CentOS 6: ID<500
        CentOS 7: ID<1000 
[root@cnetos7 /]#groupadd -g 1212 test01
[root@cnetos7 /]#groupadd -r test02
[root@cnetos7 /]#cat /etc/group |grep test
test01:x:1212:
test02:x:981:
示例

 

  6、groupmod

   命令作用:修改用户组属性
   命令格式:groupmod [OPTION]... group
   命令选项:
        -n group_name: 新名字
        -g GID: 新的GID
[root@cnetos7 /]#cat /etc/group |grep test01
test01:x:1212:
[root@cnetos7 /]#groupmod -n tt01 test01
[root@cnetos7 /]#cat /etc/group |grep tt01
tt01:x:1212:
[root@cnetos7 /]#groupmod -g 1221 tt01
[root@cnetos7 /]#cat /etc/group |grep tt01
tt01:x:1221
示例

 

  7、groupdel

   命令作用:删除用户组
   命令格式:groupdel [options] GROUP
   命令选项:
[root@cnetos7 ~]#groupdel test02
[root@cnetos7 ~]#groupdel tt01
示例

 

  8、groupmems

   命令作用:更改和查看组成员
   命令格式:groupmems [options] [action]
   命令选项:
        -g, --group groupname 更改为指定组 (只有root)
        Actions:
        -a, --add username 指定用户加入组
        -d, --delete username 从组中删除用户
        -p, --purge 从组中清除所有成员
        -l, --list 显示组成员列表
[root@cnetos7 ~]#groupmems -a user1 -g qizi
[root@cnetos7 ~]#groupmems -d user1 -g qizi
[root@cnetos7 ~]#groupmems -g qizi -l
qizi  uu 
[root@cnetos7 ~]#groupmems -g qizi -d uu
[root@cnetos7 ~]#groupmems -g qizi -l
qizi
示例

 

  9、chown

   命令作用:修改文件属主
   命令格式:chown [OPTION]... [OWNER][:[GROUP]] FILE...
   命令选项:
        -R: 递归
[root@cnetos7 /data]#ll test 
-rw-r--r--. 1 root root 0 Oct 12 15:15 test
[root@cnetos7 /data]#chown qizi test 
[root@cnetos7 /data]#ll test
-rw-r--r--. 1 qizi root 0 Oct 12 15:15 test
示例

 

  10、chgrp

   命令作用:修改文件的属组
   命令格式:chgrp [OPTION]... GROUP FILE...
   命令选项:
        -R 递归
[root@cnetos7 /data]#ll test 
-rw-r--r--. 1 qizi root 0 Oct 12 15:15 test
[root@cnetos7 /data]#chgrp qizi test 
[root@cnetos7 /data]#ll test 
-rw-r--r--. 1 qizi qizi 0 Oct 12 15:15 test
示例

 

  11、chmod

   命令作用:修改文件权限
   命令格式:chmod [OPTION]... OCTAL-MODE FILE... 、 chmod [OPTION]... MODE[,MODE]... FILE... 、 chmod [OPTION]... --reference=RFILE FILE...
   命令选项:
        -R: 递归修改权限
        MODE:
        修改一类用户的所有权限:
        u= g= o= ug= a= u=,g=
        修改一类用户某位或某些位权限
        u+ u- g+ g- o+ o- a+ a- + -
        --reference=RFILE FILE...参考RFILE文件的权限,将FILE的修改为同RFILE
[root@cnetos7 /data]#ll test 
-rw-r--r--. 1 qizi qizi 0 Oct 12 15:15 test
[root@cnetos7 /data]#chmod 777 test 
[root@cnetos7 /data]#ll test 
-rwxrwxrwx. 1 qizi qizi 0 Oct 12 15:15 test
[root@cnetos7 /data/q]#ll
total 0
-rwxrwxrwx. 1 root root 0 Oct 12 15:29 a
-rw-r--r--. 1 root root 0 Oct 12 15:29 b
[root@cnetos7 /data/q]#chmod  --reference=a b
[root@cnetos7 /data/q]#ll
total 0
-rwxrwxrwx. 1 root root 0 Oct 12 15:29 a
-rwxrwxrwx. 1 root root 0 Oct 12 15:29 b
示例

 

 

 
        
     

 

 

posted @ 2019-10-08 11:08  启子丶  阅读(491)  评论(0)    收藏  举报