《鸟哥的Linux私房菜 基础篇》下

认识系统服务(daemons)

  • 早期Centos 7.X之前
    • /etc/init.d/daemon start|stop|restart|status
    • chkconfig deamon on|off
    • chkconfig --list deamon
  • Centos 7.X后
    • systemctl status|start|stop|restart|enable|disable|is-active|is-enable deamon
  • systemd 文件目录
    • /usr/lib/systemd/system/ 启动脚本设定
    • /run/systemd/system/ 执行过程中产生的服务脚本
    • /etc/systemd/system/ 根据系统需求建立的执行脚本
  • service类型配置文件,三个部分Unit;Service;Install
所属部分 参数 说明
Unit Description 服务名称
Unit Documentation 资料查询
Unit After 前置服务
Unit Before 与After相反
Unit Requires 服务依赖
Unit Wants 与Requires相反
Unit Conflicts 冲突服务,不能同时运行
Service Type 启动方式,常用simple
Service EnvironmentFile 指定环境配置文件
Service ExecStart 执行命令或脚本
Service ExecStop stop服务时执行的指令
Service ExecReload reload服务时执行的指令
Service Restart 重启的方式
Service RemainAfterExit
Service TimeoutSec 多久进入强制结束
Service KillMode
Service RestartSec 重启需要sleep多久
Install WantedBy 大多是multi-user.target
Install Also enable时,也enable这些服务
Install Alias enable的别名

认识和分析登录档

  • 登录文件可以记录系统在什么时间、哪个主机、哪个服务、出现了什么讯息等信息
  • 登录文件的重要性
    • 解决系统方面的错误
    • 解决网路服务的问题
    • 过往时间记录簿
  • 常见的登录文件:
    • /var/log/boot.log 开机时候系统核心侦测和启动硬件,以及各种核心支持的功能启用日志
    • /var/log/cron crontab的日志
    • /var/log/dmesg 系统在开机的时候核心侦测过程所产生的各项信息
    • /var/log/lastlog 记录系统上面所有账号最近一次登入系统的相关信息
    • /var/log/maillog或/var/log/mail/* 邮件相关日志
    • /var/log/message 系统发生的错误日志几乎都会被记录在这个文件中
    • /var/log/secure 涉及到输入账号密码的软件在登录时都会被记录在此文件中
    • /var/log/wtmp,/var/log/faillog 记录正确登入系统者的账户信息与错误登入时所使用的的账户信息
    • /var/log/httpd/,/var/log/samba/ 不同网路服务使用自己的登录文件来记录日志
  • centos7使用systemd提供的journalctl日志管理
  • 登录文件内容的一般格式,包含以下重要数据:
    • 事件发生的日期与时间
    • 发生此事件的主机名
    • 启动此事件的服务名称或指令与函式名称
    • 该讯息的实际数据内容

开机流程、模块管理与Loader

  • linux系统启动过程
    1. 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备
    2. 读取并执行第一个启动设备内MBR的boot loader(即是grub,spfdisk等程序)
    3. 依据boot loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序
    4. 在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息
    5. init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络、时区等)
    6. init执行run-level的各个服务的启动(script方式)
    7. init执行/etc/rc.d/rc.local文件
    8. init执行终端机模拟程序mingetty来启动login进程,最后就等待用户登录

基础系统设定与备份策略

  • nmcli connection modify [args] 设置系统网络状态
  • hostnamectl [set-hostname {hostname}] 修改主机名
  • timedatectl [args] 修改日期事件
  • ntpdate tock.stdtime.gov.tw 手动网络校时

软件安装:原始码与Tarball

  • Linux系统上真正认识的可执行文件其实是二进制文件,用file指令可以查看文件是否为二进制文件,如果是binary且可以执行,会显示执行文件类型(exectable相关),以及是否使用动态函式库(shared libs),如果是一般的script,显示textexecutables
  • 函氏库:类似子程序的角色,可以被呼叫来执行的一段功能函数
  • Tarball是一个软件包,通常包含源代码文件,侦测程序文件(configure或config),本软件一些说明文件(readme)
  • make命令的好处
    • 简化编译指令
    • 编译完成之后,修改某个源码文件,make仅会针对修改的文件进行编译
    • 最后可以依照依赖性来更新执行文件
  • makefile语法
    • 代表注释

    • tab需要在命令行的第一个字符
    • target后用:隔开
    • 变量与shell相同,赋值两边可以有空格,左边不可以有tab
    • 习惯上,变量名全大写
    • 使用变量需要用${}或$()
    • 变量优先级,指令中 > makefile文件 > shell环境变量
    • $@代表当前的target
  • Tarball安装流程
    • 下载安装包并解压
    • 根据INSTALL或README安装一些依赖
    • 建立makefile,./configure
    • 执行make指令,在这之前可以执行以下make clean,一般会提供,清除之前编译的文件
    • 执行make install,将上一个步骤所编译完成的文件安装到预定目录
  • linux函式库分为动态和静态
  • 静态特点:扩展名为.a,编译时直接整合到目标程序,编译完成可独立执行
  • 动态特点:扩展名为.so,编译时在目标程序中只有一个pointer,编译完成需要在有函式库文件的环境中执行
  • 倾向于使用动态函式库编译,升级方便,不用重新编译
  • 通过ldconfig和/etc/ld.so.conf可以将动态函式库加载到内存

软件安装RPM,SRPM与YUM

  • rpm是Red Hat公司研发的软件管理工具,将要安装的软件先编译过,并打包成RPM机制的安装文件
  • srpm就是source rpm,rpm文件中含有源码
  • rpm安装包名称通常包括:软件名称、版本信息、操作硬件平台
  • 操作硬件平台包括i386,i586,x86_64,最常见的是x86_64,noarch表示没有平台限制

X window设定介绍

Linux核心编译与管理

原文地址:https://www.cnblogs.com/prelude1214/p/14089980.html