Linux中,創建聊天伺服器、移除冗餘軟體包的實用命令
1. 創建Linux命令行聊天服務
我們大家使用聊天服務都有很長一段時間了。對於Google Chat,Hangout,Facebook Chat,Whatsapp,Hike和其他一些應用與集成的聊天服務,我們都很熟悉了。那你知道Linux的nc命令可以使你的Linux機器變成一個聊天伺服器,而僅僅只需要一行命令嗎。什麼是nc命令,它又是怎麼工作的呢?
nc即Linux netcat命令。nc就像瑞士軍刀一樣,內建了大量的功能。nc可用做調式工具,調查工具,使用TCP/UDP讀寫網路連接,DNS正向/反向查詢等等。
nc主要用在埠掃描,文件傳輸,後台和埠監聽。nc可以使用任何閑置的埠和任何本地網路源地址。
使用nc命令(在192.168.0.7的伺服器上)創建一個命令行即時信息傳輸伺服器。
$ nc -l -vv -p 11119
對上述命令的解釋。
- -v : 顯示冗餘信息
- -vv : 顯示更多的冗餘信息
- -p : 本地埠號
你可以用任何其他的本地埠號替換11119。
接下來在客戶端機器(IP地址:192.168.0.15),運行下面的命令初始化聊天會話(這裡需要上面提到的信息伺服器正在運行)。
$ nc 192.168.0.7:11119
注意:你可以按下ctrl+c終止會話,同時nc聊天是一個一對一的服務。
2. Linux中如何統計某一列的總值
如何在終端里統計某個命令的輸出中其中一列的數值總和,
『ls -l』命令的輸出。
$ ls -l
注意到第二列代表軟連接的數量,第五列則是文件的大小。假設我們需要匯總第五列的數值。
僅僅列出第五列的內容。我們會使用『awk』命令做到這點。『$5』即代表第五列。
$ ls -l | awk '{print $5}'
現在,通過管道連接,使用awk列印出第五列數值的總和。
$ ls -l | awk '{print $5}' | awk '{total = total + $1}END{print total}'
在Linux里如何移除廢棄包
廢棄包是指那些作為其他包的依賴而被安裝,但是當源包被移除之後就不再需要的包。
假設我們安裝了一個叫gtprogram的軟體包,其依賴是gtdependency。除非我們安裝了gtdependency,否則安裝不了gtprogram。
當我們移除gtprogram的時候,默認並不會移除gtdependency。並且如果我們不移除gtdependency的話,它就會遺留下來成為廢棄包,與其他任何包再無聯繫。
# yum autoremove [On RedHat Systems]
# apt-get autoremove [On Debian Systems]
你應該經常移除廢棄包,保持Linux機器僅僅載入一些需要的東西。
4. 如何獲得Linux伺服器本地的與公網的IP地址
為了獲得本地IP地址,運行下面的一行腳本。
$ ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
你必須安裝了ifconfig,如果沒有,使用apt或者yum工具安裝需要的包。這裡我們將會管道連接ifconfig的輸出,並且結合grep命令找到包含「intel addr:」的字元串。
我們知道對於輸出本地IP地址,ifconfig命令足夠用了。但是ifconfig生成了許多的輸出,而我們關注的地方僅僅是本地IP地址,不是其他的。
# ifconfig | grep "inet addr:"
儘管目前的輸出好多了,但是我們需要過濾出本地的IP地址,不含其他東西。針對這個,我們將會使用awk列印出第二列輸出,通過管道連接上述的腳本。
# ifconfig | grep 「inet addr:」 | awk '{print $2}'
上面圖片清楚的表示,我們已經很大程度上自定義了輸出,當仍然不是我們想要的。本地環路地址 127.0.0.1 仍然在結果中。
我們可以使用grep的-v選項,這樣會列印出不匹配給定參數的其他行。每個機器都有同樣的環路地址 127.0.0.1,所以使用grep -v列印出不包含127.0.0.1的行,通過管道連接前面的腳本。
# ifconfig | grep "inet addr" | awk '{print $2}' | grep -v '127.0.0.1'
我們差不多得到想要的輸出了,僅僅需要從開頭替換掉字元串(addr:)
。我們將會使用cut命令單獨列印出第二列。一二列之間並不是用tab分割,而是(:)
,所以我們需要使用到域分割符選項(-d)
,通過管道連接上面的輸出。
# ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
最後!期望的結果出來了。
5.如何在Linux終端彩色輸出
你可能在終端看見過彩色的輸出。同時你也可能知道在終端里允許/禁用彩色輸出。如果都不知道的話,你可以參考下面的步驟。
在Linux中,每個用戶都有'.bashrc'
文件,被用來管理你的終端輸出。打開並且編輯該文件,用你喜歡的編輯器。注意一下,這個文件是隱藏的(文件開頭為點的代表隱藏文件)。
$ vi /home/$USER/.bashrc
確保以下的行沒有被注釋掉。即,行開頭沒有#。
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dirc$
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
完成後!保存並退出。為了讓改動生效,需要註銷賬戶後再次登錄。
現在,你會看見列出的文件和文件夾名字有著不同的顏色,根據文件類型來決定。要了解所用的顏色代碼,可以運行下面的命令。
$ dircolors -p | less
6.如何用#號標記Linux命令和腳本
我們一直在Twitter,Facebook和Google Plus(可能是其他我們沒有提到的地方)上使用#號標籤。那些#號標籤使得其他人搜索一個標籤更加容易。可是很少人知道,我們可以在Linux命令行使用#號標籤。
我們已經知道配置文件里的#
,在大多數的編程語言中,這個符號被用作注釋行,即不被執行。
運行一個命令,然後為這個命令創建一個#號標籤,這樣之後我們就可以找到它。假設我們有一個很長的腳本,就上面第四點被執行的命令。現在為它創建一個#號標籤。我們知道ifconfig可以被sudo或者root執行,因此用root來執行。
# ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d: #myip
上述腳本被』myip『給標記了。現在在reverse-i-search(按下ctrl+r)搜索一下這個標籤,在終端里,並輸入』myip『。你可以從這裡開始執行。
你可以為每個命令創建#號標籤,之後使用reverse-i-search找到它。
目前就這麼多了。我們一直在辛苦的工作,創造有趣的,有知識性的內容給你。你覺得我們是如何工作的呢?歡迎諮詢任何問題。你可以在下面評論。保持聯絡!Kudox。
via: http://www.tecmint.com/linux-commandline-chat-server-and-remove-unwanted-packages/
作者:Avishek Kumar 譯者:wi-cuckoo 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive