Jade Dungeon

系统信息

系统相关信息

跑分软件

Linux下的最常用的跑分软件是Phoronix Test Suite,

systemd提供的系统信息

$ cat /etc/os-release
[sudo] password for jade: 
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.6 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

neofetch查看操作系统

┌─(jade@jade-ThinkPad-T440p:pts/2)───────────(~/git-repo/Jade-Misc/fortunes)─┐
└─(17:18:%)── neofetch                                         ──(Sun,Mar01)─┘
            .-/+oossssoo+/-.               jade@jade-ThinkPad-T440p
        `:+ssssssssssssssssss+:`           ------------------------
      -+ssssssssssssssssssyyssss+-         OS: Ubuntu 18.04.4 LTS x86_64
    .ossssssssssssssssssdMMMNysssso.       Host: 20AN002LCD ThinkPad T440p
   /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 4.15.0-91-generic
  +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 6 hours, 20 mins
 /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 3483
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: zsh 5.4.2
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 1366x768, 1920x1080
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   DE: GNOME 3.28.4
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   WM: awesome
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Theme: Adwaita [GTK2/3]
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Icons: Adwaita [GTK2/3]
 /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/    CPU: Intel i5-4200M (4) @ 3.100GHz
  +sssssssssdmydMMMMMMMMddddyssssssss+     GPU: NVIDIA GeForce GT 730M
   /ssssssssssshdmNNNNmyNMMMMhssssss/      GPU: Intel Haswell Mobile
    .ossssssssssssssssssdMMMNysssso.       Memory: 1947MiB / 7656MiB
      -+sssssssssssssssssyyyssss+- 
        `:+ssssssssssssssssss+:`                                   
            .-/+oossssoo+/-. 

uname查看操作系统

uname命令就是Unix Name的简写。显示机器名,操作系统和内核的详细信息。

root@tecmint:~# uname -a
 
Linux tecmint 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:36:13 UTC 2013 i686 i686 i686 GNU/Linux

uname显示内核类别, uname -a显示详细信息:

  1. Linux: 机器的内核名
  2. tecmint: 机器的分支名
  3. 3.8.0-19-generic: 内核发布版本
  4. #30-Ubuntu SMP: 内核版本
  5. i686: 处理器架构
  6. GNU/Linux: 操作系统名

lsb_release查看操作系统

lsb_release命令会打印特殊发行版的信息。如果 lsb_release 还没安装,你可以在基于 Debain 的发行版中用命令 apt 安装,在基于 Red Hat 系统下用 yum 来安装包。

# lsb_release -a
LSB Version:    :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:
Distributor ID: CentOS
Description:    CentOS release 6.3 (Final)
Release:        6.3
Codename:       Final

注意:选项-a,会显示有关版本、ID、详情、发行号和研发代号的全部可用信息。

uptime查看开机时间

你连接到你的Linux服务器时发现一些不寻常或恶意的东西,你会做什么?猜测……不,绝不 !你可以运行uptime来验证当服务器无人值守式到底发生了什么事情。

[avishek@tecmint ~]$ uptime
 
14:37:10 up  4:21,  2 users,  load average: 0.00, 0.00, 0.04

issue

cat /etc/issue

w查看用户与开机时间

是否觉得命令w很滑稽?但是事实上不是的。它是一个命令,尽管只有一个字符长,命令 wuptimewho命令,以前后的顺序组合在一起。

[avishek@tecmint ~]$ w
 
15:05:42 up  4:49,  3 users,  load average: 0.02, 0.01, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
server   tty7     :0               14:06    4:43m  1:42   0.08s pam: gdm-passwo
server   pts/0    :0.0             14:18    0.00s  0.23s  1.65s gnome-terminal
server   pts/1    :0.0             14:47    4:43   0.01s  0.01s bash

日期时间

BIOS时间同步

在Window与linux双系统的机器上,不同系统对BIOS时间的处理上会有差异:

BIOS时间:系统的硬件时间。时间不同步,原因非常简单:

  • windows认为,BIOS时间就是当地时间。所以windows会直接显示BIOS时间。
  • ubuntu认为,BIOS时间应当是UTC时间(格林尼治标准时间)。 所以ubuntu会将BIOS时间加上8小时后再显示出来(在中国)。

所有的操作系统(不论是ubuntu还是windows)在启动后都会更新系统时间。流程如下:

  1. 电脑开机,读取BIOS时间并显示。(windows直接显示,ubuntu加8后再显示)
  2. 联网后,获取当地时间并显示。
  3. 更新BIOS时间。

