萬字詳解 Linux 常用指令(值得收藏)
點(diǎn)擊上方[全棧開發(fā)者社區(qū)]→右上角[...]→[設(shè)為星標(biāo)?
點(diǎn)擊領(lǐng)取全棧資料:全棧資料
本文將給大家詳細(xì)介紹Linux常用的指令、演示以及一些基礎(chǔ)知識(shí)的講解

目錄
ls指令 file指令 pwd命令 whoami指令 cd指令 相對(duì)路徑和絕對(duì)路徑 which指令 touch指令 mkdir指令 添加用戶信任關(guān)系 rmdir指令 rm指令 man指令 cp指令 mv指令 編輯 cat指令 echo指令 重定向 more指令 less指令 head 指令 tail指令 管道操作 date指令 cal指令 find指令 grep指令 zip指令/unzip指令 tar指令 bc指令 uname 指令 shutdown指令 stat指令 Linux下的三個(gè)時(shí)間 touch指令補(bǔ)充 Linux中的熱鍵- 指令一覽
ls指令
語法:ls [選項(xiàng)] [目錄]
功能:ls有多個(gè)選項(xiàng),對(duì)于目錄,該命令列出該目錄下的所有子目錄與文件。對(duì)于文件,將列出文件名以及其他信息
ls不帶選項(xiàng)默認(rèn)顯示當(dāng)前目錄下的文件

選項(xiàng):
-l :以列表的形式列出文件詳細(xì)信息

在Linux系統(tǒng)中,不以文件后綴區(qū)分文件類型,而是以第一個(gè)字符標(biāo)識(shí)文件類型,不管是文件后綴是.c還是.txt或是其他后綴,只有是以-開頭的就是普通文件
d:目錄文件,簡單來說就是文件夾,我們可以在該目錄文件下新建文件 -:普通文件,分為文本文件、動(dòng)靜態(tài)庫、可執(zhí)行程序等 l:軟鏈接(類似Windows的快捷方式) b:塊設(shè)備文件(例如硬盤、光驅(qū)等) p:管道文件 c:字符設(shè)備文件(例如屏幕等串口設(shè)備)- s:套接口文件
我們今天重點(diǎn)在前面的兩類文件
單普通文件就可以分很多種,為了兼容windows同時(shí)便于我們大多數(shù)linux的用戶區(qū)分文件的不同,我們還是習(xí)慣通過后綴來表示不同文件的類型。但有的文件必須加后綴,例如用c語言寫的
.c文件,需要特殊處理,以后綴區(qū)分類型
-a:顯示目錄下的所有文件包括隱藏文件,以點(diǎn)開頭的表示隱藏文件,其中一個(gè)點(diǎn)表示當(dāng)前路徑,兩個(gè)點(diǎn)表示上一級(jí)路徑,我們將在下面的cd指令中講解和..

-d :將目錄像文件一樣顯示,而不顯示目錄下的文件,這里的點(diǎn),就表示當(dāng)前路徑

-R:列出所有子目錄下的文件(以遞歸的方式) ,目錄下的所有文件都會(huì)列出來

-n :用數(shù)字的 UID,GID 代替名稱

還有一些其他的選項(xiàng)就不演示了,大家下去可以嘗試一下
-1 一行只輸出一個(gè)文件 -r 對(duì)目錄反向排序 -k 以 k 字節(jié)的形式表示文件的大小。ls –alk 指定文件 -i 輸出文件的 i 節(jié)點(diǎn)的索引信息。如 ls –ai 指定文件- -t 以時(shí)間排序
file指令
功能:查看文件類型
語法:file [文件]
[king@VM-12-11-centos ~]$ file cat.txt
cat.txt: UTF-8 Unicode text #類型是文本文件
[king@VM-12-11-centos ~]$ file ret #類型是目錄文件
ret: directory
pwd命令
語法:pwd
功能:顯示當(dāng)前路徑

whoami指令
功能:顯示當(dāng)前用戶
兩種寫法

cd指令
功能:切換路徑
用法:cd [想要切換的路徑]
Linux是以多叉樹的結(jié)構(gòu)管理文件的,磁盤上的文件和目錄被組成一棵目錄樹,每個(gè)節(jié)點(diǎn)都是目錄或文件。根目錄:/

相對(duì)路徑和絕對(duì)路徑
當(dāng)我們需要找一個(gè)文件時(shí),就必須知道文件所在路徑和文件名,例如尋找text.c文件,因?yàn)槊恳粋€(gè)節(jié)點(diǎn)只有一個(gè)父親節(jié)點(diǎn),從根目錄出發(fā)到text.c文件的路徑是唯一的。完整的描述文件位置的路徑就是絕對(duì)路徑,絕對(duì)路徑能唯一標(biāo)識(shí)一個(gè)文件,上面的pwd指令顯示的就是絕對(duì)路徑

