簡單又強大的SHELL
閱讀以下部分前,強烈建議讀者開啟一個shell實驗,這些都不是shell教科書裡的大路貨哦:
!$
!$是一個特殊的環境變數,它代表了上一個命令的最後一個字串。如:你可能會這樣:
1 $mkdir mydir
2 $mv mydir yourdir
3 $cd yourdir
可以改成:
1 $mkdir mydir
2 $mv !$ yourdir
3 $cd !$
sudo !!
以root的身份執行上一條命令 。
場景舉例:比如Ubuntu裡用apt-get安裝軟體包的時候是需要root身份的,我們經常會忘記在apt-get前加sudo。每次不得不加上sudo再重新鍵入這行命令,這時可以很方便的用sudo !!完事。
(陳皓注:在shell下,有時候你會輸入很長的命令,你可以使用!xxx來重複最近的一次命令,比如,你以前輸入過,vi /where/the/file/is, 下次你可以使用 !vi 重得上次最近一次的vi命令。)
cd –
回到上一次的目錄 。
場景舉例:當前目錄為/home/a,用cd ../b切換到/home/b。這時可以透過反覆執行cd –命令在/home/a和/home/b之間來回方便的切換。
(陳皓注:cd ~ 是回到自己的Home目錄,cd ~user,是進入某個使用者的Home目錄)
'ALT+.' or '<ESC> .'
熱建alt+. 或 esc+. 可以把上次命令列的引數給重複出來。
^old^new
替換前一條命令裡的部分字串。
場景:echo "wanderful",其實是想輸出echo "wonderful"。只需要^a^o就行了,對很長的命令的錯誤拼寫有很大的幫助。
du -s * | sort -n | tail
列出當前目錄裡最大的10個檔案。
:w !sudo tee %
在vi中儲存一個只有root可以寫的檔案
date -d@1234567890
時間截轉時間
> file.txt
建立一個空檔案,比touch短。
mtr coolshell.cn
mtr命令比traceroute要好。
在命令列前加空格,該命令不會進入history裡。
echo "ls -l" | at midnight
在某個時間執行某個命令。
curl -u user:pass -d status="Tweeting from the shell"
命令列的方式更新twitter。
curl -u username --silent " | perl -ne 'print "\t" if /<name>/; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'
檢查你的gmail未讀郵件
ps aux | sort -nk +4 | tail
列出頭十個最耗記憶體的程式
man ascii
顯示ascii碼錶。
場景:忘記ascii碼錶的時候還需要google麼?尤其在天朝網路如此“順暢”的情況下,就更麻煩在GWF多應用一次規則了,直接用本地的man ascii吧。
ctrl-x e
快速啟動你的預設編輯器(由變數$EDITOR設定)。
netstat –tlnp
列出本機程式監聽的埠號。
tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
當file.log裡出現Finished: SUCCESS時候就退出tail,這個命令用於實時監控並過濾log是否出現了某條記錄。
ssh user@server bash < /path/to/local/script.sh
在遠端機器上執行一段指令碼。這條命令最大的好處就是不用把指令碼拷到遠端機器上。
ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
比較一個遠端檔案和一個本地檔案
net rpc shutdown -I ipAddressOfWindowsPC -U username%password
遠端關閉一臺Windows的機器
screen -d -m -S some_name ping my_router
後臺執行一段不終止的程式,並可以隨時檢視它的狀態。-d -m引數啟動“分離”模式,-S指定了一個session的標識。可以透過-R命令來重新“掛載”一個標識的session。更多細節請參考screen用法 man screen。
wget --random-wait -r -p -e robots=off -U mozilla
下載整個網站。
curl ifconfig.me
當你的機器在內網的時候,可以透過這個命令檢視外網的IP。
convert input.png -gravity NorthWest -background transparent -extent 720x200 output.png
改一下圖片的大小尺寸
lsof –i
實時檢視本機網路服務的活動狀態。
vim scp://username@host//path/to/somefile
vim一個遠端檔案
python -m SimpleHTTPServer
一句話實現一個HTTP服務,把當前目錄設為HTTP服務目錄,可以透過訪問 這也許是這個星球上最簡單的HTTP伺服器的實現了。
history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[a] " " CMD[a]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
(陳皓注:有點複雜了,history|awk ‘{print $2}’|awk ‘BEGIN {FS=”|”} {print $1}’|sort|uniq -c|sort -rn|head -10)
這行指令碼能輸出你最常用的十條命令,由此甚至可以洞察你是一個什麼型別的程式設計師。
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
想看看Marix的螢幕效果嗎?(不是很像,但也很Cool!)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2682861/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Proxy:簡單小巧又強大好用的代理系統
- 簡單又好用的錄屏軟體——錄大咖
- shell script的簡單使用
- 讓 Birt 報表指令碼資料來源變得既簡單又強大指令碼
- 簡單又好用的高效工具
- [Linux]簡單的shell實現Linux
- 神秘又強大的@SpringBootApplication註解Spring BootAPP
- shell簡單命令大全。
- hdfs file system shell的簡單使用
- 奧威BI系統:做資料視覺化大屏,又快又簡單視覺化
- Sublime Text for Mac:簡約而不簡單,功能強大Mac
- reqwest:簡單而強大的 Rust HTTP 客戶端RustHTTP客戶端
- 簡單的 Shell 指令碼入門教程指令碼
- 簡單又較隱蔽的PHP後門PHP
- 強烈推介的幾個微信小程式開發小技巧,簡單又實用微信小程式
- DBA手記(學習) – LOGMNR 簡單而強大的工具
- Metakine Decompose for Mac(簡單且強大的影像摳圖工具)Mac
- EasyRelation釋出,簡單強大的資料關聯框架框架
- 寫一個簡單的 Linux Shell (C++)LinuxC++
- SHELL中常用的一些簡單命令
- 【shell 練習5】編寫簡單的多級選單
- 幾個簡單又實用的PHP函式PHP函式
- Python中那些簡單又好用的特性和用法Python
- 強大好用的shell之shell命令
- Linux的檔案系統與Shell簡單命令Linux
- 強大好用的shell
- 如何編寫一個簡單但強大的規則引擎? – maxant
- 快速構建一個shell型別的簡單應用 quick-shell.js型別UIJS
- Visual Studio 2022有趣又強大的智慧輔助編碼
- 簡單介紹Shell中的定時任務 crontab
- 簡單題 加強版
- 手寫一個Parser - 程式碼簡單而功能強大的Pratt Parsing
- 一個簡單的Linux啟動jar包的shell指令碼LinuxJAR指令碼
- 簡單又實用!一鍵快速生成精美logo!Go
- [Android]今日頭條的螢幕適配方案,簡單又粗暴!Android
- 超實用又簡單的畫素圖轉向量圖方法
- 簡單聊聊那隻很強的蝸爺
- 簡單介紹shell中的curl網路請求的實現