实用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 |