shell 常用命令备忘

2021-03-10  本文已影响0人  后知不觉1

文本处理

#两行合成一行
 cat  Downloads/asd.txt | sed 'N;s/\n/ /'
#三行合并一行
cat asd.txt | sed 'N;N;s/\n/ /g'
#四行合并一行
cat asd.txt | sed 'N;N;N;s/\n/ /g'
#添加字符串行
cat asd.txt | sed  '1i[sf-cluster]' 

sed '/asd/casd/'  asd.txt  #将asd.txt文件中包含asd的行替换为asd
sed '/asd/sasd/'  asd.txt  #将asd.txt文件中asd字符替换为asd

linux 自动补全

    #安装自动补全组件
     yum install -y bash-completion
  
    #配置补全命令,这个在ssh 时将hosts 、history 中主机补全
    complete -W "$(echo $(cat /etc/hosts | awk '{print $2}'| sed 's/^ssh //')) $(history | sed 's/^[ ]*[0-9]\+[ ]*//' | grep ^ssh | awk '{print $2}')" ssh

linux 管道符中的占位符传递

  xargs -i{}   bash -c "ps -ef | grep {}"

ansible

# 建立定时任务  每小时重置一下免密
ansible asd-m cron -a "name=\"reset sshd\" job=\"sed -i '/PermitRootLogin/cPermitRootLogin yes' /etc/ssh/sshd_config && systemctl restart sshd\" hour=*/1"
# 删除定时任务
ansible asd-m cron -a  'name="reset sshd" state=absent'

# 修改hostname
ansible $temp_group -m shell -a "cp /etc/hostname /etc/hostnamebak" 
ansible $temp_group -m shell -a "echo {{ inventory_hostname }}> /etc/hostname" 
ansible $temp_group -m shell -a "hostnamectl set-hostname {{ inventory_hostname }}" 

# 通过密码打通免密
ansible $temp_group -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub')}}' path='/root/.ssh/authorized_keys'" 

dgraph图库安装

nohup /app/dgraph/dgraph-ratel -port 8050 > ratel.log 2>&1 &
nohup /app/dgraph/dgraph zero --port_offset 100 --my sfmap-vl23325:5180 --replicas 3  > zero.log  2>&1 &
nohup /app/dgraph/dgraph alpha --lru_mb 2048 --port_offset 100 --my sfmap-vl23325:7180 --zero sfmap-vl23325:5180 --whitelist 0.0.0.0/0 > alpha.log  2>&1 &
nohup /app/dgraph/dgraph alpha --lru_mb 2048 --port_offset 100 --my sfmap-vl23326:7180 --zero sfmap-vl23325:5180 --whitelist 0.0.0.0/0 > alpha.log  2>&1 &
nohup /app/dgraph/dgraph alpha --lru_mb 2048 --port_offset 100 --my sfmap-vl23327:7180 --zero sfmap-vl23325:5180 --whitelist 0.0.0.0/0 > alpha.log  2>&1 &

解析配置文件

循环读取文件内容

while read line
do
   echo $line
done < mysql.conf

字符串拼接

  1. 由单引号' '包围的字符串:
    任何字符都会原样输出,在其中使用变量是无效的。
    字符串中不能出现单引号,即使对单引号进行转义也不行。

  2. 由双引号" "包围的字符串:
    如果其中包含了某个变量,那么该变量会被解析(得到该变量的值),而不是原样输出。
    字符串中可以出现双引号,只要它被转义了就行。

上一篇下一篇

猜你喜欢

热点阅读