shell技巧分享(六)

15 篇文章 0 订阅
11 篇文章 0 订阅

这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。

1 从文件中查询特定字符串

  • 查询目录下所有文件
$ grep -R -n "facebook" demo/
demo/python-tips-3.py:24:#     'facebook': 'https://www.facebook.com/',
demo/python-tips-3.py:27:# print url_dict.get('facebook', 'https://www.google.com/')
demo/python-tips-3.py:32:# https://www.facebook.com/
demo/python-tips-3.py:37:# print url_dict['facebook']
demo/python-tips-3.py:43:# https://www.facebook.com/

示例中查询demo目录下所有包含字符串facebook的文件,-n选项是为了打印匹配行的行号,-R选项是为了递归查询目录下所有文件。

  • 查询指定文件
$ grep -n "Failed" boot.log
203:[FAILED] Failed to start Ipmievd Daemon.
222:[FAILED] Failed to start LSB: Bring up/down networking.
252:[FAILED] Failed to start Crash recovery kernel arming.

示例中查询boot.log文件是否包含字符串Failed,-n选项是为了打印匹配行的行号。

2 查询目录或文件

  • 查询目录
$ find ./python_practice/ -type d -name "*demo*"
./python_practice/demo
./python_practice/fluent_python_demo

示例中查询python_practice目录下,名字包含字符串demo的所有目录。-type d指定查询类型为目录,-name指定名称包含字符串demo,星号(*)是通配符,表示任意字符。

  • 查询文件
$ find ./python_practice/ -type f -name "*tips*"
./python_practice/demo/python-tips-1.py
./python_practice/demo/python-tips-10.py
./python_practice/demo/python-tips-2.py
./python_practice/demo/python-tips-3.py
./python_practice/demo/python-tips-4.py
./python_practice/demo/python-tips-6.py
./python_practice/demo/python-tips-7.py
./python_practice/demo/python-tips-9.py

示例中查询python_practice目录下,名字包含字符串tips的所有文件。-type f指定查询类型为文件,-name指定名称包含字符串tips,星号(*)是通配符,表示任意字符。

3 查看机器ip

$ alias ip='ifconfig | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | grep -v -E 255\|127'
$ ip
172.17.0.1
192.168.14.10
192.168.122.1

linux一般通过ifconfig命令查看机器ip,但是如果机器有多块网卡,从ifconfig的输出信息中不容易找到所有ip。借助alias命令,定义一个新命令ip,可以快速查看机器的ip。示例中,-o选项是为了只打印匹配的字符串,-v选项反向匹配,即不匹配指定的字符串,去除包含数字255和127的ip,-E选项是为了使用扩展的正则表达式。由示例中可以看到,通过新命令ip查询机器ip时,输出信息更易读。或者直接执行hostname -i命令,也可以查看当前机器使用的ip,如下:

$ hostname -i
192.168.14.10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Shell高级技巧实战总结 一、将输入信息转换为大写字符后再进行条件判断 二、为调试信息设置输出级别 三、判断参数是否为数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 、获取当前时间距纪元时间(1970年1月1日)所经过的天数 七、非直接引用变量 八、在循环中使用管道的技巧 九、自链接脚本 十、Here文档的使用技巧 十一、获取进程的运行时长(单位: 分钟) 十二、模拟简单的top命令 十三、格式化输出指定用户的当前运行进程 十四、用脚本完成which命令的基本功能 十五、验证输入信息是否合法 十、整数验证 十七、判断指定的年份是否为闰年 十八、将单列显示转换为多列显示 十九、将文件的输出格式化为指定的宽度 二十、监控指定目录下磁盘使用空间过大的用户 二十一、编写一个更具可读性的df命令输出脚本 二十二、编写一个用于添加新用户的脚本 二十三、kill指定用户或指定终端的用户进程 二十四、判断用户输入(是/否)的便捷方法 二十五、通过FTP下载指定的文件 二十、文件锁定 二十七、用小文件覆盖整个磁盘 二十八、统计当前系统中不同运行状态的进程数量 二十九、浮点数验证 三十、统计英文文章中每个单词出现的频率 Linux Shell经典实例解析--Oracle启动脚本(上) Linux Shell经典实例解析--Oracle启动脚本(下)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值