Linux高阶命令使用

1、awk

[[email protected] nginx]# cat access.log | awk ‘substr($9,1,3)>200‘
#查看访问日志中,过滤非200状态码的日志请求
# substr($4,20)  :表示从第四个字段里的第20个字符开始,一直到设定的分隔符 结束
# substr($4,1,3) :表示从第四个字段里的第1个字符开始,截取3个字符结束
# substr($4,3,6) : 表示从第四个字段里的第3个字符开始,截取6个字符结束

2、getopts

getopts指定参数,获取值。同样还有一个作用类似的选项getopt,可以自行百度查看其区别。

[[email protected] nginx]# vim test.sh       #脚本内容如下
#!/bin/bash
while  getopts  “:h:p:”  optname;do
        case “$optname”  in
        “h”)
        host_ip=$OPTARG
        ;;
        “p”)
        host_port=$OPTARG
        ;;
        “?” )
        echo “不知道此选项”
        ;;
        “:”)
        echo “此选项没有值”
        ;;
        “*”)
        echo “错误信息”
        ;;
        esac
done
echo "IP是${host_ip},端口是${host_port}"

#执行效果如下
[[email protected] nginx]# sh test.sh -h 192.168.20.2 -p 3306
IP是192.168.20.2,端口是3306
[[email protected] nginx]# sh a.sh -p 22 -h 192.168.20.3
IP是192.168.20.3,端口是22

在上面的脚本中,while后面的getopts关键字是必须的,引号中的h、p是可选自定义的,对应的是命令行-h、-p等指定的选项,optname也是自定义的,只要和case语句后引用的变量名称对应即可。在case语句下,需要给哪些选项赋值,则写多少就行,一般和getopts后面指定的选项对应。

3、fgrep命令

[[email protected] ~]# grep -c "hello" test.txt    #显示hello字符在test.txt文件中匹配行的数目
[[email protected] ~]# grep -l "hello" test.txt     #显示匹配hello的文件名

4、pkill

[[email protected] ~]# pkill -kill -t pts/1    #断掉连接当前终端的用户

5、脚本执行,获取脚本所在路径

大多数时候都是在脚本所在的目录下执行脚本,在脚本中使用pwd指令就可以获得所在路径,下面的语法是当没有在脚本所在路径执行脚本时,获取脚本所在路径的语法。

cur_dir=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)

6、echo输出颜色

# 字背景颜色范围:30—–37
  echo -e "\033[30m 黑色字 \033[0m"
  echo -e "\033[31m 红色字 \033[0m"
  echo -e "\033[32m 绿色字 \033[0m"
  echo -e "\033[33m 黄色字 \033[0m"
  echo -e "\033[34m 蓝色字 \033[0m"
  echo -e "\033[35m 紫色字 \033[0m"
  echo -e "\033[36m 天蓝字 \033[0m"
  echo -e "\033[37m 白色字 \033[0m"
# 字背景颜色范围:40—–47
  echo -e "\033[40;37m 黑底白字 \033[0m"
  echo -e "\033[41;37m 红底白字 \033[0m"
  echo -e "\033[42;37m 绿底白字 \033[0m"
  echo -e "\033[43;37m 黄底白字 \033[0m"
  echo -e "\033[44;37m 蓝底白字 \033[0m"
  echo -e "\033[45;37m 紫底白字 \033[0m"
  echo -e "\033[46;37m 天蓝底白字 \033[0m"
  echo -e "\033[47;30m 白底黑字 \033[0m"
