開發人員須要掌握的平常Linux命令集

本文整理了開發人員平常用到的linux相關命令,供參考。java

 

文件相關

cd # 進入某個目錄,不接參數進入當前用戶目錄(等同於cd ~)如/home/devuser,可接絕對路徑或相對路徑(../..表示上上級目錄),也能夠接 「-」 回到上次所在目錄linux

 

pwd # 顯示當前所在目錄

json

ls -la # 列出當前目錄全部對象,-a表示包含以.開頭的隱藏文件或目錄
ll -h # ll 等同於 ls -l, -h表示按K M G 顯示文件大小

微信

df -h # 顯示系統各盤符的空間使用狀況
du -h --max-depth=1 # 顯示當前目錄下各文件大小,–max-depth=1只列出當前目錄下的文件或目錄,不會列出子目錄下的文件

網絡

mv test.log /home/devuser/ # 移動文件(夾) 或重命名app

cp [-r] test test.bak # 複製文件,若是是文件夾則加 -r,表示複製文件夾下全部子文件夾內容

rm -[r]f /home/devuser/ # 刪除文件,若是刪除文件夾則加 -r

less

find / -name test.log # 在根目錄下查找文件名爲test.log的文件
find /var/log/ -size +50M -exec rm -f {} \; # 在/var/log/目錄下查找大於50M的文件並刪除,建議先將rm改成ls確認
find /var/log/ -type f -atime +10 # 搜索在過去10天內未被使用過的文件
find /var/log/ -type f -mtime -10 # 搜索在10天內被建立或者修改過的文件
find /var/log/ -type f -atime +10|xargs rm -f # |xargs 做用與 -exec相似
find ./ -name "*.log" -exec 'cat' {} \; > test.log # 將當前目錄下全部.log文件內容合併到一個文件test.log

ssh

which java # 在系統PATH路徑下查找java可執行文件
whereis java # 查找二進制、源文件、man文件,從文件索引中查找,而不單單從PATH路徑下查找

curl

zip test.zip test.log test2.log # 建立一個zip格式的壓縮包,能夠接多個文件或文件夾
zip -r file.zip file1 file2 dir1 # 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip test.zip # 解壓一個zip格式壓縮包

tcp

tar -zcvf test.tar.gz 要被壓縮的文件名或目錄 # 以gzip進行壓縮 -z 按gzip,-c 壓縮,-v 顯示內容 -f 指定文件名
tar -zxvf test.tar.gz -C 解壓縮到的目錄 # 解壓到指定目錄 -x 解壓
tar -ztvf test.tar.gz # 不解壓,只查看內容

tar -jcvf test.tar.bz2 要被壓縮的文件名或目錄 # 以bzip2進行壓縮
tar -jxvf test.tar.bz2 -C 解壓縮到的目錄 # 解壓到指定目錄

 

文本相關

touch test.log # 建立空文件

echo -e 'abc\ncba'> test.log # 覆蓋的形式往文件寫入內容 -e 解析轉移字符,否則當成字符串
echo 'aaa' >> test.log # 追加的形式往文件寫入內容

cat [-n] test.log |grep [-v] abc # 過濾文件中包含 abc 的行, 加-v表示不包含, -n表示打印行號
cat test.log |grep abc|wc -l # 計算文件中包含 abc 的行數

head -n 2 test.log # 查看一個文件的前兩行
tail -n 2 test.log # 查看一個文件的最後兩行
tail -n +1000 test.log # 從1000行開始顯示,顯示1000行之後的
cat test.log | head -n 2000 | tail -n +1000 # 顯示1000行到2000行的
cat test.log | tail -n +1000 | head -n 1000 # 從第1000行開始,顯示1000行

more test.log # 一頁一頁地查看文件內容,空格鍵日後一頁,B鍵往前一頁,不能經過上下鍵控制翻滾,會一次加載整個文件
less test.log # 一頁一頁地顯示文件內容,能夠經過上下鍵控制往前日後翻,能夠向上向下搜,不需一次加載整個文件,因此速度比more快,「less is more」, less比more更強大

tail -200f test.log # 查看最後200行,根據文件描述符進行追蹤,當文件更名或被刪除,追蹤中止
tail -F test.log # 查看最後10行,只要對應文件名存在,就保持監視,即便文件被刪除或更名後,若是再次建立相同的文件名,也會繼續追蹤

