1. 管道
在执行命令的时候,管道|
符可以将上一个命令的输出作为下一个命令的输入
echo "abc" | wc # 将echo的输出作为wc的输入 ls -l | less # 将ls -l 的结果作为less的输入(可以一页一页的显示目录信息)
2. 重定向
将输出>
放到文件,或则从文件读取<
echo "abc" > a.txt # 将abc输出到a.txt文件 cat from.txt > to.txt # 将文件from.txt文件里面的内容输出到to.txt
3. 文本处理
3.1. grep
文本搜索,是“global search regular expression and print out the line”的简称,搜索结果会将目标行输出,
最常使用的是从文件里面进行搜索。
grep abc /opt/test.txt # 搜索/opt/test.txt文件中含有abc的行 grep abc -r /opt # 搜索/opt目录下所有文件,并输出含有abc的行 grep abc -rn /opt # 输出的时候带上行号 cat test.txt | grep abc # 从test.txt文件里面搜索abc字符串 cat test.txt | grep -i abc # 忽略大小写 cat test.txt | grep -E [0-9]+ # 使用正则表达式进行搜索 cat test.txt | grep -n abc # 结果结果带有行号 cat test.txt | grep -c abc # 输出搜索的结果数量,只输出一个数字 cat test.txt | grep -v abc # 输出不含abc的行
3.2. sed
用来编辑文件,编辑后的结果直接输出到终端上,sed在自己编写指令时,需要-e
来指定指令,sed中编辑相关的命令,每个编辑的命令都需要来指定行数
a
添加d
删除c
替换i
插入
cat test.txt | sed -e 4a\abcd # 在test.txt第四行后面加一行,内容是abcd cat test.txt | sed -e 1,4a\abcd # 在test.txt第1-4行每一行后面都加一行,内容是abcd cat test.txt | sed -e 1d # 删除第一行 cat test.txt | sed -e 1,4i\abc # 在1-4行每一行行前插入一行 cat test.txt | sed -e 1.4c\abc # 1.4行的内容替换为abc,这里是将四行的内容换成了一行内容
3.3. uniq
将内容去重,单位是行
# test.txt 1 2 2 cat test.txt | uniq # 1 # 2
3.4. split
将一个文件按照给定的规则进行分割,可以按照大小,比如一个10MB的文件拆分成10个1MB的文件;也可以按照行数来进行分割,比如5行一个文件
split -6 test.txt output # 按照行数,每6行拆成一个文件 split -c 1024 test.txt output # 按照大小,每1024个字节分成一个文件,尽量保持每一行的完整
3.5. wc
统计
wc -w test.txt # 统计字数 wc -l test.txt # 统计行数 wc -c test.txt # 统计字节数
3.6. awk
awk是一种编程语言,但是我更推荐你去学一学python,本文不在讨论。
4. 查找
4.1. find
根据给定的规则来查找文件名和目录
find /opt -name "*.c" # 查找/opt目录下所有.c为后缀的文件和目录 find /opt -iname "*test" # 查找/opt目录下所有含有test字符串的的文件和目录,并且忽略大小写 find /opt -size "+1M" # 查找/opt目录下所有大小大于1MB的文件和目录 find /opt -size "-1M" # 查找/opt目录下所有大小小于1MB的文件和目录 find /opt -ctime "+7" # 查找/opt目录下7天前更改过的文件
size中的+/-:
+
大于-
小于
ctime中的+/-
+n
n天前-n
n天内
5. 写在最后
这两篇文章介绍了只一部分命令的使用,下面这些命令你可能还会需要,这里需要你自行去了解这些内容。
- 使用
apt/yum
去安装软件 - 软连接和硬链接
ln
- 检查网络
ping/ipconfig
man
说明书的使用
最后,学会使用Linux命令最好的方法是亲自去多敲一敲。祝你好运!