快速上手Linux核心命令(七):Linux系統資訊相關命令

xiezhr發表於2023-04-27

前言

這期呢主要說一說Linux中與系統相關的命令,一共包含10個命令
在這裡插入圖片描述

uname 顯示系統資訊

1、簡介

uname命令用於顯示系統相關資訊,比如核心版本號、硬體架構等

2、語法格式

uname [引數選項]

3、引數說明

引數 引數說明
-a 顯示系統所有相關資訊
-m 顯示計算機硬體架構
-n 顯示主機名稱
-r 顯示核心發行版本號
-s 顯示核心名稱
-v 顯示核心版本

4、實踐操作

①顯示系統所有資訊

[root@xiezhr ~]# uname -a
Linux xiezhr 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

②顯示計算機硬體架構

[root@xiezhr ~]# uname -m
x86_64

③顯示主機名稱

[root@xiezhr ~]# uname -n
xiezhr

④顯示核心發行版本號

[root@xiezhr ~]# uname -r
3.10.0-1127.19.1.el7.x86_64

hostname 顯示或設定系統主機名

1、簡介

hostname用於顯示或設定系統主機名‘

2、語法格式

hostname [引數選項]

3、引數說明

引數 引數說明
-i 顯示主機IP地址,依賴DNS解析,比較慢
-I 顯示主機的所有IP地址,速度較快

3、實踐操作

①顯示主機名

[root@xiezhr ~]# hostname
xiezhr

②修改主機名

# 臨時修改
[root@xiezhr ~]# hostname hosta
# 永久修改

# Created by cloud-init on instance boot automatically, do not edit.
[root@xiezhr ~]# vi /etc/sysconfig/network
NETWORKING=yes
hosta
~
~
~
-- INSERT --

③ 獲取IP地址

[root@xiezhr ~]# hostname -i
::1 127.0.0.1 127.0.0.1 127.0.0.1
[root@xiezhr ~]# hostname -I
172.17.0.4

du 統計磁碟空間使用情況

1、簡介

du 用於統計磁碟空間使用情況。可以讓我們找出哪些檔案過多的佔用磁碟空間

2、語法格式

du [引數選項] [檔案或目錄]

3、引數說明

引數 引數說明
-a 顯示所有檔案大小
-h 以人類可讀的方式顯示,以K、M、G為單位顯示
-s 顯示檔案的總大小
--exclude=<目錄或檔案> 略過指定的目錄或檔案
--max-depth=<目錄層數> 超過指定層數的目錄後,予以忽略

4、實踐操作

① 【-a】引數顯示所有目錄或檔案所佔空間

[root@xiezhr ~]# du -a
4       ./.lesshst
4       ./.bashrc
4       ./.pydistutils.cfg
4       ./.bash_profile
4       ./.mysql_secret
4       ./.pm2/modules
4       ./.pm2/pm2.pid
0       ./.pm2/pub.sock
0       ./.pm2/rpc.sock
4       ./.pm2/pids/tyloochat-0.pid
8       ./.pm2/pids
4       ./.pm2/module_conf.json
184     ./.pm2/logs/tyloochat-out.log
236     ./.pm2/logs/tyloochat-error.log
424     ./.pm2/logs

② 以人類可讀的方式顯示當前路徑下檔案大小

[root@xiezhr test]# du -h
4.0K    ./dir5
8.0K    ./dir
8.0K    ./dir3
12K     ./dir6
4.0K    ./dir_bak
112K    .

③ 顯示當前路徑下檔案總大小

[root@xiezhr test]# du -s
112  

④指定層次的目錄大小

[root@xiezhr test]# du -h --max-depth=1 /usr/local/
4.0K    /usr/local/lib
4.0K    /usr/local/games
2.6G    /usr/local/mysql
4.0K    /usr/local/src
2.5G    /usr/local/mysql-5.7.19-linux-glibc2.12-x86_64
4.0K    /usr/local/libexec
4.0K    /usr/local/bin
4.0K    /usr/local/etc
1017M   /usr/local/qcloud
92K     /usr/local/share
4.0K    /usr/local/include
4.0K    /usr/local/sbin
4.0K    /usr/local/lib64
6.6G    /usr/local/

⑤ 排除指定目錄檔案後的大小

[root@xiezhr test]# du -h --max-depth=1 /usr/local/ --exclude=/usr/local/mysql
4.0K    /usr/local/lib
4.0K    /usr/local/games
4.0K    /usr/local/src
2.5G    /usr/local/mysql-5.7.19-linux-glibc2.12-x86_64
4.0K    /usr/local/libexec
4.0K    /usr/local/bin
4.0K    /usr/local/etc
1018M   /usr/local/qcloud
92K     /usr/local/share
4.0K    /usr/local/include
4.0K    /usr/local/sbin
4.0K    /usr/local/lib64
4.1G    /usr/local/

echo 顯示一行文字

1、簡介

echo 可以將指定的文字顯示在Linux命令列上