联网后大家获取到的时间都是当地时间,这没问题。 但ubuntu和windows在更新BIOS时间时,做法不同。windows获取到当地时间后, 直接把BIOS时间设为当地时间;而ubuntu把BIOS时间设为UTC时间。

比如现在是北京时间12点,UTC时间就是12-8=4点,ubuntu就会把BIOS时间设为4点。

进入Linux,在终端里输入一条指令,就可以验证上面的分析:

timedatectl status 

这个指令用来查看系统时间状态。如果您的显示如下:

$ timedatectl status
                      Local time: Mon 2022-07-04 23:11:48 CST
                  Universal time: Mon 2022-07-04 15:11:48 UTC
                        RTC time: Mon 2022-07-04 15:11:48
                       Time zone: Asia/Shanghai (CST, +0800)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
  • 第一行,Local time=12点,是ubuntu联网获取到的当地时间。
  • 第三行,RTC time=4点,是电脑的BIOS时间。可以看到,ubuntu把当地时间减去8小时, 得到了UTC时间并赋给了BIOS。
  • 最后一行,RTC in local TZ=no,这句话代表系统时间和BIOS时间不同步, 即BIOS存储的是UTC时间,而系统时间是当地时间。

修改的方法为直接在ubuntu终端中输入:

timedatectl set-local-rtc 1

这句话的作用是让ubuntu将系统时间和BIOS时间同步。现在,ubuntu和windows一样, 都认为BIOS时间就是当地时间,联网更新时,也是直接将BIOS时间设为当地时间。 这样就没问题了。

现在再输入imedatectl status查看系统时间状态。

cal查看日历

cal
cal 02 1995

date设置时间

取得时间:

root@tecmint:~# date
 
Fri May 17 14:13:29 IST 2013

设置时间:

root@tecmint:~# date --set='14 may 2013 13:57'
 
Mon May 13 13:57:00 IST 2013

格式化输出时间:

$ date +%y-%m-%d_%H:%M:%S
21-10-08_14:54:34

语言与地区

在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。 locale的命名规则为<语言>_<地区>.<字符集编码>,如:

zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。

在locale环境中,有一组变量,代表国际化环境中的不同设置:

  • LC_COLLATE:定义该环境的排序和比较规则
  • LC_CTYPE:用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码, 字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
  • LC_MONETARY:货币格式
  • LC_NUMERIC:非货币的数字显示格式
  • LC_TIME:时间和日期格式
  • LC_MESSAGES:提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似, 但如果该参数一旦设置,则LC_MESSAGES参数就会失效。 LANGUAGE参数可同时设置多种语言信息, 如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
  • LANGLC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。 类似于LC_ALL
  • LC_ALL:它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。 注意,LANG的值不受该宏影响。

一个例子:

设置前,使用默认locale:

debian:~# locale
LANG="POSIX"
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX」
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

设置后,使用zh_CN.GBK中文locale:

debian:~# export LC_ALL=zh_CN.GBK
debian:~# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=zh_CN.GBK

C是系统默认的locale,POSIXC的别名。所以当我们新安装完一个系统时, 默认的locale就是C或POSIX。

安装新的local

在Debian中安装locales的方法如下:

  1. 通过apt-get install locales命令安装locales包
  2. 安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale, 可以多选。最后指定一个系统默认的locale。 这样系统就会帮你自动生成相应的locale和配置好系统的locale。
  3. 增加新的locale也很简单,用dpkp-reconfigure locales重新配置locale即可。
  4. 我们也可手动增加locale,只要把新的locale增加到/etc/locale.gen文件中, 再运行locale-gen命令即可生成新的 locale。 再通过设置上面介绍的LC_*变量就可设置系统的locale了。

下面是一个locale.gen文件的样例。

# This file lists locales that you wish to have built. You can find a list
# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
# combinations are possible, but may not be well tested. If you change
# this file, you need to rerun locale-gen.
#
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8

要在Shell中正常显示系统的中文提示信息和支持中文输入。LANG和shell的编码配置需一致, 并安装有中文locale。如:

LANG和 shell的编码都配置成zh_CN.utf8,并安装有zh_CN.utf8这个locale。 如果shell和LANG配置不同,则中文显示乱码;如果LANG里设置的locale没有安装, 则不能显示系统的中文提示信息,只会显示英文提示信息。

设置用户的语言

语言乱码:.bashrc加入export LC_ALL=zh_CN.UTF-8