专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

linux查看操作系统方法,linux怎么查看操作系统

来源:小易整编  作者:小易  发布时间:2023-02-24 04:57
摘要:linux查看操作系统方法,linux怎么查看操作系统作为一名程序员,有时需要关注自己的进程运行在什么样的软硬件环境里,比如几核cpu、固态硬盘还是机械硬盘、内核版本多少、Centos还是Ubuntu?查看硬件信息Linux里面提供了一系列...

linux查看操作系统方法,linux怎么查看操作系统

作为一名程序员,有时需要关注自己的进程运行在什么样的软硬件环境里,比如几核cpu、固态硬盘还是机械硬盘、内核版本多少、Centos还是Ubuntu?

linux查看操作系统方法,linux怎么查看操作系统

查看硬件信息

Linux里面提供了一系列命令用来查看系统硬件信息,如lscpu、lsblk、lshw等,如下:

查看cpu信息

lscpu命令可以查看cpu信息,如下:

$ lscpu Architecture:                    x86_64                                        #指令集架构,pc一般是x86_64,手机一般是arm64 CPU op-mode(s):                  32-bit, 64-bit                                #支持32位、64位运行模式 Byte Order:                      Little Endian                                 #小端字节序 Address sizes:                   39 bits physical, 48 bits virtual             # 39位物理地址,48位虚拟地址 CPU(s):                          8                                             # 8个逻辑核 On-line CPU(s) list:             0-7                                           # 8核都在线 Thread(s) per core:              2                                             # 每个核两个硬件线程(Intel超线程技术) Core(s) per socket:              4                                             # 每个cpu有4个核 Socket(s):                       1                                             # 1个cpu Vendor ID:                       GenuineIntel                                  # intel的cpu CPU family:                      6                                             # cpu产品系列 Model:                           142                                           # cpu产品型号 Model name:                      Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz      # cpu产品型号 Stepping:                        10                                            # 此型号的每10代 CPU MHz:                         1991.998                                      # cpu主频 BogoMIPS:                        3983.99 Hypervisor vendor:               Microsoft                                     # 虚拟化厂商Microsoft,因为我是在WSL中执行的lscpu Virtualization type:             full                                          # 虚拟化类型,full表示全虚拟化 L1d cache:                       128 KiB                                       # 一级数据缓存大小 L1i cache:                       128 KiB                                       # 一级指令缓存大小 L2 cache:                        1 MiB                                         # 二级缓存大小 L3 cache:                        8 MiB                                         # 三级缓存大小

可以看到,lscpu能查看cpu的各种详细信息,这里面需要重点理解的是逻辑核与物理核的概念,如果一个机器上有2个4核8线程的CPU,那么它的逻辑核数是16,物理核数是8,而从操作系统的视角来看,它会认为当前机器有16个CPU。

另外,如果lscpu不可用,也可以使用/proc/cpuinfo查看,如下:

$ cat /proc/cpuinfo processor       : 0 vendor_id       : GenuineIntel cpu family      : 6 model           : 142 model name      : Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz stepping        : 10 microcode       : 0xffffffff cpu MHz         : 1991.998 cache size      : 8192 KB physical id     : 0 siblings        : 8 core id         : 0 cpu cores       : 4 ...

查看磁盘信息

使用lsblk可以很容易的看到机器上的磁盘与分区情况,如下:

$ lsblk -p /dev/sda      8:0    0   280G  0 disk └─/dev/sda1   8:1    0   280G  0 part /

可以看到当前机器只有一个磁盘,大小是280G,它被虚拟成了/dev/sda文件,而磁盘/dev/sda只有1个分区,它被虚拟成了/dev/sda1文件,这里又印证了Unix"一切皆文件"的设计哲学,硬盘与分区都被虚拟成了文件!

相信你也发现了一些Linux磁盘命名的规律,如果有3个磁盘,命名就是sda、sdb、sdc,如果sda有3个分区,分区名就是sda1、sda2、sda3,以此类推。

fdisk也可以用来查看磁盘信息,如下:

$ sudo fdisk -l Disk /dev/sda: 280 GiB, 300647710720 bytes, 587202560 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xd36fd4dd Device     Boot Start       End   Sectors  Size Id Type /dev/sda1  *     2048 587202559 587200512  280G 83 Linux Disk /dev/sda1: 279.102 GiB, 300646662144 bytes, 587200512 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes

还有一个常见场景是查看硬盘类型,比如:

  • 当前磁盘是机械硬盘还是SSD?
  • 如果是SSD的话,它是SATA SSD还是PCIe SSD?

对于这3种不同类型的磁盘,它们之间的性能差异巨大,区分方法如下:

$ lsblk -o name,size,type,rota /dev/sda NAME    SIZE TYPE ROTA sda     280G disk    1  # ROTA代表是否旋转磁盘,所以1代表机械硬盘,0代表固态硬盘 └─sda1  280G part    1 # 执行下面两条命令,就可以区分是SATA SSD还是PCIe SSD了,一般来说,PCIe SSD性能较好 $ lspci -vmm|grep -iE 'SATA|AHCI' $ lspci -vmm|grep -iE 'PCIe|NVMe'

