linux

文本操作笔记

指令:VIm

        qq:跳转到文件首部

        shift + G:跳转到尾部

        yy:拷贝当前行

        dd:删除当前行

        /:开始从前往后查

        :?:从后往前查询指定关键字

指令 sort

        sort -u:去除重复行

        sort -r:结果降序排列(默认的排序方式是升序)

        sort -o:结果重新输入到原文件

sort file.txt -o file.txt

指令 sed

        行选择:sed -n

sed --n '2,4p' filename :选择文件的第2行到底4行

        正则表达式替换:sed -i

//新字符串替换原字符串,替换一次
sed -i 's/原字符串/新字符串/' /home/1.txt
// +/g 标识替换所有直到末尾
sed -i 's/原字符串/新字符串/g' /home/1.txt

其他应用方式:
//去掉行首带的“@”
sed -i 's/^@//' file

//特定字符串的行前插入新行
sed -i '/特定字符串/i 新行字符串' file
//特定字符串的行后插入新行
sed -i '/特定字符串/a 新行字符串' file

//特定字符串的删除
sed -i '/字符串/d' file

参见:https://www.cnblogs.com/ev-zhk/p/4277023.html

指令awk

        列选择:

  1. 打印文件的第一列(域)                 : awk '{print $1}' filename
  2. 打印文件的前两列(域)                 : awk '{print $1,$2}' filename
  3. 打印完第一列,然后打印第二列  : awk '{print $1 $2}' filename
  4. 打印文本文件的总行数                : awk 'END{print NR}' filename
  5. 打印文本第一行                          :awk 'NR==1{print}' filename
  6. 打印文本第二行第一列                :sed -n "2, 1p" filename | awk 'print $1'
  7. 自定义列分隔符                         :awk -F ':' '{print $1}' filename

指令cut:

        位数选择

        echo 12345678|cut -c 2-4 打印第2到4位的字符,结果为 234

其他指令:

curl

1.发送post请求,可以是json,html

curl -H 'content-type: application/json' -X POST -d '{"name":"shfbjsf"}'  http://www.jnshu.com/aaa

2.get 请求

curl   https://way.jd.com/he/freeweather?city=handan&appkey=8010132dcf54491a4eaa387f4db61774

指令组合

1.查找并删除某些进程:

ps -ef|grep rsync|grep -v grep|cut -c 9-15|xargs kill -9

#可以使用 awk '{print $2}' 替换cut
ps -ef|grep rsync|grep -v grep| awk '{print $2}'|xargs kill -9

管道符"|"用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的

命令说明:

"ps - ef"是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令"grep rsync"的输入。
"grep rsync"的输出结果是,所有含有关键字"rsync"的进程,这是rsync任务关键字。
"grep -v grep"是在列出的进程中去除含有关键字"grep"的进程。
"cut -c 9-15"是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
"xargs kill -9"中的xargs命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该令。

"kill -9"会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改"grep php"中的关键字部分就可以了。

命令行多指令执行技巧

要实现在一行执行多条Linux命令,分三种情况:

1、&&

举例:

lpr /tmp/t2 && rm /tmp/t2

第2条命令只有在第1条命令成功执行之后才执行。当&&前的命令“lpr /tmp/t2”成功执行后"rm /tmp/t2"才执行,根据命令产生的退出码判断是否执行成功(0成功,非0失败)。

2、||

举例:

cp /tmp/t2 /tmp/t2.bak || rm /tmp/t2

只有||前的命令“cp /tmp/t2 /tmp/t2.bak”执行不成功(产生了一个非0的退出码)时,才执行后面的命令。

3、;

举例:

cp /tmp/t2 /tmp/t2.bak; echo "hello world"

顺序执行多条命令,当;号前的命令执行完(不管是否执行成功),才执行;后的命令。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值