系统状况
top
:查看所有进程的信息(Linux的任务管理器)- 打开后,输入M:按使用内存排序
- 打开后,输入P:按使用CPU排序
- 打开后,输入q:退出
df -h
:查看硬盘使用情况free -h
:查看内存使用情况du -sh
:查看当前目录占用的硬盘空间ps aux
:查看所有进程kill -9 pid
:杀死编号为pid的进程- 传递某个具体的信号:
kill -s SIGTERM pid
- 传递某个具体的信号:
netstat -nt
:查看所有网络连接w
:列出当前登陆的用户ping www.baidu.com
:检查是否连网
文件权限
chmod
:修改文件权限chmod +x xxx
:给xxx添加可执行权限chmod -x xxx
:去掉xxx的可执行权限chmod 777 xxx
:将xxx的权限改成777chmod 777 xxx -R
:递归修改整个文件夹的权限
文件检索
find /path/to/directory/ -name '*.py'
:搜索某个文件路径下的所有*.py文件grep xxx
:从stdin中读入若干行数据,如果某行中包含xxx,则输出该行;否则忽略该行。grep -Rin XX
. : R-递归搜索,i-忽略大小写,n显示匹配的行号wc
:统计行数、单词数、字节数- 既可以从stdin中直接读入内容;也可以在命令行参数中传入文件名列表;
wc -l
:统计行数wc -w
:统计单词数wc -c
:统计字节数
tree
:展示当前目录的文件结构tree /path/to/directory/
:展示某个目录的文件结构tree -a
:展示隐藏文件
ag xxx
:搜索当前目录下的所有文件,检索xxx字符串cut
:分割一行内容- 从stdin中读入多行数据
echo $PATH | cut -d ':' -f 3,5
:输出PATH用:分割后第3、5列数据echo $PATH | cut -d ':' -f 3-5
:输出PATH用:分割后第3-5列数据echo $PATH | cut -c 3,5
:输出PATH的第3、5个字符echo $PATH | cut -c 3-5
:输出PATH的第3-5个字符
sort
:将每行内容按字典序排序- 可以从stdin中读取多行数据
- 可以从命令行参数中读取文件名列表
xargs
:将stdin中的数据用空格或回车分割成命令行参数
用法:后面直接接命令。find . -name '*.py' | xargs cat | wc -l
:统计当前目录下所有python文件的总行数
可用于:echo
、rm
、mkdir
、wc
等命令接受标准输入作参数。
如:
echo test | xargs echo
echo test | xargs mkdir
查看文件内容
more
:浏览文件内容- 回车:下一行
- 空格:下一页
- b:上一页
- q:退出
less
:与more类似,功能更全(相比vim,开销更小,适合大文件简单浏览,如日志)- 回车:下一行
- y:上一行
- Page Down:下一页
- Page Up:上一页
- q:退出
head -3 xxx
:展示xxx的前3行内容- 同时支持从stdin读入内容
tail -3 xxx
:展示xxx末尾3行内容- 同时支持从stdin读入内容
用户相关
history
:展示当前用户的历史操作。内容存放在~/.bash_history
中。
工具
md5sum
:计算md5哈希值- 可以从stdin读入内容
- 也可以在命令行参数中传入文件名列表;
time command
:统计command命令的执行时间ipython3
:交互式python3环境。可以当做计算器,或者批量管理文件。- ! echo “Hello World”:!表示执行shell脚本
watch -n 0.1 command
:每0.1秒执行一次command命令tar
:压缩文件- tar -zcvf xxx.tar.gz /path/to/file/*:压缩
- tar -zxvf xxx.tar.gz:解压缩
diff xxx yyy
:查找文件xxx与yyy的不同点- 一般用diff -u a.txt b.txt:以联合 (unified) 模式比较差异,就是git那种diff形式:
--- a.txt 2012-08-29 16:45:41.000000000 +0800
+++ b.txt 2012-08-29 16:45:51.000000000 +0800
@@ -1,7 +1,7 @@
a
a
a
-a # - 表示该行在 a.txt 中存在,但在 b.txt 中被删除。
+b # + 表示该行在 b.txt 中存在,但在 a.txt 中没有,是新增的行。
a # 无符号 表示该行在 a.txt 和 b.txt 中都存在,没有变化。
a
a
安装软件
sudo command
:以root身份执行command命令apt-get install xxx
:安装软件pip install xxx --user --upgrade
:安装python包
屠龙术sed与awk
(1) sed,是一种流编辑器
类似于vim中的替换,但是用sed不会修改原文件。这里只会把结果输出到标准输出,需要额外保存。
注意: 这里是做文本替换,也就是说如果unix带有前缀或者后缀,如a_unix
, unix_b
,那么这些单词里的unix也会被替换。如果只想对单词unix本身做替换,需要加上空格,如:
sed 's/ unix / linux /g' test.txt
(2) awk,一种处理文本文件的语言
注意:awk从1开始编号 !! $1
表示第一列,$2
表示第二列
常用操作:查看进程pid,示例:
ps aux | grep <进程名> | awk '{print $2}'