shell命令总结

2016/7/3平时要用的一些命令记录在此,未完待续。。。。。

2016/7/4 更~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

查看ip地址:

Windows:ipconfig /all
Linux:ifconfig

ifdown禁用网卡;
ifup启用网卡;

netstat:查询网络状态;
-t列出TCP协议端口;
-u列出UDP协议端口;
-n不使用域名与服务名。而使用ip地址和端口号
-l仅列出在监听状态的网络服务
-a列出所有的网络连接

-tuln开了哪些端口,开了哪些服务
-an哪些连到我 all ,还可以查看相关的socket程序

netstat -an | grep ESTLABISH |wc -l

netstat -rn显示路由列表,可以看到网关
route -n 查看网关

临时设定网关
route add default gw 192.168.1.1
route del default gw
在一台服务器里,内网网卡不能设网关


nslookup翻译域名对应的ip
重启服务 service network restat

nslookup >server
查看dns

ping 发送icmp的数据包,
windows ping4次终止;
Linux一直ping.
有的网站禁止ping,防止暴露信息。

ping x.x.x.x -c 次数
telnet 远程管理与端口探测命令
ssh是加密的,更加安全
telnet不用来远程管理,可以端口探测
telnet x.x.x.x不加端口的话就是远程管理,要求远

程管理的机器开了Telnet服务。
加端口之后回车如果有信息提示的话表示对方计算机

要不没有开Telnet服务,要不是开了防火墙把端口屏蔽了,如果没有提示信息,表示可以连接。
退出Ctrl+]退出
在win和Linux一致。

traceroute路由追踪命令
-n使用ip不使用域名更快
 icmp协议,如果禁ping不能看到经过的节点。

下载命令wget 包
ftp协议和Telnet都是明文传递,文件传输协议,端口21,及其不安全。
tcpdump -i eth0 -nnX port 21
-i 指定的网卡接口;
-nn数据包中的域名与服务转为ip和端口
-X以十六进制和ascii码显示数据包的内容
port指定监听的端口
抓包命令

http协议也不加密,在Linux下是明文
https协议才是加密

ssh协议
Xshell工具(远程管理工具)
WinScp工具(文件传输工具)
对称加密算法(单密钥):加密解密一个秘密;
压缩工具压缩的同时可以加密

非对称加密算法
密码生成公钥和私钥。
想让谁看就让谁的公钥加密,使用自己的公钥和想让看的人的公钥一起加密,保护发送端的密码安全使用密码和私钥一起解密


ssh安全外壳协议
保证数据传输过程的安全,但是如果在传递之前就已经被窃取就没办法了


远程管理指定Linux服务器
ssh 用户名@ip
用户名不写是以当前登录的用户登录;
是否下载公钥yes
exit退回本地

ls -a
显示隐藏文件
.开头的是隐藏文件

下载文件
scp [-r] 用户名@ip:文件路径 本地路径
上传文件
scp [-r]  本地文件 用户名@ip:上传路径
上传文件不需要加-r,上传目录要加-r



SecureCRT(收费)
XShell远程管理Linux的工具
WinSCP是Windows向Linux计算机传递数据的工具;后台协议是ssh加密协议。
SFTP协议


应用运行状态监控脚本
利用客户端脚本
mysqp,ab,mongo,php,jstack
nginxstatus,nagio-libexec
服务端接口支持


shell编程之正则表达式

正则是匹配文件中符合条件的字符串;通配符用来匹配符合条件的文件名。

正则是包含匹配,输出包含相应字符的整行;通配符是完全匹配,输出相应字符。

搜索字符串的命令grep、awk、sed等命令支持正则表达式;搜索文件的命令ls、find、cp不支持正则表达式,支持通配符。

基础正则
*前面一个字符重复0次到多次,*前面加1个字符不起作用,必须在前面再加一个
e.g.
grep a* test.txt
匹配0个或者任意多个a的字符。
grep aa* test.txt
匹配至少一个a的字符

.匹配除了换行符以外的任意一个字符
s..d匹配在s和d之间一定有两个任意字符
.*匹配所有内容

^匹配行首,$匹配行尾
grep ^s test.txt
匹配以s作为行首的行
grep a$ test.txt
匹配以a作为行尾的行

^$匹配空白行

[]匹配中括号中指定的任意一个字符,只匹配一个字符
e.g.
s[ao]id
匹配s和i中,要不是a,要不是o的字符
[0-9]
匹配任意一个数字

