Fork me on GitHub

linux 命令

linux 自用命令记录

awk 常用命令

awk与if合用

1
awk -F '   ' {if($3="aa")print $)} inFile> outFile

获取文件列数

1
awk -F '    ' '{print $NF}'  filename //统计fileName列数

awk内置常用变量

变量名 说明
$0 正列
$1~$n 第几个字段
$NR 已经读到的行
$NF 列数
FINENAME 当前文件名

查看端口号占用的进程

1
lsof -i:port

压缩解压命令

tar解压tar.zx文件

1
2
1. 先用xz -d file.tar.zx
2. tar -xvf file.tar -z对应的gzip文件 -j对应的是bzip2

压缩成tar.zx文件

1
2
1.xz -z file
2.tar cvf file.zx

unzip命令

解压指定目录

1
unzip -d

zip压缩指定文件名

1
zip -j fileName file

rar 解压

1
2
3
unrar v file 查看文件
unrar x file.rar
unrar x file.rar -w path 解压到指定目录

rar 压缩

1
2
rar a file.rar path 将path目录压缩
rar a -df file.rar path 压缩并删除原始文件

sed常用命令

命令格式

sed [options] ‘command’ file(s)

选项

  1. -e或–expression:以选项中的指定的script来处理输入的文本文件;
  2. -f或–file:以选项中指定的script文件来处理输入的文本文件;
  3. -h或–help:显示帮助;
  4. -n或–quiet或——silent:仅显示script处理后的结果;
  5. -V或–version:显示版本信息。

命令

  1. a\ 在当前行下面插入文本。
  2. i\ 在当前行上面插入文本。
  3. c\ 把选定的行改为新的文本。
  4. d 删除,删除选择的行。
  5. D 删除模板块的第一行。
  6. s 替换指定字符
  7. h 拷贝模板块的内容到内存中的缓冲区。
  8. H 追加模板块的内容到内存中的缓冲区。
  9. g 获得内存缓冲区的内容,并替代当前模板块中的文本。
  10. G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
  11. l 列表不能打印字符的清单。
  12. n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
  13. N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
  14. p 打印模板块的行。
  15. P(大写) 打印模板块的第一行。
  16. q 退出Sed。
  17. b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
  18. r file 从file中读行。
  19. t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标>1. 号的命令处,或者到脚本的末尾。
  20. T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有>1. 标号的命令处,或者到脚本的末尾。
  21. w file 写并追加模板块到file末尾。
  22. W file 写并追加模板块的第一行到file末尾。
  23. ! 表示后面的命令对所有没有被选定的行发生作用。
  24. = 打印当前行号码。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
删除包含某个单词的行
sed 's/^*word*$/d'
在第二行后(即第三行)加上“drink tea?”
sed '2a drink tea'
整行取代,我想将2-5行的内容取代为“No 2-5 number”
仅列出第5-7行
sed -n '5,7p' fileName
删除注释
sed '/^#.*/d' fileName
删除空白行
sed '/'
在regular_express.txt文件末尾加入一行# hello world
sed '$a hello world' fileName
处理/etc/passwd 为一个新的文件,方式为:删除第四行,第六行则替换成“no six line”
sed '4d' |sed '6c noSix' passwd > fileName

sort命令

参数 描述
-t 指定分隔符
-n 按照数值排序
-r 倒序
-k 指定按照第几列
-u 去重
-f 忽略大小写

端口开放及关闭

查看开放端口

1
/etc/sysconfig/iptables

开放端口

  1. 命令开启端口

    1
    2
    3
    4
    iptables -I INPUT -p tcp --dport 80 -j accpet --写入要开放的端口
    /etc/init.d/iptables save --保存修改
    /etc/sysconfig/iptables restart -- 重启防火墙
    或者用命令:service iptables restart重启防火墙
  2. 修改iptables文件

    1
    2
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    service iptables restart 重启防火墙

关闭端口

  1. 命令行关闭

    1
    2
    3
    iptables -I INPUT -p tcp --dport 80 -j DROP--写入修改
    /etc/init.d/iptables save --保存修改
    service iptables restart --重启防火墙
  2. 修改iptables文件

    1
    2
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP
    service iptables restart 重启防火墙

vim 命令

###全局替换

1
2
3
1,20s/old/new/g  //1-20行替换
n,$s/old/new/g //n到文件结尾替换
%s/old/new/g //全局替换

灭霸脚本

无意间发现一有意思脚本,灭霸脚本随机删除一半文件,脚本如下

1
2
3
#!/bin/sh

let i=`find . -type f | wc -l`/2 ; find . -type f -print0 | shuf -z -n $i | xargs -0 -- rm -rf

shuf 命令 把输入行按随机顺序输出到标准输出。

xargs 其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,

显示 Gitment 评论