一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cp命令:copy
使用方法:
单源复制: cp [OPTION]… [-T] SOURCE DEST
多源复制: cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
常用命令选项:
-i:交互式复制,即覆盖之前提醒用户确认
-f:强制覆盖目标文件
-r:递归复制目录;
-d:复制符号链接本身,而非指向内容的源文件
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
示例1:
[root@localhost ~]# touch test1
[root@localhost ~]# cp -i /etc/issue test1
cp:是否覆盖"test1"? y
将issue覆盖至test1中,会产生提示
示例2:
[root@localhost ~]# cp -r /tmp/ hi
将/tmp/目录下所有的文件复制到hi目录中去,包括子目录下的所有目录和文件
示例3:
[root@bogon ~]# cp /etc/favicon.png /etc/issue /tmp/hi
多源复制,将etc下的两个文件都复制到/tmp/hi目录下
mv命令: move
使用用法:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
和cp命令一样,注意:mv命令会删除源文件
常用选项:
-i:交互式
-f:强行覆盖
示例:
# mv -i /etc/test3 test1
将test3文件 覆盖至test1 文件中,移除test3
rm命令:remove 删除
使用方法:
rm [OPTION]… FILE…
常用选项:
-i:交互式
-f:强制删除
-r:递归删除
注意: 所用不用的文件不建议直接删除,而是移动至某个专用目录价(模拟回收站)
示例:
# rm-rf /tmp/test1
强制删除/tmp/test1目录下的所有文件及目录
install命令:
install [OPTION]… [-T] SOURCE DEST
单源复制
install [OPTION]… SOURCE… DIRECTORY
多源复制
install [OPTION]… -t DIRECTORY SOURCE…
多源复制
install [OPTION]… -d DIRECTORY…
创建空目录
常用选项:
-m --mod:设定目标文件权限,如果不设置则默认为755 rwxr-xr-x
-o --owner:设定目标文件属主
-g --group:设定目标文件属组
示例:
[root@bogon ~]# install -m 700 /etc/issue test1
复制issue文件至test1,权限是700 rwx------。
touch命令:
修改时间戳
touch [OPTION]… FILE…
当指定的文件,路径不存在时,会自动建立一个空文件
-c:指定的文件路径不存在时,不予以创建
-a:仅修改access time 最近访问
-m:仅修改modify time 最近更改
-t:STAMP 设定档案的时间记录,格式与 date 指令相同。
用法[[CC]YY]MMDDhhmm[.ss]
演示:
`touch -at 200901021900.00(年月日时分秒) FILE`
修改access time
2、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
示例
# mkdir -pv /tmp/{a1/{a,b},a2}
# mkdir -pv /tmp/{x,q}_{y,z}
3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
查看示例:
#stat /etc/passwd
以下是元数据信息:
文件名称: /etc/passwd
文件大小:2373
占用的磁盘块数:8
IO 块大小:4096
文件类型:普通文件
所在设备:fd00h/64768d
Inode(Indoe的节点号):135172601
硬链接(被链接的次数):1
访问权限(第一个):(0644/-rw-r–r--)
Uid: uid号和 属主:( 0/ root)
Gid: gid号和属组:( 0/ root)
环境:system_u:object_r:passwd_file_t:s0
最近访问:2019-02-13 20:39:47.654324769 +0800
最近更改:2019-02-13 20:39:46.441315936 +0800
最近改动:2019-02-13 20:39:46.443315951 +0800
创建时间:-
修改文件的时间戳:
touch命令
#touch -at 202002141900.30 /tmp/test1
修改test1最近访问的时间
#touch -mt 202002141900.30 /tmp/test1
修改test1最近更改的时间
4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
# mkdir -pv /tmp/tfile-$(echo 2016-05-27-09-32-22)
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
#cp -r /etc/p*[^0-9] /tmp/mytest1
6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
# groupadd jack
# useradd -u 5001 -G jack-d /tmp/tom -s /bin/zsh tom
7、常用的用户以及文件管理命令有哪些,并演示命令以及用法。
linux用户分为三种:
超级用户:root uid:0
系统用户:为了能够让后台进程或服务列进行以非管理员的身份进行,通常需要为此创建多个普通用户,这类用户从不用登陆系统。uid:1-499
登录用户:通常就是我们登录使用的用户。uid:1000-60000
用户的信息库存放路径:/etc/passwd
用户的格式:name:password:UID:GID:GECOS:directory:shell
name:用户名
password:可以是加密的密码,也可以是占位符x;
UID:主ID
GID:用户所属的主组ID 号
GECOS:用户的注释信息
directory:用户的家目录
shell:用户的默认shell,登录时默认
用户的密码存放路径:/etc/shadow
格式:以冒号为分隔符
name:$ 6 $m4v1501Qu2oKTieX$1wafOPtntptN0zRyD1BIxclgJJC3P79.xPeoFuXATK7Y6CbP9o6FpTmFFWESXXcwJhnC0XScGw1ADK51oKP6M/:17940:0:99999:7:::
用户名:
加密的密码:$6是加密算法,此处使用的是sha512sum $m是随机数 第三个 $ 是加密后的密码
17940:最后一次修改密码的时间
0:密码最短使用期间
99999:密码最长使用期限
7:密码到了最长使用期限后的警告天数
过期期限:
禁用期限:
保留字段:
useradd命令:创建用户
useradd [选项] 登录名
-u,–uid :指明UID号
-g,–gid :指定基本组ID,此组得事先存在
-G,–groups : 指明用户所属的附加组,多个组之间用逗号分隔;
-c,–comment:指明注释信息
-d,–home:创建以指定的路径为用户的家目录。通过复制/etc/skel此目录并重命名实现的。事先指定的家目录路径如果存在,则不会为用户复制配置环境文件。
-s --shell:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中
-r --system:创建系统用户
-M:不给用户创建主目录
示例:
1、
# useradd -u 2000 -c "tom" -g 3000 -G merry -s /bin/csh -d /tmp/tom tom
创建tom用户,并指定uid为2000,注释信息tom 设定组ID为3000(但是此GID必须实现存在)
将tom作为merry的附加组 shell类型为csh 家目录为/tmp/tom`
2、
#useradd -M merry
创建不含有家目录的用户merry
注意:创建用户时的诸多默认设定配置文件存储在/etc/login.defs
-D:显示创建用户的默认配置。
useradd -D选项:修改默认选项的值
-D默认选项的修改结果保存于/etc/default/useradd文件中
usermod命令:修改用户属性
usermod [选项] 登录
-u --uid:修改用户的ID为此处指定的新ID
-g,–gid:修改用户所属的基本组ID
-G,–groups:修改用户所属的附加组,原来的附加组会被覆盖。
-a,–append:与-G一同使用,为用户添加新的附加组,不会覆盖原组
-c,–comment:修改注释信息
-d,–home:修改用户的家目录,用户原有的文件不会被转移至新位置
-m,–move:与-d选项时才有用,表示将原来的家目录移动至新的家目录
-s,–shell:修改用户的默认shell
-l,–login:修改用户名
-L,–lock:锁定用户的密码,即在用户原来的密码字符串之前添加一个“!”;
-U,–unlock:解锁用户的密码,删除“!”
示例:
1、
# usermod -u 2002 -g 4000 -G jerry -md /tmp/tom -s /bin/base tom
将用户tom的UIID改为2002 GID改为4000 附加组改为Jerry 家目录改为/tmp/tom shell类型为base
2、
# usermod -L ydong
[root@bogon ~]# tail /etc/shadow
ydong:!$6$hxEbBACGhKzRv1YA$lFCKavibvBnnmFjIoCDqWmZ7IxV9a9A94e6z1RcSyVAPGqXC76Ls91lvaFWU8gv34Y.ij9bI8ipm3.uIC8GFO/:17940:0:99999:7:::
锁定ydong的密码,并在加密密码前几加上一个感叹号
#usermod -U ydong
解锁ydong密码,删除感叹号
注意:在修改用户的家目录时,/etc/skel下的文件如果没有复制过去的话,name在切换用户的时候会出现bash-4.2$字符,只需将/etc/skel/.的文件复制到用户的家目录即可
userdel命令:删除用户
userdel [选项] 登录
-r:删除用户时一并删除其家目录,
passwd命令:修改用户命令
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactive?
days] [-S] [–stdin] [username]
1、passwd:修改用户自己的密码
2、passwd USERNAME:修改制定用户的密码,但仅root有此权限
-l,-u :锁定和解锁用户
-d:清楚用户密码
-e(DATE):设定过期期限,此处是一个日期,使用此选项直接导致密码作废,下次登录修改密码
-i (DAYS):非活动期限,
-n(DAYS):密码的最短使用期限
-x:(DAYS):密码的最长使用期限
-w(DAYS):警告期限
–stdin:echo"PASSWORD"|passwd --stdin USERNAME
示例:
1、
# passwd
修改当前用户的密码
2、
# echo '123456' | passwd --stdin tom
将123456直接当作tom的密码来使用
3、
# passwd merry
修改用户merry的密码
id:显示用户真实和有效的ID信息
id [OPTION]… [USER]
-u:仅显示有效的UID
-g:仅显示用户的基本组id
-G:仅显示用户所属的所有组ID
-n:显示名字而非ID
root@localhost ~]# id ydong
uid=1000(ydong) gid=1000(ydong) 组=1000(ydong),10(wheel)
su命令: switch user
完成用户的切换
两种切换:
登录式切换:会通过读取目标用户的配置文件来重新初始化
su - USERNAME
su -l USERNAME
大多数都用这个登录式切换
root@localhost ~]# su - ydong
上一次登录:四 2月 14 15:22:09 CST 2019pts/1 上
[ydong@localhost ~]$
[ydong@localhost ~]$ pwd
/home/ydong
用户的家目录会更改
非登录式切换:不会读取目标用户的配置文件来重新初始化
su USERNAME
[root@localhost ~]# su ydong
[ydong@localhost root]$
用户的工作目录不会更改
注意:管理员可无密码切换至其他任何用户
-c ‘COMMAND’ :仅以指定用户的身份运行此处指定的命令
# su ydong -c 'cat /etc/issue'
ydong用户来执行 cat命令,但是不会切换至ydong用户
groupadd命令:添加组
groupadd 【OPTION】 group_name
-g --GID:手动指定GID,默认是上一个组的GID+1
-r:创建系统组,gid号时1-999
示例:
# groupadd merry
groupmod命令:修改组属性
groupmod [选项] GROUP
-g GID:修改GID; 没有特殊规定,一定要唯一
-n new_game:修改组的名字
示例:
# groupmod -g 3000 merry
groupdel命令:删除组
groupdel [选项] GROUP
示例:
# groupdel merry
newgrp命令:临时切换其它组为基本组
newgrp [-] [group]
-:会模拟用户重新登录以实现重新初始化其工作环境
示例:
# newgrp ydong