^[]代表以中括号里面字符作为行首的行
中括号内的^代表取反
[^a-z]匹配不用小写字母开头的行
^[^a-zA-Z]
匹配不用字母开头的行
Linux中不能直接A-z,应该a-zA-Z

\转义符,让特殊的符号丧失作用
\.$匹配以.结尾的行
.$匹配所有行

\{n\}表示其前面的字符恰好出现n次
但是正则是包含匹配,所以实际的匹配是至少出现n次
e.g.
a\{3\}匹配a连续出现3次的字符串
[0-9]\{3\}
匹配包含连续的三个数字的字符串


\{n,\}表示其前面的字符出现不小于n次
e.g.
^[0-9]\{3,\}[a-z]
匹配最少用连续三个数字开头的行

需要加定界符来更加精确的匹配
e.g.
grep "xc\{3\}u" test.txt

多练多实践


\{n,m\}表示前面的字符至少出现n次,至多出现m次
e.g.
sa\{1,3\}i
匹配前一个字符a出现一次到3次,要加两侧的定界符才有效

vim清空,从光标所在行清空到行尾
d j

匹配ip地址
以下是从文档中匹配ip,不能写入正确的ip地址,因为ip是0-255
grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1-3\}\" test.txt

字符截取命令
cut [选项] 文件名
-f列号:提取第几列,
-d分隔符:按照指定分隔符分割列。默认的分割符是tab,当需要设定的时候加-d
cut -f 2,4 student.txt 提取2和4列
cut的局限
df -h | cut -f 1,3
df -h 的分隔符是空格,不是cut默认的tab。当找不到分隔符的时候,就认为分隔符是在最后。
截取比较规律的文件比较好,当采用不一致的数量的,空格作为分割符时,cut晕圈。
较为简单

printf '输出格式' 输出内容
''不能省略
格式化输出%ns输出字符串,n是数字代表输出几个字符; %ni输出整数,n是数字指代输出几个数字;
%m.nf输出浮点数,8.2f表示共输出8位数,其中2位是小数,6位是整数。
\a输出警告音
\b输出退格键,就是backspace键
\f清除屏幕
\n换行
\r回车,就是enter键
\t水平输出退格键,就是Tab键
\v垂直输出退格键,就是Tab键

只识别最原始的命令,需要把格式都写出来
不支持数据流,grep.


awk
在awk输出中支持print和printf命令。
print在每个输出之后自动加入一个换行符,Linux默认没有print命令。
printf是标准格式输出命令,并不会自动加入换行符,需要换行,手工加入换行符。不认识echo。
文件中获取需要的数据
awk '条件1{动作1}条件2{动作2}...' 文件名
没有条件代表无条件执行
关系表达式作为条件;动作一般是格式化输出和流程控制语句。
printf转义符必须用双引号括起来。
e.g.
awk  '{printf $2 "\t" $4 "\n"}'student.txt
awk  '{print $2 "\t" $4 }'student.txt
printf与print的区别,print会自动在行尾加换行符    

BEGIN END

FS=":"
内置变量,表示分隔符是谁
手工指定分割符时一定要加begin
awk 'BEGIN{FS=":"}{print $1 "\t"$3}' student.txt


sed
字符替换命令
格式
sed [选项]‘[动作]’文件名
选项
-n:一般sed命令会把数据都输出到屏幕,加-n只会把经过sed命令处理的行输出到屏幕
-e:允许对输入数据应用多条sed命令编辑,多个命令之间用;分割
-i:用sed的修改结果直接修改读取的文件,而不是由屏幕输出

动作
-a:追加,在当前行后添加一行或多行
-c:行替换,用c后面是字符串替换原数据行
-i:插入,在当前行前插入一行或多行。
-d:删除,删除指定的行
-p:打印,输出指定的行
-s:字符替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”和vim中的替换格式类似
/g表示指定范围内的多个都替换,不加只替换一个。
sed '2,4d' student.txt
表示删除2到4行


字符处理命令
sort排序命令
选项
-f:忽略大小写
-n:以数值型进行排序,默认使用字符串排序
-r:反向排序
-t:指定分割符,默认是制表符作为分隔符
-k n[,m]:指定字段范围排序,从第n字段开始,到m字段截止。

wc统计命令
wc[选项] 文件名
选项
-l:只统计行数
-w:只统计单词数
-m:只统计字符数



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值