1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
思路:
首先使用 who
查看當前系統上所有已經登錄的用戶,然后用 cut
或 awk
截取用戶名,最后使用 sort
或 unqi
去除重復信息。
命令:
who | cut -d' ' -f1 | sort -u
或 who | awk '{print $1}' | uniq
演示:
lc@Archlc [09:49:05] {~}
–>$ who
lc pts/0 Feb 25 09:03 (:0)
lc pts/1 Feb 25 09:03 (:0)
lc pts/2 Feb 25 09:03 (:0)
lc pts/3 Feb 25 09:37 (:0)
lc pts/5 Feb 25 09:41 (:0)
lc@Archlc [09:54:33] {~}
–>$ who | cut -d’ ‘ -f1 | sort -u
lc
lc@Archlc [09:54:53] {~}
–>$ who | awk ‘{print $1}’ | uniq
lc
2、取出最后登錄到當前系統的用戶的相關信息。
思路:
首先使用 who
查看當前系統上所有已經登錄的用戶,然后使用 tail
,cut
或者 awk
取出最后一個用戶的用戶名,最后再使用 id
來查看通過 xargs
或命令行引用傳遞的結果,這樣便可以查看該用戶的詳細信息。
命令:
who | cut -d' ' -f1| tail -1 | xargs id
或者 id $(who | awk '{print $1}' | tail -1 )
演示:
lc@Archlc [10:03:08] {~}
–>$ who
lc pts/0 Feb 25 09:03 (:0)
lc pts/1 Feb 25 09:03 (:0)
lc pts/2 Feb 25 09:03 (:0)
lc pts/3 Feb 25 09:37 (:0)
lc pts/5 Feb 25 09:41 (:0)
lc@Archlc [10:03:28] {~}
–>$ who | cut -d’ ‘ -f1| tail -1 | xargs id
uid=1000(lc) gid=100(users) groups=100(users),10(wheel),91(video),994(docker),56(bumblebee),150(wireshark)
lc@Archlc [10:03:30] {~}
–>$ id $(who | awk ‘{print $1}’ | tail -1 )
uid=1000(lc) gid=100(users) groups=100(users),10(wheel),91(video),994(docker),56(bumblebee),150(wireshark)
3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
思路:
首先取出 /etc/passwd
文件中有關 shell 信息的行,再統計最多的那個 shell。
命令:
cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 | cut -d' ' -f7
或 cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 | awk '{print $2}'
演示:
lc@Archlc [10:10:10] {~}
–>$ cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 | awk ‘{print $2}’
/usr/bin/nologin
lc@Archlc [10:12:12] {~}
–>$ cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 | cut -d’ ‘ -f7
/usr/bin/nologin
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
思路:
使用 sort
排序取出相關的信息,接著用 tail
取出最后 10 個,使用 tr
轉換大小寫,再使用重定向保存信息。
命令:
sort -t: -k3 -n /etc/passwd | tail -10 > /tmp/maxusers.txt
演示:
lc@Archlc [10:27:55] {~}
–>$ sort -t: -k3 -n /etc/passwd | tail -10 > /tmp/maxusers.txt
lc@Archlc [10:29:18] {~}
–>$ cat /tmp/maxusers.txt
systemd-network:x:193:193:systemd-network:/:/usr/bin/nologin
systemd-bus-proxy:x:194:194:systemd-bus-proxy:/:/usr/bin/nologin
systemd-resolve:x:195:195:systemd-resolve:/:/usr/bin/nologin
dnsmasq:x:993:993:dnsmasq daemon:/:/sbin/nologin
git:x:995:995:git daemon user:/:/bin/bash
sddm:x:996:996:Simple Desktop Display Manager:/var/lib/sddm:/usr/bin/
systemd-coredump:x:997:997:systemd Core Dumper:/:/sbin/nologin
systemd-journal-remote:x:998:998:systemd Journal Remote:/:/sbin/nolog
systemd-journal-upload:x:999:999:systemd Journal Upload:/:/sbin/nolog
lc:x:1000:100::/home/lc:/bin/bash
5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
思路:
使用 ifconfig
或者 ip
找出網卡相關的信息,再使用 grep
,awk
取出 ip 地址。
命令:
ifconfig | grep -w inet | awk '{ print $2}'
或 ip a s | grep -w inet | awk '{ print $2}'
演示:
lc@Archlc [10:29:23] {~}
–>$ ip a s | grep -w inet | awk ‘{ print $2}’
127.0.0.1/8
223.129.46.238/24
192.168.12.1/24
172.17.0.1/16
lc@Archlc [10:34:34] {~}
–>$ ifconfig | grep -w inet | awk ‘{ print $2}’
192.168.12.1
172.17.0.1
223.129.46.238
127.0.0.1
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
思路:
使用 globbing 機制找到所需的文件名,再使用 tr
轉換大小寫,再使用重定向保存信息。
命令:
cd /etc/ && ls *.conf | tr 'a-z' 'A-Z' >/tmp/etc.conf
演示:
lc@Archlc [10:47:35] {~}
–>$ cd /etc/ && ls *.conf | tr ‘a-z’ ‘A-Z’ >/tmp/etc.conf
lc@Archlc [10:47:44] {/etc}
–>$ cat /tmp/etc.conf
APPSTREAM.CONF
CREATE_AP.CONF
DHCPCD.CONF
DNSMASQ.CONF
FUSE.CONF
GAI.CONF
HEALTHD.CONF
HOST.CONF
KRB5.CONF
LD.SO.CONF
LIBAO.CONF
LOGROTATE.CONF
MAKEPKG.CONF
MAN_DB.CONF
MDADM.CONF
MENTOHUST.CONF
MKE2FS.CONF
MKINITCPIO.CONF
MTOOLS.CONF
NSCD.CONF
NSSWITCH.CONF
PACMAN.CONF
REQUEST-KEY.CONF
RESOLV.CONF
RESOLVCONF.CONF
RSYNCD.CONF
SDDM.CONF
SENSORS3.CONF
SIGNOND.CONF
SLP.CONF
TS.CONF
UPDATEDB.CONF
VCONSOLDE.CONF
YP.CONF
7、顯示/var目錄下一級子目錄或文件的總個數。
思路:
首先使用 ls
的 -A
選項將多余的信息去掉,再使用 wc
來統計總個數。
命令:
ls -A /var/ | wc -l
演示:
lc@Archlc [10:56:42] {~}
–>$ ls -A /var
.updated cache db empty games lib local lock log mail opt run spool tmp yp
lc@Archlc [10:56:55] {~}
–>$ ls -A /var | wc -l
15
8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
思路:
首先使用 sort
進行排序,再用 head
取出前 10 個,最后用 cut
或 awk
取出組的名字。
命令:
sort -t: -k3 -n /etc/group | head -10 | cut -d: -f1
或 sort -t: -k3 -nr /etc/group | tail -10 | awk 'BEGIN {FS = ":"} {print $1}'
演示:
lc@Archlc [11:06:11] {~}
–>$ sort -t: -k3 -n /etc/group | head -10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
lc@Archlc [11:06:42] {~}
–>$ sort -t: -k3 -nr /etc/group | tail -10 | awk ‘BEGIN {FS = “:”} {print $1}’
kmem
mem
lp
disk
tty
adm
sys
daemon
bin
root
9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
思路:
使用 cat
和重定向即可。
命令:
cat /etc/{fstab,issue} > /tmp/etc.test
演示:
lc@Archlc [11:09:42] {~}
–>$ cat /etc/{fstab,issue} > /tmp/etc.test
lc@Archlc [11:10:09] {~}
–>$ cat /tmp/etc.test
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
#Entry for /dev/sdb1 :
#UUID=09b9104e-7ebb-4704-a73f-4a952a2d2642 / ext4 rw,relatime,data=ordered 0 1
UUID=09b9104e-7ebb-4704-a73f-4a952a2d2642 / ext4 rw,defaults 0 1
##Entry for /dev/sda2 :
# UUID=72C6C9DCC6C9A129 /media/WIN10 ntfs-3g defaults,rw,nosuid,nodev,locale=C 0 0
##Entry for /dev/sda1 :
# UUID=AED2A7BED2A78963 /media/WINBoot ntfs defaults,nls=utf8,umask=0222 0 0
Arch Linux \r (\l)
10、請總結描述用戶和組管理類命令的使用方法并完成以下練習:
(1)、創建組distro,其GID為2016;
(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;
(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;
(4)、給用戶mageia添加密碼,密碼為mageedu;
(5)、刪除mandriva,但保留其家目錄;
(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
(7)、修改slackware的默認shell為/bin/tcsh;
(8)、為用戶slackware新增附加組admins;
用戶和組管理類命令主要有:
useradd 命令
描述: 使用它來創建用戶
語法: useradd [OPTION] 登陸名
常用選項:
-u, –uid UID 指定 UID
-g, –gid GROUP 指定基本組 ID,這個組必須實現存在
-G, –groups GROUP1[,GROUPS]… 指明用戶的附加組
-c. –comment COMMENT 指明注釋信息
-d, –home HOME_DIR 指定用戶的家目錄:通過復制 /etc/skel 此目錄并重命名來實現,指定的家目錄路徑如果實現存在,則不會為用戶復制初始化文件
-s, –shell SHELL 指明用戶的默認 shell,所有可用的 shell 列表可在 /etc/shells 中
-r, –system 創建系統用戶
-M 不創建用戶的家目錄
-f –inactive INACTIVE 密碼過期后,賬戶被徹底禁用前的天數 0 立即禁用 -1 禁用此功能
相關內容:
創建用戶時的默認選項定義在 /etc/login.def
useradd -D 顯示創建用戶的默認配置
useradd -D [OPTION] 修改默認的選項 , 它更改的是 /etc/default/useradd
usermod 命令
描述: 修改用戶屬性
語法: usermod [OPTION] 登陸名
常用選項:
-u, –uid UID 修改用戶的 ID 為新的 UID
-g, –gid GID 修改用戶的基本組
-G –groups GROUPS 修改用戶所屬的附加組:原來的附加組會被覆蓋
-a –append 只與 -G 一同使用,為用戶追加新的附加組
-c. –comment COMMENT 修改注釋信息
-d, –home HOME_DIR 修改用戶的家目錄:用戶原有的文件不會被轉移
-m –move-home 只與 -d 一同使用,用于將原來的家目錄移動為新的家目錄
-l –login NEW_LOGIN 修改用戶名
-s –shell SHELL 修改用戶的默認 shell
-L –lock 鎖定用戶密碼,即在用戶原來的密碼字符串之前添加一個 ! 號
-U –unlock 解鎖用戶的密碼
userdel 命令
描述: 刪除用戶
語法: userdel [OPTION] 用戶名
常用選項:
-r 刪除用戶時一并刪除其家目錄
groupadd 命令
描述: 添加組
語法: groupadd [OPTION] group_name
常用選項:
-g GID 指定 GID 默認是上一個組的 GID+1
-r 創建系統組:
groupmod
描述: 修改組屬性
語法: groupmod [OPTION] GROUP
常用選項:
-g GID 修改 GID
-n new_name 修改組名
groupdel 命令:
描述: 刪除組
語法: groupdel [OPTION] GROUP
練習的演示
[root@47d523181d25 /]# groupadd -g 2016 distro # 第 1 小題
[root@47d523181d25 /]# tail -1 /etc/group
distro:x:2016:
[root@47d523181d25 /]# useradd -u 1005 -g distro mandriva # 第 2 小題
[root@47d523181d25 /]# tail -1 /etc/passwd
mandriva:x:1005:2016::/home/mandriva:/bin/bash
[root@47d523181d25 /]# useradd -u 1100 -d /home/linux mageia # 第 3 小題
[root@47d523181d25 /]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
[root@47d523181d25 /]# echo “mageedu” | passwd –stdin mageia &> /dev/null # 第 4 小題
[root@47d523181d25 /]# userdel mandriva # 第 5 小題
[root@47d523181d25 /]# ls -al /home/mandriva/
total 12
drwx—— 2 1005 distro 62 Feb 25 03:23 .
drwxr-xr-x 6 root root 61 Feb 25 03:24 ..
-rw-r–r– 1 1005 distro 18 Dec 6 23:19 .bash_logout
-rw-r–r– 1 1005 distro 193 Dec 6 23:19 .bash_profile
-rw-r–r– 1 1005 distro 231 Dec 6 23:19 .bashrc
[root@47d523181d25 /]# groupadd peguin # 第 6 小題
[root@47d523181d25 /]# useradd -u 2002 -g distro -G peguin slackware
[root@47d523181d25 /]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin)
[root@47d523181d25 /]# usermod -s /bin/tcsh slackware # 第 7 小題
[root@47d523181d25 /]# tail -1 /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/tcsh
[root@47d523181d25 /]# groupadd admins # 第 8 小題
[root@47d523181d25 /]# usermod -aG admins slackware
原創文章,作者:FSSlc,如若轉載,請注明出處:http://www.www58058.com/69996
寫的很棒?。?!