Linux常用命令
find
https://medium.com/techtofreedom/7-uses-of-find-command-in-linux-c45f70d7351a
find . -name test.txt
:在当前目录下查找文件,.
代表当前文件
find . -type *.pdf
:按类查询文件
find . -type d -name test*
:查询以 test 开头的目录
find . -type f -ctime +5 -ctime -10
:查询在大于5天并小于10天内修改过文件元信息的文件
- Access timestamp (atime):上次读文件的时间
- Modified timestamp (mtime) :上次修改文件内容的时间
- Change timestamp (ctime) :上次修改文件元信息的时间,例如文件拥有者、文件位置、文件类型、文件权限等
find . -type f -size +10M -size -1G
:查询文件大小在 10M 和 1G 之间的文件
find . -type f -user wang
:查询文件拥有者是 wang 的文件
find . -type f -atime +365 -exec rm -rf {} \;
:对查询到的文件执行命令(这里是删除)
- 注意
{}
是占位符,它是必须的,否则,执行这个命令将会删除所有文件
Systemd
1 | 列出正在运行的 Unit |
grep
1 | 遍历查看当前目录下所有文件中包含xxx的语句 |
awk
https://medium.com/techtofreedom/8-levels-of-using-awk-in-linux-f6a875c504d1
命令结构: awk ‘’ filename
在单引号中包含两种程序:“模式”和“行为(动作)”,动作由花括号包裹着的,如下:
1 | awk '{action}' filename |
awk 的简单用法
1. 分割字符串
awk -F: '{print $1}' filename
该命令中,使用了 -F 选项来定义分隔符 :
,该命令会将文件中的每一行数据,使用 :
分割成两部分,后面的花括号中的 {print $1}
则是将分割后的第一个变量打印出来。
- 要注意下标索引是由
$1
开始的。awk 命令中$0
有特殊的含义, 代表整行数据。$NF
代表最后一个变量,所以$(NF-1)
是倒数第二个。
2. BEGIN、END
BEGIN
和 END
是 awk 中的两个关键字,它可以在执行我们命令开始和结尾打印出有用的信息。
3. 内置函数
awk -F: '{print toupper($1)}' filename
在这行命令中,toupper()
函数可以将我们的结果转换为大写
4. if-else
awk -F: '{if($1=="name") print $2; else print "NONE"}' filename
5. 带有正则表达式的筛选
awk -F: '/ing$/' filename
6. 结合“模式”与“动作”
awk -F: '$2 ~ /ing$/ {print $2}' filename'
7. 编写可执行脚本
1 | !/usr/bin/awk -f |
cat
https://medium.com/techtofreedom/15-uses-of-cat-commands-in-linux-2dca2b4bb0f8
几种好用的用法
cat filename1 filename2
:显示多个文件内容
cat -n filename
:带有行数的显示文件内容
cat -e filename
:在每行的末尾显示 $
cat /dev/null > filename
:清空文件
cat filename1 > filename2
:将 filename1 的文件内容覆盖到 filename2 的文件中
cat filename1 >> filename2
:将 filename1 的文件内容追加到 filename2 的文件末尾
cat file1.txt file2.txt > new.txt
:合并多个文件到一个
cat filename | grep 'Game Start'
:在文件中查询包含 “Game Start” 的行
cat filename | cut -f 2
:打印具体哪个字段
cat filename | awk -F: 'BEGIN{print "They are:"}{print toupper($0)}'
:与awk配合处理复杂的情况
cat filename | more
:使用 more 或 less 查看大文件
journalctl
用来查看 systemd 记录的日志
1 | 单独查看某个服务的日志 |
更详细的内容可以查看下面的文章:
DevOps Notebook: systemd and journalctl