写在最前面
以下都是使用linux日常用命令,不涉及复杂的操作,适用于用xshell远程到服务器用vi做开发的程序员,所以必须熟练使用。
ls
ls -lh
-l:输出详细信息
-h:文件大小人能看懂
-R:递归输出
-S:按文件大小排序
-t:按文件新旧排序
-X:按文件字母顺序排序
文件操作相关
touch file_name #创建文件
cp src_file dir_file #复制文件
mv src_file dir_file #剪切文件
rm file_name #删除文件
rm dir_name -r #删除目录
cd dir_name #移动到目录
chmod 770 file_name #更改文件权限
ln -snf src_file dir_path/ #创建软连接到指定目录,可以改名,默认不改
pwd #显示当前目录
find
find ./ -maxdepth 2 -name "*.txt"
find ./ -type d -name "20100901"
find ./ -perm 755
find ./ -size +2k
并且可以用逻辑符号联结
find ./ -type d -and -name "20190901"
find ./ -name "*.txt" -or -name "*.log"
find ./ -name "*.txt" -not -size +2k
#更为细致的参数
find ./ -type TYPE
#TYPE可以是(不限于)以下几种:
#d:目录
#f:文件
#l:链接
find ./ -size SIZE
#SIZE可以是(不限于)以下几种:
#-2k:小于2KB
#+2k:大于2KB
#2k:等于2KB
#大小计量单位还可以是:k(KB) c(byte) M(兆字节) G(G字节)
find ./ -atime TIME
#TIME可以是以下几种:
#-2:2xx之内,xx是分还是天根据前面的参数确定,atime表示天,amin表示分钟
#+2:超过2xx
#2:第2xx
#除了atime(access),还有ctime(change state)、mtime(modify)
#cat more exec会改变atime,vi touch会改变三个时间,chmod chown会改变ctime
#找到文件之后
find ./ -perm 770 -exec cat {} \;
find ./ -name "*.txt" -exec cp {} /data \;
#-exec参数到\;结束,中间是后续执行的命令,{}表示find的结果
find ./ -name *.txt | xargs grep "wtf"
find ./ -name *.txt | xargs rm -rf
grep
通用参数
-c:统计行数
-i:忽略大小写
-n:输出行号
-v:反向输出
--color=auto:高亮关键字
-r:递归搜索目录
-w:仅全字匹配才
搜索的范围
- find的返回结果集
find ./ -name "*.txt" | xargs grep "hello"
find ./ -type f -exec grep "hello" {} ;- 可以是*
grep -n "set_repu" *- 可以是某个目录下的文件集合,支持模糊匹配
grep "hello" ./spec_path/201910/
搜索的内容
grep默认只支持基础正则,不支持扩展正则,可以使用egrep或grep -E,可以参看通配符和正则符这篇文章。
sort
通用参数
-f:忽略大小写
-b:忽略每行前面的空白
-n:使用数值型比大小
-r:反向排序
-u:删除重复行
-t:指定分隔符,默认制表符
-k[n,m]:按指定字段排序
具体使用
搜索结果行后,按第一列(默认制表符分隔)以字符先后方式(默认)排序
grep -E "1234|4567" world.txt | sort -k1
按第三列(-k3,:分隔)数值型(-n指定),去重(-u),反向(-r)
grep "1234" | sort -n -u -r -t":" -k3
按第二列排序后,再按第一列排序,相当于主键和次键
grep -E "1234|567" world.txt | sort -t"=" -k2 | sort -k1
网友评论