Linux计算MD5和Sha1的命令

MD5

MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。

Sha1

安全散列算法(英语:Secure Hash Algorithm)是一种能计算出一个数位讯息所对应到的,长度固定的字串(又称讯息摘要)的算法。且若输入的讯息不同,它们对应到不同字串的机率很高;而SHA是FIPS所认证的五种安全散列算法。这些算法之所以称作“安全”是基于以下两点(根据官方标准的描述):“1)由讯息摘要反推原输入讯息,从计算理论上来说是很困难的。2)想要找到两组不同的讯息对应到相同的讯息摘要,从计算理论上来说也是很困难的。任何对输入讯息的变动,都有很高的机率导致其产生的讯息摘要迥异。

MD5 与 SHA1 是当前最常用的两种哈希算法。那在Linux下如何计算这两种哈希值呢,基本上所有的 Linux 发行版都内置了这两个命令,比如要校检的文件命为OurUnix.tar:

计算文件的 MD5 – md5sum

计算文件的 SHA1 – sha1sum

引用 Linux计算MD5和Sha1的命令

Linux下新的网络管理工具ip替代ifconfig零压力

wKiom1XVQvajRv9nAAGSTCXZEBI308

如果你使用 Linux 足够久,那么你自然知道一些工具的来与去。2009年 Debian 开发者邮件列表宣布放弃使用缺乏维护的 net-tools 工具包正是如此。到今天 net-tools 仍然被部分人们所使用。事实上,在 Ubuntu 14.10 中你依旧可以使用 ifconfig 命令来管理你的网络配置。

然而在某些情况下(例如, Ubuntu Docker 容器), net-tools 工具包将不会被默认安装,这就意味着不能使用 ifconfig 。尽管如此,还是可以用软件仓库来安装 net-tools 。

由于 net-tools 不再维护,我们强烈建议以 ip 命令代替 ifconfig。更重要的是 ip 在代替 ifconfig 的基础上表现得更好。

有趣的是 ip 不只是 ifconfig 的一个替代品,这两个命令在结构上有很多不同。即便如此,它们却都用于同一个目的。实际上 ip 命令可以完成下面所有事务。

  • 列出系统上配置了哪些网络接口
  • 查看网络接口的状态
  • 配置网络接口(包括本地环路和以太网)
  • 启用或禁用网络接口
  • 管理默认静态路由
  • IP 隧道配置
  • 配置 ARP 或 NDISC 缓存条目

接下来就让我们按上面说的试着用 ip 代替 ifconfig 。 我将例举一些简单的例子说明怎么使用 ip 命令。要正确使用并理解这些命令需要 root 权限,你可以用 su 切换到 root 用户或着使用 sudo 。因为这些命令将会改变你机器的网络信息。小心谨慎使用

注意:演示中用的地址仅作演示,具体到你的计算机时,会由你的网络以及硬件而不一样。

接下来,开始吧!

收集信息

多数人学习使用 ifconfig 做的第一件事就是查看网络接口上分配的 IP 地址。直接终端输入 ifconfig 不带任何参数回车即可看到。那么使用 ip 来做到这点我们只需要这样。

这条命令将会列出所有网络接口的相关信息。

你说你只想看 IPv4 相关信息,那么可以这样。

你又说你想看特定的网络接口的相关信息,那么用如下命令查看无线网卡连接信息。

你甚至可以定位更具体的信息,欲查看 wlan0 上的 IPv4 信息,那么可以这样。

还可以这样列出正在运行的网络接口。

修改配置网络接口

接下来让我们来学习 ip 命令的核心功能——修改配置网络接口。假如你想为第一个以太网的网卡( eth0 )安排一个特定的地址。用 ifconfig 的话,看起来是这样的。

那么用 ip 命令却是这样的。

简短一点可以这样。

显然这样的话,你需要知道你要安排的地址的子网掩码。

同样的方式,你可以这样删除一个网卡的地址。

如果你想简单的清除所有接口上的所有地址,只需要这样即可。

ip 命令另一方面还能激活/禁用网络接口。

禁用 eth0 

激活 eth0

使用 ip 命令,我们还可以添加/删除默认的网关,就像这样。

如果你想获得网络接口的更多细节,你可以编辑传输队列,给速度慢的接口设置一个低值,给速度快的设置一个较高值。那么你需要像这样做。

