欢迎光临
我们一直在努力

Linux技巧

十款优秀Vim插件帮你打造完美IDE

阅读(241)评论(0)

如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利。不管是Java、C还是Python,当IDE会帮你检查语法、后台编译,或者自动导入你需要的库时,写代码就变得容易许多。另外,如果你工作在Linux上,你也会知道Vim在进行文本编辑的时候是多么的方便。所以,你可能会想从Vim中也获取这些IDE特性。

十款优秀Vim插件帮你打造完美IDE

事实上,很少有方法可以帮你做到。有些人可能会想到试着把Vim打造成C语言IDE的,比如c.vim;也有把Vim集成到Eclipse里的 Eclim 。但是我想要告诉你的是一个更加通用的,只用插件实现的方案。你肯定不想因为安装了太多的面板和特性而让你的编辑器变得臃肿不堪。只用插件实现的方案可以 让你只选择那些你想要集成到Vim的特性。这样做的额外的一个好处是,这个IDE不是专门针对某一种语言的,可以让你写任何类型的代码。下面就来看一下我 的 把IDE特性带进Vim的前10款插件 吧。

先来个福利: Pathogen

首先,可能不是所有人都熟悉Vim的插件,并知道该怎么安装这些插件。所以,我推荐的第一个插件就是Pathogen,因为这个插件会让你更容易安装其他插件。如果你要安装另外的没有在这里列出来的插件,用Pathogen会变得非常简单。它的官方页面的文档写的非常好,去下载安装一个吧。接下来插件的安装也会变得容易很多。

1. SuperTab

我们习惯于IDE的第一个原因就是它的自动补全功能。所以,我喜欢这个非常方便的,给了Tab键“超能力”的 SuperTab 插件。

十款优秀Vim插件帮你打造完美IDE

2. Syntastic

十款优秀Vim插件帮你打造完美IDE

如果你需要使用一种以上的语言进行编程,有时候是非常容易混淆不同语言之间的语法的。幸运的是,syntastic 会帮你检查,然后告诉你是否应该加上圆括号或者方括号,或者告诉你在某个地方,你忘了一个分号。

3. Auto Pairs

另外一件让程序员们抓狂的事是:我是不是少加了最后一个括号?!每个人都讨厌用手指去数那些隔的非常远的括号。为了处理这个问题,我用 Auto Pairs 插件,这个插件会自动插入和格式化方括号和圆括号。

4. NERD Commenter

如果你在找一个可以支持多种程序语言的注释代码的快捷键,你可以试试 NERD Commenter。即使你不是程序员,我也非常非常推荐这款插件,因为它会让你在注释bash脚本或者其他任何东西的时候都会变得非常高效。

5. Snipmate

任何一个程序员都知道,好的码农写代码,杰出的码神重用代码。snipmate可以容易的插入代码片段到你的文件里面,大大的减少了你敲键盘的次数。它默认的包含了很多各种语言的代码片段,你也可以非常容易的添加你自己的。

6. NERDTree

十款优秀Vim插件帮你打造完美IDE

管理一个大的项目时,把代码分散到不同的文件里面是非常好的主意。也是一个基本的编码原则。NERDTree 是一个不错的可以直接在Vim里使用的文件浏览器,它可以让你随时想到所有的文件。

7. MiniBufferExplorer

十款优秀Vim插件帮你打造完美IDE

为了打造一个文件浏览器,支持同时打开多个文件,没有什么比一个好的缓冲区管理器更重要了。MiniBufferExplorer 就可以非常漂亮和高效地完成这个工作。它甚至为你的缓冲区设置了不同的颜色和切换快捷键。

8. Tag List

十款优秀Vim插件帮你打造完美IDE

当你同时有多个文件打开时,很容易忘了你都在这些文件里添加了什么。为了防止你忘记,Tag List 这个代码查看器将会用一种漂亮简洁的格式展示其中的的变量和函数。

9. undotree

十款优秀Vim插件帮你打造完美IDE

对于我们之中那些喜欢undo,redo然后又undo某些更改,然后依据这些来查看整个编辑完成过程的人来说, undotree 是一个不错插件,可以以一棵树的形式看到你的undo和redo历史。这个功能跟代码完全没有关系,所以这是我非常喜欢的一个插件。

10. gdbmgr

