一. 常用命令的英文及解析
cd (change directory )
切换工作目录pwd(print working directory)
打印当前工作目录man (manual)
:
获取帮助, eg: man touch 获取touch命令的使用帮助ls (list)
列出文件列表rm (remove)
删除文件grep
: 通过正则表达式, 全局搜索文件, 并根据模式匹配文件内容
可以分成三部分释义:
g: global, 全局.
re:regular expression,正则表达式,
p: pattern, 模式ps (process Snapshot)
进程快照, 也就是查看进程, 一般不单独使用, 经常配合参数使用, 常用的是:ps -ef
与此功能相同的是:ps aue
, 只是风格不一样, 内容相差不大.top
实时显示htop
查看系统负载情况, 需要安装 可以使用yum或者apt安装wc -l
数一个文件的行数tee
保存中间结果, 不常用,一般与管道结合使用tail -f /test.log
,
用来实时跟踪一个文件, 经常使用的场景就是实时跟进日志.
1.1 管道与重定向
- 管道(pipeline)
在命令与命令之间传递数据, 标准输入流用0表示, 标准输出流使用1表示, 标准错误流使用2表示 - 重定向
>
将标准输出注销覆盖重定向
>>
将标准输出流追加重定向
&>
将标准错误流重定向
1.1.1匿名管道
- 使用场景:
- 排序:
ls | sort -r
倒序显示文件 - 去重:
sort a.txt | uniq
: 因为uniq只能将相邻的两个单词去重, 所以可以先排序, 排序后再去除相邻的重复单词. - 筛选:
find ./ | grep Spring
查找当前目录下,所有含有spring字符串的文件find ./ | grep Spring | grep -v MyBatis
: 查找当前目录下含有spring字符串不含有MyBatis字符串的文件 v: invert 倒置|颠倒的意思 - 数行数:
ls | wc -l
查看当前目录下的文件数 - tee 指令:
find ./ -i "*.java" | tee javaList | grep Sping
找到所有的java文件, 将结果存在到javalist文件中, 并查找含有Spring的行 - xargs 指令: 从标准输入流中构造并执行一行行的指令
ls | xargs -I GG echo "mv GG prefix_GG"
-I
: replace-str 替换字符串, 这是样本命令, 命令会被打印出来, 但不会被执行.ls | xargs -I GG "mv GG prefix_GG"
这样就会执行相mv命令
- 排序:
1.1.2 命名管道(mkfifo)
与匿名管道功能相似
使用’mkfifo’创建一个管道文件, 再使用重定向指向管道文件
Administrator@DESKTOP-25VGI2M MINGW64 /d/test
$ mkfifo pipe1
# 这是创建一个命名管道文件
Administrator@DESKTOP-25VGI2M MINGW64 /d/test
$ ll
total 1
prw-rw-rw- 1 Administrator 197121 0 12月 2 15:11 pipe1|
# 只有这一个文件
Administrator@DESKTOP-25VGI2M MINGW64 /d/test
$ cat pipe1 &
[1] 1567
# 使用&符使管道文件处于等待状态
Administrator@DESKTOP-25VGI2M MINGW64 /d/test
$ echo "this is a test" >pipe1
this is a test
[1]+ Done cat pipe1
Administrator@DESKTOP-25VGI2M MINGW64 /d/test
二. 文件的增删改查
2.1 添加
touch a.txt
本意是修改文件的时间戳, 但是当文件不存在时,就会创建一个a.txt 文件,mkdir hello
创建hello 目录文件mkdir -p hello/word
递归创建目录
2.2 查询
ls
或ls -l
可以简写为:ll
查询当前目录下的文件cat
快速查看一些比较短小的文件内容, 比如配置文件more
分批次,或分页阅读文件less
与more相反, 但支持向上翻页, 使用频率比more要多些head
和tail
是一组,
用来读取一个文件的头部N行或者尾部N行
比如查看nginx日志, 可以使用tail -f(follow) 文件名 这样的命令, 实时查看用户请求的日志grep
grep ip ./nginx_logs.txt
grep 时间 ./nginx_logs.txt
which
查询一个指令文件所在的位置find
通用的指令查找文件
2.3 删除
rm a.txt
删除一个文件rm -r hello/world
递归删除目录
2.4 修改
nano
: 编辑工具,不常用vim
: 常用, 且有一定的学习成本vi
: 同vim
三.常见的文件
ls -F
当前目录下的文件和它的类型
普通文件: 什么都没有
目录文件: 以/
结尾
可执行文件: 以*
结尾
管道文件:以|
结尾
硬链接文件:
软链接文件: 以@
结尾
socket文件: 以=
结尾