萬字詳解 Linux 常用指令(值得收藏)
本文將給大家詳細(xì)介紹Linux常用的指令、演示以及一些基礎(chǔ)知識的講解
目錄
-
ls指令 -
file指令 -
pwd命令 -
whoami指令 -
cd指令 -
相對路徑和絕對路徑 -
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下的三個時間 -
touch指令補(bǔ)充 -
Linux中的熱鍵- -
指令一覽
ls指令
語法:ls [選項(xiàng)] [目錄]
功能:ls有多個選項(xiàng),對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息
ls不帶選項(xiàng)默認(rèn)顯示當(dāng)前目錄下的文件
選項(xiàng):
-l :以列表的形式列出文件詳細(xì)信息
在Linux系統(tǒng)中,不以文件后綴區(qū)分文件類型,而是以第一個字符標(biāo)識文件類型,不管是文件后綴是.c還是.txt或是其他后綴,只有是以-開頭的就是普通文件
-
d:目錄文件,簡單來說就是文件夾,我們可以在該目錄文件下新建文件 -
-:普通文件,分為文本文件、動靜態(tài)庫、可執(zhí)行程序等 -
l:軟鏈接(類似Windows的快捷方式) -
b:塊設(shè)備文件(例如硬盤、光驅(qū)等) -
p:管道文件 -
c:字符設(shè)備文件(例如屏幕等串口設(shè)備)- -
s:套接口文件
我們今天重點(diǎn)在前面的兩類文件
單普通文件就可以分很多種,為了兼容windows同時便于我們大多數(shù)linux的用戶區(qū)分文件的不同,我們還是習(xí)慣通過后綴來表示不同文件的類型。但有的文件必須加后綴,例如用c語言寫的
.c文件,需要特殊處理,以后綴區(qū)分類型
-
-a:顯示目錄下的所有文件包括隱藏文件,以點(diǎn)開頭的表示隱藏文件,其中一個點(diǎn)表示當(dāng)前路徑,兩個點(diǎn)表示上一級路徑,我們將在下面的cd指令中講解.和..
-
-d :將目錄像文件一樣顯示,而不顯示目錄下的文件,這里的點(diǎn),就表示當(dāng)前路徑
-
-R:列出所有子目錄下的文件(以遞歸的方式) ,目錄下的所有文件都會列出來
-
-n :用數(shù)字的 UID,GID 代替名稱
還有一些其他的選項(xiàng)就不演示了,大家下去可以嘗試一下
-
-1 一行只輸出一個文件 -
-r 對目錄反向排序 -
-k 以 k 字節(jié)的形式表示文件的大小。ls –alk 指定文件 -
-i 輸出文件的 i 節(jié)點(diǎn)的索引信息。如 ls –ai 指定文件- -
-t 以時間排序
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)管理文件的,磁盤上的文件和目錄被組成一棵目錄樹,每個節(jié)點(diǎn)都是目錄或文件。根目錄:/
相對路徑和絕對路徑
當(dāng)我們需要找一個文件時,就必須知道文件所在路徑和文件名,例如尋找text.c文件,因?yàn)槊恳粋€節(jié)點(diǎn)只有一個父親節(jié)點(diǎn),從根目錄出發(fā)到text.c文件的路徑是唯一的。完整的描述文件位置的路徑就是絕對路徑,絕對路徑能唯一標(biāo)識一個文件,上面的pwd指令顯示的就是絕對路徑
而相對路徑是:自己相對于目標(biāo)位置而言的路徑,不具有唯一性,我們可以從不同的位置找到文件
-
絕對路徑:從跟目錄出發(fā)到到指定文件的路徑,能唯一標(biāo)識一個文件
-
相對路徑:從某個文件出發(fā)到指定文件的路徑,不能唯一標(biāo)識一個文件
cd命令就可以通過相對路徑和絕對路徑的方式進(jìn)行路徑切換
可以通過絕對路徑切換到指定目錄
也可以通過相對路徑切換,點(diǎn)點(diǎn)表示上一級路徑,cd ..切換到上一級目錄,cd ../../ 切換到上上級路徑
[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 #切換到上上級目錄的p1路徑下
[king@VM-12-11-centos p1]$ pwd
/home/king/Linuxclass/p1
有的小伙伴可能就有疑問了,cd ..可以切換到上一級路徑,那么cd .有什么用呢?我們本來就在當(dāng)前目錄下,不需要切換啊。
這里我們用vim編寫一個
hello Linux的代碼,通過gcc編譯,生成a.out的可執(zhí)行程序,而我們要運(yùn)行可執(zhí)行程序就需要路徑和文件名,用點(diǎn)就可以表示它的路徑了,相比于下面用絕對路徑方便很多
cd還有兩個選項(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 #同時我們發(fā)現(xiàn)指令都是在bin目錄下的
/usr/bin/cd
指令本質(zhì)上就是程序,Linux中,指令、命令、工具都是可執(zhí)行程序 ,都存放在普通文件中,linux下一切皆文件,我們的指令都在bin目錄下
touch指令
功能:新建文件,更改文檔或目錄的日期,包括存取時間和更改時間,我們先了解新建文件,關(guān)于更改目錄日期我們在文章的最后介紹
需要注意的是touch創(chuàng)建的是普通文件,不是目錄文件,所以不能cd進(jìn)入
[king@VM-12-11-centos test]$ touch file1 file2 file3 #touch可以連續(xù)創(chuàng)建多個文件
[king@VM-12-11-centos test]$ touch file4 #創(chuàng)建單個文件
[king@VM-12-11-centos test]$ ls
file1 file2 file3 file4
mkdir指令
功能:新建目錄文件
mkdir也可以同時創(chuàng)建多個目錄文件,cd可以進(jìn)入,但是不能在一個目錄文件下再創(chuàng)建多個子目錄,這里就顯示無法創(chuàng)建
選項(xiàng)-p:遞歸建立多個子目錄
添加用戶信任關(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),此時我們的p1/p2/p3就刪除了
如果我們想刪除目錄中的所以文件而不想刪除目錄,直接加通配符*
切記別把根目錄給刪除
rm -rf / #切記不要使用,遞歸強(qiáng)制刪除根目錄,可能會把系統(tǒng)干崩
man指令
linux中有很多的指令,如果我們不記得某個指令的使用,可以man一下,問問那個男人
選項(xiàng):
1 是普通的命令
2 是系統(tǒng)調(diào)用,如open,write之類的(通過這個,至少可以很方便的查到調(diào)用這個函數(shù),需要加什么頭文 件)
3 是庫函數(shù),如printf,fread4是特殊文件,也就是/dev下的各種設(shè)備文件
5 是指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義
6 是給游戲留的,由各個游戲自己定義
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,同時命名為file
默認(rèn)復(fù)制到當(dāng)前目錄下,也可以最后指定目錄
mv指令
功能:移動文件或重命名文件
用法:mv [選項(xiàng)] [源文件] [目標(biāo)文件]
選項(xiàng):
-
-f :force 強(qiáng)制的意思,如果目標(biāo)文件已經(jīng)存在,不會詢問而直接覆蓋
-
-i :若目標(biāo)文件 (destination) 已經(jīng)存在時,就會詢問是否覆蓋!
這里我們將文件file11移動到file目錄下
如果mv后面跟的不是文件,而是文件名,就會將文件重命名
例如將文件file11重命名為change
cat指令
功能:查看文件內(nèi)容
語法:cat [選項(xiàng)] [文件]
選項(xiàng):
-
-b :對非空輸出行編號
-
-n :對輸出的所有行編號
-
-s :不輸出多行空行
echo指令
功能:將字符串顯示到標(biāo)準(zhǔn)輸出,也就是屏幕上,echo默認(rèn)換行
重定向
那我們可以將字符串寫入文件中嗎?
答案是可以的,通過重定向,字符串后面加 > 符號和文件名,就可以將本該顯示到標(biāo)準(zhǔn)輸出的字符串,寫入文件中,如果文件不存在,就會自動創(chuàng)建文件,這就是輸出重定向
將本該顯示到屏幕上的字符串寫入目標(biāo)文件中,同時輸出重定向會清空文件原始內(nèi)容再重新寫入
在此寫入時,之前的hello Linux已近被清空了
想要保留之前的內(nèi)容并寫入就需要追加重定向 > 符號變成 >> 符號
cat指令后面不加文件,默認(rèn)從鍵盤中讀取內(nèi)容并回顯到顯示器上,也就是屏幕上
之前cat顯示文件內(nèi)容就是通過輸入重定向顯示的
[king@VM-12-11-centos ~]$ cat < file #這個 < 符號可以省略
AAAAAAA
BBBBBBB
CCCCCCC
more指令
功能:和cat類似,一般用于查看日志,內(nèi)容比較長的文件
選項(xiàng):
-
-n :對行編號
-
q :退出more
比如這里我寫一個內(nèi)容從0-1000行的文件
count=0; while [ $count -le 1000 ]; do echo "hello ${count}"; let count++; done > cat.txt
more會先顯示一部分內(nèi)容,按回車就可以繼續(xù)讀取內(nèi)容,按q退出,但more有一個弊端,只能往下翻,不能往上翻,所以我們一般不用more指令
less指令
功能:查看文件內(nèi)容,less用法比more更具有彈性,可以使用 [pageup][pagedown] (前后按鍵)等按鍵的功能來往前往后翻看文件,而且less在查看之前不會加載整個文件。
選項(xiàng):
-
-i :忽略大小寫
-
-N :顯示行號
-
/字符串:向上搜索字符串的內(nèi)容
-
?字符串:向下搜索字符串的內(nèi)容
-
n :重復(fù)前一個搜索(與/ 或?有關(guān))
-
N:返向重復(fù)前一個搜索(與/ 或?有關(guān))
-
q:退出less
[king@VM-12-11-centos ~]$ less cat.txt
我們輸入 /3向上搜索字符3,less就會幫我們標(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)容,我們一般查看日志時肯定是查看最新的內(nèi)容,也就是從尾部開始查看,tail就能很好的幫助我們查看最近的內(nèi)容
選項(xiàng):
-
-f :循環(huán)讀取
-
-n<行號>:顯示行數(shù)
tail - f filename會把filename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容,非常適合查看日志
[king@VM-12-11-centos ~]$ tail cat.txt #tail不加行號默認(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行寫入一個tmp臨時文件,然后在讀取尾10行,不過這種方法需要重新創(chuàng)建文件,不進(jìn)浪費(fèi)空間效率也低
答案是有的,第二種方法借助管道操作
管道操作
使用管道時,默認(rèn)隱式發(fā)生了重定向
# 符號 | 表示管道,通過管道將執(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 : 小時(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顯示時間戳
1643360162
[king@VM-12-11-centos ~]$ date +%F%X #按年月日 時分秒的格式顯示當(dāng)前時間
2022-01-2804:56:08 PM
[king@VM-12-11-centos ~]$ date +%F%X@1643360162 # @時間戳,將時間戳轉(zhuǎn)換成標(biāo)準(zhǔn)時間
2022-01-2804:56:27 PM@1643360162
我們可以加_以示區(qū)分,但不能是空格,這種寫法是錯誤的
cal指令
功能:查看日歷
選項(xiàng):
-
-3 顯示系統(tǒng)前一個月,當(dāng)前月,下一個月的月歷
-
-y 顯示當(dāng)前年份的年歷
-
cal默認(rèn)顯示當(dāng)前月的月歷
[king@VM-12-11-centos ~]$ cal -y 2021 #也可以指定年份顯示2021的年歷
find指令
功能:在文件數(shù)中查找文件,并做出相應(yīng)的處理(可能會訪問磁盤),find指令會幫我們在當(dāng)前目錄以及所有該目錄的所以子目錄下查找相應(yīng)的文件,當(dāng)我們遍歷一個大的文件系統(tǒng)時,可能會花費(fèi)一點(diǎn)時間,然后顯示相應(yīng)的文件信息,但當(dāng)我們下一次再用find查找時,就會快很多
find的選項(xiàng)非常多,這里列舉一個,想了解更多可以man find
選項(xiàng):-name :按照文件名查找
我們在根目錄下查找文件名為text的文件,不過這里很多都是permission denied,因?yàn)槠胀ㄓ脩舻臋?quán)限不夠,有很多文件都不能讀取
我們在自己的目錄下查找文件名為file的文件,就會把該目錄下的所以子文件名為file的顯示出來
指定目錄
語法:find [起始目錄位置] [-name][filename]
grep指令
功能:文本行過濾,搜索字符串
常用選項(xiàng):
-
-i:忽略大小寫,大小寫視為相同
-
-n:輸出行號
-
-v:反向選擇
還是拿那個文件內(nèi)容為0-1000行的文件cat.txt舉例
我們在顯示文件內(nèi)容時,將帶'90'的字符都顯示出來
我們利用輸出重定向再往文件內(nèi)寫入兩行,-i忽略大小寫,就可以將這兩行都搜索出來
同時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個子目錄file,file22和file33,壓縮后的file.zip大小只有160
解壓后發(fā)現(xiàn)test文件是個空目錄,沒幫我們將所以文件都壓縮過來
所以我們需要帶上選項(xiàng)-r,解壓后我們發(fā)現(xiàn)cur.zip的大小為774,明顯大于之前的160
加選項(xiàng)-d,將cur.zip解壓到指定路徑ret文件中
tar指令
和zip/unzip類似,不過解壓后的文件后綴為.tgz
功能:完成打包,壓縮,解壓
選項(xiàng):
-
-c :建立一個壓縮文件的參數(shù)指令(create 的意思) -
-x :解開一個壓縮文件的參數(shù)指令 -
-t :查看 tarfile 里面的文件! -
-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮? -
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮? -
-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執(zhí)行過程! -
-f :使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數(shù)! -
-C :解壓到指定目錄
通常將-czf和-xzf配合使用,用來壓縮和解壓 ,這里我們同樣將壓縮后的文件cur.tgz移動到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)核版本號,內(nèi)核版本,硬件名,處理器類 型,硬件平臺類型,操作系統(tǒng)名稱
-
-r :輸出內(nèi)核版本號
uname默認(rèn)輸出內(nèi)核名稱,hostname默認(rèn)輸出主機(jī)名,實(shí)際上我們只需要-a選項(xiàng)就夠了
內(nèi)核版本號:3表示主版本號,10表示副版本號,其中副版本號為偶數(shù):穩(wěn)定版內(nèi)核 為奇數(shù):測試版內(nèi)核,我們服務(wù)器的使用的內(nèi)核版本一般都不是最新的,而是一些已經(jīng)使用過多年的經(jīng)典版本,對全新的版本,需要經(jīng)過歲月的考驗(yàn),證明內(nèi)核是穩(wěn)定,安全,高效的才可能使用
shutdown指令
選項(xiàng):
-
-h:將系統(tǒng)的服務(wù)停掉后立即關(guān)機(jī)
-
-r:將系統(tǒng)服務(wù)停掉后重新啟動
- -t second:-t [秒數(shù)],即過幾秒后關(guān)機(jī)
對于服務(wù)器呢我們就不需要關(guān)機(jī)了
這里我們補(bǔ)充touch指令的更改時間
在介紹touch修改文件時間前我們先介紹一個指令
stat指令
功能:查看文件詳細(xì)信息
用法 :stat [文件]
stat查看test文件詳細(xì)信息
文件的相關(guān)信息:
-
File:顯示文件名 -
Size:顯示文件大小 -
Blocks:文件使用的數(shù)據(jù)塊總數(shù) -
IO Block:IO塊大小 -
regular file:文件類型(常規(guī)文件) -
Device:設(shè)備編號 -
Inode:Inode號 -
Links:鏈接數(shù) -
Access:文件的權(quán)限 -
Gid、Uid:文件所有權(quán)的Gid和Uid
Linux下的三個時間
-
Access Time:簡寫為atime,表示文件最近一次被訪問時間。 -
Modify Time:簡寫為mtime,表示文件內(nèi)容最近一次被修改時間 -
Change Time:簡寫為ctime,表示文件屬性最近一次被修改的時間
atime:當(dāng)我們過一段時間cat查看文件后,stat再次查看就會發(fā)先atime時間發(fā)生變化,當(dāng)然對于2.6之后的內(nèi)核,對atime的刷新時間重設(shè)了規(guī)則,atime不會立即被更新,而是一定時間間隔后OS才會自動更新時間。因?yàn)橄啾扰c修改文件內(nèi)容和屬性,查看文件是最高頻的,如果頻繁刷新atime會導(dǎo)致效率降低
對mtime:我們寫入hell后,它的三個時間都發(fā)生變化,mtime的改變不一定會影響atime,但是ctime可能會隨之改變,因?yàn)樾薷奈募?nèi)容時,有可能會修改文件的屬性,比如寫入數(shù)據(jù)時文件的大小屬性會被修改
ctime:更改文件屬性的最近時間,這一行表示的就是文件屬性
chgmod指令可以更改文件的訪問權(quán)限,也就更改了文件屬性
touch指令補(bǔ)充
選項(xiàng):
-
-a 改變atime和ctime -
-c 或 --no-create不建立任何文檔。 -
-d 使用指定的日期時間,而非現(xiàn)在的時間,改變atime和mtime -
-f 此參數(shù)將忽略不予處理,僅負(fù)責(zé)解決BSD版本touch指令的兼容性問題。 -
-m 改變ctime和mtime -
-r 把指定文檔或目錄的日期時間,統(tǒng)統(tǒng)設(shè)成和參考文檔或目錄的日期時間相同。 -
-t 使用指定的日期時間,而非現(xiàn)在的時間
常用的就是-d,-a -m,而touch指令默認(rèn)修改所有時間,這里的touch是對已經(jīng)創(chuàng)建的文件操作
Linux中的熱鍵
[Tab] :命令補(bǔ)全,按一次或兩次,會將以wh開頭的指令顯示到屏幕上
[c]:終止當(dāng)前程序,比如屏幕上一直輸出字符,寫了一個死循環(huán)代碼,就可以Ctrl +c終止
[Ctrl d]:代替exit切換身份,多次Ctrl d直接退出
[Ctrl r] :根據(jù)關(guān)鍵字查找歷史命令。我們輸入r,自動轉(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
來源:https://blog.csdn.net/weixin_46016019
-End-
最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

面試題】即可獲取