而相對(duì)路徑是:自己相對(duì)于目標(biāo)位置而言的路徑,不具有唯一性,我們可以從不同的位置找到文件

絕對(duì)路徑:從跟目錄出發(fā)到到指定文件的路徑,能唯一標(biāo)識(shí)一個(gè)文件
相對(duì)路徑:從某個(gè)文件出發(fā)到指定文件的路徑,不能唯一標(biāo)識(shí)一個(gè)文件
cd命令就可以通過相對(duì)路徑和絕對(duì)路徑的方式進(jìn)行路徑切換
可以通過絕對(duì)路徑切換到指定目錄

也可以通過相對(duì)路徑切換,點(diǎn)點(diǎn)表示上一級(jí)路徑,cd ..切換到上一級(jí)目錄,cd ../../ 切換到上上級(jí)路徑

[king@VM-12-11-centos Linuxclass]$ pwd
/home/king/Linuxclass
[king@VM-12-11-centos Linuxclass]$ cd classcode
[king@VM-12-11-centos classcode]$ ls
a.out ret.txt test test.c
[king@VM-12-11-centos classcode]$ cd test
[king@VM-12-11-centos test]$ cd ../../p1 #切換到上上級(jí)目錄的p1路徑下
[king@VM-12-11-centos p1]$ pwd
/home/king/Linuxclass/p1
有的小伙伴可能就有疑問了,cd ..可以切換到上一級(jí)路徑,那么cd .有什么用呢?我們本來就在當(dāng)前目錄下,不需要切換啊。
這里我們用vim編寫一個(gè)
hello Linux的代碼,通過gcc編譯,生成a.out的可執(zhí)行程序,而我們要運(yùn)行可執(zhí)行程序就需要路徑和文件名,用點(diǎn)就可以表示它的路徑了,相比于下面用絕對(duì)路徑方便很多

cd還有兩個(gè)選項(xiàng)
[king@VM-12-11-centos Linuxclass]$ pwd
/home/king/Linuxclass
[king@VM-12-11-centos Linuxclass]$ cd ~ #cd ~進(jìn)入工作目錄,就是用戶的路徑下
[king@VM-12-11-centos ~]$ pwd
/home/king
[king@VM-12-11-centos ~]$ cd - #cd -返回最近一次訪問的路徑
/home/king/Linuxclass
which指令
語法:which [指令]
功能:查看指令的系統(tǒng)路徑和相關(guān)信息
[king@VM-12-11-centos Linuxclass]$ which ls
alias ls='ls --color=auto' #alias:給指令取別名
/usr/bin/ls #我們的指令都是系統(tǒng)簡化過的
[king@VM-12-11-centos Linuxclass]$ which ll
alias ll='ls -l --color=auto' #ll可以代替ls -l
/usr/bin/ls
[king@VM-12-11-centos Linuxclass]$ which cd #同時(shí)我們發(fā)現(xiàn)指令都是在bin目錄下的
/usr/bin/cd

指令本質(zhì)上就是程序,Linux中,指令、命令、工具都是可執(zhí)行程序 ,都存放在普通文件中,linux下一切皆文件,我們的指令都在bin目錄下

touch指令
功能:新建文件,更改文檔或目錄的日期,包括存取時(shí)間和更改時(shí)間,我們先了解新建文件,關(guān)于更改目錄日期我們?cè)谖恼碌淖詈蠼榻B
需要注意的是touch創(chuàng)建的是普通文件,不是目錄文件,所以不能cd進(jìn)入
[king@VM-12-11-centos test]$ touch file1 file2 file3 #touch可以連續(xù)創(chuàng)建多個(gè)文件
[king@VM-12-11-centos test]$ touch file4 #創(chuàng)建單個(gè)文件
[king@VM-12-11-centos test]$ ls
file1 file2 file3 file4
mkdir指令
功能:新建目錄文件
mkdir也可以同時(shí)創(chuàng)建多個(gè)目錄文件,cd可以進(jìn)入,但是不能在一個(gè)目錄文件下再創(chuàng)建多個(gè)子目錄,這里就顯示無法創(chuàng)建

