3、文本處理命令、用戶與組命令練習

1.列出當前系統上所有已登錄用戶的用戶名,同一個用戶登錄,則只顯示一次

[root@localhost ~]# who
root     tty1         2016-08-23 06:20
root     pts/0        2016-08-26 05:09 (172.16.16.201)
user1    pts/1        2016-08-26 05:11 (172.16.16.201)
[root@localhost ~]# who | cut -d' ' -f1 | uniq root
user1

2.取出最后登錄到當前系統的用戶的相關信息

[user1@localhost ~]$ last | head -1
user1    pts/1        172.16.16.201    Fri Aug 26 05:36   still logged in

3.取出當前系統上被用戶當做其默認shell最多的那個shell

# 取/etc/passwd中的第7字段排序并計數

[root@localhost ~]# cut -d: -f7 /etc/passwd | sort | uniq -c
      2 /bin/bash
      4 /bin/sh
      1 /bin/sync      
      1 /sbin/halt     
      15 /sbin/nologin      
      1 /sbin/shutdown
      
# 以數值排序

[root@localhost ~]# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n
      1 /bin/sync
      1 /sbin/halt      
      1 /sbin/shutdown      
      2 /bin/bash      
      4 /bin/sh     
      15 /sbin/nologin
      
# 取最后一行的shell
# 最終結果

[root@localhost ~]# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n | tail -1 | grep -o [^[:space:]]*$
/sbin/nologin

4.將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中

# 把/etc/passwd文件以冒號分隔各字段以第3字段數值大小排序,取后10行

[root@localhost ~]# sort -n -t: -k3 /etc/passwd | tail
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
user1:x:500:500::/home/user1:/bin/bash
gentoo:x:4001:4001::/home/gentoo:/bin/sh
fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/sh
user2:x:4003:4003::/home/user2:/bin/sh
user3:x:4004:4004::/home/user3:/bin/sh

# 把上述結果通過管道送給命令“tr”變為大寫,重定向至/tmp/users.txt即可
# 最終結果

[root@localhost ~]# sort -n -t: -k3 /etc/passwd | tail | tr 'a-z' 'A-Z' > /tmp/maxusers.txt

5.對命令ifconfig的結果切分,取出當前主機的IP地址

# 取出命令“ifconfig”結果中與addr相連的地址

[root@localhost ~]# ifconfig | grep -E -o "addr:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
addr:172.16.16.1
addr:127.0.0.1

# 管道送給命令“cut”,取出地址
# 最終結果

[root@localhost ~]# ifconfig | grep -E -o "addr:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | cut -d: -f2
172.16.16.1127.0.0.1

6.列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf中

[root@localhost ~]# ls /etc/*.conf | tr 'a-z' 'A-Z' > /tmp/etc.conf

7.顯示/var目錄下,一級子目錄或文件的總個數

[root@localhost ~]# ls /var | wc -l19

8.取出/etc/group文件中第3個字段數值最小的10個組的名字

# 第3字段按數值排序,取前10行

[root@localhost ~]# sort -t: -k3 -n /etc/group | head
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:

# 通過管道送給“cut”,取組名
# 最終結果

[root@localhost ~]# sort -t: -k3 -n /etc/group | head | 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 > /tmp/etc.test
[root@localhost ~]# cat /etc/issue >> /tmp/etc.test

10.用戶、組管理類命令練習

10.1 創建組distro,其GID為2016

[root@localhost ~]# tail /etc/group
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:

10.2 創建用戶mandriva,其ID號為1005;基本組為distro

[root@localhost ~]# useradd -u 1005 -g distro mandriva
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) groups=2016(distro)

10.3 創建用戶mageia,其ID號為1100,家目錄為/home/linux

