——内容摘自《Linux Command Line and Shell Scripting Bible, 3E》
本文记录一些闲暇时间在书上看到或者实际解决问题过程中学到的linux系统实用知识
- /bin/ 目录下储存可执行文件(shell外部命令的真身,
ls -lF /bin/
)
ls 命令
ls -alF # -l:显示长列表; -a:显示隐藏文件; -F:不同颜色区分文件和目录,*表示可执行文件
ls -R # -R:列出目录下包含子目录中的文件
### 过滤输出列表
ls -l my_script # 此处文件名可以包含通配符
ls -l my_scr[ai]pt # *表示0个或多个字符; ?表示一个字符; [ai]表示a或i; [a-i]表示范围; [!a-i]非此范围
查看文件
三种自带的查看文件方式: cat / more / less
file file_name # 查看文件类型
cat file_name # 查看文件内容
cat -n file_name # -n: 给所有行加上行号; -d: 给有文本的行加上行号; -T: 用^I字符组合替换制表符
more file_name
less file_name # less is more: 比more更强大,按空格/回车浏览后续内容; 支持上下键和翻页键
tail -f file_name # 允许再其他进程使用该文件时查看文件结尾
head -5 file_name # 同tail, -n 表示显示几行内容(默认10); head命令不支持-f参数
ps命令
默认情况下,ps
命令仅列出运行在当前控制台下的属于当前用户的进程
Linux系统中使用的GNU ps命令支持3种不同类型的命令行参数
- Unix风格参数: 单个 -
- BSD风格参数: 无 -
- CNU风格长参数: 两个 -
ps
命令的参数太多,可以选择去记住一些常用的参数组合:
例如 ps -ef
可以查看系统上运行的所有进程, -f 显示完整信息
下图是Unix风格的一组结果:
ps -l
参数会产生长列表
ps --forest
以树状结构表示父进程与子进程之间的关系
磁盘空间整理
df -h
查看所有已挂载磁盘的使用情况; -h显示M或G而不是字节
du
显示某当前目录的磁盘使用情况(可以判断某目录下是不是有超大文件),如图:
它的实用参数有:-h; -c 显示已列出文件的总大小; -s: 显示每个输出参数的总计
数据整理
sort 数据排序
待补充
grep 搜索数据
一般grep会配合Unix风格正则表达式来使用:
grep [options] pattern [file_name]
grep -v pattern [file_name] # -v 反向搜索
grep -n pattern [file_name] # -n 显示匹配模式的行所在的行号
grep -c pattern [file_name] # -c 显示共有多少行匹配
grep -e pattern1 -e pattern2 [file_name] # -e 指定多个匹配模式 -e t -e f 相当于 [tf]
一般常用的查询python包命令 pip list
或 conda list
可在后边添上 | grep xxx
来查找指定包:
同理 ps -ef
等命令后面也可以接grep来筛选指定进程:
tar 数据归档
用三条连续的命令(新建,查看,解压)来阐述tar命令的常用参数组合
tar -cvf test.tar test/ test2/ # -c --create 创建新tar; -v 在处理时显示文件; -f 输出结果到文件(必加)
tar -tf test.tar # -t --list 列出已有归档文件的内容
tar -xvf test.tar # -x --extract
开源软件中,经常有文件以.tgz结尾,这些是经过gzip压缩过的tar文件, 可用tar -zxvf xxx.tgz
来解压