工欲善其事,必先利其器。無論是做哪一方面開發的程式設計師,都免不了和shell打交道,不管是基於Linux的伺服器、開發機,還是Mac。
本文主要記錄一些Shell命令的基本用法,作為參考/查詢手冊,隨時更新、完善。更多技巧以及詳細解釋將後續以專題形式持續更新。
常用命令
-
ls
檢視當前目錄下的檔案 -
cd
進入某目錄cd -
跳轉回前一目錄`cd ~` 進入當前使用者個人目錄
-
pwd
輸出當前所在路徑 -
mkdir
新建資料夾touch
新建檔案 -
find
查詢檔案 -
ln
建立連結 -
du
檢視目錄大小`du -sh *` 帶有單位顯示目錄資訊
-
df
檢視磁碟大小` df -h` 帶有單位顯示磁碟資訊
-
cal
顯示日曆 -
date
顯示當前日期、時間
檔案傳輸類
-
mv
移動檔案/重新命名 -
cp [File Name] [Destination]
拷貝檔案`cp -R [File Name] [Destination]`遞迴拷貝(主要用於資料夾)
-
scp
遠端拷貝,除了需要在遠端地址的目錄前加入user@host:
形式的地址資訊外,命令用法與copy一致 -
ftp
啟動ftp服務。
壓縮與解壓縮
-
tar
打包壓縮`-c` 歸檔檔案 `-x` 解壓縮檔案 `-v` 顯示壓縮/解壓縮過程 `-j` bzip2壓縮檔案 `-z` gzip壓縮檔案 `-f` 使用檔名 `tar -cvf` 只打包,不壓縮 `tar -zcvf` 打包,並用gzip壓縮 `tar -jcvf` 打包,並用bzip2壓縮
解壓縮時,只需將上述命令中
c
換成x
即可。
系統命令類
-
whoami
顯示當前操作使用者 -
hostname
顯示主機名 -
uname
顯示系統資訊 -
top
動態顯示當前耗費資源最多程式資訊 -
ps
顯示瞬間程式狀態ps aux
-
kill
殺死程式(top/ps檢視程式id後,kill [id]
) -
netstat
顯示網路狀態資訊 -
which [command]
檢視命令所在路徑export [VAR]="xxx"
為系統變數賦值
alias [short]=[long]
為命令設定別名
文字操作類
這是比較重要的一節,後面會專門寫文章介紹這些概念,這裡只作為一個目錄。
-
cat
檢視檔案內容 -
head
檢視檔案頭部內容tail
檢視檔案尾部內容 -
more/less
分頁顯示檔案內容 -
grep
在文字檔案中查詢某個字串 -
|
管道 -
> >>
重定向
包管理(ubuntu)
此處主要介紹ubuntu包管理概念,大多數Mac使用者使用Brew,原理類似,具體命令參考幫助文件即可。
sudo apt-get update 更新軟體源資訊
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統(慎重!!!)
sudo apt-get install 安裝軟體
sudo apt-get -f install 修復安裝
sudo apt-get remove 刪除軟體
sudo apt-get remove --purge 刪除軟體以及配置檔案
sudo apt-get autoremove 自動刪除(未刪除的依賴)
sudo apt-get clean && sudo apt-get autoclean 清理無用的包
許可權管理
-
chmod
更改許可權 -
chown
更改檔案的使用者及使用者組