1.杀掉MYSQL SHELL
ps aux|grep mysql|grep -v grep|awk '{print $2}'|xargs kill -9

2.删除当前目录下0字节的文件
find -type f -size 0 -exec rm -rf {} \;

3.匹配当data里包含"donald",输出第4列
awk '/donald/ {print $4}' data
扩展1:
awk '/donald|chin/ {print $1, $2}' data
扩展2:
awk '/a[rl]/ {print $1, $2}' data

使用"n"而不是空格做为分隔符
awk 'FS="n" {print $1}' data

4.截取对应的列数
awk -F":" '{ print $1 $7 }' /etc/passwd

5.对域名进行添加www.的shell
awk '{print"www."$1}' yuming.txt >yuming2.txt

6.清理maillog日志
find . -name maillog | xargs echo " " >maillog

7.1.txt文件前面添加序号
awk '{print NR,$0}' 1.txt

8.1.txt匹配test开头的行后,将字段2和字段3相加后输出结果
awk '$1 ~/test/{count = $2 + $3;print count}' 1.txt

9.用grep命令在当前目录下的所有普通文件中搜索hostnames这个词
find . -name \* -type f -print |xargs grep "hostname"
注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义

10.文件删除清理
find . -name "*.conf"  -mtime +5 -ok rm {  } \;
< rm ... ./conf/httpd.conf > ? n
按y键删除文件,按n键不删除

11.在/var/log下拷贝小于100K的文件到/tmp下,如果有失败的发送邮件到635273926@qq.com,用shell/perl/python来实现。
#!/bin/bash
SDIR=/var/log/
DDIR=/tmp/
TMPFILE=/tmp/test.txt
find $SDIR -size -100k -type f > $TMPFILE
while read F_NAME
do
   cp -r $F_NAME  $DDIR
   if [ $? -eq 0 ]
   then
      echo "ok"  > /dev/null   2>&1
   else
      echo "cp is failed " | mail -s "Note:cp is failed ! " 635273926@qq.com
   fi
done < $TMPFILE

12. 根据下面的信息提取每个人的总分 输出到/home/total.txt
oldboy  15   98
kqzj    23   87
wodi    16   89

awk '{print $1,$2+$3}' infor >/home/tital.txt

13.在不影响MYSQL正常服务的情况下,如何导出MYSQL数据
mysqldump -all-databases >allbackupfile.sql 备份数据库
mysql -hhostname -uusername -ppassword databasename < backupfile.sql 还原数据库

mysqldump -hhostname -uusername -ppassword databasename |gzip > backupfile.sql.gz 压缩备份数据库

gunzip < bckupfile.sql.gz |mysql -uusername -ppassword  databasename 还原压缩的文件包

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 >backupfile.sql  备份单个数据库表

mysqldump -hhostname -uusername -ppassword -databases databasename1 atabasename2 databasename3 >multibackupfile.sql  备份多个数据库

mysqldump -no-data -databases databasename1 databasename2 databasename3>structurbackupfile.sql   备份数据库结构

14.在一个文件夹下建立类似如下规律性的文件夹:
11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45 51 52 53 54 55

#!/bin/sh

for i in `echo {1..5}{1..5}`;do
mkdir -p ./$i
done


#!/bin/bash
#for i in `seq 11 55`;
for i in $(seq 11 55)
do
    echo $i;
    mkdir -p ./$i;
done

15.统计末年某月的天数
cal 09 2008 | xargs | awk '{print $NF}'
cal 09 2008 |sed -n '3,$p' |awk 'BEGIN{sum=0}{sum+=NF}END{print sum}'

16.统计文件大小的shell
ls -l $* | awk '
BEGIN { print "BYTES", "\t", "FILE" }
{ sum += $5
  ++filenum
  print $5, "\t", $9
}
END { print "Total: ", sum, "bytes (" filenum " files)" }'

17.awk(基础)
====================================================
1.抽取域
awk -F: '{print $1}' /etc/passwd

2.保存输出
awk -F: '{print $1}' /etc/passwd | tee user 使用tee命令,在输出文件的同时,输出到屏幕

使用标准输出
awk -F: '{print $1}' /etc/passwd >user3

4.打印所有记录
awk -F: '{print $0}' /etc/passwd

5.打印单独记录
awk -F: '{print $1,$4}' /etc/passwd

6.打印报告头
awk -F: 'BEGIN {print "NAME\n"} {print $1}' /etc/passwd

7.打印结尾
awk -F: '{print $1} END {print "this is all users"}' /etc/passwd

条件操作符
1.匹配
awk -F: '{if($1~/root/) print }' /etc/passwd      //{if($1~/root/) print}表示如果field1包含root,打印它

2.精确匹配
使用等号 ==
awk -F: '{if($3=="0") print }' /etc/passwd

