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命令简记/