该命令设置了一个很长的传输队列。你应该设置一个最适合你硬件的值。

还可以用 ip 命令为网络接口设置最大传输单元。

一旦你做了改变,便可以使用 ip a list eth0 来检验是否生效。

管理路由表

其实还可以使用 ip 命令来管理系统路由表。这是 ip 命令非常有用的一个功能。并且你应该小心使用

查看所有路由表。

输出结果将像下图所示。

wKiom1XVQySyp5CgAACNl1KcyA0951

现在你想要路由的所有流量从 eth0 网卡的192.168.1.254网关通过,那么请这样做。

删除这个路由。

这篇文章仅仅对 ip 命令进行了一些介绍。不是要求你马上使用 ip 命令。你可以继续使用 ifconfig 。因为 ifconfig 的弃 用相当的慢,很多发行版里依旧默认安装了该命令。但是相信最终会逐步被 ip 命令完全取代。看过这篇介绍,到时候你便能很快的转换过去。如果你还想了解 更多 ip 命令的用法,请看 ip 命令的 man 手册。

参考链接


Linux下新的网络管理工具ip替代ifconfig零压力

Ubuntu下转换Putty的.ppk为OpenSSH支持的KEY文件

在Windows 中使用Git的时候,习惯使用TortoiseGit来进行Git的管理。

TortoiseGit在提交代码的时候,使用Putty来实现SSH通信,Putty的Key文件为.ppk格式的文件,现在切换到Ubuntu之后,使用SmartGit来进行管理,而SmartGit 只支持OpenSSH 格式的Key文件,因此需要把Windows下面的.ppk文件转换为OpenSSH格式的文件。

具体操作如下所示:

然后指定生成的文件为Key文件,就可以正常使用了。

注意,命令中的转换参数全部为字母“O”,不是数字零“0”,只是前面是大写字符后面是小写字符。

Ubuntu 及衍生版本用户如何安装 SmartGit/HG

SmartGit/HG 是一款开放源代码的、跨平台的、支持 Git 和 Mercurial 的 SVN 图形客户端,可运行在Windows、Linux 和 MAC OS X 系统上。可用的最新版本 SmartGit/HG 6.0.0,最近已发布。140603102567792

Ubuntu及衍生系统用户安装,打开终端,使用以下命令:

Debian 用户安装命令:

卸载命令:

用badblocks检测硬盘坏道

硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。最好的处理方式是更换磁盘,但在临时的情况下,应及时屏蔽坏道部分的扇区,不要触动它们。badblocks就是一个检查坏道位置的工具。

一、命令参数
badblocks使用格式为:

参数含义是:

-b blocksize
指定磁盘的区块大小,单位为字节,默认值为“block 4K ”(4K/block)
-c blocksize
每个区块检查的次数,默认是16次
-f
强制在一个已经挂载的设备上执行读写或非破坏性的写测试操作
(我们建议先umount设备,然后再进行坏道检测。仅当/etc/mtab出现误报设备挂载错误的时候可以使用该选项)
-i file
跳过已经显示在file文件中的坏道,而不进行检测(可以避免重复检测)
-o file
把检测结果输出到file文件
-p number
重复搜寻设备,直到在指定通过次数内都没有找到新的坏块位置,默认次数为0
-s
在检查时显示进度
-t pattern
通过按指定的模式读写来检测区块。你可以指定一个0到ULONG_MAX-1的十进制正值,或使用random(随机)。
如果你指定多个模式,badblocks将使用第一个模式检测所有的区块,然后再使用下一个模式检测所有的区块。
Read-only方式仅接受一个模式,它不能接受random模式的。
-v
执行时显示详细的信息
-w
对每个区块都先写入,然后再从它读取信息
[device]
指定要检查的磁盘装置。
[last-block]
指定磁盘装置的区块总数。
[start-block]
指定要从哪个区块开始检查

二、示例
badblocks以4096的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里

"hda-badblocks-list”是个文本文件,内容如下:
引用

可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束

这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。重复几次同样的操作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,直到产生最后的hda-badblock-list.final文件。

三、其他
1、fsck使用badblocks的信息
badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:

2、在创建文件系统前检测坏道
badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:

代码表示使用-c在创建文件系统前检查坏道的硬盘。
这个操作已经很清楚地告知我们可以采用“mkfs.ext3 -c”选项用“read-only”方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。

