shell基础命令
快速写入文件
- 方法一
cat > a.txt << 'EOF'
afasdf
EOF
- 方法二
tee a.txt <<- 'EOF'
afsafdsf
EOF
linux系统 定时同步网络时间
# 设置定时任务
crontab -e
*/5 * * * * ntpdate time.nist.gov
# 查看定时任务列表
crontab -l
# 查看定时任务日志
tail -f /var/log/cron
# 几个时间服务器
ntpdate time.nist.gov
ntpdate time.nuri.net
ntpdate 0.asia.pool.ntp.org
ntpdate 1.asia.pool.ntp.org
ntpdate 2.asia.pool.ntp.org
ntpdate 3.asia.pool.ntp.org
| 字段 | 是否必填 | 允许值 | 允许特殊字符 | 备注 |
|---|---|---|---|---|
| Seconds | 是 | 0–59 | *``,``- | 标准实现不支持此字段。 |
| Minutes | 是 | 0–59 | *``,``- | |
| Hours | 是 | 0–23 | *``,``- | |
| Day of month | 是 | 1–31 | *``,``-``?``L``W | ?``L``W只有部分软件实现了 |
| Month | 是 | 1–12 or JAN–DEC | *``,``- | |
| Day of week | 是 | 0–7 or SUN–SAT | *``,``-``?``L``# | ?``L``#只有部分软件实现了 Linux和Spring的允许值为0-7,0和7为周日 Quartz的允许值为1-7,1为周日 |
| Year | 否 | 1970–2099 | *``,``- | 标准实现不支持此字段。 |
vmware 设置网络
注意最好使用 vmware 15, vmware 16的版本网络好像有问题。


查询当前文件夹总大小
du -sh ./
查询当前目录结构前n级目录树
显示 第一级目录 for /d %i in (*) do @echo %i
安装 lrzsz
yum install -y lrzsz
sz 下载 rz 上传
linux关闭java进程
kill -9 $(ps -ef | grep -w "xxx-1.0.jar" | grep -v "grep" | awk '{print $2}')
grep命令
1️⃣ 基本命令
grep [options] PATTERN FILE
- 搜索文件中包含
PATTERN的行 - 常用选项:
-i→ 忽略大小写-v→ 反向匹配(不包含 PATTERN 的行)-n→ 显示行号-r/-R→ 递归搜索目录-E→ 启用 扩展正则表达式(ERE)
2️⃣ 基本示例
2.1 匹配关键字
grep "error" logfile.txt
匹配包含 "error" 的行
2.2 忽略大小写
grep -i "error" logfile.txt
匹配 "error"、"Error"、"ERROR" 等
2.3 显示行号
grep -n "error" logfile.txt
输出行号 + 行内容
2.4 反向匹配
# 输出**不包含 `error`** 的行
grep -v "error" logfile.txt
# 包含a不含b的行记录
awk '/a/ && !/b/' logfile.txt
grep "a" logfile.txt | grep -v "b"
2.5 递归搜索目录
grep -r "TODO" ./src
搜索 src 目录及子目录的所有文件
3️⃣ grep -E 扩展正则
- 支持更强大的正则语法:
|→ 或+→ 前一个字符 1 次或多次?→ 前一个字符 0 次或 1 次()→ 分组
- 无需像普通 grep 那样使用反斜杠转义
3.1 匹配多个关键字
grep -E "error|fail|fatal" logfile.txt
匹配 "error"、"fail" 或 "fatal"
3.2 匹配重复字符
echo -e "aaa\naa\nb" | grep -E "a+"
匹配 1 个或以上连续 a
输出:
aaa
aa
3.3 可选字符
echo -e "color\ncolour" | grep -E "colou?r"
u? → u 可出现 0 或 1 次
输出:
color
colour
3.4 分组匹配
echo -e "cat\nbat\nrat" | grep -E "(c|b)at"
匹配 "cat" 或 "bat"
输出:
cat
bat
3.5 行号 + 忽略大小写
grep -Eni "error|fail" logfile.txt
-n→ 行号-i→ 忽略大小写-E→ 扩展正则
3.6 复杂示例
grep -E '(error|fail|fatal) [0-9]{3}' logfile.txt
解析:
(error|fail|fatal)→ 匹配error、fail或fatal→ 空格[0-9]{3}→ 匹配 三位数字- 输出整行匹配内容
4️⃣ 匹配 pip list 示例(结合扩展正则)
假设你有 Python 包列表:
pip list | grep -E "sentence"
# 输出:
# sentence-transformers 5.1.0
如果想匹配 sentence-transformers,用 .* 通配:
pip list | grep -E "sentence.*transformers"
5️⃣ 小技巧
- 模式用单引号
'...'包裹,避免 shell 转义 - 匹配整个单词:
\bpattern\b - 匹配数字:
[0-9]+ - 匹配任意字符:
. - 匹配重复字符:
+/{n,m}
✅ 总结
grep→ 基础搜索grep -E→ 扩展正则,支持|,+,?,()- 可组合选项:
-i,-v,-n,-r - 常用技巧:单引号包裹、
.*通配、[- ]匹配多种分隔
协议
本作品代码部分采用 Apache 2.0协议 进行许可。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:
- 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
- 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
- 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
- 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
- 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。