最后,但并非不重要,每个人都在某个时刻需要一个调试器。如果你喜欢gdb,那么gbdmgr就是为你准备的,因为它集成了那个著名的调试器到Vim中。

总结一下,不管你是不是一个疯狂的coder,能有一些额外的Vim功能在手总是非常方便的。像我在简介里说到的,如果你不需要,你不用安装这里所有的这些插件。或者你想要安装另外的也行,这些其实只是一个基础入门级的插件。

简单分析Go语言中数组的这些细节

阅读(217)评论(0)

len&cap

书接上文,我们提到二维数组中的第二个维度的数组不能用...来表示,接下来我们要认识两个新的函数,它们分别是len和cap

package main
​
func main() {
    a := [2]int{}
    println(len(a), cap(a)) 
}

由上方代码可知,我们在main函数里面定义了一个a数组,长度为2,未进行初始化变量等赋值操作,所以数组元素均为0;调用打印函数输出的是数组a的length和cap值,这里运行结果均为2

二维数组的遍历

接下来我们重点讲一下二维数组的遍历,有些小伙伴可能就要问了:我没学过什么遍历循环啊,这让我怎么理解?

别急,咱们看代码主要看的是一个思路过程~

package main
import (
    "fmt"
)
func main() {
    var f [2][3]int = [...][3]int{{1, 2, 3}, {7, 8, 9}}
    for k1, v1 := range f {
        for k2, v2 := range v1 {
            fmt.Printf("(%d,%d)=%d ", k1, k2, v2)
        }
        fmt.Println()
    }
}

首先我们可以看到在main函数里面定义了一个int类型,名叫f的数组,它的属性为2行3列,第一行存储的是 {1,2,3} ,第二行存储的是 {7,8,9} ,我们通过for循环对二维数组进行一次遍历,读者暂时可以把它理解成一个循环的固定格式,后续循环会为读者一一介绍,由于本次数组是二维数组,所以我们需要调用两次for循环来对数组进行遍历,通过函数打印输出所需要的值

数组的拷贝与传参
package main
import "fmt"
func printArr(arr *[5]int) {
    arr[0] = 10
    for i, v := range arr {
        fmt.Println(i, v)
    }
}
func main() {
    var arr1 [5]int
    printArr(&arr1)
    fmt.Println(arr1)
    arr2 := [...]int{2, 4, 6, 8, 10}
    printArr(&arr2)
    fmt.Println(arr2)
}

首先我们可以看到定义了一个printArr方法,并在方法里面内置了一个长度为5、int类型的数组。紧接着我们将数组的第一个元素赋值为10,紧接着对数组进行循环遍历,分别输出数组的索引及索引位置上的值

回到main方法中,我们定义了一个名叫arr1,长度为5,int类型的数组,并直接打印该数组的地址值,同时调用函数打印出该数组未进行初始化时候的值,显而易见的是,由于我们在printArr中已经对索引位置为1的数组的值进行了一次修改,所以本次打印输出数组的时候,也会受到上一次数组的影响,所以本次数组打印输出的结果为[10 0 0 0 0]。紧接着,我们定义了一个名叫arr2,长度为任意,int类型的数组,同时给予赋值操作,但是由于在printArr中索引为1的数组的位置的值已经发生了改变,所以本次arr2数组打印输出的结果为[10 4 6 8 10]

求数组所有元素之和
package main
import (
    "fmt"
    "math/rand"
    "time"
)
func sumArr(a [10]int) int {
    var sum int = 0
    for i := 0; i < len(a); i++ {
        sum += a[i]
    }
    return sum
}
func main() {
    rand.Seed(time.Now().Unix())
    var b [10]int
    for i := 0; i < len(b); i++ {
        b[i] = rand.Intn(1000)
    }
    sum := sumArr(b)
    fmt.Printf("sum=%d\n", sum)
}

我们首先定义了一个方法名叫sumArr,同时往该方法里面传入一个名为a,长度为10,数据类型为int类型的数组。在本方法里面,我们定义一个变量为sum,使用for循环来对数组进行遍历操作,同时使用sum来记录该数组各元素的和,最终返回sum的值

紧接着我们看到main方法,我们在该方法中使用rand.seed()函数来定义一个随机数,同时初始化一个名为b,长度为10,数据类型为int类型的数组使用for循环对该数组进行遍历,同时将随机数的值赋给b数组中元素。最终我们将数组sumArr中b的值赋给sum,调用函数进行打印输出sum的值

