??紙上得來終覺淺, 絕知此事要躬行。
??主頁:June-Frost
??專欄:Linux入門
??該文章主要了解Linux操作系統(tǒng)下的基本指令。
??該篇為Linux指令部分的終章,如果您想了解前兩篇文章的內(nèi)容,可以在閱讀本文后點擊??【Linux】從零開始學(xué)習(xí)Linux基本指令(一) 和 【Linux】從零開始學(xué)習(xí)Linux基本指令(二)了解更多。
?? 從文件角度理解Linux
?重要設(shè)計思想——在Linux系統(tǒng)下一切皆為文件。系統(tǒng)的所有組件和資源,包括硬件設(shè)備、配置信息、數(shù)據(jù)等,都可以被視為文件。這種思想源自于Unix操作系統(tǒng),而Linux作為Unix的開源版本,繼承了這一設(shè)計思想。
?在Linux系統(tǒng)中,硬件設(shè)備也被抽象為文件來管理。每個設(shè)備都有對應(yīng)的設(shè)備文件,例如硬盤、光驅(qū)、網(wǎng)卡等。用戶可以通過打開和讀取這些設(shè)備文件來訪問硬件設(shè)備,例如使用命令行工具來讀取或?qū)懭胗脖P中的數(shù)據(jù)。此外,Linux系統(tǒng)中的配置信息也以文件的形式存儲。例如,網(wǎng)絡(luò)配置、系統(tǒng)環(huán)境變量、服務(wù)配置等都存儲在各種配置文件中。這些配置文件可以被編輯和修改,以適應(yīng)不同用戶和系統(tǒng)的需求。對于用戶數(shù)據(jù),Linux系統(tǒng)也將其視為文件進(jìn)行處理。每個用戶都有自己的主目錄,其中包含了用戶的配置文件、文檔、圖片等數(shù)據(jù)。用戶可以通過文件操作來訪問、修改和刪除這些數(shù)據(jù)。
?這種設(shè)計使得系統(tǒng)非常靈活和可配置,用戶可以輕松地管理和訪問系統(tǒng)中的各種資源。這種設(shè)計也使得Linux成為一個非常強大和穩(wěn)定的操作系統(tǒng),適合用于各種不同的應(yīng)用場景。
?輸入/輸出重定向
-
>
輸出重新向
??echo
指令可以輸出指定的字符串或變量值到標(biāo)準(zhǔn)輸出設(shè)備(顯示器),由于Linux系統(tǒng)下一切皆為文件,所以echo
可以看作默認(rèn)向顯示器文件寫入,通過輸出重定向,就可以將命令的輸出結(jié)果從標(biāo)準(zhǔn)輸出設(shè)備(顯示器)重定向到其他設(shè)備或文件中。
? >
有兩個特點:
-
>
右邊的文件如果沒有創(chuàng)建,那么系統(tǒng)會嘗試創(chuàng)建一個新的文件。通過這個特性,我們就可以建造一個空文件。
-
>
右邊如果文件已經(jīng)存在,那么它會被清空,并且新的輸出會被寫入到這個文件中。當(dāng)然,如果沒有內(nèi)容就只清空文件。
??>
會清空目標(biāo)文件,而在Linux中,>>
是用于將輸出追加到已存在的文件中的重定向符號。它不會覆蓋現(xiàn)有文件的內(nèi)容,而是將新內(nèi)容添加到文件的末尾。
這里補充一下
cat
選項的具體使用(按照上面的內(nèi)容為例):
-b
對非空輸出行編號
-n
對輸出的所有行編號
-s
不輸出多行空行
tac
是cat
的倒序版。
-
<
輸入重定向
?這里運用cat
指令來幫助理解它的作用。對于cat
指令,用戶輸入什么,它就會對應(yīng)打印什么,這說明cat
默認(rèn)讀取鍵盤文件,然后向顯示器輸出。我們可以運用輸入重定向使得cat
去讀取其它文件。
?? 一些常見指令
?? date 指令
-
語法:
date [OPTION]... [+FORMAT]
功能:用于獲取和操作日期和時間。
?其中,OPTION是可選的參數(shù),F(xiàn)ORMAT是用于指定日期和時間輸出的格式。
?但是這種方式還是不太直觀,所以我們可以將其格式化。
??格式化的一些選項:
%H
: 小時(00…23)%M
: 分鐘(00…59)%S
: 秒(00…61)%X
: 相當(dāng)于 %H:%M:%S%d
: 日 (01…31)%m
: 月份 (01…12)%Y
: 完整年份 (0000…9999)%F
: 相當(dāng)于 %Y-%m-%d
?通過date +%s
, 可以查看當(dāng)前的時間戳。(Unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。在計算機科學(xué)和數(shù)據(jù)領(lǐng)域中,時間戳被廣泛用于記錄事件發(fā)生的時間,以便進(jìn)行事件溯源、數(shù)據(jù)同步和時間排序等操作。)
?通過date -d @時間戳
就可以實現(xiàn)時間戳轉(zhuǎn)化時間。
??談一談時間的重要性:
?在軟件開發(fā)中,日志是一個非常重要的工具,它為開發(fā)人員和維護(hù)人員提供了應(yīng)用程序運行時的信息,幫助他們跟蹤和診斷問題,提高應(yīng)用程序的可靠性和可維護(hù)性。在日志中很常見的兩種時間就是剛才提到的時間戳和日期時間。日期時間的可讀性強,以人類可讀的形式表示時間,可以直接查看和閱讀。而時間戳是遞增的,它具有唯一性,可以進(jìn)行范圍查找。
?? cal 指令
-
語法:
cal [參數(shù)][月份][年份]
功能:顯示公歷(陽歷)日歷。它主要用于查看日歷等時間信息。如果參數(shù)后面跟一個值,則表示年份(1-9999),如有參數(shù)后面跟兩個值,則表示月份和年份,如果參數(shù)后面沒有值,則顯示本月日歷。
??一些常用的選項:
-1
顯示一個月的月歷。-3
顯示系統(tǒng)前一個月,當(dāng)前月,下一個月的月歷。-s
顯示星期天為一個星期的第一天,默認(rèn)的格式。-m
顯示星期一為一個星期的第一天。-j
顯示在當(dāng)年中的第幾天(一年日期按天算,從1月1號算起,默認(rèn)顯示當(dāng)前月在一年中的天數(shù))。-y
顯示當(dāng)前年份的日歷。
?? find 指令
-
語法:
find [路徑] [選項] [操作]
功能:在指定目錄下查找文件和目錄??梢愿鶕?jù)文件名、類別、時間、大小、權(quán)限等不同資訊的組合來查找文件。
說明:[路徑] 表示要搜索的目錄路徑,[選項] 是可選的搜索條件或限制,[操作] 是在找到文件后可以執(zhí)行的操作。
??Linux下find
命令提供了相當(dāng)多的查找條件,功能很強大。即使系統(tǒng)中含有網(wǎng)絡(luò)文件系統(tǒng)( NFS),只要具有相應(yīng)的權(quán)限,find
命令在該文件系統(tǒng)中同樣有效。
?對于它的功能具體來說,find
命令可以根據(jù)給定的規(guī)則在指定的路徑下搜索文件,并且可以應(yīng)用不同的選項來過濾搜索結(jié)果。例如,使用-name
選項可以按照文件名進(jìn)行搜索,-mtime
選項可以按照文件的修改時間進(jìn)行搜索。
?? whereis 指令
語法:whereis [選項][文件名]
功能:用于查找二進(jìn)制文件、源代碼和幫助文檔的位置。
?對于find指令
和whereis指令
,如果搜索的文件帶著通配符,例如:stdio.* ,這意味著尋找的文件后綴沒有要求。
??一些常用的選項:
-b
搜索文件的二進(jìn)制部分。-m
搜索文件的手冊部分。-s
搜索文件的源部分。
?? grep 指令
-
語法:
grep [選項] pattern [file...]
功能:在文件中搜索匹配某個模式的行。
說明:pattern
是要搜索的模式,可以是簡單的字符串或使用正則表達(dá)式來描述更復(fù)雜的模式。file
是要搜索的文件列表,可以是多個文件名,用空格分隔。如果未指定file,則默認(rèn)會搜索標(biāo)準(zhǔn)輸入。
?為了更好地展示它的功能,先使用nano
向一個test.txt文件中寫入一些內(nèi)容。
?在test.txt中查找有‘A’的行:
??一些常用的選項:
-i
忽略大小寫的不同,所以大小寫視為相同。![]()
-n
顯示行號。在輸出中顯示匹配行的行號。![]()
-v
反向選擇,亦即顯示出沒有 ‘搜尋字符串’ 內(nèi)容的那一行。![]()
?? grep
指令不但可以通過管道查看日志的一些錯誤信息,而且也可以配合sort
,uniq
等指令滿足一些需求(例如:查看有多少ip訪問過機器)
-
sort
功能:用于對文本文件進(jìn)行排序。
???可以按照同一套規(guī)則,把相同的內(nèi)容放在一起。
-
uniq
用于去除文件中的重復(fù)行(相鄰的行如果重復(fù),就只保留一行)。
?結(jié)合起來,通過sort 文件名 | uniq -c
就可以對test.txt文件中的內(nèi)容進(jìn)行排序,去除重復(fù)行并統(tǒng)計每行的出現(xiàn)次數(shù)。
?? 打包壓縮和解壓解包
?在Linux中,打包壓縮是一種常見的文件管理技術(shù),用于將多個文件和目錄合并成一個單獨的文件,并使用壓縮算法可選擇地進(jìn)行壓縮。這樣做有很多優(yōu)點:
- 方便管理:將多個文件和目錄打包成一個文件,可以方便地對其進(jìn)行備份、傳輸和存儲,同時也可以避免在文件系統(tǒng)中出現(xiàn)大量的文件和目錄,從而簡化文件管理。
- 節(jié)省存儲空間:通過將多個文件和目錄打包并壓縮,可以大大減少存儲空間的使用。特別是在網(wǎng)絡(luò)傳輸時,壓縮文件可以減小傳輸?shù)臄?shù)據(jù)量,提高傳輸效率。
- 保護(hù)文件安全:打包壓縮可以保護(hù)文件的安全性。例如,當(dāng)一個重要文件被壓縮成一個單獨的文件時,即使其他文件被惡意修改或刪除,這個重要文件也不會受到影響。
?這里著重說明一下zip
和tar
的打包壓縮格式。
?? zip/unzip 指令
-
語法:
zip [選項] 壓縮文件名.zip 目錄或文件
功能:將目錄或文件壓縮成zip格式。
?通過選項-r
可以遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
?如果我們想解壓到tree目錄下,可以先將node.zip剪切到tree目錄下,通過unzip node.zip
就可以實現(xiàn)。
?也可以不去剪切,通過選項-d
直接將壓縮包解壓到test
目錄。
?? tar 指令
語法:tar [選項] [文件名]...
功能:將多個文件和目錄打包成一個文件,稱為歸檔文件或tar文件,同時也可以將歸檔文件中的文件解壓縮出來。
??一些常用的選項:
-c
建立一個壓縮文件的參數(shù)指令(create 的意思);-x
解開一個壓縮文件的參數(shù)指令!-t
查看 tarfile 里面的文件!-z
是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?-j
是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?-v
壓縮的過程中顯示文件!這個常用,但不建議用在背景執(zhí)行過程!-f
使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數(shù)!-C
解壓到指定目錄。
?該指令和zip
類似,如果要打包壓縮一個目錄,就使用指令 tar -czf 文件名.tgz 文件名
。如果要解壓(前面提到的先使用mv
的那種),就使用tar -xzf 文件名.tgz
。如果是直接將壓縮包解壓到其他目錄,就需要使用tar -xzf 壓縮包 -C 指定目錄
。
?如果想看到打包的過程,可以在選項中加入 -v
。文章來源:http://www.zghlxwxcb.cn/news/detail-714577.html
?? 結(jié)語
?文章到這里就結(jié)束了,如果對你有幫助,你的點贊將會是我的最大動力,如果大家有什么問題或者不同的見解,歡迎大家的留言~文章來源地址http://www.zghlxwxcb.cn/news/detail-714577.html
到了這里,關(guān)于【Linux】從零開始學(xué)習(xí)Linux基本指令(三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!