34.free,vmstat和swap命令
free功能说明:显示内存状态。free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法&#xff1a; free [-bkmotV][-s <间隔秒数>]
参数&#xff1a;
-b 以Byte为单位显示内存使用情况。-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。-t 显示内存总和列。
-V 显示版本信息。
vmstat报告虚拟内存统计信息。vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由vmstat命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息&#xff08;所有的处理器中&#xff09;都计算出以百分比表示的平均值&#xff0c;或者计算其总和。
vmstat [ -f ] [ -i ] [ -s ] [ -I ] [ -t ] [ -v ] [ PhysicalVolume... ] [ Interval [ Count ] ]
swap提供调页空间管理界面。swap 命令提供特征显示、调页空间增加和调页空间除去功能。
语法&#xff1a;swap [ -adevice] | [ -ddevice ] | [ -s ] | [ -l ]。
35.什么是设备&#xff1f;
除了cpu和主存外&#xff0c;计算机系统的每个部分都可以看作一个外围设备&#xff0c;由三部分构成&#xff1a;存储介质&#xff0c;驱动设置和控制电路
36.设备管理的目标是什么&#xff1f;设备的独立性&#xff1f;
目标&#xff1a;(1)选择和分配i/o设备以便进行数据传输操作。
(2)控制i/o设备和cpu&#xff08;内存&#xff09;之间的数据交换。
(3)为用户提供一个友好的透明接口&#xff0c;把用户和设备特性分开&#xff0c;使得用户在编制应用程序时不必涉及具体设备。
(4)提高设备和设备之间&#xff0c;cpu和设备之间以及进程与进程之间的并行操作程度&#xff0c;以便操作系统获得最佳效率。
独立性&#xff1a;
Linux操作系统将所有的外围设备都作为文件来处理&#xff0c;应用程序独立于使用的具体设备。
37.linux下设备的分类
Linux设备分为字符设备&#xff0c;块设备&#xff0c;网络设备和杂项设备四种
38.linux 设备的命名主要有哪些&#xff1f;
在Linux系统中&#xff0c;每个设备都被当成一个文件来对待。举例来说&#xff0c;IDE接口的硬盘的文件名即为/dev/hd[a-d]&#xff0c;其中&#xff0c;括号内的字母为a-d当中的任意一个&#xff0c;也即有/dev/hda,/dev/hdb,/dev/hdc, 及/dev/hdd这四个文件的意思。
这种中括号【】形式的表示法在后面的章节当中会使用得很频繁&#xff0c;请特别留意。另外先提出来强调一下&#xff0c;在Linux这个系统当中&#xff0c;几乎所有的硬件设备文件都在/dev这个目录内&#xff0c;所以你会看到/dev/hda,/dev/fd0等的文件名。
那么打印机与软盘呢&#xff1f;分别是/dev/lp0,/dev/fd0。好了&#xff0c;其他的接口设备呢&#xff1f;下面列出几个常见的设备与其在Linux当中的文件名&#xff0c;如下表所示。
设备 | 设备在Linux内的文件名 |
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
U盘 | /dev/sd[a-p]&#xff08;与SATA相同&#xff09; |
软驱 | /dev/fd[0-1] |
打印机 | 25针:/dev/lp[0-2] |
鼠标 | USB:/dev/usb/mouse[0-15] |
当前CDROM/DVDROM | /dev/cdrom |
当前鼠标 | /dev/mouse |
磁带机 | IDE:/dev/ht0 |
需要特别留意的是硬盘&#xff08;IDE、SCSI、USB都一样&#xff09;&#xff0c;每个磁盘驱动器的磁盘分区&#xff08;partition&#xff09;不同时&#xff0c;其磁盘文件名还会改变。
39.设备管理要做哪些工作&#xff08;分配、控制、驱动、回收&#xff09;&#xff1f;
设备管理要负责设备的分配&#xff0c;控制&#xff0c;驱动和回收四个方面的工作。
40.设备管理中&#xff0c;设备驱动程序的功能、处理方式及特点
设备驱动程序的主要功能&#xff1a;
1、将接收到的抽象要求转换为具体要求。
2、检查用户I/O请求的合法性&#xff0c;了解I/O设备的状态&#xff0c;传递有关参数&#xff0c;设置设备的工作方式。
3、发出I/O命令&#xff0c;启动分配到的I/O设备&#xff0c;完成指定的I/O操作。
4、及时响应由控制器或通道发来的中断请求&#xff0c;并根据其中断类型调用相应的中断处理程序进行处理。
5、对于设置有通道的计算机系统&#xff0c;驱动程序还应能够根据用户的I/O请求&#xff0c;自动地构成通道程序。
设备驱动程序的处理方式&#xff1a;
1、为每一类设备设置一个进程&#xff0c;它专门执行这类设备的I/O操作。
2、在整个系统中设置一个I/O进程&#xff0c;专门负责对系统中所有各类设备的I/O操作
3、不设置专门的设备处理进程&#xff0c;而是只为各类设备设置相应的设备处理程序&#xff08;模
块&#xff09;&#xff0c;供用户进程或系统进程调用。
设备驱动程序的特点&#xff1a;
1、驱动程序主要是在请求I/O的进程与设备控制器之间的一个通信程序。
2、驱动程序与I/O设备的特性紧密相关。
3、驱动程序与I/O控制方式紧密相关。
4、由于驱动程序与硬件紧密相关&#xff0c;因而其中的一部分程序必须用汇编语言书写。
41.列举7条与设备管理相关的命令并简述其功能
1 stty
[语法]:stty [-a] [-g] [选项]
[说明]:本命令设置终端&#xff0c;无参数时报告终端设置&#xff0c;本命令功能十分强大&#xff0c;应谨
慎使用&#xff0c;下面仅介绍部分常用功能
• -a 显示当前终端所有设置
• -g 以能作为 stty 命令参数的方式显示终端设置以下是终端常用设置&#xff0c;
在设置前加-表示清除设置:
1&#xff0e;控制方式,ispeed 0 110 300 600 1200 1800 2400 4800 9600
19200 38400&#xff0c;本命令设置终端输入波特率&#xff0c;若为 0 则使用缺省波
特率。例如 stty ispeed 9600 ospeed 0 110 300 600 12001800
2400 4800 9600 19200 38400 本命令设置终端输出波特率
2&#xff0e;输入方式
ingbrk(-ignbrk) 忽略(不忽略)中断(BREAK)
brkint(-brkint) 设置(清除)信号INTR 为中断信号
inlcr(-inlcr) 将换行转换(不转换)成回车
icrnl( -icrnl) 将回车转换(不转换)成换行
igncr(-ignrc) 忽略(不忽略)回车
iuclc( -iuclc) 将大写字母转换(不转换)成小写字母
3&#xff0e;输出方式
olcut(-olcut) 将小写字母转换(不转换)为大写字母
onlcr(-onlcr) 输出时将换行符转换(不转换)为回车换行
ocrnl(-ocrnl) 输出时将回车符转换(不转换)为换行符
4&#xff0e;本地方式
echo (-echo) 设置(清除)回显
stwrap(-stwrap) 截断(不截断)大于79 个字符的行
echoctl(-echoctr) 将控制键回显为^
2 tty
[语法]:tty
[说明]:显示出终端的设备名
[例子]:tty
3 lp
[语法]:lp 文件...
[说明]:将文件送打印机打印
[例子]:lp myfile 将文件 myfile 送打印机输出
4 lpstat
[语法]:lpstat [选项] [打印任务号]
[说明]:显示打印机状态&#xff0c;选项的意义如下&#xff1a;
-a [打印机表]显示打印机表中指定的打印机可否接收打印请求
-c [打印机类名]显示打印机种类及在该打印机种类下的成员
-d 显示系统预设的打印机
-p [打印机表]显示打印机表中打印机状态
-r 显示lp 请求程序表( lp request scheduler)
-s 打印系统统计表-t 打印所有状态信息-u [用户]显示由用户发出的打印请求
-v [打印机名表]显示每个打印机名称&#xff0c;是对应于该打印机设备文件的路
径名
[例子]:lpstat -t 打印所有状态信息
5 cancel
[语法]:
cancel 打印任务号 cancel 打印机名 cancel -u 用户名[打印机]
[说明]:本命令可按打印机名&#xff0c;打印任务&#xff0c;用户来取消打印任务
[例子]:cancel -u mary 取消用户 mary 的所有打印请求
6 enable
[语法]:enable 打印机表
[说明]:本命令可激活一个或多个打印机
7 disable
[语法]:disable [-cw] 打印机表
[说明]:使一个或多个打印机不能打印
-c 立即取消正在打印的打印请求 -w 等正在打印的内容打完后&#xff0c;才禁止打印机
8 sync
[语法]:sync
[说明]:将磁盘缓冲区内容写回磁盘
9 mount
[语法]:mount [-r] 设备目录
[说明]:将设备安装到目录下 -r 以只读方式安装
10 umount
[语法]:umount 设备
[说明]:将已安装的文件系统卸下
11 tar
[语法]:
tar -c[vwfbL] [设备][块] 文件... tar -r[vwfbL] [设备][块] 文件...
tar -t[vfL] [设备][文件...] tar -u[vwfbL] [设备][块] 文件...
tar -x[lmovwfL] [设备] [文件...]
[说明]:将多个文件归档&#xff0c;命令中各参数的意义为&#xff1a;
r 附加方式归档 x 抽取文件 t 显示文件
u 附加方式归档&#xff0c;同时删除旧版文件 c 建立新档案文件
v 显示所处理的文件名 w 处理文件前&#xff0c;要求用户确认 f 文件名使用指定文件名作为档案文件
bn 每次读写n 块&#xff0c;缺省值为 1&#xff0c;最大值为20m 将新的文件修改时间设为获取时的时间
o 获取出来的文件以下达 tar 指令的UID 和 GID 存储
12 df
[语法]:df [-t] [文件系统]
[说明]:显示剩余 i 节点和块数&#xff0c;使用 -t 选项&#xff0c;还显示总块数和 i 节点数
[例子]:df -t
13 du
[语法]:du [-ars] [目录]
[说明]:显示磁盘空间专用情况
• -r 提供无法打开的文件信息
• -s 仅显示指定目录所占空间的总和
-a 显示文件大小及目录总空间&#xff0c;其后可根文件名作参数
42.linux 日志管理有什么功能&#xff1f;
在任何操作系统中&#xff0c;日志系统对于系统安全来说都是非常重要的&#xff0c;它记录了系统每天发生的各种各样的事件&#xff0c;包括哪些用户曾经或正在使用系统&#xff0c;可以通过日志来检查系统和应用程序发生错误的原因。日志还能在系统受到******后&#xff0c;记录下***者留下的痕迹&#xff0c;通过这些痕迹&#xff0c;系统管理员可以发现******的手段及特点&#xff0c;从而能够进行相应的处理&#xff0c;为抵御下一次***做好准备。日志主要的功能有审计和监测&#xff0c;另外&#xff0c;利用日志还可以实时监测系统状态&#xff0c;监测和追踪侵入者等。
43.怎样启动和重启日志管理进程&#xff1f;
1. 启动syslog日志进程
启动syslog日志守护进程syslogd的命令格式如下&#xff1a;
/sbin/syslogd [选项]
该命令常用的参数及含义如下表所示。
参数 | 含义 |
-a socket | 添加日志监听的用户定义的套接口 |
-d | 使用调试模式 |
-f conf_file | 指定syslogd的配置文件 |
-h | 记录远程主机返回的日志 |
-l hostlist | 使用指定的简单主机名记录日志的主机名域 |
-p socket | 使用指定的套接口启动syslogd进程 |
-r | 接收并记录网络日志 |
2. 重启syslogd日志守护进程
可以在终端提示符下输入如下的命令&#xff1a;
[root&#64;myhost root]# service syslogdrestart或
[root&#64;myhost root]# kill -HUP &#96;cat/var/run/syslogd.pid&#96;
说明&#xff1a;在该命令中&#xff0c;/var/run/syslogd.pid文件存放了当前syslogd守护进程的pid&#xff0c;整个命令的执行步骤是&#xff0c;先使用cat /var/run/syslogd.pid获取当前系统的syslogd守护进程的pid&#xff0c;然后使用kill命令传递-HUP信号给该pid指定的进程&#xff0c;对其进行重启操作。
44.怎样清空日志文件&#xff1f;
随着系统的运行时间不断延长&#xff0c;日志文件也会越来越大&#xff0c;从而消耗大量磁盘空间。如果通过先删除已有的日志文件&#xff0c;再重建同名日志文件的方法来清空日志&#xff0c;就需要先停止创建日志文件的服务进程&#xff0c;从而可能导致服务进程出错。此时&#xff0c;可以通过echo命令在不必停止服务进程的情况下清空日志文件。具体的方法是在终端提示符选下输入如下命令&#xff1a;
[root&#64;myhost root]# echo “” > log_file
其中log_file代表需要清空的日志文件。例如&#xff0c;要清空日志文件/var/log/messages&#xff0c;可以使用如下命令&#xff1a;
[root&#64;myhost root]# echo “” > /var/log/messages
45.配置Linux日志文件的格式是什么&#xff1f;
syslog有两个重要的文件&#xff0c;一个是守护进程/sbin/syslogd&#xff0c;另一个是syslogd的配置文件/etc/ /syslog.conf。通常多数的syslog信息被写到/var/log目录下的日志文件message.*中。一个典型的syslog.conf记录包括生成日志的程序名称、日志的设备名、日志的优先等级以及一段文本信息。
1. 启动syslog日志进程
2. 重启syslogd日志守护进程
3.syslogd的主配置文件
系统日志syslog的主配置文件是/etc/syslog.conf。syslog记录的内容及其记录存放的日志文件由该文件指定&#xff0c;可以通过修改syslog.conf文件的方法来配置syslogd。该文件的基本语法格式如下&#xff1a;
设备(facility).优先级(priority)动作
1&#xff09;日志设备facility
日志设备facility表示日志消息的来源&#xff0c;指明了发出消息的设备或程序&#xff0c;见下表&#xff1a;
设备 | 说明 |
kern | 内核日志 |
uucp | uucp系统日志 |
user | 用户程序日志 |
news | 新闻组服务日志 |
邮件系统日志 | |
daemon | 系统守护进程日志 |
syslog | syslog守护进程日志 |
auth | 安全管理日志 |
lpr | 打印服务日志 |
cron | cron守护进程日志 |
authpriv | 私有授权系统日志 |
ftp | ftp守护进程日志 |
local0~local7 | 本地日志 |
2&#xff09;优先级priority
日志优先级priority表明日志消息的紧急程度。如果在syslog.conf文件中的一行出现多对“设备.优先级”&#xff0c;各项之间使用分号隔开。syslog日志系统中常用的日志优先级如下表所示&#xff0c;其中紧急程度由上到下逐级递减。
日志优先级 | 说明 |
emerge | 发生严重事件&#xff0c;并可能导致系统崩溃 |
alert | 严重错误&#xff0c;将导致程序关闭&#xff0c;并可能影响其他程序 |
crit | 错误消息&#xff0c;可能导致程序关闭 |
err | 程序中存在错误 |
warning | 程序中存在潜在问题的警告 |
notice | 程序运行中出现了不正常的现象&#xff0c;需要检查 |
info | 关于程序当前状态的报告信息 |
debug | 编程人员或测试人员使用的调试信息 |
其中紧急程度遵循向上匹配的原则。例如&#xff0c;“err”优先级表示所有高于或等于err等级的日志消息都将被处理&#xff0c;即所处理的日志消息包括“err”、“crit”、“alert”和“emerge”等级的消息。如果只希望精确匹配某个确定的紧急程序&#xff0c;而不使用向上匹配原则&#xff0c;则需要使用等号进行设定。例如&#xff0c;“kern.&#61;alert”表示只对内核产生的alert日志信息进行处理。
在syslog.conf文件的配置行中&#xff0c;也支持通配符“*”和“none”&#xff0c;其中“*”表示匹配全部&#xff0c;“none”表示全部忽略。例如&#xff0c;记录守护进程产生的所有日志消息可以使用“daemon.*”&#xff0c;而忽略内核产生的所有日志消息则可以使用“kern.none”。
3&#xff09;动作
syslog.conf文件配置行中的动作&#xff0c;用于设定syslogd如何处理对应的日志消息。处理的办法&#xff0c;可以设定将日志信息写入文件或显示到终端设备上&#xff0c;或者通过邮件直接发送给指定的用户&#xff0c;或者发送到另一台远程主机的syslog系统。
4. 测试syslog.conf文件
syslog.conf文件修改后&#xff0c;使用者按照syslog.conf文件中的设置&#xff0c;使用logger命令发出指定类型的日志消息&#xff0c;检测配置文件是否正确。logger命令的格式如下&#xff1a;
logger [选项] msg
该命令常用的参数及含义如下表所示。
参数 | 含义 |
-p fac.pr | logger命令发送消息时使用fac.pri指定的设备和优先级 |
-f conf_file | logger命令使用conf_file指定的syslogd配置文件 |
-i | 记录发送消息的logger程序的pid |
-s | 将logger程序发送的日志消息送往标准错误输出 |
-u socket | 将logger程序发送的日志投递到指定的socket套接口 |
-d | 使用UDP协议传输日志消息 |
5. 清空日志文件
6. 查看日志
/var/log/boot.log文件记录了与启动和终止守护进程相关的信息。/var/log/messages文件记录了系统除邮件、新闻组、本地安全认证、守护进程以及cron程序日志以外几乎全部的日志信息。这些日志文件时使用文本方式记录的&#xff0c;所以可以使用查看文本文件的工具来查看&#xff0c;如cat、more、tail和less等。
46.简介linux shell 的概念&#xff0c;功能&#xff0c;在操作系统中的层次关系及类型
在Linux系统中&#xff0c;shell是操作系统的外壳&#xff0c;为用户提供使用操作系统的接口&#xff0c;它是命令语言、命令解释程序和程序设计语言的统称。shell是用户和操作系统之间的一个接口。shell是一个命令解释器。shell还是一个解释型的程序设计语言。
Shell在操作系统中的层次关系如下图&#xff1a;
47.bash有哪些特别的功能&#xff0c;分别有哪些命令要完成&#xff1f;
1&#xff09;交互式处理
2&#xff09;命令补全功能
3&#xff09;查阅历史记录—history命令
系统提供的history命令可以列出完整的系统在该用户登录时执行过的所有命令&#xff0c;并以命令执行的先后顺序列出记录的号码。如果要查看最近执行的命令&#xff0c;则可以使用“history n”命令&#xff0c;其中&#xff0c;n表示需要查看的最近执行的命令的条数。
4&#xff09;别名&#xff08;alias&#xff09;功能
Linux中的别名功能是指提供给用户使用自定义的简单字符串&#xff0c;来替换复杂的命令选项&#xff0c;或是替换连续多个命令的连续组合的功能&#xff0c;从而使得用户可以自定义符合自己习惯的操作命令。
如果希望查看当前Linux系统中使用的别名命令&#xff0c;可以直接输入“alias”命令。如果需要取消特定的别名命令&#xff0c;可以使用unalias命令。
5&#xff09;后台处理
要在RedHat Linux 9中要执行后台程序&#xff0c;只要在输入命令的时候&#xff0c;在命令后面加上“&”符号。系统就会开始以后台的方式执行该命令&#xff0c;屏幕将显示该后台运行程序的进程PID&#xff0c;然后shell将回到命令提示符状态&#xff0c;以等待用户的下一个命令的输入。
当前某个任务在前台运行之后&#xff0c;就无法使用“&”将它投入后台运行&#xff0c;但是可以先使用“Ctrl&#43;z”组合键暂停该程序&#xff0c;然后在命令提示符下输入“bg”命令&#xff0c;即可将该任务投入后台执行。如果要查看目前系统中正在运行的后台程序&#xff0c;可以使用jobs命令。
6&#xff09;输入/输出重定向
一般情况下&#xff0c;程序的输入对象都是标准输入&#xff0c;输出是标准输出。在Linux中提供了输入&#xff08;<和<<&#xff09;和输出&#xff08;>和>>&#xff09;的重新定向功能&#xff0c;它可以将程序的输入和输出由标准设备重定向到文件、打印机或其他装置&#xff08;/dev/null&#xff09;。
这里重定向&#xff08;>和<&#xff09;是改写重定向&#xff0c;就是会删除原来的文件&#xff0c;而重定向&#xff08;>>和<<&#xff09;是追加重定向&#xff0c;就是新的内容将被添加到文件原来内容的后面。
7&#xff09;管道
48.Linux 的bash的管道重定向功能如何实现&#xff0c;有什么功能&#xff1f;
管道功能可以将多个命令集成到一起&#xff0c;以执行一个较为复杂的工作&#xff0c;除了第一个和最后一个命令之外&#xff0c;每个命令的输入都是前一个命令的输出&#xff0c;而每个命令的输出也将成为下一个命令的输入。例如&#xff1a;
[root&#64;myhost root]# ls –l /usr/bin | grep lib|less
以上的命令执行的过程是先列出/usr/bin目录的所有内容&#xff0c;然后通过管道&#xff08;|&#xff09;将ls命令的结果传给grep命令&#xff0c;当成其标准输入&#xff0c;接着grep会由此输入中查找含有lib的字符串文件&#xff0c;最后将搜索的结果再通过管道传给less命令。
49.linux shell 有哪些特殊的符号&#xff1f;
在Linux下有一些符号会被shell特殊对待&#xff0c;这些符号可以用来指定特殊的范围或功能&#xff0c;除了前面介绍的外&#xff0c;例如>、>>、<、<<、|和!&#xff0c;还有以下可以在shell中使用的特殊字符。
1&#xff09;通配符&#xff08;*和?&#xff09;
“*”和“?”是Linux系统中最常用的两个通配符&#xff0c;在字符串查找的时候&#xff0c;通配符可以代替任意的字符。其中“?”可以代替一个任意字符&#xff0c;“*”可以代替任意多个字符。
2&#xff09;命令取代符&#xff08;&#96;&#xff09;
命令取代符“&#96;”在Esc键下方&#xff0c;与“~”符号在同一个键上。两个“&#96;”符号包围的命令&#xff0c;是该命令行中首先被执行的命令。例如&#xff0c;“echo &#96;date&#96;”命令&#xff0c;首先执行date命令&#xff0c;然后使用echo来显示date命令的结果&#xff0c;而不是显示字符串date
3&#xff09;命令分隔符&#xff08;;&#xff09;
如果需要执行一连串的命令&#xff0c;可以一次输入这些命令&#xff0c;而在命令间使用“;”分隔&#xff0c;Linux的shell会一次解释并执行这些命令。
4&#xff09;注释符&#xff08;#&#xff09;
注释符“#”通常使用在Linux的shell脚本程序或应用程序的配置文件中&#xff0c;使用“#”开头的行为注释行&#xff0c;shell在解释该脚本程序的时候不会执行该行。对于有经验的程序员来说&#xff0c;注释行的使用可以增加程序的可读性&#xff0c;也可以使日后的维护更加简单。
50.怎么创建和执行shell 程序&#xff1f;
分三步&#xff1a;
(1)利用文本编辑器创建脚本内容。对于后缀名&#xff0c;可有可无&#xff0c;建议有.sh后缀名。
(2)使用“chmod”命令设置脚本的可执行属性&#xff1a;sudo chmod &#43;x filename.sh
(3)执行脚本&#xff1a;./filename.sh