例题:数组元素匹配问题

找出数组中和为给定值的两个元素的下标,例如数组[1,3,5,8,7],

找出两个元素之和等于8的下标分别是(0,4)和(1,2)

求元素和,是给定的值

package main
import "fmt"
func myTest(a [5]int, target int) {
    // 遍历数组
    for i := 0; i < len(a); i++ {
        other := target - a[i]
        // 继续遍历
        for j := i + 1; j < len(a); j++ {
            if a[j] == other {
                fmt.Printf("(%d,%d)\n", i, j)
            }
        }
    }
}
func main() {
    b := [5]int{1, 3, 5, 8, 7}
    myTest(b, 8)
}

根据题意,我们可以得知,在myTest方法里面我们定义了一个名为a,长度为5,数据类型为int类型的数组,同时还定义了一个目标值target用于检验元素和是否正确。

紧接着我们对该数组进行遍历,定义other变量用于表示另一个数组元素,这里进行二次遍历的原因是因为本条题目需要匹配数组中两个元素的值,因此进行二次遍历匹配数组中i的值,一旦与other匹配上,即打印输出该数组的值(两个元素) 。

我们在main函数中对数组b进行变量初始化的赋值操作,以便进行方法的调用,如果在数组中能够找到myTest()方法中的第二个,即target元素,就打印输出这两个元素,反之则什么都不打印。

Antergos:基于 Arch 发行版

阅读(196)评论(0)

众所周知,Arch Linux 是最好的 Linux 发行版之一,我们可以随心所欲的进行定制。我们可以滚动式更新最新的软件,但它的安装和配置的过程对于初学者则相对困难。现在就让我来为你展示如何安装 Antergos,这个基于 Arch 的、给新手的最好发行版,要尝试 Arch 的用户可以试一试,我保证绝对值得一试。

 

Antergos 是一个滚动式更新的发行版,基于 Arch Linux 提供桌面环境,是集现代化、高雅和高效率于一体的操作系统。想要挑战一下安装 Arch Linux 的用户,都可以先试一试 Antergos。

由于是滚动式更新,当上游发布更新,你的整个系统 (包括系统组件和你已安装的应用) 就会升级到最新的滚动版本,仅仅稍微延期一点时间以确保系统的稳定。

Antergos 有多个语言版本,包括英语、西班牙语等版本,在安装时你可以在语言栏选择预置语言。默认的配置确保了开箱即用,不需要安装额外的软件就可以直接浏览网页、听音乐、看视频以及做任何你想做的事情。

Antergos 项目最初名字是 Cinnarch,并且只提供一个桌面环境。现在它有多个桌面环境(包括 Cinnamon、Gnome、KDE、MATE、Openbox 和 Xfce)以供用户在安装之时进行选择。同时,它还默认包含了著名的 Numix GTK 主题和 Icon 主题。

下载 Antergos Linux

访问 Antergos 下载页面,然后下载最新的 Live ISO 镜像。任何人都可以免费获取 Antergos 镜像,烧录到 CD/DVD 或者写到 USB 设备,开始 Antergos 之旅。

创建可启动 USB

下载好最新的 Antergos Live ISO 镜像之后,你需要使用命令行或者图形界面的方法来制作一个可启动介质。

使用 Antergos 安装介质来启动电脑

使用 Antergos 安装介质来启动电脑。成功启动到 Live ISO 之后,你会看到与下图相似的界面。

自动草稿

点击 Install It 按钮开始 Angergos 的安装过程。

自动草稿

选择语系

Antergos 的易于使用的图形安装器非常不错。此处选择你需要选用的语系并点击 Next 按钮继续下一步。

自动草稿

系统检测

请确保你有足够的磁盘空间,连接好电源以及连接到网络,点击 Next 按钮继续下一步。

自动草稿

选择地点

选择地点可以帮助决定系统所使用的本地化信息(locale)。通常是选择你所属的国家即可。这里有一个基于你选择的语言的位置的简短列表。点击 Next 按钮继续下一步。

自动草稿

选择时区

选择使用的时区,然后点击 Next 按钮继续下一步。

自动草稿

选择键盘布局

