:更多的bashshell命令·

zcj仲从建 zcj仲从建     2022-12-10     509

关键词:

4.1 监测程序

4.1.1 探查程序

  • ps 命令
    • 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程
      • 显示的当前进程的项目
        • 进程号
        • 运行在哪个终端(tty)
        • 进程占用的CPU时间
      • Linux系统支持的GNU ps命令支持3个不同的命令行参数
        • Unix风格的参数,前面加单破折线
          • 常用的参数选项
            • -ef:查看系统上的所有运行的所有进程
              • -e:显示所有进程
              • -f:显示完整格式的输出
              • 显示的列表项目
                • UID:启动这些进程的用户
                • PID:进程的进程号
                • PPID:父进程的进程号(如果该进程是由另一个进程启动)
                • C:进程生命周期的CPU利用率
                • STIME:进程启动时的系统时间
                • TTY:进程启动时的终端设备
                • TIME:运行进程所需的累积CPU时间
                • CMD:启动进程的名称
            • -l:显示长列表
              • 列出的列表项目
                • F:内核分配该进程的系统标识
                • S:进程状态
                  • 0表示正在运行
                  • S表示正在休眠
                  • R:表示可运行,正等待运行
                  • Z:代表僵化,进程已结束但是父进程已经不存在
                  • T:代表停止
                • PRI:进程的优先级
                  • 越大的数字代表优先级越低
                • NI:谦让度(nice)值用来参与决定优先级
                • ADDR:进程的内存地址
                • SZ:加入进程被唤醒,所需交换空间的大致大小
                • WCHAN:进程休眠的内核函数的地址
            • -H:能把输出的进程组织成一个层级的格式,简单地说就是树状,方便哪些进程启动了哪些进程
              • 常用的参数组合:-efH
        • BSD风格的参数,前面不加破折线
          • BSD:伯克利软件发行版,加州大学伯克利分析按开发的一个Unix版本
          • 使用BSD参数的时候,PS命令会自动改变输出以模仿BSD格式
          • 参数选项
            • -l:采用长模式
              • VSZ:进程在内存中的大小,一千字节(KB)为单位
              • RSS:进程在未还换出时占用的物理内存
              • STAT:当前进程的状态的双字符状态吗
                • 双字符码能比Unix风格的单字节符状态码更清楚的表示进程的当前状态
                • 第一个字符采用了和Unix风格S系列的输出相同的值,说明进程是在休眠、运行还是等待
                • 第二个参数进一步说明进程的状态
                  • <:该进程运行在高优先级上
                  • N:该进程运行在低优先级上
                  • L:该进程有页面锁定在内存中
                  • S:该进程是个控制进程
                  • T:该进程是多线程进程
                  • +:该进程运行在前端
        • GNU风格的长参数,前面加双破折线
          • 常用的全字符参数
            • –forest:显示进程的层级信息,并用ACSII字符绘出可爱的图表
              • 这种格式使能跟踪子进程 和父进程变得十分容易

