Linux系统状态管理_笔记

一、Linux系统状态管理
1. 查看系统信息
1)日期时间
  • date命令
    • 用途: 查看当前系统日期和时间。
    • 格式: date 命令可以输出当前时间,但格式可能不符合习惯,可以通过指定格式来输出,例如 date +"%Y-%m-%d %H:%M:%S"。
    • 常用格式符:
      • %Y: 四位数的年份
      • %m: 两位数的月份
      • %d: 两位数的日期
      • %H: 两位数的小时(24小时制)
      • %M: 两位数的分钟
      • %S: 两位数的秒
    • 例子:
      • date +"%Y-%m-%d" 输出如 2009-12-07
      • date -d "1 day ago" +"%Y-%m-%d" 输出昨天的日期
  • cal命令
    • 用途: 查看日历。
    • 默认行为: 不带参数时,显示当前月份的日历。
    • 参数:
      • -y: 显示整年的日历
      • -m: 显示星期一为一周的第一天(默认是星期日)
    • 例子:
      • cal 显示当前月日历
      • cal -y 显示当前年份的日历
      • cal -m 显示以星期一为开始的当前月日历
  • uptime命令
    • 用途: 查看系统已经运行的时间(开机时间)以及当前登录的用户数等信息。
    • 输出内容: 包括系统运行时间、登录用户数、系统负载平均值等。
    • 例子:
      • uptime 输出如 05:09:44 up 4:57, 3 users, load average: 0.02, 0.03
2)系统版本
  • cat /etc/redhat-release命令
    • 用途: 查看Red Hat系列Linux发行版本的具体信息。
    • 输出内容: 发行版本的具体版本号,例如 CentOS Linux release 7.3.1611 (Core)。
  • uname -a命令
    • 用途: 显示系统详细信息,包括内核版本等。
    • 输出内容: 内核名称、主机名、内核版本、发行版本等信息。
    • 重要性: 内核版本信息对于判断系统是否存在漏洞、是否需要打补丁等安全相关操作至关重要。
  • cat /proc/version命令
    • 用途: 查看Linux内核版本及相关信息。
    • 输出内容: 包括内核版本、编译器版本等详细信息。
    • 补充信息: 除了内核版本,还可能包含GCC版本等编译环境信息。
2. 进程管理
1)程序、进程、服务
  • 程序的概念 
    • 程序定义: 程序是一种静态的描述,是代码的集合或操作系统指令的集合,如软件、应用等。
    • 例子: Linux服务器上的my secret程序、Windows电脑上的迅雷程序、微信程序等。
  • 进程的概念 
    • 进程定义: 进程是程序运行起来的状态,具有生命周期,占用系统资源,拥有自己的内存空间地址。
    • 与程序的区别: 程序是静态的,进程是动态的。一个程序可以运行出多个进程。
    • 例子: 在Windows中通过bat脚本运行多个微信实例。
  • 服务的概念 
    • 服务定义: 服务是注册在操作系统中的程序,具有特定的启动类型(自动、手动、禁用等)。
    • 注册好处: 服务可以设置为开机自启,方便管理。
    • 例子: Windows中的QQ音乐服务、MySQL数据库服务、PHP study服务等。
  • 服务与进程的区别 
    • 区别核心: 服务是注册在操作系统中的,而进程是程序运行起来的状态。
    • 管理方式: 服务可以通过服务名来管理,如启动、停止等,而进程则通过进程ID(PID)来管理。
  • 服务的管理 
    • 启动服务: 在Windows中,可以使用net start 服务名命令来启动服务,但通常需要管理员权限。
    • 查看服务状态: 通过服务管理界面或命令行工具查看服务的状态、启动类型等。
    • 修改启动类型: 可以在服务属性中修改服务的启动类型,如设置为自动、手动或禁用。
  • Linux中的服务查看 
    • 查看命令: 使用systemctl list-unit-files命令查看Linux中的所有服务。
    • 过滤查看: 通过管道符|和grep命令过滤查看特定服务,如systemctl list-unit-files | grep mysql。
    • 服务文件: 服务的相关信息通常存储在/etc/services文件中,可以通过查看该文件了解服务的端口等信息。
    • 示例: 查看MySQL服务,发现其已注册并设置为开机自启,同时可以在/etc/services文件中查看其使用的端口(如3306端口)。
