linux中文本处理命令、用户与组命令练习

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中
1
[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.

时间: 2024-04-20 02:22:53

linux中文本处理命令、用户与组命令练习的相关文章

linux中利用日志记录用户执行的命令

工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每个用户退出登录 时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置"/etc/rsyslog.conf"进一步将日志发送给日志服务器 第一种方法  # vi /etc/profile #设置history格式 export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev

Linux基础之正则表达式,用户、组管理命令介绍_Linux

通配符(Globbing) 通配符与元字符类似,通配符主要用于文件名的匹配,而元字符则主要用在字符串的匹配上: 下面介绍几种常用的通配符: * 表示匹配任意位数的任意字符 ? 表示匹配一位任意字符 ^ 表示取反,不包含的意思 [] 表示此区间内的任意一个字符 {} 表示一种集合 \ 转义字符,使具有特殊意义的字符失去原有意义 | 表示'或',匹配一组可选的字符 元字符 元字符是用来描述字符的特殊字符. 常用的元字符及意义如下: * 重复前面的字符0次或者多次 . 匹配任意字符一次 \+ 匹配前面

在Linux中添加普通新用户

  在Linux中添加普通新用户 ,超级用户(也称为"root")是一个具有修改系统中任何文件权力的特别账号.在日常工作中,最好不要使用超级用户账号进入系统,因为任何错误操作都可能导致巨大的损失.由于超级用户账号是系统建立后提供的惟一一个账号,因此,您需要建立和使用一个一般用户账号进行日常工作. 超级用户可以创建新的用户账号,下面的命令将建立一个名为joe的新用户: # adduser joe # passwd joe (键入joe的口令) Linux采用了将系统管理员和一般用户分开的

在 Linux 中为非 SSH 用户配置 SFTP 环境

在 Linux 中为非 SSH 用户配置 SFTP 环境 在某些环境中,系统管理员想要允许极少数用户在可以传输文件到Linux机器中,但是不允许使用 SSH.要实现这一目的,我们可以使用SFTP,并为其构建chroot环境. SFTP & chroot背景: SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可信数据流下的文件访问.文件传输以及文件管理功能.当我们为SFT

linux 用户和组命令整理及详细介绍_Linux

1.列出当前系统上所有已经登录的用户名,注意:同一个用户登录多次,则只显示一次即可. [root@node2 ~]# who root pts/0 2016-10-08 13:28 (10.106.64.41) root pts/1 2016-10-08 13:44 (10.106.64.41) root pts/2 2016-10-08 14:22 (10.106.65.82) root pts/3 2016-10-08 14:22 (10.106.65.82) root pts/4 2016

free:一个在Linux中检查内存使用情况的标准命令

我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需要重启,但是 Linux 不需要,只有对于一些关键补丁的更新, Linux 才会需要重启. Linux 系统管理员面临的一大挑战是如何在没有任何停机时间的情况下维护系统的良好运行.管理内存使用是 Linux 管理员又一个具有挑战性的任务.free 是 Linux 中一个标准的并且被广泛使用的命令,它

fdupes:Linux 中查找并删除重复文件的命令行工具

对于大多数计算机用户而言,查找并替换重复的文件是一个常见的需求.查找并移除重复文件真是一项令人不胜其烦的工作,它耗时又耗力.但如果你的机器上跑着GNU/Linux,那么查找重复文件会变得十分简单,这多亏了fdupes工具. fdupes--在Linux中查找并删除重复文件 fdupes是啥东东? fdupes是Linux下的一个工具,它由Adrian Lopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件.fdupes通过对比文件的MD5签名,以及逐

linux中文本修改操作命令

1. 文本删除/移动 在编辑文本时 ,经常需要删除一些不需要的文本,我们可以用键将输错或不需要的文本删除,但此时有一个限制就是当删到行头之后,再想删上面那行的内容是不可能的. 在命令模式下, vi 提供了许多删除命令这些命令.大多是以d 开头的.常用的有: (1) . 删除单个字符 x 删除光标处的字符. 若在x 之前加上一个数字n ,则删除从光标所在位置开始向右的n 个字符. X 删除光标前面的那个字符,若在X之前加上一个数字n, 则删除从光标前面那个字符开始向左的n 个字符. 显然这两个命令

Solaris中如何添加删除用户和组

Solaris是基于网络的操作系统,它可以供多人使用,当Solaris 系统安装好之后,默认只创建了一个root用户.而且当我们用ssh 远程访问该系统时, root 用户是连不上的,必须用其他用户连接上之后才可以切换成root用户. 一.相关语法 1.增加用户组:groupadd命令增加用户组 groupadd [-g gid] groupName 说明: g 制定组的ID号 gid 组的ID号(不能与现有的组ID号重复) groupName 组名 /etc/group文件记录了系统的用户组的