Linux基础命令
Contents
💠
💠 2024-11-21 10:49:19
Linux 基础命令
The Art of Command Line
高效优美的工具
系统内置命令
/bin/* 系统自带命令
-
false 以失败码退出程序
-
stty -a
查看快捷键映射 -
终端内执行循环
for i in $(seq 1 10); do echo $i; done
语法和Shell差不多, 但是需要在循环体的每一句加上;
Shell内建命令
- whence 查看命令的真实面貌 (zsh中的内建命令)
- where 查找命令的位置 (Zsh中内建命令)
- which 寻找命令的位置
- type 展示命令的描述
输入输出
重定向
- 输出重定向
> a.log 2>&1
表示为将2也输出到标准输出 为了方便记忆也可以将 &1 理解为C语言中的取地址符:2重定向到1的地址- 2 是错误输出 1 是标准输出
管道
- 接收输入流且输出流 类似于 Java8 中的 peek() 函数
cat README.md | grep Java | tee > java.log | grep -v Maven
xargs
常在管道中使用 能将输入流转为 命令 的参数
- 输出所有的md文件的内容
find . -name "*.md" | xargs cat | less
- 定义替换符
xargs -I {} echo {}
time
可以用于统计命令运行消耗的时间
- bash内置简易time
time
和 /usr/bin/time\time
\time -v ls -al
date
获取日期和时间
date +%Y_%m_%d_%H:%M:%S
或者date +%F %T
- 获取前一天日期
date --date='1 day ago' -R
- 将秒时间戳转换为日期
date --date='@1524738626'
- 设置日期或时间
date -s '2020-12-01'
或date -s '23:00:20'
- 日期计算
date -d "+10 days"
grep
g
(globally) search for are
(regular expression ) andp
(print ) the results.
egrep 相关网页 与 grep -E 等价
-
- 标准正则
grep -E "[1-9]+"
注意[]
是里面单个字符()
是里面所有字符一起 用于匹配 - Perl正则
grep -P ''
- 标准正则
-
-o 只输出匹配值
一行内多个匹配时多行输出
- 统计所有main字符数量
grep -o main test.log | wc -l
- 统计所有main字符数量
-
-i 忽略大小写
eg:
- 匹配中文
-P '[\p{Han}]'
- 截取字符
ping jd.com | grep -oP '(?<=time=).*(?=ms)'
提取出ms值。 - 两个文件的差异行
grep -vwf 文件1 文件2
script
make typescript of terminal session
录制终端
定时任务
crontab
minute hour day-of-month month-of-year day-of-week commands
- cron 脚本中的操作命令 都使用绝对路径, 必须注意环境变量问题
- 以及每行配置都需要以换行符结尾
|
|
- 编辑配置文件
crontab -e
- 时间配置格式
-
- 表示所有值;
- ? 表示未说明的值,即不关心它为何值;
-
- 表示一个指定的范围;
- , 表示附加一个可能值;
- / 符号前表示开始时间,符号后表示每次递增的值;
-
- 例如:
- 每分钟执行二进制命令
- 每分钟执行脚本
注意
如果command是shell脚本,注意执行环境和权限问题
Systemd
参考: Systemd 定时器教程
配置和使用上比Crontab更繁杂, 但是有更多的可控制项
Author Kuangcp
LastMod 2018-12-15