之前的一篇文章小懿已經(jīng)給大家說(shuō)了學(xué)習(xí)大數(shù)據(jù)都需要學(xué)習(xí)哪些內(nèi)容,接下來(lái),小懿就會(huì)帶領(lǐng)著讀者們一起開(kāi)始學(xué)習(xí)大數(shù)據(jù)的旅程。既然開(kāi)始,那么就得從最基礎(chǔ)的地方開(kāi)始,裝Linux系統(tǒng),別說(shuō)Linux系統(tǒng)沒(méi)啥用,畢竟你已經(jīng)學(xué)會(huì)了Java,不想做運(yùn)維的話,哪怕你只是會(huì)上傳文件,打包,解壓,啟動(dòng)Tomcat的話,你都要會(huì)Linux的命令才能進(jìn)行操作不是么?
創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供錦江企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為錦江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
Linux,全稱GNU/Linux,是一種免費(fèi)使用和自由傳播的類(lèi)UNIX操作系統(tǒng),其內(nèi)核由林納斯·本納第克特·托瓦茲于1991年10月5日首次發(fā)布,它主要受到Minix和Unix思想的啟發(fā),是一個(gè)基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。
其實(shí)我們劃重點(diǎn),核心就是不要錢(qián),開(kāi)源,免費(fèi),功能還強(qiáng)大,那肯定是我們大家首選的東西了。學(xué)技術(shù)得先看點(diǎn)有趣的東西,那就是Linux的創(chuàng)始作者。
對(duì)就是這個(gè)人,在1991年,還在上大二的托瓦茲在互聯(lián)網(wǎng)上放出了他自己編寫(xiě)的操作系統(tǒng) Linxus 0.01 版本。于是就有了最開(kāi)始的Linux,以至于以后通過(guò)開(kāi)源社區(qū)的不斷補(bǔ)充,使其從當(dāng)年一個(gè)人的“小項(xiàng)目”日益壯大起來(lái)。而之所以Linux能夠獲得這些資源,其實(shí)全依靠 Linux 采用的授權(quán)協(xié)議——GPL。
行了,這了解了Linux的創(chuàng)始和來(lái)源,我們就來(lái)安裝一下Linux操作系統(tǒng)吧。
在安裝Linux系統(tǒng)的時(shí)候,首先我們需要一個(gè)介質(zhì)工具,那就是VMware Workstation,虛擬機(jī),安裝好這個(gè)之后,就相當(dāng)于是在你的電腦上裝了一個(gè)虛擬計(jì)算機(jī)的軟件,小懿相信,百分之九十以上的人,電腦里面都會(huì)有這個(gè),它提供用戶可在單一的桌面上同時(shí)運(yùn)行不同的操作系統(tǒng),和進(jìn)行開(kāi)發(fā)、測(cè)試、部署新的應(yīng)用程序的最佳解決方案。
如果有條件的,大家肯定可以使用阿里云或者華為云或者百度云等各種大廠出品的云服務(wù)器來(lái)進(jìn)行使用,畢竟人家的服務(wù)器也是支持你在任何地方進(jìn)行訪問(wèn)的,只要你有賬號(hào)和密碼,所以阿粉也是整了一個(gè)云服務(wù)器來(lái)進(jìn)行測(cè)試。
linux沒(méi)有盤(pán)符的概念,一切都是文件.
linux目錄結(jié)構(gòu) :
磁盤(pán)管理 :
最常用的就是查看文件多少的命令了,
ls 顯示當(dāng)前目錄下的文件或子目錄
cd 切換目錄
pwd 顯示當(dāng)前工作的目錄
mkdir 創(chuàng)建目錄
touch 創(chuàng)建文件
文件瀏覽 :
cat 命令 查看文件所有內(nèi)容
less 命令 分頁(yè)查看
tail 名稱 查看日志文件,查看的文件末尾內(nèi)容.
這個(gè)命令比如我們需要看日志的時(shí)候,就不用再去使用 XFTP 這樣的工具去把日志弄到本地來(lái)看了,直接就 tail -99f xxxx.log
文件操作 :
cp 復(fù)制
mv 重命名或移動(dòng)
rm 刪除
find 查詢
文檔編輯
這是我們使用過(guò)程中最重要的一點(diǎn),因?yàn)槟阈枰薷呐渲梦募臅r(shí)候經(jīng)常會(huì)使用到文檔編輯的命令,所以這塊的內(nèi)容是你最需要掌握的。
vi/vim 修改
vi : 修改文件,但是顯示字體是白色
vim : 修改文件,但是關(guān)鍵字高亮顯示
這時(shí)候需要的就是我們需要熟記的一些命令,能夠幫我們剩下很多的時(shí)間,
一般模式:
插入模式:
底行模式:
grep 查找過(guò)濾
一般我們使用 grep 命令的時(shí)候,都是搭配著 ps 命令一起,去查看我們需要的一些進(jìn)程信息,比如說(shuō):
ps -ef|grep tomcat 查看tomcat進(jìn)程
kill 殺死進(jìn)程
壓縮和解壓縮 :
chmod 文件授權(quán)
我們一般常用的組合就是那么幾種:
一般知道上面的權(quán)限這點(diǎn)內(nèi)容就差不多了,畢竟咱們干開(kāi)發(fā)又不是專(zhuān)職 干運(yùn)維的。
本文根據(jù)饑人谷相關(guān)課程整理,如有新知識(shí)或遺漏將繼續(xù)補(bǔ)充。
1.程序員為了輸入方便對(duì)命令進(jìn)行縮寫(xiě)
2.縮寫(xiě)規(guī)則是省略A、E、I、O、U五個(gè)元音字母,留下2~3個(gè)字母(有時(shí)會(huì)例外)
注: Windows默認(rèn)不支持鏈接
3. ~ 表示用戶目錄
假設(shè)用戶名是administrator,那么
· 在Windows下, ~ 表示 /User/administrator/ 目錄 (一般在C盤(pán))
· 在Linux下, ~ 表示 /home/administrator/ 目錄
注: 永遠(yuǎn)不要運(yùn)行 rm -rf / 即強(qiáng)制刪除整個(gè)硬盤(pán)
在命令后加 \ ,意思是這句話沒(méi)完
有空格等特殊字符的時(shí)候加引號(hào)
find 命令的基本結(jié)構(gòu)如下:
find 命令手冊(cè) : man find
find 命令中的 -name 選項(xiàng)可以根據(jù)文件名稱進(jìn)行檢索( 區(qū)分大小寫(xiě) )。如需要忽略文件名中的大小寫(xiě),可以使用 -iname 選項(xiàng)。
-name 和 -iname 兩個(gè)選項(xiàng)都支持 wildcards 。如:
例1:查找 /usr 目錄下所有文件名以 .txt 結(jié)尾的文件
例2:查找 /usr 目錄下所有文件名剛好為 4 個(gè)字符的文件
例3:查以大寫(xiě)字母開(kāi)頭的文件
例4:查以兩個(gè)小寫(xiě)字母和兩個(gè)數(shù)字開(kāi)頭的txt文件
類(lèi)似的還有:
-lname -ilname
-path -ipath
-regx -iregx
有些時(shí)候,你需要在搜索時(shí)匹配某個(gè)文件或目錄的 完整路徑 ,而不僅僅是匹配文件名??梢允褂? -path 或 -ipath 選項(xiàng)。
例1:如查找 /usr 下所有文件名以 .txt 結(jié)尾的文件或目錄,且該文件的父目錄必須是 src 。可以使用以下命令:
例2:在當(dāng)前目錄除aa之外的子目錄內(nèi)搜索 txt文件
例3:在當(dāng)前目錄,不再子目錄中,查找txt文件
如果只想搜索得到文件 或 目錄,即不想它們同時(shí)出現(xiàn)在結(jié)果中。可以使用 -type 選項(xiàng)指定文件類(lèi)型。
-type 選項(xiàng)最常用的參數(shù)如下:
例:檢索 /usr 下所有文件名以 python 開(kāi)頭的目錄
find 命令支持 -empty 選項(xiàng)用來(lái)檢索 為空 的文件或目錄??瘴募次募餂](méi)有任何內(nèi)容,空目錄即目錄中沒(méi)有任何文件或子目錄。
例:檢索用戶主目錄下所有的空目錄
find 命令也允許用戶對(duì)當(dāng)前的匹配條件進(jìn)行 “反義” (類(lèi)似于 邏輯非 操作)。
如需要檢索 /usr 下所有文件名 不 以 .txt 為后綴的文件??梢允褂靡韵旅睿?/p>
也可以“翻轉(zhuǎn)”任何其他的篩選條件,如:檢索 /usr 下所有內(nèi)容不為空的文件
為了檢索歸屬于特定用戶的文件或目錄,可以使用 -user 選項(xiàng)。
例:檢索根目錄下所有屬主為 starky 的文件
類(lèi)似于 -user 選項(xiàng), -group 選項(xiàng)則可以根據(jù)文件或目錄的 屬組 進(jìn)行檢索。
有些時(shí)候,需要根據(jù)文件創(chuàng)建或修改的時(shí)間進(jìn)行檢索。
Linux 系統(tǒng)中,與文件相關(guān)聯(lián)的時(shí)間參數(shù)有以下三種:
與此對(duì)應(yīng)的是 find 命令中的 -mtime , -atime 和 -ctime 三個(gè)選項(xiàng)。
這三個(gè)選項(xiàng)的使用遵循以下示例中的規(guī)則:
檢索 /usr 下兩天前被修改過(guò)的文件
如果覺(jué)得 -mtime 等選項(xiàng)以 天 為單位時(shí)間有點(diǎn)長(zhǎng),還可以使用 -mmin , -amin , -cmin 三個(gè)選項(xiàng)。
查找比 aa.txt 新 的文件
查找比 aa.txt 舊 的文件
查找比aa.txt新,比bb.txt舊的文件
-size 選項(xiàng)允許用戶通過(guò)文件大小進(jìn)行搜索(只適用于文件,目錄沒(méi)有大小……)。
表示文件大小的單位由以下字符組成:
另外,還可以使用 + 或 - 符號(hào)表示 大于 或 小于 當(dāng)前條件。
檢索文件大小高于 1 GB 的文件
find 命令可以使用 -perm 選項(xiàng)以文件權(quán)限為依據(jù)進(jìn)行搜索。
9.1使用符號(hào)形式
例1:如需要檢索 /usr 目錄下權(quán)限為 rwxr-xr-x 的文件,可以使用以下命令:
例2:搜索 /usr 目錄下所有權(quán)限為 r-xr-xr-x (即系統(tǒng)中的所有用戶都只有讀寫(xiě)權(quán)限)的文件和目錄,可以使用以下命令:
很多時(shí)候,我們只想匹配文件權(quán)限的一個(gè) 子集 。比如,檢索可以直接被任何用戶執(zhí)行的文件,即只關(guān)心文件的執(zhí)行權(quán)限,而不用管其讀寫(xiě)權(quán)限是什么。
上述的需求可以通過(guò)以下命令實(shí)現(xiàn):
其中 a=x 前面的 / 符號(hào)即用來(lái)表示只匹配權(quán)限的某個(gè)子集(執(zhí)行權(quán)限),而不用關(guān)心其他權(quán)限的具體設(shè)置。
9.2使用數(shù)字形式
例如:搜索 /usr 目錄下權(quán)限為 644 (即 rwxr-xr-x )的文件
find 命令默認(rèn)是以 遞歸 的方式檢索項(xiàng)目的,這有時(shí)候會(huì)導(dǎo)致得到的結(jié)果數(shù)量非常巨大??梢允褂? -maxdepth 限制 find 命令遞歸的層數(shù)。
例如:搜索時(shí)向下遞歸的層數(shù)最大為 3
在之前的例子中有出現(xiàn)多個(gè)搜索條件的 組合 以及對(duì)某個(gè)搜索條件的 反轉(zhuǎn) 。
實(shí)際上 find 命令支持 “and” 和 “or” 兩種邏輯運(yùn)算,對(duì)應(yīng)的命令選項(xiàng)分別是 -a 和 -o 。通過(guò)這兩個(gè)選項(xiàng)可以對(duì)搜索條件進(jìn)行更復(fù)雜的組合。
此外還可以使用 小括號(hào) 對(duì)搜索條件進(jìn)行 分組 。注意 find 命令中的小括號(hào)常需要用 單引號(hào) 包裹起來(lái)。因小括號(hào)在 Shell 中有特殊的含義。
如檢索 /usr 下文件名以 python 開(kāi)頭且類(lèi)型為目錄的文件
該命令等同于:
更復(fù)雜的組合形式如:
例4:在除dir0及子目錄以外的目錄下查找txt后綴文件
說(shuō)明:-a 應(yīng)該是and的縮寫(xiě),意思是邏輯運(yùn)算符‘與’(); -o應(yīng)該是or的縮寫(xiě),意思是邏輯運(yùn)算符‘或’(||), -not 表示非.
命令行的意思是:如果目錄dir0存在(即-a左邊為真),則求-prune的值,-prune 返回真,‘與’邏輯表達(dá)式為真(即-path './dir0*' -a -prune 為真),find命令將在除這個(gè)目錄以外的目錄下查找txt后綴文件并打印出來(lái);如果目錄dir0不存在(即-a左邊為假),則不求值-prune ,‘與’邏輯表達(dá)式為假,則在當(dāng)前目錄下查找所有txt后綴文件。
-delete 選項(xiàng)可以用來(lái)刪除搜索到的文件和目錄。
例如:刪除 home 目錄下所有的空目錄:
-exec 選項(xiàng)可以對(duì)搜索到的結(jié)果執(zhí)行執(zhí)行該參數(shù)所給出的shell命令。形式為 command {} \; ,注意{}與\;之間有空格 。每當(dāng) find 命令檢索到一個(gè)符合條件的文件,會(huì)使用其完整路徑取代命令中的 {} ,然后執(zhí)行 -exec 后面的命令一次。
例1:如需要將 home 目錄下所有的 MP3 音頻文件復(fù)制到移動(dòng)存儲(chǔ)設(shè)備(假設(shè)路徑是 /media/MyDrive ),可使用下面的命令:
其中的 大括號(hào) ( {} )作為檢索到的文件的 占位符 ,而分號(hào)( ; )作為命令結(jié)束的標(biāo)志。因?yàn)榉痔?hào)是 Shell 中有特殊含義的符號(hào),所以需要使用單引號(hào)括起來(lái)或前面加上轉(zhuǎn)義符 \ 。
例2:查看當(dāng)前目錄下的所有普通文件,并在 - exec 選項(xiàng)中使用 ls -l 命令將它們列出
例3:在多個(gè)文件中檢索某個(gè)指定的字符串。如在用戶主目錄下的所有文件中檢索字符串 hello ,可以使用如下命令:
創(chuàng)建 Gzip 格式的壓縮文件的命令為:
現(xiàn)在假設(shè)需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺(jué)是,其命令應(yīng)為如下形式:
實(shí)際情況是,這樣得到的 music.tar.gz 其實(shí)只包含一個(gè) MP3 文件。原因是 find 命令 每次 發(fā)現(xiàn)一個(gè)音頻文件,都會(huì)再執(zhí)行一次 -exec 選項(xiàng)后面的壓縮命令。導(dǎo)致先前生成的壓縮包被覆蓋。
可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給后面的壓縮命令。完整的命令如下:
如果想瀏覽搜索到的文件(目錄)的詳細(xì)信息(如權(quán)限和大小等),可以直接使用 -ls 選項(xiàng)。
例如:瀏覽所有 1G 以上大小的文件的詳細(xì)信息
與exec作用相同,區(qū)別在于,在執(zhí)行命令之前,都會(huì)給出提示,讓用戶確認(rèn)是否執(zhí)行
與 exec 作用相同 ,起承接作用。區(qū)別在于 |xargs 主要用于承接刪除操作 ,而 -exec 都可用 如復(fù)制、移動(dòng)、重命名等
例1:查找以ap或may開(kāi)頭的文件
例2:查硬連接數(shù)大于2的文件或目錄
例3:查找含特定字符串的文件。查找當(dāng)前目錄下含有"the string you want find…"字符串的文件:
例4:從根目錄開(kāi)始查tmpfile,一旦查到馬上刪除
例5:如何用find查找某一天更改的文件?可以使用這一行命令來(lái)實(shí)現(xiàn):
A Guide to the Linux “Find” Command