數據挖掘工程師並不是一直都在圖形化界面中工作,並且隨着大數據開源技術的發展,會有更多的任務需要在命令行環境下完成,比如在hadoop環境下進行數據文件的導入導出,在ubuntu環境下進行python庫的安裝與配置,因此就需要掌握一些基本的、常用的Linux命令。本文針對這一話題進行了總結梳理。
1.目錄操作
(1)絕對路徑與相對路徑
絕對路徑:路徑的寫法一定由根目錄”/”寫起,比如:/usr/local/lib
相對路徑:路徑的寫法不是由根目錄”/”寫起,比如:local/lib。這時,這個目錄相當於是將當前目錄作為“根目錄”,如果當前目錄變化了,那么這個相對路徑就要需要修改。
(2)打印當前目錄:pwd
命令格式: pwd
返回當前目錄的絕對路徑。
(3)切換目錄:cd
命令格式: cd 目錄名
cd 絕對路徑
cd 相對路徑
cd . --切換到當前目錄
cd .. --切換到上一層目錄
cd / --切換到根目錄
cd ~ --切換到home目錄
(4)創建目錄:mkdir
命令格式: mkdir 新目錄名(既可以是絕對路徑,也可以是相對路徑)
-p參數:
mkdir -p 新目錄名
-p的作用是,不使用-p參數時,如果要創建的目錄所在的上層目錄不存在時,就會報錯;而使用了-p參數后,就會直接一次性連上層目錄都創建了。如下:創建tmp3中的tmp4,其中tmp3之前是不存在的。未使用-p時,提示了tmp3不存在;使用-p時,不提示錯了,tmp3、tmp4都會一次性創建。
(5)查看目錄內容:ls
命令格式: ls <目錄>
直接使用ls命令,查看當前目錄下的內容。
使用ls命令+路徑,查看指定目錄下的內容。
不同的顏色,表示的含義不一樣:
白色:普通文件
藍色:目錄
綠色:可執行文件
紅色:壓縮文件
淺藍色:鏈接文件
黃色:設備文件
灰色:其他文件
(6)復制目錄:cp -r
cp命令既可用於拷貝文件,又可用於拷貝目錄,但是拷貝目錄時必須使用-r參數。
命令格式: cp -r 源目錄 目標目錄
將tmp1下的tmp2目錄拷貝到tmp3目錄下:
這里,首先將/usr下的6.csv文件復制一份到/usr/tmp1/tmp2中,然后嘗試將tmp2目錄復制到tmp3中,未加-r參數時,報錯,無法拷貝。增加-r參數后,拷貝成功,而且可以看到,是連目錄中的文件一起拷貝的。
(7)移動目錄:mv
命令格式: mv 源目錄 目標目錄
移動目錄時,會將目錄中的文件一起移動。
當目標目錄不存在時,就會在移動目錄的同時進行重命名操作。
這里,/usr/tmp9是不存在的,所以將tmp4移動過去后,就會同時改名。
當源目錄和目標目錄在同一父目錄下,其實就是對原目錄進行了重命名操作。
(8)刪除目錄:rmdir、rm
命令格式: rmdir 目錄名
在/usr中創建一個新目錄tmp5,可以使用rmdir直接刪除它。
rmdir -p 目錄名
在/usr中遞歸創建一個新目錄tmp6/tmp7,使用rmdir刪除tmp7時,只會將tmp7刪除,保留了其父目錄tmp6;如果使用了-p參數,就會將其父目錄tmp6一並刪除,如例中刪除tmp8時。
但是當要刪除了目錄非空時,比如tmp2中有6.csv文件時,再使用rmdir刪除它時就會報錯。這時候就需要使用rm命令了。
rm命令既可以用於刪除文件,也可以用於刪除目錄,但是此時必須增加-r參數。
rmdir命令只能用於刪除目錄。
##2.文件操作 ###(1)復制文件:cp
命令格式: cp 文件名 目錄</文件名>
通過cp命令,將一個文件復制到指定位置,可以在指定位置目錄后設定文件名稱,相當於復制后對該文件進行了重命名操作。
(2)移動文件:mv
命令格式: mv 文件名 目錄</文件名>
(3)刪除文件:rm
命令格式:rm 文件名
(4)讀取並打印文件內容:cat
命令格式: cat 文件名
(5)查看更多文件內容:more、less
當文件內容太多,一屏不能顯示完,如果用cat就只能顯示最后面的部分,這時候就需要用more或者less了。
more看完一屏后,就可以通過空格(打印下一屏)、或者回車鍵(打印下一行),可以隨時通過q結束瀏覽模式。
命令格式: more 文件名
less和more的作用一樣:分屏瀏覽長文本內容,但是less比more更方便,可以“回頭”打印,即往前看。可以通過上下方向鍵,向前向后看,空格和回車鍵和more命令作用一樣,使用q隨時退出瀏覽模式。
命令格式: less 文件名
(6)讀取前n行:head
命令格式: head <-n> 文件名
默認打印前十行。
使用參數n=3,只打印前三行。
(7)讀取后n行:tail
命令格式: tail <-n> 文件名
默認打印后十行。
使用參數n=3,只打印后三行。
(8)搜索文件:find
命令格式: find -name filename --按文件名搜索
可以使用命令或者類型的模糊匹配搜索。
使用-iname參數替換-name,可以忽略大小寫。
可以使用-o參數連接多個搜索條件,條件之間是“或”關系。
也可以設定搜索目錄,在指定目錄下完成搜索。
##3.文件屬性 ###(1)簡介 使用ls -l命令查看指定目錄下的文件的屬性信息。這里的“文件”是廣義上的文件,包括文件、目錄、設備、分區等等。
命令格式: ls -l <目錄>
含義解釋:
total:該目錄下所有文件的大小(單位為KB),是列表中文件屬性第五列,文件大小之和,這里的單位是B。
第一列:文件類型和文件權限,共10位。
其中:
第1位:文件類型(d:目錄,-:普通文件……)
后9位,每3位為一組,均為rwx三個參數的組合。r——可讀,w——可寫,x——可執行。
第一個三位,代表文件所屬主(user)的權限,第二個三位,代表文件所屬組(group)的權限,第三個三位代表其他非所屬組用戶(others)的權限。
(2)更改所屬組:chgrp
命令格式: chgrp 組名 文件名
首先使用groupadd命令增加一個組testgrp,接着使用chgrp將文件5.txt的所屬組更改為這個組。
(3)更改所屬主:chown
命令格式: chown <-R> 用戶名 文件名
首先使用useradd命令增加一個用戶testusr,接着使用chown將文件5.txt的所屬主更改為這個用戶。
當修改目錄時,需要注意,使用-R參數,實現級聯更改,即不僅修改該目錄,還修改這個目錄下面的所有子目錄或者文件。-R只對修改目錄有效。
(4)更改用戶操作權限:chmod
命令格式: chmod <-R> 權限值 文件名
為方便權限的修改,將權限用數字表示,r:4,w:2,x:1,-:0,三個權限組的值拼接在一起,比如:上面的rw-r--r--,第一個權限組:rw-等於4+2+0=6,第二個權限組:r--等於4+0+0=4,第三個權限組:r--等於4+0+0=4,所以其權限值為644。
同樣,使用-R參數,實現級聯更改。
在linux系統中,默認一個目錄的權限為 755,而一個文件的默認權限為644。
-rwxrwx---用數字表示就是770,下面我們通過chmod命令將5.txt文件進行權限修改。
##4.快捷鍵 ###(1)終止當前命令:CTRL+C 用於終止當前命令。
(2)自動補全:TAB
幫你自動補全命令或者目錄,如果沒有反應,說明系統還無法判斷,需要輸入更多信息。
(3)退出當前終端:CTRL+D、exit
退出當前終端,關閉窗口。
(4)暫停當前進程:CTRL+Z
暫停當前的進程,使用fg恢復。
(5)清屏:CTRL+L
##5.其他命令 ###(1)查看命令幫助信息:man
命令格式: man 命令名稱
用來看一個命令的幫助文檔。
(2)文件的打包與壓縮:
在linux下最常見的壓縮文件通常都是以.tar.gz為結尾的,除此之外還有.tar,.gz, .bz2,.zip等等。
.gz : gzip壓縮工具壓縮的文件
.bz2: bzip2 壓縮工具壓縮的文件
.tar : tar打包程序打包的文件(tar並沒有壓縮功能,只是把一個目錄合並成一個文件)
.tar.gz : 可以理解為先用tar打包,然后再gzip壓縮
.tar.bz2 : 同上,先用tar打包,然后再bzip2壓縮
壓縮: gzip 文件名
解壓縮: gzip -d 壓縮包.gz
注意:gzip不可以壓縮目錄。
壓縮: bzip2 文件名
解壓縮: bzip2 -d 壓縮包.bz2
打包: tar -cvf 文件名.tar 文件名
解包tar: tar -xvf 壓縮包.tar
打包后gzip壓縮: tar -czf 文件名.tar.gz 文件名
解壓縮tar.gz: tar -xzvf 壓縮包.tar.gz
打包后bzip2壓縮: tar -cjf 文件名.tar.bz2 文件名
解壓縮tar.bz2: tar -xjvf 壓縮包.tar.bz2
(3)系統關機與重啟:
halt 立刻關機
poweroff 立刻關機
shutdown -h now 立刻關機(root用戶使用)
shutdown -h 10 10分鍾后自動關機
reboot 立刻重啟
shutdown -r now 立刻重啟(root用戶使用)
shutdown -r 10 10分鍾后自動重啟(root用戶使用)