分享

Linux 下的这些高效指令,是你快速入门运维的神器

 兰亭文艺 2019-09-04
作者:failymao 
链接:https://www.cnblogs.com/failymao/p/8717083.html
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux管理磁盘

查看当前磁盘使用情况:df -h fdisk -l (查看所有的硬盘)

服务器添加硬盘:在系统设置添加

分区: fdisk /dev/sdb (sdb, sdc, sde)
指令:m(帮助信息), n (新加分区)
第二步: 指令p (主分区)
第三步:写入磁盘 w
使用:挂载:mount /dev/sdb1 /data/ 挂载到/data目录下,挂载成功如下

可以挂载到多个设备

mount /dev/cdrom /mnt

Vi命令

  • 所有的指令都是在指令行下输入的,不是在编辑模式下进行的!

  • 复制多行/单行:输入yy,然后按k

  • 删除某一行:按dd; 删除某个字符:光标选中某个字符,按x

  • 删错某个字符/某一行想返回:u

替换某个文件所有内容:%s/failymao/momo/g (ESC后:替换文件中所有【g表示所有】falilymao的内容为momo
替换某一行某个内容:%s/momo/failymao/1 (替换最后一行)

  • 首行添加某个字符或者空白字符:%s/my/ my/g

  • 第二种方法(my后面添加空格) :%s/my/& /

  • 首行添加:%s/^/& /(^正则首行,&表示追加)

  • 末尾行添加:%s/$/& hello($表示末尾)

  • 匹配行前插入空白行:某个字符下按 O(大写),行后插入空白行按o(小写)

  • 跳转:

  • 跳转最后一个字符:GG

  • 跳转第一个字符:gg

  • 查找:/my

  • 删除匹配的项目之后的所有内容:dG

sed命令

替换某个文件所有的内容:
sed 's/momo/failymao/g' test.txt(查看替换,s表示查找)
sed -i 's/momo/failymao/g' test.txt替换(加参数 -i 表示写入)
匹配行前插入:sed -i '/IS/i 123456' test.txt
匹配行后插入:sed -i '/IS/a 123456' test.txt (a 表示after)
修改某个配置文件信息:sed '/SELINUX/s/disabled/123456/g' /etc/selinux/config (修改 /etc/selinux/config配置文件中SELTINUX后面的disabled为123456)

find命令

查找当前目录某个文件:
*find . -name 'test.txt'

查找根目录某个文件:
find / -name 'test.txt'

查找以固定格式结尾的所有文件:
find . name '*.py'

查找以固定格式结尾的目录或者文件:
find . name '*.py' -typt d (d表示类型目录)

查找以固定格式结尾的目录或者文件:
find . name '*.py' -typt d -mtime +1 -size +10M (d表示类型为目录,-mtime +1 表示一天以上,-1表示1天之内,-size表示大小为10M的文件目录)
查找文件包含有某些内容的文件:

find /tmp/ -name '*' -type f -name 'momo'

查找的文件进行拷贝:
find /root/ -name '*' -type f -name '*server*' -exec cp {}/samba ;(查找/root目录下,查找以文件中包含有server的文件,并(-exec)复制(cp)到 ({}接目录)/samba目录下,(;)固定格式)
打包:
find /root/ -name '*.py' -exec tar czf zip_python.tar.gz {} \; (将查找/root目录下以py结尾的文件并在当前目录下打包)

删除文件:
find /samba -name '*' -type f -name '*server*' -exec rm -rf {} ;(删除/samba下,包含文件名中含有“server”的所有的文件!)
删除文件 == 等同于exec:find /root/ -name '*.py' | xargs rm -rf {} ; (管道符| xargs 等同于 -exec)

管道符grep

过滤文件:前面的结果作为后面的输入:
 cat test.txt |grep 'hou'(查看text.txt文件中有“hou”的内容) == grep 'hou' test.txt

排除文件:
cat /etc/passwd |grep -v 'mysql'(过滤掉/etc/passwd中含有“mysql”的内容,打印出结果!)

打印过滤的固定的某一行:
ifconfig |grep 'net' |awk '{print $1}'(打印ifconfig命令中含有net的字符的,第一列内容)

grep 正则

grep '^10' text.txt 匹配以10`开头
grep '10$' text.txt匹配以10结尾
grep '[0-9][0-9][0-9] ' test.txt 匹配三位数的任意组成的数
grep '[a-z]' test.txt匹配 包含有a-z字母的字段(小写)
grep '^112$' text.txt匹配以112开头结尾的
(grep -E '[0-9]{1,3}\.'){3}匹配0-9的任意数字1-3次,. 表示匹配.,{3}出现三次

查看内存,ip信息

查看内存信息:free -m
查看cup: top
查看httpd:ps -ef |grep httpd
查看tcp端口:netstat -tnl
查看udp: netstat -nul
查看当前目录文件大小:du -sh

特殊指令合计

其他应用实例:输出文本数据中最大最小的数

      112
      1223
      444 334
      444 11 22 444 578  23123
      1234 3443 234553 122 908 123445
      12 14 567 456 23478

执行 :

cat number.txt |sed 's/ /\n/g' |grep -v '^$'|sort -nr |sed -n '1p;$p'

指令详解:

1) sed 's/ //g' 将所有空格转化成换行
2) |grep -v '^$'把开头结尾都是空格的组 排除掉, -v 表示排除
3) |sort -nr从大到小排序
4) |sed -n '1p;$p' -n表示多行打印, 1p表示第一个,$p表示最后一个

awk

指定打印匹配的某一行

cat test.txt |awk '{print $4}' --->打印匹配的第四列 ($NF表示最后一列)
cat /etc/passwd |awk -F: '{print $1}'---> -F表示format,自定义格式,打印第一列
示例 ifconfig 匹配出IP地址

方法1: ifconfig eth1|grep 'broadcast' |awk '{print $2}'|sed 's/addr://g'打印ip 地址
方法2:ifconfig eth1|grep 'broadcase'|awk '{print $2}'|awk -F: '{print $2}'
df -h |grep '/$' |awk '{print $5}'|sed 's/%//g' 打印硬盘使用率 ,去掉百分号

linux指令的熟练度决定了你是否能成为一个运维届的老司机!切记多练!多练!多练!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多