who,cut,sort,grep,tr,wc,uniq命令管道和重定向综合应用实例

linux基础

1.列出当前系统上所有已登录的用户名,同一用户登录多次,只显示一次即可。
[root@dxlcentOS ~]# who | cut -d” ” -f1
root
root
root
[root@dxlcentOS ~]# who | cut -d” ” -f1 | sort -u

2.取出最后登录到当前系统的用户的相关信息
[root@dxlcentOS ~]# w | tail -1 && grep “^root” /etc/passwd
root pts/3 192.168.0.105 14:15 6.00s 0.06s 0.00s w
root:x:0:0:root:/root:/bin/bash

3.取出当前系统上被用户当作其默认shell最多的那个shell
[root@dxlcentOS ~]# cut -d: -f7 /etc/passwd |uniq -cd
4 /sbin/nologin
12 /sbin/nologin
3 /bin/bash
6 /bin/bash
5 /sbin/nologin
[root@dxlcentOS ~]# cut -d: -f7 /etc/passwd |uniq -cd | grep 12
12 /sbin/nologin

4.将/etc/passwd中第三个字段中数值最大的后十个用户信息全部改为大写后保存到/tmp/maxusers.txt 文件中
[root@dxlcentOS ~]# sort -t: -k3n /etc/passwd | tail -10 | tr ‘a-z’ ‘A-Z’
/tmp/maxusers.txt
[root@dxlcentOS ~]# cat /tmp/maxusers.txt
WWW:X:1005:1005::/HOME/WWW:/BIN/BASH
MAGEIA:X:1100:1100::/HOME/LINUX:/BIN/BASH
PEGUIN:X:1101:1101::/HOME/PEGUIN:/BIN/BASH
SLACKWARE:X:2002:2016::/HOME/SLACKWARE:/BIN/BASH
ADMINS:X:2003:2003::/HOME/ADMINS:/BIN/BASH
FEDORA:X:2004:2004:FEDORA CORE:/HOME/FEDORA:/BIN/TCSH
BASH:X:2005:2005::/HOME/BASH:/SBIN/NOLOGIN
TESTBASH:X:2006:2006::/HOME/TESTBASH:/SBIN/NOLOGIN
BASHER:X:2007:2007::/HOME/BASHER:/SBIN/NOLOGIN
NOLOGIN:X:2008:2008::/HOME/NOLOGIN:/SBIN/NOLOGIN

5.取出当前主机的IP地址
[root@dxlcentOS ~]# ifconfig | sed -n 2p
inet 192.168.0.196 netmask 255.255.255.0 broadcast 192.168.0.255
[root@dxlcentOS ~]# ifconfig | sed -n 2p | cut -d” ” -f10
192.168.0.196

6.列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
方法一
[root@dxlcentOS ~]# ls -d /etc/.conf | cut -d “/” -f3 | tr “a-z” A-Z >/tmp/conf
[root@dxlcentOS ~]# cat /tmp/conf
ASOUND.CONF
DNSMASQ.CONF
DRACUT.CONF
E2FSCK.CONF
…..
方法二
[root@dxlcentOS ~]# ls /etc/
.conf | egrep -o “[^/]+/?$” | tr “a-z” “A-Z”
ASOUND.CONF
DNSMASQ.CONF
LD.SO.CONF
SYSCTL.CONF
TCSD.CONF
UPDATEDB.CONF
……
[root@dxlcentOS ~]# ls /etc/*.conf | egrep -o “[^/]+/?$” | tr “a-z” “A-Z” >/tmp/etc.conf

7、显示/var目录下一级子目录或文件的总个数。
计算文件总和
[root@dxlcentOS we]# ll /var/ | grep “-” | wc -l
21
计算目录总和
[root@dxlcentOS we]# ll /var/ | grep “d” | wc -l
19
[root@dxlcentOS we]# ls -lR /var/ | grep “d” | wc -l 包括子文件夹里面的目录
4003

8、取出/etc/group/文件中第三个字段数值最小的10个组的名字。
[root@dxlcentOS we]# sort -t: -k3n /etc/group | head -10
root:x:0:dxll2,slackware
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
[root@dxlcentOS we]# sort -t: -k3n /etc/group | head -10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

9.将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
[root@dxlcentOS we]# cat /etc/fstab /etc/issue > /tmp/etc.test

总结:以上的练习在centos7进行,功能的的实现基本没次都用到了管道,通过管道送给下一命令进行处理。体现了一个命令完成一个任务,组合小程序完成复杂任务的哲学思想。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88006

(0)
N27_dxldengN27_dxldeng
上一篇 2017-10-22 15:39
下一篇 2017-10-22 23:25

相关推荐

  • Linux磁盘管理

    一、磁盘简介 机械硬盘的组成部件主要有:盘片、机械手臂、磁头与主轴马达;盘片又可以细分为扇区(Sector)和磁道(Track),所有盘片的同一个磁道称之为柱面(Cylinder) 目前主流的磁盘接口有SCSI、SATA、SAS、USB等 Linux一切皆文件,硬件设备也有对应的文件,linux访问设备,其实就是访问与其对应的文件系统接口 设备文件: &nb…

    Linux干货 2016-06-01
  • LAMP在三台服务器上部署

    准备:centos7.3.3172.16.254.28 CentOS7.3.1 ip172.16.251.109  centos7.3.2 ip172.16.252.81  部署:         centos7.3.1部署mariadb         centos7.3.2 中部署httpd         centos7.3.3 中部署php-fpm …

    2017-06-08
  • MBR

    关于磁盘的使用,必须要弄明白MBR 分区划分方式     centos 6:扇区划分     centos 7:柱面划分 MBR:Master Boot Record:512bytes 0磁道0扇区 512bytes=446bytes(boot loader) + 4*16byt…

    Linux干货 2016-09-05
  • 数据结构应用详解-

    概述 最小生成树——无向连通图的所有生成树中有一棵边的权值总和最小的生成树 拓扑排序 ——由偏序定义得到拓扑有序的操作便是拓扑排序。建立模型是AOV网 关键路径——在AOE-网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度,路径长度最长的路径叫做关键路径(Critical Path)。 最短路径——最短路径问题是…

    Linux干货 2015-04-07
  • sed

    sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。 Sed主要用来自动…

    Linux干货 2017-04-26
  • 系统启动流程

    linux系统启动流程 内核的设计结构单内核:linux(线程–lwp轻量级进程)微内核:windows(支持真正意义上的多线程) 单内核:很多功能驱动都集成在一起 微内核:内核很小,功能单一。模块化 linux为了适应众多用户的不同硬件需求,linux内核在设计上采用模块化设计。可以动态加载模块。核心模块:ko 内核所独有的。共享对象:so 红…

    Linux干货 2016-09-19