選項(xiàng)-p:遞歸建立多個(gè)子目錄

添加用戶信任關(guān)系
這里的tree指令是以樹狀顯示文件,需要用yum下載
yum intsall -y tree
如果我們是普通用戶,需要在前面加sudo, sudo可以短暫提升權(quán)限,以root的身份執(zhí)行相應(yīng)指令
單獨(dú)su表示切換為root用戶,需要輸入root用戶的密碼

[ret@VM-12-11-centos ~]$ su
Password: #輸入root用戶密碼
[root@VM-12-11-centos ret]# whoami #切換為root用戶
root
[root@VM-12-11-centos ret]# su ret #root用戶可以直接切換成指定用戶,不需要輸入用戶密碼
[ret@VM-12-11-centos ~]$ whoami #現(xiàn)在我們就切換到用戶ret了
ret
如果我們sudo yum install -y tree顯示類似如下的指令,表示當(dāng)前用戶沒有添加信任關(guān)系

需要以root的身份幫用戶添加信任關(guān)系,我們將身份切換為root用戶,執(zhí)行如下指令即可添加信任關(guān)系,之后我們就可以sudo 了
echo 'xxx ALL=(ALL) ALL' >> /etc/sudoers (其中xxx代表用戶名)
rmdir指令
功能:刪除空目錄 ,也就是不存放其他文件的目錄
這里p1不為空,所以無法刪除,如要借助rm指令

rm指令
我們刪除文件一般都用rm指令,rmdir有點(diǎn)雞肋
功能:刪除目錄或文件
選項(xiàng):
-f:強(qiáng)制刪除 -r:刪除目錄及目錄下的所有文件,以遞歸的方式。
刪除目錄要帶r選項(xiàng),此時(shí)我們的p1/p2/p3就刪除了

如果我們想刪除目錄中的所以文件而不想刪除目錄,直接加通配符*

切記別把根目錄給刪除
rm -rf / #切記不要使用,遞歸強(qiáng)制刪除根目錄,可能會(huì)把系統(tǒng)干崩
man指令
linux中有很多的指令,如果我們不記得某個(gè)指令的使用,可以man一下,問問那個(gè)男人
選項(xiàng):
1 是普通的命令
2 是系統(tǒng)調(diào)用,如open,write之類的(通過這個(gè),至少可以很方便的查到調(diào)用這個(gè)函數(shù),需要加什么頭文 件)
3 是庫函數(shù),如printf,fread4是特殊文件,也就是/dev下的各種設(shè)備文件
5 是指文件的格式,比如passwd, 就會(huì)說明這個(gè)文件中各個(gè)字段的含義
6 是給游戲留的,由各個(gè)游戲自己定義
7 是附件還有一些變量,比如向environ這種全局變量在這里就有說明
8 是系統(tǒng)管理用的命令,這些命令只能由root使用,如ifconfig
9 內(nèi)核例程
我們目前先了解 1 和 3
同樣man需要我們下載 ,普通用戶加sudo
yum install -y man-pages
man不加選項(xiàng),默認(rèn)解釋指令
[king@VM-12-11-centos file11]$ man ls
q退出當(dāng)前界面

[king@VM-12-11-centos file11]$ man 3 printf #我們可以查看printf庫函數(shù)

cp指令
語法:cp [選項(xiàng)] [源文件] [目標(biāo)文件] [指定目錄]
功能:復(fù)制文件或目錄
常用選項(xiàng):
-f 強(qiáng)行復(fù)制文件或目錄, 不論目的文件或目錄是否已經(jīng)存在
-r 遞歸處理,將指定目錄下的文件與子目錄一并處理。
我們復(fù)制文件file11,同時(shí)命名為file

默認(rèn)復(fù)制到當(dāng)前目錄下,也可以最后指定目錄
mv指令
功能:移動(dòng)文件或重命名文件
用法:mv [選項(xiàng)] [源文件] [目標(biāo)文件]
選項(xiàng):
-f :force 強(qiáng)制的意思,如果目標(biāo)文件已經(jīng)存在,不會(huì)詢問而直接覆蓋
-i :若目標(biāo)文件 (destination) 已經(jīng)存在時(shí),就會(huì)詢問是否覆蓋!
這里我們將文件file11移動(dòng)到file目錄下

