Skip to content Skip to main navigation Skip to footer

Linux

Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

如今你已经升级或者安装了Ubuntu 14.04, 但是还有另外一件保护你的新系统需要做的事情:备份!

Ubuntu内置了一个备份工具 Déjà Dup Backup Tool。它允许你备份你的系统并保存在本地或者通过不同的协议保存在远端服务器上。

还有许多其他的工具来备份你的Ubuntu计算机与文件。你可以通过Dropbox 客户端或者其他云服务来自动备份你的重要文档。你也有可能使用UbuntuOne来备份你的机器,但现在这不再是一个选择了。

另外一个可以用来备份你机器的云存储是Box。Box是一个很棒的服务,它是Dropbox的一个替代品。Box云存储的一个缺点是它没有Dropbox那样的Linux客户端。

它的一个好处是它有Dropbox不支持的通过WebDAV协议来备份你的文件。

本篇简要教程会教你如何使用Box云服务来自动备份你的Ubuntu机器。

在你开始之前,你首先要确保你有一个Box账号,如果没有,请先前去注册。

当你完成后,打开Dash 并搜索备份。或者进入选项 (Gear) –> 系统设置 –> 备份

Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

接下来,选择备份的文件夹(即保存),忽略的文件夹,以及在哪里保存备份。位置是我们要首先设置的。对于存储位置,我们选择WebDAV 。接下来输入服务器地址(如下所示), 文件夹应该是/dav/,并输入你的Box用户名。

Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

回到概况,选择立即备份

Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

你会被要求输入密码。输入后继续。

Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

在下一屏中,你可以选择是否用密码加密备份。我建议不要这么做,因为忘记密码可能也会有危险。(译注:当然那些秘密的东西你就不要备份到这里了)

第一次备份后,前往打开定期备份设置。接着进入计划并选择对于你最好的备份计划。

要打开定期备份,要将右上角的滑动条拖到右边(即变成橙色的“ON”)。

Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
Linux:Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上

就是这样!你现在可以进入’保存的文件夹’ 并开始加入更多需要备份的文件夹。

体验一下吧!


via: http://www.liberiangeek.net/2014/04/daily-ubuntu-tips-automatically-backing-up-ubuntu-14-04-to-box-cloud-storage/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3114-1.html

Linux:随机数是骗人的,.Net、Java、C为我作证

几乎所有编程语言中都提供了”生成一个随机数”的方法,也就是调用这个方法会生成一个数,我们事先也不知道它生成什么数。比如在.Net中编写下面的代码:

Random rand = newRandom();
Console.WriteLine(rand.Next());

运行后结果如下:

 

    Next()方法用来返回一个随机数。同样的代码你执行和我的结果很可能不一样,而且我多次运行的结果也很可能不一样,这就是随机数。

Linux:随机数是骗人的,.Net、Java、C为我作证
Linux:随机数是骗人的,.Net、Java、C为我作证

一、陷阱

    看似很简单的东西,使用的时候有陷阱。我编写下面的代码想生成100个随机数:

for (int i=0;i<100;i++) {
     Random rand = new Random();
     Console.WriteLine(rand.Next());
}
Linux:随机数是骗人的,.Net、Java、C为我作证
Linux:随机数是骗人的,.Net、Java、C为我作证

    太奇怪了,竟然生成的"随机数"有好多连续一样的,这算什么"随机数"呀。有人指点"把new Random()"放到for循环外面就可以了:

Random rand = newRandom();
for(int i=0;i<100;i++) {
    Console.WriteLine(rand.Next());
}

     运行结果:

    确实可以了! 

二、这是为什么呢?

    这要从计算机中"随机数"产生的原理说起了。我们知道,计算机是很严格的,在确定的输入条件下,产生的结果是唯一确定的,不会每次执行的结果不一样。那么怎么样用软件实现产生看似不确定的随机数呢?

    生成随机数的算法有很多种,最简单也是最常用的就是 "线性同余法":  第n+1个数=(第n个数*29+37) % 1000,其中%是"求余数"运算符。很多像我一样的人见了公式都头疼,我用代码解释一下吧,MyRand是一个自定义的生成随机数的类:

class MyRand {
     private int seed;
     public MyRand(int seed)
     {
         this.seed = seed;
     }
     public int Next()
     {
         int next = (seed * 29 + 37) % 1000;
         seed = next;
         return next;
     }
}

 如下调用:

MyRand rand = newMyRand(51);
for (int i = 0; i < 10; i++)  {
     Console.WriteLine(rand.Next());
}

执行结果如下:

生成的数据是不是看起来"随机"了。简单解释一下这个代码:我们创建MyRand的一个对象,然后构造函数传递一个数51,这个数被赋值给seed,每次调用Next方法的时候根据(seed * 29 + 37) % 1000计算得到一个随机数,把这个随机数赋值给seed,然后把生成的随机数返回。这样下次再调用Next()的时候seed就不再是51,而是上次生成的随机数了,这样就看起来好像每一次生成的内容都很"随机"了。注意"%1000"取余预算的目的是保证生成的随机数不超过1000。 

当然无论是你运行还是我每次运行,输出结果都是一样的随机数,因为根据给定的初始数据51,我们就可以依次推断下来下面生成的所有"随机数"是什么都可以算出来了。这个初始的数据51就被称为"随机数种子",这一系列的516、1、66、951、616……数字被称为"随机数序列"。我们把51改成52,就会有这样的结果:

三、楼主好人,跪求种子

    那么怎么可以使得每次运行程序的时候都生成不同的"随机数序列"呢?因为我们每次执行程序时候的时间很可能不一样,因此我们可以用当前时间做"随机数种子"

MyRand rand = newMyRand(Environment.TickCount);
for (int i = 0; i < 10; i++)  {
     Console.WriteLine(rand.Next());
}

     Environment.TickCount为"系统启动后经过的微秒数"。这样每次程序运行的时候Environment.TickCount都不大可能一样(靠手动谁能一微秒内启动两次程序呢),所以每次生成的随机数就不一样了。

    当然如果我们把new MyRand(Environment.TickCount)放到for循环中: 

for (int i = 0; i < 100; i++)  {
     MyRand rand = newMyRand(Environment.TickCount);
     Console.WriteLine(rand.Next());
}

 

    运行结果又变成"很多是连续"的了,原理很简单:由于for循环体执行很快,所以每次循环的时候Environment.TickCount很可能还和上次一样(两行简单的代码运行用不了一毫秒那么长事件),由于这次的"随机数种子"和上次的"随机数种子"一样,这样Next()生成的第一个"随机数"就一样了。从"-320"变成"-856"是因为运行到"-856"的时候时间过了一毫秒。 

Linux:Ubuntu 14.04下升级GNOME至3.12

Linux:Ubuntu 14.04下升级GNOME至3.12
Linux:Ubuntu 14.04下升级GNOME至3.12

如果您的系统最近已升级至Ubuntu GNOME 14.04 LTS版本,那么拥有稳定独立的GNOME Shell无疑是您最佳的选择

但我认为比较保守的用户会倾向于选择默认向新手提供的稳定版本。你真想要了解如何在Ubuntu14.04升级GNOME至3.12吗?

好的,接下来我将向你介绍如何完成。首先,我们需要先了解下来龙去脉。

默认采用GNOME 3.10的原因

GNOME 3.12在3月底发布后引发了一阵轰动而天马行空的评论。尽管其上个月发布的版本在Ubuntu 14.04 LTS版本之前已经逐步趋于稳定,却仍不能从14.04包中直接安装,这是为什么呢?

简单来说在开发周期中它出现太晚以至于没有充足的时间来对它进行审查、测试并确保它已经更新至LTS命令发布支持的标准及用户期望。默认至旧版发布的3.10是有意义的,因为有专门的计划来确保测试完整。

所以,正因为这样不建议升级GNOME至3.12

这样清楚了吗?接下来,让我们进入下一个阶段。

如何在Ubuntu 14.04升级GNOME至3.12

确保你正在运行的GNOME版本是3.10

Linux:Ubuntu 14.04下升级GNOME至3.12
Linux:Ubuntu 14.04下升级GNOME至3.12

为确保正确遵循本向导,需要在最新版本的Ubuntu(14.04 LTS)或Ubuntu GNOME下继续操作。如果不是最新版本的话,请停止操作;你需要升级后再继续。如果不这样做,接下来将会有一系列复杂又麻烦的事情需要解决。

若你运行的是Ubuntu常规版本(例如带有Unity),那么需要在开始以下步骤前从Ubuntu软件中心安装GNOME 3.10。

按以下给出的链接选项准备好安装程序。

  • [Ubuntu14.04LTS版本下安装GNOME3.10]

增加GNOME 3.12 PPA

起初人们预想的是GNOME 3.12将会由标准GNOME Team PPA随着 14.04 LTS 发布。但3个星期过去了,却什么都没有。这是因为一些小的3.10软件包仍然没有跟着发布最新的3.12的包。

然而,GNOME Team Staging PPA确实涵盖了升级用到的各种3.12版本包。开发者强调说,增加这个存档会让桌面系统‘运行流畅’,但现在包含的包并未‘准备好为大众所使用’。

这儿假设您是一个PPA清理工具的行家,以上的一切都已明了,请继续向下。首先,让我们核对并安装已发布的更新:

sudo apt-get update && sudo apt-get dist-upgrade

按下回车键后等待安装包程序。

一旦完成此过程或再没有任何挂起的更新,就可以增加 GNOME Team Staging PPA了。为实现这项操作,打开新的命令行窗口输入以下命令:

sudo add-apt-repository ppa:gnome3-team/gnome3-staging
sudo apt-get update && sudo apt-get dist-upgrade

升级过程开始前需要输入密码,同时需要注意此过程中命令行提示的信息。如果一切顺利点击‘y’键确认安装。

附加内容

为体验真实的GNOME环境也许你想获取一些新的GNOME应用,例如Polari IRC客户端、GNOME地图和GNOME网页浏览器。安装这三个应用需要运行如下的命令:

sudo apt-get install epiphany-browser gnome-maps polari -y

在这些都安装完成之后,你就可以安全的重启了!

善后服务

登录

如果你之前使用Unity,Xfce或别的桌面环境,不要忘记登录前从登录界面选择GNOME会话。

回顾

Linux:Ubuntu 14.04下升级GNOME至3.12
Linux:Ubuntu 14.04下升级GNOME至3.12

对我自己来说,Ubuntu 14.04下运行GNOME 3.12很流畅。升级后没有出现任何诸如性能下降的问题,尽管我确实见到过在打开活动窗口时的奇怪罕见的显示故障,并且在一个应用下发生的间歇性阴影消失现象。但随着错误不断消除这些都不是大问题。

3.12版本的性能等同于GNOME3.10;应用的打开方式交互性强且体验并没有明显下降。

所有新的GNOME影音应用在PPA上并没有现成的包,这让人有点失望。当然有理由解释这点(很可能需要新版本的视频解码器)。此外仍要注意的是一些GNOME扩展包在升级后不能继续工作。

当然3.12因为测试不足,其中存在错误不可避免。若用户要求稳定性(或者希望保持系统工作时的高度统一和完整),可以继续支持已通过测试的GNOME 3.10版本。

从GNOME 3.12 降至3.10版本

但是如果想要体验闪闪亮的新功能及最新发布的GNOME应用,那就试一试PPA平台吧。如果遇到了错误可以随时使用PPA清理工具来降级至稳定版本。

sudo apt-get install ppa-purge
sudo ppa-purge ppa:gnome3-team/gnome3-staging

via: http://www.omgubuntu.co.uk/2014/05/upgrade-gnome-3-12-ubuntu-14-04

译者:icybreaker 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3123-1.html

Linux:六步优化你的 Ubuntu 14.04

Linux:六步优化你的 Ubuntu 14.04
Linux:六步优化你的 Ubuntu 14.04

Ubuntu 14.04 LTS (Trusty Tahr) 是一个非常优秀的操作系统,但是与其他发行版一样,它的初始化配置对用户来说并不是最优的配置。虽然这样有许多原因,但我们可以自己做一些配置来极大地提升你的Ubuntu操作体验。

Ubuntu 是一款非常优秀的操作系统,而且其14.04的最新版本也是Canonical迄今为止制作的最精心版本,但是对于许多用户来说,这一系统中仍存在许多需要改善的方面。确实,如果你希望获得完整的操作体验,你需要进行一些设置修改。

比如,当你第一次启动这一系统时,你需要打开“软件与更新”(Software & Updates),确认在第一个选项“Ubuntu Software”中所有的子选项都被选中。因为如果你想获得所有重要的包,你需要这些软件库被激活。

Linux:六步优化你的 Ubuntu 14.04
Linux:六步优化你的 Ubuntu 14.04
“软件与更新”(Software & Updates)软件库

第二个修改是安装Ubuntu Restricted Extras. 这样可以安装许多由于法律原因而无法与操作系统绑定的重要软件包,如Adobe公司的Flash与Microsoft的字体。自己安装这些软件是没有任何问题的,但开发者不能默认地包含这些软件。打开一个终端,输入如下命令:

sudo apt-get update
sudo apt-get install ubuntu-restricted-extras

安装完成后,你需要删掉系统默认的即时消息软件:Empathy. 它是GNOME的一部分,而且是一个非常有限的并有bugs的解决方案。你需要安装Pidgin来替换。根据如下命令进行安装:

sudo apt-get remove empathy
sudo apt-get install pidgin
sudo apt-get install pidgin-plugin-pack

现在,如果你已经完成了对即时消息软件的处理,你需要安装视频卡(video card)的驱动。如果你有Intel的GPU,你不需要做任何事情,但是如果你的GPU是NVIDIA或者AMD的,你可能需要相应公司的驱动,这样可以在游戏中为你提供更好的性能。再次打开“软件与更新”(Software & Updates),点击最后一个选项:额外驱动(Additional Drivers),选择你需要的驱动。这需要一定时间,请耐心等待。然后重启。

Linux:六步优化你的 Ubuntu 14.04
Linux:六步优化你的 Ubuntu 14.04
“软件与更新”(Software & Updates)驱动

然后,你可能也想终止通过Unity’s Dash的在线搜索。打开“系统设置”,选择“安全与隐私”(Security and Privacy). 在第三个选项“搜索”中,你可以发现一个按钮可以关闭在线搜索。

Linux:六步优化你的 Ubuntu 14.04
Linux:六步优化你的 Ubuntu 14.04
在Ubuntu 14.04 LTS中关闭在线搜索

最后,你可能也想稍微定制一下桌面。在桌面点击鼠标右键,选择改变桌面背景。你会发现一个名为“启动器图标大小”的滚动条。你可以激活这个滚动条,修改结果也可以实时看到。在“行为”选项中,你也可以发现一个选项来选择在应用窗口中显示菜单,而不是在Unity的顶部条那显示。

Linux:六步优化你的 Ubuntu 14.04
Linux:六步优化你的 Ubuntu 14.04
改变菜单的显示方式

