Linux命令简记
本文最后更新于:1 年前
Linux命令简记
简介
由于部分linux命令使用频率较低,导致遇到时常常忘记命令选项的含义和使用方法,因此在本文中记录linux命令的常用选项和具体使用方法,并对部分命令记录使用实例。
tar
常用选项:
- -c: 建立压缩档案
 - -x:解压
 - -t:查看内容
 - -r:向压缩归档文件末尾追加文件
 - -u:更新原压缩包中的文件
 - -f: 使用档案名字,这个参数是最后一个参数,后面只能接档案名
 
可选参数:
- -z:有gzip属性的
 - -j:有bz2属性的
 - -Z:有compress属性的
 - -v:显示所有过程
 - -O:将文件解开到标准输出
 
压缩、解压
1  |  | 
加密压缩、解压
1  |  | 
分卷加密压缩、解压
1  |  | 
FAQ
–exclude参数报错
1
tar: The following options were used after any non-optional arguments in archive create or update mode. These options are positional and affect only arguments that follow them. Please, rearrange them properly.这是因为不同版本的tar,
--exclude选项添加的位置存在差异。当tar的版本小于1.30时,该选项可以放在待压缩目录之后;若tar版本为1.30时,--exclude需要添加在待压缩目录之前。如下所示1
2
3
4
5# tar --version tar (GNU tar) 1.30
tar -czvf file.tar.gz --exclude="file/exclude_dir" ./file
# tar --version tar (GNU tar) 1.26
tar -czvf file.tar.gz ./file --exclude="file/exclude_dir"
grep
常用选项:
- -c 或 –count : 计算符合样式的列数。
 - -h –no-filename : 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
 - -H –with-filename : 在显示符合范本样式的那一列之前,标示该列的文件名称。
 - -i 或 –ignore-case : 忽略字符大小写的差别。
 - -E 或 –extended-regexp : 将样式为延伸的正则表达式来使用。
 - -o 或 –only-matching : 只显示匹配PATTERN 部分。
 - -v 或 –invert-match : 显示不包含匹配文本的所有行。
 - -V 或 –version : 显示版本信息。
 - –include : 搜索指定的文件
 - –exclude : 搜索结果中排除指定文件
 - –exclude-from <fileList>: 在搜索结果中排除fileList中的文件,一行一个“pattern”
 
多条件与(and),或(or)查询
1  |  | 
输出不包含指定内容的行,(非(NOT)查询)
1  |  | 
使用实例
- 根据可执行文件名称和运行参数,过滤输出进程id 
1
ps ef | grep -i '${process_name}' | grep -i '${excute_param}' | grep -v 'grep' | awk '{print $1}' 
dd
dd 命令用于读取、转换并输出数据。可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
格式:dd [operand]dd option
常用参数:
- bs=BYTES:同时设置输入/输出的块大小为BYTES字节
 - count=N:仅拷贝N个block块,块大小等于ibs指定的字节数
 - cbs=BYTES:一次转换BYTES个字节,即指定转换缓冲区大小
 - ibs=BYTES:一次读取BYTES个字节,即指定读取的一个块大小为BYTES字节
 - obs=BYTES:一次输出BYTES个字节,即指定输出的一个块大小为BYTES字节
 - if=FILE:输入文件名,默认为标准输入
 - iflag=FLAGS
 - of=FILE:输出文件名,默认为标准输出
 - oflag=FLAGS
 - skip=N:从输入文件开头跳过N个block块后开始复制
 - seek=N:从输出文件开头跳过N个block块后开始复制
 - status=LEVEL:打印到stderr的信息级别
- ‘node’: 抑制错误消息之外的所有内容、
 - ‘noxfer’: 抑制最终的传输统计数据
 - ‘progress’:显示定期传输统计信息
 
 - conv=<CONVS KEY WORDS>
- lcase:把大写字符转换为小写字符
 - ucase:把小写字符转换为大写字符
 - noerror:出错时不停止
 - notrunc:不截断输出文件
 
 
与管道符(|)配合读取/输出文件
读取文件
1
2# 配合 grep 查找指定内容
dd if=./testfile status=none | grep 'HelloWord'
输出文件
1
2# 将docker image信息写入指定文件
docker image ls | dd of=./docker_image_info.txt status=none
备份磁盘并恢复
1  |  | 
压缩备份
1  |  | 
备份磁盘MBR表
1  |  | 
简单的磁盘读写性能测试
通过 /dev/null 和 /dev/zero 完成读写性能测试
/dev/null,也叫空设备,小名“无底洞”。任何写入它的数据都会被无情抛弃。/dev/zero,可以产生连续不断的 null 的流(二进制的零流),用于向设备或文件写入 null 数据,一般用它来对设备或文件进行初始化。
1  |  | 
touch
1  |  | 
-mtime
查找指定时间修改的文件,单位天,但是按24小时更便于理解,在下面的示例中,将文件修改时间与当前时间的时间差记为 “T”
e.g.
- -mtime -1:T < 24
 - -mtime 1: 24 < T < 48
 - -mtime +1:T > 48
 - -mtime -2:T < 48
 - -mtime 2: 48 < T < 72
 - -mtime +2:T > 72
 
总结一下:
- 假设期望获取修改时间为 N 天之内(T < 
N * 24h内修改过)的文件,则 -mtime -N - 假设期望获取修改时间为距离当前时间的第 N 天(
N * 24h< T <(N + 1) * 24h之间修改)的文件,则 -mtime N - 假设期望获取修改时间为距离当前时间 N 天之前(T > 
N * 24h之前修改)的文件,则 -mtime (N-1) 
sed
find
awk
xargs
Linux命令简记
      https://ccccx159.github.io/2023/02/21/Linux命令简记/