如果mv后面跟的不是文件,而是文件名,就會(huì)將文件重命名
例如將文件file11重命名為change

cat指令
功能:查看文件內(nèi)容
語法:cat [選項(xiàng)] [文件]
選項(xiàng):
-b :對(duì)非空輸出行編號(hào)
-n :對(duì)輸出的所有行編號(hào)
-s :不輸出多行空行

echo指令
功能:將字符串顯示到標(biāo)準(zhǔn)輸出,也就是屏幕上,echo默認(rèn)換行

重定向
那我們可以將字符串寫入文件中嗎?
答案是可以的,通過重定向,字符串后面加 > 符號(hào)和文件名,就可以將本該顯示到標(biāo)準(zhǔn)輸出的字符串,寫入文件中,如果文件不存在,就會(huì)自動(dòng)創(chuàng)建文件,這就是輸出重定向

將本該顯示到屏幕上的字符串寫入目標(biāo)文件中,同時(shí)輸出重定向會(huì)清空文件原始內(nèi)容再重新寫入
在此寫入時(shí),之前的hello Linux已近被清空了

想要保留之前的內(nèi)容并寫入就需要追加重定向 > 符號(hào)變成 >> 符號(hào)

cat指令后面不加文件,默認(rèn)從鍵盤中讀取內(nèi)容并回顯到顯示器上,也就是屏幕上

之前cat顯示文件內(nèi)容就是通過輸入重定向顯示的
[king@VM-12-11-centos ~]$ cat < file #這個(gè) < 符號(hào)可以省略
AAAAAAA
BBBBBBB
CCCCCCC
more指令
功能:和cat類似,一般用于查看日志,內(nèi)容比較長的文件
選項(xiàng):
-n :對(duì)行編號(hào)
q :退出more
比如這里我寫一個(gè)內(nèi)容從0-1000行的文件
count=0; while [ $count -le 1000 ]; do echo "hello ${count}"; let count++; done > cat.txt
1more會(huì)先顯示一部分內(nèi)容,按回車就可以繼續(xù)讀取內(nèi)容,按q退出,但more有一個(gè)弊端,只能往下翻,不能往上翻,所以我們一般不用more指令
less指令
功能:查看文件內(nèi)容,less用法比more更具有彈性,可以使用 [pageup][pagedown] (前后按鍵)等按鍵的功能來往前往后翻看文件,而且less在查看之前不會(huì)加載整個(gè)文件。
選項(xiàng):
-i :忽略大小寫
-N :顯示行號(hào)
/字符串:向上搜索字符串的內(nèi)容
?字符串:向下搜索字符串的內(nèi)容
n :重復(fù)前一個(gè)搜索(與/ 或?有關(guān))
N:返向重復(fù)前一個(gè)搜索(與/ 或?有關(guān))
q:退出less
[king@VM-12-11-centos ~]$ less cat.txt

我們輸入 /3向上搜索字符3,less就會(huì)幫我們標(biāo)記字符3的內(nèi)容

還有其它選項(xiàng)大家可以直接嘗試,這里就不在演示了,我們q退出less界面
head 指令
功能:顯示文件內(nèi)容的開頭到標(biāo)準(zhǔn)輸出,也就是屏幕上,head不加參數(shù)默認(rèn)顯示前10行
選項(xiàng):
-n<行數(shù)>
[king@VM-12-11-centos ~]$ head cat.txt #默認(rèn)輸出前10行
hello 0
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
[king@VM-12-11-centos ~]$ head -n5 cat.txt #指定輸出前5行
hello 0
hello 1
hello 2
hello 3
hello 4
[king@VM-12-11-centos ~]$ head -5 cat.txt # n可以省略
hello 0
hello 1
hello 2
hello 3
hello 4
tail指令
功能:用于顯示指定文件末尾內(nèi)容,我們一般查看日志時(shí)肯定是查看最新的內(nèi)容,也就是從尾部開始查看,tail就能很好的幫助我們查看最近的內(nèi)容
選項(xiàng):
-f :循環(huán)讀取
-n<行號(hào)>:顯示行數(shù)
tail - f filename會(huì)把filename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容,非常適合查看日志
[king@VM-12-11-centos ~]$ tail cat.txt #tail不加行號(hào)默認(rèn)顯示尾10行
hello 991
hello 992
hello 993
hello 994
hello 995
hello 996
hello 997
hello 998
hello 999
hello 1000
[king@VM-12-11-centos ~]$ tail -n5 cat.txt #指定顯示尾5行
hello 996
hello 997
hello 998
hello 999
hello 1000
[king@VM-12-11-centos ~]$ tail -5 cat.txt #n可以省略
hello 996
hello 997
hello 998
hello 999
hello 1000
那我們可以顯示文件的頭和尾,如果要顯示文件中間的內(nèi)容怎么辦呢?
比如我們要顯示第100行到110行,有兩種方法:
通過重定向?qū)⑶?10行寫入一個(gè)tmp臨時(shí)文件,然后在讀取尾10行,不過這種方法需要重新創(chuàng)建文件,不進(jìn)浪費(fèi)空間效率也低

