本文將給大家詳細介紹Linux常用的指令、演示以及一些基礎知識的講解 語法: 功能:ls有多個選項,對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息 ls不帶選項默認顯示當前目錄下的文件 選項: 在Linux系統中,不以文件后綴區分文件類型,而是以第一個字符標識文件類型,不管是文件后綴是 我們今天重點在前面的兩類文件 單普通文件就可以分很多種,為了兼容windows同時便于我們大多數linux的用戶區分文件的不同,我們還是習慣通過后綴來表示不同文件的類型。但有的文件必須加后綴,例如用c語言寫的 還有一些其他的選項就不演示了,大家下去可以嘗試一下 功能:查看文件類型 語法: 登錄后復制 語法: 功能:顯示當前路徑 功能:顯示當前用戶 兩種寫法 功能:切換路徑 用法: Linux是以多叉樹的結構管理文件的,磁盤上的文件和目錄被組成一棵目錄樹,每個節點都是目錄或文件。根目錄: 當我們需要找一個文件時,就必須知道文件所在路徑和文件名,例如尋找 而相對路徑是:自己相對于目標位置而言的路徑,不具有唯一性,我們可以從不同的位置找到文件 絕對路徑:從跟目錄出發到到指定文件的路徑,能唯一標識一個文件 相對路徑:從某個文件出發到指定文件的路徑,不能唯一標識一個文件 cd命令就可以通過相對路徑和絕對路徑的方式進行路徑切換 可以通過絕對路徑切換到指定目錄 也可以通過相對路徑切換,點點表示上一級路徑, 登錄后復制 有的小伙伴可能就有疑問了, 這里我們用vim編寫一個 cd還有兩個選項 登錄后復制 語法: 功能:查看指令的系統路徑和相關信息 登錄后復制 指令本質上就是程序,Linux中,指令、命令、工具都是可執行程序 ,都存放在普通文件中,linux下一切皆文件,我們的指令都在bin目錄下 功能:新建文件,更改文檔或目錄的日期,包括存取時間和更改時間,我們先了解新建文件,關于更改目錄日期我們在文章的最后介紹 需要注意的是touch創建的是普通文件,不是目錄文件,所以不能cd進入 登錄后復制 功能:新建目錄文件 mkdir也可以同時創建多個目錄文件,cd可以進入,但是不能在一個目錄文件下再創建多個子目錄,這里就顯示無法創建 選項-p:遞歸建立多個子目錄 這里的tree指令是以樹狀顯示文件,需要用yum下載 登錄后復制 如果我們是普通用戶,需要在前面加sudo, sudo可以短暫提升權限,以root的身份執行相應指令 單獨su表示切換為root用戶,需要輸入root用戶的密碼 登錄后復制 如果我們 需要以root的身份幫用戶添加信任關系,我們將身份切換為root用戶,執行如下指令即可添加信任關系,之后我們就可以sudo 了 登錄后復制 功能:刪除空目錄 ,也就是不存放其他文件的目錄 這里p1不為空,所以無法刪除,如要借助rm指令 我們刪除文件一般都用rm指令,rmdir有點雞肋 功能:刪除目錄或文件 選項: 刪除目錄要帶r選項,此時我們的p1/p2/p3就刪除了 如果我們想刪除目錄中的所以文件而不想刪除目錄,直接加通配符 切記別把根目錄給刪除 登錄后復制 linux中有很多的指令,如果我們不記得某個指令的使用,可以man一下,問問那個男人 選項: 1 是普通的命令 2 是系統調用,如open,write之類的(通過這個,至少可以很方便的查到調用這個函數,需要加什么頭文 件) 3 是庫函數,如printf,fread4是特殊文件,也就是/dev下的各種設備文件 5 是指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義 6 是給游戲留的,由各個游戲自己定義 7 是附件還有一些變量,比如向environ這種全局變量在這里就有說明 8 是系統管理用的命令,這些命令只能由root使用,如ifconfig 9 內核例程 同樣man需要我們下載 ,普通用戶加sudo 登錄后復制 man不加選項,默認解釋指令 登錄后復制 q退出當前界面 登錄后復制 語法: 功能:復制文件或目錄 常用選項: -f ? ? 強行復制文件或目錄, 不論目的文件或目錄是否已經存在 -r ? ?遞歸處理,將指定目錄下的文件與子目錄一并處理。 我們復制文件file11,同時命名為file 默認復制到當前目錄下,也可以最后指定目錄 功能:移動文件或重命名文件 用法: 選項: -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋 -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋! 這里我們將文件file11移動到file目錄下 如果mv后面跟的不是文件,而是文件名,就會將文件重命名。另外,搜索公眾號Linux就該這樣學后臺回復“猴子”,獲取一份驚喜禮包。 例如將文件file11重命名為change 功能:查看文件內容 語法:cat [選項] [文件] 選項: -b :對非空輸出行編號 -n :對輸出的所有行編號 -s :不輸出多行空行 功能:將字符串顯示到標準輸出,也就是屏幕上,echo默認換行 那我們可以將字符串寫入文件中嗎? 答案是可以的,通過重定向,字符串后面加 > 符號和文件名,就可以將本該顯示到標準輸出的字符串,寫入文件中,如果文件不存在,就會自動創建文件,這就是輸出重定向 將本該顯示到屏幕上的字符串寫入目標文件中,同時輸出重定向會清空文件原始內容再重新寫入 在此寫入時,之前的hello Linux已近被清空了 想要保留之前的內容并寫入就需要追加重定向 > 符號變成 >> 符號 cat指令后面不加文件,默認從鍵盤中讀取內容并回顯到顯示器上,也就是屏幕上 之前cat顯示文件內容就是通過輸入重定向顯示的 登錄后復制 功能:和cat類似,一般用于查看日志,內容比較長的文件 選項: -n :對行編號 q :退出more 比如這里我寫一個內容從0-1000行的文件 關注公眾號:【Linux就該這樣學】,在公眾號中回復:Linux 登錄后復制 more會先顯示一部分內容,按回車就可以繼續讀取內容,按q退出,但more有一個弊端,只能往下翻,不能往上翻,所以我們一般不用more指令 功能:查看文件內容,less用法比more更具有彈性,可以使用? 選項: -i ? :忽略大小寫 -N :顯示行號 /字符串:向上搜索字符串的內容 ?字符串:向下搜索字符串的內容 n :重復前一個搜索(與/ 或?有關) N:返向重復前一個搜索(與/ 或?有關) q:退出less 登錄后復制 我們輸入 /3向上搜索字符3,less就會幫我們標記字符3的內容 還有其它選項大家可以直接嘗試,這里就不在演示了,我們q退出less界面 登錄后復制 功能:顯示文件內容的開頭到標準輸出,也就是屏幕上,head不加參數默認顯示前10行 選項: 登錄后復制 功能:用于顯示指定文件末尾內容,我們一般查看日志時肯定是查看最新的內容,也就是從尾部開始查看,tail就能很好的幫助我們查看最近的內容 選項: -f :循環讀取 登錄后復制 那我們可以顯示文件的頭和尾,如果要顯示文件中間的內容怎么辦呢? 比如我們要顯示第100行到110行,有兩種方法: 通過重定向將前110行寫入一個tmp臨時文件,然后在讀取尾10行,不過這種方法需要重新創建文件,不進浪費空間效率也低 答案是有的,第二種方法借助管道操作 使用管道時,默認隱式發生了重定向 登錄后復制 格式 登錄后復制 我們可以加_以示區分,但不能是空格,這種寫法是錯誤的 功能:查看日歷 選項: -3 顯示系統前一個月,當前月,下一個月的月歷 -y ?顯示當前年份的年歷 cal默認顯示當前月的月歷 登錄后復制 功能:在文件數中查找文件,并做出相應的處理(可能會訪問磁盤),find指令會幫我們在當前目錄以及所有該目錄的所以子目錄下查找相應的文件,當我們遍歷一個大的文件系統時,可能會花費一點時間,然后顯示相應的文件信息,但當我們下一次再用find查找時,就會快很多 find的選項非常多,這里列舉一個,想了解更多可以 選項:-name ?:按照文件名查找 我們在根目錄下查找文件名為text的文件,不過這里很多都是 我們在自己的目錄下查找文件名為file的文件,就會把該目錄下的所以子文件名為file的顯示出來 指定目錄 語法: 功能:文本行過濾,搜索字符串 常用選項: -i:忽略大小寫,大小寫視為相同 -n:輸出行號 -v:反向選擇 還是拿那個文件內容為0-1000行的文件 我們在顯示文件內容時,將帶’90’的字符都顯示出來 我們利用輸出重定向再往文件內寫入兩行,-i忽略大小寫,就可以將這兩行都搜索出來 同時grep指令也支持正則表達式,可以搜索 任意我們想要搜索的字符,大家下去可以自行嘗試 我們先追加兩行到 登錄后復制 zip語法: 功能:將文件壓縮成.zip格式 常用選項: -r :將指定目錄下的所有文件和子目錄一并處理,按遞歸方式 unzip 語法 : -d:壓縮到指定路徑下 如果我們不加-r選項,直接壓縮文件 我們以壓縮test文件為例,其中test還有3個子目錄file,file22和file33,壓縮后的file.zip大小只有160 解壓后發現test文件是個空目錄,沒幫我們將所以文件都壓縮過來 所以我們需要帶上選項-r,解壓后我們發現cur.zip的大小為774,明顯大于之前的160 加選項-d,將cur.zip解壓到指定路徑ret文件中 和 功能:完成打包,壓縮,解壓 選項: 通常將 這里我們將壓縮后的文件 前面的操作都是解壓和壓縮,而打包是將需要壓縮的所以文件都打包在一起,可以理解將文件都整理起來,文件的大小沒有發生變化 功能:可以理解為計算器 直接將計算結果顯示到屏幕上, 功能:獲取電腦和操作系統相關信息 選項: -a :輸出詳細信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類 型,硬件平臺類型,操作系統名稱 -r :輸出內核版本號 uname默認輸出內核名稱,hostname默認輸出主機名,實際上我們只需要-a選項就夠了 內核版本號:3表示主版本號,10表示副版本號,其中副版本號為偶數:穩定版內核 為奇數:測試版內核,我們服務器的使用的內核版本一般都不是最新的,而是一些已經使用過多年的經典版本,對全新的版本,需要經過歲月的考驗,證明內核是穩定,安全,高效的才可能使用 選項: -h:將系統的服務停掉后立即關機 -r:將系統服務停掉后重新啟動 – 對于服務器呢我們就不需要關機了 這里我們補充touch指令的更改時間 在介紹touch修改文件時間前我們先介紹一個指令 功能:查看文件詳細信息 用法 : stat查看test文件詳細信息 文件的相關信息: Linux下的三個時間 atime:當我們過一段時間cat查看文件后,stat再次查看就會發先atime時間發生變化,當然對于2.6之后的內核,對atime的刷新時間重設了規則,atime不會立即被更新,而是一定時間間隔后OS才會自動更新時間。因為相比與修改文件內容和屬性,查看文件是最高頻的,如果頻繁刷新atime會導致效率降低 對mtime:我們寫入hell后,它的三個時間都發生變化,mtime的改變不一定會影響atime,但是ctime可能會隨之改變,因為修改文件內容時,有可能會修改文件的屬性,比如寫入數據時文件的大小屬性會被修改 ctime:更改文件屬性的最近時間,這一行表示的就是文件屬性 chgmod指令可以更改文件的訪問權限,也就更改了文件屬性 選項: 常用的就是-d,-a -m,而touch指令默認修改所有時間,這里的touch是對已經創建的文件操作 安裝和登錄命令: 文件處理命令: 系統管理相關命令: 網絡操作命令: 系統安全相關命令: 其它命令:目錄
ls指令
ls [選項] [目錄]
-l
?? :以列表的形式列出文件詳細信息.c
還是.txt
或是其他后綴,只有是以-開頭的就是普通文件
.c
文件,需要特殊處理,以后綴區分類型
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
whoami指令
cd指令
cd [想要切換的路徑]
/
相對路徑和絕對路徑
text.c
文件,因為每一個節點只有一個父親節點,從根目錄出發到text.c
文件的路徑是唯一的。完整的描述文件位置的路徑就是絕對路徑,絕對路徑能唯一標識一個文件,上面的pwd指令顯示的就是絕對路徑
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 .
有什么用呢?我們本來就在當前目錄下,不需要切換啊。
hello Linux
的代碼,通過gcc編譯,生成a.out的可執行程序,而我們要運行可執行程序就需要路徑和文件名,用點就可以表示它的路徑了,相比于下面用絕對路徑方便很多[king@VM-12-11-centos?Linuxclass]$?pwd
/home/king/Linuxclass
[king@VM-12-11-centos?Linuxclass]$?cd?~????#cd?~進入工作目錄,就是用戶的路徑下
[king@VM-12-11-centos?~]$?pwd
/home/king
[king@VM-12-11-centos?~]$?cd?-?????????????#cd?-返回最近一次訪問的路徑
/home/king/Linuxclass
which指令
which [指令]
[king@VM-12-11-centos?Linuxclass]$?which?ls
alias?ls='ls?--color=auto'?????????????????????#alias:給指令取別名
?/usr/bin/ls????????????????????????????????#我們的指令都是系統簡化過的
[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????#同時我們發現指令都是在bin目錄下的
/usr/bin/cd
touch指令
[king@VM-12-11-centos?test]$?touch?file1?file2?file3???#touch可以連續創建多個文件
[king@VM-12-11-centos?test]$?touch?file4???????????????#創建單個文件
[king@VM-12-11-centos?test]$?ls
file1??file2??file3??file4
mkdir指令
添加用戶信任關系
yum?intsall?-y?tree
[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?????#現在我們就切換到用戶ret了
ret
sudo yum install -y tree
顯示類似如下的指令,表示當前用戶沒有添加信任關系echo?'xxx?ALL=(ALL)?ALL'?>>?/etc/sudoers??(其中xxx代表用戶名)
rmdir指令
rm指令
*
rm?-rf?/????#切記不要使用,遞歸強制刪除根目錄,可能會把系統干崩
man指令
我們目前先了解 1 和 3
yum?install?-y?man-pages
[king@VM-12-11-centos?file11]$?man?ls
[king@VM-12-11-centos?file11]$?man?3?printf???#我們可以查看printf庫函數
cp指令
cp [選項] [源文件] [目標文件] [指定目錄]
mv指令
mv [選項] [源文件] [目標文件]
cat指令
echo指令
重定向
[king@VM-12-11-centos?~]$?cat?<?file???#這個?<?符號可以省略
AAAAAAA
BBBBBBB
CCCCCCC
more指令
count=0;?while?[?$count?-le?1000?];?do?echo?"hello?${count}";?let?count++;?done?>?cat.txt
less指令
[pageup][pagedown]?
(前后按鍵)等按鍵的功能來往前往后翻看文件,而且less在查看之前不會加載整個文件。
[king@VM-12-11-centos?~]$?less?cat.txt
牛逼啊!接私活必備的?N?個開源項目!趕快收藏吧
head 指令
-n
[king@VM-12-11-centos?~]$?head?cat.txt????#默認輸出前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
?:顯示行數
tail - f filename
會把filename里最尾部的內容顯示在屏幕上,并且不但刷新,使你看到最新的文件內容,非常適合查看日志[king@VM-12-11-centos?~]$?tail?cat.txt???#tail不加行號默認顯示尾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
管道操作
#?符號?|?表示管道,通過管道將執行的結果傳給下一條指令
[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指令
[king@VM-12-11-centos?~]$?date?????????????????#date默認顯示
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???????????#按年月日?時分秒的格式顯示當前時間
2022-01-2804:56:08?PM
[king@VM-12-11-centos?~]$?date?+%F%X@1643360162??#?@時間戳,將時間戳轉換成標準時間
2022-01-2804:56:27?PM@1643360162
cal指令
[king@VM-12-11-centos?~]$?cal?-y?2021??#也可以指定年份顯示2021的年歷
find指令
man find
permission denied
,因為普通用戶的權限不夠,有很多文件都不能讀取。另外,搜索公眾號后端架構師后臺回復“架構整潔”,獲取一份驚喜禮包。find [起始目錄位置] [-name][filename]
grep指令
cat.txt
舉例cat.txt
中,用正則表達式就可以將這兩行搜索出來[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] [目標文件]
unzip [壓縮文件.zip]
tar指令
zip/unzip
類似,不過解壓后的文件后綴為.tgz
-czf
和-xzf
配合使用,用來壓縮和解壓 ,這里我們同樣將壓縮后的文件cur.tgz
移動到test目錄下進行解壓cur.tgz
通過-C
選項指定路徑,將文件解壓到ret目錄中bc指令
Ctrl+c
退出uname 指令
shutdown指令
?-t second:-t [秒數]
,即過幾秒后關機stat指令
stat [文件]
File
:顯示文件名Size
:顯示文件大小Blocks
:文件使用的數據塊總數IO Block
:IO塊大小regular file
:文件類型(常規文件)Device
:設備編號Inode
:Inode號Links
:鏈接數Access
:文件的權限Gid、Uid
:文件所有權的Gid和Uid
Access Time
:簡寫為atime,表示文件最近一次被訪問時間。Modify Time
:簡寫為mtime,表示文件內容最近一次被修改時間Change Time
:簡寫為ctime,表示文件屬性最近一次被修改的時間touch指令補充
--no-create
??不建立任何文檔。Linux中的熱鍵
[Tab]
?:命令補全,按一次或兩次,會將以wh開頭的指令顯示到屏幕上[c]
:終止當前程序,比如屏幕上一直輸出字符,寫了一個死循環代碼,就可以Ctrl +c
終止[Ctrl d]
:代替exit切換身份,多次Ctrl d
直接退出[Ctrl r]
?:根據關鍵字查找歷史命令。我們輸入r,自動轉換換成歷史命令[page up page down]
:上和下,可以翻看歷史命令,我們可以直接翻最近輸入過的指令,非常方便指令一覽
login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last
file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
df、top、free、quota、at、lp、adduser、groupadd、kill、crontab
ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup
passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who
tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode
以上就是萬字詳解 Linux 常用指令(值得收藏)的詳細內容,更多請關注www.92cms.cn其它相關文章!