Linux文件系统管理

马哥教育网络班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 命令 查看一下分别有多少 最后找到最多的打印出来即可

或者是写一个简单的循环脚本,也可以解决,请看下图:

blob.png

4、将/etc/passwd 中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt 文件中

blob.png

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.178linux.com/48453

(0)
luobo3692003luobo3692003
上一篇 2016-09-22
下一篇 2016-09-23

相关推荐

  • 马哥教育网络班22期第一周课程练习1-3天

    1.描述计算机组成及其功能 CPU:  运算器  控制器  寄存器  缓存 存储器:  RAM(随机访问存储器)  I/O设备:               i:下指令,提供数据 如:键鼠     &…

    Linux干货 2016-08-15
  • grep命令系列:grep中的正则表达式

     grep :是一款文本过滤工具 。其作用:根据用户指定的“模式”对目标文本进行逐个的匹配检查。  正则表达式 REGEXP:有一类特殊字符及文本字符所编写的模式,其中有些字符不表示字面的意义,而表示控制或通配的功能。    正则表达式分为两种:         基本正则表达式:…

    Linux干货 2017-04-10
  • 初入命令世界

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-26
  • N_28文件类管理命令

    1.linux文件管理类命令有:mkdir ,rmdir,cp ,mv,rm,ls,vi,cat ,cut,sort,wc等 mkdir –make directories  (创建目录) 用法 :mkdir [OPTION]… DIRECTORY… -P  按需要创建目录的父目录; -v  显示创建的详细过程; -m M…

    2017-12-09
  • mariadb基础应用

    mariadb基础应用 一、 前言 MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users …

    Linux干货 2016-12-16
  • keepalived双主模型的实现

    一、简介  keepalived 简介:是服务器高可用的一个重要软件,它的核心组件有vrrp ,stack, checker ,ipvs, warpper, watch dog  它是vrrp协议的实现,原生设计目的为高可用ipvs服务;keepalived能够通过配置文件中定义生成ipvs规则 并能够对RS的健康状态进行检测;vrrp_…

    Linux干货 2016-08-30

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-10 22:23

    作业通过脚本方式实现,一方面练习了基础命令,另一方面也提高了脚本能力,非常赞