答案是有的,第二種方法借助管道操作
管道操作

使用管道時(shí),默認(rèn)隱式發(fā)生了重定向
# 符號(hào) | 表示管道,通過管道將執(zhí)行的結(jié)果傳給下一條指令
[king@VM-12-11-centos ~]$ head -110 cat.txt | tail -10
hello 100
hello 101
hello 102
hello 103
hello 104
hello 105
hello 106
hello 107
hello 108
hello 109
date指令
格式
%H : 小時(shí)(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
[king@VM-12-11-centos ~]$ date #date默認(rèn)顯示
Fri Jan 28 16:55:54 CST 2022
[king@VM-12-11-centos ~]$ date +%s #date +%s顯示時(shí)間戳
1643360162
[king@VM-12-11-centos ~]$ date +%F%X #按年月日 時(shí)分秒的格式顯示當(dāng)前時(shí)間
2022-01-2804:56:08 PM
[king@VM-12-11-centos ~]$ date +%F%X@1643360162 # @時(shí)間戳,將時(shí)間戳轉(zhuǎn)換成標(biāo)準(zhǔn)時(shí)間
2022-01-2804:56:27 PM@1643360162
我們可以加_以示區(qū)分,但不能是空格,這種寫法是錯(cuò)誤的

cal指令
功能:查看日歷
選項(xiàng):
-3 顯示系統(tǒng)前一個(gè)月,當(dāng)前月,下一個(gè)月的月歷
-y 顯示當(dāng)前年份的年歷
cal默認(rèn)顯示當(dāng)前月的月歷

[king@VM-12-11-centos ~]$ cal -y 2021 #也可以指定年份顯示2021的年歷
find指令
功能:在文件數(shù)中查找文件,并做出相應(yīng)的處理(可能會(huì)訪問磁盤),find指令會(huì)幫我們?cè)诋?dāng)前目錄以及所有該目錄的所以子目錄下查找相應(yīng)的文件,當(dāng)我們遍歷一個(gè)大的文件系統(tǒng)時(shí),可能會(huì)花費(fèi)一點(diǎn)時(shí)間,然后顯示相應(yīng)的文件信息,但當(dāng)我們下一次再用find查找時(shí),就會(huì)快很多
find的選項(xiàng)非常多,這里列舉一個(gè),想了解更多可以man find
選項(xiàng):-name :按照文件名查找
我們?cè)诟夸浵虏檎椅募麨閠ext的文件,不過這里很多都是permission denied,因?yàn)槠胀ㄓ脩舻臋?quán)限不夠,有很多文件都不能讀取

我們?cè)谧约旱哪夸浵虏檎椅募麨閒ile的文件,就會(huì)把該目錄下的所以子文件名為file的顯示出來

指定目錄
語法:find [起始目錄位置] [-name][filename]

grep指令
功能:文本行過濾,搜索字符串
常用選項(xiàng):
-i:忽略大小寫,大小寫視為相同
-n:輸出行號(hào)
-v:反向選擇
還是拿那個(gè)文件內(nèi)容為0-1000行的文件cat.txt舉例
我們?cè)陲@示文件內(nèi)容時(shí),將帶'90'的字符都顯示出來

我們利用輸出重定向再往文件內(nèi)寫入兩行,-i忽略大小寫,就可以將這兩行都搜索出來