grep abc test.log # 在文件中查找關鍵詞」abc」,相似於 cat test.log|grep abc
grep ^abc test.log # 在文件中查找以」abc」開始的詞彙
grep [0-9] test.log # 選擇文件中全部包含數字的行
grep abc -R /var/log/* # 在目錄 ‘/var/log’ 及隨後的目錄中搜索字符串」abc」

sed 's/abc/ccc/g' test.log # 將test.log文件中的 「abc」 替換成 「ccc」並打印,不改變原有文件
sed '/^$/d' test.log # 從文件中刪除全部空白行並打印,不改變原有文件

paste test.log test2.log # 按兩列合併兩個文件每行的內容並打印,test.log在左邊,test2.log在右邊
paste -d '+' file1 file2 # 合併兩個文件每行的內容並打印,中間用」+」拼接

sort test.log # 對文件內容進行排序,每行首字母排序
sort test.log test2.log # 排序兩個文件的內容
sort test.log test2.log | uniq # 取出兩個文件的並集(重複的行只保留一份)
sort test.log test2.log | uniq -u # 刪除交集,留下其餘的行
sort test.log test2.log | uniq -d # 取出兩個文件的交集(同時存在於兩個文件中的行)

# comm 相似於集合的差集運算,須要兩個文件都是排序的
comm -1 test.log test2.log # 比較兩個文件的內容只刪除test.log所包含的內容
comm -2 test.log test2.log # 比較兩個文件的內容只刪除test2.log所包含的內容
comm -3 test.log test2.log # 比較兩個文件的內容刪除兩個文件共有的內容

 

權限相關

chmod +x test.sh # 爲一個文件增長可執行權限
chmod ugo+rwx test.sh # 設置文件的全部者(u)、羣組(g)以及其餘人(o)讀(r,4 )、寫(w,2)和執行(x,1)的權限,+ 改成 - 即刪除權限
chmod 755 test.sh # 對文件全部者,羣組,其餘人分別設置7(rwx=4+2+1),5(rx=4+1),5(rx=4+1)的權限

chown [-R] 用戶名:羣組名 test.log #改變一個文件的全部者和羣組,若是是做用於文件夾下全部文件或目錄,則加 -R
chgrp 羣組名 test.log # 改變文件的羣組

 

進程相關

top # 實時顯示系統中各個進程的資源佔用情況
top -H -p 進程號 # 列出進程的全部線程,按1鍵根據CPU佔有率排序
ps -ef|grep 進程名稱 # 查看某個進程,通常用於找進程ID
kill -9 進程ID # 中止某個進程
jps # 查看全部java進程

 

網絡相關

ifconfig # 查看系統各網卡信息(IP,mac地址,子網掩碼等)
ss -s # 查看當前系統tcp、udp鏈接數

netstat -ano|grep 端口號 # 查看某個端口是否起來
lsof -i:端口號 # 查看某個端口對應的進程信息,lsof可能須要額外安裝 (sudo yum install lsof)

ssh devuser@192.168.40.206 # 遠程鏈接另外一臺linux主機

curl http://www.baidu.com # get方式請求某個地址
curl -i -X POST -H "Content-type:application/json" -d '{"a":"x","b":["y"]}' http://xxx# POST方式請求某個接口

wget http://xxx.zip # 下載文件

scp test.log devuser@192.168.40.206:/home/devuser/# 傳輸文件到另外一臺主機的目錄下,若是是文件夾則加 -r

# nc 傳輸,可用於文件傳輸(scp須要密碼,nc不須要密碼),須要安裝 sudo yum install nc
nc -l 1234 > test.log # 接收方,監聽1234端口,將接收內容存於test.log
nc 192.168.40.205 1234 < test.log # 發送方,向接收方(ip爲192.168.40.205)發送test.log的內容

 

系統相關

top # 查看CPU、內存使用狀況,即各進程使用狀況
free -g # 查看內存使用狀況
date # 查看系統當前時間
uptime # 查看當前CPU使用負載狀況,及系統已運行時間,至關於top的第一行
su # 切換到root用戶
su devuser # 切換到devuser用戶

 

本文發表於微信公衆號:「空山新雨的技術空間」

做者:空山新雨
歡迎關注,轉發,推薦,你的支持是我持續創做的動力

相關文章
相關標籤/搜索