# 最后控制选项
  \33[0m 关闭所有属性
  \33[1m 设置高亮度
  \33[4m 下划线
  \33[5m 闪烁
  \33[7m 反显
  \33[8m 消隐
  \33[30m — \33[37m 设置前景色
  \33[40m — \33[47m 设置背景色
  \33[nA 光标上移n行
  \33[nB 光标下移n行
  \33[nC 光标右移n行
  \33[nD 光标左移n行
  \33[y;xH设置光标位置
  \33[2J 清屏
  \33[K 清除从光标到行尾的内容
  \33[s 保存光标位置
  \33[u 恢复光标位置
  \33[?25l 隐藏光标
  \33[?25h 显示光标

7、sed获取域名解析的ip地址

nslookup www.baidu.com | sed -n -e ‘4,$p‘ | awk ‘/Address/{print $2}‘

8、tr分隔符

testinfo="python,java,php"
for i in $testinfo;do
    echo $testinfo | tr ‘,‘ ‘\n‘   #将逗号隔开,\n换行
done

#结果输出:
python
java
php
# 使用-拼接
testinfo="python,java,php";for i in $testinfo;do echo $testinfo | tr ‘,‘ ‘-‘; done
python-java-php

9、查看timewait的连接数

ss -tan state time-wait | wc -l

10、获取系统当前时间

[[email protected] ~]# date +%Y.%m.%d-%H:%M:%S
2020.01.03-22:47:46
[[email protected] ~]# date ‘+%F %T‘
2020-01-03 22:47:50

11、获取系统时间

[[email protected] ~]# date -d ‘-30 minutes‘ "+%F %T"    #获取三十分钟前的时间
2020-01-03 22:20:56
[[email protected] ~]# date -d yesterday "+%F %T"     #获取前一天的时间
2020-01-02 22:51:45

12、获取本机的内网IP

ip addr | grep inet | egrep -v ‘(127.0.0.1|inet6|docker)‘ | awk ‘{print $2}‘ | tr -d "addr:" | head -n 1 | cut -d / -f1

13、显示目录结构各级的权限

namei -om /var/log/messages

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/14154700/2464231

时间: 2024-10-26 15:43:01

Linux高阶命令使用的相关文章

Linux -高阶命令行技巧

熟练地操作命令行是一项常常被我们忽视的技能,又或者说我们将它看的太过神秘.不过作为一名软件工程师,掌握这一技能可以很大程度上提升我们工作的灵活性,提高工作效率.这篇文章是我在与 Linux 打交道的过程中总结出的一些小技巧.有些很基础,有些也相当专业,不太好懂.这篇文章不长,不过如果你能在工作中充分使用这里介绍的技能的话,那你也知之甚多了. 这里的许多内容一开始已出现在 Quora,但考虑到 Github 的用户性质,他们比我有天赋而且可以随时提出改进意见,因此使用 Github 更合适.如果你

Linux高阶命令进阶

1. 输出重定向 > (1>):覆盖输出,会覆盖掉原先的文件内容 >> (1>>) :追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加 2> :错误输出,会覆盖掉原先的文件内容 2>> :错误追加输出,不会覆盖掉原始文件内容,会在原始内容末尾继续添加 &>  :将标准输出与错误输出共同写入到文件中,覆盖原有内容. &>> :将标准输出与错误输出共同写入到文件中,追加到原有内容的后面. 标准输入重定向(STDiN

Cloudera Hadoop 5& Hadoop高阶管理及调优课程(CDH5,Hadoop2.0,HA,安全,管理,调优)

1.课程环境 本课程涉及的技术产品及相关版本: 技术 版本 Linux CentOS 6.5 Java 1.7 Hadoop2.0 2.6.0 Hadoop1.0 1.2.1 Zookeeper 3.4.6 CDH Hadoop 5.3.0 Vmware 10 Hive 0.13.1 HBase 0.98.6 Impala 2.1.0 Oozie 4.0.0 Hue 3.7.0 2.内容简介 本教程针对有一定Hadoop基础的学员,深入讲解如下方面的内容: 1.Hadoop2.0高阶运维,包括H

scala入门-09 scala高阶函数

我们做spark开发 会使用很多spark的高阶函数 所以 今天我就在linux服务上使用scala高阶函数 声明一个List集合: List集合所在的包已经被预定义自动引入,所以此处就不需要在引入包了,这里直接使用List实例化对象,其实用List的object对象的apply方法 我们使用map函数把list中的每个值都乘以3: x表示l中每一个元素,map对l中的每一个元素进行遍历操作,由于List中只有一种类型的元素,所以我们在执行马屁操作的时候可以省略其类型,如下所示: List集合中

linux下解压命令大全

.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!)---------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName .tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName---------------.bz

Linux如何获取命令帮助

从零开始学习Linux,正在跟马哥的视频学习.为了加深记忆,方便日后查询,对知识点做个总结.要更好的实现自动化运维,必须熟练使用Linux命令.但是命令繁多,不常用的会忘记.这样就需要使用命令帮助了. 可以通过下面6种方法获取命令帮助: No. 说明 使用方法 1 查看命令手册 # man COMMAND 2 查看信息页(info类似浏览网页,比man更全面) # info COMMAND 3 简要的使用帮助 # COMMAND --help 4 查看名字自身附带的文档 /usr/share/d

Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数

文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是

学习Linux系统中命令的简单方法

如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中"一切皆文件"概念虽然说是没有错,是对的.但是个人认为去学习这些"高大上"的东西不是一时半会的事儿,它需要一定的时间和经验去沉淀才能掌握.那么如何最快速了解Linux并使用呢?我依然觉得学命令.背命令,掌握命令是比较笨但却是比较快的方式. 我开始学习Linux的时候,问了前辈:我入门Linux需要掌握哪些命令呢?前

linux常用部分命令

常用命令解析date               显示或设置系统时间与日期cal                 用于显示当前日历或者指定日期的日历ls                  用于显示目标列表,在linux中是使用比较高的命令,可以输出彩色加亮显示用来区分不同的文件类型cat                 连接文件并打印到标准输出设备上,经常用来显示文件的内容,类似type命令.*dir               同ls 命令类似basename      去除路径显示文件名di