(二)Linux磁盘和文件管理命令,角色,权限和命令,系统检测和维护

具体内容

3.1 磁盘和文件管理命令

3.1.1 系统目录介绍:
/: 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin(binary): /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot: 放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/grub。建议单独分区,分区大小100M即可
/dev: 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
/etc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
/home: 系统默认的(普通)用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib: /usr/lib:/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
/mnt: /media: 设备默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载.
/opt: 给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录 process 进程有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root: 系统管理员root的家(根)目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
/sbin: /usr/sbin:/usr/local/sbin: 放置系统管理员root使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
/tmp: 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
/usr: 应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
/var: 放置系统执行过程中经常变化的文件,如随时更改的日志文件variable /var/log,/var/log/message: 所有的登录文件存放目录,/var/spool/mail: 邮件存放的目录,/var/run: 程序或服务启动

3.1.2 命令格式:

命令 【-选项】 【 参数】
如:ls -la /usr
3.1.3 命令分类和帮助:

内部命令:属于Shell解析器的一部分(cd pwd),执行速度会快
外部命令:独立于Shell解析器之外的文件程序(ls mkdir),执行速度会慢(每次运行外部命令,需要shell解析器先加载解析,再执行)
内部命令:help + 命令(help cd)
外部命令:man(manual 帮助手册) + 命令(man ls)
查看一个命令的帮助文档,如果文档比较长,enter键一行一行看,space(空格)键 一页一页看 字母q(quit) 退出帮助文档

3.1.3 常用命令:

查看目录内容

   ls     list directory contents    列出目录内容
  选项:
    -a    all   do not ignore entries starting with .     
       在linux系统中以.开头的文件或者目录是隐藏文件    显示所有内容,包括隐藏文件
    -l    use a long listing format    使用长的列表格式  
           显示目录或者详情
    -t    sort by modification time, newest first    按照更新时间排序   越新的越在前面
          倒叙排序文件内容
 具体使用:
    touch .a    创建.a文件
    touch .b   创建.b文件
    mkdir  .aaa   创建.aaa目录
    mkdir  .bbb
     ls    查看不到.开头目录文件
     ls  -a     显示所有的   
    
    ls  -l       显示内容详细信息
    ll    是ls -l 的简化写法
    ls -a -l     多个选项一起使用     显示所有内容的详情  
    ls   -al      多个选项可以合并使用
    ls   -la      
 
     ls
     ls -t    发现显示文件顺序不同
     ls -a -l -t      发现确实按照更新时间倒叙排序
     ls -alt    
     ls -lat    
    
     ls  -alt   /       显示根目录所有内容详情,倒叙排序
     ls   -lta  /etc
     ls   -lta  /etc/   
     ls -la  /etc/sysconfig/network-scripts/
     ls   -l   ../       相对目录  ../上级目录
    cd  /etc/sysconfig/network-scripts/      进入该目录
     ls ../../../root/         相对路径显示   选项可以随意加

切换目录

  cd   Change the shell working directory      改变工作目录
  具体使用:
  cd  /etc/sysconfig/network-scripts/    切换到指定目录
  cd  ../      切换上级目录
  cd ../../    切换到上两级目录
  cd    什么都参数都不加 切换到当前用户的根目录
  cd  /etc/sysconfig/network-scripts/
  cd  ~   和上面什么参数都不加一样   切换到当前用户的根目录    

创建目录

 mkdir     make directories    创建单个/多个目录
 选项:
     -p    parents     no error if existing, make parent directories as needed  
                  一次创建多级目录,使用-p会按照需要创建父目录,不会让创建错误
 具体用法:
      mkdir spring     创建单个目录
      mkdir  mybatis  springboot     创建多个目录
      mkdir  spring/ioc   spring/aop   spring/mvc      一次在某一个目录下创建多个目录
      ls spring 
      ls /var/
      mkdir ../var/aaa ../var/bbb        相对路径创建多个目录
      ls /var/

   mkdir aa/bb/cc/dd     错误的  因为创建dd时,cc不存在 。。。。
   mkdir -p  aa/bb/cc/dd
    ls
    ls   aa   
    ....

