shell技巧分享(六)

这是一个系列文章,主要分享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目录下,名字包含字符串demo的所有文件。-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

LEo at 00:05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏青枫的专栏

c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释_

  C将每个文件简单地作为顺序字节流(如下图)。每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。当打开...

631
来自专栏Linux驱动

第1阶段——uboot分析之仿照bootm制作hello命令(7)

仿照bootm命令生成来制作一个hello命令,功能:打印出hello,world!和参数值 1.点击New File ,创建cmd_hello.c 将./co...

16710
来自专栏程序员宝库

Linux 基础:文件查找 find

在linux的日常管理中,find的使用频率很高,熟练掌握对提高工作效率很有帮助。 find的语法比较简单,常用参数的就那么几个,比如 -name、 -type...

33313
来自专栏Linux驱动

第2阶段——编写uboot之启动内核和制作Makefile(2)

目标: 1   添加头文件setup.h和serial.h 2   写main函数       2.1 帮内核设置串口0, (内核启动会打印出启动信息)    ...

1798
来自专栏惨绿少年

shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 【示例】脚本内容 [root@znix ~]# cat /server/scri...

1990
来自专栏容器云生态

shell基本命令

有关文件显示的命令: du --exclude=iso  -sh  .        //统计当前除了iso这个目录的其他文件大小 ls -F        ...

2087
来自专栏程序员宝库

Linux 基础:文件查找 find

在linux的日常管理中,find的使用频率很高,熟练掌握对提高工作效率很有帮助。 find的语法比较简单,常用参数的就那么几个,比如 -name、 -type...

2736
来自专栏三木的博客

Make

###一、make的功能: make是一个用来维护程序模块关系和生产可执行文件的工具,他可以根据程序修改的情况重新编译链接生成的中间代码或最终的可执行文件。执行...

18010
来自专栏C/C++基础

Makefile教程

Makefile定义了软件开发过程中,项目工程编译链、链接的方法和规则。 由IDE自动生成或者开发者手动书写。 Unix(MAC OS、Solaris)和Lin...

1262
来自专栏成猿之路

Linux 基础命令(收藏大全)

/home 普通用户的宿主目录,用户数据存放在其主目录中lib 存放必要 的运行库

954

扫码关注云+社区