同時(shí)grep指令也支持正則表達(dá)式,可以搜索 任意我們想要搜索的字符,大家下去可以自行嘗試
我們先追加兩行到cat.txt中,用正則表達(dá)式就可以將這兩行搜索出來
[king@VM-12-11-centos ~]$ echo "he9999" >> cat.txt
[king@VM-12-11-centos ~]$ echo "he9290" >> cat.txt
[king@VM-12-11-centos ~]$ cat cat.txt | grep 'he[0-9]*$'
he9290
he9999
zip指令/unzip指令
zip語法:zip [壓縮后的文件名.zip] [目標(biāo)文件]
功能:將文件壓縮成.zip格式
常用選項(xiàng):
-r :將指定目錄下的所有文件和子目錄一并處理,按遞歸方式
unzip 語法 :
unzip [壓縮文件.zip]-d:壓縮到指定路徑下
如果我們不加-r選項(xiàng),直接壓縮文件
我們以壓縮test文件為例,其中test還有3個(gè)子目錄file,file22和file33,壓縮后的file.zip大小只有160

解壓后發(fā)現(xiàn)test文件是個(gè)空目錄,沒幫我們將所以文件都?jí)嚎s過來

所以我們需要帶上選項(xiàng)-r,解壓后我們發(fā)現(xiàn)cur.zip的大小為774,明顯大于之前的160

加選項(xiàng)-d,將cur.zip解壓到指定路徑ret文件中

tar指令
和zip/unzip類似,不過解壓后的文件后綴為.tgz
功能:完成打包,壓縮,解壓
選項(xiàng):
-c :建立一個(gè)壓縮文件的參數(shù)指令(create 的意思) -x :解開一個(gè)壓縮文件的參數(shù)指令 -t :查看 tarfile 里面的文件! -z :是否同時(shí)具有 gzip 的屬性?亦即是否需要用 gzip 壓縮? -j :是否同時(shí)具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮? -v :壓縮的過程中顯示文件!這個(gè)常用,但不建議用在背景執(zhí)行過程! -f :使用檔名,請(qǐng)留意,在 f 之后要立即接檔名喔!不要再加參數(shù)! -C :解壓到指定目錄
通常將-czf和-xzf配合使用,用來壓縮和解壓 ,這里我們同樣將壓縮后的文件cur.tgz移動(dòng)到test目錄下進(jìn)行解壓

這里我們將壓縮后的文件cur.tgz通過-C選項(xiàng)指定路徑,將文件解壓到ret目錄中

前面的操作都是解壓和壓縮,而打包是將需要壓縮的所以文件都打包在一起,可以理解將文件都整理起來,文件的大小沒有發(fā)生變化
bc指令
功能:可以理解為計(jì)算器
直接將計(jì)算結(jié)果顯示到屏幕上,Ctrl+c退出

uname 指令
功能:獲取電腦和操作系統(tǒng)相關(guān)信息
選項(xiàng):
-a :輸出詳細(xì)信息,依次為內(nèi)核名稱,主機(jī)名,內(nèi)核版本號(hào),內(nèi)核版本,硬件名,處理器類 型,硬件平臺(tái)類型,操作系統(tǒng)名稱
-r :輸出內(nèi)核版本號(hào)
uname默認(rèn)輸出內(nèi)核名稱,hostname默認(rèn)輸出主機(jī)名,實(shí)際上我們只需要-a選項(xiàng)就夠了
內(nèi)核版本號(hào):3表示主版本號(hào),10表示副版本號(hào),其中副版本號(hào)為偶數(shù):穩(wěn)定版內(nèi)核 為奇數(shù):測試版內(nèi)核,我們服務(wù)器的使用的內(nèi)核版本一般都不是最新的,而是一些已經(jīng)使用過多年的經(jīng)典版本,對(duì)全新的版本,需要經(jīng)過歲月的考驗(yàn),證明內(nèi)核是穩(wěn)定,安全,高效的才可能使用

shutdown指令
選項(xiàng):
-h:將系統(tǒng)的服務(wù)停掉后立即關(guān)機(jī)
-r:將系統(tǒng)服務(wù)停掉后重新啟動(dòng)
- -t second:-t [秒數(shù)],即過幾秒后關(guān)機(jī)
對(duì)于服務(wù)器呢我們就不需要關(guān)機(jī)了
這里我們補(bǔ)充touch指令的更改時(shí)間
在介紹touch修改文件時(shí)間前我們先介紹一個(gè)指令
stat指令
功能:查看文件詳細(xì)信息
用法 :stat [文件]
stat查看test文件詳細(xì)信息

