网络
netstat
netstat -tunlp | grep 端口号
或
lsof -i:端口号
- -a 或 –all :显示所有连线中的Socket
- -n 或 –numeric :直接使用IP地址,而不通过域名服务器
- -l 或 –listening : 显示监控中的服务器的Socket
查看
tail
显示一个文件最后几行
tail -n 20 filename
cat
写一个 bash 脚本以统计一个文本文件
words.txt
中每个单词出现的频率
cat words.txt | xargs -n1 | sort | uniq -c | sort -rn | awk '{print $2,$1}'
- 相关语法
- xargs -n :后+数字,表示每行以指定个数输出
- uniq:用于取出连续的重复行 -c :统计重复行的次数
- sort:-r 以相反的顺序来排序;-n 依照数值的大小排序
- awk:顺序打印出第二个、第一个
权限
chmod
增加文件所有用户组可执行权限
chmod a+x log2012.log
- 相关语法
- chomd + 权限 + 文件
- 权限的两种表示方法
- a/u/g/o + r/w/x
- 文件所有者、同组用户、其他用户
- 读、写、执行
- 数字形式
- 124:分别对应读写执行
- 如 755
- a/u/g/o + r/w/x
去重
uniq
【行去重】
- 对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行
- 如果您想先对输入排序,使用 sort -u
- 对文本操作时,若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过
// 在每行前加上表示相应行目出现次数的前缀编号
$ uniq -c uniqtest
//先排序,再去重
$ sort uniqtest |uniq -c
sed awk
【列去重】
sort -t, -k1 CUST.TXT | awk -F, '
{
$1 == CUST_ID {
}
$1 != CUST_ID {
CUST_ID = $1;
print $0;
}' > Target.TXT
-
sort
-
-t, 指定文件记录域分隔符为","
-
-k1 是指根据第1列进行排序
-
-F, 指定域分隔符为","
-
$1 == CUST_ID 判断 第一列是否与变量 CUST_ID 相等 (不必要担心 CUST_ID变量的值 在初始化时 awk 为 CUST_ID 赋值 为"")
如果相等什么多不做
-
$1 != CUST_ID { CUST_ID = $1 ;print $0;} 如果 一列不等于 CUST_ID 变量的值 将 $1 赋值为 CUST_ID
然后打印 这行数据 ,然后进行下一行 比较 下一行数据与上一行数据的CUST_ID 是否相等 相等 什么都不敢 也就是说不打印着一行 如果不相等则打印着一行 从而起到去除重复数据的作用
-
进程
ps
-
假设有个进程名字叫abc,找出这个进程的id,终端只输出他的id
pidof "abc" pgrep + "root"| grep + "id"
快捷键
-
假设vi打开一个文件之后,跳到行首行尾的快捷键
0 → 到行头
^ → 到本行的第一个非blank字符
$ → 到行尾
g_ → 到本行最后一个不是blank字符的位置