linux常用的命令和问题

linux shell 切换用户并执行命令

# su - 【用户名】 -c "要执行的命令" 
su - username -c "source ~/.bash_profile " ;
# 切换用户只执行一条命令的可以用:
su - oracle -c command
# 切换用户执行一个shell文件可以用
su - oracle -s /bin/bash shell.sh

参考1:Linux Shell脚本中实现切换用户并执行命令操作
参考2:linux shell 切换用户并执行命令
一键安装postgre的时候遇到的问题

linux统计字符串长度

方法一
len=${#character}

方法二

len=$character|wc -m #用这种方法长度会多一,多了最后的空格

方法三
len= ( e x p r l e n g t h " (expr length " (exprlength"character")

Linux截取字符串

# 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start :length} 
# 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: start}

获取字符串的一部分

具体使用的例子,获取mysql安装的密码,91:103字符

password=`grep "password" /var/log/mysqld.log | head -n 1`
install_passwd=${password:91:103}
echo "install_passwd:  ${NEW_PASSWORD}"

awk

指定分隔符,例如使用","分割

awk -F, '{print $1,$2}'   log.txt

使用; 分割
grep "password" /var/log/mysqld.log |head -n 1 | awk -F : '{cmd="echo "$4; system(cmd)}'在这里插入图片描述

sed

sed的替换


# -i参数表示修改文件内容
# 替换dks.txt文本中old为new
# sed -i 's#old#new#g'  ${filename}

sed -i 's/Search_String/Replacement_String/g' Input_File

在这里插入图片描述

sed同时替换多个变量

# -i参数表示修改文件内容
sed 's/!/\\!/g; s/</\\</g;; s/>/\\>/g; s/-/\\-/g' password.txt

sed查看文件内容

# 统计a.txt 行数
wc -l   ${filename}
# 查看文件a.txt的第190行到196行,
sed -n '190,196p'  ${filename}
# 如果查看某一行用
sed -n '190,1p'  ${filename}

sed 删除问题内容

# 删除文件的最后一行
sed -i '$d'  ${filename}
# 删除第 N 行的命令格式
sed 'Nd' ${filename}
# 删除连续的行,例如删除从 5 到 7 行 的内容
sed '5,7d' sed-demo.txt
# 例如删除第 1 、第 5 、第 9 和最后一行
sed '1d;5d;9d;$d' ${filename}

# 删除包含特定字符的行,要删除示例文件中的包含 System 这个单词的行内容
sed '/System/d' sed-demo.txt

sed命令删除文件的指定行

sed在匹配行后面添加一行

a 追加内容 sed ‘/匹配词/a\要加入的内容’ example.file(将内容追加到匹配的目标行的下一行位置)
i 插入内容 sed ‘/匹配词/i\要加入的内容’ example.file 将内容插入到匹配的行目标的上一行位置)

# 1、删除指定行的上一行
sed -i -e :a -e '$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta' -e 'P;D' $file
# 2、删除指定字符串之间的内容
sed -i '/ServerName abc.com/,/\/VirtualHost/d' $file

#添加到文件开头,i 指的是添加到对应行的前面
sed "1 i ADD A NEW LINE" a.txt 
# 添加到文件尾部,a 指的是添加到对应行的后面
sed "$ a ADD A NEW LINE" a.txt 

sed前后加入一行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值