前言:
在前面我們已經講了有十幾個Linux的基礎指令,今天我們再補充幾個常用的基礎指令,為后面的學習做準備 。
目錄
前言:
一、兩個與時間相關的指令
1.date指令
演示 :
時間戳
設置時間
?2、cal指令
?演示:
二、find 指令
find指令
演示:
?三、?grep 指令
grep指令
演示 :
五、zip/unzip指令
zip/unzip指令?
演示:?
六、tar指令?
tar指令
演示:?
七、bc 指令
bc指令
演示 :
八、uname指令
uname指令
演示:?
?總結
一、兩個與時間相關的指令
1.date指令
功能: 用于顯示和設置系統的日期和時間
- 基本用途:
- 查看當前時間: 直接在終端中輸入date;
- 設置系統時間: 使用date -s后跟日期和時間字符串,格式為"YYYY-MM-DD HH:MM:SS",注意字符串需要用雙引號括起來;(講的可能太抽象了,還是看下面的例子)
- 顯示特定格式的日期和時間: 可以使用date +下面的格式化選項(這里的“+”是要寫上去的)
- 常用選項(關于選項的記憶,大家直接當成相關的英文單詞記憶就行,月和分選項的大小寫要注意區分)
- %H:小時
- %M:分鐘
- %S:秒
- %X:相當于%H:%M:%S
- %d:日
- %m:月
- %Y:年
- %F/%x:相當于%Y-%m-%d
相信大部分同學對上面功能的簡述不理解,接下來我將用示例帶大家學習。
演示 :
1)基礎指令
2) 以特定的格式顯示當前時間
?
時間戳
時間戳是一個很有意思的概念,因為每個地方時間都不一樣,計算機界為了同一時間,就把1970年午夜作為一個起點,之后每過一秒加1,一直持續到現在。
查看當前時間對應的時間戳的方法:date +%s
查看一個時間戳所對應的時間的方法:date -d@數字
在上面我們提到了時間戳,時間戳又是什么呢?為啥為0的時間戳對應的時間是早上八點呢?關于它的詳細概念,我會像之前那樣專門寫一篇博客介紹一下。
設置時間
date -s //設置當前時間,只有root權限才能設置,其他只能查看。
date -s 20250412?//設置成20250412,這樣會把具體時間設置成空00:00:00date -s 01:01:01 //設置具體時間,不會對日期做更改
----------下面的幾種寫法只是將時間點的書寫順序改變了,效果是不變的------------------------
date -s “01:01:01 2025-04-12″ //這樣可以設置全部時間date -s “01:01:01 20250412″ //這樣可以設置全部時間
date -s “2025-04-12?01:01:01″ //這樣可以設置全部時間date -s “20250412?01:01:01″ //這樣可以設置全部時間
這里我就不是叫演示了,大家有興趣的可以嘗試一下
?2、cal指令
cal指令
cal指令可以幫助我們查看日歷相關的信息
- 語法:cal 【選項】【時間】
- 功能:查看當前的日歷
- 常用選項:
-3?顯示系統前一個月,當前月,下一個月的月歷
-j??顯示在當年中的第幾天(一年日期按天算,從1月1號算起,默認顯示當前月在一年中的天? ? ? 數)
-y??顯示當前年份的日歷
?演示:
1)-3
2)-j(偷偷告訴你,在date指令當中用該選項同樣有這種效果)
3) -y
二、find 指令
find指令
find指令是非常重要的,它能幫助我們在指定路徑下查找文件,功能非常強大。
- 語法: find 【路徑】【選項】【文件名】
- 功能: 用于在文件中查找文件,并作出相應的處理(可能訪問磁盤)
- 常用選項:
- -name:按文件名搜索。支持使用通配符(如*、?等)
- -iname:類似于-name,但搜索時不區分大小寫
- -type:按文件類型搜索。例如,f表示普通文件,d表示目錄
演示:
注:在前面我們講過Linux下文件的存放形式是類似樹狀的,而我們普通用戶的家目錄也只是樹上的一個分支,當我們以普通用戶的身份查找文件時,我們只能查找我們這個家目錄下的文件,其它文件我們是無權查看的,是會收到權限的限制。
如下:我們是普通用戶,但嘗試在其他用戶家目錄下查找
我們發現文件后面有:Permission denied,這就是我們沒有權限的意思,如果想要查看這種文件我們可以切換到root身份下進行
?三、?grep 指令
grep指令的功能就是在文件中搜索特定字符串,并將找到的文本行打印出來,在配合查找大型文件時十分好用
grep指令
- 語法: grep [選項】[模式] [文件]
- 功能: 在文件中搜索字符串,將找到的行打印出來
- 常用選項:
-i: 忽略大小寫
-v: 反向選擇,只顯示不匹配的文本行
-c: 計算匹配的行數,而不是顯示匹配的行內容
-l: 只列出包含匹配文本的文件名,而不顯示匹配的文本行
-L: 只列出不包含匹配文本的文件名
-n: 顯示匹配的行號及內容
演示 :
首先,我們創建一個較大的文本用來模擬現實可能出現的使用場景。
1 #include<stdio.h>2 3 4 int main()5 {6 7 for(int i=0;i<10000;i++)8 {9 printf("這是第%d行\n",i);10 }11 12 return 0;13 }
利用重定向快速創建出來,上面是test.c的代碼。?
1)不帶選項
2)-v
3) -c(這里我將兩個指令連用了,單用效果是一樣的)
由于選項較多,但是使用方法就是上面的那些,所以剩下的大家直接去實踐一下吧。?
五、zip/unzip指令
zip和unzip是兩個命令行工具,分別用于壓縮文件和目錄(打包成.zip格式)以及解壓縮.zip文件,
打包和壓縮對于我們來說應該并不陌生,在Windows下就經常需要將一個或幾個相關聯的文件打包壓縮在一起,這樣即可以防止這些文件中發生部分丟失也可以節省內存;在Linux下同理。
首先在使用它們之前,我們應該確保操作系統已經安裝了這個軟件,如果沒有安裝可以通過執行一下命令來安裝。
yum install -y unzip zip
如果已有了,就會顯示下圖。
zip/unzip指令?
- 語法:?zip 【選項】【壓縮文件】/? unzip 【選項】【以壓縮文件】
- 功能:?將目錄或文件壓縮成zip格式
- 常用選項:
? ? ? ? ? -r:?遞歸地將目錄及子目錄下的所有文件和目錄都壓縮到壓縮文件中
? ? ? ? ? -d: 將壓縮文件解壓到指定目錄下。?
演示:?
1)-r,觀察下圖我們發現如果沒帶 -r選項,zip選項只能壓縮一個空文件,沒有用。
2)-r+-d
進行解壓,下面的問題是因為我選擇的新目錄當中有同名文件。?
六、tar指令?
Linux中最常用的歸檔(打包)命令,該命令可以將許多文件一起保存到一個單獨的磁帶或磁盤中進行歸檔。不僅如此,該命令還可以從歸檔文件中還原所需文件,也就是打包的反過程,稱為解包,但是它與zip/unzip指令還是有所不同的
tar指令
- 語法:tar [選項] 源文件或目錄
- 作用:?打包和解包文件
- 常用選項:
-c :建立一個壓縮文件的參數指令(create 的意思);
-x :解開一個壓縮文件的參數指令!
-t :查看 tarfile 里面的文件!
-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程!
-f :使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數!
-C : 解壓到指定目錄
tar指令的相關選項的組合有很多,但我們主要記住下面三個就行:
- tar? ?czf dir.tgz dir:將目錄dir打包成dir.zip文件
- tar? ?xzf dir.tgz:將文件dir.zip解壓到當前目錄
- tar? ?xzf? ?dir.tgz -C otherdir:將文件dir.zip解壓到指定目錄
tar ztvf dir.tgz
:直接查看壓縮包內的文件(無需解壓)
演示:?
1)czf與xzf
先將原來的文件改名,防止影響解壓?
2)xzf + -C
3)ztvf
關于兩種打包壓縮指令的選擇
一般在純Linux環境下使用我們更建議使用tar指令,如果是希望我們打包和壓縮的文件在windows下也可以很方便的互通,那么我們更建議zip/unzip指令
七、bc 指令
bc指令就是操作系統當中一個內置的簡單計算器,可以很方便的進行浮點運算。
bc指令
- 語法:bc?
- 作用:進行簡單的計算
- 常用選項:無
演示 :
比如這個例子中,我們進行了加法和乘法的運算,在執行完相關的運算后,按crtl+c/按quit退出
八、uname指令
uname指令是用來幫助我們查看我們當前使用的Linux的內核版本的各種信息,就類似Windows下的電腦管家。
uname指令
- 語法:uname [選項]
- 功能:uname用來獲取電腦和操作系統的相關信息。
- 補充說明:uname可顯示linux主機所用的操作系統的版本、硬件的名稱等基本信息。
- 常用選項:
-a或–all 顯示全部的信息。
-m或–machine 顯示電腦類型。
-n或–nodename 顯示在網絡上的主機名稱。
-r或–release 顯示操作系統的發行編號。
-s或–sysname 顯示操作系統名稱。
-v 顯示操作系統的版本。
–help 顯示幫助。
?
演示:
1)-a?
對應打印出來的信息解讀,大家可以結合下圖理解,或者上網查找更詳細的資料。?
a或–all 詳細輸出所有信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操作系統名稱
后面的選項結果不好放出,我就不做演示了,大家可以自己試試。?
?總結
結合之前講的兩篇,我們講的指令總共也有二三十個了,這些就是Linux中的一些常用的并且比較基礎的指令,接下來還會有一篇指令的講解。
本篇文章的分享就到這里了,如果您覺得在本文有所收獲,能不能點一個免費的贊支持一下呢。