3.不匹配
!~
awk -F: '{if($1!~/linuxtone/) print }' /etc/passwd

!=
精确不匹配
awk -F: '{if($1!="linuxtone") print }' /etc/passwd

4.小于
<
5.小于等于
<=
6.大于
>
.........
7.设置大小写
awk '/[Rr]oot/' /etc/passwd

8.任意字符
awk -F: '{if($1~/^...t/) print}' /etc/passwd      //^...t表示第四个字幕是t

9.或关系匹配
awk -F: '{if ($1~/(squid|nagios)/) print}' /etc/passwd

10.行首
awk '/^root/' /etc/passwd       // ^root(行首包含root)

11.AND &&
awk -F: '{if($1=="root" && $3=="0") print}' /etc/passwd

12.OR ||

内置变量:
ARCC                                      命令行参数个数
ARGV                                      命令行参数排列
ENVIRON                                   支持队列中系统环境变量的使用
FNR                                       浏览文件的记录数
FS                                        置顶分隔符,等价于-F
NF                                        浏览记录的域的个数
NR                                        已读的记录数
OFS                                       输出域分隔符
ORS                                       输出记录分隔符
RS                                        控制记录分隔符

打印有多少行记录
awk 'END {print NR}' /etc/passwd

设置输入域到变量名
awk -F: '{name=$1; path=$7; if(name~/root/) print name  "\tpath is:" path}' /etc/passwd

域值比较操作
awk '{if($6<$7) print $0}' input-file

修改文本域只显示修改改记录
awk -F: '{if($1=="nagios") {$1="nagios server" ; print }}' /etc/passwd

文件长度相加
ls -l|awk '/^[^d]/ {print $9"\t" $5} {tot+=$5} END {print "total kb:"tot}'

内置的字符窜函数
gsub(r,s)                                                      在整个$0中用s替代r
gsub(r,s,t)                                                    在整个t中用s替代r
index(s,t)                                                     返回s中字符串t的第一位置
length(s)                                                      返回s长度
match(s,r)                                                     测试s中是否包含匹配r的字符串
split(s,a,fs)                                                  在fs上将s分成序列a
sub(s, )                                                       用$0中最左边也是最长的字符串替代
subtr(s,p)                                                     返回字符串s中从p开始的后缀部分
substr(s,p,n)                                                  返回字符串s中从p开始长度为n的后缀部分

1.gsub
awk 'gsub(/^root/,"netseek") {print}' /etc/passwd             将与root开头的root替换为netseek

awk 'gsub(/0/,2) {print}' /etc/fstab

awk '{print gsub(/0/,2) $0}' /etc/fstab

2.index
awk 'BEGIN {print index("root","o")}'  查询字符串root中o出现的第一位置

awk -F: '$1=="root" {print index($1,"o")" "$1}' /etc/passwd

awk -F: '{print index($1,"o") $1}' /etc/passwd

3.length
awk -F: '{print length($1)'} /etc/passwd

awk -F: '$1=="root" {print length($1)}' /etc/passwd

4.match (在ANCD中查找C的位置)
awk 'BEGIN {print match("ANCD",/C/)}'

5.split
返回字符串数组元素个数
awk 'BEGIN {print split("123#456#789", myarray, "#")}'

6.sub   只能替换指定域的第一个0
awk 'sub(/0/,2) {print }' /etc/fstab

7.substr
按照起始位置及长度返回字符串的一部分
awk 'BEGIN {print substr("www.linuxtone.org",5,9)}'  //第5个字符开始,取9个字符。

awk 'BEGIN {print substr("www.linuxtone.org",5)}'  //第5个位置开始,取后面的所有.

字符串屏蔽序列
\b                  退格键
\f                  走纸换页
\n                  新行
\r                  回车
\t                  tab
\c                  任意其他特殊字符
\ddd                八进制

很简单的例子
awk -F: '{print $1,"\b"$2,"\t"$3}' /etc/passwd 输出函数printf(注意是printf不是print,两者效果不同的)
printf函数拥有几种不同的格式化输出功能

printf修饰符
-                               左对齐
Width                        域的步长0表示0步长
.prec                          最大字符串长度,或小数点右边的位数

awk printf格式
%c                              ASCII字符
%d                              整数
%e                              浮点数,科学计数法
%f                               浮点数
%g                              awk决定使用哪种浮点数转换,e或者f
%o                              八进制数
%s                              字符串
%x                              十六进制数

1.字符串转换
echo "65" | awk '{printf"%c\n",$0}'

awk 'BEGIN {printf "%c\n",65}'

awk 'BEGIN {printf "%f\n",999}'

2.格式化输出
awk -F: '{printf "%-15s %s\n",$1,$3}' /etc/passwd

awk -F: 'BEGIN {printf"USER\t\tUID\n"} {printf "%-15s %s\n",$1,$3}' /etc/passwd

