网站首页 文章专栏 Linux脚本技巧
Linux脚本技巧
创建于:2019-09-01 00:00:00 更新于:2024-12-22 01:00:18 羽瀚尘 1008
linux设备 Linux 设备,shell,命令行

cat生成文件

cat >default-deny.yml<<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
  - Ingress
EOF

NOTE: 实测用sudo权限无法写入系统文件,sudo su之后可以。

tee生成文件

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

语法

tee [-ai][--help][--version][文件...]

参数: - -a或--append  附加到既有文件的后面,而非覆盖它. - -i或--ignore-interrupts  忽略中断信号。 - --help  在线帮助。 - --version  显示版本信息。

搜索并修改

wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/generic-kuberouter-all-features.yaml
CLUSTERCIDR='10.233.0.0/16'
APISERVER='https://192.168.25.180:6443'

sed -i "s;%APISERVER%;$APISERVER;g" generic-kuberouter-all-features.yaml
sed -i "s;%CLUSTERCIDR%;$CLUSTERCIDR;g" generic-kuberouter-all-features.yaml

参考:Linux sed 命令

增加行

首行加一行

sed -i '1 i\"hello"' b.csv

末尾加一行

sed -i '$a\要插入的文字'  file.name

NOTE: sudo或者sudo su都无法写入系统文件,待查。

参考:sed 首行加一行,末尾加一行

过滤信息

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

  • 获取k8s中的pod的ip
PRODUCTION_GO_IP=$(kubectl get pods -n production -o wide | grep Running | grep service-go | awk '{print $6}')

获取脚本的绝对路径

DIR1="`dirname $BASH_SOURCE`"
MYDIR=`readlink -f "$DIR1"`

这样,无论在哪里执行该脚本,都可以获得该脚本的绝对路径

参考:linux awk命令详解