Java程序員必須掌握的常用Linux命令。
Java程序員也是半個運維了,在日常開發中經常會接觸到Linux環境操作。小公司的開發人員甚至是兼了全運維的工作,下面整理了一些常用的Linux操作命令。
Linux常用指令
ls 顯示文件或目錄
-l 列出文件詳細信息l(list)
-a 列出當前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir 創建目錄
-p 創建目錄,若無父目錄,則創建p(parent)
cd 切換目錄
touch 創建空文件
vim / vi 創建/編輯文件
insert 編輯
:q 退出
:q! 強制退出
:wq 保存並退出
esc 退出編輯
echo 創建帶有內容的文件
cat 查看文件內容
tar 打包壓縮
-c 建立壓縮檔案
-x 解壓縮文件
-z gzip壓縮文件
-j bzip2壓縮文件
-v 顯示所有過程
-f 使用檔名
cp 拷貝
-r 遞歸拷貝目錄
mv 移動或重命名
rm 刪除文件
-r 遞歸刪除,可刪除子目錄及文件
-f 強制刪除
chmod 變更文件或目錄的權限
kill 殺進程
find 在文件系統中搜索某文件
wc 統計文本中行數、字數、字符數
grep 在文本文件中查找某個字符串
rmdir 刪除空目錄
tree 樹形結構顯示目錄,需要安裝tree包
pwd 顯示當前目錄
ln 創建鏈接文件
date 顯示系統時間
more / less 分頁顯示文本文件內容
head / tail 顯示文件頭、尾內容
sudo 用來以其他身份來執行命令,預設的身份爲root
su 換當前用戶身份到其他用戶身份
stat 顯示指定文件的詳細信息,比ls更詳細
who 顯示在線登陸用戶
whoami 顯示當前操作用戶
hostname 顯示主機名
uname 顯示系統信息
top 動態顯示當前耗費資源最多進程信息
ps 顯示瞬間進程狀態
-e 顯示所有進程
-f 全格式
du 查看目錄大小
-s 只顯示目錄大小的總合
-h 帶單位顯示目錄大小
df 查看磁盤大小df
-h 帶有單位顯示磁盤信息
free 查看內存情況
-b 單位(bytes)
-k 單位(KB)
-m 單位(MB)
-g 單位(GB)
ifconfig 查看網絡情況
ping 測試網絡連通
netstat 顯示網絡狀態信息
-ano 查看某個端口是否被佔用
-tlnp 根據端口查找PID
man 查看Linux中的指令幫助
clear 清屏
kill 殺進程
reboot 重啓系統
shutdown
-r 關機重啓
-h 關機不重啓
now 立刻關機
1.查找文件 find / -name filename.txt 根據名稱查找/目錄下的filename.txt文件。
find . -name “*.xml” 遞歸查找所有的xml文件
find . -name “*.xml” |xargs grep “hello world” 遞歸查找所有文件內容中包含hello world的xml文件
grep -H ‘spring’ *.xml 查找所以有的包含spring的xml文件
find ./ -size 0 | xargs rm -f & 刪除文件大小爲零的文件
ls -l | grep ‘.jar’ 查找當前目錄中的所有jar文件
grep ‘test’ d* 顯示所有以d開頭的文件中包含test的行。
grep ‘test’ aa bb cc 顯示在aa,bb,cc文件中匹配test的行。
grep ‘[a-z]{5}’ aa 顯示所有包含每個字符串至少有5個連續小寫字符的字符串的行。
2.查看一個程序是否運行 ps –ef|grep tomcat 查看所有有關tomcat的進程
3.終止線程 kill -9 19979 終止線程號位19979的進程
4.查看文件,包含隱藏文件 ls -al
5.當前工作目錄 pwd
6.複製文件 cp source dest 複製文件 cp -r sourceFolder targetFolder 遞歸複製整個文件夾 scp sourecFile romoteUserName@remoteIp:remoteAddr 遠程拷貝
7.創建目錄 mkdir newfolder
8.刪除目錄 rmdir deleteEmptyFolder刪除空目錄 rm -rf deleteFile 遞歸刪除目錄中所有內容
9.移動文件 mv /temp/movefile /targetFolder
10.重命令 mv oldNameFile newNameFile
11.切換用戶 su -username
12.修改文件權限 chmod 777 file.java //file.java的權限-rwxrwxrwx,r表示讀、w表示寫、x表示可執行
13.壓縮文件 tar -czf test.tar.gz /test1 /test2
14.列出壓縮文件列表 tar -tzf test.tar.gz
15.解壓文件 tar -xvzf test.tar.gz
16.查看文件頭10行 head -n 10 example.txt
17.查看文件尾10行 tail -n 10 example.txt
18.查看日誌類型文件 tail -f exmaple.log//這個命令會自動顯示新增內容,屏幕只顯示10行內容的(可設置)。
19.使用超級管理員身份執行命令 sudo rm a.txt 使用管理員身份刪除文件
20.查看端口占用情況 netstat -tln | grep 8080 查看端口8080的使用情況
21.查看端口屬於哪個程序 lsof -i :8080
22.查看進程 ps aux|grep java 查看java進程 ps aux查看所有進程
23.以樹狀圖列出目錄的內容 tree a ps:Mac下使用tree命令
24.文件下載 wget http://file.tgz mac下安裝wget命令 curl http://file.tgz
25.網絡檢測 ping www.just-ping.com
26.遠程登錄 ssh userName@ip
27.打印信息 echo $JAVA_HOME 打印java home環境變量的值
28.java 常用命令 java javac jps ,jstat ,jmap, jstack
29.其他命令 svn git maven
cmd命令和linux命令的區別
cmd命令和linux命令看起來很相似,都是在一個控制檯輸入一些特定的指令去完成一些特定的操作。可是用過的朋友就會發現這些指令是有很多不同的,可是到底有什麼不同,要說又說不上來,所以要了解一下。
cmd命令的起源:DOS
DOS(Disk Operating System,磁盤操作系統),是Windows系統之前的一個操作系統名稱,屬於單用戶單任務式的,特點通常是黑底白字,用戶全靠鍵盤輸入命令來完成所有工作。之後Windows誕生了,屬於多用戶多任務式的(系統名稱都是多窗口),初期當然還得使DOS系統可用,再之後專門開闢個cmd窗口來模仿DOS界面及大多數的命令,也稱爲命令行,這就是cmd命令行的誕生。
Windows裏面運行cmd出來的DOS不是真正的DOS,那是微軟在windows裏虛擬的DOS環境,是用來運行一些高級命令的,真正的DOS是脫離系統的。因爲他本身就是一種操作系統。因此,可以得出一個結論就是:cmd是一個實現了DOS功能的接口,可以使用DOS的部分功能,支持DOS的部分指令。
cmd命令和linux命令的區別
1.最根本的區別是linux shell是linux操作系統的一個用戶交互層;而cmd只是windows系統下的一個小小的應用。
2.shell是介於應用程序和內核之間的殼,所有應用程序要和內核交互都必須要通過shell,包括linux的圖形桌面Xwindow;而cmd只是windwows下一個補充,cmd是否存在對windows系統並沒有那麼重要。
3.linux在沒有圖形界面下幾乎可以完成任何事情,而且比圖形桌面更簡潔高效,還可以配合shell編程實現自動化;而cmd只是windows下的一個終端模擬器,相當於一個桌面應用,不能單獨存在。
4.shell功能強大,體驗極佳;cmd蹩腳難用,功能有限。其實windows一直改善cmd,但是總是不夠強大,最後還是妥協引入shell,比如win7的powershell和win10的linux shell,儘管還是沒有專業的shell強大。這個一定程度上說明了shell遠比cmd要強大得多。
一些具體命令的不同
功能
cmd:
linux:
複製文件
cmd:copy
linux:cp
移動文件
cmd:move
linux:mv
列舉文件
cmd:dir
linux:ls
清除屏幕
cmd:cls
linux:clear
退出
cmd:exit
linux:exit
顯示修改日期
cmd:date
linux:date
刪除文件
cmd:del
linux:rm
迴響信息到屏幕
cmd:echo
linux:echo
用編輯器編輯文件
cmd:edit
linux:vi
比較文件內容
cmd:fc
linux:diff
在文件中查找字符串
cmd:find
linux:grep
顯示命令幫助
cmd:命令/?
linux:man 命令
創建目錄
cmd:mkdir
linux:mkdir
刪除目錄
cmd:rd
linux:rmdir
目錄更名
cmd:move
linux:mv
拷貝目錄
cmd:xcopy
linux:copy
查看文件
cmd:more
linux:less
重命名文
cmd:ren
linux:mv
切換目錄
cmd:cd
linux:cd
顯示時間
cmd:time
linux:date
顯示已被使用的內存
cmd:mem
linux:free
在屏幕打印文件內容
cmd:type
linux:cat