Linux basic command memo

Linux Fundamentals Memo

basis
Common statistical analysis tools
  • sort
# 使用sort按多个列值排列,同时使用tab作为分隔符,而且对于某些列需要进行逆序排列(列4在列3之前进行排序,而且列4是逆序排列)
sort -t $'\t' -k 1n,1 -k 2n,2 -k4rn,4 -k3,3 <my-file>
# -t $'\t':指定TAB为分隔符
# -k 1, 1: 按照第一列的值进行排序,如果只有一个1的话,相当于告诉sort从第一列开始直接到行尾排列
        n: 代表是数字顺序,默认情况下是字典顺序,如10<2
        r: reverse 逆序排列,默认情况下市正序排列
  • grep
# 查找不以 leo 开头的行,忽略大小写
grep -i -v ^leo logs.log
# 递归遍历当前路径,找到包含 leo 的文件
grep leo -rl ./
# -i 忽略大小写
# -v 不包含
# ^ 开头标志
# -r 递归查找
# -l 只返回查找到的文件名
  • tail
# 逆序显示filename最后10行
tail -r -n 10 filename
  • uniq
# 统计出现频次
cat filename | uniq -c | sort
  • and
# 替换所有文件中的内容
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
# 扣出匹配到的字符串
echo $MYSQLD | sed 's/^.*--port=\([^ ]*\).*$/\1/'
# 批量在行尾追加新行
sudo sed -i '$a rpl_semi_sync_slave_enabled=on\nmaximum_protection=on' /u01/my33*/my.cnf
# 替换换行为空格
sed -e ":a;N;$ s/\n/ /g;ba"
# 在每行的头添加字符,比如"HEAD",命令如下:
sed 's/^/HEAD&/g' test.file
# 在每行的行尾添加字符,比如“TAIL”,命令如下:
sed 's/$/&TAIL/g' test.file

# -i 编辑文件
# -e 运行脚本
  • awk
# 求和
cat /tmp/1.log |awk '{sum+=$1} END {print sum}'
# 批量 kill 所有 mysql 进程
ps aux | grep mysql | awk '{print "sudo kill -9 " $2}'

Guess you like

Origin blog.csdn.net/ManWZD/article/details/104105158