linux用户和文件管理命令

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  修改用户登入后所使用的shell。

-u  修改用户ID。

-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命令编辑配置文件。

你可能感兴趣的:(linux用户和文件管理命令)