以上就是所有的内容。你依据这些做的任何改变都可以将你的Ubuntu 14.04 LTS定制成你自己的版本,而且这些只是针对操作系统外貌的改变,极少针对特性与性能。

希望你喜欢!


via: http://news.softpedia.com/news/Six-Step-You-Need-to-Take-to-Make-Ubuntu-14-04-LTS-Better-439341.shtml

译者:Hao-Ding 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3128-1.html

Linux:findmnt-寻找挂载的文件系统

命令findmnt用来查找在Linux下已经被挂载的文件系统。该命令会从/etc/fstab、/etc/mtab或者/proc/self/mountinfo中寻找指定的文件系统。

Linux:findmnt-寻找挂载的文件系统
Linux:findmnt-寻找挂载的文件系统

如何安装findmnt

findmnt命令来自于util-linux-ng软件包,这个包现在改名为util-linux。该软件包中还包括其他一些工具,比如hwclock等。从kernel.org ftp页面下载util-linux以安装findmnt。

如何在Fedora下安装findmnt

Fedora用户可以通过下面的命令安装该软件包:

$ sudo yum install util-linux-ng

Findmnt默认选项

如果没有提供特定的挂载点或者设备,该命令默认会以优美的树形结构列出所有已经被挂载的文件系统。

$ findmnt
Linux:findmnt-寻找挂载的文件系统
Linux:findmnt-寻找挂载的文件系统

Findmnt轮询模式

findmnt可以被用来监控/proc/self/mountinfo文件的变化。轮询模式可以通过下面的命令进行调用:

$ findmnt -p

或者

$ findmnt --poll

/proc/self/mountinfo文件的任何变化会自动的在终端中进行更新。一开始你不会发现终端中的输出有任何变化,如果此时你拔掉U盘再插入,变化就会出现在终端中。

findmnt poll

轮询停止的时间可以通过–timeout或者–first-only选项进行限制。

超时选项

该选项可以与–pool一起使用来限制轮询模式的时间。超时单位是毫秒。超过此时间后,findmnt不会再监控/proc/self/mountinfo文件的变化。

$ findmnt --poll --timeout 6000

findmnt poll timeout

First-only选项

first-only选项只会监控/proc/self/mountinfo文件的第一次变化,之后该命令退出轮询模式。第一次变化会出现在终端中,并且返回到提示符。使用此选项在终端中输入:

$ findmnt --poll --first-only

findmnt poll first-only

模仿df输出的选项

findmnt命令也可以用来模仿df命令的输出。你可以参考如下的命令使用findmnt和选项–df

$ findmnt --df

或者

$ findmnt -D

它会返回和df -h命令几乎相同的输出。

$ df -h
Linux:findmnt-寻找挂载的文件系统
Linux:findmnt-寻找挂载的文件系统

Findmnt list选项

如果你不喜欢默认的树形输出,你可以使用–list或者-l选项。它会以列的形式进行输出。

$ findmnt --list

执行此命令的输出如下:

Linux:findmnt-寻找挂载的文件系统
Linux:findmnt-寻找挂载的文件系统

Findmnt Evaluate 选项

求值选项会转换所有的标签(比如LABEL,UUID,PARTUUID或者PARTLABEL)成真实的设备名称。该选项可以结合–fstab选项来打印所有在/etc/fstab中包含的文件系统。–fstab选项的输出是列的形式,因此当使用–fstab的时候无需使用–list选项。

$ findmnt --fstab --evaluate

当这两个选项像如下一样结合使用的时候,输出如下:

findmnt fstab evaluate

Findmnt type 选项

该选项允许你限制打印出的文件系统。多个文件系统可以使用逗号分割进行指定。在这个实例中,该命令会搜索ext4,ext3和vfat文件系统。

$ findmnt -t ext4,ext3,vfat

findmnt types

结语

你可以按照你的需要尝试不同的findmnt选项。


via: http://linoxide.com/linux-command/powerful-findmnt-command/

译者:zzlyzq 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3129-1.html

Linux:findmnt 命令的八个应用实例

已挂载的文件系统和设备

linux 中常用的检查已挂载的文件系统的是 mount 命令,不仅用于列出已挂载的设备,而且可以在需要的时候挂载和卸载。另外还有一个叫做 findmnt 的超赞命令,它可以用于快速查看挂载位置和选项。

Linux:findmnt 命令的八个应用实例
Linux:findmnt 命令的八个应用实例

安装findmnt

findmnt 命令来自 util-linux 软件包,默认安装在大多数发行版中,如 Ubuntu,Fedora,Debian

$ aptitude search util-linux
i   util-linux                     - Miscellaneous system utilities
$ yum info util-linux

使用findmnt

1. 列出文件系统

无任何选项运行 findmnt,只会以树形结构图的方式列出所有已挂载的文件系统。

$ findmnt
Linux:findmnt 命令的八个应用实例
Linux:findmnt 命令的八个应用实例

2. 以列表形式输出

输出可以格式化为一个简单的列表,而不是默认的树形结构,使用l(键盘u和o中间那个,不是数字1)选项使它方便阅读。

$ findmnt -l
TARGET                   SOURCE                              FSTYPE  OPTIONS
/sys                     sysfs                               sysfs   rw,nosu
/proc                    proc                                proc    rw,nosu
/dev                     udev                                devtmpf rw,rela
/dev/pts                 devpts                              devpts  rw,nosu
/run                     tmpfs                               tmpfs   rw,nosu
/                        /dev/disk/by-uuid/6fa5a72a-ba26-4588-a103-74bb6b33a763
                                                             ext4    rw,rela
/sys/fs/cgroup                                               tmpfs   rw,rela
/sys/fs/fuse/connections                                     fusectl rw,rela
/sys/kernel/debug                                            debugfs rw,rela
/sys/kernel/security                                         securit rw,rela
/run/lock                                                    tmpfs   rw,nosu
/run/shm                                                     tmpfs   rw,nosu
/run/user                                                    tmpfs   rw,nosu
/sys/fs/pstore                                               pstore  rw,rela
/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
                         /dev/sda8                           ext4    rw,nosu
/media/4668484A68483B47  /dev/sda5                           fuseblk rw,nosu
/proc/sys/fs/binfmt_misc binfmt_misc                         binfmt_ rw,nosu
/sys/fs/cgroup/systemd   systemd                             cgroup  rw,nosu
/run/user/1000/gvfs      gvfsd-fuse                          fuse.gv rw,nosu

3. df格式输出

Findmnt 可以用“-D”或“-df”选项创建一个 df 格式的输出报告空闲和已用磁盘空间。

$ findmnt -D
SOURCE                  FSTYPE       SIZE   USED   AVAIL USE% TARGET
devtmpfs                devtmpfs   994.2M      0  994.2M   0% /dev
selinuxfs               selinuxfs       0      0       0    - /sys/fs/selinux
tmpfs                   tmpfs     1001.5M    68K 1001.4M   0% /dev/shm
tmpfs                   tmpfs     1001.5M   724K 1000.8M   0% /run
tmpfs                   tmpfs     1001.5M      0 1001.5M   0% /sys/fs/cgroup
/dev/mapper/fedora-root ext4         6.5G   5.3G  811.6M  82% /
tmpfs                   tmpfs     1001.5M    60K 1001.5M   0% /tmp
/dev/sda1               ext4       476.2M 107.7M  339.6M  23% /boot

需要注意的是,以上选项 util-linux2.20 之前的版本都不可用,它正好是 Ubuntu13.10 上的最新版本

4. 从fstab读取文件系统

使用“-s”或“-fstab”选项,findmnt 将只从/etc/fstab文件和/etc/fstab.d目录读取文件系统。

$ findmnt -s
TARGET SOURCE                                    FSTYPE OPTIONS
/      /dev/mapper/fedora-root                   ext4   defaults
/boot  UUID=18cde604-1c65-4ec8-8a8d-385df50ada3b ext4   defaults
swap   /dev/mapper/fedora-swap                   swap   defaults

5. 通过类型过滤文件系统

Findmnt 可以打印出只基于类型的特定的文件系统,例如 ext4,多个系统类型可以指定一个逗号分隔。

$ findmnt -t ext4
TARGET  SOURCE                  FSTYPE OPTIONS
/       /dev/mapper/fedora-root ext4   rw,relatime,seclabel,data=ordered
└─/boot /dev/sda1               ext4   rw,relatime,seclabel,data=ordered

6. 原始输出

如果你喜欢原始风格的输出,那么使用“-r”或“–raw”选项。

$ findmnt --raw
TARGET SOURCE FSTYPE OPTIONS
/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
/proc proc proc rw,nosuid,nodev,noexec,relatime
/dev udev devtmpfs rw,relatime,size=4069060k,nr_inodes=1017265,mode=755
/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
/run tmpfs tmpfs rw,nosuid,noexec,relatime,size=816716k,mode=755
/ /dev/disk/by-uuid/6fa5a72a-ba26-4588-a103-74bb6b33a763 ext4 rw,relatime,errors=remount-ro,data=ordered
/sys/fs/cgroup  tmpfs rw,relatime,size=4k,mode=755
/sys/fs/fuse/connections  fusectl rw,relatime
/sys/kernel/debug  debugfs rw,relatime
/sys/kernel/security  securityfs rw,relatime
/run/lock  tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k
/run/shm  tmpfs rw,nosuid,nodev,relatime
/run/user  tmpfs rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755
/sys/fs/pstore  pstore rw,relatime
/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 /dev/sda8 ext4 rw,nosuid,nodev,relatime,errors=remount-ro,data=ordered
/media/4668484A68483B47 /dev/sda5 fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096
/proc/sys/fs/binfmt_misc binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime
/sys/fs/cgroup/systemd systemd cgroup rw,nosuid,nodev,noexec,relatime,name=systemd
/run/user/1000/gvfs gvfsd-fuse fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000

看起来非常整洁(译注,亲爱的读者你也这样觉得么?)。

7. 通过源设备查找

通过源设备查找文件系统,指定设备路径包括/不包括“-S”选项。

$ findmnt -S /dev/sda1
TARGET SOURCE    FSTYPE OPTIONS
/boot  /dev/sda1 ext4   rw,relatime,seclabel,data=ordered

8. 通过挂载点查找

通过挂载目录查找文件系统,指定目录包括/不包括“-T /–target”选项。

$ findmnt -T /
TARGET SOURCE                  FSTYPE OPTIONS
/      /dev/mapper/fedora-root ext4   rw,relatime,seclabel,data=ordered
$ findmnt -T /media/4668484A68483B47
TARGET                  SOURCE    FSTYPE  OPTIONS
/media/4668484A68483B47 /dev/sda5 fuseblk rw,nosuid,nodev,relatime,user_id=0

总结

这是一个 findmnt 命令的简要介绍。关于 findmnt 的更多选项可以在 man 手册页中找到。


via: http://www.binarytides.com/linux-findmnt-command/

译者:Vito 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3135-1.html

Linux:如何修复Ubuntu/Mint中无法添加PPA源的错误

Linux:如何修复Ubuntu/Mint中无法添加PPA源的错误
Linux:如何修复Ubuntu/Mint中无法添加PPA源的错误

一名It’s FOSS的普通读者Chetan Jain今天联系了我,并询问道:我要怎样修复Ubuntu 14.04中无法添加PPA源的错误。Chetan在尝试安装TLP (一个用于减少过热发生的电源管理工具)的时候遇到了这个错误:

chetan@Inspiron-3521:~$ sudo add-apt-repository ppa:linrunner/tlp
Cannot add PPA: ‘ppa:linrunner/tlp’.
Please check that the PPA name or format is correct.

如果你在Ubuntu或Mint上添加PPA源时遇到了类似的情况,别担心。这是PPA源的一个常见情况(一般很少发生)之一,很容易就能够得到解决。

修复Ubuntu 14.04和Linux Mint中无法添加PPA源的错误

发生这种错误主要有两种原因。一种是您电脑中的CA证书已经损坏,或者是您的网络设置了一个代理。

首先让我们重新安装一下CA证书:

sudo apt-get install --reinstall ca-certificates

如果上面的命令不起作用,可能是网络使用了一个代理设置。要略过代理设置,使用sudo命令并加上参数E,就像下面这样:

 sudo -E add-apt-repository ppa:linrunner/tlp

这样PPA源应该就能正常工作了。Chetan的情况通过第二种方法解决了。我希望这个快速指南同样能够帮助您摆脱PPA源错误。欢迎您提出任何问题或是建议来帮助我们改进。


via: http://itsfoss.com/fix-add-ppa-error-ubuntu-1404-linux-mint/

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3136-1.html

Linux:Ubuntu 14.04 LTS中的主要程序变化的总结

过去几周我们已经讨论过 Ubuntu 的第一个LTS新版本在过去两年内在操作系统方面的主要更新。今天我们将要列出 Ubuntu 应用程序商店中自从上一个 LTS 版本以来主要的应用程序更新。

主要的程序和工具更新

除了大量桌面应用程序更新(下一节讨论)外,两年以来大量的其他程序和工具都有了非常不错的更新。以下讨论其中的一部分:

  • Xen 4.4 对于 Ubuntu 内置的 Xen 这是一个重大更新。最显著的变化就是它不再支持纯32位的 CPU 了(虽然还继续支持32位操作系统)。这不应该是一个大问题,因为过去六年以来大多数CPU都是64位的。但是这意味着那些还在老服务器或笔记本上使用 Ubuntu 的人需要知道 Xen 将不再支持他们的CPU了。

  • QEMU 2.0 紧接着 Xen 后面介绍 QEMU ,因为为了适应 Xen,QEMU做了些调整。最主要的影响是在 KVM 中创建的虚拟机无法从以前的 Ubuntu 12.04 迁移到这个版本,并且快照也无法恢复。另外,加入了对 arm64 的二进制虚拟。

  • MySQL 尽管默认安装的是 MySQL 5.5,但是也可以从标准库中安装 Percona, MariaDB 或者 MySQL 5.6。令人意外的是,不像其他的主流发行版,Ubuntu 并没有将数据库换成MariaDB ,继续默认安装 MySQL。我猜测估计是和甲骨文维持了比较好的关系。

  • Apache 2.4 和 PHP 5.5 有点意外的是 Apache 升级到了2.4版本,毕竟2.2版本已经稳定使用了太久了。但我还是很高兴地看到主流发行版能够跟上新的版本。PHP 早在 12.04 LTS 就可以升级到 PHP 5.5 了,不过新版系统则已经默认安装 PHP 5.5 了。注意:如果你使用的是一些老板 CMS 平台 (嗯嗯,比如DRUPAL), 在升级过程中可能得做一些调整,具体请参考文档。

软件中心:桌面应用程序升级

简单来说,软件中心的主要几个软件都有许多重大更新(毕竟距离上个版本已经有两年的时间了)。最明显的软件更新如下:

  • Google Chrome 33
  • Firefox 28
  • Nautilus 3.10
  • The Gimp – 2.8
  • KDE 4.13 (我觉得是最好的桌面环境)

