第十一章 :认识和学习bash

1.shell功能

只是提供用户操作系统一个接口通过shell(命令行模式)来操作这些应用程序,让这些应用程序调用内核运行所需的工作

2.Liunx默认shell

/bin/bashlinux默认shell

3.环境变量命令
1.echo : 显示你的环境变量
在这里插入图片描述
设置自己环境变量
在这里插入图片描述
2.环境变量功能env查看环境变量常见环境变量说明
在这里插入图片描述

第十二章 :正则表达式文件格式处理

1.grep的基础用法
在这里插入图片描述
2.sed指令用法
在这里插入图片描述
在这里插入图片描述

第十三章 :学习shell script

1.第一个script编写执行
在这里插入图片描述
例子:
假设你写的程序文件名是/home/dmtsai/shell.sh好了,怎么执行这个文件呢?按照下面的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第十四章 :Linux账号管理与ACL权限设定

/etc/shadow文件

Su使用

su总结一下用法是这样的:

 若要完整切换到新使用者环境,必须要使用suusername 』或『 su -l username 』, 才会连同 PATH/USER/MAIL 等变量都转成新用户环境

 如果仅想要执行一次 root指令可以利用su – –c指令串” 』的方式处理

使用 root 切换成为任何使用者时,并与需要输入用户密码

虽然使用 su 很方便啦,与过缺点是,当我的主机是多人共管的环境时,如果大家都要使用 su 来切换成为 root身份,那么与就每个人都得要知道 root 的密码,这样密码太多人知道可能会流出去, 很不妥当呢!怎办?透过 sudo处理即可

sudo

相对su 需要了解新切换用户密码 (常常是需要 root 的密码), sudo执行则仅需要自己的密码即可! 甚至可以设定不需要密码即可执行 sudo 呢!由于 sudo 可以让你以其他用户身份执行指令 (通常是使用 root身份执行指令),因此并非所有人都能够执行 sudo , 而是仅有规范到/etc/sudoers 内的用户能够执行 sudo 这个指令

第十五章 :磁盘配额(Quota)与进阶文件系统管理

第十六章 :例行工作

第十七章 :程序管理

ps命令

ps :将某个时间点的程序运作情况获取下来

 仅观察自己的 bash 相关程序ps –l

系统整体程序运作是非常多的,但如果使用 ps -l 则仅列出与你的操作环境 (bash) 有关的程序而已,

亦即最上层的父程序会是你自己的 bash没有延伸到 init 这支程序去!我们就来观察看看

F:代表这个程序旗标 (process flags),说明这个程序的总结权限常见号码有:

o 若为 4 表示此程序的权限root
o 若为 1 则表示此子程序仅进行复制(fork)而没有实际执行(exec)。
S:代表这个程序的状态 (STAT),主要的状态有:
o R (Running):该程序正在运作中;
o S (Sleep):开程序目前正在睡眠状态(idle),但可以唤醒(signal)。
o D :不可唤醒的睡眠状态,通常这支程序可能等待 I/O 的情况(ex>打印)
o T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态;
o Z (Zombie):僵尸状态,程序已经终止但即无法被移除内存外。
UID/PID/PPID:代表『此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码
C:代表 CPU 使用率单位百分比
PRI/NI:Priority/Nice 的缩写,代表此程序被 CPU 所执行的优先级数值越小代表该程序越快被 CPU 执行。
ADDR/SZ/WCHAN:都与内存有关,ADDR 是 kernel function,指出该程序在内存的哪个部分,如果是个 running 的程序,一般就会显示『 – 』 / SZ 代表此程序用掉多少内存 / WCHAN表示目前程序是否运作中,同样的, 若为 – 表示正在运作中。
 TTY:登入者的终端位置,若为进程登录则使用动态终端接口 (pts/n);
 TIME:使用掉的 CPU 时间,注意,是此程序实际花费 CPU 运作的时间,而不是系统时间
 CMD:就是 command 的缩写,造成此程序的触发程序之指令为何。
所以你看到的 ps -l 输出讯息中,他说明的是:『bash 的程序属于 UID 为 0 的使用者,状态为睡眠(sleep), 之所以为睡眠因为他触发了 ps (状态为 run) 之故。此程序的 PID 为 13639,优先执行顺序为 75 , 下达 bash 所取得的终端接口为 pts/1 ,运作状态为等待 (wait) 。』这样已经够清楚了吧?

 观察系统所有程序: ps aux

