1.1 系统管理类命令

早期的计算机非常巨大,动辄按吨计算,只能放在专门的机房里。为了操作这些机器,人们使用一种叫「终端」的外部设备(Terminal Emulator)。终端只负责输入和显示,不负责计算。后来个人计算机兴起,操作都在一台机器上完成,不再需要额外的终端设备。不过,“终端”的概念在操作系统里保留了下来,变成软件形式的「终端模拟器」,大家还是叫它“终端”。

现在,我们大多通过图形化 shell 界面与计算机交互,比如 macOS 就是这样。

更多 shell 介绍和使用,参见 1.3 shell 脚本编程章节中的内容。本节的基础命令将以 CentOS Linux 8 为例。

tux.png

主机名称

在大多数 Linux 发行版中,都使用hostname命令查看或更改主机名。主机名用于网络中的计算机标识。**修改主机名操作需要重新登陆后才能生效。**修改主机名称方法如下:

[zhangzh@node01 ~]$ hostnamectl
   Static hostname: node01
         Icon name: computer-server
           Chassis: server
        Machine ID: 6c1247f5013f4ea08698f184fd35efb8
           Boot ID: 831d4163ee26402e88b8325ef19b406c
  Operating System: CentOS Linux 8
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-240.el8.x86_64
      Architecture: x86-64
[zhangzh@node01 ~]$ hostnamectl set-hostname newname

<aside> <img src="/icons/info-alternate_lightgray.svg" alt="/icons/info-alternate_lightgray.svg" width="40px" />

在 Linux 系统中,用户账户主要分为两大类:普通用户和超级用户/管理员,后者通常特指 root 用户。root 对系统拥有绝对权力;而普通用户只对个人目录下的文件拥有完全控制权。

直接以管理者身份(root)操作 shell 是危险的,所以计算机用户通常以普通用户登陆。

在示例代码中,[zhangzh@node01 ~]$表示以用户名为zhangzh的用户登陆主机名为node01的主机。当root用户登陆时$符号会变为#符号,以示区分。

</aside>

电源管理

服务器和电脑都是计算机的一种形式,都可以开关机和重启:

重启命令 e.g.

[zhangzh@node01 ~]$ bash          # 仅适用于账户的重启
[zhangzh@node01 ~]# reboot now    # 适用于对服务器的重启

关闭命令 e.g.

[zhangzh@node01 ~]# shutdown now    # 立刻关机
[zhangzh@node01 ~]# shutdown 20:30  # 今晚八点半关机
[zhangzh@node01 ~]# shutdown +20    # 20min后关机

密码设置

passwd命令 设置用户的认证信息,包括用户密码、密码过期时间等。只有 root 用户可以指定用户名称或者修改密码,普通用户只能修改自己的密码。

修改其他用户的密码方式参考本章用户管理一节;找回 root 密码的方法可以参考这篇博客