文件与用户组管理练习

1、 Linux上的文件管理命令及其常用的使用方法及其相关示例演示。
处理目录的常用命令
i. ls: 列出目录
ii. cd:切换目录
iii. pwd:显示目前的目录
iv. mkdir:创建一个新的目录
v. rmdir:删除一个空的目录
vi. cp: 复制文件或目录
vii. rm: 移除文件或目录
viii. mv: 移动文件与目录,或修改文件与目录的名称
a) cd
cd是change directory的缩写,是切换工作目录的命令.
语法:cd [相对路径或绝对路径]
#使用mkdir创建benny目录
[root@benny ~]# mkdir benny
#使用绝对路径切换到benny目录
[root@benny ~]# cd /root/benny
#使用相对路径切换到benny目录
[root@benny ~]# cd ./benny
#切换到自己的家目录
[root@benny benny]# cd ~
#返回上级目录
[root@benny ~]# cd ..
常用格式:
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录; cd !$ 把上个命令的参数作为cd参数使用
b) pwd
pwd是print working directory的缩写,显示目前所在的工作
选项与参数:
-P: 显示出确实路径而非使用连接(link)路径
实例:
#单纯输出目前的工作路径
[root@benny ~]# pwd
/root
#显示出实际的工作目录而非本身的目录名
[root@benny ~]# cd /var/mail/ <==注意,/var/mail是一个连结档
[root@benny mail]# pwd
/var/mail <==列出目前的工作目录
[root@benny mail]# pwd -P
/var/spool/mail <==怎么回事?有没有加 -P 差很多~
[root@benny mail]# ls -ld /var/mail/
drwxrwxr-x. 2 root mail 19 7月 2 10:24 /var/mail/
#因为 /var/mail 是连结档,连结到 /var/spool/mail

所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径

c) mkdir
mkdir是make directory的缩写,是创建新目录的命令.
语法:
mkdir [-mp] 目录名称
选项与参数:
-m :配置文件的权限,不需要看默认权限 (umask)
-p :帮助你直接将所需要的目录(包含上一级目录)递归创
实例:
#在benny目录下载创建a/b/c/d多级目录
[root@benny benny]# mkdir -p a/b/c/d

  创建权限为rwx--x—x的目录
  [root@benny b]# mkdir -m 711 text0001

d) rmdir
删除空的目录
语法:
Rmdir [-p] 目录名称
选项与参数:
-p :连同上一级『空的』目录也一起删除
实例:
#删除benny目录下的空目录a/b/c/d
e) cp
cp即拷贝文件和目录
语法:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
选项与参数:
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !

#用 root 身份,将 root 目录下的 .bashrc 复制到 /tmp 下,并命名为 bashrc
[root@benny ~]# cp ~/.bashrc /tmp/bashrc
f) rm
移除文件或目录
语法:
rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

将刚刚在 cp 的实例中创建的 bashrc 删除掉

[root@benny ~]# rm -i /tmp/bashrc
rm:是否删除普通文件 "/tmp/bashrc"?y
g) mv
移动文件或目录
语法:
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
#复制一文件,创建一目录,将文件移动到目录中
[root@benny tmp]# cp ~/.bashrc a001
[root@benny tmp]# mkdir b001
[root@benny tmp]# mv a001 b001
[root@benny ~]# ls /tmp/b001/
a001
Linux 文件内容查看
i. cat 由第一行开始显示文件内容
ii. tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
iii. nl 显示的时候,顺道输出行号!
iv. more 一页一页的显示文件内容
v. less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
vi. head 只看头几行
vii. tail 只看尾巴几行
a) cat
从第一行开始显示文件内容
选项与参数:
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
#查看/etc/issue这个文件的内容
[root@benny ~]# cat /etc/issue
\S
Kernel \r on an \m ----centos7的
[root@centos6 ~]# cat /etc/issue
CentOS release 6.9 (Final)
Kernel \r on an \m --------centos6
b) tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:
[root@centos6 ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.9 (Final)

2、 使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
[root@benny ~]# mkdir -p /tmp/{a1/{a,b},a2,x_y,x_z,q_y,q_z}

3、 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
元数据表示文件的附加属性,如文件的大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。
用stat查看
[root@benny ~]# stat /etc/shadow
文件:"/etc/shadow"
大小:1015 块:8 IO 块:4096 普通文件
设备:fd03h/64771d Inode:50734397 硬链接:1
权限:(0000/----------) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:shadow_t:s0
最近访问:2019-07-02 11:01:01.351711037 +0800
最近更改:2019-07-02 11:00:28.944686583 +0800
最近改动:2019-07-02 11:00:28.946686584 +0800
创建时间:-
使用touch命令可以修改文件的时间戳信息, -a选项修改atime和ctime,-m选项修改mtime和ctime时间,-t选项是修改atime和mtime时间。
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目录中。
[root@centos6 ~]# mkdir /tmp/mytest1/ | cp -dR /etc/p*[^0-9] /tmp/mytest1

6、 创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
groupadd jack | useradd -u 5001 -d /tmp/tom -m -s /bin/zsh tom
7、 常用的用户以及用户管理命令有哪些,并演示命令以及用法。
One、 Useradd 添加新的用户账户
#此命令创建了一个用户li,其中-d和-m选项用来为登录名li产生一个主目录/usr/li(/usr为默认的用户主目录所在的父目录)。
[root@benny ~]# useradd -d /usr/li -m li
#此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

useradd -s /bin/sh -g group –G adm,root gemur

Two、 Userdel 删除账号
#删除li账户,-r是把主目录一起删除
userdel -r li
Three、 usermod 修改账号
#此命令将用户li的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer
usermod -s /bin/ksh -d /home/z –g developer li
Four、 用户口令管理
• -l 锁定口令,即禁用账号。
• -u 口令解锁。
• -d 使账号无口令。
• -f 强迫用户下次登录时修改口令。
例如,假设当前用户是li,则下面的命令修改该用户自己的口令:
passwd
Old password:**
New password:
Re-enter new password:

如果是超级用户,可以用下列形式指定任何用户的口令:
passwd li
New password:
Re-enter new password:

#为用户指定空口令时,执行下列形式的命令:
passwd -d li
此命令将用户li的口令删除,这样用户li下一次登录时,系统就不再询问口令。

#passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
passwd -l li
Five、 cat /etc/passwd
查看所有账号及基本属性
Six、 groupadd groupdel groupmod newgroup
Seven、 su可切换账号

猜你喜欢

转载自blog.51cto.com/14579193/2445399
今日推荐