Linux加強篇002-部署Linux系統

目錄

前言

1. shell語言

2. 執行命令的必備知識

3.?常用系統工作命令

4. 系統狀態檢測命令

5. 查找定位文件命令

6. 文本文件編輯命令

7. 文件目錄管理命令


前言

悟已往之不諫,知來者之可追。實迷途其未遠,覺今是而昨非。舟遙遙以輕飏,風飄飄而吹衣。問征夫以前路,恨晨光之熹微。

本系列依照《Linux就該這么學》第二版隨書學習練習操作,將一些課本上不順暢的地方,全部以最簡方式免費開源展示給大家,資源大家可以自行百度,學習起來我們既要多巴胺也要內啡肽。

第一章寫完感覺挺簡單的,沒想到第二章直接爆炸,居然寫了兩天,怕大家看不下去,推薦一首天王的歌,邊聽邊學:<周杰倫 - 夜曲>,雖然大家做著一樣的事情,但是不同的階段還是會有不一樣的感受的,希望這段學習的旅程能給大家一些思考,不要麻木做事,問師參學今何解,云在青天水在瓶。

1. shell語言

英文中的殼叫作Shell,我們在行業中也將用戶終端程序稱之為Shell,方便好記。Shell就是終端程序的統稱,它充當了人與內核(硬件)之間的翻譯官,用戶把一些命令“告訴”終端程序,它就會調用相應的程序服務去完成某些工作。現在包括紅帽系統在內的許多主流Linux系統默認使用的終端是Bash(Bourne-Again SHell)解釋器,這個Bash解釋器主要有以下4項優勢:通過上下方向鍵來調取執行過的Linux命令;命令或參數僅需輸入前幾位就可以用Tab鍵補全;具有強大的批處理腳本;具有實用的環境變量功能。

2. 執行命令的必備知識

常見的執行Linux命令的格式是:命令名稱 ? ? [命令參數] ? ? [命令對象]

命令名稱:就是語法中的“動詞”,表達的是想要做的事情,例如創建用戶、查看文件、重啟系統等操作。

命令參數:用于對命令進行調整,讓“修改”過的命令能更好地貼合工作需求,達到事半功倍的效果。

Linux命令參數的長格式與短格式示例

長格式man --help
短格式man -h

切換到root用戶下,體驗一下man命令

[centos8@localhost root]$ su -

Password: ?

Last login: Mon Nov ?6 16:58:17 PST 2023 on pts/0

[root@localhost ~]# ?

[root@localhost ~]# man man

image.png

man命令中常用按鍵

按鍵作用
空格鍵向下翻一頁
PaGe down向下翻一頁
PaGe up向上翻一頁
home直接前往首頁
end直接前往尾頁
/從上至下搜索某個關鍵詞,如“/linux”
?從下至上搜索某個關鍵詞,如“?linux”
n定位到下一個搜索到的關鍵詞
N定位到上一個搜索到的關鍵詞
q退出幫助文檔

man命令中幫助信息結構和意義

結構名稱代表意義
NAME命令的名稱
SYNOPSIS參數的大致使用方法
DESCRIPTION介紹說明
EXAMPLES演示(附帶簡單說明)
OVERVIEW概述
DEFAULTS默認的功能
OPTIONS具體的可用選項(帶介紹)
ENVIRONMENT環境變量
FILES用到的文件
SEE ALSO相關的資料
HISTORY維護歷史與聯系方式

Tab鍵:實現對命令、參數或文件的內容補全,兩次tab可以調出所有可能的命令

image.png

Ctrl+C組合鍵:終止當前進程的運行

以下命令執行效果是每1s刷新一次系統負載情況,直到按下Ctrl+c組合鍵時才停止運行。

[root@localhost ~]# watch -n 1 uptime

image.png

+

Ctrl+D組合鍵:鍵盤輸入結束。

Ctrl+L組合鍵:清空當前終端中已有的內容。

3.?常用系統工作命令

echo命令:用于在終端設備上輸出字符串或變量提取后的值,語法格式為“echo [字符串] [$變量]”

字符串

[root@localhost ~]# echo weihongbin

weihongbin

$變量

[root@localhost ~]# echo $SHELL

/bin/bash

date命令:用于顯示或設置系統的時間與日期,語法格式為“date [+指定的格式]”

參數作用
%S秒(00~59)
%M分鐘(00~59)
%H小時(00~23)
%I小時(00~12)
%m月份(1~12)
%p顯示出AM或PM
%a縮寫的工作日名稱(例如:Sun)
%A完整的工作日名稱(例如:Sunday)
%b縮寫的月份名稱(例如:Jan)
%B完整的月份名稱(例如:January)
%q季度(1~4)
%y簡寫年份(例如:20)
%Y完整年份(例如:2020)
%d本月中的第幾天
%j今年中的第幾天
%n換行符(相當于按下回車鍵)
%t跳格(相當于按下Tab鍵)

默認格式

[root@localhost ~]# date

Mon Nov ?6 17:27:55 PST 2023

“年-月-日 小時:分鐘:秒”

