Linux 常见命令常用用法

作者: , 共 1207 字 , 共阅读 0

简单列一些 Linux 自带的 GNU 命令的常用用法,可以当做 cheatsheet 使用。

最新修订都在https://gitee.com/zhiqiang.org/cheatsheets,可配合cheat 工具使用

1、ls 列出文件

# 列出指定文件或目录,只显示文件名
ls foo
# 显示隐藏文件 -a,all。
ls foo -la
# 显示详细信息(权限、文件大小、时间)-l,long
ls foo -l
# 按大小排序 -S,size(注意是大写的S)
ls foo -lS
# 文件大小采取可视化显示(比如2M,3G)-h
ls foo -lsh
# 按修改时间排序 -t,time
ls foo -lt
# 排序逆序 -r,reverse
ls foo -ltr

2、grep 按行搜索文件内容

# 常规用法,显示所有匹配的行,-r 表示 recursive 递归搜索
grep 'xxx' src -r
# 显示所有不匹配的行,-v
grep -v 'xxx' src -r
# 只显示匹配部分,-o only
grep -o 'xxx.*.jpg' src -r
# 不显示文件名
grep -h 'xxx' src -r
# 显示行号(默认不显示行业,有点违反直觉),-n number
grep -n 'xxx' src -r
# 忽略大小写 -i,ignore
grep -i 'xxx' src -r
# 显示匹配行的上下文,-A2 上面2行,-B3 下面3行,-C4 上下各4行。
grep -A2 -B3 -C4 'xxx' src 

3、find 查找文件

# 查找src目录下所有文件和文件夹,递归所有子目录
find src
# 限制查找文件。-type d表示返回目录。
find src -type f
# 根据文件名查找,-iname表示忽略大小写。注意带*的字符串必须用引号引起来。
find src -name '*.csv'
# 多重条件 -a 表示and,-o表示or
find src -name '*.csv' -o -name '*.jpg'
# 根据文件大小筛选 -size,+表示大于,-表示小于。
find src -size +10M -size -10G

find 和 grep 结合,可以实现对指定的文件类型进行搜索,比如搜索 src 目录下所有.cpp.hpp包含boost的行:

grep "boost" `find src -type f -name "*.cpp" -o -name "*.hpp"`

Q. E. D.

在 Python 中操作文件或字符串时,有时候会碰到 UnicodeDecodeError 异常:
云蒙山景区在北边密云区,可远望密云水库,风景视野都很好。进入景区之后小巴摆渡车开七公里后下车开始徒步,先走一公里平路,再延索道走大约四公里。上山总里程 5 公里多一点,爬升约 700 米。下山路线一样。有索道可坐。