[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/sh

10.4 給用戶mageia添加密碼,密碼為mageedu

[root@localhost ~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.

10.5 刪除mandriva,但保留其家目錄

直接刪除用戶mandriva即可,因為默認家目錄是保留的。

[root@localhost ~]# userdel mandriva
[root@localhost ~]# ls /home
fedora  gentoo  linux  lost+found  mandriva  user1  user2  user3

10.6 創建用戶slackware,其ID號為2002,基本組為distro,附加組為peguin

[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),5001(peguin)

10.7 修改slackware的默認shell為/bin/tcsh

[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# grep ^slackware /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/tcsh

10.8 為用戶slackware新增附加組admins

[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -a -G admins slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),5001(peguin),5003(admins)

10.9 為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天

[root@localhost ~]# echo "slackware" | passwd --stdin slackware
Changing password for user slackware.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# grep ^slackware /etc/shadow | cut -d: -f4-6 
3:180:3

10.10 添加用戶openstack,其ID號為3003,基本組為clouds,附加組為peguin和nova

[root@localhost ~]# useradd -u 3003 -g clouds -G peguin openstack
[root@localhost ~]# usermod -a -G nova openstack
[root@localhost ~]# id openstack
uid=3003(openstack) gid=5004(clouds) groups=5004(clouds),5001(peguin),5005(nova)

10.11 添加系統用戶mysql,要求其shell為/sbin/nologin

[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# tail -1 /etc/passwd
mysql:x:498:498::/home/mysql:/sbin/nologin

10.12 使用echo命令,非交互式為openstack添加密碼

[root@localhost ~]# echo "openstack" | passwd --stdin openstack
Changing password for user openstack.
passwd: all authentication tokens updated successfully.

原創文章,作者:wangzhenyu177,如若轉載,請注明出處:http://www.www58058.com/47648

(1)
wangzhenyu177wangzhenyu177
上一篇 2016-09-19
下一篇 2016-09-19

相關推薦

  • centos6.9實現網卡bonding

    centos6.9實現網卡bonding 為什么要用bonding  將多塊網卡配置同一IP地址實際中是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡被修改為相同的MAC地址,這樣可以實現多塊網卡綁定同一IP地址,對外提供服務。用于網絡負載均衡和網絡冗余。 工作模式  bonding的模式:0-6,即:7種模式,這里我們…

    2017-08-20
  • 如何在Linux上創建文件系統

        談到如何創建文件系統,在這里就不得不提一下什么是文件系統,在百度上搜索得到的定義是這樣的:操作系統中負責管理和存儲文件信息的軟件機構稱為文件管理系統,簡稱文件系統,簡單的看這個概念可能感覺還是有點茫茫然,其實簡單的說,就是定義磁盤存取數據的一種邏輯組織,我們都知道磁盤是一種存儲數據的硬件,首先但這個硬件的工作當…

    Linux干貨 2016-01-18
  • 【N25第三周作業】用戶及權限管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who root     pts/0        2016-12-14&nb…

    Linux干貨 2016-12-14
  • 正則表達式

    Regual Expression 由一類特殊字符及文本字符所編寫的模式,其中有些字符不表示字面意義,而是用于控制或通配的功能 分類 REGEXP:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義,而表示控制或通配的功能 程序支持:grep, vim, less,nginx等 分兩類: 基本正則表達式:BRE 擴展正則表達式:E…

    Linux干貨 2016-08-07
  • 馬哥教育網絡班21期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行…

    Linux干貨 2016-08-15
  • MarkdownPad2 簡單使用指南

    MarkdownPad2 簡單使用指南 一級標題 二級標題 三級標題加代碼 四級標題 這里是加粗 這里是正文and English 888 這里有正文嵌入代碼這種樣式 這里是代碼塊 這種使用的代碼塊 還有引用 這種格式 這種格式再加粗 拖下來一點的格式加個代碼 斜體 斜體內的加粗 自我改好的樣式 注意是這種風格的樣式! 附:一個很全的顏色代碼網頁h…

    2016-11-13
欧美性久久久久