你会变现 ps -l 与 ps aux 显示项目并不相同!在 ps aux 显示项目中,各字段的意义为:

USER:该 process 属于那个使用者账号的?
PID :该 process 的程序标识符
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process占用物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接主机的程序。
STAT:该程序目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)
START:该 process触发启动时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令为何?
一般来说,ps aux 会依照 PID 的顺序来排序显示,我们还是以 13639 那个 PID 那行来说明!该行的意

义为『 root 执行的 bash PID 为 13639,占用了 0.2% 的内存容量百分比,状态为休眠 (S),该程序启

动的时间为 11:44 , 且取得的终端环境为 pts/1 。』与 ps aux 看到其实同一个程序啦!

top动态观察程序的变化

相对于 ps 是获取一个时间点的程序状态, top可以持续侦测程序运作的状态!使用方式如下

top 也是个挺不错的程序观察工具!但不同于 ps 是静态结果输出, top 这个程序可以持续监测整个系统的程序工作状态。 在默认的情况下,每次更新程序资源的时间为 5 秒,不过,可以使用 –d 来进行修改。 top 主要分为两个画面,上面的画面为整个系统的资源使用状态,基本上总共有六行,显示内容依序是:

第一行(top…):这一行显示的信息分别为:
o 目前的时间,亦即是 17:03:09 那个项目

o 开机到目前为止所经过的时间,亦即是 up 7days, 16:16 那个项目

o 已经登入系统的用户人数,亦即是 1 user项目

o 系统在 1, 5, 15 分钟平均工作负载。我们在第十六章课到的 batch 工作方式负载小于 0.8 就是这个负载啰!代表的是 1, 5, 15 分钟,系统平均负责运作几个程序(工作)的意思。 越小代表系统越闲置,若高于 1 得要注意你的系统程序是否太过繁复了!

第二行(Tasks…):显示的是目前程序的总量与个别程序在什么状态(running, sleeping, stopped, zombie)。 比较需要注意的是最后的 zombie 那个数值,如果不是 0 !好好看看到底是那个process 变成僵尸了吧?
第三行(Cpus…):显示的是 CPU 的整体负载每个项目可使用 ? 需要特别注意的是 %wa ,那个项目代表的是 I/O wait, 通常你的系统会变慢都是 I/O 产生的问题比较大!因此这里得要注意这个项目耗用 CPU 的资源喔! 另外,如果是多核心设备,可以按下数字键『1』来切换成与同 CPU 的负载率。
第四行与第五行:表示目前的物理内存与虚拟内存 (Mem/Swap) 的使用情况。 再次重申,要注意的是 swap 的使用量要尽量的少!如果 swap 被用的很大量,表示系统的物理内存实在与足!
第六行:这个是当在 top 程序当中输入指令时,显示状态的地方。
至于 top 下半部分的画面,则是每个 process 使用的资源情况。比较需要注意的是:

 PID :每个 process 的 ID 啦!

 USER:该 process 所属的使用者;

 PR :Priority简写,程序的优先执行顺序,越小越早被执行;

 NI :Nice简写,与 Priority 有关,也是越小越早被执行;

 %CPU:CPU 的使用率

 %MEM:内存的使用率

 TIME+:CPU 使用时间的累加;

top 预设使用 CPU 使用率 (%CPU) 作为排序的重点,如果你想要使用内存使用率排序,则可以按下『M』, 若要回复则按下『P』即可。如果想要离开 top 则按下『 q 』吧!如果你想要将 top 的结果输出成为档案时, 可以这样做:

系统资源的观察
除了系统的程序之外,我们还必须就系统的一些资源进行检查啊!举例来说,我们使用 top 可以看到很多系统的资源

 (1) free :观察内存使用情况

仔细看看,我的系统当中有 725MB 左右的物理内存,我的 swap 有 1GB 左右, 那我使用 free –m 以 MBytes 来显示时,就会出现上面的信息。Mem一行显示的是物理内存的量, Swap 则是虚拟内存的量。 total 是总量, used 是已被使用的量, free 则是剩余可用的量。 后面的shared/buffers/cached 则是在已被使用的量当中用来作为缓冲及快取的量。

