20分鐘吃掉Linux常用命令40式
一,目錄管理
1 , ls 查看目錄下文件
例1:ls -a 查看全部目錄,包含隱藏目錄
例2:ls -l 查看當前目錄詳細列表
例3:ls -lt ?查看當前目錄詳細列表,按時間順序排序,最近修改的文件在前面
例3:ls -ltr ?查看當前目錄詳細列表,按時間順序逆序排序,最近修改的文件在后面
2, cd ?切換目錄
例1:cd .. #切換到上級目錄, linux中一個點表示當前路徑,二個點表示當前路徑上級路徑
例2:cd ~ #切換到主目錄
例3:cd /User/liangyun03/ # 切換到某個絕對路徑,linux中以/開頭的路徑表示絕對路徑
例4:cd ?data/pictures/ # 切換到當前路徑下某個相對路徑,linux中不以/開頭的路徑表示相對路徑
3, pwd 當前工作目錄
例:pwd #查看當前工作目錄完整路徑
4, mkdir 建立文件夾
例:mkdir document #建立文件夾document
5, rmdir 刪除空文件夾
如果是刪除非空文件夾,一般要用 rm -rf document
二,文件操作
6, cp 復制文件
例:cp xxx.csv /folder/yyy.csv 賦值文件xxx.csv到 /folder/yyy.csv
7,mv 移動文件
例:mv xxx.csv folder/yyy.csv #將文件移動到新目錄并更改文件名
8,rm ?刪除文件
例: rm -rf folder #刪除folder中全部文件
9, echo 打印內(nèi)容,可以寫入或追加到文件
例1:echo "hello world" > test.txt 將一行字符串寫入到文件
例2:echo "hello China" >> test.txt 將一行字符串追加到文件
10,du ?查看文件大小
例:du -sh folder #查看folder目錄全部文件大小 -s 表示求和 ?-h 表示 human
11,wc 統(tǒng)計文件行數(shù), 單詞數(shù),字節(jié)數(shù)
wc為 watch的縮寫
例:wc -lwc xxx.txt #統(tǒng)計文件行數(shù),單詞數(shù),字節(jié)數(shù)
12,chmod 修改文件或目錄權限
例:chmod 777 test.txt 讓全部用戶有讀、寫、和執(zhí)行的權限
13,cat 拼接文件
后面可以接一個或者多個文件
例:cat abc.csv xyz.csv > data.csv 拼接兩個文件abc.csv,xyz.csv中的內(nèi)容并寫入到data.csv中
14, find 查找文件位置
可以使用星號通配符
例:find ~ -name stopword.txt ?在主目錄下查找名稱為stopword.txt的文件路徑
15, ?head(tail) 查看文件前(后)n行
例1:head -n 100 xxx.csv #打印文件xxx.csv前100行
例2:tail -n 100 -f nohup.out #查看文件nohup.out的后100行并動態(tài)刷新
16, cut 截取文件某些列
可以指定分割方式 -d 為自定義分割方式, -b 按字節(jié)分割, -c 按字符分割 ,用-f指定取第幾列
例:cut -d " " -f ?2 ?test.txt ?#對test.txt文件按空格分隔,取第二列
17, sort 文本排序
例:sort -t'-' -k 2 -n test.txt #指定分割符為"-",按第二列排序,按數(shù)字大小排序
18, grep 文本搜索工具
grep (global search regular expression(RE) and print out the line) 全面搜索正則表達式并把行打印出來
例1: grep -ir "abc" ./ ?#在當前路徑下遞歸查找具有"abc"字符串的文件,忽略"abc"大小寫
例2:cat doc.md | grep "abc" #輸出doc.md中含有"abc"字符串的行
19, sed 文本編輯工具
文本編輯工具,語法復雜,一些常見用法如下面例子
例1:sed -i '1d' xxx.csv #刪除文件中的第1行
例2:sed -n '50,100p' xxx.csv > yyy.csv #截取文件第50至100行
例3:cat xxx.csv | sed 's/ /\t/g' > yyy.csv ?# 將文件中的空格替換為\t
20, awk 文本分析工具
文本分析工具,語法復雜,一些常見用法如下面的例子
例1:cat xxx.csv | awk -F'\t' '{print NF}' #查看文件每行有多少列,以'\t'分割
例2:cat xxx.csv | awk -F'\t' '{print 2}' #獲取文件第一和第二列,以'\t'分割
例3:cat xxx.csv | awk -F'\t' '{print $NF}' #獲取文件最后一列,以'\t'分割
三,文件壓縮
21, zip壓縮
例1:zip -r ./xxx.zip ./ ?#壓縮當前文件夾成 xxx.zip
例2:unzip xxx.zip ? 解壓xxx.zip
例3:zip -r -P yourPassword yourZipFileName.zip yourSourceFileDir #壓縮加密碼
22, tar壓縮
例1:tar -czf xxx.tar.gz xxx/* ?#壓縮文件夾
例2:tar -xzvf xxx.tar.gz ? #解壓xxx.tar.gz文件
四,文件傳輸
23, scp 跨機器拷貝
僅需要在一臺機器上操作
例1:從其它機器copy到當前機器
scp [email protected]:/home/user/xxx.csv xxx.csv
例2:從當前機器copy到其他機器
scp xxx.csv [email protected]:/home/user/xxx.csv
24, nc 網(wǎng)絡通信工具
需要在兩臺機器上操作,一般先在一臺機器上監(jiān)聽,然后再在另外一臺機器上發(fā)送
例1:240機器上接收43機器上發(fā)送
nc -l 2222>file #在240機器上操作
nc 10.11.4.240 2222 例2:傳輸當前目錄: nc -l 9995 | tar xfvz - tar czf - | nc ip 9995 25,rz/sz 與本地機器互傳文件 rz 接受文件:receive Zmodem sz 發(fā)送文件到windows上:send Zmodem 26, ps 查看進程信息 ps:process status 例1:ps -u liangyun ?#查看當前l(fā)iangyun用戶全部進程信息 例2:ps -alf ? | grep python #查看當前所有和Python相關的進程 27, kill 殺死進程 例1:kill -9 12345 #殺死進程號為12345的進程 例2:kill -9 $(ps -ef | grep liangyun) ?#殺死某個用戶的所有進程 例3:ps -ef | grep liangyun03 | grep -v 'grep' | awk '{print $2}' |xargs kill -9 #殺死某個用戶的所有進程 這條命令的語法說明如下: ps -ef : 打印出正在運行的進程信息 grep liangyun :查找進程信息帶有l(wèi)iangyun03關鍵字的進程 grep -v 'grep' : 去掉grep自身進程的信息 awk '{print $2}' : 取得進程號 xargs kill -9 : 殺死進程 28, top 查看進程占用資源情況 例1:top #循環(huán)滾動顯示當前活躍的進程占用資源情況,按Ctrl+C退出 29, &后臺執(zhí)行符號 &符號放在命令末尾表示在新的進程中運行命令 例:python test.py & 在一個新的進程中運行test.py腳本 30 nohup 不掛斷執(zhí)行命令 nohup 放在命令開始表示即使用戶退出登錄,這個命令依舊繼續(xù)執(zhí)行不掛斷 例:nohup python tunexgboost.py & #在后臺不掛斷執(zhí)行命令,日志輸出寫入nohup.out文件,可以用tail -f nohup.out監(jiān)視日志 31, df 查看磁盤使用情況 例:df -m -h #查看系統(tǒng)磁盤使用情況 32, free 查看CPU使用情況 例:free -m -h #查看CPU使用情況 33, ifconfig 查看機器ip 34, nvidia-smi 查看GPU使用情況 35, uname 查看操作系統(tǒng)信息 可看到操作系統(tǒng)名稱和版本號 例:uname -a #查看全部系統(tǒng)信息 36, |符號 管道連接符 |可以連接兩個命令,將前一個命令的輸出作為后一個命令的輸入 例1:ls | grep ".md" #找到當前目錄下名字中含有".md"字符的文件 例2:cat input.txt | python mapper.py |sort -t 1| python reducer.py >output.txt ? #用Linux管道模擬測試mapreduce程序 37, <和>和>>符號 輸入和輸出流重定向 利用<符號可以將文件內(nèi)容作為命令的輸入,利用>和>>可以將輸出流不打印到屏幕而是寫入或追加到文件中。 例1:python test.py 38,tee 讀取標準輸入并保存成文件 例1:ls | tee output..txt ?#獲取標準輸入流,結(jié)果打印到屏幕并輸出到output.txt文件中 39,vim 文本編輯器 例1: vim helloworld.py 創(chuàng)建/打開文件 例2:按i/a 進入編輯模式 例3:按Esc退出編輯模式,進入命令模式 例4:輸入 :wq 保存退出 例5:輸入 :q! 強制退出 不保存 例6:輸入:set number 顯示行號,可以新建 ~/.vimrc 寫入該命令永久有效 例7:輸入:/re 查找匹配 re的字符串高亮顯示,再輸入:noh取消高亮, 輸入/再按Enter查找下一處匹配 例8:輸入:vsp xxx.py ?橫向視窗分割(visual split)并打開 xxx.py文件, Ctrl+W在不同窗口間切換 例9:vimdiff aa.txt ?bb.txt ?逐行比較兩個文件 例10: 按Esc+g回到第一行,按Esc+Shift+g跳轉(zhuǎn)到最后一行 例11:按shift+4移動到行尾,shift+6移動到行首 例12:多行注釋方法, Ctrl + V 進入Block Visualization, 上下鍵選中多行,輸入大寫I,輸入#,然后按兩下Esc 例13:多行刪除方法, Shift +V 進入 Line Visualization, 上下鍵選中多行,然后按Delete鍵刪除 40,source 依次執(zhí)行文件中命令 該命令也可以用.符號來代替 例1:source .bashrc #使得.bashrc中的修改立即生效 以下為linux下常用配置文件 (1),/etc/profile
用來設置系統(tǒng)環(huán)境參數(shù),比如$PATH. 這里面的環(huán)境變量是對系統(tǒng)內(nèi)所有用戶生效的。 (2),/etc/bashrc
這個文件設置系統(tǒng)bash shell相關的東西,對系統(tǒng)內(nèi)所有用戶生效。只要用戶運行bash命令,那么這里面的東西就在起作用。 (3),~/.bash_profile
用來設置一些環(huán)境變量,功能和/etc/profile 類似,但是這個是針對用戶來設定的,也就是說,你在/home/user1/.bash_profile 中設定了環(huán)境變量,那么這個環(huán)境變量只針對 user1 這個用戶生效. (4),~/.bashrc
作用類似于/etc/bashrc, 只是針對用戶自己而言,不對其他用戶生效。另外/etc/profile中設定的變量(全局)的可以作用于任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是”父子”關系. (5),/etc/hosts 域名配置文件 注:~/.bash_profile 是交互式、login 方式進入 bash 運行的,意思是只有用戶登錄時才會生效。~/.bashrc 是交互式 non-login 方式進入 bash 運行的,用戶不一定登錄,只要以該用戶身份運行命令行就會讀取該文件。五,進程管理
六,資源管理
七,Linux管道和輸入輸出流
Appendix A, vim基礎用法
Appendix B,Linux配置文件
