zoukankan      html  css  js  c++  java
  • <实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向

    [root@localhost~]#序言
      在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h。。。
    每天都要检查一下服务器,看看是否出现异常。那么今天我们就讲解一下关于运维工程师例行事务的知识!


     开班第十一天:

    [root@localhost~]#今天的课程大纲
    1. 查看进程,中断进程,切换进程
    2. 内存与swap分区
    3. linux中文件查找的基本方法
    4. linux中是如何解压缩文件的
    5. 关于I/O重定向的知识点
    6. 远程scp配合管道

    详细讲解:

    [root@localhost~]#查看进程,中断进程,切换进程
      
    查看进程,我们一般使用ps或者top来查看,ps可以查看当前终端运行的进程。
    ps -ef和ps aux可以查看当前系统所有的进程,top也可以查看运行的进程,通过M来按照内存排序,P按照cpu的使用率来排序。

     ②中断进程,在使用top查看当前的进程时候,我们可以通过kill + pid来结束某个进程。也可以使用pkill/killall + 进程名,
    不过这种方法尽量少用或者不用,因为你会杀掉某个含有你进程名的重要进程,除非在你非常确定的情况下。

    这里有必要说一下kill的理解,kill的本质并不是结束进程,很多人都会理解为杀掉。

    但这是我们口头说的,kill的本质其实是对进程发送信号,-1信号重启,-15信号是让进程自己退出,-9信号是系统强制结束某个进程。我们一般情况下,尽量慎重-9,原因你可以想象一下。

       ③后台任务进程的切换,假如我们使用命令:firefox &,这代表我们启动firefox,但是是后台启动,我们可以使用jobs来查看当前后台运行的任务,fg %num可以把firefox放到前台运行,只用ctrl+c来终止firefox。我们也可以使用ctrl+z来停止当前的firefox,可以使用bg %num来解停止状态。前面说的杀死进程,这我们也可以使用kill +num来结束某个任务。

    [root@localhost~]#内存与swap分区
    在linux中,内存也是一个很重要的方面,我们可以使用free -m来查看当前的内存使用情况。
    这也是一个运维工程师每天必须要关注的。
    下图中我们可以看到我们的内存使用情况,那么大家知道我现在系统中干净内存和总共可使用内存各是多少吗?
    干净内存=free=1392,总共可使用内存=free+cached=1392+177,这个值跟1595接近,
    所以我们每天可以直接看1595那个值来估计内存的事情的情况。

     上面有一个swap分区,这个分区的存在是为了缓解我们linux系统中内存不足的情况,当我们的系统中的内存使用情况比较紧缺的   时候,这时候系统就会把swap分区暂时当做内存来使用,关于swap分区设置的大小我们可以根据电脑实际内存来控制,一般就是 为实际内存的两倍。

    [root@localhost~]#linux中文件查找的基本方法
    文件找在linux中是一项非常重要的技能,一个运维工程师要做到随心所欲的在系统中寻找到自己想要的文件。
    我们在linux中常使用的文件查找方法有find和locate。①find命令。很多很多参数,我就简单写几个,如果不懂的可以查看man手册。

      find /文件路径 -name "*.iso" 通过文件名查找

      find /文件路径 -iname "*.iso" 查找不区分大小写

      find /文件路径 -inum "num" 通过inodenum查找硬链接的文件

      find /文件路径 -size +4G 查找文件大于4G的文件

      find /文件路径 -perm 777 查找权限为777的文件

     ②通过locate来查找文件,locate -b +直接文件名,查找出来的是带上文件路径一起查的。

      这里我说一下find和locate的区别:find查找文件的原理是扫描磁盘,locate查找文件的原理是查找自己的数据库,所以find的速度较慢,但是文件搜索精确,locate速度较快,但是更新较慢。locate在每天会执行周期任务,从而更新自己的数据库,如果你现在新建一个文件,通过locate是查找不到的,或许明天早上你就能查找到了。

    [root@localhost~]#linux中是如何解压缩文件的
    linux中打包和压缩的概念是完全不同的两个概念,所以不要弄混,打包是把几个文件放在一起,压缩才是跟windows中压缩差不多的概念。
    windows和linux文件共享,两个系统都识别的文件格式是zip,所以以zip文件传输是最好的,zip a.zip,unzip a.zip.

    linux中常用的压缩文件格式有gz和dz2,我说一下他们创建压缩文件具体的流程:创建tar包-->压缩tar包-->解压tar包-->解tar包,但是实际中我们没必要一步一步完成,直接两步进行到底。

     ①gz格式:tar czvf a.tar.gz b/ tar xvf a.tar.gz,分别是gz格式的压缩和解压。

     ②dz2格式:tar cjvf a.tar.dz2 b/ tar xvf a.tar.dz2,分别是dz2格式的压缩和解压。

    其实可以看出解压是一样的,因为解压的时候会自动判定压缩包的格式。其中解压的时候我们可以使用参数-C来确定解压的路径。

    我们可以在不解压的情况下查看压缩包的内容,tar tf a.tar.gz,也可以解压其中的某一个文件出来,tar xvf a.tar.gz b/a.txt。

    [root@localhost~]#关于I/O重定向的知识点
    在linux中,我们有三个标准的输入输出,标准输出stdout,标准错误输出stderr,标准输入stdin,他们的文件描述符分别是1,2,0。下面演示一个例子:
    例子说:a.txt存在,b.txt不存在,使用ls的时候,b.txt是stdout,a.txt是stdout,所以全部重定向&>到io.txt中,会显示一个错误,一个正常。

    这里讲一下键盘输入,管道输入都是标准输入。linux中需要了解的一个here document和here string。

    here document:cat>file<<EOF,我们从键盘输入,然后成为一个文件内容。

    here string:bc<<<12+23,表示计算器从字符串中读取数据来进行计算。

    [root@localhost~]#远程scp配合管道
    我们一般使用scp来远程拷贝文件,一般的命令为:scp root@ip地址:/路径 /路径。
    说道scp,不得不说说ssh了,在今后很多情况下,我们都是需要通过ssh来远程服务器,修复维护等。
    在很多情况下,我们可以使用ssh默认不登录的进行远程的监控:
    例如:ssh root@ip "uptime",查看系统运行了多长时间了,uptime也可以换成各种命令。看,我的服务器已经运行182天了。
    当然,我们也可以是用ssh进行远程文件的压缩拷贝传输:
      ssh root@ip地址 "cd / && tar -c 目录 | gzip -f" |tar -xzf-
    意思就是远程创建一个tar包,使用gzip压缩,然后通过管道重定向传输到本地。压缩文件的传输,剩了好多流量。

     总结:

    [root@localhost~]#来自爱家人爱老婆的IT男
    今天的重点是进程和文件查找,以及重定向,希望大家好好学习,天天向上!喜欢的朋友可以点一下订阅,非常感谢大家的支持!
    博客园:爱家人爱老婆的IT男
    QQ群:145252709,我会上传资源,同时会有很多大神跟你们讨论学习分享 
    微信公众号:程序猿的野生香蕉【获取文章中出现的工具】
     
    
    
    博客园:爱家人爱老婆的IT男 QQ群:145252709,我会上传资源,同时会有很多大神跟你们讨论学习分享 微信公众号:程序猿的野生香蕉【获取文章中出现的工具】
  • 相关阅读:
    vc++编程之在程序中加入网址链接
    VC++编程之对话框贴图
    软考(软件设计师)注意事项(攻略)
    解决SQLite数据库中文乱码问题
    计算机专业中经典书籍(程序猿和大学生必读)
    VC++编程中为程序加入启动画面功能
    动态规划的详细解析(01背包问题)
    动态规划之深入灵魂的解读(非常好)
    UML类图详解
    团队冲刺——第四天
  • 原文地址:https://www.cnblogs.com/bokeyuanlibin/p/5738408.html
Copyright © 2011-2022 走看看