Linux中國

Linux中,創建聊天伺服器、移除冗餘軟體包的實用命令

6個實用的命令行技巧

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

Linux Commandline Chat with nc Command

注意:你可以按下ctrl+c終止會話,同時nc聊天是一個一對一的服務。

2. Linux中如何統計某一列的總值

如何在終端里統計某個命令的輸出中其中一列的數值總和,

『ls -l』命令的輸出。

$ ls -l

Sum Numerical Values

注意到第二列代表軟連接的數量,第五列則是文件的大小。假設我們需要匯總第五列的數值。

僅僅列出第五列的內容。我們會使用『awk』命令做到這點。『$5』即代表第五列。

$ ls -l | awk '{print $5}'

List Content Column

現在,通過管道連接,使用awk列印出第五列數值的總和。

$ ls -l | awk '{print $5}' | awk '{total = total + $1}END{print total}'

Sum and Print Columns

在Linux里如何移除廢棄包

廢棄包是指那些作為其他包的依賴而被安裝,但是當源包被移除之後就不再需要的包。

假設我們安裝了一個叫gtprogram的軟體包,其依賴是gtdependency。除非我們安裝了gtdependency,否則安裝不了gtprogram。

當我們移除gtprogram的時候,默認並不會移除gtdependency。並且如果我們不移除gtdependency的話,它就會遺留下來成為廢棄包,與其他任何包再無聯繫。

# yum autoremove                [On RedHat Systems]

Remove Orphan Packages in CentOS

# apt-get autoremove                [On Debian Systems]

Remove Orphan Packages in Debian

你應該經常移除廢棄包,保持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:"

Check Local IP Address

儘管目前的輸出好多了,但是我們需要過濾出本地的IP地址,不含其他東西。針對這個,我們將會使用awk列印出第二列輸出,通過管道連接上述的腳本。

# ifconfig | grep 「inet addr:」 | awk '{print $2}' 

Filter Only IP Address

上面圖片清楚的表示,我們已經很大程度上自定義了輸出,當仍然不是我們想要的。本地環路地址 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'

Print IP Address

我們差不多得到想要的輸出了,僅僅需要從開頭替換掉字元串(addr:)。我們將會使用cut命令單獨列印出第二列。一二列之間並不是用tab分割,而是(:),所以我們需要使用到域分割符選項(-d),通過管道連接上面的輸出。

# ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:

Customized IP Address

最後!期望的結果出來了。

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

User .bashrc File

完成後!保存並退出。為了讓改動生效,需要註銷賬戶後再次登錄。

現在,你會看見列出的文件和文件夾名字有著不同的顏色,根據文件類型來決定。要了解所用的顏色代碼,可以運行下面的命令。

$ dircolors -p | less

Linux Color Output

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『。你可以從這裡開始執行。

Create Command Hash Tags

你可以為每個命令創建#號標籤,之後使用reverse-i-search找到它。

目前就這麼多了。我們一直在辛苦的工作,創造有趣的,有知識性的內容給你。你覺得我們是如何工作的呢?歡迎諮詢任何問題。你可以在下面評論。保持聯絡!Kudox。

via: http://www.tecmint.com/linux-commandline-chat-server-and-remove-unwanted-packages/

作者:Avishek Kumar 譯者:wi-cuckoo 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國