参考文献

  • 鸟哥的Linux私房菜基础学习篇(第四版)

基础命令

  • 显示日志与时间: date

  • 显示日历: cal

  • 计算器: bc

  • 注销: logout

  • 帮助命令:

    • man <command> : DATE(1)

      代号 说明
      1 用户在Shell环境中可以操作的命令或者可执行文件
      2 系统内核可调用的函数与工具等
      3 一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)
      4 设备文件的说明,通常在/dev下的文件
      5 配置文件或是某些文件的格式
      6 游戏(games)
      7 惯例与协议等.例如Linux文件系统,网络协议,ASCII代码等的说明
      8 系统管理员可使用的管理命令
      9 跟内核有关的文件
    • <command> --help

    • info <command>

    • 说明文档路径: /usr/share/doc/

  • 获取终端支持的语系数据库:

    • echo $LANG

    • locale

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      LANG=en_US.UTF-8
      LC_CTYPE="en_US.UTF-8"
      LC_NUMERIC="en_US.UTF-8"
      LC_TIME="en_US.UTF-8"
      LC_COLLATE="en_US.UTF-8"
      LC_MONETARY="en_US.UTF-8"
      LC_MESSAGES="en_US.UTF-8"
      LC_PAPER="en_US.UTF-8"
      LC_NAME="en_US.UTF-8"
      LC_ADDRESS="en_US.UTF-8"
      LC_TELEPHONE="en_US.UTF-8"
      LC_MEASUREMENT="en_US.UTF-8"
      LC_IDENTIFICATION="en_US.UTF-8"
      LC_ALL=
  • 在后台运行程序

    • 使用&或者bg命令

      1
      updatedb &
    • 前台运行程序fg

    • 在退出后让程序继续运行nohup命令

      1
      nohup java -jar your_jar_file.jar > jar.log 2>&1 &

正确的关机方法

  • 观察系统的使用状态

    • 如果要看目前有谁在线,可以执行who命令;
    • 如果要看网络的联机状态,可以执行netstat -a命令;
    • 如果要看后台执行的程序,可以执行ps -aux命令;
  • 正确的关机命令的使用

    • 将数据同步到硬盘: sync

    • 常用的关机命令: shutdown

      • 关机只有root才有权限使用;

      • shutdown可以完成以下的工作

        • 可以自由选择关机模式: 是要关机或重启均可;
        • 可以设置关机时间: 可以设置成现在立刻关机,也可以设置某个特定的时间才关机
        • 可以设置自定关机信息: 在关机之前,可以将自己设置的信息发送给在线用户;
        • 可以仅发出告警信息
      • /sbin/shutdown [-krhc] [时间] [告警信息]

        参数 说明
        -k 不要真的关机,只是发送告警信息出去
        -r 在将系统的服务停掉之后就重新启动
        -h 将系统的服务停掉后,立即关机
        -c 取消已经在进行的shutdown命令内容
        时间 指定系统关机的时间
      • 示例

        • 立即关机: shutdown -h now
        • 指定时间点进行关机: shutdown -h 20:25
        • 系统再过10分钟关机: shutdown -h +10
        • 立即重启: shutdown -r now
    • 重启,关机: reboot,halt,poweroff

      • sync;sync;sync;reboot
      • halt: 系统停止,屏幕可能会保留系统已停止的信息;
      • poweroff: 系统关机
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 关闭系统(1)
    shutdown -h now
    # 关闭系统(2)
    init 0
    # 关闭系统(3)
    telinit 0
    # 按预定时间关闭系统
    shutdown -h hours:minutes &
    # 取消按预定时间关闭系统
    shutdown -c
    # 重启(1)
    shutdown -r now
    # 重启(2)
    reboot
    # 注销
    logout

systemdSystem V init的区别和作用

System V init 运行级别 systemd目标名称 作用
0 runlevel0.target.poweroff.target 关机
1 runlevel1.target.rescue.target 单用户模式
2 runlevel2.target.multi-user.target 等同于级别3
3 runlevel3.target.multi-user.target 多用户的文本界面
4 runlevel4.target.multi-user.target 等同于级别3
5 runlevel5.target.graphical.target 多用的图形界面
6 runlevel6.target.reboot.target 重启
emergency emergency.target 紧急Shell
  • sudo systemctl set-default multi-user.target

  • 将系统切换为"多用户,无图形"模式,可直接用ln命令把多用户模式目标文件链接到/etc/systemd/system目录

    1
    ln -sf /lib/systemd/multi-user.target /etc/systemd/system/default.target

systemctl管理服务的启动,重启,停止等常用命令

System V init命令(RHEL 6系统) systemctl 命令(RHEL 7系统) 作用
service foo start systemctl start foo.service 启动服务
service foo restart systemctl restart foo.service 重启服务
service foo stop systemctl stop foo.service 停止服务
service foo reload systemctl reload foo.service 重新加载配置文件(不终止服务)
service foo status systemctl status foo.service 查看服务状态
chkconfig foo on systemctl enable foo.service 开机启动
chkconfig foo off systemctl disable foo.service 开机不启动
chkconfig foo systemctl is-enabled foo.service 查看特定服务是否为开机自启动
chkconfig foo --list systemctl list-unit-files --type=service 查看各个级别下服务的启动和禁用情况

VM虚拟机三种网络模式

  • 桥接模式

    相当于在物理主机与虚拟机网卡之间架设一座桥梁,从而可以通过物理主机的网卡访问外网.

  • NAT模式

    Network Address Translation 意即网络地址转换

    让VM虚拟机的网络服务发挥路由的作用,使得通过虚拟机软件模拟的主机可以通过物理主机可以通过物理主机访问外网,在真机中NAT虚拟机网卡的物理网卡是VMnet8

  • 仅主机模式

    仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式对应的物理网卡是VMnet1

Linux开机流程

  1. 加载BIOS硬件信息:

    • 当计算机启动时,首先执行基本输入/输出系统(BIOS),它负责初始化和检查硬件设备,并确定第一个可引导设备.
  2. 读取第一个开机装置的MBR

    • BIOS找到并加载主引导记录(MBR),这是存储在引导设备的第一个扇区中的小程序.MBR包含引导加载程序(boot loader)的信息.
  3. 加载Boot Loader

    • Boot loader(如GRUB,LILO,Syslinux等)被加载,它负责引导操作系统.Boot loader提供了一个菜单,让用户选择要加载的操作系统或内核.
  4. 加载Kernel

    • Boot loader加载Linux内核(kernel)并传递控制权给内核.内核开始解压缩,初始化系统硬件,并尝试加载必需的驱动程序以支持硬件设备.
  5. 执行init程序并获取run-level信息:

    • 内核引导后,执行的第一个用户空间程序是init``.init是系统初始化的父进程,负责启动和管理系统中的各个进程.init从配置文件(通常是/etc/inittab)中读取默认运行级别(run-level)信息.
  6. 执行/etc/rc.d/rc/sysinit档案:

    • init执行系统初始化脚本,通常是/etc/rc.d/rc.sysinit,这个脚本用于初始化系统的基本参数和环境.
  7. 启动核心的外挂模块/etc/modprobe.conf

    • 系统启动时,会加载一些核心模块以支持硬件设备.这些模块的信息通常存储在/etc/modprobe.conf文件中.
  8. 执行run-level的各个批次档(Scripts):

    • 根据运行级别,init执行相应运行级别的脚本,这些脚本位于/etc/rc.d/目录中.这些脚本用于启动和停止系统服务.
  9. 执行/etc/rc.d/rc.local档案:

    • 在运行级别脚本执行完之后,系统会执行/etc/rc.d/rc.local文件,这是一个用户自定义的脚本,可以在其中添加额外的自定义初始化操作.
  10. 执行/bin/login程序并等待用户登录:

    • 最后,init启动/bin/login程序,该程序显示登录提示符,等待用户登录.用户成功登录后,系统提供一个Shell用于交互式命令行.
  11. 登录后以Shell管理主机:

  • 一旦用户登录并系统启动完毕,用户可以通过Shell与系统进行交互,运行命令,管理文件系统,启动进程等.