实用Linux命令
基本操作
常用的基础命令:
1 | cd - # 切换到上一次的工作目录 |
软件管理
和rpm文件有关的:
1 | rpm -qa | grep kernel | sort # 查看系统安装的所有内核(rpm系) |
进程管理
查看和管理进程的命令:
1 | ps -ef # 查看系统中所有进程 |
压缩解压缩
使用tar
进行压缩、解压缩时需要好几个选项配合使用,只要剖析一下几个常用选项,就很容易记住了:
-c, --create
创建新压缩包-t, --list
查看包的内容-x, --extract
从包中提取文件-f, --from=archive
指定包文件名-r, --append
在末尾添加文件-u, --update
更新原压缩包中的文件-v, --verbose
详细列出处理的文件
下面的选项和压缩包的格式相关:
-j
和bzip2相关的-J, -xz
和xz相关的-z
和gzip相关的-Z
和compress相关的
有了上面的铺垫,很容易理解和记忆下面的命令:
1 | # .tar文件 |
文件查找
Linux的find
命令在目录结构中搜索文件,并执行指定操作。命令的基本格式如下:
1 | find pathname -options [-print -exec -ok ...] |
命令选项-options
指定查找的根据,常用的有:
-name
根据文件名查找文件-size
根据文件大小查找文件-perm
根据文件权限查找文件-user
根据文件属主查找文件-type
根据文件类型查找文件
命令参数意义如下:
-print
将匹配的文件名打印出来-exec
对匹配的文件执行该参数所给出的shell命令,末尾必须以分号;结尾,一般在分号前加上转义字符,相应命令的形式为cmd {} \
; 其中花括号{}
代表搜索出来的文件名-ok
和-exec
作用相同,每执行一个命令前,会给出提升让用户确认,更加安全
下面是一些例子:
1 | find . -name "*.log" -print # 在当前目录查找以.log结尾的文件 |
find
命令需要遍历路径,速度较慢。locate
命令比find
快很多,因为它不搜索具体目录,而是搜索一个包含所有本地文件信息的数据库。该数据库每天更新一次,但是使用前最好先使用updatedb
命令手动更新一下。
文本搜索
Linux的grep
命令是强大的文本搜索工具,命令的基本格式如下:
1 | grep [options] pattern [files] |
常用的选项有:
-E
使用拓展正则表达式(Extended Regular Expression, ERE)-G
使用基本正则表达式(Basic Regular Expression, BRE)-e
指定字符串作为查找文件内容的样式(pattern)-i
忽略大小写-v
反转查找,匹配不符合特征的内容-R
递归查找目录下的文件-c
计算每个文件中符合样式的行数-n
打印匹配样式内容的行号-w
只匹配全字符合的内容
下面是一些示例:
1 | grep -in "error" *.log # 匹配文件中包含字符(不区分大小写)的内容,并打印行号 |
网络相关
下面是常用的网络管理命令:
1 | netstat -npt # 查看所有TCP连接及其相关进程信息 |
二进制文件操作
提取文件的特定片段:
1 | # 块大小为4096,跳过第1块(从第4097个字节开始),提取2块数据(共8192个字节) |
在文件末尾补0:
1 | # 在二进制文件的末尾补3个0 |
编辑pdf文件
对pdf进行裁边,四个裁剪长度的顺序是左、下、右、上:
1 | pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf |
提取pdf部分页:
1 | # 提取第1、2、3、5、6、7页 |
修改pdf的文件属性:
1 | # 提取信息到metadata.txt文件 |
pdf转换成文本,尝试转换了非扫描版的中文pdf,效果还不错:
1 | pdftotext input.pdf output.txt |