1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
2、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
7、常用的用户以及文件管理命令有哪些,并演示命令以及用法。
壹--- Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
1、Linux上的文件管理类命令都有
①cd,②ls,③touch,④mkdir,⑤cp,⑥mv,⑦rm,⑧rmdir,⑨pwd,⑩tree `
2、使用方法
① cd
用来切换工作目录至dirname。其中dirName表示法可为绝对路径或相对路径。
[语法]
cd (选项) (参数)
[实例]
cd : 切换回家目录; 注意:bash中, ~表示家目录;
cd ~:切换回自己的家目录
cd ~USERNAME:切换至指定用户的家目录;
cd -:在上一次所在目录与当前目录之间来回切换;
cd .. : 返回上级目录
cd ../.. :返回上两级目录
'相关的环境变量':
~]#echo $PWD 或者 ~]# pwd:当前工作目录
~]#echo $OLDPWD:上一次的工作目录
========================================================
②ls
用来显示目标列表
[语法]
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]:使用不同的颜色高亮显示不同类型的。
[参数]
目录:指定要显示列表的目录,也可以是具体的文件。
1.[root@localhost ~]# ls
anaconda-ks.cfg test
2.[root@localhost ~]# ls -a #显示目录下的隐藏文件
. anaconda-ks.cfg .bash_logout .bashrc .lesshst test
.. .bash_history .bash_profile .cshrc .tcshrc .viminfo
3.[root@localhost ~]# ls -A #同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)
anaconda-ks.cfg .bash_logout .bashrc .lesshst test
.bash_history .bash_profile .cshrc .tcshrc .viminfo
4.[root@localhost ~]# ls -l # -l #长格式显示文件,显示文件的详细属性信息,属主、属组、文件大小、权限等]
总用量 4
-rw-------. 1 root root 1384 5月 14 2017 anaconda-ks.cfg
drwxr-xr-x. 3 root root 128 12月 23 17:17 test
5.[root@localhost ~]# ls -lh # -h # –human-readable ,配合 -l 使用 , 以容易理解的格式列出文件大小 (例如 1K 234M 2G)]
总用量 4.0K
-rw-------. 1 root root 1.4K 5月 14 2017 anaconda-ks.cfg
drwxr-xr-x. 3 root root 128 12月 23 17:17 test
6.[root@localhost ~]# ls -ld # -d # –directory,配合 -l 使用,显示目录本身属性而非其内部的文件列表]
dr-xr-x---. 3 root root 179 12月 2 10:27
7.[root@localhost ~]# ls -r # -r # 逆序显示
test anaconda-ks.cfg
8.-R # 递归显示
[root@localhost ~]# ls -R
.:
anaconda-ks.cfg test
./test:
1 anaconda-ks.cfg2222 anaconda-ks.cfgllllllll l+l pa paa passwd q
./test/1:
2
./test/1/2:
③touch
有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
[语法]
touch(选项)(参数)
[选项]
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。
=================================================
stat 命令 》 用于显示文件的状态信息。stat命令的输出信息比[ls]命令的输出信息要更详细。
access time:2015-12-10 16:12:22.776423693 +0800 最近访问
modify time:2015-12-10 16:12:22.776423693 +0800 最近更改 (数据改变)
change time:2015-12-10 16:12:22.776423693 +0800 最近改动 (元数据改变)
[参数]
文件:指定要设置时间属性的文件列表。
④ mkdir
建立新目录
[语法]
mkdir (选项)(参数)
[选项]
-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
--version 显示版本信息。
[参数]
目录:指定要创建的目录列表,多个目录之间用空格隔开。
[实例]
1.'
[root@localhost test]# mkdir -p ./1/2/3/4/5/6/7/8/
[root@localhost test]# tree ./1
./1
└── 2
└── 3
└── 4
└── 5
└── 6
└── 7
└── 8
'
2.在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问
'~]# mkdir -p-m 750 bin/os_1'
'
第一个数字表示文件所有者的权限
第二个数字表示文件所有者同属一个用户组的其他用户的权限
第三个数字表示其他用户组的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1)。结合起来还有可读可执行(rx=5=4+1),可读可写(rw=6=4+2)等。
所以,chmod 755设置用户的权限为:
1.文件所有者可读可写可执行 --7
2.与文件所有者同属一个用户组的其他用户可读可执行 --5
3.其他用户组可读可执行 --5
'
⑤cp
用来将一个或多个源文件或者目录复制到指定的目的文件或目录
[语法]
cp(选项)(参数)
[选项]
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
[参数]
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
⑥ mv
用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
[语法]
mv(选项)(参数)
[选项]
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
[参数]
源文件:源文件列表。
目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。
[实例]
1、_将文件ex3改名为new1
'~]# mv ex3 new1'
2、_将目录/usr/men中的所有文件移到当前目录(用.表示)中:
'~]# mv /usr/men/* .'
⑦ rm
可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。
[语法]
rm (选项)(参数)
[选项]
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
[参数]
文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。
⑧ rmdir
用来删除空目录
[语法]
rmdir(选项)(参数)
[选项]
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v或-verboes:显示命令的详细执行过程;
--help:显示命令的帮助信息;
--version:显示命令的版本信息。
[参数]
目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。
⑨ pwd
以绝对路径的方式显示用户当前工作目录
【语法】
pwd(选项)
【选项】
--help:显示帮助信息;
--version:显示版本信息。
⑩ tree
以树状图列出目录的内容。
【语法】
tree(选项)(参数)
【选项】
-a:显示所有文件和目录;
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
-C:在文件和目录清单加上色彩,便于区分各种类型;
-d:先是目录名称而非内容;
-D:列出文件或目录的更改时间;
-f:在每个文件或目录之前,显示完整的相对路径名称;
-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号;
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
-i:不以阶梯状列出文件和目录名称;
-l:<范本样式> 不显示符号范本样式的文件或目录名称;
-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
-n:不在文件和目录清单加上色彩;
-N:直接列出文件和目录名称,包括控制字符;
-p:列出权限标示;
-P:<范本样式> 只显示符合范本样式的文件和目录名称;
-q:用“?”号取代控制字符,列出文件和目录名称;
-s:列出文件和目录大小;
-t:用文件和目录的更改时间排序;
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
贰、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
1、创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b
'''~]# mkdir a1 a1/{a,b} a2
~]# tree /tmp
/tmp
├── a1
│ ├── a
│ └── b
├── a2
└── systemd-private-b10abdcd914e436cbd83a534b40fe4a4-vmtoolsd.service-dLcRyq
└── tmp
└── vmware-root
7 directories, 0 files
2、在/tmp目录下创建目录:x_y, x_z, q_y, q_z
~]# mkdir x_{y,z} q_{y,z}
~]# tree /tmp
/tmp
├── a1
│ ├── a
│ └── b
├── a2
├── q_y
├── q_z
├── systemd-private-b10abdcd914e436cbd83a534b40fe4a4-vmtoolsd.service-dLcRyq
│ └── tmp
│ └── vmware-root
├── x_y
└── x_z
11 directories, 0 files
叁、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1、元数据:指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者、以及文件数据块的分布信息等等;
包括:文件的大小,权限,属主属组,时间戳,inode等属性。
2、如何查看元数据&时间戳
【命令】 stat
用于显示文件的状态信息。stat命令的输出信息比[ls]
命令的输出信息要更详细。
【语法】
stat(选项)(参数)
【选项】
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
【参数】
文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。
[root@localhost ~]# stat /tmp/mylinux
File: ‘/tmp/mylinux’
Size: 143 Blocks: 0 IO Block: 4096 directory
Device: fd00h/64768d Inode: 277403 Links: 14
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2018-03-11 22:52:35.214307783 +0800
Modify: 2018-03-11 22:51:01.463298567 +0800
Change: 2018-03-11 22:51:01.463298567 +0800
Birth: -
file:文件名
size:文件大小
block:文件占了多少个数据块
IO Block:文件所占数据块的块大小
Device:硬件,既说明该文件在硬盘的那个柱面
Inode:节点号
links:链接
Access(第一个):权限
Uid:该文件所属的属主
Gid:该文件所属的属组
context:安全上下文
Access(第二个):文件上一次的访问时间
Modify:文件上一次修改的时间
Change:文件上一次属性更改的时间
修改文件的时间戳信息
【命令】 touch
有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
【语法】
touch(选项)(参数)
【选项】
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。
atime:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;
mtime:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等;
ctime:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;
tmp]# stat a1
文件:"a1"
大小:24 块:0 IO 块:4096 目录
设备:802h/2050d Inode:17086787 硬链接:4
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2018-12-23 19:39:48.307151080 +0800
最近更改:2018-12-23 19:39:42.944019056 +0800
最近改动:2018-12-23 19:39:42.944019056 +0800
创建时间:-
改变访问时间
touch -a /tmp/a1
[root@localhost tmp]# stat a1
文件:"a1"
大小:24 块:0 IO 块:4096 目录
设备:802h/2050d Inode:17086787 硬链接:4
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2018-12-23 20:07:19.173340799 +0800
最近更改:2018-12-23 19:39:42.944019056 +0800
最近改动:2018-12-23 20:07:19.173340799 +0800
创建时间:-
改变修改时间
[root@localhost tmp]# touch -m /tmp/a1
[root@localhost tmp]# stat a1
文件:"a1"
大小:24 块:0 IO 块:4096 目录
设备:802h/2050d Inode:17086787 硬链接:4
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2018-12-23 20:07:19.173340799 +0800
最近更改:2018-12-23 20:11:41.952711180 +0800
最近改动:2018-12-23 20:11:41.952711180 +0800
创建时间:-
自定义改变时间戳
tmp]# touch -t 208801010000.00 a1
tmp]# stat a1
文件:"a1"
大小:24 块:0 IO 块:4096 目录
设备:802h/2050d Inode:17086787 硬链接:4
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2088-01-01 00:00:00.000000000 +0800
最近更改:2088-01-01 00:00:00.000000000 +0800
最近改动:2018-12-23 20:19:09.283920351 +0800
创建时间:-
肆、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
【命令】 mkdir tfile-$(date +%F-%H-%M-%S)
tmp]# mkdir tfile-$(date +%F-%H-%M-%S)
[root@localhost tmp]# ll
总用量 0
drwxr-xr-x. 4 root root 24 1月 1 2088 a1
drwxr-xr-x. 2 root root 6 12月 23 19:39 a2
-rw-r--r--. 1 root root 0 1月 1 2088 aq
drwxr-xr-x. 2 root root 6 12月 23 19:44 q_y
drwxr-xr-x. 2 root root 6 12月 23 19:44 q_z
drwx------. 3 root root 17 12月 20 21:12 systemd-private-b10abdcd914e436cbd83a534b40fe4a4-vmtoolsd.service-dLcRyq
drwxr-xr-x. 2 root root 6 12月 23 20:40 tfile-2018-12-23-20-40-21
drwxr-xr-x. 2 root root 6 12月 23 19:44 x_y
drwxr-xr-x. 2 root root 6 12月 23 19:44 x_z
[root@localhost tmp]# mkdir tfile-$(date +%F-%H-%M-%S)
[root@localhost tmp]# ll
总用量 0
drwxr-xr-x. 4 root root 24 1月 1 2088 a1
drwxr-xr-x. 2 root root 6 12月 23 19:39 a2
-rw-r--r--. 1 root root 0 1月 1 2088 aq
drwxr-xr-x. 2 root root 6 12月 23 19:44 q_y
drwxr-xr-x. 2 root root 6 12月 23 19:44 q_z
drwx------. 3 root root 17 12月 20 21:12 systemd-private-b10abdcd914e436cbd83a534b40fe4a4-vmtoolsd.service-dLcRyq
drwxr-xr-x. 2 root root 6 12月 23 20:40 tfile-2018-12-23-20-40-21
drwxr-xr-x. 2 root root 6 12月 23 20:40 tfile-2018-12-23-20-40-34
drwxr-xr-x. 2 root root 6 12月 23 19:44 x_y
drwxr-xr-x. 2 root root 6 12月 23 19:44 x_z
伍、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
【命令】etc]# cp -r p*[^[:digit:]] /tmp/mytest1/
陆、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
~]#groupadd jack
~]#useradd tom -u 5001 -d /tmp/tom -G jack -s /bin/zsh
useradd命令的选项:
-u 数字: 表示指定UID。
-d 路径:表示用户的家目录。
-s SHELL:指定用户的shell。
-g 组名 :指定基本组。
-G 组名:指定附加组。
也可以不先创建tom组,然后在useradd时不加“-g tom”,会自动创建用户的基本组tom,且组ID和用户ID一样。
柒、常用的用户以及文件管理命令有哪些,并演示命令以及用法。
①useradd、②userdel、③usermod、④passwd、⑤groupadd、⑥groupdel、⑦groupmod、⑧gpasswd、⑨chage、⑩chsh、⒒id、⒓su