ssh具有客户端和服务端两部分。服务端是提供一个守护进程sshd来响应客户端的请求。
这里介绍一个常用的在两台远程机器上进行文件传输命令SCP(Secure Copy)。
常用语法:
scp -r [[user@]host1:]file1 […] [[user@]host2:]file2
从将host1上的文件file1拷贝到host2上file2下
-r表示递归复制整个目录
例子:
1. 将本地文件test.conf copy到另一台主机/etc下
scp /etc/test.conf admin@www.linuxidc.com:/etc/
2. 将远程的test.conf下载到本机
scp admin@www.linuxidc.com:/etc/test.conf /etc
sftp 用于在两台计算机之间传输文件,类似于ftp,但是相对于ftp安全得多,sftp默认采用加密方式来传输数据,sftp不是单一命令,而是一系列相关的操作命令。
sftp username@remotehost
登陆远程主机,可能要求输入登录密码
cd remotedir
远程切换目录
mkdir dir
远程创建目录
ls
显示远程目录中的文件或者目录,可以配合一系列选项使用
get remotefile localdir
将远程文件拷贝到本地制定目录下,如果省略localdir,则直接拷贝到本地目录下
put localfile remotedir
将本地文件上传到远程服务器上,同样remotedir可以省略,则默认到远程所在目录下
rm remotefile
可以删除远程文件
pwd
显示远程主机上的当前路径
exit
quit
以上两个命令都可以退出sftp
如果想在sftp操作过程中操作本地目录等,可以在相关命令上加上l,表示操作本地目录,例如:lcd 表示切换本地目录
lpwd 显示本地路径 lrm 删除本地文件 lls 显示本地目录中的文件。
sftp操作本身都比较简单,比较好学习。
grep是一个文本搜索工具,能够使用正则表达式搜索文本,并根据要求输出匹配的行数或者输出匹配的行,该命令的一般格式如下:grep [选项] pattern files
- 常用【选项】有:
-? ?表示一个数字,意思是输出匹配行前后?行,-3表示输出前后3行
-c 只输出匹配的行数
-i 忽略大小写进行匹配
-n 打印匹配行的行号
- pattern 是要匹配文本的正则表达式,具体正则语法可以参考其他相关资料,这里只列举几个。
^ 行的开始 如:’^grep’匹配所有以grep开头的行。
$ 行的结束 如:’grep$’匹配所有以grep结尾的行。
. 匹配非换行符的任意一个字符 如:’ab.z’ 匹配abcz,也匹配abzz
* 匹配零个或多个前导字符 如:’ab.*z’ 匹配abz,也匹配abcccccczz
[] 匹配一个指定范围内的字符,如'[Gg]rep’匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
………
- files 要搜索的文件列表,文件可以有一个或者多个,当然要搜索的目标也可以是其他命令的输出,可以使用管道进行连接
grep -c ‘abc’ a.log b.log
【实例】
grep用得比较多是用来进行统计,并与管道进行联合使用。
- 查找包含abc 的行 ,并打印行号
grep -n ‘abc’ a.log
利用管道方式完成同样的工作
cat a.log | grep -n ‘abc’
意思是将cat看到的内容输出作为grep命令的输入,并在这个输入中搜索abc字符串
- 在所有log文件中搜索包含abc字符串的行
grep -n ‘abc’ *.log