這是一個系列文章,主要分享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,但是如果機器有多塊網(wǎng)卡,從ifconfig的輸出信息中不容易找到所有ip。借助alias命令,定義一個新命令ip,可以快速查看機器的ip。示例中,-o選項是為了只打印匹配的字符串,-v選項反向匹配,即不匹配指定的字符串,去除包含數(shù)字255和127的ip,-E選項是為了使用擴展的正則表達式。由示例中可以看到,通過新命令ip查詢機器ip時,輸出信息更易讀?;蛘咧苯訄?zhí)行hostname -i命令,也可以查看當(dāng)前機器使用的ip,如下:
$ hostname -i
192.168.14.10