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

推荐订阅源

雷峰网
雷峰网
宝玉的分享
宝玉的分享
I
InfoQ
P
Privacy International News Feed
V
V2EX
IT之家
IT之家
S
SegmentFault 最新的问题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
C
Check Point Blog
The Register - Security
The Register - Security
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
AWS News Blog
AWS News Blog
M
MIT News - Artificial intelligence
C
Cyber Attacks, Cyber Crime and Cyber Security
F
Fortinet All Blogs
B
Blog
N
Netflix TechBlog - Medium
B
Blog RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
T
Threatpost
Forbes - Security
Forbes - Security
U
Unit 42
A
Arctic Wolf
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recorded Future
Recorded Future
L
Lohrmann on Cybersecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
月光博客
月光博客
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
I
Intezer
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
MyScale Blog
MyScale Blog
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
量子位

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
command tricks
2016-01-26 · via 夜行人

文章目录

列出一些常用的命令的参数和例子,方便自己查阅和上手

建议采用command 小抄!!

pip install cheat

例如:cheat tar

#find find命令用来在指定目录下查找文件,默认以递归的方式

###选项

1
2
3
4
5
6
:::text
-maxdepth <目录层级> : 设置最大目录层级;
-exec <执行指令> : 假设find指令的回传值为True,就执行该指令;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf <输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;

###常见用法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
:::text
find /home -name "*.txt"  #在/home目录下查找以.txt结尾的文件名
find /home -iname "*.txt" #同上,但忽略大小写
find /usr/ -path "*local*" #匹配文件路径或者文件
find . -regex ".*\(\.txt\|\.pdf\)$" #基于正则表达式匹配文件路径
find . -iregex ".*\(\.txt\|\.pdf\)$" #同上,但忽略大小写

#根据文件时间戳进行搜索
find . -type f -atime -7  #搜索最近七天内被访问过的所有文件
find . -type f -amin +10  #搜索访问时间超过10分钟的所有文件

#根据文件类型进行搜索
find . -type 类型参数(f 普通文件/d 目录)


#根据文件大小进行匹配
find . -type f -size +10k  #搜索大于10KB的文件 (M:兆字节,G:吉字节)
find . -type f -size +1G   #搜索大于1G的文件

#根据文件权限/所有权进行匹配
find . -type f -user wwj  #找出当前目录用户wwj拥有的所有文件

#grep grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

###选项

1
2
3
4
5
6
7
8
:::text
-i : 不区分大小写地搜索。默认情况区分大小写 (ignore case)
-l : 只列出匹配的文件名 (ls?)
-r/R : 递归(recurse)搜索
-n : 显示行号信息(num)
-c : 计算符合pattern的列数。(count)
-C : 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-v : 反转(reverse)查找(不匹配)

###常见用法

1
2
3
4
5
6
7
8
:::text
grep match_pattern file_name 
grep "match_pattern" file_name
grep "match_pattern" file_name --color=auto #标记匹配颜色
grep -E "[1-9]+"  #使用正则表达式,等效于egrep
grep "text" . -r -n #当前目录下递归搜索
echo this is a text line | grep -e "is" -e "line" -o  #多种匹配方式
seq 10 | grep "5" -C 3  # 显示匹配某个结果的前三行和后三行

#sed sed是一种流编辑器,用程序的方式来编辑文本。sed 是基于行的,因此按顺序对每一行执行命令。
使用单引号来括起 sed 命令的习惯

###选项

1
2
3
4
5
6
:::text
s : 替换指定字符
/g : 替换每一行中的所有匹配,当需要从第N处匹配开始替换时,可以使用 /Ng
d : 删除操作
-e: 允许在同一行里执行多条命令
a\ : 追加到行下,i\ 追加到行上

###常见用法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
:::text
grep -rl picDir ./ | xargs sed -i 's/picDir/picPath/g' # 重构项目时,重命名变量
sed 's/book/books/' file #替换文本中的字符串
sed -n 's/test/TEST/p' file #-n选项和p命令一起使用表示只打印那些发生替换的行
sed -i 's/book/books/g' file #匹配file文件中每一行的第一个book替换为books
sed 's:test:TEXT:g' #可以使用任意的定界符
sed '/^$/d' file #删除空白行
sed '2,$d' file #删除文件的第2行到末尾所有行
sed '/^test/d' file #删除文件中所有开头是test的行
echo this is a test line | sed 's/\w\+/[&]/g' 
#[this] [is] [a] [test] [line]
echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'
#this is 7 in a number
sed -n '/test/,/check/p' file #test和check所确定的范围内的行都被打印
sed -n '5,/^test/p' file #打印从第5行开始到第一个包含以test开始的行之间的所有行
sed '/test/,/west/s/$/aaa bbb/' file #test和west之间的行,每行的末尾用字符串aaa bbb替换
sed -e '1,5d' -e 's/test/check/' file #第一条命令删除1至5行,第二条命令用check替换test
sed '/^test/a\this is a test line' file #将 this is a test line 追加到 以test 开头的行后面