仔细的看到范例一的输出喔,我们的 Linux 测试主机是很平凡的,根本没有什么工作, 但是,我的物内存是几乎被用光光的情况呢!不过,至少有 132MB 用在缓冲记忆 (buffers) 工作, 287MB 则用在快取 (cached) 工作,也就是说,系统是『很有效率的将所有的内存用光光』, 目的是为了让系统的存取效能加速啦!

很多服友都会问到这个问题『我的系统明明很轻松,为何内存会被用光光?』现在瞭了吧? 被用光是正常的!而需要注意的反而是 swap 的量。一般来说, swap 最好不要被使用,尤其 swap 最好不要被使用超过 20% 以上, 如果您变现 swap 的用量超过 20% ,那举,最好还是买物理内存来插吧! 因为, Swap 的效能跟物理内存实在差很多,而系统会使用到 swap绝对是因为物理内存与足了才会这样做的!

Tips:

Linux 系统为了要加速系统效能,所以会将最常使用到的或者是最近使用到的档案数据快取 (cache) 下来, 这样未来系统要使用该档案时,就直接由内存中搜寻取出,而不需要重新读取硬盘速度上面当然就加快了! 因此,物理内存被用光是正常的!

uname:查阅系统与核心相关信息

uptime:观察系统启动时间与工作负载
这个指令很单纯呢!就是显示出目前系统已经开机多久的时间,以及 1, 5, 15 分钟平均负载就是了。还记得 top 吧?没错啦!这个 uptime 可以显示出 top 画面的最上面一行

netstat追踪网络插槽文件
这个 netstat 也是挺好玩的,其实这个指令比较常被用在网络监控方面,与过,在程序管理方面也是需要了解的啦! 这个指令的执行如下所示基本上, netstat输出分为两大部分,分别是网络与系统自己的程序相关部分

 dmesg分析核心产生的讯息
系统在开机时候核心会去侦测系统的硬件,你的某些硬件到底有没有被捉到,那就与这个时候的侦测有关。 但是这些侦测的过程要与是没有显示在屏幕上,就是很飞快的在屏幕上一闪而逝!能不能把核心侦测的讯息捉出来瞧瞧? 可以的,那就使用 dmesg 吧!

所有核心侦测的讯息,不管是开机时候还是系统运作过程中,反正只要是核心产生的讯息,都会被记录到内存中的某个保护区段。 dmesg 这个指令就能够将该区段的讯息读出来的!因为讯息实在太多了,所以执行时可以加入这个管线指令『 | more 』来使画面暂停!

由范例二就知道我这部主机的硬盘的格式什么了吧!没错啦!还可以查阅能与能找到网络卡喔!网络卡的代号是 eth ,所以,直接输入 dmesg | grep -i eth

 (6) vmstat :侦测系统资源变化

如果你想要动态的了解一下系统资源的运作,那举这个 vmstat 确实可以玩一玩!vmstat 可以侦测『 CPU / 内存 / 磁盘输入输出状态 』等等,如果你想要了解一部繁忙的系统到底是哪个环节最累人, 可以使用 vmstat 分析看看。底下是常见选项参数说明:

/proc/* 代表的意义
其实,我们之前提到的所谓的程序都是在内存当中嘛!而内存当中的数据又都是写入到 /proc/* 这个目录下的,所以啰,我们当然可以直接观察 /proc 这个目录当中的档案啊!

查询开启档案或已执行程序开启之档案

 (1) fuser:藉由档案(或文件系统)找出正在使用该档案的程序

有的时候我想要知道我的程序到底在这次启动过程中开启多少档案,可以利用 fuser 来观察啦! 举例来说,你如果卸除时变现系统通知:『 device is busy 』,那表示这个文件系统正在忙碌中, 表示有某支程序有利用到该文件系统啦!那举你就可以利用 fuser追踪啰!fuser 语法有点像这样:

(2)  lsof :列出被程序所开启的档案文件名

相对于 fuser 是由档案或者装置去找出使用该档案或装置的程序,反过来说, 如何查出某个程序开启或者使用的档案与装置呢?呼呼!那就是使用 lsof 啰~

(3) pidof :找出某支正在执行的程序的 PID

学习资料资料

原文地址:https://blog.csdn.net/Kobe51920/article/details/130401126

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39026.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注