馬哥教育網絡班23期+第3周課程練習
Linux文件系統管理
由于第三周所學的只是比較零碎,知識量比較大,這篇博客主要講述的是一些習題,包括怎樣完成的練習的思路和截圖等等。首先我們看第一個題目
1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
[root@localhost]/media/Packages# who | cut -d' ' -f1 | uniq
2、取出最后登錄到當前系統的用戶的相關信息
[root@localhost]/media/Packages# w | tail -1 | cut -d' ' -f1 | id
3、取出當前系統上被用戶當作其默認shell的最多的那個shell
第一步:
[root@localhost ~]# cat /etc/passwd | cut -d: -f7 | sort | uniq
/bin/bash
/bin/sync
/bin/tsch
/sbin/halt
/sbin/nologin
/sbin/shutdown
第二步: 對當前找到的這些shell 在/etc/passwd 的文件下作查找,查一下哪個shell 的數量最多,分別使用 cat /etc/passwd | grep -E | wc -l 命令 查看一下分別有多少 最后找到最多的打印出來即可
或者是寫一個簡單的循環腳本,也可以解決,請看下圖:
4、將/etc/passwd 中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt 文件中
5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分
[root@localhost test]# ifconfig | grep "inet" | head -1 | grep -o -E "(([[:digit:]]+\.){3}([[:digit:]]+))" | head -1
192.168.0.12
[root@localhost test]#
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中
[root@localhost test]# find /etc/ -name "*.conf" | tr 'a-z' 'A-Z' >> /tmp/etc.conf
[root@localhost test]# cat !$
cat /tmp/etc.conf
/ETC/RESOLV.CONF
/ETC/PKI/CA-TRUST/CA-LEGACY.CONF
/ETC/YUM/PLUGINCONF.D/FASTESTMIRROR.CONF
/ETC/YUM/PLUGINCONF.D/LANGPACKS.CONF
/ETC/YUM/PROTECTED.D/SYSTEMD.CONF
/ETC/YUM/VERSION-GROUPS.CONF
/ETC/YUM/YUM-CRON-HOURLY.CONF
/ETC/YUM/YUM-CRON.CONF
/ETC/LVM/LVM.CONF
/ETC/LVM/LVMLOCAL.CONF
/ETC/DRACUT.CONF
/ETC/DEPMOD.D/DIST.CONF
/ETC/LIBUSER.CONF
/ETC/AUDIT/AUDITD.CONF
/ETC/SESTATUS.CONF
/ETC/RDMA/MLX4.CONF
7、顯示/var目錄下一級子目錄或文件的總個數
[root@localhost test]# ls /var/
adm cache crash db empty games gopher kerberos lib local lock log mail nis opt preserve run spool tmp yp
[root@localhost test]# ls /var/ | wc -l
20
8、取出/etc/group 文件中第三個字段數值最小的10個組的名字
[root@localhost test]# cat /etc/group | sort -t: -k3 -n | head -10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
9、將/etc/fstab 和/etc/issue 文件的內容合并為同一個內容后保存至/tmp/etc.test文件中
[root@localhost ~]# cat /etc/fstab /etc/issue >> /tmp/etc.test
[root@localhost ~]# cat !$
cat /tmp/etc.test
# /etc/fstab
# Created by anaconda on Tue Aug 23 16:38:07 2016
#
# 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
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=79e2f3d9-4bd1-4b1c-beda-dcac56065789 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdc1 /mydata ext4 defaults 0 0
\S
Kernel \r on an \m
10、請總結描述用戶和組管理類命令的使用方法并完成以下練習
用戶和組的管理類命令2類,首先是用戶的管理類命令無非就是增刪改查
(1)useradd 命令
(2)userdel 命令
(3)usermod 命令
(4)id 命令
(5)finger 命令
第二 是組管理類命令
(1)groupadd 命令
(2)groupdel 命令
(3)groupmod命令
練習:
(1)創建組distro 其GID 為2016
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group | grep -E "distro"
distro:x:2016:
[root@localhost ~]#
(2)創建用戶mandriva 其ID 號為1005 基本組為distro
[root@localhost ~]# useradd -u 1005 -g distro mandriva
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 組=2016(distro)
(3)創建用戶mageia 其ID 號為1100 家目錄為/home/linux
[root@localhost ~]# useradd -u 1100 -d /home/linux -m mageia
[root@localhost ~]# id mageia
uid=1100(mageia) gid=1100(mageia) 組=1100(mageia)
[root@localhost ~]# cat /etc/passwd | grep -E "mageia"
mageia:x:1100:1100::/home/linux:/bin/bash
(4)給用戶mageia 添加密碼 密碼為mageedu
[root@localhost ~]# passwd mageia
更改用戶 mageia 的密碼 。
新的 密碼:
無效的密碼: 它基于字典單詞
無效的密碼: 過于簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
(5)刪除mandriva 但保留其家目錄
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 組=2016(distro)
[root@localhost ~]# cat /etc/passwd | grep -E "^mandriva"
mandriva:x:1005:2016::/home/mandriva:/bin/bash
[root@localhost ~]# userdel mandriva
[root@localhost ~]# id mandriva
id: mandriva:無此用戶
[root@localhost ~]# ls /home/mandriva/
[root@localhost ~]# ls /home/mandriva/ -l
總用量 0
(6)創建用戶slackware 其ID 號為2002 基本組為distro 附加組為 penguin
[root@localhost ~]# useradd -u 2002 -g distro -G penguin slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) 組=2016(distro),2017(penguin)
[root@localhost ~]#
(7)修改slackware 的默認shell為/bin/tcsh
[root@localhost /tmp]# usermod -s /bin/tcsh slackware
[root@localhost /tmp]# cat /etc/passwd | grep -E "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh
(8)為用戶slackaware 新增附加組admins
[root@localhost /tmp]# usermod -G admins -a slackware
[root@localhost /tmp]# id slackware
uid=2002(slackware) gid=2016(distro) 組=2016(distro),2017(penguin),2018(admins)
(9)為slackware 添加密碼,要求密碼最短期限為3天,最長為180天,警告為3天
[root@localhost /tmp]# passwd -n 3 -x 180 -w 3 slackware
調整用戶密碼老化數據slackware。
passwd: 操作成功
[root@localhost /tmp]# echo slackware | passwd --stdin slackware
更改用戶 slackware 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@localhost /tmp]# cat /etc/shadow
slackware:$6$0iCwLkzs$FR.Sm5ju9ZecWLT1lvqVn3MgYJyxG2wYjmfPMKWfHVp6LmUoTTfis58UKXQoh3oPLGGs8.ALap1wy5EtYx7as1:17063:3:180:3:::
(10)添加用戶openstack 其ID 號為3003 基本組為clouds 附加組為penguin 和 nova
[root@localhost /tmp]# useradd -u 3003 -g clouds -G penguin,nova openstack
[root@localhost /tmp]# id openstack
uid=3003(openstack) gid=2020(clouds) 組=2020(clouds),2017(penguin),2019(nova)
(11)添加用戶mysql 要求其shell 為/sbin/nologin
[root@localhost /tmp]# useradd -s /sbin/nologin mysql
[root@localhost /tmp]# id mysql
uid=3004(mysql) gid=3004(mysql) 組=3004(mysql)
[root@localhost /tmp]# cat /etc/passwd | grep -E "mysql"
mysql:x:3004:3004::/home/mysql:/sbin/nologin
(12)使用echo 命令 非交互式為openstack 添加密碼
[root@localhost /tmp]# echo "openstack" | passwd --stdin openstack
更改用戶 openstack 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
原創文章,作者:luobo3692003,如若轉載,請注明出處:http://www.www58058.com/48453
作業通過腳本方式實現,一方面練習了基礎命令,另一方面也提高了腳本能力,非常贊