目录
一、Shell
1、Shell简介
命令行和Shell这两个名词有着相同的概念都称为命令解释器。严格上来说命令行指的是提供用户输入命令的界面,而本身只是接受输入,然后把命令传递给命令解释器。本质上Shell是一个程序,他在用户和操作系统之间提供了一个面向行的可交互接口,用户在命令行中输入命令,运行在后台的Shell把命令转换成指令代码发送给操作系统。Shell提供了很多高级特性,使得用户和操作系统间的交互变得简便和高效。
主流的Linux系统都选择使用Bash解释器来作为命令行终端,它的优势主要在于以下几点:
- 通过上下方向键可以调用历史执行过的Linux命令
- 命令和参数仅需前面几位可以使用Tab键补全
- 拥有强大的批处理脚本能力
- 具有使用的环境变量功能
2、命令行界面格式
当我们运行Linux服务器时会在命令行窗口首先看到以下图片中的内容。
payne:代表当前用户的用户名
elk:代表当前服务器的主机名
~:代表当前所在目录
$:代表命令提示符
常见的Linux命令格式如下所示:
command [options] [arguments]
命令名称 <命令参数> <命令对象>
tips:命令名称、命令参数、命令对象之间用空格分隔。
命令对象通常指的是文件、目录、用户等资源。
命令参数有长格式和短格式之分,两者分别用--与-作为前缀来进行区分,所用的参数需要根据需求情况进行变化,可以灵活搭配各种参数。以下为长短格式差别的实例:
长格式 | ls --verison |
短格式 | ls -v |
二、系统管理基本命令
1、服务器开关机
首先在决定开关机之前必须要确认是否有用户在线使用,由于Linux系统是多用户多任务服务器系统,因此在看不到的屏幕背后可能有相当多的使用者同时在服务器上进行工作,此时如果你使用管理员权限进行强制关机,轻则影响业务系统的运行,重则造成文件系统的损毁。
观察用户在线情况
使用who命令可以观察用户在线情况。
通知在线人员关机信息
在关机前需要给在线的使用者一些时间来结束他们的任务,防止关机造成的数据丢失等问题,这个时候可以使用shutdown命令来达到这一目的。
正确的关机指令
通常我们关闭服务器就使用shutdown和reboot这两个命令。
点击命令相关链接可以跳转到该命令的具体使用实战教学。
2、时间管理
2.1、时间管理的作用
在Linux系统中,准确和一致地管理日期和时间是非常重要的。日期和时间不仅影响日常操作的记录和排序,还影响到系统的安全性、日志分析和时间敏感的任务。日期管理涉及多个方面,包括查看当前日期和时间、设置系统日期和时间、时区管理、定时任务和计划任务、时间同步、时间格式化以及时间戳转换。了解这些管理技巧能够有效地提高工作效率和系统的稳定性。
2.2、时间的分类和区别
在Linux当中时间分为两种分别为:系统时钟和硬件时钟
1、系统时钟(System Clock):由Linux内核通过CPU的工作频率进行的计算的。
2、硬件时钟(RealTime Clock,简称RTC):是存储在主板上CMOS里的时钟,关机后该时钟依然运行,主板的纽扣电池为它供电。对应于嵌入式设备有一个RTC模块。硬件时钟即RTC时钟。
系统时间是基于内存的,断电就会丢失;硬件时间是写在硬件中的bios程序里的。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。因此系统时钟和硬件时钟可以采用异步方式,即系统时间和硬件时间可以不同。从linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但linux中的所有命令都是采用的系统时钟设置。
2.3、硬件时钟命令
hwclock 命令用于设置或读取系统硬件时钟。此时钟通常是计算机主板上的电池供电的时钟。以下将演示集中常用的命令:
查看硬件时钟的时间
hwclock –show
#显示硬件时钟的当前时间。
设置硬件时钟的时间
hwclock –set –date=”2024-7-26 23:59:59″
#将硬件时钟设置为2024年7月31日26时59分59秒。
将系统时间同步到硬件时钟
hwclock –systohc –utc
#将系统时间以UTC时间同步到硬件时钟。
将硬件时钟同步到系统时间
hwclock –hctosys –utc
#将硬件时钟以UTC时间同步到系统时间。
设置硬件时钟的时区
hwclock –adjust –timezone=Asia/Shanghai
#将硬件时钟的时区设置为亚洲/上海。
显示硬件时钟的详细信息
hwclock –debug
#显示硬件时钟的详细信息
2.4、系统时钟命令
date 命令可以用来显示或设定系统的日期与时间,也可以根据指定的格式来输出日期和时间信息,他的使用格式如下:
date [选项] [+指定的格式]
参数 | 意义 |
%t
|
跳格(
Tab
键)
|
%H
|
小时
|
%I
|
小时
|
%M
|
分钟
|
%S
|
秒
|
%j
|
今年中的第几天
|
简单演示一下date命令的用法:
显示当前日期和时间
date
显示指定格式的日期和时间
date +"%Y-%m-%d %H:%M:%S"
设置当前系统的日期和时间
date -s "20240726 10:30:00"
显示目录或文件的最后修改时间
date -r filename
查看今天是今年中的第几天
date "+%j"
3、系统进程管理
3.1、查看进程
ps(process status)命令用于显示当前进程的状态,他的使用格式如下:
ps [选项] [长选项]
使用以下命令可以看到进程状态。
ps -aux
tips:由于日常使用过程中没有中文注释,这里解释说明一下。
USER:进程的所有者
PID:进程ID号
%CPU:运算器占用率
%MEM:内存占用率
VSZ:虚拟内存使用量
RSS:占用的固定内存量
TTY:所在终端
STAT:进程状态
TIME:实际使用CPU的实际
COMMAND:命令名称与参数
其中START状态栏下存在5种常见的进程状态,分别为:运行、中断、不可中断、僵死与停止。
R(运行):进程正在运行或者在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者收到信号时,则脱离该状态。
D(不可终端):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符仍然存在,直到父进程调用wait4()系统函数后进程释放。
T(停止):进程收到停止信号后停止运行。
当我们需要看某个进场是否在运行时,可以使用以下命令进行筛选。
ps -aux | grep mysql
#查看所有在运行的进程,输出关于mysql命令的内容
3.2、动态监视进程
top是一个在 Linux系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。
top - 12:56:16 up 6:34, 2 users, load average: 0.00, 0.00, 0.00
第一行:系统时间、运行时间、登录终端数、系统负载(1分钟、5分钟、15分钟的平均值)
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st第三行:用户空间占用CPU的百分比、内核空间占用CPU的百分比、改变过优先级的进程占用CPU的百分比、空闲CPU百分比、IO等待占用CPU的百分比、占用CPU的百分比、占用CPU的百分比
MiB Mem : 3868.3 total, 760.4 free, 1241.2 used, 2159.1 buff/cache第四行:物理内存总量、空闲内存总量、使用中的内存总量、缓存的内存量
MiB Swap: 3868.0 total, 3868.0 free, 0.0 used. 2627.1 avail Mem
第五行:虚拟内存总量、空闲虚拟内存总量、使用中的虚拟内存总量、缓存的虚拟内存量
3.4、终止进程
kill命令是用于向进程发送信号,通常用来终止某个指定PID服务进程,kill命令可以发送不同的信号给目标进程,来实现不同的操作,如果不指定信号,默认会发送 TERM 信号(15),即终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。
ps [参数] [PID]
kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号15) SIGTERM,这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。
先来查看kill命令有多少种不同的信号,如果想了解各信号分别有什么作用可以跳转到这篇文章查看。>点这里<
平常使用最多的信号为以下这些:
1(SIGHUP):重新启动进程
2(SIGINT):中断进程
9(SIGKILL):强制杀死进程
15(SIGTERM):正常终止进程
正常终止进程
首先我们必须知道需要退出哪些进程,然后通过ps命令来查询进程号信息,如下图所示为查询和退出进程的完整流程,用另外一个窗口可以查看正在执行中的进程被退出后的反馈。
kill 45748
#退出进程号为45748的应用
强制杀死进程
通过查看信号列表得知如果需要强制退出进程则需要用到信号9) SIGKILL
kill -9 47520
三、结语
本篇课程主要是为了后面内容打基础,把常用的Linux命令进行汇总、归纳整理后穿插在各章节教程中,以实践的形式加深学习的印象。后续也会以这样的方式来进行教学并逐步补充Linux命令详解,目前仍然还有很多不足,包括类似文章的内容、编排、格式等等问题仍未处理,后续抽空将会进行逐一调整。