2、語法格式

echo [引數選項] [文字]

3、引數說明

引數 引數說明
-n 不要自動換行
-e 如果字串中出現以下特殊字元,則進行特殊處理,不會當成一般字元輸出 \b 刪除前一個字元
特殊字元 特殊字元說明
\a 發出警告聲
\b 刪除前一個字元
\c 最後不加上換行符
\f 換行,但游標停留在原來的位置
\n 換行,且游標移動到行首
\r 游標移動到行首,但不換行
\t 插入製表符tab
\v 與-f 相同
\\ 插入\字元
\' 插入' 字元
\" 插入"字元

4、實踐操作

① 顯示普通字元

[root@xiezhr ~]# echo my official accounts  is xiezhrspace
my official accounts is xiezhrspace

②顯示跳脫字元

[root@xiezhr ~]# echo \"my official account is xiezhrspace \"
"my official account is xiezhrspace "

③ 將單行文字輸入到檔案中

[root@xiezhr test]# echo my official account is xiezhrspace >> xie.txt
[root@xiezhr test]# more xie.txt 
my official account is xiezhrspace

④ 顯示命令執行結果

[root@xiezhr test]# echo `date`
Mon May 9 21:37:40 CST 2022

watch 監視命令執行情況

1、簡介

watch 英文意思是看,用於以全屏的方式動態顯示命令或程式的執行情況

2、語法格式

watch [引數選項] [命令]

3、引數說明

引數 引數說明
-n 命令執行的時間間隔、預設為2m
-d 高亮顯示命令結果變動之處
-t 關閉watch命令執行後頂部顯示的時間間隔、命令及當前時間

4、實踐操作

每個一秒顯示網路連線數的變化情況

[root@xiezhr test]# watch -n 1 -d netstat -nginx

Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0             1500 247530399      0      0 0      322331584      0      0      0 BMRU
lo              65536   141692      0      0 0        141692      0      0      0 LRU

stat

1、簡介

stat 用於顯示檔案或檔案系統的狀態資訊

2、語法格式

stat [引數選項] [檔案或目錄]

3、引數說明

引數 引數說明
-c 使用指定輸出格式代替預設值

4、實踐操作

檢視檔案的屬性資訊

[root@xiezhr test]# stat /etc/hosts
  File: ‘/etc/hosts’
  Size: 157             Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 265944      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-11-29 10:25:47.000000000 +0800
Modify: 2020-11-29 11:54:33.000000000 +0800
Change: 2020-11-29 11:54:53.216579255 +0800
 Birth: -

whereis 顯示命令及其相關檔案的全路徑

1、簡介

whereis 命令用於定位指定命令的可執行檔案、原始碼檔案及man幫助檔案的路徑

2、語法格式

whereis [引數選項] [檔名]

3、引數說明

引數 引數說明
-b 查詢可執行檔案
-s 查詢原始碼檔案
-m 查詢man幫助檔案

4、實踐操作

① 查詢可執行檔案路徑

[root@xiezhr test]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz

② 查詢man 幫助檔案

[root@xiezhr test]# whereis -m nginx
nginx: /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz

③ 查詢原始碼檔案

[root@xiezhr test]# whereis -s nginx
nginx:
# 沒有找到相關原始碼

date 顯示與設定系統時間

1、簡介

date命令用於顯示當前系統時間或設定系統時間

2、語法格式

date [引數選項] [+日期格式]

3、引數說明

引數

引數 引數說明
-d 時間字串 顯示指定字串所描述的時間,而非當前時間
-s 日期時間 設定系統時間

日期格式

格式 格式說明
%y 顯示年(短格式)
%Y 顯示年(長格式)
%m 顯示月
%d 顯示日
%H 24小時制 (00-23) 例如:7點顯示07
%k 24小時(0-23) 例如:7點顯示7
%I 12小時制(00-12)例如:7點顯示07
%l 12小時制(0-12)例如:7點顯示7
%M 分鐘(00-59)
%S 秒(00-60)
%p 顯示本地 AM 或 PM
%F 完整日期格式,等價於%Y-%m-%d(2022-05-12)
%T 完整時間格式,等價於%H:%M:%S(07:58:23)

4、實踐操作

①顯示日期時間

# 顯示年(短格式)
[root@xiezhr ~]# date +%y
22
# 顯示年(長格式)
[root@xiezhr ~]# date +%Y
2022
# 顯示月
[root@xiezhr ~]# date +%m
05
#顯示日
[root@xiezhr ~]# date +%d
12
# 顯示時
[root@xiezhr ~]# date +%H
08
# 顯示分
[root@xiezhr ~]# date +%M
01
# 顯示秒
[root@xiezhr ~]# date +%S
53
# 顯示特殊日期(年-月-日)
[root@xiezhr ~]# date +%F
2022-05-12
# 顯示特殊格式時間(時:分:秒)
[root@xiezhr ~]# date +%T
08:02:18
#格式化輸出日期時間
[root@xiezhr ~]# date "+%Y-%m-%d %H:%M:%S"
2022-05-12 08:11:03