3.向一行awk命令传值
who | awk '{if ($1 == user) print $1 " you are connected to:" $2}' user=$LOGNAME

4.awk脚本文件 (在文件名字后面加后缀.awk方便区分)
#!/bin/awk -f
BEGIN{
    FS=":"
        print "User\t\tUID"
        print"____________________________"
}

{printf "%-15s %s\n",$1,$3}

END{
       print "END"

}
===============================================================================================================================================
18.从a.log文件中提取包含"WARNING"或"FATAL",同时不包含"IGNOR"的行,然后提取以":"分割的第 5个字段
grep -E 'WARNING|FATAL' a.log|grep -v ignor |awk -F ":" '{print $5}'

不断更新中。。。。。

转载于:https://blog.51cto.com/51tech/458255

linux主机常用管理命令相关推荐

  1. Linux学习笔记之环境配置和常用管理命令

    一.环境配置 修改ip地址(略过) 1.网络通信命令 <1> ping 测试网络的连通性 ping 选项 IP地址 -c 指定发送次数 <2> ifconfig 查看和设置网卡 ...

  2. Dell服务器RAID常用管理命令总结 linux

    Dell服务器常用管理命令总结 准备 新版本的 MegaCli-1.01.24-0.i386.rpm 会把程序安装在/opt下,可以自定义安装目录,例如: rpm --relocate /opt/=/ ...

  3. Linux中常用的命令都是哪些单词的缩写

    作者:蓬岸 Dr.Quest 链接:https://www.zhihu.com/question/49073893/answer/114986798 来源:知乎 著作权归作者所有.商业转载请联系作者获 ...

  4. linux下常用FTP命令

    linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器 格式:ftp [hostname| ip-address] a)在linux命令行下输入: ftp 192.168.1.1 ...

  5. Dell服务器RAID常用管理命令总结

    介绍 MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等.通常,我们对硬盘当前的状态不太好 ...

  6. Linux系统命令——磁盘管理命令

    目录 查看使用量 df du 磁盘分区 fdisk lsblk查看磁盘 查看分区文件 磁盘格式化 mount/umount挂载/卸载 mount挂载 开机自动挂载 umount卸载 Linux磁盘管理 ...

  7. linux权限命令chgrp,Linux 基础——权限管理命令chown、chgrp

    一.chown命令与chgrp命令的作用 有时你需要改变文件或目录的属主,比如有人离职或开发人员创建了一个在测试或生产环境中需要归属在系统账户下的应用.Linux提供了两个命令来实现这个功能:chow ...

  8. Dell服务器常用管理命令总结

    Dell服务器常用管理命令总结 具体信息指令 查看机器型号#dmidecode|grep"Product" 查看厂商#dmidecode|grep"Manufacture ...

  9. mysql参数优化步骤_MySQL架构优化实战系列4:SQL优化步骤与常用管理命令2(转)

    MySQL架构优化实战系列4:SQL优化步骤与常用管理命令 原文:http://dbaplus.cn/news-11-649-1.html 一.SQL语句优化步骤 1.查看MySQL状态及配置 sho ...

最新文章

  1. WebApi2官网学习记录---异常处理
  2. Microsoft CryptoAPI加密技术(一)
  3. 【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解
  4. Collapse Hierarchy(折叠继承体系)
  5. java vector 输出_5.7(java学习笔记)Vector、Enumeration
  6. 云栖科技评论第57期:技术拓展科学边界 科学激发技术创新
  7. 经验3-5年的测试人,如果还是长期加班、薪资涨幅不大,建议认真看看
  8. ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤...
  9. arcgis java api,Java中调用ArcGIS Server REST API
  10. 如何删除git本地分支
  11. java数组循环动态赋值_Java数组
  12. python实现计算器功能、输入加减乘除、不是就跳出_使用Python实现计算器功能
  13. 触摸屏控制变频器程序 触摸屏控制变频器程序
  14. 30天自制操作系统 学习笔记1
  15. 销售书籍_我们的5合1图书销售又来了!
  16. 没读过一本励志鸡汤文,说什么在北上广打拼的人
  17. 王者归来,低代码的逆袭之路
  18. ubuntu搜狗输入法中文无法切换英文
  19. 浅谈HTTP Adaptive Streaming技术及其前景
  20. 最完整二叉树删除节点

热门文章

  1. UIAlertAction的用法
  2. jenkins配置git
  3. 前端开发神器之ngrok
  4. 第五章ThinkingInJava
  5. Oracle 中多个字段显示成一列
  6. 错误信息输出,重定向到文件
  7. CTO(首席技术官)
  8. robots.txt文件的解析及过滤
  9. javascript函数式_JavaScript中的函数式编程—结合实际示例(第1部分)
  10. ux体验网站 英国_?? 用户体验(UX)资源和工具的完整列表??