上面虽然没提,办公套件已经预装了 LibreOffice 4.2.3.3 ,看起来棒极了,不信自己看:

Linux:Ubuntu 14.04 LTS中的主要程序变化的总结
Linux:Ubuntu 14.04 LTS中的主要程序变化的总结

总结

总之,Ubuntu 14.04 LTS 成功的从 12.04 平滑过渡过来了。除非你运气太差,使用了最新版本的 NVidia 显卡(使用 780GTX 或 Titan芯片的 Linux 专用驱动并没有集成到系统中)。

以下的几篇文章中,我将深入了解有关显示器和显卡的更多的技术细节(高分辨率显示器更好),同时对 Mir(Xwindows 桌面替换软件) 做一个早期预览测试(当然是在虚拟机环境中)。如果你还有其他想知道的,在评论栏里留言,我们下周见!


via:https://linuxacademy.com/blog/linux/ubuntu-14-04-lts-major-application-updates/

译者:shipsw 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3131-1.html

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

在本教程中,让我来给你们展示一下如何在VirtualBox中的两个Linux客户机系统间共享一个磁盘。

本教程对于那些想配置一下并玩玩GFS或者集群的人来说还是很有帮助的。

下图是VirtualBox的标准界面:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

第一个客户系统机CentOS1:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

第二个客户机系统CentOS2:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

给第一台机器添加额外的磁盘:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

点击文件->虚拟介质管理器(Control+D)打开虚拟介质管理器界面:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

设置磁盘为可共享(Shareable):

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

在客户机CentOS 2上,你可以添加现有磁盘,该磁盘在CentOS1客户机系统之前已经创建好:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

完成后,你可以重启第二个客户机系统,并检查驱动器是否已经添加:

Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘
Linux:如何在VirtualBox中的Linux客户机系统间共享磁盘

大功告成。


via: http://www.unixmen.com/share-disks-virtualbox-linux-guest-os/

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3137-1.html

Linux:修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题

安装Ubuntu 14.04之后,先要做的几件事情中其中一项是安装Adobe Flash Player。一般来说,如果安装了Ubuntu Restricted Extras,Flash Player应该可以工作而且你应该能够在网上观看在线视频,比如You Tube等网站上。

其实这不是因为Chromium是在Ubuntu 14.04上使用才出现的问题。当你用其他的网页浏览器比如火狐、Chrome时,你可以轻松地播放You Tube等网站视频,但在Chromium中你将会看到Adobe Flash player缺失插件的通知:

Adobe Flash Player is required to display some elements on this page. Install plug-in..

Linux:修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题
Linux:修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题

只有在Chromium中出现flash player问题的原因:

只有在Chromium中发生这个问题的原因是,之前Chromium使用Netscape Plugin API构架来支持Flash,从Ubuntu 14.04开始,Chromium将会停止使用Netscape Plugin API。因此,我们才遇到Chromium的Adobe Flash Player的问题。

那么,为什么这个问题没有发生在其他浏览器上?答案是,因为它们使用 Flash Player 11.2。

修复Chromium上Adobe Flash Player的问题:

修复这个问题,我们应该使用Pepper Flash Player,一个来自Google更安全更稳定的版本的Flash Player。在Ubuntu 14.04的源里有Adobe Flash Player Pepper 安装器。这个安装器会下载Google Chrome,提取出Pepper Flash Player然后设置给Chromium使用。

要在Ubuntu 14.04安装Pepper Flash Player,打开一个终端,使用下面的命令:

sudo apt-get install pepperflashplugin-nonfree
sudo update-pepperflashplugin-nonfree --install

之后重启Chromium。不用重启系统。我希望这个帖子能够帮助你解决Chromium上Adobe Flash Player的问题。欢迎提出任何问题和建议。


via: http://itsfoss.com/fix-flash-player-issue-chromium-in-ubuntu-14-04/

译者:linuhap 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3138-1.html

Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器

当前,完全硬件虚拟化技术(KVM、Xen、Hyper-V 等)能在一个物理主机上很好地运行多个互相独立的操作系统,但这也带来一些问题:性能不佳,资源浪费,系统反应迟缓等。有时候对用户来说,完全的硬件虚拟化并不是最好的选择。

一种替代方案是使用轻量级虚拟化技术 —— 所谓的 LinuX Container 容器 (LXC),它提供的是系统级虚拟化。与跑虚拟机相比,LXC 可以在一个轻量级沙箱容器里面跑多个 Linux 操作系统。当你需要设置一些易于克隆的开发环境、测试环境,或想在安全沙盒里安装应用时,LXC 就非常有用了。

Docker 是一个开源工具,可以让用户方便地布署 Linux Container 容器。Docker 很快变成了 container 技术的非官方标准,从而被 UbuntuRed Hat等众多发行版吸收进去。

Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器
Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器

本教程中我会向你们演示如何在 Ubuntu 14.04 中使用 Docker 来管理 LXC。需要注意的是,本教程的一些内容可能会与其他 Ubuntu 版本下的操作会稍微有些出入。

当前Ubuntu 系统下的 Docker 的安装包只提供64位。如果你想运行32位的 Docker,你需要使用源码编译32位 Docker 工具

安装 Docker

通过 apt-get 安装 Docker 简直是小菜一碟。

$ sudo apt-get install docker.io

如果你不是 root 组的用户,你可以把自己加入到 docker 用户组。下面的命令可以让没有 root 权限的用户使用 Docker:

$ sudo usermod -a -G docker $USER

重新登录,以便让你的用户组权限生效。

下一步是编辑 Docker 配置文件,确定 Docker 可执行文件的路径:

$ sudo vi /etc/default/docker.io
DOCKER="/usr/bin/docker.io"

重启 Docker 服务:

$ sudo service docker.io restart

管理 Docker Container 容器

如果你想在新的 Docker 容器下创建一个新的 Ubuntu 操作系统,你首先需要 pull 一个 Ubuntu 的 Docker 镜像。下面的命令可以通过网络下载 Docker 镜像:

$ docker pull ubuntu

你可以使用下面的命令启动 Docker 里面的 Ubuntu 系统。最后的参数“/bin/bash”表示一旦容器启动,首先会执行简单的 bash。

$ docker run -i -t ubuntu /bin/bash

上面的命令会立即启动 Ubuntu container 容器(这是一个完美的容器!),然后它会提供一个 shell 提示符运行环境给你。现在开始你可以通过这个沙箱环境访问一个完整的 Ubuntu 系统了。

Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器
Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器

输入“exit”命令退出 Docker 容器。

你也可以用下面的命令进入不同的系统。比如 Fedora:

$ docker.io run -i -t fedora /bin/bash

如果系统中还不存在 Fedora Docker 镜像,这个命令会自动下载它,然后启动这个 Fedora 的 Docker 容器。

Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器
Linux:在 Ubuntu 中用 Docker 管理 Linux Container 容器

如果你想要开启指定版本的系统,比如 Ubuntu 13.04,你可以使用下面的命令:

$ docker.io run -i -t ubuntu:13.04 /bin/bash

Container 容器网络设置

Docker 使用 Linux 桥接技术与其他容器通信,以及连通外网。安装完 Docker 后你应该可以看到 docker0 这个网桥,这是 Docker 默认创建的。你创建的每个容器都会通过这个网桥连接到网络。

自定义 Linux 网桥

如果你想自定义网桥,你可以执行以下步骤。你可以在这个网桥后面分配一个子网,并为这个子网分配地址。下面的命令会为 Docker 子网分配 10.0.0.0/24 地址段:

$ sudo apt-get install bridge-utils
$ sudo brctl addbr br0
$ sudo ifconfig br0 10.0.0.1 netmask 255.255.255.0

然后在 /etc/default/docker.io 文件的 DOCKER_OPTS 变量里添加“-b=br0”选项,并重启 Docker 服务:

$ sudo service docker.io restart

到目前为止,任何创建的容器都会连上 br0 网桥,它们的 IP 地址会从 10.0.0.0/24 中自动分配(译注:在10.0.0.2到10.0.0.254之间随机分配)。

其他自定义设置

你可以通过 /etc/default/docker.io 文件的 DOCKER_OPTS 变量设置其他一些属性:

  • “-dns 8.8.8.8 -dns 8.8.4.4”: 为容器指定 DNS 服务器。
  • “-icc=false”: 将容器与其他容器隔离出来

疑难解答

1、当你运行 docker.io 命令时,你可能会遇到以下问题:

dial unix /var/run/docker.sock: no such file or directory

这个错误可能是由于 Docker 后台进程没有启动。检查下 Docker 后台进程的状态,确认它已经处于启动状态:

$ sudo service docker.io status
$ sudo service docker.io start

via: http://xmodulo.com/2014/05/manage-linux-containers-docker-ubuntu.html

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3139-1.html

Linux:如何在终端下截取一个完整长度的网页截图

Linux:如何在终端下截取一个完整长度的网页截图
Linux:如何在终端下截取一个完整长度的网页截图

与其记笔记或是把看到的内容发送给其他人,我们更经常通过截屏来帮助我们记忆。 但是通常情况下,如果一个网页超出了屏幕高度,我们就得用多张截图去截取其全部内容。

对于 Linux,你将会有一个更好的解决方案:使用一个 GNOME 的应用来截取某个链接的整个页面。 这个应用叫做 gnome-web-photo,这篇文章将介绍如何安装和使用它。

在 Ubuntu 和 Debian 的分支下:

$ sudo apt-get install gnome-web-photo

在 Fedora 下:

$ sudo yum install gnome-web-photo

但是对于 CentOS 和其他 RedHat 分支的用户,请注意 gnome-web-photo 依赖 GTK+ 3.0 这个软件包。 也就是说 gnome-web-photo 是和 CentOS/RHEL 6 自带的 GNOME 2 不相兼容的

要为一个网页截图:

$ gnome-web-photo -t 0 --mode=photo http://www.unixmen.com output.png

上面这条命令将为 Unixmen 的主页截取一个完整长度的截图,并保存在当前工作目录下。

输出样例:

Linux:如何在终端下截取一个完整长度的网页截图
Linux:如何在终端下截取一个完整长度的网页截图

-t 这个参数可以设置生成截图的超时时间。-t 0 则表示禁用超时参数。

通过 gnome-web-photo,你可以用下面的命令为一个网页生成一个缩略图:(默认大小是 256×256,但是可以通过 “-s” 来指定缩略图的大小)

$ gnome-web-photo -t 0 -s 128 --mode=thumbnail http://www.unixmen.com output.png

输出样例:

如果你想将网页截取成一个可供打印的多页 PDF 文档,你可以输入下面的命令:

$ gnome-web-photo -t 0 --mode=print http://www.unixmen.com output.pdf

注意这个应用并不支持 .jpg 格式。

这个应用应该对各类用户都有所帮助。我经常对网页进行缩略图和完整长度的截图,希望对你也有所帮助。


via: http://www.unixmen.com/take-full-length-screenshots-websites-via-terminal/

译者:VizV 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3140-1.html

Linux:为什么 Linux 的 htop 命令完胜 top 命令

在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况、内存消耗情况,以及每个进程情况等。但是,你知道吗?还有另外一个命令行工具 ‘htop’,它与传统的 top 命令功能一样,但它有更加强大的功能及能显示更多的信息。这篇文章,我们会用实例来讨论这个 ‘htop’ 命令。

Linux 中的 htop 命令

下面是从 htop 的手册页摘抄下来的相关描述:

它类似于 top 命令,但可以让你在垂直和水平方向上滚动,所以你可以看到系统上运行的所有进程,以及他们完整的命令行。

可以不用输入进程的 PID 就可以对此进程进行相关的操作 (killing, renicing)。

首先明白它的输出

htop 命令以直观的格式来显示信息。下面是 HTOP 的输出快照:

Linux:为什么 Linux 的 htop 命令完胜 top 命令
Linux:为什么 Linux 的 htop 命令完胜 top 命令

如果你观察窗口的左上角部分,你会看到显示的是 CPU 负载、内存消耗及交换空间的实时信息,右上角包含的是任务、线程、平均负载及系统运行时间的信息。

平均负载部分提供了三个数字,这仅仅表示的是过去的5分钟、10分钟和15分钟系统的平均负载而已,在单核的系统中,平均负载为1表示的是百分之百的 CPU 利用率。最后,运行时间 (uptime)标示的数字是从系统启动起到当前的运行总时间。

下面,我们将用例子来进一步讨论这个命令。

1. 用 F2 键编辑配置

htop 命令提供了许多自定义选项,你所要做的就是从主窗口中按下 F2 键。

下面所示的是可用的自定义选项:

Linux:为什么 Linux 的 htop 命令完胜 top 命令
Linux:为什么 Linux 的 htop 命令完胜 top 命令

只需使用箭头键选择和更改特定的设置。

2. 通过 F9 键发送信号

htop 命令可以让你很容易地在 htop 窗口内给一个进程发送任意的信号。按下 F9 键即可。

Linux:为什么 Linux 的 htop 命令完胜 top 命令
Linux:为什么 Linux 的 htop 命令完胜 top 命令

如你所见,窗口的左边部分列出的是所有可用的信号,右边部分列出的是进程。只要选中信号,并选择一个进程,然后按下 enter 键,选中的信号就会发送到此进程。

3. 显示进程的树状视图

htop 命令也提供了进程的树状视图查看功能。按下 F5 键切换。

下面是 htop 显示树形视图信息的例子:

Linux:为什么 Linux 的 htop 命令完胜 top 命令
Linux:为什么 Linux 的 htop 命令完胜 top 命令

要退出树状视图模式,请再一次按下 F5 键。

4. 通过 F3 键搜索进程

htop 命令提供了易用的方式来搜索进程。按下 F3 键,一个文本框就会出现在窗口底部。

下面是例子:

Linux:为什么 Linux 的 htop 命令完胜 top 命令
Linux:为什么 Linux 的 htop 命令完胜 top 命令

如您所见,一条名为‘搜索’的文本提示框出现在窗口底部,您可以在这儿输入进程的名字然后回车搜索。如果找到,它会在列出的进程列表里高亮选中此进程。

5. 通过空格键来设置颜色标注进程条目

在系统中运行着的实时进程视图中,要追踪某个进程是个大问题。因为整个列表在不停的刷新着,进程的排列顺序也在变动着。为了这个问题, htop 提供了一个很简单的解决方案:颜色标注。是的,你可以标注一个进程条目,它会以不同的颜色显示,因此要追踪它就变得容易了。

要标注某个进程条目,需要做的就是选中此条目,然后按下‘空格’键。例如,在下面的截图示例中,我已经颜色标注了三个进程条目:

Linux:为什么 Linux 的 htop 命令完胜 top 命令
Linux:为什么 Linux 的 htop 命令完胜 top 命令

所以通过此方法,你就能很轻松地追踪想查看的进程。

6. 命令行选项

