几个关于文本处理的shell命令

1. 关于远程

  • ssh远程登陆时可以直接写出来的。
ssh userName@ip  

如果之前配置过秘钥登陆,可以直接进远程主机。如果没有,会有提示,要求输入密码

写一个脚本,比如aliyun,可以录入信息,每次登陆,直接敲入aliyun就可以了。

  • 可以写在ssh配置里面 根目录下面,.ssh文件夹里,可以加入一个config文件,ssh会自动读取
drwx------   9 liushuqing  staff   306B  8  4 10:13 .  
drwxr-xr-x+ 88 liushuqing  staff   2.9K  8  4 11:41 ..  
-rw-r--r--@  1 liushuqing  staff   6.0K 12  7  2015 .DS_Store
-rw-r--r--   1 liushuqing  staff   335B  7  4 15:00 config
-rw-------   1 liushuqing  staff   1.6K 12  8  2015 id_rsa
-rw-r--r--@  1 liushuqing  staff   404B 12  8  2015 id_rsa.pub
-rw-r--r--   1 liushuqing  staff    16K  7 13 23:37 known_hosts

config里面写点东西

Host aliyun  
     HostName 1.34.535.6(ip地址)
     Port 22
     User  root
     IdentityFile  ~/.ssh/id_rsa
     ControlMaster auto
     ControlPath ~/.ssh/ssh-%r@%h

这样,可以在用ssh aliyun,来登陆aliyun主机。这种还有一个好处。如果是在公司里面,进入堡垒机,需要两步验证。为了避免每次打开新机器,就要输入一次动态密码,可以用这种方法,来保存堡垒机session 。

2. 关于文本流

  • 统计一个文本文件的行数有很多方式
#wc 是专门用了统计文件字节数,单词书,个数,巴拉巴拉的,简单实用
wc -l 文件名  
#这个其实就是统计换行符的个数
 grep -c \n
#awk是一个很强大的文本处理工具,这儿是大财小用了
awk 'BEGIN{count=1} {count=count+1} END{print "number is 这么多",count}' spider.log  
  • awk的处理方式
awk -F ',' 'BEGIN{count=1} {count=count+1;print $1} END{print "number is 这么多",count}' spider.log  

解释一下上面这句话,可以类推~ awf处理文本流,是一行一行处理的,它会自己读取换行符,-F是指定一个对每行文本的分隔符。再后面跟的

'BEGIN{count=0} {count=count+1;print $1} END{print "number is 这么多",count}'  

是awk执行的命令,文件读取前,执行BEGIN后面的语句块,我这儿就是初始化了一个变量;后面是对于每行处理的语句块,前面对每一行用','分割了一下,$0代表整行,$1代表分割的第一部分,$2代表第二部分,诸如此类;最后的END语句块,是执行完毕之后的命令,在这儿打印出读取了多少行~

3.查看文件夹大小

du -h  

4.开启forever进程

NODE_ENV=production forever start index.js  

刘摸鱼

退堂鼓表演艺术家

杭州