4.1.2 实时监测进程

  • top命令
    • 实时显示进程信息
    • 输出信息分析
      • 第一部分:显示了当前系统的概况
        • 第一行:显示了当前时间、系统的运行时间、登陆的用户数以及系统的平均负载
          • 平均负载有3个值,值越大说明系统的负载越高
            • 最近1分钟的平均负载
            • 最近5分钟的平均负载
            • 最近15分钟的平均负载
        • 第二行:显示了概要的进程信息–top命令的输出中进程的叫做任务:多少金城出在运行、休眠、停止或是僵化装态
        • 下一行显示CPU信息
          • top根据进程的属主和进程的状态将CPU利用率分成几类输出
        • 紧跟后面的两行说明系统内存的状态
          • 前行:系统的物理内存
            • 总共用了多少内存
            • 当前用了多少
            • 还用多少空闲
        • 后一行说的同样的信息,这是针对系统交换空间(如果分配了的话)的状态来说的
      • 最后一部分:显示了当前运行中的进程的详细列表–有的根ps命令输出类似
        • PID:进程的进程号
        • USER:进程属主的名字
        • PR:进程的优先级
        • NI:进程的谦让度值
        • VIRT:进程的占用的虚拟内存总量
        • RES:进程占用的物理内存总量
        • SHR:进程和其他进程的共享内存总量
        • S:进程的状态
        • %CPU:进程使用的CPU时间比例
        • %MEN:进程使用的可用内存的比例
        • TIME+:子进程启动到目前为止的CPU时间总量
        • COMMAND:进程命令行名称,即启动的程序名
      • 默认情况top命令会按照%CPU值来排序,也可以用参数来改变排序的方式
        • 通top命令很容易找到占用系统大部分资源的进程
      • 参数
        参数  说明 
        -s time     设置屏幕刷新的延时,单位为秒,默认值5        -d count    设置屏幕刷新的次数,刷新显示完count次后退出 
        -q  如果经过nice授权,使用-q可以使top运行的更快一些 
        -u  用显示User ID代替username,提高命令运行速度 
        -h  当系统由多个CPU时,个别CPU的状态信息被隐藏,只显示平均状态值 
        -n number   设置每一屏幕显示的进程数目,number值超过进程最大数目,则设置无效 
        -f filename 输出重定向到给定的文件名,默认为16个进程信息 

4.1.3 结束进程

  • 进程信号
    • HUP:挂起
    • INT:中断
    • QUIT:结束运行
    • KELL:去条件终止
    • SEGV:段错误
    • TERM:尽可能终止
    • STOP:无条件停止运行,但不终止
    • TSTP:停止或暂停,但继续在后台运行
    • CONT:在stop和tstp之后恢复执行
  • kill命令
    • kill命令通过pid(进程号)给进程发送信息,而不能用命令名
    • 默认情况下,kill命令回想命令行中列出的全部pid发送一个TERM信号
      • TERM信号告诉进程可能的话停止运行,如果程序跑飞,则信号会被忽略,若要强制执行,则加上-s参数
    • 必须是进程的属主或者登录为root用户
    • 用ps或者top命令查看kill命令是否已经起作用了
  • killall命令
    • 支持进程名结束进程而不是进程号(pid)
    • 支持通配符,在这个系统因为负载过大变得很慢的时候很方便:$killall http*
    • 注意:root用户身份登录的时候使用killall要避免无用通配符,可能破坏系统文件

4.2 监测磁盘空间

4.2.1 挂载存储媒介

  • mount命令
    • 默认情况下mount命令会输出当前系统上挂载的设备列表
    • mount命令提供四部分信息
      • 媒体的设备文件名
      • 媒体挂载到虚拟目录的挂载点
      • 文件系统的类型
      • 已挂载媒体的访问状态
    • 手动在虚拟目录中挂载设备需要root权限
      • 基本命令:mount -t type device directory
        • type:磁盘被格式化的文件系统的类型
          • Linux可以识别非常多的文件系统类型,如果是和window PC共用这些存储设备,则通常会是以下文件类型
            • vfat:windows长文件系统
              • 大多是U盘和软盘会被格式为vfat文件系统
            • nfts:widows 7…中使用的高级文件系统
            • ISO9660:标准CD-ROM文件系统
              • 数据CD必须使用ISO9660文件系统
          • 后面参数定义了设备文件的位置以及挂载点在虚拟目录中的位置
    • 媒体设备被挂在到虚拟目录后,root用户就有了对该设备的所有访问权限,而其他用户的访问权限被限制,可以通过目录权限指定用户对设备的访问权限
    • 参数
      • -o:允许在挂载文件系统时添加一些以逗号分隔的额外选项
        • 常用选项
          • ro:按只读的挂载
          • rw:按读写的运行挂载
          • user:允许普通用户挂载文件系统
          • check=none:挂载文件系统时不进行文件校验
          • loop:挂载一个文件
            • -o + loop命令完成将一个iso文件直接挂载到Linux虚拟目录中,而不先将它烧到CD里
  • umount命令
    • 从Linux上移除一个可移动的设备时不能直接从系统上移除,应先卸载
    • umount:支持通过设备文件和设备挂载点来指定要卸载的设备,如果有任何程序正在使用设备上的文件,系统不会允许你卸载
    • 格式:umount [ direction | device ]