ubuntu 12.04配置rsync服务

rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。

默认情况ubuntu安装了rsync服务,但在/etc下没有配置文件,一般情况可以copy示例文件到/etc下

  • 安装sync,xinetd

  • 拷贝示例配置文件到/etc目录下

查看内容,可以看到如下内容

  • 修改同步的目录,用户名,密码,日志信息

1.修改

为需要同步的目录。
如果路径中存在空格,则要分两种情况处理,如果空格在路径中间,如"/nfs/Public/Shared Videos",则直接写

如果空格在路径的最后面,如"/nfs/Public/Shared Videos ",则需要如下形式设置,注意最后面的"\ ",是一个反斜杠加空格,否则最后的空格会被忽略。

2.设置可以登录的用户名,密码,修改

配置用户名和密码

赋予权限 rsyncd.secrets的权限必须为600

3.开启日志

4.如果提示

则调整

5.对于严格要求一致性的重要的文件,去掉"refuse options"中的"checksum",这样会导致同步变慢,但是会比较安全(已经有报告说当同步时候不校验MD5会出现文件大小一致但是MD5不正确的情况),这个需要客户端在同步的时候使用 "-c" 作为参数。

  • 编辑/etc/default/rsync 启动rsync作为使用xinetd的守护进程

修改

创建 /etc/xinetd.d/rsync 通过xinetd使rsync开始工作

启动/重启 xinetd

  • 测试

运行下面的命令检查,确认rsync配置成功。

  • 从服务器同步文件

c同步完成后校验文件MD5(慢,但是可靠)
v详细提示
a以archive模式操作,复制目录、符号连接
z压缩
u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同步
--progress指显示进度

