shell命令详解
2016-03-24 16:43
417 查看
sed命令
将文本input.txt中含有”姓名”字符串的行中的谢朝辉替换成扎巴依
sed -e '/姓名/s/谢朝辉/扎巴依/g' input.txt
将input.txt中第n(5)行替换成”jiangdiwuhangtihuan”.
sed -e '5c jiangdiwuhangtihuan' input.txt
将input.txt中的4至6行的资料区替换为:”tihuan4zhi6hang tihuanchenggong”
sed -e'4,6c tihuan4zhi6hang tihuanchenggong' input.txt
删除input.txt中含有两个ff字母的行
sed -e '/f.*f/d' input.txt
表示删除所有含两"f"字母的资料行。其中 "." 表示任意字元; "*" 表示其前字元可重任意次,它们结合".*" 表示两"f" 字母间的任意字串
将input.txt中含有2b至含有4d的区域删除(首个2b至找到第一个4d的区域)
sed -e '/2b/,/4d/d' input.txt
查询文件中匹配行:查询文件中含有6f的文件。
grep 6f * 等价 ls * | nl * |sed -n '/6f/p' 、ls |xargs grep 6f
在input.txt文件的第二行添加1aa和2bb
awk命令
awk去空行:等值为cat input.txt |grep -v "^$",grep -v "^$" input.txt,cat input.txt | tr -s '\n'
tr命令(格式tr [OPTION]... SET1 [SET2]凡是标准输出存在sel1的字符都会被替换成sel2字符)-s
将input.txt文件中的7替换成8:tr 7 8 <input.txt,将大小字母替换成小写字母: tr 'a-z' 'A-Z'<input1.txt
-s(是将如果发现有连续的SET1里的字符,就把它们缩减为1个)tr -s ' ' <input.txt
date命名
将日期转成时间戳:date -d now +%s
将时间戳转换为日期:date -d '1970-01-01 1447209286 sec utc' +%Y:%m:%d:\%T或者
date +%Y:%m:%d:%H:%M:%S -d "1970-01-01 UTC 1447209286 seconds"或者date -d "1970-01-01 UTC 1447209286 seconds" +%Y-%m-%d:%H:%M:%S
read命令-p,-a
–p是提示语句,指定提示语句read –p “提示语句:” value
-a按分隔符(空格符分隔,连续的分隔符算一个分隔)将串分配给数组,read –a value aa bb ${value[0] = aa},${value[0]} = aa},${value[0]} =bb},小标以0开始。
向单个变量中输入值(向变量id和passwd中读入数据):read id passwd (按空格及顺序存放)
符号的用法@、$、=、>、>>、#
@号的用法
$号的用法:截取取字符串变量,从下标为0开始(第一位开始)取4为长度${value:0:4}
=号的用法:1.给变量赋值时等号之间不要空格
>表示重定向,>>表示重定向追加
#可以取变量长度,例如:value=”123456”,${#value}的长度是6
进程查看相关命令ps、top
ps –ef | grep gddw
echo命令参数-n、
应为echo默认是换行,加–n表示不换行。
head与tail命令参数-n、
1. 显示文件开头的n行:head –n input.txt
find命令
1. find递归查询:find . -name 'APF44_ZSWMPay*'|xargs grep AppLog|awk -F":" '{print $1}'|sort |uniq -c
顺坏语句for、while、until
for循环:循环指定路径下的文件
for var in /app/int44/tmp/xzh/* do echo "$var" done
网络相关命令:netstat、ssh 、sftp
netstat –anp|grep –E “7511|7512|7501”
ssh -NfgL 5577:146.0.245.197:9080 monitor@127.0.0.1,说明:参数:NfgL 对方ip:146.0.245.197 对方端口:9080 映射对口:5577 本地用户名和本地ip:monitor@127.0.0.1
sftp命令:lftp -u {user},{password} -p{port} sftp://ip <<EOF(脚本)
未指定端口:sftp user@ip,指定端口:sftp –o port=8011 user@ip
ftp到远程服务器和本地服务器相互转换命令:!ls,!pwd,lcd等(!表示切换到本地服务下的命令)
将远程服务器上的相关信息重定向到本地服务器:ls JCSJ* /home/monitor/tmp/output.txt
检查网络是否通:ping ip;telnet ip port;traceroute ip
计算和统计命令:wc
wc计算文件有多少行:wc –l input.txt | awk ‘ {print $1 } ’
shell脚本格式输出:%s
实例:printf "%11s:%-15s\n" "归属1" "是否已激活",结果: 归属1:是否已激活
%11s 表示占位11个字符,向右看齐, %-10s 表示第二列占位12个字符,向左看齐。
筛选和排序:sort
sort:将文件中的内容排序,例如将文件中的内容按照文件的第5列排序:sort –k5 –n input.txt (参数-n表示将字符串转换为数字)
环境变量设置:env:查看系统环境变量,export:设置环境变量:export LANG=zh_cn.GBK(指定运行环境字符集,但是不建议修改系统指定字符集,可在脚本中修改,脚本指定只在运行脚本有效)
查看使用空间:df –hl、du -sm * | sort -n //统计当前目录大小 并安大小 排序
将文本input.txt中含有”姓名”字符串的行中的谢朝辉替换成扎巴依
sed -e '/姓名/s/谢朝辉/扎巴依/g' input.txt
将input.txt中第n(5)行替换成”jiangdiwuhangtihuan”.
sed -e '5c jiangdiwuhangtihuan' input.txt
将input.txt中的4至6行的资料区替换为:”tihuan4zhi6hang tihuanchenggong”
sed -e'4,6c tihuan4zhi6hang tihuanchenggong' input.txt
删除input.txt中含有两个ff字母的行
sed -e '/f.*f/d' input.txt
表示删除所有含两"f"字母的资料行。其中 "." 表示任意字元; "*" 表示其前字元可重任意次,它们结合".*" 表示两"f" 字母间的任意字串
将input.txt中含有2b至含有4d的区域删除(首个2b至找到第一个4d的区域)
sed -e '/2b/,/4d/d' input.txt
查询文件中匹配行:查询文件中含有6f的文件。
grep 6f * 等价 ls * | nl * |sed -n '/6f/p' 、ls |xargs grep 6f
在input.txt文件的第二行添加1aa和2bb
awk命令
awk去空行:等值为cat input.txt |grep -v "^$",grep -v "^$" input.txt,cat input.txt | tr -s '\n'
tr命令(格式tr [OPTION]... SET1 [SET2]凡是标准输出存在sel1的字符都会被替换成sel2字符)-s
将input.txt文件中的7替换成8:tr 7 8 <input.txt,将大小字母替换成小写字母: tr 'a-z' 'A-Z'<input1.txt
-s(是将如果发现有连续的SET1里的字符,就把它们缩减为1个)tr -s ' ' <input.txt
date命名
将日期转成时间戳:date -d now +%s
将时间戳转换为日期:date -d '1970-01-01 1447209286 sec utc' +%Y:%m:%d:\%T或者
date +%Y:%m:%d:%H:%M:%S -d "1970-01-01 UTC 1447209286 seconds"或者date -d "1970-01-01 UTC 1447209286 seconds" +%Y-%m-%d:%H:%M:%S
read命令-p,-a
–p是提示语句,指定提示语句read –p “提示语句:” value
-a按分隔符(空格符分隔,连续的分隔符算一个分隔)将串分配给数组,read –a value aa bb ${value[0] = aa},${value[0]} = aa},${value[0]} =bb},小标以0开始。
向单个变量中输入值(向变量id和passwd中读入数据):read id passwd (按空格及顺序存放)
符号的用法@、$、=、>、>>、#
@号的用法
$号的用法:截取取字符串变量,从下标为0开始(第一位开始)取4为长度${value:0:4}
=号的用法:1.给变量赋值时等号之间不要空格
>表示重定向,>>表示重定向追加
#可以取变量长度,例如:value=”123456”,${#value}的长度是6
进程查看相关命令ps、top
ps –ef | grep gddw
echo命令参数-n、
应为echo默认是换行,加–n表示不换行。
head与tail命令参数-n、
1. 显示文件开头的n行:head –n input.txt
find命令
1. find递归查询:find . -name 'APF44_ZSWMPay*'|xargs grep AppLog|awk -F":" '{print $1}'|sort |uniq -c
顺坏语句for、while、until
for循环:循环指定路径下的文件
for var in /app/int44/tmp/xzh/* do echo "$var" done
网络相关命令:netstat、ssh 、sftp
netstat –anp|grep –E “7511|7512|7501”
ssh -NfgL 5577:146.0.245.197:9080 monitor@127.0.0.1,说明:参数:NfgL 对方ip:146.0.245.197 对方端口:9080 映射对口:5577 本地用户名和本地ip:monitor@127.0.0.1
sftp命令:lftp -u {user},{password} -p{port} sftp://ip <<EOF(脚本)
未指定端口:sftp user@ip,指定端口:sftp –o port=8011 user@ip
ftp到远程服务器和本地服务器相互转换命令:!ls,!pwd,lcd等(!表示切换到本地服务下的命令)
将远程服务器上的相关信息重定向到本地服务器:ls JCSJ* /home/monitor/tmp/output.txt
检查网络是否通:ping ip;telnet ip port;traceroute ip
计算和统计命令:wc
wc计算文件有多少行:wc –l input.txt | awk ‘ {print $1 } ’
shell脚本格式输出:%s
实例:printf "%11s:%-15s\n" "归属1" "是否已激活",结果: 归属1:是否已激活
%11s 表示占位11个字符,向右看齐, %-10s 表示第二列占位12个字符,向左看齐。
筛选和排序:sort
sort:将文件中的内容排序,例如将文件中的内容按照文件的第5列排序:sort –k5 –n input.txt (参数-n表示将字符串转换为数字)
环境变量设置:env:查看系统环境变量,export:设置环境变量:export LANG=zh_cn.GBK(指定运行环境字符集,但是不建议修改系统指定字符集,可在脚本中修改,脚本指定只在运行脚本有效)
查看使用空间:df –hl、du -sm * | sort -n //统计当前目录大小 并安大小 排序
相关文章推荐
- 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
- 常用shell实例
- jenkins执行shell脚本
- PowerShell 列举磁盘文件
- IT_linux_shell_awk_001--awk开始
- linux shell 统计不同文件扩展名的个数
- struts修复GetShell漏洞,将2.1.8.1升级至2.3.28
- shell中的sort命令
- shell if else 用法 syntax error near unexpected token `then'
- shell输入输出重定向
- bash常用快捷键
- 【shell编程基础0】bash shell编程的基本配置
- Bash的基本功能
- (转)73条日常Linux shell命令
- Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署
- linux下监视进程 崩溃挂掉后自动重启的shell脚本
- shell 脚本 修改系统时间
- centos 防火墙 iptables 用shell代码来添加
- shell--内建命令--exec
- Linux shell 变量 数学 运算