4.2.2 使用df命令

  • df命令
    • 查看所有已挂载磁盘的使用情况,显示每个有数据的已挂载文件系统
    • 命令输出
      • 设备的设备文件位置
      • 能容纳多少个1024字节大小的块
      • 已用了多少个1024字节大小的块
      • 还有多少个1024字节大小的可用块
      • 已用空间所占用的比例
      • 设备挂载到了哪些挂在电上
    • 常用参数
      • -h:输出中的磁盘空间按人类可读的形式显示

4.2.3 使用du命令

  • du命令
    • 显示某个特定目录的磁盘使用情况
      • 可以用来判断目录是否有超大文件的快速方法
    • 默认情况下,du命令会显示当前目录下的所有的文件、目录和子目录的磁盘情况,以磁盘块为单位来显示每个文件或目录占用了多大的存储
      • 不加参数的默认情况下du的作用不大
    • 常用参数
      • -c:显示所有已列出文件总大小
      • -h:按人类可读的格式输出大小,即用K/M/G
      • -s:显示每个输出参数的总计

4.3 处理数据文件

4.3.1 排列数据

sort命令

4.3 处理数据文件

4.3.1 排列数据

sort命令

  • 用法:sort + filename
  • 作用:用来对数据进行排序
  • 默认情况
    • sort命令按你为这个会话指定的默认语言的排序规则来对文本文件中的数据进行排序
    • sort命令会把数字当做字符而执行标准的字符排序
  • 常用参数
    • -n:把数字识别成数字而不是字符,并且将它们按值排序
    • -M:按月排序
    • -k:指定字段分隔符
    • -t:指定排序的字段
    • -r:结果按降序排列
  • 常用组合参数
    • -k与-t组合使用:按字段分隔的数据进行排序
    • -n与-r:按照数值的降序排序
  • 例如:
//对/etc/passwd文件以:为分隔符,以第三个字段为排序依据
$ sort -t':' -k 3 -n /etc/passwd
root:x:0:...
bin:x:1:...
daemon:x:2...

4.3.2 搜索数据

grep命令

  • 用法:grep [option] pattern [file]
  • 作用:该命令会到输入中或你指定的文件中查找包含匹配指定模式的字符的行,其输出结果就是包含了匹配指定的行
  • 常用参数
    • -v:反向搜索(输出不匹配该模式的行)
    • -n:显示匹配模式的行所在的行号
    • -c:只显示多少行含有匹配的模式
    • -e:指定多于一个匹配模式,得到满足两个模式中任意一个的所有结果
  • 默认情况
    • grep命令用基本的Unix风格正则表达式来匹配模式
    • Unix风格的正则表达式采用特殊字符来定义怎样查找匹配的模式

egrep命令

  • 该命令是grep命令的一个衍生,支持POSIX扩展正则表达式,POSIX扩展正则表达式支持更多的可以用来指定匹配模式的字符

fgrep命令

  • 是另外一个版本,支持将匹配模式指定为换行符分隔的一列固定长度的字符串,这样就可以把一列字符串放到一个文件中,然后在fgrep命令中用那列字符串来在一个大型文件中搜索字符串了

4.3.3 压缩数据

1. bzip2工具

  • bzip2工具是个正在普及相对来说比较新的压缩包,在压缩大型二进制文件领域尤其流行
  • bzip2软件包含以下几个工具
    • bzip2:用来压缩文件
    • bzcat:用来显示压缩的文本文件的内容
    • bunzip2:用来解压压缩后的.bz2文件
    • bzip2recover:用来尝试恢复损毁的压缩文件
    • 默认情况:bzip2命令尝试压缩原始文件,并用压缩后的文件(同样的文件名后加.bz2扩张名)替换它
  • 如果压缩了文件,就无法用cat、more或者less命令开查看文件内容了,这时这时可以用bzcat命令

2. gzip工具

