Linux 三剑客常用命令
shell三剑客
===================================================grep====================================================
grep 的全程为Global search Regular Expression and Print out the line (类似windows 平台的ctrl+F)
#过滤出/etc/passwd 包含root的行
cat /etc/passwd|grep root
# 不区分大小写搜索root行:-i
grep -i root /tmp/passwd
#显示搜索结果的行号:-n
grep -n root /tmp/passwd
#统计搜索到root的行数,计数:-c
grep -c root /tmp/passwd
#精确匹配root行:-w
cat /tmp/passwd |grep -w root
#搜索包含root和mail的行: egrep|grep -E
cat /etc/passwd | grep -e root -e mail
cat /etc/passwd | egrep "root|mail"
cat /etc/passwd | grep -E "root|mail"
#屏蔽标准输出:-q quiet 静默模式
cat /etc/passwd | grep -q "root" |echo $?配合使用
#只打印匹配项root:-o only
cat /etc/passwd | grep -o "root"
#打印除了包含root的行 -v(取反)
cat /etc/passwd |grep -v "root"
==================================sed======================================
string+edit=流编辑器
sed 两个空间:模式空间,保持空间
模式空间:sed处理文本内容行的一个临时缓冲区,模式空间中的内容会主动打印到标准输出,并自动清空模式空间
保持空间:sed处理文本内容行的另一个临时缓冲区,不同的是保持空间内容不会主动清空,也不会主动打印到标准输出,而是需要sed命令来进行处理
小写的都是表示:覆盖
大写的都是表示:追加
n|N(next)
n : 读取下一行覆盖模式空间中的行
N:读取下一行并追加到模式空间中的行后面
x:exchange 空间交换
把模式空间中的内容he保持空间中的内容互换,初始保持空间中为空
h|H(hold)
h:把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g|G(get)
g:把保持空间中的内容覆盖至模式空间中
G:把保持空间中的内容追加至模式空间中
用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...
-i:会修改源文件!
-n:取消自动打印模式空间的内容
s:表示替换
p:print 表示打印
d:delete 表示删除
a:append 表示追加
i:insert 表示插入
c:整行替换
w:write 将匹配行写入指定文件内
r:read 读取指定文件.文件合并
=:用来显示行号的
!:表示取反的意思
#将所有的root替换为huazai007
sed -i 's/root/huazai007/g' /etc/passwd
#指定从第二个huazai007 开始替换为root
sed -i "s/huazai007/root/2g" /tmp/passwd
#将mail替换为ligenjian(只打印,不修改源文件!)
sed 's/mail/ligenjian/' /etc/passwd|grep ligenjian
#将以ftp开头的替换为ftp_wg(不修改源文件)
&:表示被匹配的字符(ftp)
sed "s/^ftp/ftp_wg/g" /tmp/passwd | grep ftp_wg
sed "s/^ftp/&_wg/g" /tmp/passwd | grep ftp_wg
#打印第10行
sed -n '10p' /etc/passwd
#打印 第5行到第10行的内容
sed -n '5,10p' /etc/passwd
#从第5行开始,往下打印3行
sed -n '5,+3p' num
#打印奇数行
sed -n '1~2p' num
#打印偶数行
sed -n '2~2p' num
#删除第二行
sed '2d' num
#删除 1-3行
sed '1,3d' num
#删除空行(^开头 $结尾)
sed '/^$/d' num
#删除以huazai007开头的行
sed '/^huazai007/d' /tmp/passwd |grep huazai
#删除以bash 结尾的行
sed '/bash$/d' /etc/passwd|grep bash
#在以ftp开头的行后面追加一行字符“wg001”
sed '/^ftp/a"wg001"' /etc/passwd
#在以nologin 结尾的行后面追加一行字符“bw007”
sed '/nologin$/a"bw007"' /etc/passwd
#在第三行给我追加一个字符“wg002”
sed '3a"wg002"' /etc/passwd
#在第三行的前面插入一行字符“wg003”
sed '3i"wg003"' /etc/passwd
#在以mail开头的行前面插入一行字符“wg004”
sed '/^mail/i"wg004"' /etc/passwd
#将包含mail的行整行替换为“wg005”
sed '/mail/c"wg005"' /etc/passwd
#将以nologin结尾的整行替换为 wg006
sed '/nologin$/c"wg005"' /etc/passwd
#将以nologin结尾的行 写入到指定文件:result.txt里
sed '/nologin$/w /tmp/result.txt' /etc/passwd
#将1-10行写入到/tmp/result.txt里
sed '1,10w /tmp/result.txt' /etc/passwd
#读取 /tmp/result.txt 并将内容写入到 以mysql开头nologin结尾的行后面
sed '/^mail.*nologin$/r /tmp/result.txt' /etc/passwd
#显示最后一行的行号
sed '$=' /etc/passwd
#除了#号开头的行都打印出来
sed -n '/^#/!p' /tmp/result.txt
==================================awk=====================================
awk 来历
其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母
awk 用法:
Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
# 打印 /etc/passwd 的第一个字段
awk -F ':' '{print $1}' /etc/passwd
#打印/etc/passwd 的最后一个字段 $NF
awk -F ':' '{print $NF}' /etc/passwd
#打印/etc/passwd 的倒数第二个字段:请使用$NF表示
awk -F ':' '{print $(NF-1)}' /tmp/passwd
NR:表示当前处理的是第几行
#打印第二行
awk 'NR==2 {print}' /etc/passwd
#打印第三行的倒数第三个字段 /etc/passwd
awk -F ':' 'NR=3 {print $(NF-2)}' /etc/passwd
#打印第三行以后的行的第一个字段 /etc/passwd
awk -F ':' 'NR>3 {print $1}' /etc/passwd
#打印第三行之前的行的第一个字段
awk -F ':' 'NR<3 {print $1}' /etc/passwd
##awk 内置函数
toupper():用于将字符变为大写
awk -F ':' '{print toupper($1)}' /etc/passwd|head -n2
tolower():用于将字符变为小写
awk '{print tolower($1)}' /tmp/aa
#打印包含root的行
awk '/root/{print}' /etc/passwd
#打印第一个字段为ftp的行
awk -F ':' '$1=="ftp" {print}' /etc/passwd
#打印第三个字段为2的行
awk -F ':' '$3=="2" {print}' /etc/passwd
#假如$1==root 打印第一个字段,否则打印第二个字段
awk -F ':' '{if ($1=="root") print;else print $2}' /etc/passwd
#假如 最后一个字段为nologin 那么打印第一个字段,否则打印第二字段
awk -F ':' '{if ($NF=="/sbin/nologin") print $1;else print $2}' /etc/passwd
Linux 三剑客常用命令的更多相关文章
- Linux GDB常用命令一栏
Linux GDB 常用命令如下: 1.启动和退出gdb (1)启动:gdb ***:显示一段版权说明: (*** 表示可执行程序名) (2)退出:quit.有的时候输入quit后会出现相关提示:类似 ...
- Linux 下常用命令
linux 下常用命令: 1.删除文件命令为 rm 2.创建目录的命令是:mkdir 3.删除目录的命令是rmdir(空目录) 4.切换到root帐号:su 5.查看所有进程:ps -aux 6.杀死 ...
- linux 服务器常用命令整理
linux 服务器常用命令整理 目录 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload 网络传输 - scp \ rsync \ (rz ...
- 计算机硬件基本知识及Linux的常用命令
------------------1. 计算机硬件基本知识------------------ CPU - 寄存器 - L1/L2/L3 - 内存 - 硬盘 - 互联网下载/其他存储介质传输 寄存器 ...
- 一、Linux概述 二、Linux的安装 三、Linux的常用命令(重点)
一.Linux概述###<1>操作系统 OS,管理和控制 计算机的 硬件和软件资源的 计算机程序. 最基本的系统软件. 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 操作系统:she ...
- Linux帮助——常用命令
Linux帮助——常用命令 摘要:本文主要学习了Linux系统中常用的一些命令. uname命令 uname命令可以显示电脑以及操作系统的相关信息. 基本语法 uname [选项] 选项说明 -a:显 ...
- Linux虚拟机常用命令
参考原文链接:(https://blog.csdn.net/fanyun_01/article/details/51083585) 一.Linux虚拟机常用命令 # virsh list //查看已打 ...
- [转帖]Linux systemd 常用命令
Linux systemd 常用命令 https://www.cnblogs.com/tsdxdx/p/7288490.html systemctl hostnamectl timedatectl l ...
- Linux系统管理常用命令
Linux系统管理常用命令 分类: Linux2011-01-10 18:26 1538人阅读 评论(0) 收藏 举报 linuxcommandservicenginxuserunix 目录(?)[+ ...
- Linux + NodeJS 常用命令
Linux系统常用命令 1.su 由当前用户切换至root用户: 2. su username 切换至某一用户: 3.chmod u+w /etc/sudoers 为/etc/sudoers文件添加写 ...
随机推荐
- jsp 格式化日期
第一步,引入工具包: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %&g ...
- 简单了解如何自己动手制作RPM包
导读 RPM文件在Linux系统中的安装最为简便.以著名的图像处理软件XV为例,其RPM包xv-3.10a-13.i386.rpm可以在该程序的主页中下载取得. 我们介绍如何自己动手制作RPM包.0, ...
- 三、核心实战-服务Service-Ingress
Service 将一组Pods公开为网络服务的抽象方法. 暴露deployment只能在集群内访问是ClusterIP,可以集群外访问是NodePort,默认端口分配是30000-32767之间 ku ...
- 入坑winpdb-1.4.8
这几天莫名的不能在docker中使用winpdb-1.4.8调试,把容器重新安装了也不行,跟踪调试以后发现原因是容器中使用pycryptodemo作为rpdb2的加密库,加密向量IV需要以bytes类 ...
- 数字成像系统—ISP
ISP是什么Image Signal Processor,图像信号处理器.作用:处理Image Sensor(图像传感器)的输出数据.对前端图像传感器输出的信号做后期处理.如AWB等.DSP是什么Di ...
- mysql sum 聚合计算后精度不准 出现多位小数点后的数
解决办法 原收款单money 字段 为 decimal(28,8) 经过层层计算用到了 @total := ( beginning + @total + gather - verification ) ...
- Delphi 自定义窗体类名
原理就是覆盖原CreateParams函数,重写新CreateParams函数,在新CreateParams函数继承完之后马上修改Parames.WinClassName type TForm1 = ...
- window JAVA 环境变量配置
java win环境变量配置1.安装的时候拷贝出,安装目录C:\Program Files\Java\jdk1.8.0_40\2.在系统变量中,点击"新建",弹出窗口后在变量名输入 ...
- CPU 相关知识
参考:https://blog.csdn.net/andy572633/article/details/46834155 lscpu 查看到部分CPU不在线 CPU(s) 4 On-line CPU( ...
- 前端面试-经典的Vue面试题
面试总结三大模块:Vue双向绑定及原理.生命周期.组件通信.Vue官方API 目录:1.Vue双向绑定及原理 1.1你对MVVM是怎么理解的? 1.2你对Vue响应式原理是怎么理解的?是否可以实现一个 ...