创建文件

 touch      change file timestamps     改变文件时间戳
                A FILE argument that does not exist is created empty    
          当touch命令后根的参数文件不存在时,会创建一个空文件

 具体用法:
 ll      查看a.txt的创建时间
 touch  a.txt      改变a.txt的文件更新时间
ll    发现a.txt的更新时间编程当前时间

 touch  b.txt    b.txt不存在就会创建一个空的b.txt
 ll    发现b.txt被创建,内容为0

查看文件内容

 cat:    
     concatenate files and print on the standard output    串联文件并打印到标准输出
            显示一个文件的全部内容
  具体实例:
  touch  a.txt
  touch  b.txt
  touch  c.txt
  echo  'hello'   正常显示标准输出   echo=  display a line of text
  echo 'hello' > a.txt     > 写入   把hello内容写入到a.txt
  echo 'qy149' > b.txt    
  echo 'qy149' > b.txt 
   ll 
  cat a.txt b.txt c.txt        串联3个文件,并把内容打印
  cat a.txt      
  cat  b.txt     

 touch tomcat.log   创建一个tomcat.log文件
 echo 'abc' > tomcat.log   写入abc
  cat   tomcat.log
 echo '123' > tomcat.log    写入123
  cat  tomcat.log     发现写入会覆盖原来内容
  date  显示当前时间
  date >> tomcat.log     >>追加  不会覆盖原来内容,在原来内容的下一行进行追加
  cat  tomcat.log
    date >> tomcat.log    多次执行  发现都是追加
    cat  tomcat.log        当我们执行多次后,文件不再一页   cat的弊端就显示出来,只能看到文件的最后一页内容
 head:
        output the first part of files       显示文件的开始部分
   选项:
         -n   lines      print the first K lines instead of the first 10;
           如果指定了n的值为k  打印 前K 代替前10行
   具体用法:
          head tomcat.log   默认显示文件的前10行
          head -5 tomcat.log     显示前5行
          head -2 tomcat.log 
          head -20 tomcat.log 
 tail:
         output the last part of files     输出文件的末尾部分
      选项: 
       -n       显示文件尾部指定行
        -f    follow    output appended data as the file grows     文件增长时显示追加数据   
        -F    和-f    只不过带retry(重试)功能  
       具体用法:
        tail tomcat.log    默认显示后10行
        tail -2  tomcat.log
        tail -20  tomcat.log
        tail -f tomcat.log     查看tomcat.log追加部分   会阻塞不动
      另外启动一个会话窗口,在里面执行
        echo 'appened111' >> tomcat.log 
        echo 'appened222' >> tomcat.log 
       date>>tomcat.log    多次执行    观察原窗口的变化

        tail -F   tomcat.log     带重试功能,在web项目中都会记录日志,通常记录日志时,如果日志是按照日志每天生成的, 当前的文件是tomcat.out   今天过完把tomcat.log变为tomcat.2022-04-14.log文件,最新的仍然是tomcat.out   继续追踪最新文件 
           ctrl+c 退出
 more :  
file perusal filter for crt viewing    分页显示数据
         具体用法:
             more   settings.xml
                 enter  键 一行一行显示
                 space 空格键   向下翻页
                 ctrl+f    向下翻页
                 ctrl+b   向上翻页
                  q  退出
 less:
         opposite of more       分页显示数据
        具体用法:
             less    settings.xml
                 enter  键 一行一行显示
                 space 空格键   向下翻页
                 ctrl+f    向下翻页
                 ctrl+b   向上翻页
                  q  退出
            可以使用  /关键字     进行搜索   高亮关键字    

