本文整理了開發人員平常用到的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
#改變一個文件的全部者和羣組,若是是做用於文件夾下全部文件或目錄,則加 -Rchgrp 羣組名 test.log
# 改變文件的羣組
top
# 實時顯示系統中各個進程的資源佔用情況top -H -p 進程號
# 列出進程的全部線程,按1鍵根據CPU佔有率排序ps -ef|grep 進程名稱
# 查看某個進程,通常用於找進程IDkill -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 ncnc -l 1234 > test.log
# 接收方,監聽1234端口,將接收內容存於test.lognc 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用戶
本文發表於微信公衆號:「空山新雨的技術空間」
做者:空山新雨
歡迎關注,轉發,推薦,你的支持是我持續創做的動力