选择你选用的键盘布局,然后点击 Next 按钮继续下一步。

自动草稿

选择桌面环境

Antergos 提供了多个选择(包括 Cinnamon、Gnome、KDE、MATE、Openbox 和 Xfce),根据你的喜好进行选择即可。然后点击 Next 按钮继续下一步。

自动草稿

Gnome – 特性选择

这里我选择了默认的 Gnome 桌面环境,此处你可以选择需要额外安装的软件以及正确的驱动程序。然后点击 Next 按钮继续下一步。

自动草稿

安装类型

初次安装可以选择第一个选项( Erase disk and install Antergos )。然后点击 Next 按钮继续下一步。(LCTT 译注,但是要注意这个选项会擦除你的整个硬盘数据,如果你是全新安装,则可以使用该选项。)

自动草稿

自动安装模式

这里会有一个檫除硬盘的警告,并选择安装 Grub 启动器,然后点击 Next 按钮继续下一步。

WARNING ! This will overwrite everything currently on your drive !

自动草稿

安装设置综述

确认最后的安装设置概览,如地点、时区、键盘布局、桌面环境和特性,然后点击 Next 按钮继续下一步。

自动草稿

创建你的用户名

此时需要为你的系统创建一个新用户名和对应的密码,然后点击 Next 按钮继续下一步。

  • 你的昵称
  • 电脑名称
  • 用户名
  • 设置密码
  • 密码二次确认
  • 选择“登录系统需要密码”

自动草稿

安装进程

此时就是等待 Antergos 安装完成。安装好之后,移除安装介质在点击“立刻重启”按钮。

自动草稿

输入用户名和密码

这是欢迎界面,输入密码即可登录:

自动草稿

发行信息截图:

自动草稿

我们还会提供了一些列循序渐进的 Linux 系统管理的相关文章。如果本文对你有用,请花费几分钟分享你得想法到评论区。

请于我们保持联系,祝君好运!

CentOS 7 云服务器上将 PHP 从 5.4 升级到 7.0

阅读(247)评论(0)

运行 CentOS 7 的新云服务器上可用的默认 PHP 版本是 5.4 版。了解如何将其升级到 PHP 7.0。您需要手动执行升级,因为 PHP 7 在标准 CentOS 7 yum 存储库中不可用,因为它被认为是不稳定的。

注意
这是一次重大升级,可能会导致与您可能正在运行的任何 Web 软件发生严重冲突。

我们强烈建议您在继续之前创建服务器的快照。 这将允许您在遇到升级问题时回滚任何更改。

要求

一台运行 CentOS 7 的云服务器
PHP 5.4 版

使用 php -v 命令验证您当前的 PHP 版本:

1
2
3
4
[XU@localhost ~]$ php -v
PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

升级到 PHP 7

我们将使用 IUS 存储库来升级 PHP。 尽管有多个软件库为 CentOS 7 提供了 PHP 7 版本,但 IUS 是唯一一个带有 CentOS 项目官方推荐的软件库。

1
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm

删除现有版本的 PHP:

1
sudo yum remove php-common mod_php php-cli

更新包:

1
sudo yum update

安装 PHP 7:

1
sudo yum install php70u php70u-pdo php70u-mysqlnd php70u-opcache php70u-xml php70u-gd php70u-devel php70u-mysql

重启 Apache:

1
sudo systemctl restart httpd

使用 php -v 命令验证 PHP 是否已升级:

1
2
3
4
5
[XU@localhost erika]# php -v
PHP 7.0.18 (cli) (built: Apr 13 2017 15:18:10) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.18, Copyright (c) 1999-2017, by Zend Technologies

CentOS安装iRedMail邮件服务器

阅读(283)评论(0)

中文名为“艾瑞得邮件”,由 rhms 项目更名而来。是针对 Linux 设计的邮件服务器解决方案,是在操作系统安装好后使用的一套 shell 脚本,用于快速部署一套功能完善的邮件服务器解决方案。
iRedMail谷歌开源地址:http://code.google.com/p/iredmail/
iRedMail官网地址:http://www.iredmail.org/(国内被墙,鄙视之)