另外,下面这些命令也可以查看磁盘相关信息,一般需要自行安装,如下:

# 查看scsi磁盘设备 $ lsscsi # 查看磁盘详细信息 $ sudo smartctl --info /dev/sda $ sudo hdparm -I /dev/sda

查看网卡信息

使用ethtool可以查看网卡的一些硬件参数,如下:

# 查看网卡参数,会输出好多看不懂的内容,应用层开发一般关注speed/duplex/link就可以了 $ sudo ethtool eth0 Settings for eth0:    Supported ports: [ TP ]    Supported pause frame use: No    Supports auto-negotiation: Yes    Advertised pause frame use: No    Advertised auto-negotiation: Yes    Advertised FEC modes: Not reported    Speed: 1000Mb/s                        # 网卡速率    Duplex: Full                           # 全双工网卡    Port: Twisted Pair    PHYAD: 0    Transceiver: internal    Auto-negotiation: on    MDI-X: off (auto)    Supports Wake-on: d    Wake-on: d    Link detected: yes                     # 网卡连了网线 # 查看网卡数据包统计信息,关注drop/error之类的指标,这代表网卡层是否有丢包或错误产生 $ sudo ethtool -S eth0 # 查看网卡RingBuffer大小 $ sudo ethtool -g eth0 # 设置网卡RingBuffer大小 $ sudo ethtool -G eth0 rx 2048 # 使eth0网卡灯闪烁,网络运维可能会经常使用这个,因为机房网线错综复杂很难分清谁是谁的 $ sudo ethtool -p eth0 # 查看网卡驱动 $ sudo ethtool -i eth0 # 查看网卡支持的特性 $ sudo ethtool -k eth0 # 查看与调整网卡队列数Combined $ sudo ethtool -l eth0 $ sudo ethtool -L eth0 combined 8

查看其它硬件信息

除了cpu、内存、磁盘、网卡外,机器上还有一些其它硬件,如总线、主板、usb等,开发人员一般关注较少,这里只简单介绍一下,混个眼熟即可。

# 查看usb设备 $ lsusb # 查看pci设备,一般外围设备都是通过pci总线连接进来的,所以这个命令一般可以看到很多设备,包括磁盘与网卡等 # 输出中Kernel driver in use表示设备驱动,Kernel modules表示内核模块 $ lspci -v # 通过这个命令,机器中所有的硬件信息,都能查看到 $ lshw

查看系统信息

做为后端开发,一般我们比较关注的系统信息有内核版本、发行版、底层c库版本等等,这些在Linux下也非常容易查看,如下:

查看内核版本

$ uname -r 5.4.0-74-generic # 通过/proc/version也能看到内核版本 $ cat /proc/version Linux version 5.4.0-74-generic (buildd@lgw01-amd64-038) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) 83-Ubuntu SMP Sat May 8 02:35:39 UTC 2021

可以看到,当前系统Linux内核版本是5.4.0-74-generic。

另外,内核从源码编译时可以配置一些选项,内核启动时也可以配置一些选项,如要检查这些选项,可如下查看:

# /boot/config-*文件保存了内核的编译配置 # 如下查看内核编译时是否开启了KPROBES(内核追踪)功能 $ cat /boot/config-`uname -r` | grep -i KPROBES CONFIG_KPROBES=y # 查看内核启动参数 $ cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-5.4.0-74-generic root=UUID=fce5376b-dcc2-4550-a72a-e7cf0f5354a4 ro find_pseed=/pseed.cfg auto noprompt priority=critical locale=en_US text nomodeset vga=792

查看发行版

Linux和Windows不一样,Linux本身只是一个操作系统内核,它提供基础的进程调度、内存管理等功能,而我们使用的Linux,如Ubuntu、Centos,这些是Linux发行版,它们将Linux下常用的软件以及内核打包在一起,然后发行出来给大家使用,降低了Linux使用的难度。

如下,查看当前系统是哪个发行版:

# /etc目录下有各种*-release文件,这些文件里面记录着发行版的信息 $ ls /etc/*-release /etc/centos-release  /etc/os-release  /etc/redhat-release  /etc/system-release # 一般通过/etc/os-release就可以了,如下显示发行版是CentOS 7 $ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" pTTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31"

查看系统启动时间

# 查看系统启动至今的秒数 $ cat /proc/uptime|cut -d. -f1 3810068 # 通过date命令转化为启动时间点,如下: $ date -d "`cat /proc/uptime|cut -d. -f1` seconds ago" +'%F %T' 2021-11-04 12:51:50

查看libc版本

像Linux上的glibc,Windows上的msvc,它们都是底层c库,目前几乎是所有应用层软件的基石。

然而某些场景下,两个不同版本的c库,性能差别会非常大,因此常规性检查一下它们的版本也是非常有必要的,如下:

# ldd可直接查看glibc版本,如下显示glibc版本是2.31 $ ldd --version ldd (Ubuntu GLIBC 2.31-0ubuntu9) 2.31 # ldd可以查看某个程序的所有动态链接库 # 因此可以通过如下方法检查java程序使用的各种底层库版本 $ ldd `which java`        linux-vdso.so.1 (0x00007ffeb11f1000)        /usr/local/lib/libjemalloc.so (0x00007fdcdd8fe000)                                  libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdcdd8cb000)        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdcdd8a8000) # 线程库        libjli.so => /opt/jdk-11.0.12+7/bin/../lib/jli/libjli.so (0x00007fdcdd697000)        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdcdd691000)        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdcdd49f000)            # 基础c库        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdcdd2bb000)  # 基础c++库        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdcdd2a0000)        /lib64/ld-linux-x86-64.so.2 (0x00007fdcdddc1000)        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdcdd151000) # c库版本是2.31 $ ls -l /lib/x86_64-linux-gnu/libc.so.6 lrwxrwxrwx 1 root root 12 2020-04-15 03:26:04 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so # c++库版本是6.0.28 $ ls -l /lib/x86_64-linux-gnu/libstdc++.so.6 lrwxrwxrwx 1 root root 19 2021-05-29 15:49:27 /lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.28 # pthread线程库版本是2.31 $ ls -l /lib/x86_64-linux-gnu/libpthread.so.0 lrwxrwxrwx 1 root root 18 2020-04-15 03:26:04 /lib/x86_64-linux-gnu/libpthread.so.0 -> libpthread-2.31.so

neofetch

可以看到,上面那些命令查看系统信息还是比较零碎的,所以出现了一些命令,将上面的常见场景做了一些聚合,使得能快速直观的看到系统的主要信息,如neofetch命令:

$ neofetch

如上所示,neofetch会显示发行版的一个炫酷图标,上面那个像写轮眼的图标就是Ubuntu的logo。
然后会显示一些系统关键信息,如内核版本、启动时间、Shell版本、CPU/GPU/Memory等。



本文地址:百科问答频道 https://www.neebe.cn/wenda/903362.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 64位操作系统是什么意思?

    64位操作系统是什么意思?

    64位操作系统是使用64位CPU的计算机系统上所运行的操作系统,它能够支持4GB或更多的内存容量,比起32位系统有更多的性能优势和安全性。64位操作系统主要由32位操作系统演变而来,它能够支持大量的内存容量,大大增强计算机处理大...

  • LINUX虚拟化是什么意思?

    LINUX虚拟化是什么意思?

    Linux虚拟化是把一台PC上的Linux系统装到一个物理主机上,同时可以在同一台物理主机上运行多个操作系统,这样可以让数据中心或大型机器获得更大的效能和空间。虚拟化技术可以在物理机上虚拟出多台虚拟机,这样每台虚拟机上的Linux系统就不...

  • 展望与思考iOS8(来体验更强大的操作系统)

    展望与思考iOS8(来体验更强大的操作系统)

    在今年的WWDC上,苹果发布了iOS8,本次发布会以软件为主题,iMessage升级,第三方输入法,iCloudDrive云盘存储,新的API借口,以及AppleSwift编程语言。作为iOS重度用户,每年的WWDC都能让我感受到惊喜。...

  • tvos电视操作系统介绍以及下载

    tvos电视操作系统介绍以及下载

    tvos电视操作系统1.0正式发布,系统新增信息安全模块,可加强用户的信息安全保障,同时在市场化还可对电视机上的应用进行可管可控,任何应用安装到电视机都可被广电总局监测调控,往后诸如网络直播软件可能将被直接封杀禁止!tvos电...

  • 32位操作系统是什么意思?

    32位操作系统是什么意思?

    32位操作系统是一种只能在32位计算机上运行的操作系统。32位操作系统支持的硬件能力被通称为32位环境。目前主流的操作系统,如Windows、Linux和macOS,均支持32位系统,而其中一些版本还支持64位系统。32位操作系统使用3...

  • linux的hostname(主机名)修改详解

    linux的hostname(主机名)修改详解

    Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat/proc/sys/kernel/hostname查看。#hostname#cat/proc/sys/...

  • linux入侵提权(服务器提权)方法

    linux入侵提权(服务器提权)方法

    利用mysqlroot提权方法mysql5.x里面引入了一个system函数,这个函数可以执行系统命令,当mysql以root登陆的时候,就可以利用这个函数执行命令,当然是在权限许可的范围内。一般我们按照常规思路,搞到mysql的ro...

  • 详解Linux中hdparm命令查看硬盘信息的用法

    详解Linux中hdparm命令查看硬盘信息的用法

    功能说明:显示与设定硬盘的参数。语  法:hdparm[-CfghiIqtTvyYZ][-a][-A][-c][-d][-k][-K][-m][-n...

  • 周排行
  • 月排行
  • 年排行

精彩推荐