复制文件

 cp    opy files and directories     复制和目录    相当于windows下的ctrl+c  + ctrl+v
    选项:
          -r     recursive  递归     copy directories recursively   递归复制目录
    具体用法:
         ls
         cp   a.txt   spring    复制a.txt到spring目录
         ls 
         ls  spring    发现存在了
         ls  /tmp
         cp  /root/a.txt   /tmp     复制a.txt到/tmp目录下
         ls  /tmp
         cp ../etc/sysconfig/network-scripts/ifcfg-ens33   /tmp/      相对路径复制
         ls  /tmp
         cat  /tmp/ifcfg-ens33
         
           mkdir    frames   创建一个框架目录
           cp spring frames/     cp 不可以直接复制目录
           mkdir spring/aop/aspect
           mkdir spring/aop/pointcut
            cp -r  spring   frames/     复制spring目录到frames目录下
             ls frames/spring/
            ls frames/spring/aop/

查看当前工作目录

  pwd    print name of current/working directory        打印当前工作目录的名称
     具体用法:
         pwd    回车 ,默认显示当前工作目录的位置
        cd /etc/sysconfig/network-scripts/
         pwd
          cd ../
           pwd 
          cd ../../ 
           pwd  

移动文件或者重命名

 mv    move (rename) files     移动/重命名   文件        相当于windows中的ctrl+x ctrl+v
      具体用法:
            ls
            ls spring
            mv  b.txt   spring   移动b.txt 文件到  目录中
            ls    发现b.txt没有了
            ls  spring    发现b.txt
            ls /var/log/ 
            mv  /root/c.txt   /var/log/   移动c.txt到 /var/log/
            ls     发现c.txt没有了
            ls /var/log/       发现c.txt
            ls 
            mv springboot/ frames/    移动目录到另外一个目录中
            ls  
            ls   /frames   发现springboot目录

            ls
            mv  a.txt   aaa.txt     把a.txt重命名为aaa.txt    aaa.txt目录不存在
            ls
            mv  frames/  frameset     把目录frames重命名为frameset
            ls        

删除空目录

  rmdir     remove empty directories    删除空目录
  具体用法:
   ls
   rmdir mybatis/     直接删除空目录mybatis
   ls
   rmdir frameset/    不能删除非空目录
   ls
   mkdir bb cc dd 
    ls
   rmdir bb cc dd    删除多个空目录
    ls
    mkdir -p bb/cc/dd
    rmdir bb  无法删除