#正则
sed -n '/[34]/ p ' source.txt  #匹配包含3或4的行
sed -n '/^[0-9]\{3,5\}$/ p' numbers.txt
$sed -e 's/#.*//' -e '/^$/ d' /etc/profile #删除所有注释行和空行

#修改源文件和备份
sed -ibak 's/Ian/IAN/' source.txt #-i会修改源文件,但是可以同时使用bak备份

#xargs xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs的默认命令是echo,空格是默认定界符

xargs与-exec的区别:-exec会为处理每一个匹配到的文件而发起一个相应的进程。可能占用过多资源。 而使用xargs命令则只有一个进程,顺序执行

###选项

1
2
3
:::text
-d : 指定定界符
-I : 指定一个替换字符串{}

###常见用法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
:::text
echo "nameXnameXnameXname" | xargs -dX  
#name name name name

echo "nameXnameXnameXname" | xargs -dX -n2 
#name name 
#name name

echo 'axaxa' |xargs -dx -n1 -I {} echo b{}
#ba
#ba
#ba

ls *.jpg | xargs -n1 -I cp {} /data/images #复制所有图片文件到 /data/images 目录下
find . -type f -name "*.py" -print0 | xargs -0 wc -l  #统计python代码行数
#等效于find . -type f -name "*.py"  | xargs  wc -l 吧

cat url-list.txt | xargs wget -c #下载文件里的所有链接

#seq seq命令用于产生从某个数到另外一个数之间的所有整数

###选项

1
2
3
4
:::text
-f : 使用printf 样式的浮点格式
-s : 使用指定字符串分隔数字(默认使用:\n)
-w : 在列前添加0 使得宽度相同

###常见用法 touch (seq -f “%03g-4.mp3” 1 10)

#$()

###常见用法 cp gogs-repositories/ gogs-repositories_$(date “+%Y-%m%d”) -R

#tree ###选项

1
2
3
4
5
:::text
-d : 仅显示目录
-L : 限制目录的最大深度
-C : 在文件和目录清单加上色彩,便于区分各种类型;
-f:在每个文件或目录之前,显示完整的相对路径名称;

###常见用法 tree -ah –du

#ln ###选项

1
2
3
4
:::text
-s或--symbolic:对源文件建立符号连接,而非硬连接;
-d或-F或--directory:建立目录的硬连接;
-i或--interactive:覆盖既有文件之前先询问用户;

###常见用法

1
2
:::text
ln -s /usr/mengqc/mub1 /usr/liu/abc  #在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1

#streams(input,output and redirect) streams

###常见用法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
:::text
# output of ls will be written to list.txt
ls -l > list.txt

# append output to list.txt
ls -a >> list.txt

# all errors will be written to errors.txt
grep da * 2> errors.txt

# read from errors.txt
less < errors.txt

#逻辑判断

###常见用法

1
2
3
4
5
if [[ 2 -ne 1 ]]; then
  echo "true"
else
  echo "false"
fi

#实用案例 ###递归替换 grep -rl 'ajax.googleapis.com' ./ | xargs sed -i 's#ajax.googleapis.com#ajax.useso.com#g'

作用 : 把./目录及其子目录下的ajax.googleapis.com替换为ajax.useso.com(实用360CDN替换google CDN)

解释:

1
2
3
4
5
:::text
-r : 递归
-l : 只列出文件名
xargs : 拼接命令
-i : sed 原地替换

###批量生成文件 touch (seq -f "%03g-1.mp3" 1 10)(fish下用()替代$())

批量生成001-1.mp3到010-1.mp3

#date ###常见用法

  • echo $(date +"%Y_%m_%d_%S") #2016_02_22_53
  • echo $(date +“s”) #从1970至今的秒数

#tar ###常见用法

1
2
tar -zcvf /tmp/etc.tar.gz /etc #打包后,以 gzip 压缩
tar -zxvf /tmp/etc.tar.gz #解压

du

du -hls * // 列出当前目录下所有文件/目录的大小 du -hls * | grep G //查找大目录

定时任务

cron用于例行性的任务,at用于一次性的任务

at

1
2
3
4
at now+1 minute
cowsay 'hello at'  >/tmp/test
#atq 查看任务
# at -c 8 #查看数字对应任务的具体内容

mac下有问题:Mac OS X: at command not working

cron

sudo crontab -e

暂停并在后台运行命令

  • CTRL + Z -暂停应用程序
  • fg -重新将程序唤到前台

#参考

文章作者 种瓜

上次更新 2016-01-26