除了上面介绍的一些热键,htop 还提供了很有用的命令行选项。下面是其中一部分:

  • -s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
  • -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。
  • -d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。

via: http://linoxide.com/linux-command/linux-htop-command/

译者:runningwater 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3141-1.html

Linux:试试Linux下的ip命令,ifconfig已经过时了

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。

Net tools vs Iproute2

要安装ip,请点击这里下载iproute2套装工具 。不过,大多数Linux发行版已经预装了iproute2工具。

你也可以使用git命令来下载最新源代码来编译:

$ git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/shemminger/iproute2.git

iproute2 git clone

设置和删除Ip地址

要给你的机器设置一个IP地址,可以使用下列ip命令:

$ sudo ip addr add 192.168.0.193/24 dev wlan0

请注意IP地址要有一个后缀,比如/24。这种用法用于在无类域内路由选择(CIDR)中来显示所用的子网掩码。在这个例子中,子网掩码是255.255.255.0。

在你按照上述方式设置好IP地址后,需要查看是否已经生效。

$ ip addr show wlan0

set ip address

你也可以使用相同的方式来删除IP地址,只需用del代替add。

$ sudo ip addr del 192.168.0.193/24 dev wlan0

delete ip address

列出路由表条目

ip命令的路由对象的参数还可以帮助你查看网络中的路由数据,并设置你的路由表。第一个条目是默认的路由条目,你可以随意改动它。

在这个例子中,有几个路由条目。这个结果显示有几个设备通过不同的网络接口连接起来。它们包括WIFI、以太网和一个点对点连接。

$ ip route show

ip route show

假设现在你有一个IP地址,你需要知道路由包从哪里来。可以使用下面的路由选项(译注:列出了路由所使用的接口等):

$ ip route get 10.42.0.47

ip route get

更改默认路由

要更改默认路由,使用下面ip命令:

$ sudo ip route add default via 192.168.0.196

default route

显示网络统计数据

使用ip命令还可以显示不同网络接口的统计数据。

ip statistics all interfaces

当你需要获取一个特定网络接口的信息时,在网络接口名字后面添加选项ls即可。使用多个选项-s会给你这个特定接口更详细的信息。特别是在排除网络连接故障时,这会非常有用。

$ ip -s -s link ls p2p1

ip link statistics

ARP条目

地址解析协议(ARP)用于将一个IP地址转换成它对应的物理地址,也就是通常所说的MAC地址。使用ip命令的neigh或者neighbour选项,你可以查看接入你所在的局域网的设备的MAC地址。

$ ip neighbour

ip neighbour

监控netlink消息

也可以使用ip命令查看netlink消息。monitor选项允许你查看网络设备的状态。比如,所在局域网的一台电脑根据它的状态可以被分类成REACHABLE或者STALE。使用下面的命令:

$ ip monitor all

ip monitor all

激活和停止网络接口

你可以使用ip命令的up和down选项来激某个特定的接口,就像ifconfig的用法一样。

在这个例子中,当ppp0接口被激活和在它被停止和再次激活之后,你可以看到相应的路由表条目。这个接口可能是wlan0或者eth0。将ppp0更改为你可用的任意接口即可。

$ sudo ip link set ppp0 down
$ sudo ip link set ppp0 up

ip link set up and down

获取帮助

当你陷入困境,不知道某一个特定的选项怎么用的时候,你可以使用help选项。man页面并不会提供许多关于如何使用ip选项的信息,因此这里就是获取帮助的地方。

比如,想知道关于route选项更多的信息:

$ ip route help

ip route help

小结

对于网络管理员们和所有的Linux使用者们,ip命令是必备工具。是时候抛弃ifconfig命令了,特别是当你写脚本时。


via: http://linoxide.com/linux-command/use-ip-command-linux/

译者:KayGuoWhu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3144-1.html

Linux:如何在Ubuntu 14.04中默认关闭蓝牙

Linux:如何在Ubuntu 14.04中默认关闭蓝牙
Linux:如何在Ubuntu 14.04中默认关闭蓝牙

我最近新买了一台Dell Inspiron 7437,我第一时间做的一些事情之一就是让预装的Windows 8和Ubuntu 14.04双启动。我旧的笔记本没有蓝牙,听起来很奇怪但事实就是这样。这就是我为何从来没有注意到蓝牙总是在Ubuntu的每次启动时自动开启

从节能和安全目的来说这都不是件好事。而且,我几乎不使用蓝牙,所以我为何要让蓝牙默认启用?尽管在Ubuntu中只要一次点击就能关闭蓝牙,但每次登录都要这样重复地做一遍真是件令人泄气的任务。更简单的解决方案是在Ubuntu启动的时候关闭蓝牙

在今天的帖子中,我将与您分享如何在每次启动是默认禁用蓝牙。

在Ubuntu 14.04中默认关闭蓝牙:

打开一个终端并使用以下命令来安装gksu(如果你还没有安装它的话)(译注:如果你已经有了gksu,那么可以使用它;如果还没有,也不想安装,那你使用sudo一样可以)。

sudo apt-get install gksu

gksu是用来在以root权限运行程序时输入密码的程序。当你已经安装了gksu之后,使用下列命令:

gksudo gedit /etc/rc.local

它会打开rc.local这个文件。只需在文件中的exit 0之前加入下列命令:

rfkill block bluetooth

就这样,你的rc.local文件看起来就像这样:

Linux:如何在Ubuntu 14.04中默认关闭蓝牙
Linux:如何在Ubuntu 14.04中默认关闭蓝牙

这就是全部步骤了。重新启动电脑,您应该能够看到蓝牙已经被禁用了。当然您需要使用它的时候可以从指示器面板的蓝牙标志打开它。

小说明:

这一小部分只是对我们做了什么进行简短的解释。您并不一定要阅读完这一部分。您可以直接跳到评论部分留下您的建议和感谢 🙂

rc.local文件是用来记录在系统启动的时候运行的各种shell命令的。这些命令是用户定义的。在一个新的安装中,rc.local文件中没有任何命令。我们做的就是在这里面加入命令 rfkill block bluetoothrfkill是一个用来查询各种开关,按钮和底层系统接口状态的工具。我们在rc.local中使用这个命令来在每次启动的时候软关闭(译注:与其对应的是硬关闭,指通过硬件开关来关闭)蓝牙。我希望这些能把原理解释的清楚一点。


via: http://itsfoss.com/turn-off-bluetooth-by-default-in-ubuntu-14-04/

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3145-1.html

Linux:Linux上有哪些好的终端模拟器?

一个好的终端模拟器是一个选择Linux而不是Windows或Mac的充分理由,任何Linux的资深用户都会同意这点。通过使用shell,用户可以完成在图形环境下不可能或者太重复的任务。但是终端模拟器的选择是非常重要的,因为它会成为你使用最多的程序。我会尝试列出在Linux上好的终端模拟器的清单,从经典的到奇特的,但是它们都是有效率且独特的。

如果你认为还有好的终端程序在这里没有提到,请在评论区让我们知道。这里列出了许多,大多数是值得你了解一下。

1. Gnome-terminal

Linux:Linux上有哪些好的终端模拟器?
Linux:Linux上有哪些好的终端模拟器?

让我们先从“经典”终端开始,对于Gnome而言,Gnome-terminal和Gnome一样经典。它支持多用户配置,标签,文本大小调整,背景转换和高度定制。如它名字暗示的那样,它适用于Gnome环境。

2. Konsole

Linux:Linux上有哪些好的终端模拟器?
Linux:Linux上有哪些好的终端模拟器?

同样大名鼎鼎,Konsole在KDE环境下等同于Gnome-terminal。Konsole额外支持的一点是分割视图和书签目录。

3. (Xfce) terminal

Linux:Linux上有哪些好的终端模拟器?
Linux:Linux上有哪些好的终端模拟器?

Xfce用户同样有他们的Xfce4终端。这个项目的目的是制造一个在外观上相似Gnome-terminal的产品,但是更少占用资源需求。它是高端定制化的,虽然没有用户配置功能或者透明背景。

4. LXTerminal

Linux:Linux上有哪些好的终端模拟器?
Linux:Linux上有哪些好的终端模拟器?

其目标是为了成为桌面环境下的最有名的终端,LXTerminal是为LXDE环境设计的。如你所能想到的,它甚至比xfce-terminal更轻量快速,去除了复杂的自定义和高级选项,只保持了标签功能。

5. Terminator

Linux:Linux上有哪些好的终端模拟器?
Linux:Linux上有哪些好的终端模拟器?

现在让我们看看终端模拟器中的劳斯莱斯,Terminator是这些终端里面功能最完备的一款,它包括了标签、水平和垂直分割视图、截屏、用户配置、插件、布局管理。可能还有一些你永远都用不到的选项。它的缺点是太大和大量的资源消耗,这些就是你付出的代价。

6. Tilda

Linux:Linux上有哪些好的终端模拟器?
Linux:Linux上有哪些好的终端模拟器?

这里还有一款完全不同的一款终端,它称为“下拉”式。如果你喜欢你的终端总是一键可达,也许你会喜欢下面提到的三个特点。首先,Tilda是一个典型的下拉式终端;它不依赖于环境并且非常轻量;你可以设置透明度或者甚至是不同的背景,并且选择出现在屏幕的那个边。除去这些,不要期待太复杂的功能,比如标签或者分割视图。Tilda只做一件事:在你需要的时候快速显示出来。

来源:https://linux.cn/article-3150-1.html

Linux:Collectl: Linux 性能监控的全能冠军

对于一个 Linux 系统管理员来说确保自己管理的系统处于一个良好的状态是其首要责任。Linux 系统管理员可以找到有很多工具来帮助自己监控和显示系统中的进程,例如 top 和 htop ,但是这些工具都不能与 collectl 相媲美。

Linux:Collectl: Linux 性能监控的全能冠军
Linux:Collectl: Linux 性能监控的全能冠军

collectl是一款非常优秀并且有着丰富的命令行功能的实用程序,你可以用它来采集描述当前系统状态的性能数据。不同于大多数其它的系统监控工具,collectl 并非仅局限于有限的系统度量,相反,它可以收集许多不同类型系统资源的相关信息,如 cpu 、disk、memory 、network 、sockets 、 tcp 、inodes 、infiniband 、 lustre 、memory、nfs、processes、quadrics、slabs和buddyinfo等。

使用 collectl 的另一个好处就是它可以替代那些特定用途的工具如: top、ps、iotop 等等其它工具。那么 collectl 有什么特性而使其成为一个有用的工具呢?

经过许多研究后,我总结了 collectl 的命令行功能的一些非常重要的特性。

Collectl 特性

  • 可以交互式地运行或作为一个守护进程,或同时二者兼备地运行。

  • 可以以多种格式显示输出。

  • 可以监控几乎所有的子系统。

  • 可以替代许多工具如 ps、top、iotop、vmstat。

  • 可以记录并回放捕获的数据。

  • 可以将数据导出成多种数据格式。(这在你想用外部工具分析数据时非常有用)

  • 可以作为一个服务来监控远程机或者整个服务器集群。

  • 可以在终端显示数据,写入数据到文件或者一个套接字。

如何在Linux上安装collectl

collectl可以在所有的 Linux 发行版上运行,唯一需要的就是 perl 语言,所以在安装 collectl 之前,一定要确保你的电脑上已经安装了Perl

对于Debian/Ubuntu/Linux Mint

下面的命令可以用来在以 Debian 为基础的设备如 Ubuntu 上安装 collectl。

$ sudo apt-get install collectl

对于RHEL/CentOS/Fedora

如果你正在使用基于红帽的发行版,你可以用 yum 命令轻松获取它。

# yum install collectl

一些关于collectl的实例

collectl 工具安装完成之后,你可以轻松地在终端运行它,你甚至不需要指定任何选项。下面的命令将会以简短易读的格式显示cpu、硬盘和网络信息。

# collectl
waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut
  13   5   790   1322      0      0     92      7      4     13      0       5
  10   2   719   1186      0      0      0      0      3      9      0       4
  12   0   753   1188      0      0     52      3      2      5      0       6
  13   2   733   1063      0      0      0      0      1      1      0       1
  25   2   834   1375      0      0      0      0      1      1      0       1
  28   2   870   1424      0      0     36      7      1      1      0       1
  19   3   949   2271      0      0     44      3      1      1      0       1
  17   2   809   1384      0      0      0      0      1      6      0       6
  16   2   732   1348      0      0      0      0      1      1      0       1
  22   4   993   1615      0      0     56      3      1      2      0       3

正如上面终端上所显示的,我们很容易观察该命令输出的系统度量值,因为它每次以一行显示。

不加任何参数执行 collectl 会显示下面子系统的信息

  • cpu
  • 磁盘
  • 网络

提示:在这里,一个子系统就是每一种可以测量的系统资源。

你也可以显示除slabs以外各个子系统的统计数据,这要结合下面的 -all 选项来实现。

# collectl --all
waiting for 1 second sample...
#
#cpu sys inter  ctxsw Cpu0 Cpu1 Free Buff Cach Inac Slab  Map   Fragments KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut   IP  Tcp  Udp Icmp  Tcp  Udp  Raw Frag Handle Inodes  Reads Writes Meta Comm
  16   3   817   1542  430  390   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0
  11   1   745   1324  316  426   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      0      3      0       2    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0
  15   2   793   1683  371  424   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      1      1      0       1    0    0    0    0  622    0    0    0   8160 240829      0      0    0    0
  16   2   872   1875  427  446   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0
  24   2   842   1383  473  368   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0    168      6      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0
  27   3   844   1099  478  365   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      1      6      1       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0
  26   5   823   1238  396  428   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      2     11      3       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0
  15   1   753   1276  361  391   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     40      3      1      2      0       3    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0

但是,你如何用它来监控 cpu 的使用情况呢? ‘-s’ 选项可以用来控制哪个子系统的数据需要收集和回放。

例如下面的命令可以用来对cpu使用情况进行一个总结。

# collectl -sc
waiting for 1 second sample...
#
#cpu sys inter  ctxsw
  15   2   749   1155
  16   3   772   1445
  14   2   793   1247
  27   4   887   1292
  24   1   796   1258
  16   1   743   1113
  15   1   743   1179
  14   1   706   1078
  15   1   764   1268

当你将这个命令与“scdn”结合时会发生什么呢?学习命令行工具最好的方式就是多加练习,所以在终端运行下面的命令看看会发生什么吧。

# collectl -scdn
waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut
  25   4   943   3333      0      0      0      0      1      1      0       2
  27   3   825   2910      0      0      0      0      1      1      0       1
  27   5   886   2531      0      0      0      0      0      0      0       1
  20   4   872   2406      0      0      0      0      1      1      0       1
  26   1   854   2091      0      0     20      2      1      1      0       1
  39   4  1004   3398      0      0      0      0      2      8      3       6
  41   6   955   2464      0      0     40      3      1      2      0       3
  25   7   890   1609      0      0      0      0      1      1      0       1
  16   2   814   1165      0      0    796     43      2      2      0       2
  14   1   779   1383      0      0     48      6      1      1      0       1
  11   2   795   1285      0      0      0      0      2     14      1      14

