内存查看
top看到的内存会将 分配的 bufffer 等也算作已经使用- 注:遇到过
top出 Bug 的情况,会让人感觉资源已经占满,实际上并没有,此时建议使用free -h看看
- 注:遇到过
- 使用
free -h可看到更真实的内存- total:物理内存总量
- used:已使用(不包含 buffers/cache)
- free:完全未使用
- buff/cache:缓存和缓冲区(可回收)
- available:真正还能给应用用的内存(最重要),评估系统还能提供多少内存给新启动的应用程序使用
- 它等于 free 加上 buff/cache 中可回收的部分
- 判断系统是否缺内存,主要看这个指标,而不是看 free
数据分析
输出某个文件的某一行(比如第二行):
1
sed -n '2p' filename
2是行号p是 print 的含义
批量统计文件行数
1
wc -l *.jsonl
批量统计文件行数并排序
1
wc -l *.jsonl | sort -nr
sort -nr:对结果按数字倒序排序
-n:按数值排序(不是字符串)
-r:倒序(从大到小)
批量统计文件函数并删除最后的 total 行
1
wc -l *.jsonl | grep -v total | sort -nr
抽取某个文件下所有文件的前 100 行(or 随机抽取):
1
2
3
4
5
6
7
8
9
10# 抽取前 100 行
head -q -n 100 xxx/*.jsonl > output.jsonl
# 随机抽取(错误示例):shuf 会将后面的文件视作一个
shuf -n 100 /path/to/dir/*.jsonl > output.jsonl
# 正确随机抽取示例:
find /path/to/dir/ -name "*.jsonl" -exec shuf -n 100 {} \; > output.jsonl
## 或者
for f in /path/to/dir/*.jsonl; do shuf -n 100 "$f"; done > output.jsonl # 注: `> output.jsonl` 作用于整个 `for … done` 结构,而不是某一次 shuf- 注:head在同时处理多个文件时,默认会输出类似下面的结果,
-q(quiet)用来关闭这些文件名分隔符1
2
3
4==> file1.jsonl <==
line1
==> file2.jsonl <==
line1
- 注:head在同时处理多个文件时,默认会输出类似下面的结果,
SSH 使用相关
SSH 登陆
登录命令
1
ssh -p 22 user@host
- 注意:端口默认为 22
SSH 复制远程文件
复制命令,拉取文件
1
scp -P 2222 user@host:/remote/file.txt /local/
-P是大写的,不是-p,-p是保留修改时间
复制命令,拉取目录
1
scp -P 2222 -r user@host:/remote/dir /local/