コマンドラインチャットサーバーを作成し、Linuxで不要なパッケージを削除するための便利なコマンド
次はLinuxコマンドラインのヒントとコツの次の部分です。前回のLinuxトリックに関する投稿を見逃した場合はこちらをご覧ください。
- 5つのLinuxコマンドラインのトリック
この投稿では、6つのコマンドラインのヒントを紹介します。それは、Netcatコマンドを使用してLinuxコマンドラインチャットを作成すること、コマンドの出力から列の合計をその場で計算すること、DebianとCentOSから孤立したパッケージを削除すること、コマンドラインからローカルおよびリモートIPを取得すること、ターミナルで色付きの出力を取得すること、さまざまなカラーコードをデコードすること、そして最後にLinuxコマンドラインでのハッシュタグ実装です。それでは、一つずつ見ていきましょう。
1. Linux コマンドラインチャットサーバーを作成する
私たちは皆、長い間チャットサービスを利用してきました。私たちはGoogleチャット、ハングアウト、Facebookチャット、WhatsApp、Hike、その他のいくつかのアプリケーションや統合チャットサービスに馴染んでいます。Linuxのncコマンドを使用すると、たった一行のコマンドであなたのLinuxボックスをチャットサーバーにできることをご存知ですか?
Linuxにおけるncコマンドとは何ですか、またそれは何をしますか?
ncはLinuxのnetcatコマンドの短縮形です。ncユーティリティは、その多くの組み込み機能に基づいてスイスアーミーナイフと呼ばれることがよくあります。デバッグツール、調査ツール、TCP/UDPを使用したネットワーク接続への読み書き、DNSのフォワード/リバースチェックに使用されます。
それはポートスキャン、ファイル転送、バックドア、ポートリスニングに主に使用されます。ncは、任意のローカル未使用ポートと任意のローカルネットワークソースアドレスを使用する能力があります。
192.168.0.7 のIPアドレスを持つサーバーでncコマンドを使用して、コマンドラインメッセージングサーバーを即座に作成します。
$ nc -l -vv -p 11119
上記のコマンドスイッチの説明。
- -v : は冗長を意味します
- -vv : より詳細な出力
- -p : ローカルポート番号
あなたは11119を別のローカルポート番号に置き換えることができます。
次に、クライアントマシン(IPアドレス: 192.168.0.15)で、メッセージングサーバーが稼働しているマシンへのチャットセッションを初期化するために、以下のコマンドを実行します。
$ nc 192.168.0.7 11119
注: チャットセッションはctrl+cキーを押すことで終了できます。また、ncチャットは1対1のサービスです。
2. Linuxで列の値を合計する方法
コマンドの出力として生成された列の数値を、端末でリアルタイムに合計する方法。
‘ls -l’ コマンドの出力です。
$ ls -l
第二列はシンボリックリンクの数を表す数値であり、5列目はファイルのサイズを表す数値であることに注意してください。5列目の値をリアルタイムで合計する必要があります。
5列目の内容を、他に何も印刷せずにリストします。これを行うには、「awk」コマンドを使用します。'$5' は 5 列目を表します。
$ ls -l | awk '{print $5}'
今awkを使って、5番目の列の出力の合計をパイプで繋いで表示してください。
$ 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:」を見つけます。
私たちは、ifconfig コマンドがローカルIPアドレスを出力するのに十分であることを知っています。しかし、ifconfig は多くの他の出力を生成しますので、ここでの私たちの関心はローカルIPアドレスだけを生成し、他には何も出力しないことです。
# ifconfig | grep "inet addr:"
出力はよりカスタム化されていますが、私たちはローカルIPアドレスのみをフィルタリングする必要があります。他のものは必要ありません。このために、上記のスクリプトとパイプライン処理することでawkを使用して2列目だけを印刷します。
# ifconfig | grep “inet addr:” | awk '{print $2}'
上の画像から明らかなように、私たちは出力を非常にカスタマイズしましたが、まだ求めているものではありません。ループバックアドレス127.0.0.1は依然として結果に含まれています。
私たちはgrepに-vフラグを使用します。これは、引数に提供されたものと一致しない行のみを表示します。すべてのマシンには同じループバックアドレス127.0.0.1がありますので、この文字列を含まない行を表示するには、上記の出力とパイプでつないでgrep -vを使用します。
# ifconfig | grep "inet addr" | awk '{print $2}' | grep -v '127.0.0.1'
我々はほぼ望ましい出力を生成しました。最初から文字列 (addr:) を置き換えるだけです。cut コマンドを使用して、列2のみを印刷します。列1 と 列2 はタブではなく (:) で区切られているため、上記の出力をパイプでつなぐことで区切り文字 (-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
出力が長すぎるので、コマンドを減らしてパイプライン化し、一度に1画面の出力を得るようにしましょう。
$ dircolors -p | less
6. Linuxコマンドとスクリプトにハッシュタグを付ける方法
Twitter、Facebook、Google Plus(他の場所でも使われているかもしれませんが、私は気づいていません)でハッシュタグを使っています。これらのハッシュタグは、他の人がハッシュタグを検索しやすくします。Linuxのコマンドラインでハッシュタグを使用できることを知っている人は非常に少ないです。
構成ファイルやほとんどのプログラミング言語では、#がコメント行として扱われ、実行から除外されることはすでに知っています。
コマンドを実行し、その後でコマンドのハッシュタグを作成して後で見つけられるようにします。上記のポイント4で実行された長いスクリプトがあるとしましょう。これに対するハッシュタグを作成します。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を使って見つけることができます。
それでは、今回はこれで終わりです。私たちは、あなたのために興味深く、知識あるコンテンツを作成するために一生懸命働いてきました。私たちの取り組みについてどう思いますか? どんな提案も歓迎です。以下のボックスにコメントしてください。つながりを保ちましょう!お疲れ様でした。