你可以很容易就明白默认选项是“cdn”,它代表cpu、硬盘和网络数据。运行带这个选项的 collectl 命令的输出和“collectl -scn”的输出一样。

如果你想采集内存的数据,用下面的命令。

# collectl -sm
waiting for 1 second sample...
#
#Free Buff Cach Inac Slab  Map
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G
   1G 177M   1G 684M 193M   1G

当你想要进一步了解内存使用信息、空闲的内存或者与你系统性能有关的重要资料时,上面的输出将是非常有用的。

如果想搜集一点儿 tcp 的数据呢?使用下面的命令来实现吧。

# collectl -st
waiting for 1 second sample...
#
#  IP  Tcp  Udp Icmp
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0
    0    0    0    0

当你熟练到一定程度时,你就可以很轻松地得到你想要的结果了。例如你可以将关于 tcp 的“t”选项和关于 cpu 的“c”选项组合到一起。下面的命令就是如此。

# collectl -stc
waiting for 1 second sample...
#
#cpu sys inter  ctxsw   IP  Tcp  Udp Icmp
  23   8   961   3136    0    0    0    0
  24   5   916   3662    0    0    0    0
  21   8   848   2408    0    0    0    0
  30  10   916   2674    0    0    0    0
  38   3   826   1752    0    0    0    0
  31   3   820   1408    0    0    0    0
  15   5   781   1335    0    0    0    0
  17   3   802   1314    0    0    0    0
  17   3   755   1218    0    0    0    0
  14   2   788   1321    0    0    0    0

对于我们普通大众来说记住这些选项很困难,所以在这里,我整理出了一个列表来总结这个工具支持的选项。

  • b – buddy info (内存碎片)
  • c – CPU
  • d – Disk
  • f – NFS V3 Data
  • i – Inode and File System
  • j – Interrupts
  • l – Lustre
  • m – Memory
  • n – Networks
  • s – Sockets
  • t – TCP
  • x – Interconnect
  • y – Slabs (系统对象缓存)

对于一个系统管理员或者一个 Linux 用户来说很重要的一种数据就是硬盘的使用情况。下面的命令可以帮你监控硬盘使用情况。

# collectl -sd
waiting for 1 second sample...
#
#KBRead  Reads KBWrit Writes
      0      0      0      0
      0      0      0      0
      0      0     92      7
      0      0      0      0
      0      0     36      3
      0      0      0      0
      0      0      0      0
      0      0    100      7
      0      0      0      0

你也可以使用“-sD”选项来采集单个硬盘的数据,不过你必须知道这就不会显示全部硬盘的信息。

# collectl -sD
waiting for 1 second sample...
# DISK STATISTICS (/sec)
#           Pct
#Name       KBytes Merged  IOs Size  KBytes Merged  IOs Size  RWSize  QLen  Wait SvcTim Util
sda              0      0    0    0      52     11    2   26      26     1     8      8    1
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      24      0    2   12      12     0     0      0    0
sda              0      0    0    0     152      0    4   38      38     0     0      0    0
sda              0      0    0    0     192     45    3   64      64     1    20     20    5
sda              0      0    0    0     204      0    2  102     102     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0     116     26    3   39      38     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      32      5    3   11      10     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0

你也可以使用其它详细的子系统来采集详细的数据。下面是详细子系统的一个列表。

  • C – CPU
  • D – Disk
  • E – Environmental data (fan, power, temp), via ipmitool
  • F – NFS Data
  • J – Interrupts
  • L – Lustre OST detail OR client Filesystem detail
  • N – Networks
  • T – 65 TCP counters only available in plot format
  • X – Interconnect
  • Y – Slabs (system object caches)
  • Z – Processes

collectl 工具中有许多选项,但是仅用一篇文章来介绍肯定是介绍不过来的。然而如果将它当作 topps 工具来使用还是值得一提的。

很容易将 collectl 当作 top 来使用,只要在 Linux 系统的终端运行下面的命令你就会看到和 top 工具类似的输出。

# collectl --top
# TOP PROCESSES sorted by time (counters are /sec) 13:11:02
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
^COuch!tecmint  20     1   40 R    1G  626M  0  0.01  0.14  15  28:48.24    0    0    0  109 /usr/lib/firefox/firefox
 3403  tecmint  20     1   40 R    1G  626M  1  0.00  0.20  20  28:48.44    0    0    0  600 /usr/lib/firefox/firefox
 5851  tecmint  20  4666    0 R   17M   13M  0  0.02  0.06   8  00:01.28    0    0    0    0 /usr/bin/perl
 1682  root     20  1666    2 R  211M   55M  1  0.02  0.01   3  03:10.24    0    0    0   95 /usr/bin/X
 3454  tecmint  20  3403    8 S  216M   45M  1  0.01  0.02   3  01:23.32    0    0    0    0 /usr/lib/firefox/plugin-container
 4658  tecmint  20  4657    3 S  207M   17M  1  0.00  0.02   2  00:08.23    0    0    0  142 gnome-terminal
 2890  tecmint  20  2571    3 S  340M   68M  0  0.00  0.01   1  01:19.95    0    0    0    0 compiz
 3521  tecmint  20     1   24 S  710M  148M  1  0.01  0.00   1  01:47.84    0    0    0    0 skype
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh
   10  root     20     2    0 R     0     0  0  0.00  0.00   0  00:02.22    0    0    0    0 rcu_sched
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset

最后,当然不是说这不重要,我们在终端运行下面的命令就可以将 collectl 用作 ps 工具了。 你可以得到关于你系统进程的信息,这和在终端运行“ps”命令是一样的。

# collectl -c1 -sZ -i:1
waiting for 1 second sample...
### RECORD    1 >>> tecmint-vgn-z13gn <<< (1397979716.001) (Sun Apr 20 13:11:56 2014) ###
# PROCESS SUMMARY (counters are /sec)
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh
   10  root     20     2    0 S     0     0  0  0.00  0.00   0  00:02.24    0    0    0    0 rcu_sched
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset
   18  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 khelper
   19  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kdevtmpfs
   20  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 netns
   21  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 bdi-default
   22  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kintegrityd

我确信许多系统管理员将会喜欢这个工具并且在充分使用它后会感受到它的强大。如果你想增进你对 collectl 的了解,从而达到新的层面,你可以去参阅 collectl 的 man 手册并勤加练习。

在你的终端键入下面的命令开始阅读吧。

# man collectl

参考链接


via: http://www.tecmint.com/linux-performance-monitoring-with-collectl-tool/

译者:Linchenguang 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3154-1.html

Linux:如何在Linux上使用命令行管理密码

在基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码。有各种各样的在线或离线服务或者软件工具用于完成此类事情,而这些工具因复杂程度、用户界面或者目标环境(如企业或终端用户)的不同而各不相同。例如,有一些是为终端用户开发基于图形化的密码管理器,如KeePass(X)

Linux:如何在Linux上使用命令行管理密码
Linux:如何在Linux上使用命令行管理密码

对于那些不想要依赖图形化进行密码管理的用户,笔者将会讲述如何在命令行下使用 pass来管理密码,这是一个简单的用于命令行管理密码的工具

该密码工具实际上是一个shell脚本编写的前端,其中调用了几个其它工具(如gpg,pwgen,git,xsel)来使用OpenGPG管理用户的密码信息。各个密码使用gpg工具进行加密,并存储到本地密码仓库中。密码信息可以通过终端或者自清除的剪贴板工具使用。

该密码工具相当灵活,并且使用起来及其简单。你可以将每个密码信息存储到一个OpenGPG保护的普通文本文件,并且将不同的密码文件分组多个类目中。它支持bash自动补全特性,因此可以很方便地使用TAB键来补全命令或者很长的密码名称。

在Linux上安装pass

在Debian,Ubuntu或者Linux Mint上安装pass:

$ sudo apt-get install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在Fedora上安装pass:

$ sudo yum install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在CentOS上安装pass,首先启用EPEL仓库,然后执行以下命令:

$ sudo yum install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在Archlinux上安装pass:

$ sudo pac -S pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

初始化本地密码仓库

在使用密码工具之前,你需要执行一次初始化步骤,该步骤包括创建一个GPG密钥对(如果你还没有)以及一个本地密码仓库。

首先,通过以下步骤创建一个GPG密钥对(即:公钥/私钥)。如果已经创建了自己的GPG密钥对,可以跳过此步骤。

$ gpg --gen-key

执行该步骤,会询问你如下问题。如果你不确定,可以选择接受默认回答。作为密钥生成部分,你将要为你的密钥创建一个加密口令,这个口令实际上是你访问存储在本地密码仓库中的任何密码信息时的主密码。成功创建密钥对后,创建的密钥对会存储在~/.gnupg目录中。

Linux:如何在Linux上使用命令行管理密码
Linux:如何在Linux上使用命令行管理密码

接下来,运行以下命令来初始化本地密码仓库。下面的,输入之前创建密钥对时的关联电子邮件地址。

$ pass init 

该命令会在~/.password-store目录中创建一个密码仓库。

在终端使用pass管理密码

插入新密码信息

要将新的密码信息插入到本地密码仓库中,请遵循以下命令格式:

$ pass insert 

是你定义的专有名称,并且可以分级(如 “finance/tdbank”, “online/gmail.com”)。在这种情况下,密码信息可以存储到~/.password-store目录下对应的子目录中。

如果你想要分多行插入密码信息,请像以下命令一样使用”-m”选项。以你自己喜欢的任何格式来输入密码信息,然后按Ctrl+D来结束。

$ pass insert  -m
Linux:如何在Linux上使用命令行管理密码
Linux:如何在Linux上使用命令行管理密码

查看所有密码名称列表

要查看所有存储的密码名称列表,只需输入”pass”命令:

$ pass
Linux:如何在Linux上使用命令行管理密码
Linux:如何在Linux上使用命令行管理密码

从密码仓库中取回密码信息

要访问特定密码列表中的内容,只需使用以下命令:

$ pass 

例如:

$ pass email/gmail.com

会要求你输入密码口令来解锁密钥。

如果你想要将密码复制到剪贴板,而不是显示到终端屏幕上,使用以下命令:

$ pass -c email/gmail.com

当密码被复制到剪贴板,剪贴板在45秒后会被自动清空。

在密码仓库中生成并存储新密码

使用pass命令,你也可以生成一个新的随机密码,该密码可用于任何目的。pass工具将会使用pwgen工具来生成一个好的随机密码。你可以指定密码的长度,或者生成带或不带符号的密码。

例如,要生成一个具有10个字符不带符号的密码,并将它存储到 “email/new_service.com”列表中:

$ pass generate email/new_service.com 10 -n

移除密码信息

要移除现存的密码信息是很容易的:

$ pass rm email/gmail.com

小结一下,pass是及其灵活,便于携带,并且更为重要的是,易于使用。对于正在寻找能简单而行之有效地、安全地、并且不依赖图形化管理任何私人信息的工具的人,笔者强烈推荐pass。


via: http://xmodulo.com/2014/05/manage-passwords-command-line-linux.html

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3155-1.html

Linux:详解Linux与Unix系统的区别与联系

区别和联系

Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。

Linux:详解Linux与Unix系统的区别与联系
Linux:详解Linux与Unix系统的区别与联系

Linux 的源头要追溯到最古老的UNIX。1969年,Bell实验室的Ken Thompson开始利用一台闲置的 PDP-7计算机开发了一种多用户,多任务操作系统。很快,Dennis Richie加入了这个项目,在他们共同努力下诞生了最早的UNIX。Richie受一个更早的项目——MULTICS的启发,将此操作系统命名为 Unix。早期UNIX是用汇编语言编写的,但其第三个版本用一种崭新的编程语言C重新设计了。C是Richie设计出来并用于编写操作系统的程序语言。 通过这次重新编写,Unix得以移植到更为强大的 DEC PDP-11/45与11/70计算机上运行。后来发生的一切,正如他们所说,已经成为历史。Unix从实验室走出来并成为了操作系统的主流,现在几乎每 个主要的计算机厂商都有其自有版本的Unix.

Linux起源于一个学生的简单需求。Linus Torvalds——Linux的作者与主要维护者,在其上大学时所买得起的唯一软件是Minix。 Minix是一个类似Unix,被广泛用来辅助教学的简单操作系统。Linus 对Minix不是很满意,于是决定自己编写软件。他以学生时代熟悉的Unix作为原型, 在一台Intel 386 PC上开始了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网与其他同学共享,主要用于学术领域。有人看到了这个软件并开始分发。每当出现新问题时,有人会立刻找到解决办法并加入其中,很快的, Linux成为了一个操作系统。值得注意的是Linux并没有包括Unix源码。它是按照公开的POSIX标准重新编写的。Linux大量使用了由麻省剑桥自由软件基金的GNU软件,同时Linux自身也是用它们构造而成。

另外两大区别:

1) UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.

2) UNIX是商业软件,而Linux是自由软件,免费、公开源代码的.

UNIX(5万美圆)而Linux免费

[历史]

Unix的历史久于linux. Linux的思想源于Unix。

[产品]

  • unix和linux都是操作系统的名称.但unix这四个字母除了是操作系统名称外,还作为商标归SCO所有
  • Linux商业化的有RedHat Linux 、SuSe Linux、slakeware Linux、国内的红旗等,还有Turbo Linux
  • Unix主要有Sun 的Solaris、IBM的AIX, HP的HP-UX,以及x86平台的的SCO Unix/Unixware

[其他区别]

  • linux的核心是免费的,自由使用的,核心源代码是开放的.而unix的核心并不公开;
  • 在对硬件的要求上,linux比unix要低,没有unix那么苛刻.在安装上linux比unix容易掌握.
  • 在使用上,linux相对没有unix那么复杂.

Unix 多数是硬件厂商针对自己的硬件平台的操作系统,主要与CPU等有关,如Sun 的Solaris作为商用,定位在其使用SPARC/SPARCII的CPU的工作站及服务器上,当然Solaris也有x86的版本,而Linux也有其于RISC的版本。但确切的讲,拿RISC上的Unix与x86上的Linux进行比较不太合适。至于价格,个人使用的Linux基本上算是免费的,不同的Linux发行厂商针对企业级应用在基本的系统上有些优化,如RedHat的Enterprise产品,这些产品包括支持服务是比较贵的。像 IBM/HP/SUN的Unix,因为主要是针对其硬件平台,所以操作系统通常在设备价格中。(没有人单独去买一个Unix操作系统的)

  • 在功能上,linux没有unix那么全面,但基本上对个人用户和小型应用来说是绰绰有余.