Linux最流行的压缩工具是gzip工具。gzip包是GNU项目发起的视图替代原来Unix的compress工具的压缩工具

  • 这个软件包含有下面的工具
    • gzip:用来压缩文件
    • gzcat:用来查看压缩过的文本文件的内容
    • gunzip:用来解压文件
  • 用法:工具名 + 文件
  • 可以在命令行指定几个文件名甚至用通配符来一次压缩几个文件

3. zip工具

zip工具和流行的Phil Katz为MS-DOS和Windows开发的PKZIP软件兼容的

  • zip工具包含5个
    • zip:创建一个压缩文件,包含指定的文件和目录
    • zipcloak:创建一个加密的压缩文件,包含指定的文件和目录
    • zipnote:从zip文件中提取批注
    • zipsplit:将一个现有zip文件分割成多个更小的固定大小的文件
    • unzip:从压缩过的文件中提取文件和目录
  • 参数:在命令行输入zip,就可以查看zip的所有参数
  • zip工具的强大之处在于,他能够将整个目录下的文件都压缩进单个文件,这让他成为归档整个目录结构的理想工具
  • 注意:当使用zip命令的递归特性时,在压缩过的zip文件中依然存储在相同的目录结构中。在压缩够的zip文件中子目录中的文件依然在同样的子目录下,所以在解压时要分外的小心,unzip命令会在新的位置重新构建整个目录结构。在当前目录下有很多文件和子目录时,这个会有点让人头大

4.3.4 归档数据

Unix和Linux最强大的工具是tar命令

  • 格式:tar function [options] object1 object2 …
  • 常用参数
    • -A:想一个已有tar归档文件追加到另一个已有tar归档文件
    • -c:创建一个新的tar归档文件
    • -d:检查归档文件和文件系统的不同之处,或从已有tar归档文件中删除
    • -r:追加文件到已有tar归档文件末尾
    • -t:列出已有tar归档文件的内容
    • -u:将比tar归档文件中已有的同名文件新的文件追加到该tar归档文件中
    • -x:从已有的tar归档文件中提取文件
  • 能和tar命令一起使用的最常用的选项
    • -C dir :切换到指定的目录
    • -f file:输出结果到文件或设备file
    • -j:将输出重定向给bzip2命里来压缩内容
    • -p:保留所有文件权限
    • -v:在处理文件时显示文件
    • -z:将输出重定向给gzip命令来压缩内容
  • 常用的选项与参数组合
    • -cvf:创建一个归档文件
    • -tf:列出tar文件的内容,但不解压文件
    • -xvf:从tar文件中提取内容,如果tar文件时从一个目录结构创建的,那整个目录结构都会在当前目录中重新创建
  • .tgz结尾的文件解压命令:tar -zxvf filename.tgz

:更多结构化命令

...值-do和done语句之间输入的命令可以是一条或多条标准的bashshell命令forvarinlistdocommandsdone12.1.1读取列表中的值for命令最基本的用法就是遍历for命令自身中定义的一系列值:在最后一次迭 查看详情

基本bashshell命令

以下列举一些常用的bashshell命令,在使用时方便查找。访问Linux系统上的手册:man命令。例:manps   手册是由分页程序来显示的,可以通过点击空格,回车,向上和向下箭头进行翻页查看。浏览文件系统:附一张常见Li... 查看详情

了解基本的bashshell命令(代码片段)

  本节内容主要介绍如何使用bashshell提供的基本命令处理Linux文件和目录;1、启动shell  shell是一个可以交互访问的Linux系统程序,它的运行与普通程序相同,系统启动的shell取决于用户ID的配置;  bash命令常用的参数: ... 查看详情

bashshell命令(代码片段)

3.BashShell命令3.1基础常识1lijunbo@lijunbo-virtual-machine:~/Desktop$用户名@机器名:当前所在目录$等待用户输入~代表当前用户home目录/代表根目录man[命令]:显示该命令的用法Windows盘符,文件目录\\反斜线,Linux一切皆文件,文件目录/正... 查看详情

bashshell相关特性(代码片段)

bash基础特性之:命令历史命令历史:shell进程会在会话中保存此前用户提交执行过的命令;查看历史命令:~]#history定制history的功能,可通过环境变量来实现;HISISIZE:shell进程可保留的命令历史条数;HISIFILE:持久保存命令历史... 查看详情

linux基础之bashshell介绍及基本特性

今天继续讲Linux基础知识,内容是关于bashshell的。分享以下bashshell的相关知识,例如基本特性等。 1.8)bashshell的介绍1.8.1)什么是bashshell  概括地讲就是bashshell是一个命令解释器,与内核进行交互。  bashshell是一个命令... 查看详情

linux学习笔记基本的bashshell命令

...默认的工作目录:用户默认的shell程序 默认情况下,bashshell启动时会自动处理用户主目录下.bashrc文件中的命令。它经常设置各种应用程序中用到的环境变量。 “~”是主目录的缩略表示 PS1:控制默认命令行提示... 查看详情

bashshell常用快捷键

下面列出一些比较常用的bashshell命令以备忘。详细命令请参考:https://github.com/LinuxTOY/linuxtoy.org/blob/master/content/bash-shortcuts.md 查看历史命令:上下键 命令和路径自动补全:打出命令或路径的前面部分,按下Tab键 复制选... 查看详情

什么是bashshell的内建(buildin)命令

1.什么是buildin命令:shell内建命令是指bash(或其它版本)工具集中的命令。一般都会有一个与之同名的系统命令,比如bash中的echo命令与/bin/echo是两个不同的命令,尽管他们行为大体相仿。当在bash中键入一个命令时系统会先看他... 查看详情

4:bashshell命令-步入linux的现代方法

目录​​4.1CLI准备​​​​4.2CLITerminal​​​​4.3搞定Linux命令参数,得心应手使用各类命令——授之于渔先拿ls开张​​​​4.4Linux根目录,它们和Windows有什么区别​​​​4.5Linux根目录解析,fhs权威论文,搞定所有的发行版本... 查看详情

:更多结构化命令

...值-do和done语句之间输入的命令可以是一条或多条标准的bashshell命令forvarinlistdocommandsdone12.1.1读取列表中的值for命令最基本的用法就是遍历for命令自身中定义的一系列值:在最后一次迭代后,$test变量的值会在shell脚本的剩... 查看详情

bashshell命令详解(英文版)

#!/bin/bash###############################################################################SHORTCUTS##############################################################################CTRL+A #movetobegin 查看详情

bashshell实用快捷键

Ctrl-D相当于Del键,即删除光标所在处的字符Ctrl-E相当于End键,即将光标移动到本行末尾Ctrl-K用于删除从光标处开始到结尾处的所有字符Ctrl-L清屏,相当于clear命令Ctrl-R进入历史命令查找状态,然后你输入几个关键字符,就可以找... 查看详情

[linux]基础bashshell命令(代码片段)

[Linux]基础操作命令参考书本《Linux命令行与shell脚本大全》复习和查询用,别的用到了在慢慢补充遍历目录目录路径绝对路径cd/usr/bin相对路径cdDocuments返回主目录cd其他实用命令显示当前目录pwd当前目录的父目录…单点表示当前目... 查看详情

linux学习笔记基本的bashshell命令

Linux文件系统Linux讲文件存储在单个目录结构(虚拟目录)中,虚拟目录包含了安装在PC上的所有存储设备的文件路径。Linux虚拟目录中比较复杂的部分是它如何来协调管理各个存储设备。LinuxPC上安装的第一块硬盘为根驱动器,在... 查看详情

text编辑bashshell的配置文件以启用颜色,别名和新命令行提示等附加功能!(代码片段)

查看详情

9个好玩但有点危险的bashshell命令(代码片段)

前言前段时间重感冒,状态低迷,各项任务进度拖延严重,Blog更新更是非常滞后。一个感悟:生病时人会有种无力感,想要做但真的很容易放弃。所以,身体很重要,要花时间锻炼身体,花时间休... 查看详情

9个好玩但有点危险的bashshell命令(代码片段)

前言前段时间重感冒,状态低迷,各项任务进度拖延严重,Blog更新更是非常滞后。一个感悟:生病时人会有种无力感,想要做但真的很容易放弃。所以,身体很重要,要花时间锻炼身体,花时间休... 查看详情