2)运行程序
  • 前台运行 
    • 前台运行: 在Linux系统中,前台运行程序意味着程序会在当前终端中执行,并且会输出日志信息。如果按下Ctrl+C,程序会被终止,日志输出也会中断。
    • 示例: 启动Redis服务器时,如果直接执行启动命令,Redis服务器会在前台运行,日志信息会不断滚动显示。
  • 后台运行 
    • 后台运行: 为了避免前台运行带来的问题(如日志滚动和程序易被中断),可以使用后台运行方式。在命令前加上nohup,并在命令末尾加上&符号,即可实现后台运行。
    • 日志输出: 后台运行的程序日志会输出到nohup.out文件中,而不是显示在终端上。
    • 示例: 使用nohup ./redis-server &命令启动Redis服务器,Redis服务器会在后台运行,日志信息会写入nohup.out文件。
    • 查看日志: 可以使用tail -f nohup.out命令实时查看后台运行程序的日志输出。
    • 注意: 如果后台运行的程序没有正常输出日志,可能是因为程序被其他因素(如代理软件)影响,需要检查并排除干扰因素。
3)查看进程
  • top命令 
    • top命令概述
    • top命令输出内容
    • top命令交互操作
      • h: 显示帮助画面,给出一些简短的命令总结说明。
      • k: 终止一个进程。
      • i: 忽略闲置和僵死进程,这是一个开关式命令。
      • q: 退出程序。
      • r: 重新安排一个进程的优先级别。
      • S: 切换到累计模式。
      • s: 改变两次刷新之间的延迟时间(单位为s),输入0值则系统将不断刷新,默认值是5s。
      • f或F: 从当前显示中添加或者删除项目,或者改变显示项目的顺序。
      • 1: 切换显示平均负载和启动时间信息。
      • m: 切换显示内存信息。
      • t: 切换显示进程和CPU状态信息。
      • c: 切换显示命令名称和完整命令行。
      • M: 根据驻留内存大小进行排序。
      • P: 根据CPU使用百分比大小进行排序。
      • T: 根据时间/累计时间进行排序。
      • w: 将当前设置写入~/.toprc文件中。
    • top命令选项
      • -b: 以批处理模式操作。
      • -c: 显示完整的命令。
      • -d: 设置屏幕刷新间隔时间。
      • -I: 忽略失效过程。
      • -s: 保密模式。
      • -S: 累积模式。
      • -i<时间>: 设置间隔时间。
      • -u<用户名>: 指定用户名。
      • -p<进程号>: 指定进程。
      • -n<次数>: 循环显示的次数。
    • ps命令简介
    • top与ps命令的比较
      • top命令:
        • 实时动态查看系统整体运行情况。
        • 提供互动式界面,可通过热键进行管理。
      • ps命令:
        • 查看当前系统中的进程状态。
        • 提供更多选项以筛选和显示特定信息。
      • 共同点: 两者都可以用于查看系统中的进程信息。
      • 不同点: top命令更注重实时性和互动性,而ps命令则提供更丰富的筛选和显示选项。
  • ps命令 
    • ps命令简介 
      • ps命令的功能与选项
    • ps命令常用选项 
      • ps命令概述
        • ps命令: ps命令用于显示当前系统中的进程状态,包括进程ID、CPU使用率、内存占用等信息。
      • ps命令常用选项详解
        • -t<终端机编号>: 指定终端机编号,并列出属于该终端机的程序的状况。
        • -T: 显示现行终端机下的所有程序。
        • -u<用户识别码> 或 -U<用户识别码>: 列出属于该用户的程序的状况,可使用用户名称或用户识别码来指定。
        • v: 采用虚拟内存的格式显示程序状况。
        • -V 或 --version: 显示ps命令的版本信息。
        • -w 或 -w: 采用宽阔的格式来显示程序状况。
        • x: 显示所有程序,不以终端机来区分。
        • X: 采用日式的Linux 1386登陆格式显示程序状况。
        • --cols<每列字符数> 或 --columns<每列字符数>: 设置每列的最大字符数。
        • --lines<显示列数> 或 -rows<显示列数>: 设置显示画面的列数。
        • --pid<程序识别码>: 根据程序识别码来显示特定程序的状况。
        • 还有其他众多选项,如:--deselect、forest、--headers、--no-headers等,可根据具体需求查阅ps命令的官方文档或帮助信息。
      • ps命令使用注意事项
        • 选项众多: ps命令的选项非常丰富,使用时需要根据实际需求选择合适的选项组合。
        • 格式差异: 不同的选项组合可能会产生不同的输出格式,需要注意区分和理解。
        • 系统差异: 不同的Linux系统可能对ps命令的支持略有差异,使用时需要参考对应系统的文档或帮助信息。
      • 实战应用
        • 在实际使用中,可以根据需要组合使用ps命令的选项,例如:ps -aux 可以显示所有用户的所有进程,并按照用户格式显示程序状况;ps -ef 可以显示所有进程,并以完整的格式显示信息。
        • 通过ps命令,可以方便地监控系统的进程状态,及时发现并处理异常进程,保证系统的稳定运行。
    • ps命令实例讲解 
      • ps命令常用选项
      • 常用组合与技巧
        • ps命令与grep组合: 常用于查找特定进程,如ps -ef | grep ssh。
        • 排序与筛选: 利用管道符|与sort、grep等命令组合,可以对进程信息进行排序和筛选,如按CPU或内存使用量排序。
        • 重定义标签: 使用-o选项可以自定义输出格式,如重定义标签名称或顺序。
      • 实例演示
        • 实例一: ps aux,显示所有用户的所有进程及其详细信息。
        • 实例二: ps aux | sort -rnk 4,按内存使用量对进程进行降序排序,便于查找内存占用较高的进程。
        • 实例三: ps -f --forest -C nginx,以树状图显示nginx进程的层次关系,便于理解进程间的依赖关系。
      • 注意事项
        • 选项众多: ps命令的选项非常丰富,可以根据需要组合使用,但也要注意选项间的兼容性和正确性。
        • 输出格式: 根据需求选择合适的输出格式和标签,以便更直观地查看和分析进程信息。
        • 系统差异: 不同的Linux系统可能对ps命令的支持略有差异,使用时需参考具体系统的文档或帮助信息。
    • ps aux命令 
      • ps aux命令介绍
      • ps命令的详细用法
        • ps aux: 查看所有用户的所有进程,并显示详细的进程信息,如PID、名称、CPU占用率等。
        • 排序功能:
          • ps aux | sort -rnk 4: 按内存资源的使用量对进程进行排序。
          • ps aux | sort -nk 3: 按CPU资源的使用量对进程进行排序。
        • 其他常用选项:
          • ps -A: 显示所有进程信息。
          • ps -u root: 显示指定用户(如root)的进程信息。
          • ps -ef: 显示所有进程信息,连同命令行。
          • ps -ef | grep ssh: 查找特定进程(如ssh)。
          • ps -C nginx: 通过名字或命令搜索进程。
        • 组合用法: 可以与其他命令组合使用,如与grep组合查找特定进程,或与sort组合对进程进行排序。
      • ps命令的进阶用法
        • 层次关系显示:
          • ps -f --forest -c nginx: 用树的风格显示进程的层次关系,对于理解进程间的依赖关系很有帮助。
        • 重定义标签:
          • ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm: 可以重定义输出标签,使输出信息更加直观。
        • 获取服务名称:
          • ps -o command -p <PID> | sed -n 2p: 通过进程ID获取服务名称,对于系统管理和故障排查很有用。
      • 常用命令总结
        • 常用组合:
          • ps aux 和 ps ef 是两个非常常用的命令组合,分别用于查看所有用户的所有进程和显示所有进程信息连同命令行。
        • 记忆点:
          • 可以将“aux”记忆为“all users' extended information”,帮助记忆该命令组合的功能。
    • ps命令详解 
      • ps ef命令
        • 命令作用: ps ef 命令用于显示所有进程的信息,包括命令行。
        • 常用选项:
          • -e: 显示所有进程。
          • -f: 显示更完整的信息,通常与 -e 一起使用。
        • 其他常用选项:
          • -a: 显示所有进程,包括其他用户的进程。
          • -u: 选择有效的用户id或是用户名。
          • -x: 显示没有控制终端的进程,同时显示各个命令的具体路径。
      • ps命令输出解析
      • ps aux命令
      • 进程查看实例
        • 实例操作:
          • 使用 ps ef | grep java 查看Java进程是否启动。
          • 使用 service mysqld start 启动MySQL服务,再通过 ps ef | grep mysql 确认MySQL进程是否启动。
      • 进程树(ps tree)
      • 进程管理注意事项
        • 注意事项:
          • 直接杀死进程可能无法彻底终止,因为可能有副进程在支撑。
          • 恶意程序或病毒常利用副进程机制,需找到根源并斩草除根。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值