通常情况下,如果你有机会使用到Unix环境,比如银行、电信部门,那一般都是固定机型的Unix。比如电信里SUN的居多,民航里HP的居多,银行里 IBM的居多。学习中,不同的Unix命令集有些不同,要注意。至于学习,我看还是linux比较好学一点,而且现在喜欢和鼓捣linux的人也越来越多,各种有关linux的资料也很多.如果是自己想学习,那Linux或是BSD系统是不错的选择。一台x86的机器就可以。

  • 在应用上,除非是大型网站,一般企业或个人,使用Linux即可.

UNIX是一个功能强大、性能全面的多用户、多任务操作系统,可以应用从巨型计算机到普通PC机等多种不同的平台上,是应用面最广、影响力最大的操作系统。

Linux 是一种外观和性能与UNIX相同或更好的操作系统,但,Linux不源于任何版本的UNIX的源代码,并不是UNIX,而是一个类似于UNIX的产品。 Linux产品成功的模仿了UNIX系统和功能,具体讲Linux是一套兼容于System V以及BSD UNIX的操作系统,对于System V来说,目前把软件程序源代码拿到Linux底下重新编译之后就可以运行,而对于BSD UNIX来说它的可执行文件可以直接在Linux环境下运行。

一般来说,Linux是一套遵从POSIX(可移植操作系统环境)规范的一个操作系统,它能够在普通PC计算机上实现全部的UNIX特性,具有多任务、多用 户的能力。Linux受到广大计算机爱好者的喜爱的另一个主要原因是,它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的 人都可以从Linux中获益。

  • 在网络管理能力和安全方面,使用过Linux的人都承认Linux与UNIX很相似。

UNIX系统一直被用做高端应用或服务器系统,因此拥有一套完善的网络管理机制和规则, Linux沿用了这些出色的规则,使网络的可配置能力很强,为系统管理提供了极大的灵活性。 

 

转载自:http://www.php100.com/html/program/linux/2013/0904/2933.html

Linux:如何使用netstat命令验证DDOS入侵

一般来说,服务器非常慢可能原因是多方面的,有可能是配置错误,脚本错误或者是一些奇诡的硬件。当然也有可能是有人对你的服务器进行 Dos (拒绝服务攻击)或者 DDOS (分布式拒绝服务攻击)。

Dos攻击或者DDos攻击目的是使服务器或者网络资源耗尽,使其他用户无法使用。一般来说,这种攻击主要针对重要的网站或服务,比如银行、信用卡支付网关甚至是根域名服务器。Dos攻击主要通过强制目标主机重启或大量消耗其主机资源,使得目标主机无法提供服务或者妨害主机和用户之间的通信的手段,使得主机无法提供正常的服务的。

Linux:如何使用netstat命令验证DDOS入侵
Linux:如何使用netstat命令验证DDOS入侵

在本文中你将知道如何在终端中使用netstat命令判断服务器是否遭受Dos攻击。

netstat命令的用户手册描述其作用是用来显示网络连接、路由表、接口统计、伪连接和组播成员的。

一些例子和解释

netstat -na

该命令将显示所有活动的网络连接。

netstat -an | grep :80 | sort

显示所有80端口的网络连接并排序。这里的80端口是http端口,所以可以用来监控web服务。如果看到同一个IP有大量连接的话就可以判定单点流量攻击了。

netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。

netstat -n -p | grep SYN_REC | sort -u

列出所有连接过的IP地址。

netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN_REC连接节点的IP地址。

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。

netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。

netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。

netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

列出所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求。

如何减少DOS攻击

一旦你获得攻击服务器的IP地址你就可以使用以下命令拒绝此IP的所有连接。

iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT

注意,你需要将 $IPADRESS 替换成需要拒绝连接的IP地址。

执行完以上命令后,使用以下命令结束所有的httpd连接以清理系统。

killall -KILL httpd

然后执行以下命令重启httpd服务。

service httpd start           #RedHat 系统
/etc/init/d/apache2 restart   #Debian 系统

via: http://linuxaria.com/howto/how-to-verify-ddos-attack-with-netstat-command-on-linux-terminal

译者:shipsw 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3160-1.html

Linux:磁盘分区对齐详解与配置 – Linux篇

转自:EMC中文支持论坛

介绍

     许多系统管理员可能不曾听过”磁盘分区对齐“之说,甚至一些有经验的存储管理员对分区对齐也不甚了解。磁盘分区不对齐现象是什么,为什么会造成比较严重的性能下降?相反,配置正确的分区起始位置(Offset)设置会使存储系统发挥更大的性能潜力。文章就磁盘分区对齐进行的介绍,并且给出了在Windows平台上如何配置的方法。

什么是磁盘分区对齐(Disk Alignment、Partition Alignment)

     Windows的磁盘有一种结构叫做Master Boot Record(MBR), 它的默认大小为63个Block(每个大小为512字节)。它的存在使得磁盘的初始位置和的磁盘上第一个分区的初始位置有63个Block的错位。如果磁盘的单个Track大于63个Block的话。这就会导致默认的初始的位置是从第64个开始。使文件系统的中的Track和位于磁盘中的两个Track之上。这种不对齐现象会导致存储系统的性能下降,原因是单个I/O请求会跨越多个磁盘上的Track,从而导致存储系统的额外性能开销。特别是对于一些随机I/O比较较大的应用程序,影响将更大。

     而对于Windows 2003以后支持的GPT Disk,也会存在磁盘分区不对齐的现象,但是结构有所不同。如图1所示(图中单位为Block,512字节),所有的分区由1MB大小(2048 Block)构成,第一个分区从LBA 34开始,即17KB大小位置。这也就意味着所有的分区会有17KB的不对齐的情况发生。同样会导致I/O读写性能影响。

A-1.jpg

存储系统的磁道区域与Linux分区对齐问题

     出于最大化性能需求,任何到后端存储阵列的I/O需要通过配置适当的结构化,从而避免任何I/O操作跨界现象的发生。如果I/O操作跨越多个界限,会带来额外的资源开销从而造成性能下降。所以,为了避免因为分区不对齐所造成的性能影响。需要使用工fdisk或者parted工具创建和对齐分区。

     如何选择一个正确的磁盘分区offset值,基本上EMC和其他厂商建议的值都是“64KB”。为什么要选择64KB这个值呢,这里解释一下。首先讲一下一个叫做物理磁道区域的概念。因为对于不同类型的保护级别,也可以说叫Raid和磁盘类型,这个区域的范围有所不同的。我们举两个个例子:

     Symmetrix缓存中的磁道区域单位大小为一个Track,即64个Block、32KB大小。如图2所示,如果磁盘分区没有被对齐,则任何32KB或者更大的I/O就需要跨越两个Track来进行,50%的16KB的I/O会可能会跨越两个Track,25%的8KB也会跨越两个Track,造成额外的存储系统性能开销。

l1.jpg 

     看了第一个例子,读者可能会想,那把起始位右移一个Block就好了啊,(MBR+Reserved=63Block),就不会有跨Track的I/O发生了。接下来我们再看另外一个例子。一个3+1 Raid5的单个条带大小为四个Track,即256个Block、128KB大小。如果对于这类的磁盘,使用第64个block为起始位置,当linux I/O大小达到64KB的时候,如果I/O直接从缓存(单个track为32KB),则正好完成两次读取。但是如果,两个连续的64KB I/O,且需要牵涉到后端Raid5的物理磁盘读写,如下图所示,第二个64KB就会出现跨越两个条带的情况发生,从而倒是读或者写的开销加倍。

l2.jpg

     在这种情况下,需要将起始位置调节成建议配置(64KB),这样一来,Linux最大I/O大小的情况也不会发生跨多个条带的情况发生了。(图3)

l3.jpg

     所以说,无论是从存储系统的缓存从读取数据,还是I/O在缓存中不存在的情况,需要从底层物理磁盘上读取数据。对于不同类型的磁盘,64KB的起始为是一个建议配置。

Linux创建分区对齐方法

     描述了磁盘分区对齐的原理后,下面介绍如何使用fdisk创建对齐分区的例子。在Linux中,对齐分区操作需要要空数据的情况下进行,因为对齐分区操作会清空分区表并且该LUN上的数据会被删除。在这个例子中,我们对/dev/emcpowerfw设备,创建一个大小为51281 Cylinder(Cylinder是Symmetrix的计量单位,每个Cylinder大小为960KB,所以这个磁盘大小为50GB左右)、Offset错位大小为128个block的磁盘设备。方法和命令输出(图4)如下

方法1,使用fdisk创建分区对齐

Linux命令提示符下输入:

# fdisk /dev/emcpowerfw

输入n,创建一个分区:

输入p,创建分区为主分区:

输入起始Cylinder位置,默认为第一个:

输入最后Cylinder位置,默认为该磁盘设备的最后一个Cylinder:

输入x进入expect mode:

输入b,一定分区初始位置:

设定最初位置为128个block(128 block大小为64KB):

再次输入p确认分区初始位置信息:

输入w保存退出:

Linux:磁盘分区对齐详解与配置 – Linux篇
Linux:磁盘分区对齐详解与配置 – Linux篇

方法2:使用parted创建对齐分区

Parted和fdisk相比,支持更多的类型(支持GPT)和更大的分区尺寸。下面一个例子给出一个给dev/sdb磁盘创建128bloc分区起始位的例子,方法和命令输出如下(图5)

Linux命令提示符下输入:

# parted /dev/sdb

将显示单位调整为Sector(大小512个字节):

(parted) unit s

列出当前逻辑卷:

(parted) print

将原来Number1移除并且创建一个起始位为128 sector,小为976735934 sector的主分区。

(parted) rm 1

(parted) mkpart primary 128 976735934

(parted) print

Linux:磁盘分区对齐详解与配置 – Linux篇
Linux:磁盘分区对齐详解与配置 – Linux篇

参考

Parted命令手册及参数:http://www.gnu.org/software/parted/manual/parted.html#unit

Fdisk命令手册及参数:http://manpages.courier-mta.org/htmlman8/fdisk.8.html 

磁盘分区对齐详解与配置 – Windows篇 : https://community.emc.com/docs/DOC-18571 

磁盘分区对齐详解与配置 – Linux篇 : https://community.emc.com/docs/DOC-18666 

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

之前我已经写过关于如何安装Ubuntu Linux和Windows 7以及8的双启动,但是那些教程不包含那些预装Windows 8的系统。那些较新的预装了Windows 8或Windows 8.1的系统使用了UEFI来替代BIOS。这使得安装双启动变得和之前的常规方法有点不同。在这个教程中,我们将看到如何在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

这个教程是在一台新买的戴尔灵越 7437(酷睿i7第四代处理器, 256GB SSD,8GB内存以及内置1GB(共享内存) Intel显卡)上演示的。为了使你能够成功安装UEFI下Linux和Windows 8的双启动,我会提到你需要做的所有步骤。如果你已经完成这些步骤中的部分步骤,直接跳到下一步。如果你有个全新的系统,那就更好了。

在这里提到的这些步骤也适用于其它基于Ubuntu的Linux发行版,如Linux Mint,Elementary OS等等。不多说,让我们来看看如何在启用了UEFI安全启动的Windows 8系统上双启动Linux。

让 Ubuntu 14.04 和 Windows 8 双启动:

要在一个UEFI系统上安装Ubuntu有多方面的前提条件。让我们来一个一个看:

第一步:做个备份 [可选]

做个备份总是个不错的选择,防止你把系统弄糟了。网上有众多文章教你如何备份系统。你可以参照这个教程

第二步:创建一个Ubuntu的USB启动盘/光盘启动盘

你需要做的下一件事是创建一个USB启动盘或光盘启动盘。我推荐在Windows下使用Universal USB Installer创建一个Linux OS的USB启动盘。

第三步:为Ubuntu划分一块安装分区

假设你有一个全新的系统,我们要做的第一件事是创建一个分区来安装Linux。我系统中的256GB磁盘出厂时就有若干个分区,但主要是用来备份及其它目的的。主分区是安装了Windows 8.1的C盘,约有220GB。

如果你也像这样只有一个分区,你需要从中分割出一些空间给Linux。如果你有若干空间大小足够的分区,可以使用它们中除C盘外的任意盘,因为安装时会抹掉其中的数据。

要在Windows 8中创建分区,需要使用磁盘管理工具。你可以通过在控制面板中搜索‘磁盘’找到磁盘管理工具。

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

在磁盘管理工具中,右键点击你想划分并缩小的卷。在我的演示中,我选择C盘的卷进行缩小,划分出未分配空间:

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

缩小后出现的未分配空间就放在那里好了,不用对其分区和格式化。我们会在安装Ubuntu时用到它。

第四步:在Windows中禁用快速启动 [可选]

为了实现快速启动,Windows 8引进了叫做“快速启动”的新特性。尽管不是强制要求,最好还是将其禁用。

打开控制面板 > 硬件与声音 > 电源选项 > 选择电源按钮的功能 > 更改当前不可用的设置,取消选中启用快速启动(推荐)

第五步:禁用Windows 8 and 8.1的安全启动(secure boot)

这是最重要的步骤。Windows 8新的安全启动(secure boot)原本是针对rootkit病毒的安全特性,但它也阻止了Windows和Linux的双启动。为了实现Windows和Linux的双启动,我们必须在UEFI中禁用安全启动(secure boot)。

可以参见:如何在 Win8 上禁用 UEFI 安全引导以安装Linux

第六步:安装Ubuntu,与Windows 8共存

一旦你禁用了安全启动(secure boot),那就是时候安装Ubuntu了。我希望你像第二步中提到的一样创建了一个USB启动盘。插入U盘,然后从U盘启动系统。

要从USB启动,需要在Windows中选择从USB启动的选项。从电脑设置(像UEFI)中选择选项或在点击“重新启动”的时候按住Shift键。

当你用USB启动盘启动后,你会看到试用(try)或者安装(install)Ubuntu的选择,这里要点击“安装”。另外在屏幕上不多的设置选项里面,你可以选择你用的语言。接下来是关于硬盘空间,电源和网络连接等等的一些检查。只需点击继续

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

安装窗口中你需要注意的是安装类型(Installation Type)。选择这里的其它选项(Something else)

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

还记得我们事先划分的未分配空间吗?我们将用它来创建根分区( / ),交换空间(Swap)以及家目录(Home)。选择空闲(free space)然后点击加号(+)。

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

它会给你提供创建Linux分区的选项。我们正在创建根分区 /。10到20GB空间就足够了。选择大小(Size),然后选择Ext 4作为文件系统以及 /(意思是根)作为挂载点(Mount point)。

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

点击确定会回到分区界面。下一步我们创建交换空间(Swap)。像之前一样,再次点击加号(+)。这次我们选择作为交换空间(Swap area)。建议的交换空间大小是物理内存的两倍。

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

以同样的方式创建家目录(Home)。给它分配最大的空间(实际上是给它分配剩余的所有空间),因为这是你会用来存储音乐,图片以及下载的文件的位置。

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

分配好了根分区( / ),交换空间(Swap)和家目录(Home)之后,点击现在安装(Install Now)

Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动
Linux:在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动

