网站搜索

在 Linux 中创建命令行聊天服务器并删除不需要的软件包的有用命令


这是 Linux 命令行提示和技巧的下一部分。如果您错过了我们之前关于 Linux 技巧的文章,您可以在这里找到它。

  1. 5 个 Linux 命令行技巧

在这篇文章中,我们将介绍6个命令行技巧,即使用Netcat命令创建Linux命令行聊天,从命令的输出中动态添加列,从 Debian 和 CentOS 中删除孤立软件包,从命令行获取本地和远程 IP,在终端中获取彩色输出并解码各种颜色代码,以及 Linux 命令行中最后但并非最不重要的哈希标签实现。让我们一一检查。

1.创建Linux命令行聊天服务器

我们长期以来一直在使用聊天服务。我们熟悉Google聊天、Hangout、Facebook聊天、Whatsapp、Hike以及其他几种应用程序和集成聊天服务。你知道 Linux nc 命令只需一行命令就可以让你的 Linux 盒子成为一个聊天服务器吗?

Linux 中的 nc 命令是什么以及它的作用是什么?

nc 是 Linux netcat 命令的弃用。根据其内置功能的数量,nc 实用程序通常被称为瑞士军刀。它用作调试工具、调查工具、使用 TCP/UDP 读写网络连接、DNS 正向/反向检查。

它主要用于端口扫描、文件传输、后门和端口侦听。 nc 能够使用任何本地未使用的端口和任何本地网络源地址。

使用nc命令(在IP地址为192.168.0.7的服务器上)立即创建命令行消息服务器。

nc -l -vv -p 11119

上述命令开关的解释。

  1. -v :表示详细
  2. -vv:更详细
  3. -p : 本地端口号

您可以将 11119 替换为任何其他本地端口号。

接下来,在客户端计算机(IP 地址:192.168.0.15)上运行以下命令来初始化与计算机(正在运行消息传递服务器的计算机)的聊天会话。

nc 192.168.0.7 11119

注意:您可以通过按ctrl+c键终止聊天会话,而且NC聊天是一对一服务。

2. 如何在 Linux 中对列中的值求和

如何在终端中即时对作为命令输出生成的列的数值求和。

ls -l”命令的输出。

ls -l

请注意,第二列是数字,表示符号链接的数量,第五列是数字,表示文件的大小。假设我们需要即时对第五列的值求和。

列出第5列的内容,不打印任何其他内容。我们将使用“awk”命令来执行此操作。 “$5”代表第 5 列。

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

现在使用awk通过管道打印第5列的输出总和。

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

如何删除 Linux 中的孤立包?

孤立包是作为另一个包的依赖项安装的包,当原始包被删除时不再需要。

假设我们安装了一个依赖于 gtdependency 的包gtprogram。除非安装了gtdependency,否则我们无法安装gtprogram

当我们删除gtprogram时,默认情况下它不会删除gtdependency。如果我们不删除 gtdependency,它将保留为 Orpahn 包,不与任何其他包连接。

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,如果没有,请安装aptyum所需的软件包。在这里,我们将使用 grep 命令对 ifconfig 的输出进行管道化,以查找字符串“intel addr:”。

我们知道ifconfig命令足以输出本地IP地址。但是 ifconfig 生成许多其他输出,我们在这里关心的是仅生成本地 IP 地址,而不生成其他内容。

ifconfig | grep "inet addr:"

虽然现在的输出更加自定义,但我们只需要过滤本地 IP 地址而无需过滤其他内容。为此,我们将使用 awk 仅通过使用上述脚本进行管道化来打印第二列。

ifconfig | grep “inet addr:” | awk '{print $2}'

从上图中可以清楚地看出,我们已经对输出进行了很大的定制,但仍然不是我们想要的。环回地址 127.0.0.1 仍然存在于结果中。

我们使用 -v 标志和 grep 来仅打印那些与参数中提供的行不匹配的行。每台机器都有相同的环回地址127.0.0.1,因此使用grep -v通过使用上面的输出进行管道化来打印那些没有此字符串的行。

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

我们几乎已经生成了所需的输出,只需从开头替换字符串 (addr:) 即可。我们将使用 cut 命令仅打印第二列。 column 1column 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

由于输出太长,让我们使用 less 命令来管道化输出,以便一次一屏地获得输出。

dircolors -p | less

6. 如何对 Linux 命令和脚本进行哈希标记

我们在 TwitterFacebookGoogle Plus 上使用井号标签(可能还有其他一些地方,我没有注意到)。这些哈希标签使其他人更容易搜索哈希标签。很少有人知道我们可以在 Linux 命令行中使用哈希标签。

我们已经知道配置文件和大多数编程语言中的#被视为注释行并且被排除在执行之外。

运行一个命令,然后创建该命令的哈希标签,以便我们稍后可以找到它。假设我们有一个很长的脚本,在上面的第 4 点中执行。现在为此创建一个哈希标签。我们知道 ifconfig 可以由 sudoroot 用户运行,因此充当 root。

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

上面的脚本已使用“myip”进行哈希标记。现在在终端中搜索 reverse-i-serach 中的井号标签(按 ctrl+r)并输入“myip”。您也可以从那里执行它。

您可以为每个命令创建任意数量的哈希标签,并稍后使用reverse-i-search找到它。

目前为止就这样了。我们一直在努力为您制作有趣且知识丰富的内容。您认为我们做得怎么样?欢迎任何建议。您可以在下面的框中发表评论。保持联系!荣誉。