iRedMail系统要求
iiRedMail安装需要干净的系统环境,意思是服务器不存在与iredmail相关的组件,如Apache,MySQL,OpenLDAP,Postfix,Dovecot,Amavisd等。否则会覆盖原来的配置文件,甚至导致iredmail安装失败。
为了能安装iredmail,你需要满足以下两个条件:

  1. 一个干净的系统,如RHEL,CentOS,Scientific Linux 系统。
  2. 不低于512MB的内存。
  3. 配置好yun源

 

iRedMail组件
iRedMail主要是使用下面软件来构建邮件系统。

  • Apache 2.2.x
  • PHP 5.3.x
  • MySQL 5.1.x
  • OpenLDAP 2.4.x
  • Postfix 2.7.x ( MTA )
  • Dovecot 1.2.x
  • Amavisd 2.6.x
  • ClamAV 0.9x
  • SpamAssassin 3.2.x
  • Policyd 1.8.x
  • Pysieved 1.0
  • Roundcube 0.7.2 (Webmail )
  • phpMyAdmin 3.3
  • phpLDAPadmin 1.2
  • Awstats 6.9

组件的工作原理
amavisd-new 在这里的作用主要是:

  • 负责调用 ClamAV 对邮件进行病毒扫描
  • 负责调用 SpamAssassin 对邮件内容进行过滤
  • 实现 DKIM 签名和验证功能,还有实现免责声明的功能。

自动草稿自动草稿

自动草稿

自动草稿

1. 当邮件发送到服务器的25端口,Postfix接受连接,它会做一些基本检查

  • 发送者是否在黑名单或者实时黑名单,如果在黑名单,马上拒绝
  • 是否是授权用户,可以进行转发
  • 接收者是否是服务器的用户,如果不是,马上拒绝
  • 如果我们启用的灰名单,那么会拒绝邮件或者接收

2. Postfix 把邮件通过10024端口交给amavis来处理,注意amavis,只会检查邮件而不会丢弃或者拒绝邮件。
3. amavis调用SpamAssassin检查邮件是否是spam,如果SpamAssassin认为邮件是垃圾邮件,会给邮件打上标记spam
4. amavis调用ClamAV,看邮件是否含有病毒
5. amavis把检查完的邮件,通过10025端口重新把邮件交回给postfix
6. postfix把邮件交给LDA(local delivery
agent),LDA是负责本地邮件投放到用户的邮箱,(我们这里使用dovecot提供的LDA功能,而不是postfix提供的LDA)邮件会进入用
户的邮箱,Dovecot会执行用户设置的filter,也就是Dovecot通过调用Sieve,放到相关的文件夹
7. Dovecot 把邮件以maildir的方式存放在硬盘上。
8. 用户使用邮件客户端,通过pop3或imap协议进行连接。webmail RoundCube,是通过imap的方式来读取邮件。

安装iRedMail
参考:http://www.iredmail.org/install_iredmail_on_rhel.html

安装完成之后需要知道的重要事情
1、阅读/root/iRedMail-x.y.z/iRedMail.tips,它包含一些与iredmail相关的信息
2、为SPF设置dns记录http://code.google.com/p/iredmail/wiki/DNS_SPF
3、为DKIM设置DNS记录http://code.google.com/p/iredmail/wiki/DNS_DKIM

webmail和其它一些程序的入口
Webmail http://your_server/mail/ (or /webmail, /roundcube)
iRedAdmin (admin panel) https://your_server/iredadmin/
phpMyAdmin https://your_server/phpmyadmin/
phpLDAPadmin https://your_server/phpldapadmin/
Awstats https://your_server/awstats/awstats.pl?config=web (or ?config=smtp)

添加新的域名DKIM

  1. # amavisd genrsa /var/lib/dkim/linuxeye.com.pem
  2. # vi /etc/amavisd/amavisd.conf
  3. dkim_key("linuxeye.com", "dkim", "/var/lib/dkim/linuxeye.com.pem");
  4. "linuxeye.com" => { d => "linuxeye.com", a => 'rsa-sha256', ttl => 10*24*3600 },
  5. # amavisd -c /etc/amavisd/amavisd.conf showkeys #显示DKIM,添加DNS TXT记录
  6. # amavisd -c /etc/amavisd/amavisd.conf testkeys #测试DKIM是否通过
  7. TESTING#3: dkim._domainkey.linuxeye.com => pass

如何在 Linux 中安装和使用 duf 命令

阅读(265)评论(0)

该命令显示磁盘空间的利用率,显示方式如下图所示:

如何在 Linux 中安装和使用 duf 命令

​duf 命令是 du 命令和 ​​​df 命令​​​​的一个结合,且结果输出是以更加易读的结构化方式,来检查系统空间。

其显示跟易读,对不?今天我们来分享一下如何在 Linux 中安装和使用 duf 命令。

安装 duf

如果你使用的是 Ubuntu 22.04 或者 Debian 开发版或测试版,可以使用 apt 包管理器直接安装:

sudo

如果使用的是 Arch,可以使用 pacman 命令进行安装:

sudo

如果使用的是 Debian 稳定版,或比较旧版本的 Ubuntu,则可以使用预构建的 deb 包来安装duf:

wget https://github.com/muesli/duf/releases/download/v0.8.1/duf_0.8.1_linux_amd64.deb

然后使用如下命令安装 deb 包:

sudo apt install ./duf_0.8.1_linux_amd64.deb

另外,也可以按照其说明手册进行安装,地址为:

​​https://github.com/muesli/duf​​

使用 duf 检查磁盘使用情况和可用空间

可以不添加任何选项,直接使用 duf 命令,这将显示已安装设备列表:

dnf

如何在 Linux 中安装和使用 duf 命令

查看指定设备

可以使用 duf 同时列出一个或多个设备。您只需指定安装端口或设备的路径即可:

duf

看下面例子:

duf

如何在 Linux 中安装和使用 duf 命令

过滤驱动装置

duf 实用程序提供了各种选项,以便您可以过滤输出并获得预期的结果。

例如,可以使用 --only 选项仅显示特定设备:

duf

比如,假如我们想要列出本地设备,可以使用如下命令:

duf --only local

如何在 Linux 中安装和使用 duf 命令

如果想要查看某个文件系统,可以使用 --only-fs 选项。比如,查看 tmpfs(临时文件系统)可使用如下命令:

duf

如何在 Linux 中安装和使用 duf 命令

排序输出

可以使用 --sort 选项对输出结果根据大小、使用率等进行排序。比如:

duf
获取JSON输出

如果喜欢 json 格式的输出,可以使用 --json 选项:

duf

如何在 Linux 中安装和使用 duf 命令

如果想要将结果保存在文本文件中,可以将结果重定向:

duf --json > duf.json

查找在线主机的 IP 地址,让对方无处遁形

阅读(187)评论(0)

你可以在 Linux 的生态系统中找到很多网络监控工具,它们可以为你生成出网络中所有设备的摘要,包括它们的 IP 地址等信息,然而,实际上有时候你只需要一个简单的命令行工具,运行一个简单的命令就能提供同样的信息;本篇教程会向你展示如何找出所有连接到给定网络的主机的 IP 地址。这里我们会使用 Nmap 工具来找出所有连接到相同网络的设备的IP地址。

Nmap (Network Mapper 的简称)是一款开源、强大并且多功能的探查网络的命令行工具,用来执行安全扫描、网络审计、查找远程主机的开放端口等等;如果你的系统中还没有安装 Nmap,在你的发行版中运行合适的命令来安装:

$ sudo yum install nmap                   [在基于 RedHat 的系统中]
$ sudo dnf install nmap                   [在基于Fedora 22+ 的版本中]
$ sudo apt-get install nmap               [在基于 Debian/Ubuntu 的系统中]

安装完成后,使用的语法是:

$ nmap  [scan type...]  options  {target specification}

其中,{target specification}这个参数可以用主机名、IP 地址、网络等来替代。所以要列出所有连接到指定网络的主机 IP 地址,首先要使用 ifconfig 命令或者ip 命令来识别网络以及它的子网掩码:

$ ifconfig
$ ip addr show

自动草稿

在 Linux 中查找网络细节

接下来,如下运行 Nmap 命令:

$ nmap  -sn  10.42.0.0/24

自动草稿

查找网络中所有活跃的主机

上面的命令中:

  • -sn - 是扫描的类型,这里是 ping 方式扫描。默认上,Nmap 使用端口扫描,但是这种扫描会禁用端口扫描。
  • 10.42.0.0/24 - 是目标网络,用你实际的网络来替换。

要了解全面的信息,查看 Nmap 的手册:

$ man nmap

