1 |
mount | column -t |
這條命令適用於任何文件系統,column 用於把輸出結果進行列表格式化操做,這裏最主要的目的是讓你們熟悉一下 columnt 的用法。 下面是單單使用 mount 命令的結果:html
1 2 3 4 5 |
$ mount /dev/root on / type ext3 (rw) /proc on /proc type proc (rw) /dev/mapper/lvmraid-home on /home type ext3 (rw,noatime) |
而加了 column -t 命令後就成爲這樣了:python
1 2 3 4 5 |
$ mount | column -t /dev/root on / type ext3 (rw) /proc on /proc type proc (rw) /dev/mapper/lvmraid-home on /home type ext3 (rw,noatime) |
另外你可加上列名稱來改善輸出結果mysql
1 2 3 4 5 6 |
$ (echo "DEVICE - PATH - TYPE FLAGS" && mount) | column -t DEVICE - PATH - TYPE FLAGS /dev/root on / type ext3 (rw) /proc on /proc type proc (rw) /dev/mapper/lvmraid-home on /home type ext3 (rw,noatime) |
列2和列4並非很友好,咱們能夠用 awk 來再處理一下linux
1 2 3 4 5 6 |
$ (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t DEVICE PATH TYPE FLAGS /dev/root / ext3 (rw) /proc /proc proc (rw) /dev/mapper/lvmraid-home /home ext3 (rw,noatime) |
最後咱們能夠設置一個別名,爲 nicemountsql
1 |
$ nicemount() { (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t; } |
試一下shell
1 2 3 4 5 6 |
$ nicemount DEVICE PATH TYPE FLAGS /dev/root / ext3 (rw) /proc /proc proc (rw) /dev/mapper/lvmraid-home /home ext3 (rw,noatime) |
1 |
!!:gs/foo/bar |
!!
表示重複執行上一條命令,並用ubuntu
:gs/foo/bar
進行替換操做。bash
關於服務器
!!
這個用法在app
前一篇文章中已有詳細的介紹。
1 |
watch -d -n 1 'df; ls -FlAt /path' |
watch 是實時監控工具,-d 參數會高亮顯示變化的區域,-n 1 參數表示刷新間隔爲 1 秒。 df; ls -FlAt /path 運行了兩條命令,df 是輸出磁盤使用狀況,
ls -FlAt
則列出 /path 下面的全部文件。 ls -FlAt 的參數詳解:
.
和 ..
1 |
sshfs name@server:/path/to/folder /path/to/mount/point |
這條命令可讓你經過 SSH 加載遠程主機上的文件系統爲本地磁盤,前提是你須要安裝 FUSE 及 sshfs 這兩個軟件。
譯者注:關於 sshfs 實際上我以前寫過一篇文章介紹過,詳見
在 Ubuntu 上使用 sshfs 映射遠程 ssh 文件系統爲本地磁盤。 卸載的話使用 fusermount 或 umount 命令:
1 2 |
$ fusermount -u /path/to/mount/point # umount /path/to/mount/point |
1 |
dig +short txt .wp.dg.cx |
這也許是最有趣的一條技巧了,David Leadbeater 建立了一個
DNS 服務器,經過它當你查詢一個 TXT 記錄類型時,會返回一條來自於 Wikipedia 的簡短的詞條文字,這是
他的介紹。 這裏有一個樣例,來查詢 「hacker」 的含義:
1 2 3 4 5 6 7 8 |
$ dig +short txt hacker.wp.dg.cx "Hacker may refer to: Hacker (computer security), someone involved in computer security/insecurity, Hacker (programmer subculture), a programmer subculture originating in the US academia in the 1960s, which is nowadays mainly notable for the free software/」 「open source movement, Hacker (hobbyist), an enthusiastic home computer hobbyist http://a.vu/w:Hacker" |
這裏使用了 dig 命令,這是標準的用來查詢 DNS 的系統管理工具,+short 參數是讓其僅僅返回文字響應,txt 則是指定查詢 TXT 記錄類型。 更簡單的作法是你能夠爲這個技巧建立一個函數:
1 2 3 4 5 |
wiki() { dig +short txt $1.wp.dg.cx; } #而後試試吧: wiki hacker "Hacker may refer to: Hacker (computer security), …" |
若是你不想用 dig ,也能夠用 host 命令:
1 |
host -t txt hacker.wp.dg.cx |
另外在Twitter上看過某人的創意,用普通的dns來做爲程序版本更新的查詢服務器:設定域名
software-version-check.example.com
的A記錄爲
1.2.40.3
,對比本身的版本號,嗯,有更新了!
1 |
wget --random-wait -r -p -e robots=off -U Mozilla www.example.com |
參數解釋:
–random-wait 等待 0.5 到 1.5 秒的時間來進行下一次請求-r 開啓遞歸檢索
-e robots=off 忽略 robots.txt-U Mozilla 設置 User-Agent 頭爲 Mozilla 其它一些有用的參數:
1 |
<Ctrl + .> or <ESC + . > |
這個快捷鍵只能工做於 shell 的 emacs 編輯模式,它能夠從最後使用的命令行中複製參數到當前命令行中,下面是一個樣例:
1 2 3 4 5 |
$ echo a b c a b c $ echo $ echo c |
你能夠重複執行該快捷鍵,以便獲取自已須要的參數, 如下是樣例:
1 2 3 4 5 6 7 8 9 10 |
$ echo 1 2 3 1 2 3 $ echo a b c a b c $ echo $ echo c $ echo again $ echo 3 |
另外,假如你想指定第1個或第2個,或者是第 n 個參數的話,能夠按 ALT + 1 (或 ESC + 1) 或 ALT + 2 (或 ESC +2) 這樣形式的快捷鍵。 如下是樣例:
1 2 3 4 5 6 7 8 9 10 |
$ echo a b c a b c $ echo $ echo a a $ echo $ echo b b |
查看
Emacs Editing Mode Keyboard Shortcuts一文獲取更多相似的快捷鍵。
1 |
$ command |
這條命令可運行於最新的 Bash shell 裏,在其它 shell 中沒測試過。 經過在命令行前面添加一個空格,就能夠阻止這條命令被保存到 bash history (~/.bash_history) 文件中,這個行爲能夠經過 $HISTIGNORE shell 變量來控制。個人設置是 HISTIGNORE=」&:[ ]*」 ,表示不保存重複的命令到 history 中,而且不保存以空格開頭的命令行。$HISTIGNORE 中的值以冒號分隔。 若是你的命令內包含密碼,好比
mysqladmin
,不把它記錄在歷史當中是好主義。 深刻了解的話,可進一步看此文
The Definitive Guide to Bash Command Line History 1 |
du -h --max-depth=1 |
–max-depth=1 參數可讓 du 命令顯示當前目錄下 1 級子目錄的統計信息,固然你也能夠把 1 改成 2 ,進一步顯示 2 級子目錄的統計信息,能夠靈活運用。而 -h 參數則是以 Mb 、G 這樣的單位來顯示大小。
譯者注:在此推薦一個小工具 ncdu ,能夠更方便的達到此效果。
1 |
ps aux | sort -nk +4 | tail |
顯然這並非最好的方法,但它確實用起還不錯。 這是一個典型的管道應用,經過 ps aux 來輸出到 sort 命令,並用 sort 排序列出 4 欄,再進一步轉到 tail 命令,最終輸出 10 行顯示使用內存最多的進程狀況。 假如想要發現哪一個進程使用了大量內存的話,我一般會使用 htop 或 top 而非 ps 。
1 |
python -m smtpd -n -c DebuggingServer localhost:1025 |
這是一個用 Python 標準庫 smtpd (用 -m smtpd 指定) 實如今簡易 SMTP 服務,運行於 1025 端口 。 另外三個參數的解釋:
-n 參數讓 Python 不要進行 setuid ( 改變用戶)爲 「nobody」 ,也就是說直接用你的賬號來運行-c DebuggingServer 參數是讓 Python 運行時在屏幕上輸出調試及運行信息 * localhost:1025 參數則是讓 Python 在本地的 1025 端口上開啓 SMTP 服務 另外,假如你想讓程序運行於標準的 25 的端口上的話,你必須使用 sudo 命令,由於只有 root 才能在 1-1024 端口上開啓服務。以下:
1 |
sudo python -m smtpd -n -c DebuggingServer localhost:25 |