好了,你现在基本上以及赢得了这场战役了~露出胜利的微笑吧~接下来你会被要求设置用户名密码等等。基本上你现在只需点击下一步。

一旦安装完成,重新启动电脑,你应该会看到紫色的grub欢迎界面。尽情享受Ubuntu和Windows 8的双启动模式吧。(译注:对于可能出现grub系统选择中没有Windows 8选项或是无法正常启动的情况,可搜索Boot Repair工具的使用)

我希望这份指南能够帮你实现Ubuntu和Windows 8的UEFI模式双启动。虽然这篇文章是为Ubuntu写的,它对其它的Linux OS应该也有所帮助。欢迎提出任何问题与建议。


via: http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3178-1.html

Linux:如何在同一台计算机上安装Windows 8.1和Ubuntu 14.04 LTS

Linux:如何在同一台计算机上安装Windows 8.1和Ubuntu 14.04 LTS
Linux:如何在同一台计算机上安装Windows 8.1和Ubuntu 14.04 LTS

一些Windows用户,希望试试Linux操作系统,而不用删除他正在使用的系统。令人高兴的是,想尝试下Linux是非常简单的,而且Linux操作系统也能和其他操作系统在同一台机器上和平共处。

举个例子,如果你是Windows用户,想试试Ubuntu,这个过程实际上是相当简单的,用户只需要付出一点小小的努力即可,这个过程中稍微注意一点就行了。

在PC上正常安装一个操作系统并不复杂,甚至是Ubuntu和其它Linux也一样简单。在大多数情况下,用户单击对话框的“下一步”,按照流程进行即可。当你想保留PC上的原来的操作系统时(并不特指Windows),还需要多一点操作才行,但是很简单。

在Linux下刻录一个ISO镜像是很容易的,有好几个程序可以提供这样的功能。而在Windows下,你可以将Ubuntu刻录到DVD或制作成USB启动盘(这样更好一些)。要将Ubuntu正确复制到一个USB设备,你将需要下载名为Win32 Disk Imager 0.9.5一个小工具。它具有一个简单的界面,是完全自动的。

在重启机器以安装Ubuntu前,你要给Ubuntu一些可用的磁盘空间,而且给Ubuntu一个磁盘分区是不够的。你将需要两个,一个放Ubuntu本身(大约10GB,如果你不想安装太多的应用的话,就足够了),第二个是交换分区(类似于Windows的页面文件),它的大小一般是你的内存的两倍。你不需要格式化它们,只要他们是可用的就行。如果你在第二块空闲硬盘安装Ubuntu,那就更简单了。

插上USB启动盘并重新启动。你会得到一个提示,询问是“试用”还是“安装”。选择“安装”并选择安装方式:安装Ubuntu和Windows 8并存(或任何你拥有的其他版本),用Ubuntu替换Windows 8,或者别的选项。

你可以选择“和Windows 8并存安装”,但你也许不喜欢安装程序自动处理的方式。你也可以选择“其它(Something Else)”来手动控制安装过程。

找到你给Ubuntu保留的空闲分区(安装程序无法读取和显示Windows卷的名称,所以你要小心别选错了),双击它,选择ext4文件系统,和“/”作为默认的安装点。

现在选择另外的那个较小的分区,选择swap分区类型。就这些了。当你点击下一步,安装程序将启动,你将要输入用户名,密码和其他信息。

当你启动你之后,将得到一个简单的列表,可以选择你要启动的操作系统。

尽情享受!


via: http://news.softpedia.com/news/How-to-Install-Windows-8-1-and-Ubuntu-14-04-LTS-on-the-Same-Computer-440356.shtml

译者:CHINAANSHE 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3170-1.html

Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统

有时候,无论是普通用户还是系统管理员,都需要知道系统运行是否良好。与系统状态相关的许多问题,都可以通过检查运行的服务所生成的日志文件来获得答案。然而,即便对于干过几年的系统管理员而言,要检查日志文件的每个细节都不是件容易的事。这也是为什么他们依赖于监控软件的原因,监控软件能够从不同的源收集信息,并以易于理解的格式给出分析报告,如图表、可视化图像、统计数据等。

市面上流传着许多复杂的系统监控软件,诸如Cacti, Nagios, Zabbix, Munin此类。在本文中,我们向您介绍一个轻量级的监控工具——Monitorix,该工具设计用于在Linux/BSD上监控系统资源和许多熟知的第三方应用程序。由于专为资源有限的嵌入式系统而优化,Monitorix以使用简单,消耗内存资源少而著称。它内建了一个HTTP服务器用于提供web界面,并使用RRDtool数据库来存储时间序列统计数据,RRDtool可以很容易地和任何脚本语言整合,如Perl,Python,shell脚本,Ruby等。

主要特性

这里列出了Monitorix的主要特性。要查看完整列表,请参阅官方网站

  • 当前系统负载和系统服务
  • CPU/GPU温度传感器
  • 磁盘温度和健康度
  • 网络/端口流量和网络状况统计
  • 邮件统计
  • Web服务器统计(Apache,Nginx,Lighttpd)
  • MySQL负载和统计
  • Squid代理统计
  • NFS服务器/客户端统计
  • Raspberry Pi传感器统计
  • Memcached统计

在Fedora, CentOS或者RHEL上安装并配置Monitorix

首先,安装需要的软件包。注意,在CentOS上,你需要先设置 EPELRepoforge仓库。

$ sudo yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL

完成上一步后,可以通过以下命令来安装Monitorix:

$ sudo yum install monitorix

要配置Monitorix,打开/etc/monitorix/monitorix.conf配置文件,并修改选项。关于Monitorix的配置文件细节,可以查阅http://www.monitorix.org/documentation.html

默认情况下,内建的HTTP服务器监听8080端口。因此,确保你的防火墙没有阻止TCP 8080端口。

要启动Monitorix,只需输入以下命令:

$ sudo service monitorix start

启动你喜爱的Web浏览器,然后通过http://:8080/monitorix来访问Monitorix的Web界面。

在Archlinux上安装并配置Monitorix

在Archlinux上,可以从AUR上下载Monitorix包。

默认情况下,在Archlinux上是禁用了其内建HTTP服务器的。要启用内建的HTTP服务器,请编辑/etc/monitorix.conf文件的如下区块。


        enabled = y
        host =
        port = 8080
        user = nobody
        group = nobody
        log_file = /var/log/monitorix-httpd
        hosts_deny =
        hosts_allow =
        
                enabled = n
                msg = Monitorix: Restricted access
                htpasswd = /var/lib/monitorix/htpasswd
        

最后,启动Monitorix服务。

打开你喜欢的Web浏览器,然后通过http://:8080/monitorix来访问Monitorix的Web界面。

在Debian和Ubuntu上安装并配置Monitorix

对于Debian家族,Monitorix可以通过两种方式安装:手工安装或通过第三方软件仓库。

手工安装(用于Debian)

首先安装所有依赖包。

$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl

http://www.monitorix.org/downloads.html下载Monitorix包,并安装。

$ sudo dpkg -i monitorix*.deb

在安装期间,会要求你配置一个后端Web服务器。如果你正是用Apache,确保重启Apache服务来重新加载Apache配置。

$ sudo service apache2 reload

通过软件仓库安装 (用于Ubuntu)

在/etc/apt/source.list中添加以下行来启用Izzysoft仓库。

deb http://apt.izzysoft.de/ubuntu generic universe

下载并为软件仓库添加GPG密钥。

$ wget http://apt.izzysoft.de/izzysoft.asc
$ sudo apt-key add izzysoft.asc

使用apt-get安装Monitorix,所有依赖包也将自动安装。

$ sudo apt-get update
$ sudo apt-get install monitorix

最后,启动Monitorix服务。

$ sudo service monitorix start

要配置Monitorix,请使用文本编辑器编辑/etc/monitorix/monitorix.conf,并重启Monitorix服务。

$ sudo service monitorix restart

用于Ubuntu的内建Web服务器默认启用。要从Web查看监控结果,在你喜爱的Web浏览器中访问http://8080/monitorix。

在Raspberry Pi上安装并配置Monitorix

如果想要在Raspberry Pi(基于Debian)上安装Monitorix,你不能使用上面提到的Izzysoft仓库,因为它不提供Monitorix的ARM移植。取而代之的是,你可以参照如下基于Debian的手工安装。

首先,安装需要的软件包。

$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl

如果某些需要的软件包没有安装,我们需要使用此命令来强制安装。

$ sudo apt-get -f install

http://www.monitorix.org/downloads.html下载Monitorix软件包(monitorixx.x.x-izzy1all.deb)。

使用下面的命令来安装Monitorix包。

$ sudo dpkg -i monitorix_x.x.x-izzy1_all.deb

安装完成后,我们需要像下面这样对Monitorix配置稍作修改。

用你喜爱的文本编辑器打开/etc/monitorix/monitorix.conf,向下滚动文本直到你找到。搜索“raspberrypi = n”,并用“y”替换“n”,这将启用对Raspberry Pi时钟频率、温度和电压的监控。

编辑完成后,重启Monitorix服务。

$ sudo service monitorix restart

默认情况下,Monitorix的内建HTTP Web服务器会被启用。要访问Monitorix的Web界面,访问此地址http://:8080/monitorix。

Monitorix截图(Raspberry Pi上)

Monitorix主屏幕:

Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统
Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统

系统平均负载和使用情况图示:

Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统
Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统

活动进程图示:

Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统
Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统

在主屏幕中选择“Raspberry Pi”部分下的“时钟频率”,你会看到Raspberry Pi的时钟频率、温度和电压的图示:

Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统
Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统

所有监控图示:

Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统
Linux:Monitorix :支持服务器和树莓派的轻量级系统监控系统

via: http://xmodulo.com/2014/05/web-based-lightweight-system-monitor-linux.html

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3171-1.html

Linux:关于CentOS 6下Hadoop占用系统态CPU高的处理办法

    一次不经意发现Hadoop的系统态CPU使用率很高,然后百度一下居然是个已知问题

    RHEL6优化了内存申请的效率,而且在某些场景下对KVM的性能有明显提升:http://www.linux-kvm.org/wiki/images/9/9e/2010-forum-thp.pdf。

    而Hadoop是个高密集型内存运算系统,这个改动似乎给它带来了副作用。理论上运算型Java程序应该更多的使用用户态CPU才对,Cloudera官方也推荐关闭THP。于是参考一些文章作了调整: 

# for hadoop , disable thp
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

     作用非常明显:

Linux:关于CentOS 6下Hadoop占用系统态CPU高的处理办法
Linux:关于CentOS 6下Hadoop占用系统态CPU高的处理办法

    效果很明显,大概12:05分的时候操作的,系统态占用基本消失了。文件Cache使用上升、机器负载下降。

    除了手动修改运行时参数之外,还可以修改 /etc/grub.conf 里内核的启动参数,追加“transparent_hugepage=never”(此选项只对 /sys/kernel/mm/redhat_transparent_hugepage/enabled 有效)。

    原本 transparent_hugepage 功能是在内核2.6.38之后才引入的,红帽在RHEL6就将此功能合并进来、详细还有待进一步了解。

via : http://hi.baidu.com/higkoo/item/eb5e69c17c6b300a0ad93a00 

Linux:使用FPM快速生成RPM包

许多朋友始终觉得RPM难做,主要是因为SPEC规则比较多,需要花精力去了解和熟悉。之前试用一个叫checkinstall的工具,可以自动打RPM包。很久没有维护了,在CentOS6上编译有问题。虽然也有网友给打了Patch,最终能用起来,可惜使用过程中还是会遇到诸多错误。

如今巧遇FPM,一行命令就搞定RPM包!

Linux:使用FPM快速生成RPM包
Linux:使用FPM快速生成RPM包

一、我们来先安装FPM:

# FPM是Ruby模块
yum -y install ruby rubygems ruby-devel
# 添加淘宝的Ruby仓库
gem sources -a http://ruby.taobao.org/
# 移除原生的Ruby仓库
gem sources --remove http://rubygems.org/
# 安装fpm
gem install fpm

二、官网介绍了用FPM打deb包,我来翻译成rpm版:

# 去nodejs官网下载最新源码包
wget http://nodejs.org/dist/v0.10.12/node-v0.10.12.tar.gz
# 解压
tar zxvf node-v0.10.12.tar.gz -C /dev/shm/
# 进入源码目录
cd /dev/shm/node-v0.10.12/
# 指定配置参数
./configure --prefix=/usr --dest-cpu=x64 --dest-os=linux
# 使用多核编译
make -j24
mkdir /dev/shm/node-root
# 指定安装路径
make -j24 install DESTDIR=/dev/shm/node-root
# 生成RPM
fpm -f -s dir -t rpm -n nodejs --epoch 0 -v 0.10.12 --iteration 1.el6 -C /dev/shm/node-root -p ~/rpmbuild/RPMS/x86_64/ -d 'openssl >= 0.9.8'  -d 'libstdc++ >= 4.4.3' --verbose --category 'Development/Languages' --description 'Node.js real-time applications' --url 'nodejs.org' --license 'BSD' -m 'higkoo' --no-rpm-sign --workdir /dev/shm usr/bin usr/lib usr/share
# 查看RPM包信息
rpm -qpi ~/rpmbuild/RPMS/x86_64/nodejs-0.10.12-1.el6.x86_64.rpm

三、查看安装包信息:

Linux:使用FPM快速生成RPM包
Linux:使用FPM快速生成RPM包

 小技巧:’-e’ 参数支持打包之前手动修改FPM自动生成的SPEC文件,然后再打包。不过注意CentOS5和CentOS6之间的rpm包不能混用,因为他们之间的glibc版本不同,动态库链接不上。

 OK,没玩过就赶紧动手吧!

via : http://hi.baidu.com/higkoo/item/204c61c0d450ca3098b4980c 

Linux:如何使用phpIPAM来管理IP地址和子网

通常,网络或系统管理员有责任来管理其所管理的网络下的一个或多个子网。例如,当一个网段分配了/24子网,那么该子网就有254个IP地址可以用于不同用途。要跟踪某个IP被分配到了哪个主机,就需要通过某种方式记录下来。最简单的方法,就是使用一个电子表格,如Excel来记录IP地址的分配信息。此方法对于只有一个管理员,并且网络很小的情况下比较奏效。然而,对于多个大型网络而言,依赖于电子表格并不方便,而且十分容易出错。更糟糕的是,如果有多个管理员参与管理,更新电子表格就十分麻烦了,因为每个管理员可能生成各种不同版本的文档记录。

一种系统地管理IP地址分配的方式是使用网络化的IP地址管理工具。不仅仅是因为网络化管理工具能在任何地方访问并管理,而且其后端数据库也能保证所有更新能正确同步并实时生效。尽管有许多可用的网络化应用工具,但我们将在此教程中关注如何来安装phpIPAM(IP Address Manager IP地址管理工具)。phpIPAM是一个开源、高效的IP地址管理应用软件,有着以下一些特性。

  • 同时支持IPv4和IPv6(和其它工具不同,它对IPv6支持得很好)
  • 内建的IPv4和IPv6计算器
  • 支持无类域间路由(CIDR)标记
  • 支持MySQL数据库
  • 子网嵌套
  • 基于用户/组权限
  • 可视化报表工具
  • 使用.xls文件导入/导出
  • 支持设备、VRF和VLAN
  • 强大的搜索引擎
  • 电子邮件标记
  • 支持基于AD/LDAP的验证

可访问http://demo.phpipam.net查看phpIPAM演示网站。

在本教程中,我们将在Ubuntu环境中使用Apache来配置phpIPAM

在Ubuntu上安装phpIPAM

首先,使用apt-get来安装需要的软件包。

# apt-get install apache2 mysql-server php5 php5-gmp php-pear php5-mysql php5-ldap wget

如果MySQL是首次安装,请使用以下命令来设置root密码。

# mysqladmin -u root password NEWPASSWORD

phpIPAM可以安装在任何Web服务器目录中,我们将会安装到Apache Web服务器的根目录下的/phpipam/子目录中。

下载phpIPAM软件包。

# wget http://kent.dl.sourceforge.net/project/phpipam/phpipam-1.0.tar

将软件包解压到Web服务器相应目录。

# cp phpipam-1.0.tar /var/www/
# cp /var/www/
# tar xvf phpipam-1.0.tar
# rm phpipam-1.0.tar

现在来指定MySQL的用户名和密码,同时指定基准目录。

# vim /var/www/phpipam/config.php

$db['host'] = "localhost";
## MySQL user for ipam ##
$db['user'] = "phpipam";
## password for the MySQL user ##
$db['pass'] = "phpipamadmin";
## database for MySQL ##
$db['name'] = "phpipam";
## base directory ##
define('BASE', "/phpipam/");

需要在提供的.htaccess文件中指定基准目录。

# vim /var/www/phpipam/.htaccess
RewriteBase /phpipam/

准备Apache Web服务器

phpIPAM的运行需要Apache 的 Rewrite模块,该模块可以在Ubuntu或Debian机器上使用以下命令来启用。

# a2enmod rewrite

接下来,需要修改Apache的默认配置。请添加/修改你的配置,使它看起来像下面这样。

# vim /etc/apache2/sites-enabled/000-default

        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all

最后,重启Apache Web服务。

# service apache2 restart

完成安装

我们可以使用浏览器来完成phpIPAM的安装。将浏览器地址指向URL: http:///phpIPAM,将会显示以下phpIPAM安装页面。我们可以开始自动化数据库安装。

Linux:如何使用phpIPAM来管理IP地址和子网
Linux:如何使用phpIPAM来管理IP地址和子网
Linux:如何使用phpIPAM来管理IP地址和子网
Linux:如何使用phpIPAM来管理IP地址和子网

现在,phpIPAM应该已经起来,并正在运行了,我们可以使用以下默认用户来登录。

  • URL: http:///phpipam
  • User: Admin
  • Pass: ipamadmin

来源:https://linux.cn/article-3188-1.html

Linux:Linux script命令 —— 终端里的记录器

当你在终端或者控制台工作时,你可能想要记录在终端中所做的一切。这些记录可以用来当作史料,保存终端所发生的一切。比如说,你和一些Linux管理员们同时管理着相同的机器,或者你让某人远程登陆到了你的服务器上,你可能记录想要终端里发生的一切。要实现这个目标,你可以使用script命令。

Linux:Linux script命令 —— 终端里的记录器
Linux:Linux script命令 —— 终端里的记录器

script是什么

scirpt就是一个命令,可以制作一份记录输出到终端的记录。对于那些想要真实记录终端会话的人来说,这很有用。该记录可以保存并在以后再打印出来。

怎么用

默认情况下,我们可以通过在终端中输入script来启动scirpt命令。

pungki@dev-machine:~$ script
Script started, file is typescript
pungki@dev-machine:~$

你也可以指定目标文件名来记录打印结果。

pungki@dev-machine:~$ script myfile

Define script file

当你再次见到命令提示符,这意味着终端将记录打印到终端的任何东西。

你会看到当前目录,有个名为myscript的文件。(LCTT译注,此处原文有误。这里指定了记录文件名为myfile,而不是默认的 typescript。)

为什么我们要用script命令

因为在之前已经提到过,script命令的主要功能是记录所有的东西。下面给出了两个使用该命令的场景。

和同事共事时

当和同事一起工作时,我们可以通过script来记录你的活动。

比如,我们会使用名为collaborate的打印文件,来完成打印:

$ script collaborate

Create collaborate file

然后,在完成一些任务后,假如你需要把你干的活发给另外一个工程师,那就把那文件发给他。所以当另外一个工程师需要复查所做的事情,他只要用文本编辑器打开这个文件就行了。

如果他想要更新该文件(以增加他的工作部分),可以使用-a选项。

$ script -a collaborate
Linux:Linux script命令 —— 终端里的记录器
Linux:Linux script命令 —— 终端里的记录器

记录某人在终端中的所作所为

你可能让你的工程师或者某个人远程访问你的系统,要确保你的工程师正在干正确的事,你可以记录下他在你系统上的所作所为。要让script命令在登录时自动运行,我们可以把它添加进shell环境配置文件中。如果你正在使用bash shell,把这一行加进你的bash环境配置文件中。

$ vi ~/.profile
# run the script command to record everything
# use -q for quite and -a option to append the script
#
/usr/bin/script -qa /usr/local/script/log_record_script

Add script to bash profile

然后保存。下次他登录进你的系统时,script命令就会自动运行,并把日志记录进/usr/local/script/logrecordscript

Linux:Linux script命令 —— 终端里的记录器
Linux:Linux script命令 —— 终端里的记录器

-q选项可以让scirpt命令以静默模式运行,登录进来的用户不会知道script命令已经运行了。而-a选项将会让记录附加到文件中,而不会擦除先前的记录。

如果不使用-q选项,那么当用户登录进来时,他会收到像下图中这样的通知。

Linux:Linux script命令 —— 终端里的记录器
Linux:Linux script命令 —— 终端里的记录器

退出记录

要退出记录活动,我们可以在终端中按下Ctrl+D,或者输入exit。在退出script前,你会发现记录文件的大小为0 Kb,而在退出之后,文件大小会发生改变。

结尾

Script命令在你需要记录或者存档终端活动时可能很有用,记录文件会存储为文本文件,所以可以很方便地用文本编辑器打开。跟平常一样,我们都可以通过输入man script或者scirpt -h来显示帮助页并查看更多详细用法。


via: http://linoxide.com/linux-command/script-command-recorder/

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3195-1.html

Linux:8款适合Linux用户使用的数据库管理工具!

从内容管理系统到简单的表格,数据库是每一个开发项目的一部分。这就是为什么开发者们如此强调使用正确类型的数据库工具。下面这些可能对您有所帮助!

Linux:8款适合Linux用户使用的数据库管理工具!
Linux:8款适合Linux用户使用的数据库管理工具!

1. Autotabla

Autotabla是一个你的程序的SQL数据表的CGI管理界面。只需要提供你数据库架构的XML描述,你就可以创建/修改/删除数据库记录。 HTML输出可以通过CSS完全自定义。使用Perl/DBI模块而支持各种数据库。

2. Cruddy!

Cruddy!是一个以CGI::CRUD为框架的应用程序,它为你的数据库提供了一个即时的Web前端的CRUD接口。

3. myPhile

这是一个可定制的MySQL表的通用管理界面。

4. NG-Admin

这是一个数据库内容的管理工具。

5. phpMoAdmin

这是一个PHP写的MongoDB管理工具。

6. phpMSAdmin

phpMSAdmin是用PHP编写的工具,它允许您通过Web浏览器管理一个微软的SQL Server ,而不需要Windows或专有的企业管理器。它允许你创建/修改:数据库,表,视图,触发器等

7. RockMongo

RockMongo,一个MongoDB的管理工具,在PHP5中实现,类似phpMyAdmin。

8. WizMySQLAdmin

WizMySQLAdmin类似最有名的MySQL数据库管理器phpMyAdmin,但它非常易于安装和维护。它只由一个文件组成,并支持多种数据库和表的创建和处理。


via: http://www.efytimes.com/e1/fullnews.asp?edid=138307

译者:乌龙茶 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-3198-1.html

Linux:“rm -rf”之后

Linux:“rm -rf”之后
Linux:“rm -rf”之后

自娱自乐,我决定启动一台Linux服务器,然后以root用户执行“rm –rf /”命令,然后观察下哪些文件或者指令会幸存下来。结果是什么也没少!因此你必须增加 —no-preserce-root 再试一遍:

# rm -rf --no-preserve-root /

当你按下“Enter”时,一些重要的工具,比如

  • /bin/ls
  • /bin/cat
  • /bin/chmod
  • /usr/bin/file

将会应声消失!但是你当前的SSH连接以及bash终端都还在,这表明所有bash相关的内建指令都没有受影响,比如echo。

成为Bash达人

root@rmrf:/# ls
-bash: /bin/ls: No such file or directory

执行以上命令,发现已没有ls可用,但是echo和fileglobs还在。利用这些“幸存者”们,我们可以做点什么呢?

root@rmrf:/# echo *
dev proc run sys
# echo /dev/pts/*
/dev/pts/0 /dev/pts/3 /dev/pts/ptmx

注意!/dev,/proc,/run,/sys还在,我们一定要保存好它们。如果有了ls指令,那么对目录下内容的读取操作将会更加简单。

root@rmrf:/# for file in /dev/pts/*; do echo $file; done
/dev/pts/0
/dev/pts/3
/dev/pts/ptmx

许多Reddit用户指出,printf仍是可用的。CAMH-说:printf会将参数依次格式化到输出字符串中去。

root@rmrf:/# ls() { printf '%sn' ${1:+${1%/}/}*; }

既然在bash下可以定义函数,那么我们可以自建一个ls工具,虽然功能还不是很完善。

root@rmrf:/# ls() { printf '%sn' ${1:+${1%/}/}*; }
-bash: syntax error near unexpected token `('

不对啊,这种操作应该完全合法才对,难道ls已经被映射,或者它是其他命令的别名?

root@rmrf:/# type ls
ls is aliased to `ls --color=auto'

原来如此,我们上面的指令被扩展成了ls–color=auto () { printf ‘%sn’ ${1:+${1%/}/}*; }。那么,我们可以先使用unalias指令,去掉ls与ls—color的关联。

root@rmrf:/# unalias ls
root@rmrf:/# ls() { printf '%sn' ${1:+${1%/}/}*; }
root@rmrf:/# ls
/dev
/proc
/run
/sys
root@rmrf:/# ls /dev
/dev/pts

把函数存储到utils.sh文件

root@rmrf:/# echo 'ls() { printf '%sn' ${1:+${1%/}/}*; }' >> utils.sh
root@rmrf:/# source utils.sh

cat命令怎么样实现呢?借助read!read是幸存者之一,使用read结合管道和重定向,一个基本的cat就基本成型了!

root@rmrf:/# (while read line; do echo "$line"; done) < utils.sh
ls() { printf '%sn' ${1:+${1%/}/}*; }

结合上述通过“幸存者”逐渐恢复一些指令的方法,以及echo可以写入任意多字节的特性,我们可以重新构建出linux的工具系统,并可以通过curl或者wget直接获得我们想要的二进制文件。首先,参照echoed by others,获取busybox。Busybox是嵌入式Linux的瑞士军刀,内嵌wget,dd,tar等许多工具。Eusebeîa详细介绍了如何获得一个busybox的escaped版本,我在这里就不多做赘述了。

但是,还有一个问题。

即使我们echo了整个二进制文件需要的所有字节,这些二进制文件仍无法执行。没法启动busybox!针对这个问题,早期的解决方法是找到一些可执行的程序,然后用echo覆盖它们。我们对/usr和/bin下的文件进行了诸如此类的改造,但这确实稍显复杂。

可以利用shell通配符和bash筛选出带有可执行位组的文件,记住要把目录排除在外。

executable () { if [[ ( ! -d $1 ) && -x $1 ]] ; then echo "$1"; fi }

找到了可执行文件!

root@rmrf:/# for file in /*; do executable $file; done
root@rmrf:/# for file in /*/*; do executable $file; done
root@rmrf:/# for file in /*/*/*; do executable $file; done
/proc/1107/exe
/proc/1136/exe
/proc/1149/exe
/proc/1179/exe
/proc/1215/exe
/proc/1217/exe
/proc/1220/exe
/proc/1221/exe
/proc/1223/exe
/proc/1248/exe
/proc/1277/exe
/proc/1468/exe
/proc/1478/exe
/proc/1625/exe
/proc/1644/exe
/proc/1/exe
/proc/374/exe
/proc/378/exe
/proc/471/exe
/proc/616/exe
/proc/657/exe
/proc/self/exe

太好了!但是别急,这些只是软链接到可执行文件的链接文件,原文件在磁盘上已经不存在了。那么现在我们要重新改写executable(),排除这些软链接。

root@rmrf:/# executable () { if [[ ( ! -d $1 ) && ( ! -h $1 ) && -x $1 ]] ; then echo "$1"; fi }
root@rmrf:/# for file in /*/*/*; do executable $file; done
root@rmrf:/# for file in /*/*/*/*; do executable $file; done
root@rmrf:/# for file in /*/*/*/*/*; do executable $file; done
root@rmrf:/# for file in /*/*/*/*/*/*; do executable $file; done

噩耗,什么输出也没有。或许可以利用内核层面的东西,毕竟,我们可以使用Magic Sysrq组合键重启busybox。

root@rmrf:/# echo 1 > /proc/sys/kernel/sysrq
root@rmrf:/# echo "b" > /proc/sysrq-trigger

UPDATE: Reddi用户throw_away5046提出了一种解决方法:a full solution to this

获取一个可信任的、适用于本机架构的box

$ mkdir $(xxd -p -l 16 /dev/urandom)
$ cd $_
$ apt-get download busybox-static
$ dpkg -x *.deb .
$ alias encode='{ tr -d \n | sed "s#\(..\)#\\x\1#g"; echo; }'
$ alias upload='{ xxd -p | encode | nc -q0 -lp 5050; }'
$ upload < bin/busybox

执行rm –rf之后的机器

# cd /
# alias decode='while read -ru9 line; do printf "$line"; done'
# alias download='( exec 9<>/dev/tcp/{IP OF NON HOSED BOX}/5050; decode )'
# download > busybox

创建一个可以改变busybox访问权限的对象

$ cat > setx.c <

以内建工具的方式使能setx,使busybox可执行

# ( download > setx; enable -f ./setx setx; setx; )
# /busybox mkdir .bin
# /busybox  --install -s .bin
# PATH=/.bin

操作如下:

Linux:“rm -rf”之后
Linux:“rm -rf”之后

原文链接: rm -rf remains   翻译: 伯乐在线 honpey译文链接: http://blog.jobbole.com/70971/