Linux中,创建聊天服务器、移除冗余软件包的实用命令

这里,我们来看Linux命令行实用技巧的下一个部分。如果你错过了Linux Tracks之前的文章,可以从这里找到。

本篇中,我们将会介绍6个命令行小技巧,包括使用Netcat命令创建Linux命令行聊天,从某个命令的输出中对某一列做加法,移除Debian和CentOS上多余的包,从命令行中获取本地与远程的IP地址,在终端获得彩色的输出与解码各样的颜色,最后是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的服务器上)创建一个命令行即时信息传输服务器。


  1. $ nc -l -vv -p 11119

对上述命令的解释。

  • -v : 显示冗余信息
  • -vv : 显示更多的冗余信息
  • -p : 本地端口号

你可以用任何其他的本地端口号替换11119。

接下来在客户端机器(IP地址:192.168.0.15),运行下面的命令初始化聊天会话(这里需要上面提到的信息服务器正在运行)。


  1. $ nc 192.168.0.7:11119

Linux Commandline Chat with nc Command

注意:你可以按下ctrl+c终止会话,同时nc聊天是一个一对一的服务。

2. Linux中如何统计某一列的总值

如何在终端里统计某个命令的输出中其中一列的数值总和,

‘ls -l’命令的输出。


  1. $ ls -l

Sum Numerical Values

注意到第二列代表软连接的数量,第五列则是文件的大小。假设我们需要汇总第五列的数值。

仅仅列出第五列的内容。我们会使用‘awk’命令做到这点。‘$5’即代表第五列。


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

List Content Column

现在,通过管道连接,使用awk打印出第五列数值的总和。


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

Sum and Print Columns

在Linux里如何移除废弃包

废弃包是指那些作为其他包的依赖而被安装,但是当源包被移除之后就不再需要的包。

假设我们安装了一个叫gtprogram的软件包,其依赖是gtdependency。除非我们安装了gtdependency,否则安装不了gtprogram。

当我们移除gtprogram的时候,默认并不会移除gtdependency。并且如果我们不移除gtdependency的话,它就会遗留下来成为废弃包,与其他任何包再无联系。


  1. # yum autoremove [On RedHat Systems]

Remove Orphan Packages in CentOS


  1. # apt-get autoremove [On Debian Systems]

Remove Orphan Packages in Debian

你应该经常移除废弃包,保持Linux机器仅仅加载一些需要的东西。

4. 如何获得Linux服务器本地的与公网的IP地址

为了获得本地IP地址,运行下面的一行脚本。


  1. $ 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地址,不是其他的。


  1. # ifconfig | grep "inet addr:"

Check Local IP Address

尽管目前的输出好多了,但是我们需要过滤出本地的IP地址,不含其他东西。针对这个,我们将会使用awk打印出第二列输出,通过管道连接上述的脚本。


  1. # 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的行,通过管道连接前面的脚本。


  1. # ifconfig | grep "inet addr" | awk '{print $2}' | grep -v '127.0.0.1'

Print IP Address

我们差不多得到想要的输出了,仅仅需要从开头替换掉字符串(addr:)。我们将会使用cut命令单独打印出第二列。一二列之间并不是用tab分割,而是(:),所以我们需要使用到域分割符选项(-d),通过管道连接上面的输出。


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

Customized IP Address

最后!期望的结果出来了。

5.如何在Linux终端彩色输出

你可能在终端看见过彩色的输出。同时你也可能知道在终端里允许/禁用彩色输出。如果都不知道的话,你可以参考下面的步骤。

在Linux中,每个用户都有'.bashrc'文件,被用来管理你的终端输出。打开并且编辑该文件,用你喜欢的编辑器。注意一下,这个文件是隐藏的(文件开头为点的代表隐藏文件)。


  1. $ vi /home/$USER/.bashrc

确保以下的行没有被注释掉。即,行开头没有#。


  1. if [ -x /usr/bin/dircolors ]; then
  2. test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dirc$
  3. alias ls='ls --color=auto'
  4. #alias dir='dir --color=auto'
  5. #alias vdir='vdir --color=auto'
  6. alias grep='grep --color=auto'
  7. alias fgrep='fgrep --color=auto'
  8. alias egrep='egrep --color=auto'
  9. fi

User .bashrc File

完成后!保存并退出。为了让改动生效,需要注销账户后再次登录。

现在,你会看见列出的文件和文件夹名字有着不同的颜色,根据文件类型来决定。要了解所用的颜色代码,可以运行下面的命令。


  1. $ dircolors -p | less

Linux Color Output

6.如何用#号标记Linux命令和脚本

我们一直在Twitter,Facebook和Google Plus(可能是其他我们没有提到的地方)上使用#号标签。那些#号标签使得其他人搜索一个标签更加容易。可是很少人知道,我们可以在Linux命令行使用#号标签。

我们已经知道配置文件里的#,在大多数的编程语言中,这个符号被用作注释行,即不被执行。

运行一个命令,然后为这个命令创建一个#号标签,这样之后我们就可以找到它。假设我们有一个很长的脚本,就上面第四点被执行的命令。现在为它创建一个#号标签。我们知道ifconfig可以被sudo或者root执行,因此用root来执行。


  1. # 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。

