惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
I
InfoQ
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Announcements
Recent Announcements
GbyAI
GbyAI
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
美团技术团队
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
M
MIT News - Artificial intelligence
D
Docker
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
博客园 - 叶小钗

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法
实用命令
2022-11-17 · via mephisto.cc

本部分内容为日常工作实用命令,会长期更新。

1. 去掉注释行和空行

有时候需要查看某个配置文件的内容,直接查看往往包含很多默认的注释信息,信息混乱翻页麻烦,使用上述命令可去掉行首为#和空行,非#号开始的注释,可自行修改,一般情况够用了。

-E 意思为扩展正则表达式,-v为方向匹配,"^#|^$" 意思匹配#开头或者空行

示例:

1    ➜ grep -Ev "^#|^$" /etc/dnsmasq.conf
2    resolv-file=/etc/resolv.dnsmasq
3    listen-address=127.0.0.1
4    no-hosts
5    hostsdir=/etc/hosts.dnsmasq
6    cache-size=1024

2. 一次性创建多个文件或者目录

1    touch {part1,part2,part3}

mkdir 类似,就是用大括号把东西括起来,在逗号分割待创建的内容,如果是数字或者字母还有变种

请看示例:

 1test touch {one,two,three,four,five}.py
 2test ls
 3    example_dir  five.py  four.py  one.py  three.py  two.py
 4test touch {tony,mike,eric,json,joe}
 5test ls
 6    eric  example_dir  five.py  four.py  joe  json  mike  one.py  three.py  tony  two.py
 7test touch {1..5}.txt
 8test ls -al *.txt
 9    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 1.txt
10    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 2.txt
11    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 3.txt
12    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 4.txt
13    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 14:57 5.txt
14test touch {a..f}.md
15test ls -al *.md
16    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 a.md
17    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 b.md
18    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 c.md
19    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 d.md
20    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 e.md
21    -rw-rw-r-- 1 mephisto mephisto 0 Nov 17 15:00 f.md

3. 查找匹配某种文件后,进一步处理

这些操作当然可以用find + xarg完成,但是fd命令真的很好用,速度非常快。所以我推荐:

1    fd -e zip -x your_next_command

上面的意思为匹配zip结尾,-x 后接你要的命令

示例,先创建10个txt文件,再追加.md结尾,接着把文件复制到example_dir目录

Here, {} is a placeholder for the search result. {.} is the same, without the file extension. {}表示每个匹配的结果,{.}表示每个不带文件后缀名的文件,有点怪,可以看看fd的文档解释。

 1test touch {1..10}.txt
 2test fd . -e txt
 3    1.txt
 4    10.txt
 5    2.txt
 6    3.txt
 7    4.txt
 8    5.txt
 9    6.txt
10    7.txt
11    8.txt
12    9.txt
13test fd . -e txt -x md5sum
14    d41d8cd98f00b204e9800998ecf8427e  ./4.txt
15    d41d8cd98f00b204e9800998ecf8427e  ./2.txt
16    d41d8cd98f00b204e9800998ecf8427e  ./3.txt
17    d41d8cd98f00b204e9800998ecf8427e  ./10.txt
18    d41d8cd98f00b204e9800998ecf8427e  ./6.txt
19    d41d8cd98f00b204e9800998ecf8427e  ./9.txt
20    d41d8cd98f00b204e9800998ecf8427e  ./7.txt
21    d41d8cd98f00b204e9800998ecf8427e  ./8.txt
22    d41d8cd98f00b204e9800998ecf8427e  ./1.txt
23    d41d8cd98f00b204e9800998ecf8427e  ./5.txt
24test fd . -e txt -x mv {} {}.md
25test ls -al
26    total 68
27    drwxrwxr-x  2 mephisto mephisto 12 Nov 17 14:36 .
28    drwxrwxrwt 35 root     root     49 Nov 17 14:33 ..
29    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 10.txt.md
30    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 1.txt.md
31    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 2.txt.md
32    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 3.txt.md
33    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 4.txt.md
34    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 5.txt.md
35    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 6.txt.md
36    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 7.txt.md
37    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 8.txt.md
38    -rw-rw-r--  1 mephisto mephisto  0 Nov 17 14:34 9.txt.md
39test mkdir example_dir
40test fd . -e md -x cp {} example_dir
41test ls -al example_dir
42    total 28
43    drwxrwxr-x 2 mephisto mephisto 12 Nov 17 14:37 .
44    drwxrwxr-x 3 mephisto mephisto 13 Nov 17 14:37 ..
45    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 10.txt.md
46    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 1.txt.md
47    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 2.txt.md
48    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 3.txt.md
49    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 4.txt.md
50    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 5.txt.md
51    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 6.txt.md
52    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 7.txt.md
53    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 8.txt.md
54    -rw-rw-r-- 1 mephisto mephisto  0 Nov 17 14:37 9.txt.md
55test ls
56    10.txt.md  1.txt.md  2.txt.md  3.txt.md  4.txt.md  5.txt.md  6.txt.md  7.txt.md  8.txt.md  9.txt.md  example_dir

4. 排序去重

没有那么多操作很简单 -u 去重,-o 结果输出到另外一个文件

直接看示例:

 1test cat haha.txt
 2    hello
 3    192.168.1.8
 4    192.168.1.9
 5    192.168.1.9
 6    192.168.1.9
 7    192.168.1.9
 8    192.168.1.9
 9    192.168.1.5
10    192.168.1.1
11    192.168.1.3
12    192.168.1.1
13    192.168.1.22
14    world
15test sort -u haha.txt
16    192.168.1.1
17    192.168.1.22
18    192.168.1.3
19    192.168.1.5
20    192.168.1.8
21    192.168.1.9
22    hello
23    world
24test sort -u haha.txt -o result.txt
25test cat result.txt
26    192.168.1.1
27    192.168.1.22
28    192.168.1.3
29    192.168.1.5
30    192.168.1.8
31    192.168.1.9
32    hello
33    world
34test

未完待续...