1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
(1)mkdir 创建目录,可以一次创建一个或多个目录,路径基名才是命令的作用对象,基名之前的路径名必须得存在(除非你用-p选项来自动创建)
命令常用选项有
-p: 自动按需创建父目录,比如假设当前目录下没有目录a,命令mkdir -p a/b/c 将依次连续创建a、b、c三个层级目录。
-v: verbose显示目录创建过程,在上面-p的例子中加上-v选项就能看到命令的详细创建这些目录的次序
-m MODE:创建目录时,指定目录的访问权限
(2)rmdir 删除空目录,命令操作对象必须是空的目录,实际运维操作中用的比较少。
(3)tree 以树状方式显示指定目录的内容(递归显示其子目录内容)
命令选项: -L level :指定要显示的目录层级(或称目录深度)
(4)cat:查看文本文件
命令常用选项为:
-n:显示文件的行号
-E:显示行结束符$
(5)tac:反向显示文本文件,即从最后一行向第一行显示内容。
命令常用选项为:
-n:显示文件的行号
-E:显示行结束符$
(6)head:显示文件的前n行。
命令常用选项为:
-n # 表示显示文件的前多少行,也可用 -#直接给出行数。
(7)tail:查看文件的后n行。
命令常用选项为:
-n # 表示显示文件的后多少行,也可用 -#直接给出行数。
-f:查看文件尾部内容结束后不退出,跟随显示新增的行。常用于查看日志文件的更新。
(8)more:分屏显示文件内容,翻屏至文件尾部后自动退出,中间可以空格翻页,按q退出
(9)less:也是分屏查看文件的命令,可以向上向下翻页。ctrl+d向下翻页,ctrl+u向上翻页。
(10)stat:显示文件或文件系统的状态,可以用来查看文件的时间戳等信息。
(11)touch:修改文件的时间戳
命令常用选项为:
-c:指定的文件路径不存在时不予创建
-a:仅修改文件的access time
-m:仅修改文件的modify time
-t STAMP:指定修改的时间值,STAMP的格式为[[CC]YY]MMDDhhmm[.ss]
(12)cp:复制文件或目录命令:
命令常用选项为:
-i:交互式复制,即覆盖目标文件之前提醒用户确认
-f:强制覆盖目标文件,而不提示
-r,-R:递归复制目录(包括目录内容和子目录的所有内容)
-d:复制符号链接文件本身,而不是其指向的源文件
-a:相当于-dR,常用于实现归档
(13)mv:实现文件移动和重命名
命令常用选项为:
-i:交互式复制,即覆盖目标文件之前提醒用户确认
-f:强制覆盖目标文件,而不提示
(14)rm:删除文件或目录
-i:交互式复制,即删除目标文件之前提醒用户确认
-f:强制删除目标文件,而不提示
-r:当删除的目标为目录时,需要加这个选项。
2、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
命令:
$ mkdir -p /tmp/a{1/{a,b},2}
$ mkdir -p /tmp/{x,q}_{y,z}
说明:
a{1/{a,b},2}会为命令展开功能的嵌套,同理{x,q}_{y,z}会展开为x_y, x_z, q_y和q_z这4个名称
3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件的元数据可以用stat命令来查看,
~]$ stat filename
文件的元数据信息如下:
文件名和文件路径
文件大小,文件的占用的块数,每个IO块的大小,文件类型
所在设备编号,Inode节点号,硬链接数量
文件访问权限,文件属主名称和Uid,文件属组名称和Gid
时间戳:最近访问时间、最近文件内容修改时间,最近文件元数据修改时间,centos7之后增加了一个文件创建时间。
使用touch命令来修改文件的时间戳信息:
touch 文件名: 修改文件的所有时间戳
touch -a 文件名:仅修改文件的access time
touch -m 文件名:仅修改文件的modify time
touch -t STAMP 文件名:指定修改的时间值,STAMP的格式为[[CC]YY]MMDDhhmm[.ss]
4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
命令:$ touch /tmp/tfile-$(date +"%Y-%m-%d-%H-%M-%S")
说明:$()表示执行里面的命令,把命令结果以字符串方式返回。
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
命令:$ cp -r /etc/p*[^0-9] /tmp/mytest1
说明:[0-9]表示0到9之间的数字 ,而[^0-9]表示除数字以外的字符,p*[^0-9]表示以p字符开头,以非数字结尾的文件名或目录名,由于要把符合条件的文件和目录都拷贝过去,给cp 命令加一个“-r”选项,这样可以拷贝目录。
其中p*[^0-9] 还可以写成 p*[^[:digit:]],这里[:digit:]表示0-9之间的数字,所以[^[:digit:]]表示非数字字符。
6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
命令:
#groupadd jack
# groupadd tom
# useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom
说明:先用groupadd创建jack组和tom组,然后用useradd创建tom用户
useradd命令的选项:-u 数字: 表示指定UID。 -d 路径:表示用户的家目录。-s SHELL:指定用户的shell。-g 组名 :指定基本组。-G 组名:指定附加组。
也可以不先创建tom组,然后在useradd时不加“-g tom”,会自动创建用户的基本组tom,且组ID和用户ID一样。
另外执行过程中发现/tmp目录下不能创建家目录报错:
useradd: cannot set SELinux context for home directory /tmp/tom
如果一定要在/tmp/目录下创建家目录要关闭SELinux,然后再创建用户
#setenforce 0
7、常用的用户以及文件管理命令有哪些,并演示命令以及用法。
(1)用户创建 useradd
常用命令选项有:
-u UID :指定用户ID
-g GID :指定用户的基本组,如果缺省,则使用与用户名相同的组名
-c "...":用户的注释信息
-d 路径:指定用户的家目录,如果缺省,则使用“/home/用户名”作为家目录
-s SHELL:指定用户的默认shell,查看系统支持哪些shell可用,可以看/etc/shells
-G 组名1,组名2 :指定用户的附加组,这些组要求要存在的。
比如:
useradd -u 900 -d /abc -s zsh -c "this is abc" abc
表示创建一个abc用户,它的UID为900,家目录为/abc,默认SHELL为zsh,注释信息为“this is abc”
(2)组创建 groupadd
常用命令选项:
-g GID :指定组ID
-r :创建系统组
(3)查看用户相关ID信息 id
id [选项] 用户名
-g 显示用户所属群组的ID。
-G 显示用户所属附加群组的ID。
-n 显示用户,所属群组或附加群组的名称。
-u 显示用户ID。
(4)切换用户或以其他用户身份运行命令 su
用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
su UserName:表示切换用户,但不运行新用户的环境配置文件
su - UserName:表示切换用户,且运行新用户的环境配置文件(常用这种方式)
su :表示切换到root用户
su - userName -c command 变更为帐号为 userName 的使用者并执行指令(command)后再变回原来使用者
(5)用户属性修改:usermod
-c<备注> 修改用户帐号的备注文字。
-d<家目录> 修改用户登入时的家目录。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-s
-u
-L 锁定用户密码,使密码无效。
-U 解除密码锁定。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
(6)更改用户的密码 passwd
root用户可以在不知道用户原密码的情况下修改任何用户的密码,普通用户只能修改自己的密码
-l 停止账号使用
-u 启用已被停止的账户
-x 最大使用期限
-n 最短使用期限
-w 到期前多少天开始警告
-i 过期后多少天停止用户账号
--stdin:从标准输入接收用户密码,非交互式修改用户密码
例如:echo "123456"|passwd --stdin username
(7)删除用户 userdel
-r:删除用户的家目录等
(8)组属性修改 groupmod
-n newgroupName 修改组的名字
-g GID:修改组的ID
(9)删除组:groupdel
(10)组密码的作用为用户切换基本组,其设置工具为gpasswd
-a 用户名:将用户添加到指定组中
-d 用户名:将用户从指定的组中删除
-A 指定管理员
(11)临时切换基本组:newgrp
如果用户本不属于此组,则需要输入组密码
(12)修改用户密码属性:chage
-d :修改用户最近一次修改密码的时间
-E:帐号到期的日期。过了这天,此帐号将不可用。
-I:账号过期时限: 在密码过期后几天,密码自动失效,这个用户将无法登陆系统了
(13)让普通用户可以临时使用root用户角色运行某个命令,而不需要输入root用户密码:sudo
-l :查看当前用户可执行的sudo命令
-k:清除此前记忆下的令牌
-u 用户名 命令:以指定的用户运行命令
用户可以执行哪些命令可以使用visudo命令编辑配置文件。