文件的相關(guān)信息:
File:顯示文件名Size:顯示文件大小Blocks:文件使用的數(shù)據(jù)塊總數(shù)IO Block:IO塊大小regular file:文件類型(常規(guī)文件)Device:設(shè)備編號(hào)Inode:Inode號(hào)Links:鏈接數(shù)Access:文件的權(quán)限Gid、Uid:文件所有權(quán)的Gid和Uid
Linux下的三個(gè)時(shí)間
Access Time:簡寫為atime,表示文件最近一次被訪問時(shí)間。Modify Time:簡寫為mtime,表示文件內(nèi)容最近一次被修改時(shí)間Change Time:簡寫為ctime,表示文件屬性最近一次被修改的時(shí)間
atime:當(dāng)我們過一段時(shí)間cat查看文件后,stat再次查看就會(huì)發(fā)先atime時(shí)間發(fā)生變化,當(dāng)然對(duì)于2.6之后的內(nèi)核,對(duì)atime的刷新時(shí)間重設(shè)了規(guī)則,atime不會(huì)立即被更新,而是一定時(shí)間間隔后OS才會(huì)自動(dòng)更新時(shí)間。因?yàn)橄啾扰c修改文件內(nèi)容和屬性,查看文件是最高頻的,如果頻繁刷新atime會(huì)導(dǎo)致效率降低

對(duì)mtime:我們寫入hell后,它的三個(gè)時(shí)間都發(fā)生變化,mtime的改變不一定會(huì)影響atime,但是ctime可能會(huì)隨之改變,因?yàn)樾薷奈募?nèi)容時(shí),有可能會(huì)修改文件的屬性,比如寫入數(shù)據(jù)時(shí)文件的大小屬性會(huì)被修改

ctime:更改文件屬性的最近時(shí)間,這一行表示的就是文件屬性


chgmod指令可以更改文件的訪問權(quán)限,也就更改了文件屬性。
touch指令補(bǔ)充
選項(xiàng):
-a 改變atime和ctime -c 或 --no-create不建立任何文檔。-d 使用指定的日期時(shí)間,而非現(xiàn)在的時(shí)間,改變atime和mtime -f 此參數(shù)將忽略不予處理,僅負(fù)責(zé)解決BSD版本touch指令的兼容性問題。 -m 改變ctime和mtime -r 把指定文檔或目錄的日期時(shí)間,統(tǒng)統(tǒng)設(shè)成和參考文檔或目錄的日期時(shí)間相同。 -t 使用指定的日期時(shí)間,而非現(xiàn)在的時(shí)間
常用的就是-d,-a -m,而touch指令默認(rèn)修改所有時(shí)間,這里的touch是對(duì)已經(jīng)創(chuàng)建的文件操作

Linux中的熱鍵
[Tab] :命令補(bǔ)全,按一次或兩次,會(huì)將以wh開頭的指令顯示到屏幕上

[c]:終止當(dāng)前程序,比如屏幕上一直輸出字符,寫了一個(gè)死循環(huán)代碼,就可以Ctrl +c終止
[Ctrl d]:代替exit切換身份,多次Ctrl d直接退出

[Ctrl r] :根據(jù)關(guān)鍵字查找歷史命令。我們輸入r,自動(dòng)轉(zhuǎn)換換成歷史命令

[page up page down]:上和下,可以翻看歷史命令,我們可以直接翻最近輸入過的指令,非常方便
指令一覽
安裝和登錄命令:
login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last文件處理命令:
file、mkdir、grep、dd、find、mv、ls、diff、cat、ln系統(tǒng)管理相關(guān)命令:
df、top、free、quota、at、lp、adduser、groupadd、kill、crontab網(wǎng)絡(luò)操作命令:
ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup系統(tǒng)安全相關(guān)命令:
passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who其它命令:
tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode
覺得本文對(duì)你有幫助?請(qǐng)分享給更多人
關(guān)注「全棧開發(fā)者社區(qū)」加星標(biāo),提升全棧技能
本公眾號(hào)會(huì)不定期給大家發(fā)福利,包括送書、學(xué)習(xí)資源等,敬請(qǐng)期待吧!
如果感覺推送內(nèi)容不錯(cuò),不妨右下角點(diǎn)個(gè)在看轉(zhuǎn)發(fā)朋友圈或收藏,感謝支持。
好文章,留言、點(diǎn)贊、在看和分享一條龍