或者不带任何参数直接运行 Nmap 查看使用信息摘要:

$ nmap

此外,对于有兴趣学习 Linux 安全扫描技术的人,可以阅读 Nmap in Kali Linux 这篇实践指导。

LINUX 防火墙 firewalld

阅读(292)评论(0)

自动草稿

1、firewalld的基本使用
启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld

开机禁用 : systemctl disable firewalld

开机启用 : systemctl enable firewalld
2、systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed
3、配置firewalld-cmd
查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic
4、那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload

firewall-cmd --zone=public --query-port=80/tcp

firewall-cmd --zone=public --remove-port=80/tcp --permanent

CentOS 系统一键分区并挂载 /home 教程

阅读(294)评论(0)

本教程适用于CentOS 6 / 7 系列,自动挂/home适合重要数据在/home目录下,只重装系统盘缺不想丢失数据的客户。

本脚本默认挂/home ,如果需要挂到其它目录,请自行修改Shell。

 

一、查看当前硬盘分区情况

 

df -H

 

SSH执行以上命令,查看当前 / 容量,8.6G左右表示正在且只在使用第一硬盘10G的容量。

CentOS 系统一键分区并挂载 /home 教程

 

二、下载挂载脚本

 

wget http://soft.kwx.gd/tools/AutoMountEXT.sh

 

三、开始或取消

 

sh AutoMountEXT.sh

 

操作方法:按任意键,直接执行SSH命令,执行  Ctrl + C  可取消退出。

执行完毕后,再执行

 

df -H

 

即可查看到是否成功挂载。

CentOS 系统一键分区并挂载 /home 教程

Linux 系统是运行在虚拟机上还是物理机上

阅读(400)评论(0)

除了本机开发以外,我们平时使用 Linux 大部分是通过 ssh 连接到远程服务器上的,比如系统部署、运维等工作。

Linux 系统是运行在虚拟机上还是物理机上

在当前虚拟化非常成熟的环境下,我们所部署的大部分系统都是运行在虚拟机中的。但是也有部分是在物理机上。那么,怎样区分我们的系统是运行在虚拟机上,还是物理机上呢?

下面我们来详细讨论下这个问题。

有几个命令可以用来区分系统运行环境是在虚拟机还是物理机。

1,使用 dmidecode 命令

区分虚拟机和物理机,最简单的方法是使用 dmidecode 命令。如下所示:

sudo dmidecode -s system-manufacturer

如果是物理机,你会看到机器制造商的名称,比如 Dell,Lenovo 等;

如果是虚拟机,你会看到一些类似于 QEMU, innotek Gmbh(for VirtualBox)等的输出信息。

dmidecode 命令用于查看计算机的 DMI 信息,该信息以人类可读的方式输出。

DMI 是桌面管理界面(Desktop Management Interface)的缩写,是几乎所有系统制造商都遵守的标准。DMI 框架用于管理和跟踪桌面、笔记本电脑或服务器计算机中的组件。

由于有了 DMI,我们可以获得有关系统硬件、系统制造商和设备序列号的信息,而使用 dmidecode(DMI Decode)命令,可以获取这些信息。另外,使用 -s system-manufacturer 也可获取制造商的详细信息。

如果系统环境是物理机,那么可以看到制造商的信息,比如:

$ sudo dmidecode -s system-manufacturer
Dell Inc.

相反,如果是虚拟机,可以将虚拟机的信息打印出来,如下所示:

$ dmidecode -s system-manufacturer
QEMU

这个命令用起来比较便捷。关于 dmidecode 命令的详细信息,大家也可以查看 man 手册。

如果想要查看 Linux 版本的信息,可以使用 uname 命令。因为 dmidecode 命令查看的是硬件信息,对于软件信息来说不适用。

2,使用 virt-what

区分虚拟机和物理机的另外一个方法是使用 virt-what

基本上,可以将其理解为是一个 shell 脚本,可以作为命令安装在大多数 Linux 发行版中。安装命令如下:

sudo apt install virt-what

如果系统运行在一个物理机上,virt-what 命令将不会返回任何结果;相反,如果是运行在虚拟机上,将会输出虚拟机的一些信息,如下所示:

$ virt-what 
kvm

以上就是本次分享全部内容,欢迎讨论。

登录

忘记密码 ?