②引數【-d】的使用

注:-號表示過去,+表示未來 day表示日,month表示月,year表示年

# 顯示昨天
[root@xiezhr ~]# date +%F -d "-1day"
2022-05-11
# 顯示明天
[root@xiezhr ~]# date +%F -d "+1day"
2022-05-13
# 顯示一個月後
[root@xiezhr ~]# date +%F -d "+1month"
2022-06-12
# 顯示一年後
[root@xiezhr ~]# date +%F -d "+1year"
2023-05-12

③ 引數【-s】設定時間

# 設定20220512,時間為空則為00:00:00
[root@xiezhr ~]# date -s 20220512
Thu May 12 00:00:00 CST 2022
# 設定時間為08:20:03,不會更改日期
[root@xiezhr ~]# date -s 08:20:03
Thu May 12 08:20:03 CST 2022
# 透過不同格式設定日期時間
[root@xiezhr ~]# date -s "08:22:04 20220512"
Thu May 12 08:22:04 CST 2022
[root@xiezhr ~]# date -s "08:22:04 2022/05/12"
Thu May 12 08:22:04 CST 2022
[root@xiezhr ~]# date -s "08:22:04 2022-05-12"
Thu May 12 08:22:04 CST 2022

which 顯示命令全路徑

1、簡介

which 用於顯示命令的全路徑,經常用來查詢命令在哪裡,which的查詢範圍時path環境變數的路徑

2、語法格式

which [引數選項] [命令名]

3、引數說明

注:預設在PATH路徑中由前往後查詢命令,如果找到了,就停止匹配。

引數 引數說明
-a 遍歷所有PATH路徑,輸出所有匹配項

4、實踐操作

①查詢指定命令的全路徑

# 檢視環境變數
[root@xiezhr ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# 檢視man命令的全路徑
[root@xiezhr ~]# which man
/usr/bin/man
# 檢視date命令的全路徑
[root@xiezhr ~]# which date
/usr/bin/date
# 檢視cd命令的全路徑
[root@xiezhr ~]# which cd
/usr/bin/cd

②【-a】引數

[root@xiezhr ~]# which -a nginx
/usr/sbin/nginx

locate 快速定位檔案路徑

1、簡介

Linux系統中有一個名為mlocate.db的資料庫檔案,包含了系統檔案的檔名及對應路徑資訊。locate 命令查詢檔案時,不用遍歷磁碟,而是直接查詢mlocate.db檔案

注意:mlocate.db檔案不是實時更新的,而是有系統自帶的定時任務執行updatedb命令定期更新。當然了,我們在使用locate命令時,可以先用updatedb命令更新一下mlocate.db檔案

2、語法格式

locate [引數選項] [檔名]

3、引數說明

引數 引數說明
-c 不顯示匹配的內容,只顯示匹配的行數
-r 支援基本正規表示式匹配
-i 匹配時忽略大小寫
--regex 支援擴充套件正規表示式匹配

4、實踐操作

①查詢檔案路徑(只要包含pwd都會顯示出來)

[root@xiezhr ~]# locate pwd
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/modules/3.10.0-1127.19.1.el7.x86_64/kernel/drivers/watchdog/hpwdt.ko.xz
/usr/lib64/cracklib_dict.pwd
/usr/lib64/python2.7/lib-dynload/spwdmodule.so
/usr/local/qcloud/monitor/python26/lib/python2.6/lib-dynload/spwd.so
/usr/sbin/unix_chkpwd
/usr/share/cracklib/cracklib-small.pwd
/usr/share/cracklib/pw_dict.pwd
/usr/share/man/man1/pwd.1.gz
/usr/share/man/man1/pwdx.1.gz
/usr/share/man/man8/unix_chkpwd.8.gz
/usr/src/kernels/3.10.0-1127.19.1.el7.x86_64/include/config/hpwdt
/usr/src/kernels/3.10.0-1127.19.1.el7.x86_64/include/config/hpwdt/nmi
/usr/src/kernels/3.10.0-1127.19.1.el7.x86_64/include/config/hpwdt/nmi/decoding.h

②顯示匹配的行號

[root@xiezhr ~]# locate -c pwd
17

③使用萬用字元查詢檔案路徑

[root@xiezhr ~]# locate /etc/sh*
/etc/shadow
/etc/shadow-
/etc/shells
/etc/shells.rpmnew

這期內容就到這,下期根據思維導圖就到Linux網路相關命令的使用了。

涉及到的命令有: ping、 ifconfig、 netstat、 telnet、 ssh、 ip、 tcpdump、nmap、ss等等

敬請期待哦(●’◡’●)

專欄目錄:快速上手Linux核心命令專欄目錄

上一篇:快速上手Linux核心命令(六):Linux的文字編輯器vi和vim
下一篇:快速上手Linux核心命令(八):網路相關命令(博主正在玩命更新中)

相關文章