[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"

2023-11-06 17:29:16

設置為2020年11月1日8點30分

[root@localhost ~]# date -s "20231107 9:34:00"

Tue Nov ?7 09:34:00 PST 2023

參數%j可用來查看今天是當年中的第幾天

[root@localhost ~]# date "+%j"

311

timedatectl命令:用于設置系統的時間,語法格式為“timedatectl [參數]”

timedatectl命令參數以及作用

參數作用
status顯示狀態信息
list-timezones列出已知時區
set-time設置系統時間
set-timezone設置生效時區

查看系統時間與時區

[root@localhost ~]# timedatectl status ?

? ? ? ? ? ? ? Local time: Tue 2023-11-07 10:59:14 PST

? ? ? ? ? Universal time: Tue 2023-11-07 18:59:14 UTC

? ? ? ? ? ? ? ? RTC time: Tue 2023-11-07 03:06:47

? ? ? ? ? ? ? ?Time zone: America/Los_Angeles (PST, -0800)

System clock synchronized: no

? ? ? ? ? ? ?NTP service: active

? ? ? ? ?RTC in local TZ: no

時區不是上海(Asia/Shanghai),可以手動進行設置

[root@localhost ~]# timedatectl set-timezone Asia/Shanghai ?

網絡授時NTP:編輯文件 "/etc/ntp.conf",根據情況修改文件內容為:

driftfile ?/var/lib/ntp/drift

pidfile ? /var/run/ntpd.pid

logfile /var/log/ntp.log

restrict ? ?default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

server 127.127.1.0

fudge ?127.127.1.0 stratum 10

server ntp.aliyun.com iburst minpoll 4 maxpoll 10

restrict ntp.aliyun.com nomodify notrap nopeer noquery

查看一下時間是否準確:date

reboot命令:用于重啟系統

[root@localhost ~]# reboot

poweroff命令:用于關閉系統

[root@localhost ~]# poweroff

wget命令:用于在終端命令行中下載網絡文件,語法格式為“wget [參數] 網址”

wget命令中的參數以及作用

參數作用
-b后臺下載模式
-P下載到指定目錄
-t最大嘗試次數
-c斷點續傳
-p下載頁面內所有資源,包括圖片、視頻等
-r遞歸下載

遞歸下載并存到指定網址目錄

[root@localhost ~]# wget -r -p https://**

ps命令:用于查看系統中的進程狀態,語法格式為“ps [參數]”

ps命令中的參數以及作用

參數作用
-a顯示所有進程(包括其他用戶的進程)
-u用戶以及其他詳細信息
-x顯示沒有控制終端的進程

Linux系統中有5種常見的進程狀態,分別為運行、中斷、不可中斷、僵死與停止

R(運行):進程正在運行或在運行隊列中等待。

S(中斷):進程處于休眠中,當某個條件形成后或者接收到信號時,則脫離該 ? 狀態。

D(不可中斷):進程不響應系統異步信號,即便用kill命令也不能將其中斷。

Z(僵死):進程已經終止,但進程描述符依然存在, 直到父進程調用wait4()系統函數后將進程釋放。

T(停止):進程收到停止信號后停止運行。

高優先級(<)、低優先級(N)、被鎖進內存(L)、包含子進程(s)多線程(l)5種補充形式

執行ps aux命令

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
進程的所有者進程ID號運算器占用率內存占用率虛擬內存使用量(單位是KB)占用的固定內存量(單位是KB)所在終端進程狀態被啟動的時間實際使用CPU的時間命令名稱與參數
root10.00.524474010636?Ss07:540:02

root20.00.000?S07:540:00

root30.00.000?I<07:540:00

root40.00.000?I<07:540:00

root50.00.000?I<07:540:00

root60.00.000?I<07:540:00

root70.00.000?S07:540:00

root80.00.000?I07:540:00

root90.00.000?S07:540:00

pstree命令:用于以樹狀圖的形式展示進程之間的關系

[root@localhost ~]# pstree

systemd─┬─ModemManager───2*[{ModemManager}]

? ? ? ?├─NetworkManager───2*[{NetworkManager}]

? ? ? ?├─VGAuthService

? ? ? ?├─3*[abrt-dump-journ]

? ? ? ?├─abrtd───2*[{abrtd}]

? ? ? ?├─alsactl

? ? ? ?├─anacron

? ? ? ?├─atd

? ? ? ?├─auditd─┬─sedispatch

? ? ? ?│ ? ? ? ?└─2*[{auditd}]

? ? ? ?├─avahi-daemon───avahi-daemon

top命令:用于動態地監視進程活動及系統負載等信息

image.png

第1行:系統時間、運行時間、登錄終端數、系統負載(3個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。

第2行:進程總數、運行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數。

第3行:用戶占用資源百分比、系統內核占用資源百分比、改變過優先級的進程資源百分比、空閑的資源百分比等。其中數據均為CPU數據并以百分比格式顯示,例如“99.9 id”意味著有99.9%的CPU處理器資源處于空閑。

第4行:物理內存總量、內存空閑量、內存使用量、作為內核緩存的內存量。

第5行:虛擬內存總量、虛擬內存空閑量、虛擬內存使用量、已被提前加載的內存量。

nice命令:用于調整進程的優先級,語法格式為“nice優先級數字 服務名稱”

PR和NI值代表的是進程的優先級,數字越低(取值范圍是-20~19),優先級越高

-g 匹配進程組ID

-n 設置優先級別

-p 匹配進程ID

-u 匹配用戶ID

[root@bogon ~]# nice -n -20 bash

pidof命令:用于查詢某個指定服務進程的PID號碼值,語法格式為“pidof [參數] 服務名稱”

每個進程的進程號碼值(PID)是唯一的,可以用于區分不同的進程

[root@bogon ~]# pidof sshd

1861 1843 1046

kill命令:用于終止某個指定PID值的服務進程,語法格式為“kill [參數] 進程的PID”

使用kill命令把上面用pidof命令查詢到的PID所代表的進程終止掉

[root@bogon ~]# kill 2156

有時系統會提示進程無法被終止,此時可以加參數-9,表示最高級別地強制殺死進程

[root@bogon ~]# kill -9 2156

killall命令:用于終止某個指定名稱的服務所對應的全部進程,語法格式為“killall [參數] 服務名稱”

[root@bogon ~]# pidof sshd

1861 1843 1046

[root@bogon ~]# killall sshd

[root@bogon ~]# pidof sshd

4. 系統狀態檢測命令

ifconfig命令:用于獲取網卡配置與網絡狀態等信息,語法格式為“ifconfig [參數] [網絡設備]”主要查看的就是網卡名稱、inet參數后面的IP地址、ether參數后面的網卡物理地址(又稱為MAC地址),以及RX、TX的接收數據包與發送數據包的個數及累計流量(即下面紅色的信息內容):

[root@bogon ~]# ifconfig ?

ens160: flags=4163 ?mtu 1500

? ? ? ?inet 192.168.227.134 ?netmask 255.255.255.0 ?broadcast 192.168.227.255

? ? ? ?inet6 fe80::20c:29ff:fe57:4d51 ?prefixlen 64 ?scopeid 0x20

? ? ? ?ether 00:0c:29:57:4d:51 ?txqueuelen 1000 ?(Ethernet)

? ? ? ?RX packets 2178 ?bytes 194630 (190.0 KiB)

? ? ? ?RX errors 0 ?dropped 0 ?overruns 0 ?frame 0

? ? ? ?TX packets 1286 ?bytes 855375 (835.3 KiB)

? ? ? ?TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0

uname命令:用于查看系統內核版本與系統架構等信息,語法格式為“uname [-a]”一般要固定搭配上-a參數來完整地查看當前系統的內核名稱、主機名、內核發行版本、節點名、壓制時間、硬件名稱、硬件平臺、處理器類型以及操作系統名稱等信息:

[root@bogon ~]# uname -a

Linux bogon 4.18.0-348.el8.x86_64 #1 SMP Tue Oct 19 15:14:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

查看當前系統版本的詳細信息:

[root@bogon ~]# cat /etc/redhat-release ?

CentOS Linux release 8.5.2111

uptime命令:用于查看系統的負載信息,顯示當前系統時間、系統已運行時間、啟用終端數量以及平均負載值等信息。平均負載值指的是系統在最近1分鐘、5分鐘、15分鐘內的壓力情況(下面紅色的信息部分),負載值越低越好(負載值保持在1左右,在生產環境中不要超過5就好):

[root@bogon ~]# uptime ?

10:01:39 up ?1:09, ?1 user, ?load average: 0.00, 0.00, 0.00

free命令:用于顯示當前系統中內存的使用量信息,語法格式為“free [-h]”在使用free命令時,可以結合使用-h參數以更人性化的方式輸出當前內存的實時使用量信息:

[root@bogon ~]# free -h

內存總量已用量空閑量共享使用的內存量緩存的內存量可用量

? ? ? ? ? ? ?total ? ? ? ?used ? ? ? ?free ? ? ?shared ?buff/cache ? available

Mem: ? ? ? ? ?1.7Gi ? ? ? 335Mi ? ? ? 1.0Gi ? ? ? 9.0Mi ? ? ? 432Mi ? ? ? 1.3Gi

Swap: ? ? ? ? 2.0Gi ? ? ? ? ?0B ? ? ? 2.0Gi

who命令:用于查看當前登入主機的用戶終端信息,有遠程用戶,還會顯示出來訪者的IP地址

[root@bogon ~]# who

登陸的用戶名終端設備

登陸到系統的時間(遠程IP)

root ? ? pts/0 ? ? ? ?2023-11-08 08:54 (192.168.227.1)

last命令用于調取主機的被訪記錄

[root@bogon ~]# last

root ? ? pts/0 ? ? ? ?192.168.227.1 ? ?Wed Nov ?8 08:54 ? still logged in

reboot ? system boot ?4.18.0-348.el8.x Wed Nov ?8 08:52 ? still running

root ? ? pts/0 ? ? ? ?192.168.227.1 ? ?Tue Nov ?7 08:57 - crash ?(23:54)

root ? ? tty1 ? ? ? ? ? ? ? ? ? ? ? ? ?Tue Nov ?7 08:57 - crash ?(23:55)

ping命令:用于測試主機之間的網絡連通性,語法格式為“ping [參數] 主機地址”ping一下自己(上方紅色ip)

ping命令中參數及作用

參數作用
-c總共發送次數
-l指定網卡名稱
-i每次間隔時間(秒)
-W最長等待時間(秒)

[root@bogon ~]# ping -c 2 192.168.227.134

PING 192.168.227.134 (192.168.227.134) 56(84) bytes of data.

64 bytes from 192.168.227.134: icmp_seq=1 ttl=64 time=0.055 ms

64 bytes from 192.168.227.134: icmp_seq=2 ttl=64 time=0.072 ms

--- 192.168.227.134 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1004ms

rtt min/avg/max/mdev = 0.048/0.049/0.050/0.001 ms

tracepath命令:用于顯示數據包到達目的主機時途中經過的所有路由信息,語法格式為“tracepath [參數] 域名”使用tracepath命令追蹤數據包到達目的主機時途中的所有路由信息,以分析是哪臺設備出了問題:

[root@bogon ~]# tracepath www.baidu.com

1?: [LOCALHOST] ? ? ? ? ? ? ? ? ? ? ?pmtu 1500

1: ?bogon ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.284ms ?

1: ?bogon ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0.246ms ?

2: ?no reply

netstat命令:用于顯示如網絡連接、路由表、接口狀態等的網絡相關信息,語法格式為“netstat [參數]”可以查看到網絡狀態的方方面面信息:

netstat命令中參數及作用

-a顯示所有連接中的Socket
-p顯示正在使用的Socket信息
-t顯示TCP協議的連接狀態
-u顯示UDP協議的連接狀態
-n使用IP地址,不使用域名
-l僅列出正在監聽的服務狀態
-i顯示網卡列表信息
-r顯示路由表信息

顯示詳細的網絡狀況:

[root@bogon ~]# netstat -a

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address ? ? ? ? ? Foreign Address ? ? ? ? State ? ? ?

tcp ? ? ? ?0 ? ? ?0 0.0.0.0:sunrpc ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?

tcp ? ? ? ?0 ? ? ?0 bogon:domain ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?

tcp ? ? ? ?0 ? ? ?0 0.0.0.0:ssh ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?

tcp ? ? ? ?0 ? ? ?0 localhost:ipp ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?

tcp ? ? ? ?0 ? ? ?0 localhos:x11-ssh-offset 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?

tcp ? ? ? ?0 ? ?172 bogon:ssh ? ? ? ? ? ? ? bogon:57126 ? ? ? ? ? ? ESTABLISHED

tcp6 ? ? ? 0 ? ? ?0 [::]:sunrpc ? ? ? ? ? ? [::]:* ? ? ? ? ? ? ? ? ?LISTEN ? ? ?

tcp6 ? ? ? 0 ? ? ?0 [::]:ssh ? ? ? ? ? ? ? ?[::]:* ? ? ? ? ? ? ? ? ?LISTEN ? ? ?

tcp6 ? ? ? 0 ? ? ?0 localhost:ipp ? ? ? ? ? [::]:* ? ? ? ? ? ? ? ? ?LISTEN ? ? ?

tcp6 ? ? ? 0 ? ? ?0 localhos:x11-ssh-offset [::]:* ? ? ? ? ? ? ? ? ?LISTEN ? ? ?

udp ? ? ? ?0 ? ? ?0 bogon:domain ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ?

udp ? ? ? ?0 ? ? ?0 0.0.0.0:bootps ? ? ? ? ?0.0.0.0:* ?

顯示網卡列表:

[root@bogon ~]# netstat -i

Kernel Interface table

Iface ? ? ? ? ? ? MTU ? ?RX-OK RX-ERR RX-DRP RX-OVR ? ?TX-OK TX-ERR TX-DRP TX-OVR Flg

ens160 ? ? ? ? ? 1500 ? ? 3820 ? ? ?0 ? ? ?0 0 ? ? ? ? ?1913 ? ? ?0 ? ? ?0 ? ? ?0 BMRU

lo ? ? ? ? ? ? ?65536 ? ? ? 26 ? ? ?0 ? ? ?0 0 ? ? ? ? ? ?26 ? ? ?0 ? ? ?0 ? ? ?0 LRU

virbr0 ? ? ? ? ? 1500 ? ? ? ?0 ? ? ?0 ? ? ?0 0 ? ? ? ? ? ? 0 ? ? ?0 ? ? ?0 ? ? ?0 BMU

history命令:用于顯示執行過的命令歷史,語法格式為“history [-c]”

[root@bogon ~]# history ?

? ?1 ?ll

? ?2 ?pidof sshd

? ?3 ?ifconfig ?

? ?4 ?uname -a

? ?5 ?cat /etc/redhat-release ?

歷史命令會被保存到用戶家目錄中的.bash_history文件中。Linux系統中以點(.)開頭的文件均代表隱藏文件

[root@bogon ~]# cat ~/.bash_history

ll

清空當前用戶在本機上執行的Linux命令歷史記錄信息:

[root@bogon ~]# history -c

“!編碼數字”的命令格式重復執行某一次的命令記錄:

[root@bogon ~]# history

?106 ?ll

[root@bogon ~]# !106

ll

total 2167564

-rw-r--r--. ? 1 root ? ?root ? ? 587202560 Nov ?8 15:53 560

-rw-------. ? 1 root ? ?root ? ? ? ? ?2788 Nov ?9 ?2023 anaconda-ks.cfg

sosreport命令:用于收集系統配置及架構信息并輸出診斷文檔,簡單收集系統的運行狀態和服務配置信息,紅色的部分是收集好的資料壓縮文件以及校驗碼,將其發送給技術支持人員即可:

[root@bogon ~]# sosreport ?

Please note the 'sosreport' command has been deprecated in favor of the new 'sos' command, E.G. 'sos report'.

Redirecting to 'sos report '

sosreport (version 4.1)

This command will collect diagnostic and configuration information from

this CentOS system and installed applications.

An archive containing the collected information will be generated in

/var/tmp/sos.wasb39e_ and may be provided to a CentOS support

representative.

Any information provided to CentOS will be treated in accordance with

the published support policies at:

? ? ? ?Community Website : https://www.centos.org/

The generated archive may contain data considered sensitive and its

content should be reviewed by the originating organization before being

passed to any third party.

No changes will be made to system configuration.

Press ENTER to continue, or CTRL-C to quit.

此處按下回車鍵進行確認

Please enter the case id that you are generating this report for []: ?此處按下回車鍵進行確認

Setting up archive ...

Setting up plugins ...

...

Your sosreport has been generated and saved in:

/var/tmp/sosreport-bogon-2023-11-08-xvluhty.tar.xz

Size 15.10MiB

Owner root

sha256 83cef5b4398ad35aa4c06c3a0cbcfb2bacefc0faa2c03beb6df84220a34832d6

Please send this file to your support representative.

5. 查找定位文件命令

pwd命令:用于顯示用戶當前所處的工作目錄

[root@bogon ~]# pwd

/root

cd命令:用于切換當前的工作路徑,語法格式為“cd [參數] [目錄]”“cd -”命令返回到上一次所處的目錄,使用“cd ..”命令進入上級目錄,以及使用“cd ~”命令切換到當前用戶的家目錄,使用“cd ~username”命令切換到其他用戶的家目錄

[root@bogon ~]# cd /etc/

[root@bogon etc]# cd -

/root

[root@bogon ~]# cd ..

[root@bogon /]# cd ~

[root@bogon ~]# ?

ls命令:用于顯示目錄中的文件信息,語法格式為“ls [參數] [文件名稱]”使用ls命令的-a參數可以看到全部文件(包括隱藏文件),使用-l參數可以查看文件的屬性、大小等詳細信息,使用-d參數可以查看目錄屬性信息

[root@bogon ~]# ls -al

total 48

dr-xr-x---. ?5 root root ?280 Nov ?8 11:06 .

dr-xr-xr-x. 17 root root ?245 Nov ?6 14:39 ..

-rw-------. ?1 root root 2788 Nov ?6 11:37 anaconda-ks.cfg

-rw-------. ?1 root root ? ?3 Nov ?7 17:21 .bash_history

tree命令:用于以樹狀圖的形式列出目錄內容及結構

[root@bogon ~]# tree

.

├── anaconda-ks.cfg

└── original-ks.cfg

0 directories, 2 files

find命令:用于按照指定條件來查找文件所對應的位置,語法格式為“find [查找范圍] 尋找條件”

find命令中參數及作用

參數作用
-name匹配名稱
-perm匹配權限(mode為完全匹配,-mode為包含即可)
-user匹配所有者
-group匹配所有組
-mtime -n +n匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime -n +n匹配訪問文件的時間(-n指n天以內,+n指n天以前)
-ctime -n +n匹配修改文件權限的時間(-n指n天以內,+n指n天以前)
-nouser匹配無所有者的文件
-nogroup匹配無所有組的文件
-newer f1 !f2匹配比文件f1新但比f2舊的文件
-type b/d/c/p/l/f匹配文件類型(后面的字幕字母依次表示塊設備、目錄、字符設備、管道、鏈接文件、文本文件)
-size匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小于50KB的文件)
-prune忽略某個目錄
-exec …… {}\;后面可跟用于進一步處理搜索結果的命令

獲取該目錄中所有以host開頭的文件列表

[root@bogon ~]# find /etc -name "host*" -print

/etc/host.conf

/etc/hosts

/etc/nvme/hostnqn

/etc/nvme/hostid

/etc/avahi/hosts

/etc/hostname

搜索權限中包括SUID權限的所有文件

[root@bogon ~]# find / -perm -4000 -print

/usr/bin/fusermount

/usr/bin/chage

/usr/bin/gpasswd

/usr/bin/newgrp

/usr/bin/mount

找出所有歸屬于子用戶的文件并復制到/root/findresults目錄中

先查一下自己的子用戶

[root@bogon ~]# cat /etc/passwd

centos8:x:1000:1000:centos_8:/home/centos8:/bin/bash

[root@bogon ~]# find / -user centos8 -exec cp -a {} /root/findresults/ \;

[root@bogon ~]# ll

total 20

-rw-------. ? 1 root ? ?root ? ?2788 Nov ?6 11:37 anaconda-ks.cfg

drwx------. 116 centos8 centos8 8192 Nov ?8 14:32 findresults

-rw-------. ? 1 root ? ?root ? ?2106 Nov ?6 11:37 original-ks.cfg

locate命令:用于按照名稱快速搜索文件所對應的位置,語法格式為“locate文件名稱”使用locate命令時,先使用updatedb命令生成一個索引庫文件,這個庫文件的名字是/var/lib/mlocate/mlocate.db,后續在使用locate命令搜索文件時就是在該庫中進行查找操作

[root@bogon ~]# updatedb

[root@bogon ~]# ll /var/lib/mlocate/mlocate.db ?

-rw-r-----. 1 root slocate 3764716 Nov ?8 14:48 /var/lib/mlocate/mlocate.db

[root@bogon ~]# locate whereis

/usr/bin/whereis

/usr/share/bash-completion/completions/whereis

/usr/share/man/man1/whereis.1.gz

whereis命令:用于按照名稱快速搜索二進制程序(命令)、源代碼以及幫助文件所對應的位置,語法格式為“whereis命令名稱”

[root@bogon ~]# whereis ls

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

which命令:用于按照指定名稱快速搜索二進制程序(命令)所對應的位置,語法格式為“which命令名稱”主要為了找到命令本身所在的路徑

[root@bogon ~]# which locate

/usr/bin/locate

[root@bogon ~]# which whereis

/usr/bin/whereis

6. 文本文件編輯命令

cat命令:用于查看內容較少純文本文件,語法格式為“cat [參數] 文件名稱”-n參數表示展示行數

[root@bogon ~]# cat -n anaconda-ks.cfg ?

? ? 1 #version=RHEL8

? ? 2 # Reboot after installation

? ? 3 reboot

? ? 4 # Use graphical install

? ? 5 graphical

more命令:用于查看內容較多純文本文件,語法格式為“more [參數] 文件名稱”more命令會在最下面使用百分比的形式來提示您已經閱讀了多少內容;還可以使用空格鍵或回車鍵向下翻頁

[root@bogon ~]# more anaconda-ks.cfg ?

? ? #version=RHEL8

? ? # Reboot after installation

? ? reboot

? ? # Use graphical install

? ? graphical

...

--More--(60%)

head命令:用于查看純文本文件的前N行,語法格式為“head [參數] 文件名稱”

查看文本中前3行的內容:

[root@bogon ~]# head -n 3 anaconda-ks.cfg ?

#version=RHEL8

# Reboot after installation

reboot

tail命令:用于查看純文本文件的后N行或持續刷新文件的最新內容,語法格式為“tail [參數] 文件名稱”

查看文本中后3行的內容(最新):

[root@bogon ~]# tail -n 3 anaconda-ks.cfg ?

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

持續刷新一個文件的內容:

[root@bogon ~]# tail -f /var/log/messages

Nov ?8 14:44:42 bogon systemd[1]: Started Network Manager Script Dispatcher Service.

Nov ?8 14:44:42 bogon systemd[1]: systemd-tmpfiles-clean.service: Succeeded.

Nov ?8 14:44:42 bogon systemd[1]: Started Cleanup of Temporary Directories.

tr命令:用于替換文本內容中的字符,語法格式為“tr [原始字符] [目標字符]”

把某個文本內容中的英文全部替換為大寫:

[root@bogon ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]

wc命令用于統計指定文本文件的行數、字數或字節數,語法格式為“wc [參數] 文件名稱”

wc命令中參數及作用

參數作用
-l只顯示行數
-w只顯示單詞數
-c只顯示字節數

統計當前系統中有多少個用戶

[root@bogon ~]# wc -l /etc/passwd

47 /etc/passwd

stat命令:用于查看文件的具體存儲細節和時間等信息,語法格式為“stat文件名稱”Linux系統中的文件包含3種時間狀態,分別是Access Time(內容最后一次被訪問的時間,簡稱為Atime),Modify Time(內容最后一次被修改的時間,簡稱為Mtime)以及Change Time(文件屬性最后一次被修改的時間,簡稱為Ctime)

使用state命令查看文件的這3種時間狀態信息:

[root@bogon ~]# stat anaconda-ks.cfg

?File: anaconda-ks.cfg

?Size: 2788 ? ? ? Blocks: 8 ? ? ? ? ?IO Block: 4096 ? regular file

Device: 10303h/66307d Inode: 35912821 ? ?Links: 1

Access: (0600/-rw-------) ?Uid: ( ? ?0/ ? ?root) ? Gid: ( ? ?0/ ? ?root)

Context: system_u:object_r:admin_home_t:s0

Access: 2023-11-08 11:05:37.154849436 +0800

Modify: 2023-11-06 11:37:22.053500992 +0800

Change: 2023-11-06 11:37:22.053500992 +0800

Birth: 2023-11-06 11:37:21.963500146 +0800

grep命令:用于按行提取文本內容,語法格式為“grep [參數] 文件名稱”

-n參數用來顯示搜索到的信息的行號

-v參數用于反選信息(即沒有包含關鍵詞的所有信息行)

grep命令中參數及其作用

參數作用
-b將可執行文件(binary)當作文本文件(text)來搜索
-c僅顯示找到的行數
-i忽略大小寫
-n顯示行號
-v反向選擇——僅列出沒有“關鍵詞”的行。

使用grep命令查找出當前系統中不允許登錄系統的所有用戶的信息:

[root@bogon ~]# grep /sbin/nologin /etc/passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

cut命令:用于按“列”提取文本內容,語法格式為“cut [參數] 文件名稱”

提取出passwd文件中的用戶名信息,即提取以冒號(:)為間隔符號的第一列內容:

[root@bogon ~]# cut -d : -f 1 /etc/passwd

root

bin

daemon

diff命令:用于比較多個文件之間內容的差異,語法格式為“diff [參數] 文件名稱A 文件名稱B”使用--brief參數來確認兩個文件是否相同,使用-c參數來詳細比較出多個文件的差異之處

做倆文件,復制一樣的內容,稍微改一行

[root@bogon ~]# vim test1

[root@bogon ~]# vim test2

[root@bogon ~]# diff --brief test1 test2

Files test1 and test2 differ

[root@bogon ~]# diff -c test1 test2

*** test1 2023-11-08 15:24:51.300664734 +0800

--- test2 2023-11-08 15:25:20.331739086 +0800

***************

*** 2,8 ****

?bin

?daemon

?adm

! lp

?sync

?shutdown

?halt

--- 2,8 ----

?bin

?daemon

?adm

! LP

?sync

?shutdown

?halt

uniq命令:用于去除文本中連續的重復行,語法格式為“uniq [參數] 文件名稱”

[root@bogon ~]# uniq test2

root

bin

daemon

sort命令:用于對文本內容進行再排序,語法格式為“sort [參數] 文件名稱”

sort命令中參數及作用

參數作用
-f忽略大小寫
-b忽略縮進與空格
-n以數值型排序
-r反向排序
-u去除重復行
-t指定間隔符
-k設置字段范圍

默認會按照字母順序進行排序:

[root@bogon ~]# sort test1

-u參數進行去重操作:

[root@bogon ~]# sort -u test1

-n參數進行數字排序操作:

[root@bogon ~]# sort -n test1

用-t參數指定間隔符:,用-k參數指定第3列,用-n參數進行數字排序/etc/passwd文件:

[root@bogon ~]# sort -t : -k 3 -n /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

7. 文件目錄管理命令

touch命令:用于創建空白文件或設置文件的時間,語法格式為“touch [參數] 文件名稱”

touch命令中參數及作用

參數作用
-a僅修改“讀取時間”(atime)
-m僅修改“修改時間”(mtime)
-d同時修改atime與mtime

用touch命令把修改后的文件時間設置成修改之前的時間(隱藏文件修改事實):

[root@bogon ~]# touch -d "2023-11-09 15:44" anaconda-ks.cfg

[root@bogon ~]# ls -l anaconda-ks.cfg ?

-rw-------. 1 root root 2788 Nov ?9 ?2023 anaconda-ks.cfg

mkdir命令:用于創建空白的目錄,語法格式為“mkdir [參數] 目錄名稱”

-p參數來遞歸創建出具有嵌套層疊關系的文件目錄:

[root@bogon ~]# mkdir -p /a/b/c

[root@bogon ~]# tree /a

/a

└── b

? ?└── c

2 directories, 0 files

cp命令:用于復制文件或目錄,語法格式為“cp [參數] 源文件名稱 目標文件名稱”目標文件是目錄,則會把源文件復制到該目錄中;目標文件也是普通文件,則會詢問是否要覆蓋它;目標文件不存在,則執行正常的復制操作

?cp命令中參數及作用

參數作用
-p保留原始文件的屬性
-d若對象為“鏈接文件”,則保留該“鏈接文件”的屬性
-r遞歸持續復制(用于目錄)
-i若目標文件存在則詢問是否覆蓋
-a相當于-pdr(p、d、r為上述參數)

[root@bogon ~]# ll test1

-rw-r--r--. 1 root root 48 Nov ?8 15:24 test1

[root@bogon ~]# cp -a test1 test2

cp: overwrite 'test2'? ?

[root@bogon ~]# ll test2

-rw-r--r--. 1 root root 48 Nov ?8 15:25 test2

mv命令:用于剪切或重命名文件,語法格式為“mv [參數] 源文件名稱 目標文件名稱”默認會把源文件刪除,只保留剪切后的文件。如果在同一個目錄中將某個文件剪切后還粘貼到當前目錄下,其實也就是對該文件進行了重命名操作:

[root@bogon ~]# mv test1 test3

[root@bogon ~]# ll test3

-rw-r--r--. 1 root root 48 Nov ?8 15:24 test3

rm命令:用于刪除文件或目錄,語法格式為“rm [參數] 文件 ? ?名稱”

rm命令中參數及作用

參數作用
-f強制執行
-i刪除前詢問
-r刪除目錄
-v顯示過程

rm命令后-f參數來強制刪除。-r參數刪除目錄:

[root@bogon ~]# rm -rf test3

[root@bogon ~]# ll test3

ls: cannot access 'test3': No such file or directory

dd命令:用于按照指定大小和個數的數據塊來復制文件或轉換文件,語法格式為“dd if=參數值of=參數值count=參數值bs=參數值”

?dd命令中參數及作用

參數作用
if輸入的文件名稱
of輸出的文件名稱
bs設置每個“塊”的大小
count設置要復制“塊”的個數

dd命令從/dev/zero設備文件中取出一個大小為560MB的數據塊,然后保存成名為560的文件:

[root@bogon ~]# dd if=/dev/zero of=560 count=1 bs=560M

1+0 records in

1+0 records out

587202560 bytes (587 MB, 560 MiB) copied, 3.56762 s, 165 MB/s

[root@bogon ~]# ls -hl 560

-rw-r--r--. 1 root root 560M Nov ?8 15:53 560

使用dd命令來壓制出光盤鏡像文件(首先確保虛擬機設置設備連接且使用iso映像文件):

image.png

(時間太長我直接ctrl+c終止了,需要打包的可以試試應該是10.1G)

[root@bogon ~]# dd if=/dev/cdrom of=RHEL-server-8.5.iso

3188193+0 records in

3188192+0 records out

1632354304 bytes (1.6 GB, 1.5 GiB) copied, 541.769 s, 3.0 MB/s

file命令:用于查看文件的類型,語法格式為“file文件名稱”

使用file命令來查看文件類型:

[root@bogon ~]# file anaconda-ks.cfg ?

anaconda-ks.cfg: ASCII text

tar命令:用于對文件進行打包壓縮或解壓,語法格式為“tar參數 文件名稱”Linux系統中,主要使用的是.tar、.tar.gz或.tar.bz2格式

tar命令中參數及作用

參數作用
-c創建壓縮文件
-x解開壓縮文件
-t查看壓縮包內有哪些文件
-z用Gzip壓縮或解壓
-j用bzip2壓縮或解壓
-v顯示壓縮或解壓的過程
-f目標文件名
-p保留原始的權限與屬性
-P使用絕對路徑來壓縮
-C指定解壓到的目錄

“tar -czvf壓縮包名稱.tar.gz要打包的目錄”命令把指定的文件進行打包壓縮;解壓命令為“tar -xzvf壓縮包名稱.tar.gz”

[root@bogon ~]# tar -zcvf test.tar.gz test2 ?

test2

[root@bogon ~]# tar -zxvf test.tar.gz

test2

上一章把多用戶圖形改成了文本,有好多人不適應,所以我們也可以通過軟鏈換回來,命令如下:

[root@bogon ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166903.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Debian12試用報告

環境: win11vbox 虛擬機 網絡: host-only訪問局域網 nat 訪問外網, 配置為dhcp動態獲取ip 遇到的問題: 偶爾卡死: nat每次開機都不生效, 外網無法訪問; 開機后 重啟網絡可解決 sudo /etc/init.d/networking restart host-only倒是沒問題, 內網正常訪問 vim9還是用不習…

生產實踐:Redis與Mysql的數據強一致性方案

公眾號「架構成長指南」&#xff0c;專注于生產實踐、云原生、分布式系統、大數據技術分享。 數據庫和Redis如何保存強一致性&#xff0c;這篇文章告訴你 目的 Redis和Msql來保持數據同步&#xff0c;并且強一致&#xff0c;以此來提高對應接口的響應速度&#xff0c;剛開始考…

探索移動端可能性:Capacitor5.5.1和vue2在Android studio中精細融合

介紹&#xff1a; 移動應用開發是日益復雜的任務&#xff0c;本文將帶領您深入探索如何無縫集成Capacitor5.5.1、Vue2和Android Studio&#xff0c;以加速您的開發流程Capacitor 是一個用于構建跨平臺移動應用程序的開源框架。Vue 是一個流行的 JavaScript 框架&#xff0c;用…

多線程Thread(初階三:線程的狀態及線程安全)

目錄 一、線程的狀態 二、線程安全 一、線程的狀態 1.NEW Thread&#xff1a;對象創建好了&#xff0c;但是還沒有調用 start 方法在系統中創建線程。 2.TERMINATED&#xff1a; Thread 對象仍然存在,但是系統內部的線程已經執行完畢了。 3.RUNNABLE&#xff1a; 就緒狀態&…

雪花算法原理(設計原理、優缺點、如何改造它、以及應用)

雪花算法原理&#xff08;設計原理、優缺點、如何改造它、以及應用&#xff09; 雪花算法源碼為什么雪花算法是 64 位&#xff1f;為什么時間戳是41位&#xff1f;占雪花算法的 43-47 bit 位為什么工作臺最大只支持設置 31 &#xff1f;工作臺設置成了 63 會導致什么后果&#…

JeecgBoot3.0 漏洞升級 — 快速文檔

近幾年來&#xff0c;黑客攻擊行為呈現出日益復雜和隱蔽的趨勢&#xff0c;對個人和組織的安全造成了嚴重威脅。黑客們不斷尋找新的漏洞和安全漏洞&#xff0c;利用各種手段進行網絡攻擊&#xff0c;包括惡意軟件、網絡釣魚、勒索軟件等。因此&#xff0c;我們每個人都需要關注…

Java 之 final 詳解

目錄 一. 前言 二. final 的基礎使用 2.1. 修飾類 2.2. 修飾方法 2.2.1. private 方法是隱式的 final 2.2.2. final 方法可以被重載 2.3. 修飾參數 2.4. 修飾變量 2.4.1. static final 2.4.2. blank final 2.4.3. 所有 final 修飾的字段都是編譯期常量嗎&#xff1f…

數據結構:二叉查找樹,平衡二叉樹AVLTree,紅黑樹RBTree,平衡多路查找數B-Tree,B+Tree

二叉查找樹 二叉樹具有以下性質&#xff1a;左子樹的鍵值小于根的鍵值&#xff0c;右子樹的鍵值大于根的鍵值。 對該二叉樹的節點進行查找發現深度為1的節點的查找次數為1&#xff0c;深度為2的查找次數為2&#xff0c;深度為n的節點的查找次數為n&#xff0c;因此其平均查找次…

2023年亞太數學建模C題數據分享+詳細思路

在報名截止的前一天&#xff0c;我嘗試進行了報名。到那時&#xff0c;已有11,000個隊伍注冊參賽。在我的了解中&#xff0c;在數模比賽中除了國賽美賽外&#xff0c;幾乎沒有其他競賽的參賽隊伍數量能與此相媲美。即便不考慮賽題的難度和認可度&#xff0c;亞太地區的這場競賽…

JavaScript實現動態背景顏色

JavaScript實現動態背景顏色 前言實現過程HTML實現過程CSS實現過程JS實現過程全部源碼 前言 本文主要講解JavaScript如何實現動態背景顏色&#xff0c;可以根據顏色選擇器選擇的顏色而實時更新到背景中&#xff0c;如下圖所示。 當我們在顏色選擇器中改變顏色時&#xff0c;會…

代碼掃描,漏洞檢測

1) SQL注入是一種數據庫攻擊手段。攻擊者通過向應用程序提交惡意代碼來改變原SQL語句的含義&#xff0c;進而執行任意SQL命令&#xff0c;達到入侵數據庫乃至操作系統的目的。在Mybatis Mapper Xml中&#xff0c;#變量名稱創建參數化查詢SQL語句,不會導致SQL注入。而$變量名稱…

SPSS信度分析

前言&#xff1a; 本專欄參考教材為《SPSS22.0從入門到精通》&#xff0c;由于軟件版本原因&#xff0c;部分內容有所改變&#xff0c;為適應軟件版本的變化&#xff0c;特此創作此專欄便于大家學習。本專欄使用軟件為&#xff1a;SPSS25.0 本專欄所有的數據文件請點擊此鏈接下…

內網滲透之Linux權限提升大法

文章目錄 內網滲透|Linux權限提升大法0x01 前言0x02 工具介紹1.traitor2.LinEnum3.linux-exploit-suggester.sh4.Linux Exploit Suggester 25.beroot 0X02提權手法1.環境變量提權2.利用suid提權3.定時任務提權3.1定時任務文件覆蓋提權3.2定時任務tar命令通配符注入提權 4.sudo提…

【matlab程序】matlab給風速添加圖例大小

【matlab程序】matlab給風速添加圖例大小 clear;clc;close all; % load 加載風速數據。 load(matlab.mat) % 加載顏色包信息 gray load(D:\matlab_work\函數名為colormore的顏色索引表制作\R_color_txt\R_color_single\gray89.txt); brown load(D:\matlab_work\函數名為color…

_STORAGE_WRITE_ERROR_ thinkphp報錯問題原因

整個報錯內容如下 Uncaught exception Think\Exception with message _STORAGE_WRITE_ERROR_:./Runtime/Cache/Home/1338db9dec777aab181d4e74d1bdf964.php in C:\inetpub\wwwroot\ThinkPHP\Common\functions.php:101 Stack trace: #0 C:\inetpub\wwwroot\ThinkPHP\Library\…

1. 應用編程概念

1. 應用編程概念 1 系統調用概念1 應用編程和裸機編程、驅動編程的區別 1 系統調用概念 系統調用其實是 Linux 內核提供給應用層的應用編程接口&#xff0c;是 Linux 應用層進入內核的入口。用戶通過系統調用來使用系統提供的各種服務&#xff0c;實現了與內核的交互。 1 應用…

JavaFx 設置窗口邊框圓角

UI界面要求窗口邊框有一定弧度&#xff0c;因為之前沒有做過&#xff0c;網上看了很多文章&#xff0c;都用到了css語句 "-fx-background-radius: ; 我在xml布局文件根節點使用無效&#xff0c;在Scene組件設置無效&#xff0c;gpt等ai問了一圈代碼也是無效&#xff0c;…

【JavaEE】認識多線程

作者主頁&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感謝你閱讀本文&#xff0c;歡迎一建三連哦。 本文錄入于《vaEE》專欄&#xff0c;本專欄是針對于大學生&#xff0c;編程小白精心打造的。筆者用重金(時間和精力)打造&am…

React + BraftEditor 實現富文本編輯

Braft Editor 是一個基于 React 和 Draft-js 開發的富文本編輯器&#xff0c;提供了豐富的基礎功能&#xff0c;如基本文本格式化、列表、鏈接、圖片上傳、視頻插入等&#xff0c;并且還支持擴展。 首先&#xff0c;確保你已經在項目中安裝了 Braft Editor 和它的依賴項&#x…

NPU、CPU、GPU算力及算力計算方式

NVIDIA在9月20日發布的NVIDIA DRIVE Thor 新一代集中式車載計算平臺&#xff0c;可在單個安全、可靠的系統上運行高級駕駛員輔助應用和車載信息娛樂應用。提供 2000 萬億次浮點運算性能&#xff08;2000 萬億次8位浮點運算&#xff09;。NVIDIA當代產品是Orin&#xff0c;算力是…