删除文件

  rm   remove files or directorie   移除为你教案或者目录
  选项:
     -r  recursive  递归的  remove directories and their contents recursively
                    递归删除目录及目录下所有内容
     -f   force  强制的     ignore nonexistent files and arguments, never prompt  
                    不带提示信息,直接删除
  具体用法:
    ls
    rm 中文.txt    删除  中文.txt   有提示信息    需要确认是否删除   y/n
    ls
    rm -f  aaa.txt    直接删除aaa.txt不带提示
    ls
    mkdir   -p  bb/cc/dd
    rm   -f    bb     无法删除目录
    rm   bb      无法删除目录
    ls
    rm -rf  bb     不带提示递归删除目录bb 及其下的所有内容
    ls 
         无论是文件或者目录,都可以使用   rm -rf    强制删除
   touch frameset/a   frameset/b   frameset/c.log   在frameset下创建3个文件
    ls  frameset    有目录还有文件
    rm -rf frameset/*     * 为通配符,统配所有内容
    ls  frameset 
    ls
    rm -rf  aa  spring/  settings.xml     移动多个文件和目录
    ls  

文件统计

 wc    (word count)  print newline, word, and byte counts for each file    打印每个文件行数,单词数和字节数
 选项:
   -l       print the newline counts   打印行数
   -c       print the byte counts      打印字节数
  -m     print the character counts   打印字符数(utf-8时一个中文1个字符  3个字节)
   -w    print the word counts   打印单词数
  具体用法:
      touch a.log
       echo 'hello'>>a.log
        wc  a.log          结果为1 1 6 a.log     行数    单词数(以换行或者空格分割)  字节数(一个空格和换行都按照1个字节计算   1个中文汉字占3个字节utf-8)    文件名字
       echo '中国'>>a.log
        cat a.log     
        wc   a.log       2  2  13    2行 2单词   13字节
         echo 'hello AAA'>>a.log
        cat  a.log
        wc a.log       3   4   23    3行   4单词   23 字节
       
          wc -l a.log   打印行数
          wc -c a.log  打印字节数
          wc -w  a.log  打印单词数
          wc -m  a.log   打印字符数 (一个中文占3个字符) 

查找文件或者目录

  find   search for files in a directory hierarchy    按照目录层次查询文件
       具体用法:
       find   -name   '*t*'      列出当前目录下所有名称含有t的文件或者目录
       find  /etc   -name   '*audit*'    查找/etc下  所有名称含有audit的文件或者目录
       find  /etc   -name   '*t*'  
        find  /etc   -name   '*audit*' 
        find  /etc   -name   '*audit*'   |  wc -l     查找/etc下  所有名称含有audit的文件或者目录 并统计行数      
         find  /etc   -name   '*t*'   |   wc  -l        | 管道符   连接多个命令的     通常后一个命令把前一个命令的执行结果作为参数

筛选文件内容

 grep(global  regular  expression  print)      print lines matching a pattern
         全局按照正则表达式查找匹配内容,并把查找结果打印到标准数据
      grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。(百度百科)
     具体用法:
        cat  tomcat.log  查看所有内容
        grep  22:  tomcat.log      查找含有22:的所有行,并打印
        grep This  settings.xml
         grep a  settings.xml
         grep a  settings.xml |  wc -l   从 settings.xml文件中查找含有a的行,并统计行数
         find  /etc   -name   '*t*'  | grep  pos    从find的查找结果查找含有pos的行并打印
         find  /etc   -name   '*t*'  | grep  pos | wc -l   从find的查找结果查找含有pos的行并打印,并统计行数

创建快捷方式(创建软硬连接)

   ln    make links between files      在文件之间创建连接
     选项:
       -s    make symbolic links instead of hard links      为文件或者目录创建象征性的连接         软连接 (相当于windows下的快捷方式)
       -d    allow  the superuser to attempt to hard link directories     
            硬接连   给源文件创建一个副本文件,当原文件删除,对副本文件没有任何应该     
     具体用法:
        mkdir -p  /tmp/aaa/bbb/ccc
        ln -s /tmp/aaa/   aaa.lnk    为/tmp下aaa目录创建软连接到当前用户主目录下
         ls -l         发现aaa.lnk连接到/tmp/aaa
         ls  aaa.lnk/     测试是否可以使用   直接看到bbb
        rm -rf /tmp/aaa     删除源目录
        ll   发现aaa.lnk变红色   不可用了
         mkdir -p  /tmp/aaa/bbb/ccc   再次创建目录
         ll    发现又可以使用
         ls   aaa.lnk 查看内容
        
         cat  a.log
          ln -d a.log  a.log.lnk  为a.log创建硬连接a.log.lnk
          cat a.log.lnk   直接查看内容
          rm -rf  a.log  删除源文件
           cat a.log.lnk   删除源文件对连接文件没有任何影响

压缩解压文件

   gzip: 
      compress or expand files
      选项:
         -d    Decompress   解压缩
      具体用法:
      gzip   tomcat.log       压缩tomcat.log文件   产生一个tomcat.log.gz   源文件消失
      gzip -d   tomcat.log.gz     解压   压缩包消失,源文件出现     
   
   bzip2: 
      最小化安装,只安装了gzip  没有安装bzip2 
       在线安装bzip2 压缩解压方法
      ping www.baidu.com  看网络是否通畅
      yum -y install bzip2     自动分析依赖,在线安装软件bzip2
   a block-sorting file compressor,a block-sorting file compressor
               压缩解压文件
 选项:
         -d  decompress     解压缩
 具体操作:
       ls
      bzip2  tomcat.log    压缩tomcat.log 产生tomcat.log.bz2   源文件消失
      ls
      bzip2  -d  tomcat.log.bz2   解压   压缩包消失   源文件出现
      ls 
 gzip frameset/
 bzip2  frameset/     
 这两个命令都无法直接对目录进行压缩  

压缩解压目录/文件 查看压缩包

 tar:
 GNU  `tar'  saves many files together into a single tape or disk archive,
   and can restore individual files from the archive
           把许多文件保存到一起到一个单独磁带或者磁盘档案上,可以从档案中恢复文件
         和windows下的压缩解压是一个意思
  选项:
       -c       create    创建     create a new archive     创建压缩
       -t        list         列表   list the contents of an archive    查看压缩包
       -x       extract   提取   extract files from an archive    从压缩包提取文件   解压缩
      上面3个选项中  都不可以共同使用
       -z     gzip   filter the archive through gzip   通过gzip方式进行过滤(压缩,查看压缩包,解压)
       -j   bzip2  filter the archive through bzip2  通过bzip2方式进行过滤(压缩,查看压缩包,解压)
      上面2个选项不能共同使用(不能压缩,查看或者解压过程中换方式)
     -v    verbose  verbosely list files processed    显示文件详情   可选的,不要也可以
    -f   file   use archive file or device ARCHIVE     文档名称  
    -C     change to directory DIR      改变目录   指定解压文件位置

 具体用法:
       既可以对文件进行操作 ,也可以对目录进行操作(本质tar 打包,打包可以打包目录,在打包过程使用gzip,bzip2进行压缩或者解压)
       ls
     mkdir  frameset
     mkdir  frameset/spring  frameset/springboot  frameset/mybatis  frameset/hibernate
     mkdir frameset/spring/ioc  frameset/spring/aop  frameset/spring/mvc
      touch frameset/spring/ioc/a.log
      touch frameset/spring/ioc/b.log
      touch frameset/spring/aop/aa.log
      touch frameset/spring/aop/bb.log
      tar -czvf  frameset.tar.gz   frameset/   压缩文件夹frameset,压缩之后的名称为frameset.tar.gz    因为带了v   所以会显示压缩过程  
      ls     发现和windows下一样,压缩后,源目录依然存在,产生frameset.tar.gz文件
     rm -rf frameset.tar.gz     删除,再压缩,演示不带v
     tar -czf  frameset.tar.gz  frameset     依然压缩,不再显示详细信息
      ls
      tar -tzvf frameset.tar.gz    查看压缩包(带v显示详情)
       tar -tjvf frameset.tar.gz   错误  压缩文件使用的gzip方式压缩的,不能使用bzip2的方式进行查看
      tar -tzvf frameset.tar.gz    查看压缩包(不带v不显示详情)
      ls 
      rm -rf frameset  删除源目录
      tar -xjvf frameset.tar.gz    解压错误  压缩文件使用的gzip方式压缩的,不能使用bzip2的方式进行解压
      tar -xzvf frameset.tar.gz   解压   没有-C  默认解压到当前目录
      ls    
      ls  /tmp  
     tar -xzvf  frameset.tar.gz  -C  /tmp/    解压到指定目录
       ls  /tmp 
      ls  /tmp/frameset    

      tar -cjvf frameset.tar.bz2  frameset    使用bzip2方式进行压缩
      ls
       tar -tjvf frameset.tar.bz2     查看压缩包
       rm -rf frameset     删除源目录
       ls   查看
       tar -xjvf frameset.tar.bz2    解压到当前目录
       ls 
       ls frameset
       ls  /var
       tar -xjvf frameset.tar.bz2  -C /var/   解压到指定的/var目录
      ls /var/
      ls /var/frameset/

3.2 角色,权限和命令:

四种角色:
在这里插入图片描述

           第1位:文件类型(d 目录,- 普通文件,l 链接文件)
                              “-”表示普通文件;

“d”表示目录;
“l”表示链接文件;
“p”表示管理文件;
“b”表示块设备文件;
“c”表示字符设备文件;
“s”表示套接字文件;
第2-4位:所属用户权限,用u(user)表示
第5-7位:所属组权限,用g(group)表示
第8-10位:其他用户权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示

三种基本权限:
r 读权限(read)
w 写权限(write)
x 执行权限 (execute)
chmod修改文件权限命令(change mode)
参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)

例如:chmod  u[go/a]+/-x[rw]  a.txt
用数字来表示权限(r=4,w=2,x=1,-=0)
例如:chmod  750  b.txt
rwx用二进制表示是111,十进制4+2+1=7
r-x用二进制表示是101,十进制4+0+1=5

3.3 系统检测和维护

3.3.1 常用命令:

  fdisk -l  查看当前磁盘的详细信息(结合lsblk)  

结果解释:
在Linux 是通过hdx 或 sdx 表示的,其中 * 表示的是a、b、c …… …… x表示的数字 1、 2、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或移动存储
磁盘大小= 磁头->柱面->扇面->每个扇区固定大小512bytes

df  显示文件系统磁盘空间的使用情况
    df   默认显示所有当前已挂载文件系统的磁盘空间使用情况
    df -h  以人类可读方式显示
    df -h /bin   显示某一个文件夹所在磁盘的使用情况

 du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以K,M,G为单位显示(human-readable)
-s只显示各档案大小的总合(summarize)
free  显示当前内存和交换空间的使用情况 
netstat  是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
 yum  install net-tools  -y
-a  显示所有连接和监听端口
-t   (tcp)仅显示tcp相关选项  
-u  (udp)仅显示udp相关选项

从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

   netstat -a | grep 52   根据查询结果集筛选想要的结果
   netstat -t | grep 52 
ip addr  网卡网络配置详解
        lo  是回环地址,经常被分配到127.0.0.1地址上,用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
     ens33:网卡名
         <BROADCAST,,MULTICAST,UP,LOWER_UP> 这个叫作net_device flags,网络设备状态标识。
UP 表示网卡处于启动的状态;
BROADCAST 表示这个网可以发送广播包;
MULTICAST 表示网卡可以发送多播;
LOWER_UP表示网线插着;
MTU1500是指最大传输单元 MTU 为 1500,这是以太网的默认值。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP、HTTP的头。如果放不下,就需要分片来传输。

qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc ( 排队规则 ) 把数据包加入 队列。 最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段 ( band ) 。在每个波段里面,使用先进先出 规则。 三个波段 ( band ) 的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面 有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2之间也是一样。 数据包是按照服务类型 ( Type of Service,TOS ) 被分配多三个波段 ( band ) 里面的。TOS 是 IP 头 里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。  然而这里是mq,还木有搞懂是什么样的队列处理方式。 lo中的fq_codel是多队列处理,每一个数据流都有一个队列处理。
      link/ether:这个是MAC地址,唯一的,一块网卡一个MAC。

ping  测试网络的连通性 
      ping  www.baidu.com

3.3.2 进程与服务

进程概念

(a)进程是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存,网络资源等。

(b)很多人在回答进程的概念的时候,往往只会说它是一个运行的实体,而会忽略掉进程所占据的资源。比如说,同样一个程序,同一时刻被两次运行了,那么他们就是两个独立的进程。
Linux中的三种进程
(1)交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
(2)批处理进程和终端没有联系,是一个进程序列。
(3)监控进程(也称系统守护进程) Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。

进程相关命令:

top 显示当前系统中耗费资源最多的进程 
用途: 可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高
信息解读
前五行是系统整体的统计信息。

第一行是任务队列信息,同 uptime 命令的执行结果。
13:01:49   当前时间 
up 13 min   系统运行时间 
1 user   当前登录用户数 
load average: 0.00, 0.03, 0.06   系统负载,即任务队列的平均长度。 
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks:
total   进程总数 
running   正在运行的进程数 
sleeping   睡眠的进程数 
stopped   停止的进程数 
zombie   僵尸进程数 

Cpu(s):

us   用户空间占用CPU百分比 
sy   内核空间占用CPU百分比 
ni   用户进程空间内改变过优先级的进程占用CPU百分比 
id   空闲CPU百分比 
wa   等待输入输出的CPU时间百分比 
hi   硬中断(Hardware IRQ)占用CPU的百分比
si   软中断(Software Interrupts)占用CPU的百分比
st   (Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比。

最后两行为内存信息。内容如下:

Mem: 
total   物理内存总量 
used   使用的物理内存总量 
free   空闲内存总量 
buffers   用作内核缓存的内存量 
 
Swap: 
total   交换区总量 
used   使用的交换区总量 
free   空闲交换区总量 
cached   缓冲的交换区总量。 

内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。

ps     report a snapshot of the current processes  显示瞬间的进程状态

-e /-A 显示所有进程,环境变量
-f 全格式

ps –ef | grep  java  #表示查看所有进程里 CMD 是 java 的进程信息;

启动3个会话窗口:

   man  ls     第一个会话窗口
   man  ps     第2个会话窗口
   ps -ef |grep man |grep -v grep       第3个会话窗口   看到两个帮助进程    看到含有man帮助的两个进程,并且 不包含grep自身在内

ps -ef|grep结果详解

UID      :程序被该 UID 所拥有
PID      :就是这个程序的 ID
PPID    :则是其上级父程序的ID
C          :CPU使用的资源百分比
STIME :系统启动时间
TTY     :登入者的终端机位置
TIME   :使用掉的CPU时间。
CMD   :所下达的是什么指令
ps -ef | grep 关键字
ps -ef |grep sshd
ps -ef|grep sshd|grep -v grep    排除grep本身进程,显示含有sshd的
ps -e --no-header|grep -v ps|wc -l

kill 杀死一个进程

(1)背景,当程序出错造成死锁,或者内存消耗过大造成卡机,杀;
(2)格式: kill -9 PID
(3 ) 示例:kill -9 324,
(4)使用后一般使用下面命令释放内存:#free
kill命令的改进killall
(1) Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,
例如:# killall -9 NAME
(2)使用后一般使用下面命令释放内存:#free

启动3个会话窗口:

   ping www.baidu.com     第一个会话窗口
   ping  localhost     第2个会话窗口
   ps -ef |grep ping  |grep -v grep       第3个会话窗口   看到两个ping进程    看到含有ping的两个进程,并且 不包含grep自身在内
    可以看到pid 
   kill -9     pid        pid  动态的

3.3.3 定时任务

第一步,查看cron服务是否开启

          service crond status  
                        或者
         systemctl status  crond

第二步 ,查看当前的定时任务

 crontab -l

第三步 ,编辑crontab -e

第四步 ,检查效果

取消定时任务   crontab -r 

定时任务格式:

	分0-59     小时0-23   日1-31       月1-12      星期0-6     
	命令
	
    “*”代表取值范围内的数字 ,
     “/”代表”每隔”,
     “-”代表从某个数字到某个数字
     10-15  *  *  *  *    每一小时的10到15分钟   
     “,”分开几个离散的数字             
     10,12,15  *  *  *  *     每一小时的第10,12,15执行
     
*/5      *       *         *     *     ls             指定每小时的第5分钟执行一次ls命令
30     5       *         *     *     ls             指定每天的 5:30 执行ls命令 
30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令 
30     6       *         *     0     ls             指定每星期日的6:30执行ls命令
[注:0表示星期天,1表示星期1, 以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30     3       10,20     *     *     ls             每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25     8-11    *         *     *     ls             每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15   *       *         *     *     ls             每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30     6       */10      *     *     ls             每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
                                              每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50     7       *         *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。

示例:
crontab -e 编辑定时器

* * * * *  date>>aaa.log       每分钟把当前时间追加到aaa.log一次
*/3 * * * *  ls / >>bbb.log    每隔3分钟 把ls /的执行结果追加到bbb.log中
5,10,15,20 10-20  * * *   ls /var>>ccc.log      每天10:05  10:10  10:15,10:20,  11:05  11:10  11:15,11:20,  ... 20:05  20:10  20:15,20:20   定时任务可以执行一次  

crontab -r 取消定时任务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杵意

谢谢金主打赏呀!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值