原文发布时间为:2015-06-17

本文来自合作伙伴“Linux中国”

时间: 2024-11-08 18:56:05

Linux中,创建聊天服务器、移除冗余软件包的实用命令的相关文章

在linux中创建和解压文档的11个 tar 命令例子

在linux中创建和解压文档的11个 tar 命令例子 linux中的tar命令 tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令. 其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩. 在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子. 使用tar命令 tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件

在LINUX上创建GIT服务器【转】

转自:http://blog.csdn.net/xiongmc/article/details/9176785 如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. Client生成 SSH 公钥,以便Server端识别. 每个需要使用git服务器的工程师,自己需要生成一个ssh公钥 进入自己的~/.ssh目录,看有没有用 文件名 和 文件名.pub 来命名的一对文件,这个 文件名 通常是 id_dsa 或者 id_rsa. .pub 文件是公钥,另一个文件是密钥.假

Linux中向远程服务器上的所有用户发送信息

风信网(ithov.com)原创文章:Linux中向远程服务器上的所有用户发送信息,我们可以通过rwall命令来实现,使用rwall(向所有人远程写)命令同时发送消息到网络中的所有用户. rwall hosthttp://www.aliyun.com/zixun/aggregation/11696.html">name file 当使用CDE或OpenWindows等窗口系统时,每个窗口被看成是一次单个的登录;如果用户登录次数超过一次则消息直接发送到控制窗口

c-求问如何在linux中实现类似top这样,可以不断刷新屏幕字符的命令?

问题描述 求问如何在linux中实现类似top这样,可以不断刷新屏幕字符的命令? 我的要求是,不断刷新屏幕中显示的字符串. 比如我在屏幕中输出abc,每秒变换一次,下一秒钟也许就变成了def了. 如果只是printf(),那不会覆盖原来的abc,只会在abc后面增加def而已. 我知道有个curses库函数. 不过这个使用总感觉比较困难,难道top命令也是用那个实现的? 解决方案 我也是刚刚解决这个问题,不知道现在回答你还晚不晚,但是不管怎么样,我觉得还是回一下比较好.一方面,可能你还没解决这个

如何在Linux中创建一个共享目录

作为系统管理员,你可能有一个特定目录,你希望为 Linux 服务器上的每个用户授予读/写访问权限.在本指南中,我们将回顾如何在 Linux 中对特定目录(共享目录)上的所有用户启用写访问. 这要求设置适当的访问权限,而最有效.可靠的方法是为所有要共享或对特定目录的写访问权的用户分配一个公共组. 如果你系统中还没有这个目录和公众组,用下面的命令创建: $ sudo mkdir -p /var/www/reports/  $ sudo groupadd project   接着将对目录 /var/w

如何在 Linux 中创建一个共享目录

作为系统管理员,你可能有一个特定目录,你希望为 Linux 服务器上的每个用户授予读/写访问权限.在本指南中,我们将回顾如何在 Linux 中对特定目录(共享目录)上的所有用户启用写访问. 这要求设置适当的访问权限,而最有效.可靠的方法是为所有要共享或对特定目录的写访问权的用户分配一个公共组. 如果你系统中还没有这个目录和公众组,用下面的命令创建: $ sudo mkdir -p /var/www/reports/ $ sudo groupadd project 接着将对目录 /var/www/

Linux中如何对服务器进行压力测试

http_load是基于Linux平台的一种性能测工具.它是以并行复用的方式运行,仅适用于Web页面的性能测试,不适用于访问数据库,而且测试结果分析是有限的,平台依赖Linux .http_load可以简单地通过txt文本文件中记录的参数来对HTTP服务器进行压力测试,那是如何对服务器进行压力测试的呢?下面我们就来介绍 Linux中如何安装使用http_load对服务器进行压力测试的教程. 具体方法步骤如下: 1.下载 官方网站:http://acme.com/software/http_loa

linux中rsync异步服务器实现文件同步与备份

  Rsync 非常适合在两台机器之间快速同步大型.复杂的目录,例如论坛的附件目录.再配合 ssh ,则安全性也有保证,且可以利用 ssh public key 和 cron 来进行自动定时同步. 说明:两台机器分别为 localhost 和 remotehost ;用户分别为 localuser 和 remoteuser. 环境:FreeBSD 4.9 和 FreeBSD 6.1  代码如下   设置 ssh public key 认证 $ssh-keygen -t dsa -b 2048 生

sqlserver中创建链接服务器图解教程_MsSql

1.展开服务器对象-->链接服务器-->右击"新建链接服务器"注意:必须以数据库管理员身份登录(通常也就是sa帐号)后,才可以创建"链接服务器" 2.输入链接服务器的IP 3.设置链接服务器的安全性 完成后,如下图:现在测试一下,用帐号user本地登录SqlServer,新建一个查询,输入Select * From [链接服务器名].[远程数据库名].[所有者].[表名]比如Select * from [127.0.0.1].[cntvs].[dbo].