Linux练习题
-
列出当前系统上的所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可
[root@localhost ~]# who | cut -d" " -f1 | sort -u root
-
取出最后登录到当前系统的用户的相关信息
[root@localhost ~]# last | head -1 | cut -d" " -f1 |xargs id uid=0(root) gid=0(root) 组=0(root)
-
取出当前系统上被用户当作默认shell的最多的那个shell
[root@localhost ~]# cut -d: -f7 /etc/passwd|sort|uniq -c|sort -n |tail -1 29 /sbin/nologin
-
将/etc/passwd/中的第三个字段数值最大的后10个用户信息全部改为大写后保存至/rmp/maxusers.txt
[root@localhost ~]# sort -t: -k3 -n /etc/passwd | tail -10 |cut -d: -f1 |tr 'a-z' 'A-Z'>/tmp/maxusers.txt [root@localhost ~]# cat /tmp/maxusers.txt PULSE SASLAUTH RTKIT GENTOO SLACKWARE USER1 USER2 CENTOS ARCHLINUX NFSNOBODY
-
取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分
[root@localhost ~]# ifconfig | cut -d: -f2|head -2|tail -1 |cut -d" " -f1 192.168.1.103
-
列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf中
[root@localhost ~]# ls /etc|grep ".conf$" | tr 'a-z' 'A-Z'|tee /tmp/etc.conf [root@localhost ~]# cat /tmp/etc.conf
-
显示/var目录下一级子目录或文件的总个数。
[root@localhost ~]# ls /var |wc -w
-
取出/etc/group文件中第三个字段数值最小的10个组的名字。
[root@localhost ~]# sort -t: -k3 -n /etc/group |head -10|cut -d: -f1 root bin daemon sys adm tty disk lp mem kmem
-
将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存后保存至/tmp/etc.text中
[root@localhost ~]# diff /etc/fstab /etc/issue > /tmp/etc.text [root@localhost ~]# cat /tmp/etc.text 0a1,2 > CentOS release 6.9 (Final) > Kernel \r on an \m 2,16d3 < # < # /etc/fstab < # Created by anaconda on Wed May 2 04:48:00 2018 < # < # Accessible filesystems, by reference, are maintained under '/dev/disk' < # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info < # < UUID=d7d511f0-74c6-4293-8311-ace822f60b26 / ext4 defaults 1 1 < UUID=c394a12c-bc82-4eee-a24e-9ae55b77a810 /boot ext4 defaults 1 2 < UUID=38540df9-d17e-4dba-ab6b-550054159993 swap swap defaults 0 0 < tmpfs /dev/shm tmpfs defaults 0 0 < devpts /dev/pts devpts gid=5,mode=620 0 0 < sysfs /sys sysfs defaults 0 0 < proc /proc proc defaults 0 0 < LABEL=MYREID /backup ext4 defaults,acl 0 0
-
请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)创建组distro,其GID为2016
[root@localhost ~]# groupadd -g 2016 distro
(2)创建用户mandriva,其IS号为1005,基本组为distro;
useradd -u 1005 -g 2016 mandriva
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 组=2016(distro)
( 3)创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@localhost ~]# useradd -u1100 -d /home/linux mageia
[root@localhost ~]# id mageia
uid=1100(mageia) gid=1100(mageia) 组=1100(mageia)
[root@localhost ~]# cat /etc/passwd
(4)给用户mageia添加密码,密码为mageedu;
[root@localhost ~]# passwd mageia
更改用户 mageia 的密码 。
新的 密码:
无效的密码: 它基于字典单词
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
(5)删除mandriva,但保留其家目录;
[root@localhost ~]# userdel mandriva
[root@localhost ~]# id mandriva
id: mandriva:无此用户
[root@localhost ~]# ls -ld /home/mandriva
drwx------. 4 1005 distro 4096 6月 9 23:38 /home/mandriva
(6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
( 7)修改slackware的默认shell为/bin/tcsh
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# cat /etc/passwd
...
slackware:x:2002:2016::/home/slackware:/bin/tcsh
( 8) 为用户slackware新增附加组admins;
[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -aG admins slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) 组=2016(distro),2017(peguin),2018(admins)
用户和组管理类命令使用方法:
组管理的常用命令:
- groupadd:创建一个新组
groupadd [OPTIONS] GROUP
选项:
-g GID:指定GID.如果不指定,默认为上一个组GID+1
-r :创建系统组
- groupmod: 修改组属性
groupmod [OPTIONS] GROUP
选项:
-g GID:修改GID
-n nwe_name:修改组名
- groupdel:删除组
groupdel GROUP
- gpasswd:设置修改组密码
gpasswd [OPTION] GROUP
选项:
-a USERNAME :向组中添加用户
-d USERNAME :从组中移除用户
- newgrp: 临时切换基本组
newgrp [-] [GROUP]
选项:
-:会模拟用户重新登录以实现重新初始化其工作环境
用户常用管理命令:
- useradd:添加新用户
useradd [OPTIONS] LOGIN
选项:
-u UID:指定UID
-g GID:指定GID
-c:指明注释信息
-d /PATH/TO/DIR:指定用户的家目录
-s SHELL:指定用户的默认shell
-r:创建系统用户
-m:强制为用户创建主目录
-M:不为用户创建主目录
-f:密码过期后,装好被彻底 禁用之前的天数
- usermod: 修改用户属性
usermod [OPTIONS] LOGIN
-u UID:修改用户的ID为此处指定的UID
-g GID:修改用户所属的基本组ID,此组要事先存在
-G:修改用户所属的附加组,原来的附加组会被覆盖;如果不想覆盖就要与-a一起使用,为用户追加新的附加组
-c:修改注释信息
-d:修改用户的家目录,用户原来的文件不会转移到新的位置,-m与-d一起使用,用于将原来的家目录移动为新的家目录
-l:修改用户名
-s:修改用户的默认shell
-L:锁定用户名,即在用户原来的密码字符串之前加个“!”
-U:解锁用户密码
- userdel: 删除用户
userdel [OPTIONS] LOGIN
选项:
-r : 删除用户时一并删除家目录
- passwd:设置用户密码
passwd [OPTIONS] <ACCOUNTNAME>
passwd;修改用户自己的密码
passwd USERNAME : 修改制定用户的密码,仅限于root有此权限
选项:
-l,-u:锁定和解锁
-d:清除用户密码串
-e DATE:过期期限,日期
-i DAYS:非活动期限
-n DAYS:密码的最短使用期限
-x DAYS: 密码的最长使用期限
-w DAYS: 警告期限
--stdin:从标准输出接收用户密码
例:
echo “PASSWWORD” | passwd --stdin USERNAME
- chage:修改用户密码属性
chage [OPTIONS] LOGIN
选项:
-d LAST_DAY:修改用户最近一次修改密码的时间
-E EXPIRE_DATE:过期日期
-I INACTIVE: 修改用户的非活动期限
-w:警告期限
-m:最小天数
-M: 最大天数
- id: 显示用户的真是和有效的ID
id [OPTION] LOGIN`
选项:
-u:仅显示有效的UID
-g:仅显示用户的基本组ID
-G: 仅显示用户所属的所有组的ID
-n:显示名字而非ID(与前面几个选项配合使用)
- su: 切换用户
su [OPTIONS] [-] [[USER[ARGS...]]
- chsh :更改用户的登录shell
chsh [-s shell] [-l] [-u] [-v] [USERNAME]
- chfn: 修改用户finger信息
chfn [OPTION] LOGIN
- finger:用户信息查询
finger [-lmsp] [user ...] [user@host ...]
网友评论