注意,如果需要为多个目录做独立的配置,可以参考如下配置(配置中设置了两个独立的同步目录"ftp"跟"movie"

  • 通过计划任务定时同步

1.创建脚本文件,假定文件在/home目录

2.赋予执行权限

3.创建密码文件,自动填写密码

4.创建定时任务,每半小时自动检查备份一次

  • 编辑计划任务文件,执行日志输出到 “/var/log/cron_rsync_backup.log”

  •  增加计划任务

  •  重启计划任务,使之生效

  • 检查是否已经成功增加计划

Ubuntu 12.04 下 Apache 2.2.22 开启 Https

最近发现网站总是被电信恶意添加了广告,导致链接总是各种异常,因此打算开启HTTPS来规避这种情况。本来以为很简单的,结果发现网上的各种不靠谱。

1.启用Apache自带的SSL模块

2.激活Apache对于HTTPS的支持

这一步骤其实就是把/etc/apache2/sites-available/default-ssl拷贝到了 /etc/apache2/sites-enabled/default-ssl,并且更改了一下文件权限

如果要取消对于HTTPS的支持 可以执行

或者

3.强制Apache2 刷新配置

或者

这样便开启了Apache2 的HTTPS支持,此时输入https://www.mobibrw.com/就可以正常访问了。

但是此时使用的证书是在 /etc/apache2/sites-enabled/default-ssl中配置的默认的证书文件,内容如下:

如果要替换成自己的证书文件,只要修改 SSLCertificateFileSSLCertificateKeyFile就可以了。

上面使用的例子的证书格式是.pem格式的,如果是.csr格式的只要是Base64编码格式的(记事本打开之后,首行是"-----BEGIN CERTIFICATE-----"),跟上面的例子相同,直接设置就可以了。以申请到的沃通的免费证书为例子:

申请完成后的证书ZIP文件中有一个for Apache.zip的压缩包,解压缩之后,上传到服务器,然后直接如下设置就可以了:

至于其他的配置,跟/etc/apache2/sites-enabled/000-default中的一致就可以了。

如何使用 Grub Customizer 设置 Grub 启动菜单

安装 Ubuntu 等 Linux 发行版之后,开机后会出现 Grub 启动菜单用于选择需要进入的操作系统。如果我们需要对 Grub 启动菜单进行修改,除了传统的修改文本配置文件的方法之外,还可以使用图形设置工具 Grub Customizer 进行设置。

Grub Customizer 可以通过 PPA 安装,启动终端依次输入以下命令即可:

启动 Grub Customizer,主界面如下图所示:

Grub_Customizer

在 Grub Customizer 的主界面中,我们可以调整启动项的位置(使用工具栏的向上向下箭头按钮),还可以通过启动项前的复选框控制该启动项是否可见,我们可以通过这种方法隐藏多 余的 Linux 内核选项。如果去除某一类别中“新条目”的复选框,还可以“冻结”该类别,自动探测的新条目将不会被添加到这一类别。

点击工具栏的“首选项”按钮,在此我们可以对 Grub 启动菜单进行进一步定制。

首先是常规标签页,在此我们可以设置 Grub 启动菜单的默认启动项、是否显示菜单、等待时间等等。how-to-configure-the-linux-grub2-boot-menu-with-grub-customizer-02

然后是外观标签页,在此对 Grub 启动菜单的外观进行定制,如调整分辨率、设置背景等等。

how-to-configure-the-linux-grub2-boot-menu-with-grub-customizer-03

最后是高级标签页,如果你不了解这些选项的意义,请不要随便修改。

设置完成之后记得点击工具栏的“保存”按钮保存设置。

原文链接 如何使用 Grub Customizer 设置 Grub 启动菜单

如何在Linux上实现文件系统的自动检查和修复

平常Linux管理方面最重要的任务之一就是,检查文件系统的完整性。Linux文件系统有可能在各种各样的情况下受到损坏,比如系统崩溃、突然断电、磁盘断开,或者文件节点(i-node)不小心被覆盖等等。因此,定期检查文件系统的完整性是个好主意,以便尽量减小文件系统受到损坏的风险。而说到检查和修复Linux文件系统,fsck是一款实用的工具。

我在本教程中将介绍如何借助fsck工具,实现文件系统的自动检查。

系统一启动,就触发文件系统自动检查机制

如果你希望系统一启动,就自动触发fsck,那么有一些方法可以设置在启动过程中实现无人值守的fschk,这些方法具体取决于特定的Linux发行版。

在Debian、Ubuntu或Linux Mint上,编辑/etc/default/rcS,如下所示。

# 启动过程中,自动修复出现不一致性的文件系统

在CentOS上,使用下列内容,编辑/etc/sysconfig/autofsck(要是它没有,就创建)。

强制定期检查文件系统

如果文件系统很庞大,你可以强制定期检查文件系统,而不是每次系统启动时检查文件系统。为了实现这个操作,先要借助tune2fs命令,找到文件系统配置。下面这个命令行显示了文件系统相关参数的当前值。请注意:/dev/sda1是文件系统超级块所在的分区。

wKioL1NEqAWAGs_iAAEZzcUI6Zg257

从tune2fs的输出结果中,我们不仅可以看到文件系统的状态(干净与否),还可以看到与文件系统检查有关的一些参数。"Maximum mount count"(最大挂载次数)这个参数是指文件系统检查被触发后的挂载次数。"Check interval"(检查时间间隔)这个参数显示了两次文件系统检查之间的最长时间。在大多数Linux发行版上,这些参数并不是默认情况下被设置的,这意味着并不进行任何定期的文件系统检查。

如果想强制每隔30次挂载就检查文件系统,请运行下面这个命令。

如果想强制每隔3个月就检查文件系统,请使用下面这个命令。

现在确认刚添加上去的文件系统检查条件已正确设置。

强制下一次系统重启时,进行一次性的文件系统检查

如果你想在下一次系统重启时触发一次性的文件系统检查,可以使用这个命令。

一旦你在类似上面的顶层目录(/)中创建了一个名为forcefsck的空文件,它就会在你下一次重启时,强制进行文件系统检查。系统成功启动后,/forcefsck则会自动被清除。

wKiom1NEqKqQMvNoAACpmSYvFUE296

Ubuntu 12.04 Apache2 增加虚拟目录

Apache2 增加虚拟目录需要如下操作.

我们以建立一个 /deb 目录, 也就是可以通过 http://www.mobibrw.com/deb/来访问的目录为例子。

1.停止 Apache2 的服务,如果修改文件之前不停止服务,则服务重启的时候,有可能会写回以前的配置,导致我们的配置无效。

2.修改配置文件

在里面增加如下内容

如果允许用户可以通过网页来遍历目录下面的所有文件,则需要设置 Options ,把 Options None 修改为 Options Indexes

3.启动服务