awk命令

使用awk命令获取文本的某一行,某一列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
打印文件的第一列
awk '{print $1}' filename

打印文件的前两列
awk '{print $1,$2}' filename

打印完第一列,然后打印第二列
awk '{print $1 $2}' filename

打印文本文件的总行数
awk 'END{print NR}' filename

打印文本第一行
awk 'NR==1{print}' filename

打印文本第二行第一列
sed -n "2, 1p" filename | awk 'print $1'

awk分隔符

1
2
3
4
5
6
7
8
9
10
$ cat test
a#b#c#d

$ awk -F# '{print $1,$2}' test
a b

$ awk -v FS'#' '{print $1,$2}' test
a b
awk内置变量FS可以用于指定输入分隔符,但是在使用变量时,需要使用-v选项,用于指定对应的变量,比如 -v FS=’#

输出分隔符

awk输出每一列的时候,会使用空格隔开每一列,其实,这个空格,就是awk的默认的输出分隔符
可以使用awk的内置变量OFS来设定awk的输出分隔符,当然,使用变量的时候要配合使用-v选项

Read More

paste命令

paste:合并拼接文件
例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ cat p1.txt
1
2
3

$ cat p2.txt
a
b
c

$ paste p1.txt p2.txt
1 a
2 b
3 c

paste使用了制表符(Tab)作为间隔符
三个文件也可以拼接,paste 拼接和文件列表的顺序有关

paste默认的拼接符是tab,可以使用-d选项就可以设定间隔符

1
2
3
4
5
$ paste -d '*' p2.txt p1.txt
a*1
b*2
c*3

要注意一点,此处一定要把星号用引号括起来(单引号双引号均可),否则 Shell 会把星号扩展为当前目录下的文件列表,千万小心。

Read More

vim命令

删除每行后10个字符(替换+正则匹配到每行后10给字符)
:%s/.{10}$//
删除每行后10个字符
:%s/^.{10}//

\n匹配行尾(换行符),而\r匹配回车符。另一方面,在替换中\n插入空字符,而\r插入换行符(更准确地说,它被视为输入 )。这是一个小的非交互式示例,使用 Vim 命令行功能来说明这一点(换句话说,您可以将以下内容复制并粘贴到终端中以运行它)。 xxd显示结果文件的 hexdump。

1
2
3
4
5
echo bar > test
(echo 'Before:'; xxd test) > output.txt
vim test '+s/b/\n/' '+s/a/\r/' +wq
(echo 'After:'; xxd test) >> output.txt
more output.txt
1
2
3
4
Before:
0000000: 6261 720a bar.
After:
0000000: 000a 720a ..r.

Read More

ping 的使用方法

常见用法

1
2
3
4
5
6
7
ping -i 0.2 -c 30 -I 192.168.10.208 180.149.132.47 -q

-i 指定发送数据包时间间隔
-c 指定一共发送多少个数据包
-q指定直接显示程序的启动和最后结果
-I 网络界面:使用指定的网络界面送出数据包,即192.168.10.208是发出ping命令的主机IP地址,180.149.132.47是被ping的主机的IP地址
-w 等待指定时间后停止ping程序的执行。当试图测试不可达主机时此选项很有用,时间单位是秒。

linux禁止Ping与开启Ping的方法

Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:A、内核参数,B、防火墙,需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。

当linux禁止Ping后,可通过tcping.exe指定端口ping通该机器

内核参数设置

Read More

路由规则ip rule

ip rule列出路由规则

1
2
3
4
5
6
0:	from all lookup local 
200: from 58.23.181.229 lookup ppp2
320: from 193.233.7.83 lookup inr.ruhep map-to 192.203.80.144
32765: from 192.168.1.38 lookup mgt
32766: from all lookup main
32767: from all lookup default

每行第一部分的数字是规则的优先级,接着是选择符。lookup后面接着路由表识别符。
如果规则要进行网络地址转换,还需要一个关键词map-to设置转换以后的地址。

关于 /etc/crontab 及 /var/spool/cron/$USER 中定义定时任务

简介

定时任务在linux上主要体现在两个地方,一个是/etc/crontab ,另一个就是定义了任务计划的用户
/var/spool/cron/$USER

  1. /etc/crontab只有root用户可以使用,使用时需root权限,而且必须指定运行用户,才会执行
    */1 * * * * * root /usr/sbin/ntpdate s1a.time.edu.cn &> /dev/null

  2. /var/spool/cron/$USER所有用户都可以使用,可以使用crontab -u username -e命令来直接编辑这个文件。(相当于直接vi 这个文件)
    */1 * * * * * /usr/sbin/ntpdate s1a.time.edu.cn &> /dev/null

Read More