Skip to content Skip to main navigation Skip to footer

Linux

Linux:HTTP/2有哪些值得期待的特性

Linux:HTTP/2有哪些值得期待的特性
Linux:HTTP/2有哪些值得期待的特性

随着HTTP/2工作组的工作接近尾声以及新标准的实现开始出现,工作组主席Mark Nottingham写了一篇博客对新协议中9件值得期待的事情发表了看法:

  1. 使用与HTTP相同的API。就像Mark提到的:“要想让HTTP/2成功,就必须让它能在现有的Web中正常工作。因此我们所做的努力是让现有的HTTP更好地工作,而不是去改变这个协议。”尽管也许有机制能让你优化一些新功能,但一般情况下不会有新的方法、header和状态码。
  2. 更廉价的请求。“HTTP/2使用多路技术,允许多个消息在一个连接上同时交差,因此一个大的响应(或者一个需要消耗服务器很长时间的响应)并不会阻止其它的响应。此外,它增加了头压缩(header compression),因此即使非常小的请求,其请求和响应的header都只会占用很小比例的带宽。这对于移动平台来说,是非常重要的。因为太大的请求header,再加上页面所需的大量资源经过几个来回后,很可能导致页面加载失败。”
  3. 新协议对网络和服务提供了更友好的设计。“HTTP/2将使用更少的连接,因此服务器和网络的负载都将减少。这对于越来越拥挤的网络来说具有非常重要的意义。HTTP/1采用多连接的方式实现并行数据传输,加剧了网络拥挤的问题。”HTTP/2对每台主机只需一个单独连接,而且只要可能,应尽量将多个网站合并到一台主机上。
  4. HTTP/2引入了“服务端推(server push)”的概念,它允许服务端在客户端需要数据之前就主动地将数据发送到客户端缓存中,从而提高性能。当然,在某些场景下,客户端可能并不希望这么做,因此HTTP/2也允许客户端拒绝。
  5. 当客户端(浏览器)改变主意,不再需要某个请求的响应时,HTTP/1的客户端只能关闭连接,而新协议则提供了更好的解决办法。“HTTP/2增加了RST_STREAM frame,允许客户端改变主意。当浏览器进行页面跳转或者用户取消下载时,它可以防止建立新连接,避免浪费所有带宽。”
  6. HTTP/2提供更多的加密支持,Mark早前的文章说明了其优缺点
  7. 如果你喜欢那些可以监听和人工解析HTTP请求和响应的功能,例如使用telnet连接服务器,那么你要做好这些功能不再可用的准备。HTTP/1是基于文本的协议而HTTP/2是基于二进制的。“尽管二进制协议的解析具有更小的开销,以及更小的网络消耗,但这个巨大变化的真正原因是二进制协议更简单,因此更少错误,这是它的优点。”Mark就此进行了讨论,结果表明确实如此。例如,如何界定文本,HTTP/1的严重缺陷之一是脆弱的安全性。“HTTP/1的文本特性也导致了一些安全问题。因为不同的实现对于如何解析一条消息有着不同的决定,因此恶意团体能够以某种的方式入侵(例如,通过response splitting attack)”
  8. 别期望HTTP/2能够奇迹般地提升服务端或客户端的性能。“关于新协议,更准确的看法是,它清除了一些制约性能的重要障碍。只有当客户端和服务端都学会了如何以及何时使用它的先进特性,性能才会开始逐渐提升。”正如Mark指出的,当今绝大部分网站是基于HTTP/1开发的,都不可避免地受其限制。只有经过时间推移,当它们经过重新配置后,才能发挥HTTP2所提供的先进特性。“此外,HTTP/2的网络友好特性的缺点是可能导致TCP拥塞控制变得更加突出。因为浏览器对每台主机只建立一个连接,初始窗口和丢包将会更加明显。”
  9. HTTP/2并不是发展的终点,团队已经在考虑后续的发展。“现在人们非常期待HTTP/2正式发布,因此一些高级(和实验性)的特性并没有加入到此版本中。例如推送TLS认证和DNS条目到客户端,两者都能够提升性能。如果实验顺利的话,也许HTTP/3会包含这些。当然,HTTP/3也可能是个解决所有目前未发现的问题的版本。但到目前为止,信心正在不断地增长。无论是社区发布的SPDY的体验,还是HTTP/2的各种实现都表明HTTP/2已经接近完成了。”

以上这些就是Mark对于即将到来的HTTP/2的精彩和准确的概览。你觉得这些功能怎么样?哪些会让你有些担心?当它成为主流,你开始使用时,哪些又会让你觉得很兴奋?

查看英文原文:What to Expect From HTTP/2 

via : http://www.infoq.com/cn/news/2014/02/http-2 

Linux:如何在 Linux Mint 16 中安装图标主题

如果你觉得默认的 Mint 主题和图标并不足以满足你,为何不来点改变呢?在这篇初学者快速教程中,我们会指导你如何在Linux Mint 16中安装图标主题以及如何改变图标。我们将通过安装绚丽的 Moka 图标主题来学习本教程。

小小提一下,可能你以前不知道,主题和图标主题之间是有区别的。图标主题只是改变图标的外观,而主题则改变了包括图标在内其余很多东西的外观。

在 Linux Mint 16 中安装图标主题:

在Linux Mint(以及其他大部分的Linux发行版)中有个两种方法来安装图标主题。如果你下载了图标主题的压缩包,你可以在~/.icons目录下解压它。通常这个目录并不存在,你可以随意创建它。

安装图标主题的第二种方法是使用 PPA。大多数流行的图标主题都有自己的 PPA。让我们来看看如何使用 PPA 在 Mint 中安装 Moka 图标。

在 Linux Mint 16 中安装 Moka 图标主题:

打开 terminal(Ctrl+Alt+T)并输入下面的命令:

sudo add-apt-repository ppa:moka/moka-icon-theme
sudo apt-get update
sudo apt-get install moka-icon-theme

在 Linux Mint 16 中改变图标:

在 Ubuntu 中改变图标主题是非常简单直接的。不过在 Linux Mint 中稍微隐藏了一下。你安装了图标主题后,在菜单中选择 Setting,然后选择 Themes

Linux:如何在 Linux Mint 16 中安装图标主题
Linux:如何在 Linux Mint 16 中安装图标主题

现在你可能已经明白为什么我说在 Linux Mint 中的图标更改稍微隐藏了。至少第一眼,你不会找到一个选项来改变图标。只改变图标,选择 Other settings 并点击 Icons。你会在这里找到所有的图标设置。选择你喜欢的一个。

Linux:如何在 Linux Mint 16 中安装图标主题
Linux:如何在 Linux Mint 16 中安装图标主题

改变会立即生效,并不需要重启。下面是我的 Linux Mint 使用 Moka 图标主题后的桌面:

Linux:如何在 Linux Mint 16 中安装图标主题
Linux:如何在 Linux Mint 16 中安装图标主题

我希望这篇教程能帮助你实现图标主题的修改。不要忘记 Ubuntu 13.10 的5个最好图标主题,你可以使用任何你喜欢的图标主题来使你的桌面变得更漂亮。如有任何问题、建议以及想法,请在下面评论栏留下您的评论。


via: http://itsfoss.com/install-icon-linux-mint/

译者:乌龙茶 校对:Caroline

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

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

Linux:userdel 命令 – 从Linux系统中删除用户账户

在服务器上维护用户就是添加、修改以及删除用户。当一个用户出于某种原因不再需要登录系统时,我们需要删除此用户以避免安全漏洞。在Linux系统上,我们用 userdel 命令来删除一个用户。

Linux:userdel 命令 - 从Linux系统中删除用户账户
Linux:userdel 命令 – 从Linux系统中删除用户账户

userdel是什么

userdel 是一个底层用于删除用户的工具。在 Debian 上,我们通常会使用 deluser 命令。userdel 会查询系统账户文件,例如 /etc/password/etc/group。那么它会删除所有和用户名相关的条目。在我们删除它之前,用户名必须存在。

如何使用userdel

由于 userdel 会修改系统账户文件,那么我们需要root特权来运行它。不然我们会遇到一个报错信息“只有root权限才能执行这项操作”或者类似的信息。在我们得到特权后,我们可以通过输入 userdel 从你的控制台删除用户。下面是一个默认使用 userdel 的样例。

$ sudo userdel pasadena

或者

# userdel pasadena

正如你所见,我们不能没有root权限而删除用户 pasadena。当我们有权限时,系统不会给出错误信息,这意味着用户已经成功删除。

完全删除用户家目录

不带选项使用 userdel,只会删除用户。用户的家目录将仍会在/home目录下。

当我们进入/home目录时,我们仍旧可以看到ID 1002拥有 pasadena 文件夹。已创建的用户通常会有一个与用户名相同的组名。1002是 pasadena 用户名的 UID 和 pasadena 组名的 GID。

为了在删除用户时完全删除家目录,我们可以使用 -r 选项。这个选项同样会删除用户的邮件池,如果存在的话。

强制删除一个用户

userdel 提供了 -f 选项来强制删除用户。甚至当用户已经登入 Linux 系统时此选项仍旧生效。请看一下示例截图。

Linux:userdel 命令 - 从Linux系统中删除用户账户
Linux:userdel 命令 – 从Linux系统中删除用户账户

截图的上面显示用户 pasadena 已经登录了系统。它被标记的进程6218是 SSHD 进程。而当我们用“userdel -f pasadena”只会显示已经登录的要被删除的用户信息。命令本身已经成功。如果我们使用cat 命令查看/etc/passwd的内容,我们看不到到用户 pasadena 存在了。他的家目录还存在但是所有者只能显示为数字ID。

有一件事我们必须了解,带 -f 选项的 userdel 不会断开 该用户已有的 SSH 链接。因此,即使用户已经不存在,但实际上仍是登录状态,并且是活跃用户。但是当用户登出后不可再登录,因为用户已经被删除。

因此所以这个选项使用起来有些危险,因为它会使你的系统进入不一致的状态。

总结

userdel 是一个 Linux 系统内部删除用户的工具。userdel同样是deluser命令的后端,这是一个用perl编写的删除用户的脚本。如往常一样,你可以输入man userdel来查看关于userdel命令的更多细节。


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

译者:geekpi 校对:Caroline

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

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

Linux:PHP 自 5.2 到 5.6 中新增的功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注].因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣。本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征。

  • PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束
  • PHP5.2:JSON 支持
  • PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar
  • PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,细节修改
  • PHP5.5:yield, list() 用于 foreach, 细节修改
  • PHP5.6: 常量增强,可变函数参数,命名空间增强

注:已于2011年1月停止支持: http://www.php.net/eol.php

注:http://w3techs.com/technologies/details/pl-php/5/all

PHP5.2以前

(2006前)顺便介绍一下 PHP5.2 已经出现但值得介绍的特征。

autoload

大家可能都知道 __autoload() 函数,如果定义了该函数,那么当在代码中使用一个未定义的类的时候,该函数就会被调用,你可以在该函数中加载相应的类实现文件,如:

function __autoload($classname) {
    require_once("{$classname}.php")
}

但该函数已经不被建议使用,原因是一个项目中仅能有一个这样的 __autoload() 函数,因为 PHP 不允许函数重名。但当你使用一些类库的时候,难免会出现多个 autoload 函数的需要,于是 spl_autoload_register() 取而代之:

spl_autoload_register(function($classname)
{
    require_once("{$classname}.php")
});

spl_autoload_register() 会将一个函数注册到 autoload 函数列表中,当出现未定义的类的时候,SPL [注] 会按照注册的倒序逐个调用被注册的 autoload 函数,这意味着你可以使用 spl_autoload_register() 注册多个 autoload 函数.

注:SPL: Standard PHP Library, 标准 PHP 库, 被设计用来解决一些经典问题(如数据结构).

PDO 和 MySQLi

即 PHP Data Object, PHP 数据对象,这是 PHP 的新式数据库访问接口。

按照传统的风格,访问 MySQL 数据库应该是这样子:

// 连接到服务器,选择数据库
$conn = mysql_connect("localhost", "user", "password");
mysql_select_db("database");
// 执行 SQL 查询
$type = $_POST['type'];
$sql = "SELECT * FROM `table` WHERE `type` = {$type}";
$result = mysql_query($sql);
// 打印结果
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    foreach($row as $k => $v)
        print "{$k}: {$v}n";
}
// 释放结果集,关闭连接
mysql_free_result($result);
mysql_close($conn);

为了能够让代码实现数据库无关,即一段代码同时适用于多种数据库(例如以上代码仅仅适用于MySQL),PHP 官方设计了 PDO.除此之外,PDO 还提供了更多功能,比如:

  • 面向对象风格的接口
  • SQL预编译(prepare), 占位符语法
  • 更高的执行效率,作为官方推荐,有特别的性能优化
  • 支持大部分SQL数据库,更换数据库无需改动代码

上面的代码用 PDO 实现将会是这样:

// 连接到数据库
$conn = new PDO("mysql:host=localhost;dbname=database", "user", "password");
// 预编译SQL, 绑定参数
$query = $conn->prepare("SELECT * FROM `table` WHERE `type` = :type");
$query->bindParam("type", $_POST['type']);
// 执行查询并打印结果
foreach($query->execute() as $row)
{
    foreach($row as $k => $v)
        print "{$k}: {$v}n";
}

PDO 是官方推荐的,更为通用的数据库访问方式,如果你没有特殊需求,那么你最好学习和使用 PDO.但如果你需要使用 MySQL 所特有的高级功能,那么你可能需要尝试一下 MySQLi, 因为 PDO 为了能够同时在多种数据库上使用,不会包含那些 MySQL 独有的功能。

MySQLi 是 MySQL 的增强接口,同时提供面向过程和面向对象接口,也是目前推荐的 MySQL 驱动,旧的C风格 MySQL 接口将会在今后被默认关闭。MySQLi 的用法和以上两段代码相比,没有太多新概念,在此不再给出示例,可以参见 PHP 官网文档 [注]。

注:http://www.php.net/manual/en/mysqli.quickstart.php

类型约束

通过类型约束可以限制参数的类型,不过这一机制并不完善,目前仅适用于类和 callable(可执行类型) 以及 array(数组), 不适用于 string 和 int.

// 限制第一个参数为 MyClass, 第二个参数为可执行类型,第三个参数为数组
function MyFunction(MyClass $a, callable $b, array $c)
{
    // ...
}

Linux:Linux 中如何打开一个大文本文件

在“大数据”时代,我们会经常遇到有大文本文件(上 GB 或更大)的情况。假设需要我们手工的搜索和编辑这些大文件,或者为了解决一些特定的问题而需要手工分析多个上 GB 的日志文件。传统的文本编辑软件对处理这样的大文件不太有效,当我们试图打开一个大文件时会经常由于内存不足而郁闷的不行。

如果你是一个精明的系统管理员,你也许会用 cat、tail、grep、sed、awk 等这些命令的组合来打开和编辑一个文本文件。在这篇教程里,我将会谈论关于如何在 Linux 中打开(并编辑)一个大文本文件的更友好的方式方法。

Vim 的 LargeFile 插件

Vim文本编辑器拥有大量的插件(或脚本),它们能扩展 VIM 的功能。其中的一个Vim插件是 LargeFile 插件

LargeFile 插件可以使大文件更迅速的被加载和编辑,它是通过关闭 VIM 的一些像事件、回退、语法高亮等功能来实现的。

要在 VIM 上安装 LargeFile 插件,首先要确认是否已经安装 VIM。

在 Debian、 Ubuntu 或 Linux Mint 系统中:

$ sudo apt-get install vim

在 Fedora、CentOS 或 RHEL 系统中:

$ sudo yum install vim-enhanced

可以从 Vim website 上下载 LargFile 插件,最新版本号是5,下载的文件将会保存为 Vimball 格式(以 .vba 结尾)。

要在你的 home 目录下安装插件,用 VIM 打开 .vba 文件,如下所示。

$ gunzip LargeFile.vba.gz
$ vim LargeFile.vba

在 VIM 窗体上输入 “:so %”,然后按回车键,就可以在你的 home 目录下安装这个插件了。

Linux:Linux 中如何打开一个大文本文件
Linux:Linux 中如何打开一个大文本文件

完成后,输入 “:q” 退出 VIM。

这个插件将会被安装在 ~/.vim/plugin/LargeFile.vim 下。现在可以像平常一样使用 VIM 了。

当在 VIM 中装载一个“大”文件的时候,这个插件起的作用就是关掉事件、回退、语法高亮等功能。默认情况下大于 100MB 的文件就会被插件认为是“大文件”。要改变也个默认设置,你可以编辑 ~/.vimrc 文件(如果不存在就创建一个)。

如要把大文件的标准最小定为 10MB 的话,可以在 ~/.vimrc 中添加

let g:LargeFile=10

虽然 LargeFile 可以加速文件装载的速度,但 VIM 自身对编辑相当大的文件支持不太好,因为它会一下子把整个文件都加载进内存。例如,用 VIM 装载 1G 大小的文件,它就会占很多内存和交换空间,如下图所示的顶部输出。

Linux:Linux 中如何打开一个大文本文件
Linux:Linux 中如何打开一个大文本文件

所以如果你的文件明显大于你 Linux 系统的物理内存的话,就要考虑其它的选择,如下所述。

glogg 日志资源管理器

如果你只需要查看一个文本文件,并不对它做编辑,可以考虑下 glogg。它是一款基于图形用户界面的独立日志分析器。这个 glogg 分析器支持通过正则表达式和通配符来对要打开的文本文件进行过滤和筛选,使用户只看到其真正关注的内容。

在 Debian (Wheezy 版本或更高版本)、Ubuntu 或 Linux Mint 系统中安装 glogg : 

$ sudo apt-get install glogg

在 Fedora (17 版本或更高版本) 系统中安装 glogg :

$ sudo yum install glogg

用 glogg 打开文本文件 :

$ glogg test.log

glogg 能很快的打开一个大文本文件。我花了大约 12 秒就打开了一个 1G 的日志文件。

Linux:Linux 中如何打开一个大文本文件
Linux:Linux 中如何打开一个大文本文件

在 “Text” 区域,你可以输入正则表达式,然后点击 “Search” 按纽,它支持表达式大小写敏感搜索以及自动刷新功能。搜索后,在窗体底部会显示出筛选的结果内容。

Linux:Linux 中如何打开一个大文本文件
Linux:Linux 中如何打开一个大文本文件

从装载文件来跟 VIM 对比, glogg 显得更轻量级,在加载完一个 1G 的日志文件后,它仅仅只使用了 83M 的物理内存。

JOE 文体编辑器

JOE 是GPL下发布的一个轻量级的基于终端的文本编辑器。JOE 是一款少有的支持大文件的文本编辑器,可以打开和编辑比物理内存大的文件。

此外,JOE支持各种功能强大的文本编辑功能,如非破坏性编辑,用正则表达式搜索和替换,无限次的撤销/重做,语法高亮等。

在 Debian、Ubuntu 或 Linux Mint 系统中安装 JOE:

$ sudo apt-get install joe

在 Fedora、CentOS 或 RHEL 系统中安装 JOE:

$ sudo yum install joe

要打开编辑文本文件,请运行:

$ joe test.log
Linux:Linux 中如何打开一个大文本文件
Linux:Linux 中如何打开一个大文本文件

相比上面提到的 glogg 来说,用 JOE 加载一个大文本文件会有点卡,加载一个 1G 的文件要用将近 30 秒的时间,不过考虑到要对文件进行全文编辑,这还能忍受。一旦文件加载完成,就可以在相当快捷的终端模式中编辑此文件。

JOE的内存消耗令人印象深刻。加载并编辑一个1GB的文本文件,只花费47MB的物理内存。

Linux:Linux 中如何打开一个大文本文件
Linux:Linux 中如何打开一个大文本文件

如果你还知道在 Linux 中打开/编辑大文本文件的其它方法的话,请跟我们分享!


via: http://xmodulo.com/2013/12/open-large-text-file-linux.html

译者:runningwater 校对:jasminepeng

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

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

Linux:在Linux上将视频转换成动态gif图片

虽然曾经被认为是过时的艺术形式,但动态GIF图片现在复苏了。如果你还没有留意到,不少在线分享和社交网络网站都开始支持动态GIF图片,例如,TumblrFlickrGoogle+Facebook的部分地方。由于在消费和共享上的容易,GIF的动画已经成为主流互联网文化的一部分了。

Linux:在Linux上将视频转换成动态gif图片
Linux:在Linux上将视频转换成动态gif图片

所以,你们中的一些人会好奇怎样才能生成这样的动态GIF图片。已经有各种各样专门用来生成动态GIF图片的在线或离线工具。另一种选择是创建一副动态GIF图片时关闭现有的视频剪辑。在这个教程中,我会描述在Linux上如何将一段视频文件转换成一副动态GIF图片

作为一个更有用的例子,让我展示如何将一个YouTube视频转换成一副动态GIF图片

第一步:下载YouTube视频

首先,下载一个你想要转换的YouTube视频。你可以使用youtube-dl这个工具将YouTube视频保存为MP4文件。假设你把你最爱的YouTube视频保存为”funny.mp4″。(译注:对于墙内的同学,请无视YT吧,自行去好人楼主那里寻找一个MP4吧,;-})

第二步:从视频中解压视频帧

接下来,在Linux系统上安装FFmpeg,我会用这个工具去解压从视频中解压出视频帧。

下面的指令会解压出独立的视频帧,将它们保存为GIF图片。确保使用诸如(“out%04d.gif”)的输出文件格式。这样,独立的帧就被合适地命名并保存。

ffmpeg -t  -ss  -i  out%04d.gif

例如,如果你想解压输入视频的视频帧,从第10秒开始,每5秒一帧,请运行下列命令。

$ ffmpeg -t 5 -ss 00:00:10 -i funny.mp4 out%04d.gif

在完成FFmpeg之后,你会看到一组创建出来的GIF文件,它们被命名为”out[d+].gif”。

第三步:合并视频帧进一副动态GIF

下面这一步要合并单个的GIF文件成一副动态GIF图片。为此,你可以使用ImageMagick。

首先,如果你还没有的话,在Linux系统上安装ImageMagick

convert -delay x -loop 0 out*gif

在这个命令中,”-delay”是控制动态速度的选项。这个选项表示在显示下一帧画面前需要等待的秒数:帧数/每秒帧数 。”-loop 0″选项表示动画的无限次循环。如果你愿意,你可以指定”-loop N”让动画只重复N次。

例如,为了生成一副每秒20帧和循环无数次的动态GIF图片,使用如下命令。

$ convert -delay 1x20 -loop 0 out*.gif animation.gif

第四步(可选):减少动态GIF的大小

最后这一步(可选)是通过使用ImageMagick的GIF优化功能来减少生成的GIF文件的大小。

使用下列命令去减少GIF大小。

convert -layers Optimize animation.gif animation_small.gif

现在你已经准备好在你的社交网络上分享制作完成的GIF图片。 

享受技术带来的乐趣吧!:-)

 


via: http://xmodulo.com/2013/11/convert-video-animated-gif-image-linux.html

译者:KayGuoWhu 校对:wxy

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

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

Linux:给Linux系统/网络管理员的nmap的29个实用例子

Nmap亦称为Network Mapper(网络映射)是一个开源并且通用的用于Linux系统/网络管理员的工具。nmap用于探查网络、执行安全扫描、网络核查并且在远程机器上找出开放端口。它可以扫描在线的主机、操作系统、包过滤器和远程主机上的开放端口。

Nmap 命令和示例

我会分两个章节讲述NMAP的常见的使用方法,这篇是nmap系列的第一部分(译注:原文为I’ll be covering most of NMAP usage in two different parts and this is the first part of nmap serious,这里serious可能为笔误,应该为series)。在这个步骤里,我用两个没有防火墙的服务器来测试nmap命令的工作。

  • 192.168.0.100 – server1.tecmint.com
  • 192.168.0.101 – server2.tecmint.com

Nmap 命令使用

# nmap [Scan Type(s)] [Options] {target specification}

如何在Linux上安装nmap

如今大部分Linux发行版像Red Hat, CentOS, Fedoro, DebianUbuntu已经在它们默认的包管理仓库中包含了nmap,可以通过YumAPT安装、管理和更新软件包。在这些发行版上安装nmap,可以使用下面的命令。

# yum install nmap      [基于 Red Hat 的发行版]
$ sudo apt-get install nmap [基于 Debian 的发行版]

安装了最新的nmap程序之后,你就可以跟着这篇文章中的示例指令来学习了。

1. 带主机名和IP地址扫描系统

nmap工具提供了不同的方法来扫描一个系统。在这个例子中,我使用主机名为server2.tecmint.com的机器执行扫描来找出所有开放端口,服务和系统上的MAC地址。

使用主机名扫描

[root@server1 ~]# nmap server2.tecmint.com
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:42 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 1 IP address (1 host up) scanned in 0.415 seconds
You have new mail in /var/spool/mail/root

使用IP地址扫描

[root@server1 ~]# nmap 192.168.0.101
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:04 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 1 IP address (1 host up) scanned in 0.465 seconds
You have new mail in /var/spool/mail/root

2. 使用”-v”选项扫描

你可以看到带”-v”选项的命令给出了关于远程机器的更多信息。

[root@server1 ~]# nmap -v server2.tecmint.com
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:43 EST
Initiating ARP Ping Scan against 192.168.0.101 [1 port] at 15:43
The ARP Ping Scan took 0.01s to scan 1 total hosts.
Initiating SYN Stealth Scan against server2.tecmint.com (192.168.0.101) [1680 ports] at 15:43
Discovered open port 22/tcp on 192.168.0.101
Discovered open port 80/tcp on 192.168.0.101
Discovered open port 8888/tcp on 192.168.0.101
Discovered open port 111/tcp on 192.168.0.101
Discovered open port 3306/tcp on 192.168.0.101
Discovered open port 957/tcp on 192.168.0.101
The SYN Stealth Scan took 0.30s to scan 1680 total ports.
Host server2.tecmint.com (192.168.0.101) appears to be up ... good.
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 1 IP address (1 host up) scanned in 0.485 seconds
               Raw packets sent: 1681 (73.962KB) | Rcvd: 1681 (77.322KB)

扫描多台主机

你可以简单地通过在namap后写上它们的IP地址或者主机名来扫描多台主机。

[root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:06 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (1 host up) scanned in 0.580 seconds

4. 扫描整个子网

你可以通过通配符来使nmap扫描整个子网或者IP段。

[root@server1 ~]# nmap 192.168.0.*
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:11 EST
Interesting ports on server1.tecmint.com (192.168.0.100):
Not shown: 1677 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
851/tcp open  unknown
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.550 seconds
You have new mail in /var/spool/mail/root

从上面的输出你可以看到nmap扫描了整个子网,并给出了网络在线主机的信息。

5. 使用IP地址的最后一段扫描多台主机

你可以简单地通过指定IP地址的最后8位执行扫描多台主机。比如说,这里我在IP地址为192.168.0.101, 192.168.0.102 and 192.168.0.103的机器上执行了扫描。

[root@server1 ~]# nmap 192.168.0.101,102,103
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (1 host up) scanned in 0.552 seconds
You have new mail in /var/spool/mail/root

6. 从文件中扫描主机列表

如果你有更多的主机要扫描,并且所有的主机都写在一个文件中,你可以直接让namp读取它并执行扫描。让我们看看要怎么做。

创建一个名为“nmaptest.txt”的文本文件,并定义所有你想要扫描的IP地址或者服务器的主机名。

[root@server1 ~]# cat > nmaptest.txt
localhost
server2.tecmint.com
192.168.0.101

接着,带“iL”参数运行nmap命令来扫描文件中所有列出的IP地址。

[root@server1 ~]# nmap -iL nmaptest.txt
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:58 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1675 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp
857/tcp open  unknown
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (3 hosts up) scanned in 2.047 seconds

7. 扫描一个IP范围

在使用nmap扫描时,你可以指定一个IP范围。

[root@server1 ~]# nmap 192.168.0.101-110
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 10 IP addresses (1 host up) scanned in 0.542 seconds

8. 扫描网络时排除部分主机

你可以在执行全网扫描的时候排除一些主机,或者在使用通配符扫描时使用“–exclude”选项。

[root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:16 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 255 IP addresses (1 host up) scanned in 5.313 seconds
You have new mail in /var/spool/mail/root

9. 扫描系统信息

(译注:原文这里提到了traceroute,实在并无此内容,删除之)

使用nmap,你可以检测到运行在远程主机上的操作系统和版本。要启用OS及其版本检测,我们可以使用带 “-A” 选项使用nmap。

[root@server1 ~]# nmap -A 192.168.0.101
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:25 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52814B66%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
Uptime 0.169 days (since Mon Nov 11 12:22:15 2013)
Nmap finished: 1 IP address (1 host up) scanned in 22.271 seconds
You have new mail in /var/spool/mail/root

在上面的输出中,你可以看到运行在远程主机上操作系统的TCP/IP指纹和更详细的运行在远程主机上的特定端口和服务。

10. 使用nmap启用系统检测

使用选项“-O”或“-osscan-guess”同样可以发现OS信息。

[root@server1 ~]# nmap -O server2.tecmint.com
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:40 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52815CF4%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=Option -O and -osscan-guess also helps to discover OSR%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
Uptime 0.221 days (since Mon Nov 11 12:22:16 2013)
Nmap finished: 1 IP address (1 host up) scanned in 11.064 seconds
You have new mail in /var/spool/mail/root

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

Linux:如何在Linux桌面墙纸上显示Google Calendar

Google Calendar 是时下最流行的网页应用程序之一。用户可以通过网络接口或者本地的应用程序跨设备访问或同步 Google Calendar。在 Linux 上,有很多方法可以本地访问 Google Calendar,比如用电子邮件客户端插件(如 Evolution 或 Thunderbird )或者用日历应用程序(如 Sunbird 或 Rainklendar)。这些方法通常都需要安装不必要的大型软件,这些软件你很可能根本不需要。

如果你只是想在本地的 Linux 上翻翻 Google Calendar 或者用它设置提醒,那么你可以考虑使用Google Calendar 命令行接口(或者 gcalcli),这是一种更轻型化的方法。对于 Linux 桌面操作系统用户来说,好处不止这些,如果将 gcalcli 与Conky搭配使用你就可以把 Google Calendar 透明地融入桌面主题。

在这个教程中,我会展示如何利用 gcalcli 和 Conky 将 Google Calendar 融入 Linux 桌面

Linux:如何在Linux桌面墙纸上显示Google Calendar
Linux:如何在Linux桌面墙纸上显示Google Calendar

在 Linux 安装 gcalcli

在安装 gcalcli 之前,要确保你正在用的是 Python 2 而不是 Python 3 ,因为 Python 3 与 gcalcli 不兼容。

如果是在 Debian、Ubuntu 或 Linux Mint 上可以用下面的命令安装 gcalcli

$ sudo apt-get install git python-pip python-gdata python-dateutil python-gflags python-vobject python-parsedatetime
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install 

温馨提醒:Ubuntu 或 Linux Mint 的软件库中虽然有 gcalcli,但是这些版本并不包含其最新的特性和针对 bug 的修复。所以这里推荐按以上所述的方法由源文件构建 gcalcli。

对于Fedora 、CentOS 或 RHEL,可按如下方法安装。

$ sudo yum install git python-pip python-gdata python-dateutil python-gflags python-vobject
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install 

gcalcli 的 Google 认证

为了能让 gcalcli 访问 Google Calendar ,你需要用你的 Google 帐号通过 OAuth2 认证,以使 gcalcli 获得许可来访问你的 Google Calendar。

第一次运行 gcalcli 的时候,OAuth2 认证会自动进行初始化。因此运行下面的命令开始

$ gcalcli agenda

该命令会输出如下的一个 URL 。

Linux:如何在Linux桌面墙纸上显示Google Calendar
Linux:如何在Linux桌面墙纸上显示Google Calendar

同时这个命令也会弹出一个指向该 URL 的浏览器窗口。如果因为一些原因,你的浏览器没有反应,你可以手动复制粘贴这个 URL 到你的浏览器中。

如果你还没有登录你的 Google 帐号,你得先登录。然后你会看到下面要求你许可 gcalcli 管理 Google Calendar 的信息。点击“Accept”即可。

Linux:如何在Linux桌面墙纸上显示Google Calendar
Linux:如何在Linux桌面墙纸上显示Google Calendar

支持 Google Calendar API

认证后,下一步就是支持 Google Calendar 的 API 访问。gcalcli 通过 Google Calendar API 访问Google Calendar 。但是,如果要使用 Google API 就必须明确设置你的 Google 帐号支持 Google API。

首先到:https://cloud.google.com/console。点击项目列表下的“API Project ”

转到“APIs & auth ”下面的“APIs”你会看见一个 Google APIs 列表。点击“Calendar API”的开关按钮使其能支持 API。

现在转到“APIs & auth”下的“Registered apps”那里,去注册 gcalcli app。点击最顶端的“Registered app”按钮。

Linux:如何在Linux桌面墙纸上显示Google Calendar
Linux:如何在Linux桌面墙纸上显示Google Calendar

填写 app 的名字(如,“My Gcalcli”),然后选择“ Native ”作为平台。点击“Registered”按钮。

这一步会生成并显示 OAuth 用户的 ID 和密码。另外关于上面提示的“You have not set up your product name(您没有设置您的产品名称)”,你可以忽略掉。

Linux:如何在Linux桌面墙纸上显示Google Calendar
Linux:如何在Linux桌面墙纸上显示Google Calendar

OAuth的认证结果将会保存在 ~/.gcalcli_oauth 文本文件中。

用 gcalcli 在命令行中访问 Google Calendar

你现在马上就可以用 gcalcli 访问Google Calendar 了。

在你的家目录创建一个如下的 gcalcli 配置文件。将你先前获得的 OAuth 用户 ID 和 密码按下面格式输入进去。

$ vi ~/.gcalclirc

–clientid=’XXXXXXXXXX.apps.googleusercontent.com’ –clientsecret=’YYYYYYYYYYYYYYYY’

到了这一步,你应该可以在命令行运行 gcalcli 了。

试试下面的命令,这两个命令会分别打印出一个你的 Google Calendar 的列表和今后 5 天的日程安排。

$ gcalcli list$ gcalcli agenda

Linux:如何在Linux桌面墙纸上显示Google Calendar
Linux:如何在Linux桌面墙纸上显示Google Calendar

将 gcalcli 与 Conky 结合

最后一步就是将 gcalcli 的输出导入你的桌面主题中。为了做到这一点,你需要 Conky 这个非常强大的工具,它可以把许多信息直接显示在你的桌面主题中。

首先在你的 Linux 系统上 安装 Conky

然后,在你的家目录下的某个地方( 例如 ~/bin )创建如下的脚本程序。

$ vi ~/bin/gcal.sh

#!/bin/sh
gcalcli --conky calw 2 |
  sed -e 's/^[(0x71^[(B/?/g'
      -e 's/^[(0x78^[(B/?/g'
      -e 's/^[(0x6A^[(B/?/g'
      -e 's/^[(0x6B^[(B/?/g'
      -e 's/^[(0x6C^[(B/?/g'
      -e 's/^[(0x6D^[(B/?/g'
      -e 's/^[(0x6E^[(B/?/g'
      -e 's/^[(0x74^[(B/?/g'
      -e 's/^[(0x75^[(B/?/g'
      -e 's/^[(0x76^[(B/?/g'
      -e 's/^[(0x77^[(B/?/g'
$ chmod +x ~/bin/gcal.sh 

重要提醒:上面脚本中的 ‘[’ 必须是真正的 ESCAPE 键( 也就是说在 vi 中按 Ctrl-V 然后按 Esc )。

这个脚本程序将 VT100 转义序列转成Unicode组件图字符。这是必须的一步,因为 Conky 不支持 gcalcli 使用的 ANSI 字符画。

最后,在你的家目录中创建下面的 Conky 配置文件。

$ vi ~/.conkyrc

alignment top_right
maximum_width 630
minimum_size 330 10
gap_x 25
gap_y 50
own_window yes
own_window_type conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
own_window_argb_visual yes
own_window_argb_value 0
update_interval 300
background no
border_width 1
default_color cornflowerblue
default_outline_color white
default_shade_color white
double_buffer no
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
max_port_monitor_connections 64
max_specials 512
max_user_text 16384
text_buffer_size 8096
no_buffers yes
out_to_console no
uppercase no
use_xft yes
xftfont Bitstream Vera Sans Mono:size=10
TEXT
*** Google Calendar Agenda ***
${execpi 300 gcalcli --conky agenda}
${execpi 300 ~/bin/gcal.sh}

这个 Conky 配置文件会直接在你的桌面主题上显示你的 Google Calendar 的一个日程表和一个两个星期的时间表。

现在,你可以运行下面的命令激活 Conky。

$ conky

你应该可以在 Linux 桌面的右边看到 Google Calendar,如题图。

确认 Google Calendar 可以正常运行后,你可以将 Conky 设为在每次登录时自动启动。

设置 Google Calendar 提醒

gcalcli 也可以为 Google Calendar 中即将到来的事件发送一个提醒。它使用 notify-send 命令。对于 Google Calendar 提醒,你可以像下面一样设置一个工作进程。

$ crontab -l

*/10 * * * * /usr/local/bin/gcalcli remind

 


via: http://xmodulo.com/2013/12/integrate-google-calendar-linux-desktop.html

译者:Linchenguang 校对:Caroline

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

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

Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码

当你使用 WEP,WPA 或 WPA2-PSK 连接到无线网络时,选择“自动连接”后密码将保存在Linux Mint(或任何其他的操作系统)中。试想一个情况,例如你需要提供密码给来访者,这时你需要知道WiFi密码,然而你有没有把它记下来。你可以轻松地找到之前连接的WiFi密码。

在这篇新手教程中,我们将会指导你如何在 Linux Mint 16 中找到保存的 WiFi 密码

在 Linux Mint 中找到保存的 WiFi 密码:

找到保存的 WiFi 密码,其实过程非常简单。点击 Menu 输入network。在其中选择Network Connections

Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码
Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码

在 Network Connections 中,你可以看到所有你最近链接过的 WiFi 网络。选择你想要知道密码的一个,点击Edit

Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码
Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码

Wi-Fi Security 选项卡下,选中 Show password 来显示密码。

Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码
Linux:新手教程——在Linux Mint 16中找到保存的WiFi密码

通过以上步骤,你就可以得到保存的 WiFi 密码。你也可以通过类似的步骤在 Ubuntu 中获取保存的 WiFi 密码。希望这篇文章能够帮到你。


via: http://itsfoss.com/find-wifi-password-linux-mint-16/

译者:乌龙茶 校对:Caroline

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

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

Linux:12款Linux终端替代品

如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章。我这里搜集了一些非常有趣的终端软件,可以用来替代debian系的Linux原生终端。

Tilda

tilda

这是一款可配置的雷神之锤风格的终端工具,也就是说,当用户敲击配置好的热键(缺省是F1)时,这个终端会从屏幕的顶端滑出,就跟雷神之锤游戏中的效果一样。

它的安装方法:

apt-get install tilda

Tilda跟其它下拉风格的终端比起来有更丰富的自定义选项。包括:

  • 高度自定义界面
  • 设置Tilda主窗口的透明度。
  • 独特的内置配色方案。
  • 用户可以将命令行窗口蜕化成极简状态。

Yakuake

YaKuake_screenshot_01

Yakuake最初的设计灵感来源就是雷神之锤的终端效果。它本质上就是一个基于KDE Konsole技术的下拉风格的终端。因为它是一个KDE应用,如果你想把它安装到GNOME桌面上,将会遇到一大堆的KDE系统包依赖。但如果你是一个KDE用户,Yakuake会让你相当满意。它的安装方法是:

apt-get install yakuake

 

Guake

guake

这是一个Gnome平台上的下拉式的终端工具。这款终端的目标就是提供一种快速终端访问方式,你只需要按动一个快捷键,就能让它从桌面上出现/消失。这款下拉风格的终端非常的好用。安装,打开,把它设置成开机启动。它能最小化到系统栏上,使用F12能直接把它呼叫出来。

它的安装方式:

apt-get install guake

 

从Applications>Accessories>Guake处运行它。然后右键点击它系统栏图标,然后点击‘preferences’,设置你的喜好。你可以通过“man guake“活动详细帮助信息。

Stjerm

sjterm

这是一款可以和Guake、Tilda相媲美的终端软件。而且它非常的轻巧,有tab页,可以全屏切换。它的安装方式是:

apt-get install sjterm

Terminator

terminator

Terminator是一款跨平台的终端工具,使用的是GPL许可证,提供了很多高级的功能。它没有Guake和Yakuake那样光鲜,但绝对是一款重型武器。它提供的功能包括界面分块,将自己设置成GNOME桌面缺省终端。跟Guake一样,Terminator可以安装到绝大多数的各种Linux版本中。你可以将它的主窗口分成任意多的小块。它的安装方式是:

apt-get install terminator

它的特征可以总结为:

  • 将界面分割成网格状
  • tab页
  • 拖拽排序各个终端
  • 大量快捷键
  • 通过可视化的设置工具调整界面布局和配置喜好。
  • 各个窗口可以并行使用

 

ROXTerm

roxterm

ROXTerm的最初设计目标就是轻量,替代笨重的gnome终端。但后来随着时间的迁移它的目标也发生了变化,变成了一个功能强大的重量级终端工具。它同GNOME桌面环境集成的非常好。支持的功能包括往终端里拖拽文件。它的安装方式是:

apt-get install roxterm

Eterm

eterm_variables

Eterm很可能是这些终端工具中最轻量级的一个。它有彩色的终端输出,目的是来替代xterm。Eterm主题颜色可以配置,运行的非常快。要想启动Eterm,你需要输入’Eterm’(注意是大写的’E’)。别写成了’eterm’。如果没有经验,你可能试很多次才会明白问题出在哪里。它的安装方法是:

apt-get install eterm

Rxvt

rxvt-banner

Rxvt也是一个试图取代xterm地位的Linux终端软件。Rxvt对系统资源的消耗非常小。它的安装方法是:

apt-get install rxvt

Aterm

aterm-scrollAterm是一款基于rxvt的终端工具,它提供了非常漂亮的视觉效果,所有的终端的基本功能它都提供了。此外它还提供了仿透明效果和失去焦点时的淡出效果。它的安装方式是:

apt-get install aterm

Wterm

wterm-linux-terminal-emulator

Wterm是另外一个基于rxvt的轻量级命令行终端。它的功能包括可以设置背景图片,透明效果,反向透明等。大量的设置项使其成为一款可高度自定义的终端工具。它的安装方法是:

 apt-get install wterm

它的缺点是,看起来它好像是已经没人维护了。

TermKit

TermKit-ls

TermKit并不能作为一款日常使用的终端工具。它有一个非常漂亮的图形操作界面。它是基于 WebKit 开发出来的命令行系统。它的安装方式是:

apt-get install termkit

Terminology

Opening-a-file-using-mouse-in-Terminology

这不是一款简单意义上的终端工具,它可以做任何事情。使用Terminology,你可以预览图片,播放视频,不需要打开其他文件管理工具。它是万能的。它的安装方法是:

sudo add-apt-repository ppa:hannes-janetzek/enlightenment-svn
sudo apt-get update
sudo apt-get install terminology

这样你就可以使用它了。我相信你一定会吃惊于它能够做的事情。

[英文原文:Best Terminal alternatives for Linux systems ] 

via : http://www.aqee.net/best-terminal-alternatives-for-linux-systems/ 

Linux:学点Unicode又不会死——Unicode的流言终结者和编码大揭秘

如果你是一个生活在2003年的程序员,却不了解字符、字符集、编码和Unicode这些基础知识。那你可要小心了,要是被我抓到你,我会让你在潜水艇里剥六个月洋葱来惩罚你。

这个邪恶的恐吓是Joel Spolsky在十年前首次发出的。不幸的是,很多人认为他只是在开玩笑,因此,现在仍有许多人不能完全理解Unicode,以及Unicode、UTF-8、UTF-16之间的区别。这就是我写这篇文章的原因。

言归正传,设想在一个晴朗的下午,你收到一封电子邮件,它来自一个你高中之后就失去联系的朋友,并带有一个txt格式(也称为纯文本格式)的附件。这个附件包含下面这样一串二进制bits:

0100100001000101010011000100110001001111

Email的正文是空的,这使它更加神秘。在你启动常用的文本编辑器打开这个附件之前,你有没有想过,文本编辑器是怎么将二进制形式翻译成字符的?这其中有两个关键问题:

  1. 字节是怎样分组的?(例如1个字节的字符和2个字节的字符)

  2. 一个或多个字节是怎么映射到字符上的?

这些问题的答案就在这篇文档(Character Encoding)中,大致说来,编码定义了两件事:

  1. 字节是怎么分组的,如8 bits或16 bits一组,这也被称作编码单元。

  2. 编码单元和字符之间的映射关系。例如,在ASCII码中,十进制65映射到字母A上

字符编码和字符集之间有微小的区别。不过通常它和你无关,除非你在设计一个底层的库。

ASCII码是上个世纪最流行的编码体系之一,至少在西方是这样。下图显示了ASCII码中编码单元是怎么映射到字符上的。

Linux:学点Unicode又不会死——Unicode的流言终结者和编码大揭秘
Linux:学点Unicode又不会死——Unicode的流言终结者和编码大揭秘

有一个即使在经验丰富的程序员中也非常常见的误解就是,纯文本使用ASCII码并且每个字符都是8 bits。

事实是,没有这样的「纯文本」。如果在内存或者硬盘中有一个你不知道编码的字符串,那你就无法翻译或者显示它。这绝对没有第二条路可选。

那么当你刚刚收到的附件没有指定编码格式的时候,计算机会如何翻译它呢?这是否意味着你就永远也读不到失去联系的老朋友想跟你说的话了呢?在我们找到答案之前,我们首先回到那个年代————那个用钱能买到的最大硬盘是29MB的时代。

历史回顾

很久以前,计算机制造商有自己的表示字符的方式。他们并不需要担心如何和其它计算机交流,并提出了各自的方式来将字形渲染到屏幕上。随着计算机越来越流行,厂商之间的竞争更加激烈,在不同的计算机体系间转换数据变得十分蛋疼,人们厌烦了这种自定义造成的混乱。

最终,计算机制造商一起制定了一个标准的方法来描述字符。他们定义使用一个字节的低7位来表示字符,并且制作了如上图所示的对照表来映射七个比特的值到一个字符上。例如,字母A是65,c是99,~是126等等, ASCII码就这样诞生了。原始的ASCII标准定义了从0到127 的字符,这样正好能用七个比特表示。不过好景不长……

为什么选择了7个比特而不是8个来表示一个字符呢?我并不关心。但是一个字节是8个比特,这意味着1个比特并没有被使用,也就是从128到255的编码并没有被制定ASCII标准的人所规定,这些美国人对世界的其它地方一无所知甚至完全不关心。

其它国家的人趁这个机会开始使用128到255范围内的编码来表达自己语言中的字符。例如,144在阿拉伯人的ASCII码中是گ,而在俄罗斯的ASCII码中是ђ。即使在美国,对于未使用区域也有各种各样的利用。IBM PC就出现了“OEM 字体”或”扩展ASCII码”,为用户提供漂亮的图形文字来绘制文本框并支持一些欧洲字符,例如英镑(£)符号。

lpcec9qu3zw3u5uldh_bnawejbesszsmhiv2jm-pyemhgj2ky0vkvn0ousiaqvmv4kmsg_gmhhlhwcbem-uem4wcxkm5hcungr3r7bibhm1ievimyks2cxidbg

用IBM扩展字符集绘制的很酷的DOS启动画面

再强调一遍,ASCII码的问题在于尽管所有人都在0-127号字符的使用上达成了一致,但对于128-255号字符却有很多很多不同的解释。你必须告诉计算机使用哪种风格的ASCII码才能正确显示128-255号的字符。

这对于北美人和不列颠群岛的人来说不算什么问题,因为无论使用哪种风格的ASCII码,拉丁字母的显示都是一样的。英国人还需要面对的问题是原始的ASCII码中不包含英镑符号,但是这个已经无关紧要了。

与此同时,在亚洲有更让人头疼的问题。亚洲语言有更多的字符和字形需要被存储,一个字节已经不够用了。所以他们开始使用两个字节来存储字符,这被称作DBCS(双字节编码方案)。在DBCS中,字符串操作变得很蛋疼,你应该怎么做str++或str–?

这些问题成为了系统开发者的噩梦。例如,MS DOS必须支持所有风格的ASCII码,因为他们想把软件卖到其他国家去。他们提出了「内码表」这一概念。例如,你需要告诉DOS(通过使用”chcp”命令)你想使用保加利亚语的内码表,它才能显示保加利亚字母。内码表的更换会应用到整个系统。这对使用多种语言工作的人来说是一个问题,因为他们必须频繁的在几个内码表之间来回切换。

尽管内码表是一个好主意,但是它不是一个简洁的解决方案,它只是一个hack技术或者说是简单的修正来让编码系统可以工作。

进入Unicode的世界

最终,美国人意识到他们应该提出一种标准方案来展示世界上所有语言中的所有字符,以便缓解程序员的痛苦和避免字符编码引发的第三次世界大战。出于这个目的,Unicode诞生了。

Unicode背后的想法非常简单,然而却被普遍的误解了。Unicode就像一个电话本,标记着字符和数字之间的映射关系。Joel称之为「神奇数字」,因为它们可能是随机指定的,而且不会给出任何解释。官方术语是码位(Code Point),总是用U+开头。理论上每种语言中的每种字符都被Unicode协会指定了一个神奇数字。例如希伯来文中的第一个字母א,是U+2135,字母A是U+0061。

Unicode并不涉及字符是怎么在字节中表示的,它仅仅指定了字符对应的数字,仅此而已。

关于Unicode的其它误解包括:Unicode支持的字符上限是65536个,Unicode字符必须占两个字节。告诉你这些的人应该去换换脑子了。

记住,Unicode只是一个用来映射字符和数字的标准。它对支持字符的数量没有限制,也不要求字符必须占两个、三个或者其它任意数量的字节。

Unicode字符是怎样被编码成内存中的字节这是另外的话题,它是被UTF(Unicode Transformation Formats)定义的。

Unicode编码

两个最流行的Unicode编码方案是UTF-8和UTF-16。让我们看看它们的细节。

UTF-8

UTF-8是一个非常惊艳的概念,它漂亮的实现了对ASCII码的向后兼容,以保证Unicode可以被大众接受。发明它的人至少应该得个诺贝尔和平奖。

在UTF-8中,0-127号的字符用1个字节来表示,使用和US-ASCII相同的编码。这意味着1980年代写的文档用UTF-8打开一点问题都没有。只有128号及以上的字符才用2个,3个或者4个字节来表示。因此,UTF-8被称作可变长度编码。

回到文章开始的问题,来自你老朋友的附件的字节流如下:

0100100001000101010011000100110001001111

这个字节流在ASCII和UTF-8中表示相同的字符:HELLO

UTF-16

另一个流行的可变长度编码方案是UTF-16,它使用2个或者4个字节来存储字符。然而,人们逐渐意识到UTF-16可能会浪费存储空间,但那是另一个话题了。

低字节序(Little Endian)和高字节序(Big Endian)

Endian读作End-ian或者Indian。这个术语的起源可以追溯到格列佛游记。(小说中,小人国为水煮蛋应该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开而争论,争论的双方分别被称为“大端派”和“小端派”。)

低字节序和高字节序只是一个关于在内存中存储和读取一段字节(被称作words)的约定。这意味着当你让计算机用UTF-16把字母A(占两个字节)存在内存中时,使用哪种字节序方案决定了你把第一个字节放在第二个字节的前面还是后面。这么说有点不太容易懂,让我们来看一个例子:当你使用UTF-16存下来自你朋友的附件时,在不同的系统中它的后半部分可能是这样的:

00 68 00 65 00 6C 00 6C 00 6F(高字节序,高位字节被存在前面)

68 00 65 00 6C 00 6C 00 6F 00(低字节序,低位字节被存在前面)

字节序方案只是一个微处理器架构设计者的偏好问题,例如,Intel使用低字节序,Motorola使用高字节序。

字节顺序标记(BOM)

如果你经常要在高低字节序的系统间转换文档,并且希望区分字节序,还有一种奇怪的约定,被称作BOM。BOM是一个设计得很巧妙的字符,用来放在文档的开头告诉阅读器该文档的字节序。在UTF-16中,它是通过在第一个字节放置FE FF来实现的。在不同字节序的文档中,它会被显示成FF FE或者FE FF,清楚的把这篇文档的字节序告诉了解释器。

BOM尽管很有用,但并不是很简洁,因为还有一个类似的概念,称作「魔术字」(Magic Byte),很多年来一直被用来表明文件的格式。BOM和魔术字间的关系一直没有被清楚的定义过,因此有的解释器会搞混它们。

恭喜你读到这里,你一定是一个很有耐心的读者。

还记得文章开头的问题吗,既然没有「纯文本」文件这回事,那你的文本编辑器和浏览器为什么每次都能正确的显示内容呢?答案是,那些软件欺骗了你,这也是为什么那么多人对编码一无所知。当软件不能确定编码的时候,它会猜测。大部分时候,它会猜测是否是涵盖了ASCII码的UTF-8,还是ISO-8859-1,也有可能猜其他能想到的任意字符集。因为英文中使用的拉丁字母表在几乎所有的字符集中都能显示,包括UTF-8,所以即使编码猜错了,英文字母看起来也是正确的。

但是,如果你在浏览网页时看到�符号,这意味着这个网页的编码不是你的浏览器猜测的那个。这时你可以点开浏览器的查看——>字符编码菜单来尝试不同的编码。

总结

如果你没时间读整篇文章或者你仅仅是略读了一下前面的内容。那请你确保你能理解下面的几条:

  • 这个世界上从来没有纯文本这回事,如果你想读出一个字符串,你必须知道它的编码。

  • Unicode是一个简单的标准,用来把字符映射到数字上。Unicode协会的人会帮你处理所有幕后的问题,包括为新字符指定编码。

  • Unicode并不告诉你字符是怎么编码成字节的。这是被编码方案决定的,通过UTF来指定。

还有最重要的:

  • 永远记得通过Content-Type或者meta charset标签来显式指定你的文档的编码。这样浏览器就不需要猜测你使用的编码了,他们会准确的使用你指定的编码来渲染文档。


来源声明:本文来自于10K-LOC的博文《Unicode isn’t harmful for health – Unicode Myths debunked and encodings demystified》,由IDF实验室封畅翻译。

 

Linux:Conky Harmattan : 一款时尚的Linux桌面助手

Linux:Conky Harmattan : 一款时尚的Linux桌面助手
Linux:Conky Harmattan : 一款时尚的Linux桌面助手

俗话说得好,‘力量越大,责任越大’ – 至少在Conky这个Linux的多功能的系统监视工具上面是完全正确的。

一方面它特性强大,灵活性强,另一方面它的设置比较麻烦。

Linux:Conky Harmattan : 一款时尚的Linux桌面助手
Linux:Conky Harmattan : 一款时尚的Linux桌面助手

Conky Harmattan,一个来源于deviantArt用户Zagortenay333的新的主题收集器,同样也不例外。虽然屏幕截图显示的是一个能打动大多数人的时尚桌面小工具,但看到了解到它的复杂配置后估计会吓跑许多人了。

为了帮助使用者,它的作者提供了一步一步的安装指导,如果安装过程未按正常状况进行,它也提供了一个有用的“故障排除” 手册告诉你如何修复一些最常见的问题。

Harmatten包括:

  • 12个主题,包括Ubuntu Touch,Numix和Elementary designs
  • 4种显示模式,包括‘mini’和‘compact‘
  • 2种天气模式
  • 天气单位转换

不像大多数Conky主题,Harmattan不会将别人屏幕的样子复制到你的屏幕上。

默认情况下Harmattan是“固定”;你需要按下ALT键并用鼠标点击和移动它。或者你也可以在设置中调整conky-config中的’x’和’y’值 – 这会浪费不少时间。此外,也别忘记修改Yahoo!天气预报小部件的地区代码,它在.conkyrc里面。

获取Harmattan Conky

要使用这个主题,你需要先从Ubuntu软件中心安装conky-all和curl。如果没有这些某些功能可能无法正常工作。

下一步,从作者deviantArt的页面上下载主题。

之后提取Harmattan文件,按Ctrl + H在Nautilus文件浏览器查看“隐藏”的文件。

最后,根据‘Installation’指导进行。


via: http://www.omgubuntu.co.uk/2014/01/conky-harmattan-for-linux

译者:乌龙茶 校对:wxy

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

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

Linux:每日Ubuntu小技巧——截屏

Ubuntu 是一个功能强大的现代化操作系统,支持你进行多种任务。从使用 Libreoffice 创建和编辑文档到使用 GIMP 处理图片,Ubuntu 都是最佳选择。

如果你需要一个功能强大的操作系统来完成工作,那么你一定会考虑选择 Ubuntu。

你可以用 Ubuntu 来完成的另一件事情是为你的桌面截屏或者激活应用程序的窗口。你可以安装很多第三方工具来完成这些事情,但是实际没有必要,因为 Ubuntu 安装时已自带这些功能。

如果你想向别人展示如何在Ubuntu上面做一些事情,那么这个应用程序就非常有用。截屏得到的图片文件可以保存,也可以通过email发送给其他人。

使用截屏程序,需要进入到面板界面或者直接按下键盘上面的 Windows 键进入面板,Windows 键指的是键盘空格键的左边有 Windows 图标的键。

当面板打开后,找到“截屏”,然后打开这个程序(译者注:需要在已安装程序中查找或者直接在搜索框中输入“截图”)。

以下是你能够通过这个截屏程序做的操作:

  • 截取整个屏幕
  • 截取当前程序窗口
  • 截取特定区域

如果你想在截图时将鼠标箭头一起截取,可以将在下方图片 Effects 选项中的”Include pointer”选项选中即可。

Linux:每日Ubuntu小技巧——截屏
Linux:每日Ubuntu小技巧——截屏

当你选择好你的截屏方式后,点击图片中的‘截图’按钮,然后程序就会退出并且自动保存图片。

如果你想截取特定区域,需要选择该方式,当你点击‘截图’按钮时,鼠标会变成十字形状。此刻,你可以拖拽这个十字形状的鼠标,来得到任意你想截取的区域。在你停止拖拽鼠标后,图片会自动截取。

以上就是你在使用 Ubuntu 时,如何完成一个截图的操作。

希望能够帮助到你,欢迎再来。

享受截屏的欢乐!


via: http://www.liberiangeek.net/2013/12/daily-ubuntu-tips-take-screenshots-of-your-desktop/

译者:liuaiping 校对:Caroline

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

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

Linux:使用6款卓尔不群的Linux操作系统为你的上网本添活力

基于Linux的操作系统的优点是它们可以根据不同的需求定制。因此,在这里我们将为您呈现6款专为上网本设计不同于其它而又有趣的顶尖发行版。

评定一款上网本的OS是否良好,主要取决于它能否“物尽其用”。当在闲置模式下,内存使用应该降到最小限度,你需要一个很好的导航系统来避免屏幕的错乱。

对于一名 Linux 爱好者来说,拥有一款对本本优化过的操作系统,同时还是基于开源技术,这该有多好啊。

Linux:使用6款卓尔不群的Linux操作系统为你的上网本添活力
Linux:使用6款卓尔不群的Linux操作系统为你的上网本添活力
  1. AntiX – 利用了 iceWM 窗口管理器,能帮助维持初始内存的低占用。虽然它并不像 Ubuntu, Mint 和 Elementary 那样风靡,但是它功能齐全。在底部有一个导航任务栏,桌面上的标准跨操作系统图标已经存在数年之久。AntiX 带有一系列的应用程序,其中有少部分不太适合用于上网本。

  2. SparkyLinux – Razor-Qt 的外观和体验是非常传统的,底部有一个面板,菜单位于底部的左下角。SparkyLinux 带有一系列应用程序。开发者再次选择了 LibreOffice 套件,而不是更加轻量的 Abiword 和 Gnumeric 工具包。

  3. Lubuntu – LXDE 桌面非常的轻量,也近乎 Xubuntu 那么容易定制。这桌面在熟悉不过了,在底部有一个面板带有菜单和系统托盘图标。不过,你可以根据自己需要多面板自定义 Lubuntu 外观。Sylpheed 邮件客户端,火狐浏览器,以及 Abiword 和 Gnumeric ,这些应用程序对于上网本来说在合适不过了。

  4. OS4 – 基于 Xubuntu。使用了 XFCE 桌面,完美定制,你可以尝试任何一种方式来工作。XFCE 是一款轻量级的桌面环境,在上网本上运行极佳。然而,你需要安装额外的限制包来播放 Flash 视频和 MP3 , 但是OS4会让这些立马工作。同时安装有 Commodore Amiga 模拟器,你如果喜欢在你的上网本上尝试一款经典复古游戏,这是个再好不过的选项。

  5. Point Linux – 它使用了MATE桌面,使它变得更加独特。MATE 桌面最初源于 GNOME2 ,但是现在它已经凭借自身发展成一个真正优秀的桌面环境。Point Linux 外观看起来非常时尚。菜单看起来非常好,在上网本上的执行效率也很高。类似于 LXDE 和 XFCE 桌面,它也有很高的定制性。Point Linux 默认带有 4 个虚拟工作区,允许你最大限度的使用你的上网本,因此它受到内存和处理器处理显示问题的限制。

  6. Elementary OS – 如果你在寻找一些非常时尚的东西,那么这款绝对适合你。它没有安装 Office 套件,但是你可以挑选你想要的工具。对于网页浏览器你可以用 Midori,邮件客户端可以用 Geary。安装有用来观看视频的 Totem 以及一款名为 Noise的紧凑型音频应用程序。

来源: eyerydaylinuxuser.com


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

译者:Luoxcat 校对:Caroline

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

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

Linux:Linux系统里如何彻底的清空终端屏幕?

Linux用户,特别是Ubuntu或CentOS用户,基本上都习惯使用clear命令或Ctrl+L组合快捷键来清空终端屏幕。但是,这样做其实并不是真正的清空屏幕,它只是给人一种错觉,让人以为屏幕清空了。但当用鼠标向上滚时,你仍然能看到之前的命令操作留下来的输出。当在处理大量的文本时,这种情况就会给我们带来麻烦。

网上能查到很多其它清空屏幕的方法,但基本上都是clear命令的变种。那么,如何能真正的清空屏幕呢?

Linux:Linux系统里如何彻底的清空终端屏幕?
Linux:Linux系统里如何彻底的清空终端屏幕?

很巧,我最近发现了一个命令,它能彻底的解决我们的问题。

printf “33c”正是我们需要的命令。它是真正的清空了终端屏幕,它的功能跟DOS里CMD.EXE提供的CLS效果很相似。

但这个命令究竟是做什么的?它的工作原理是什么?

33  ==  x1B == 27 == ESC

于是,这个命令变成了c,它是VT-XXX中表示“Full Reset (RIS)”的转义码。现今我们使用的所有的终端都是VT兼容的,但如果你发现自己使用的是一个非常奇怪的终端,那这个命令你可能用不了。printf是bash里内置的命令,内置命令的优先级比其它可执行文件要高。

我们还可以使用另外一个命令,reset,它也是清空终端屏幕,但我们仍然可以使用上下键查看历史命令。这个命令的一个缺点是,它执行起来有点慢,也许是因为它没有发送ESC c指令,但这个命令的兼容性显然比之前的那个要好。

reset命令在你的终端控制错乱时非常有用。你是否遇到过输入字符不出现在光标的位置的情况?当你敲击回车键时,新提示符并没有出现在新行上,而是出现在老提示符的前面?reset命令就是来修正这个问题的。你在CYGWIN上也能使用这个命令。 :)

[英文原文:how-to-clear-terminal-screen-for-real ]

via: http://www.vaikan.com/how-to-clear-the-terminal-screen-for-real-in-case-of-linux/ 

Linux:树莓派使用实例之:2 Pi R

很多人都对树莓派的硬件 hack 功能(译注:就是用户可以自己发挥想像力,把树莓派设计成自己想要的机器)感兴趣,而我看中的一点是树莓派的低耗电功能,我可以用它来代替现在在用的 Linux 服务器。在以前的文章中我已经介绍过如何用树莓派代替这些服务器来管理我的啤酒冰箱,以及我在澳大利亚托管的一台树莓派。托管树莓派之后,我开始思考我正在使用的服务器的单点故障问题,并且考虑着手解决它。当你看到文章标题里的“2 Pi R”,你也许会想到圆周长计算公式(C = 2PiR,Pi 为圆周率,R 为半径),但在本文中,“R”的意思是“冗余(redundancy)”。当然,一块树莓派并不能实现冗余,至少需要两块。下面我将介绍如何用两块树莓派实现冗余。

Linux:树莓派使用实例之:2 Pi R
Linux:树莓派使用实例之:2 Pi R

本文将建立一个底层框架,为俩树莓派实现冗余提供基础服务,首先我要用 GlusterFS 建立一个集群网络文件系统。在之后的文章中,我还会介绍如何利用共享存储来建立其他冗余服务。注意,虽然本文使用的是树莓派,但下面的配置操作同样适用于其他硬件。

配置俩树莓派

首先从树莓派官网下载最新的 Linux 发行版,并安装到两块 SD 卡中。将树莓派接到电视机上,然后按照文档提示选择内核镜像并启动系统,确认一下 SSH 服务有没有启动(默认情况下 SSH 应该是开机启动的)。你可以使用 raspi-config 命令来增加根分区空间,以便能充分利用 SD 卡的容量。确认系统正常工作、SSH 正常启动后,我可以过程访问它了。我将树莓派与电视机断开,并连到交换机上,重启系统,没有显示界面。

默认情况下,Raspbian 会通过 DHCP 获取自己的网络信息,但是在设置冗余服务时,我们希望树莓派每次开机都使用同一个 IP 地址。在我的环境中,我设置了我的 DHCP 服务器,它会在树莓派启动时为它们分配固定的 IP 地址。而你可以编辑 /etc/network/interfaces 文件:

iface eth0 inet dhcp

修改成:

auto eth0
iface eth0 inet static
  address 192.168.0.121
  netmask 255.255.255.0
  gateway 192.168.0.1

当然,要将上面的参数修改成你自己的参数,确保每个树莓派使用不同的 IP 地址。我把两个树莓派的主机名都改了,便于在(通过 SSH)登录的时候区分它们。怎么改主机名呢?以 root 权限编辑 /etc/hostname 文件。最后重启系统,确认树莓派使用了正确的网络配置和主机名。

配置 GlusterFS 服务器

GlusterFS 是一个用户态的集群文件系统,我选择它,是因为它配置共享网络文件系统很方便。首先选一个树莓派作为主设备(master)。在主设备上你需要做一些初始化操作,完成后,它们会自动执行故障转移。下面是我架设的环境:

Master hostname: pi1
Master IP: 192.168.0.121
Master brick path: /srv/gv0
Secondary hostname: pi2
Secondary IP: 192.168.0.122
Secondary brick path: /srv/gv0

在开始之前,登入这两个树莓派,然后安装 glusterfs-server 软件包:

$ sudo apt-get install glusterfs-server

GlusterFS 将数据保存在一些被称为“块”的设备中。一个“块”是一个系统路径,由你指定给 gluster 使用。GlusterFS 会将所有“块”组合成一个存储卷,给客户端使用。GlusterFS 会将文件的数据分割成多份,保存在不同的“块”中。所以虽然一个“块”看起来就是一个普通的路径,你最好不要在树莓派中直接操作它,而应该通过客户端访问 GlusterFS 服务,让 GlusterFS 操作。本文中我在两个树莓派中都新建一个 /srv/gv0 目录作为 GlusterFS 的“块”:

$ sudo mkdir /srv/gv0

在我的环境中,我将 SD 卡上的根文件系统共享出来,而你可能需要共享更大的存储空间。如果是这样的话,在两块树莓派上都接上 USB 硬盘,格式化后挂载到 /srv/gv0 上。编辑下 /etc/fstab 文件,确保系统每次启动时都会把你的 USB 硬盘挂载上去。两个树莓派上的“块”不一定需要有相同的名字或者相同的路径名称,但是把它们设置为相同的值也没什么坏处。

配置好“块”的路径,安装好 glusterfs-server 软件包,确认两个树莓派都正常工作,然后登入被你设为主设备的树莓派,输入“gluster peer probe”命令,将次设备加入到集群中。在我的环境中,我用 IP 地址表示第二个节点,如果你比较有个性,并且有设置过 DNS,你也可以用主机名表示这个节点。

pi@pi1 ~ $ sudo gluster peer probe 192.168.0.122
Probe successful

目前为止,我的 pi1 (192.168.0.121) 信任 pi2 (192.168.0.122),我可以建立一个存储卷,名字都想好了:gv0。在主设备端运行命令“gluster volume create”:

pi@pi1 ~ $ sudo gluster volume create gv0 replica 2 192.168.0.121:/srv/gv0 192.168.0.122:/srv/gv0
Creation of volume gv0 has been successful. Please start
the volume to access data.

这里稍微解释一下命令的意思。“gluster volume create”就是新建一个卷;“gv0”是卷名,这个名称将会在客户端被用到;“replica 2”表示这个卷的数据会在两个“块”之间作冗余,而不是将数据分割成两份分别存于两个“块”。这个命令保证了卷内的数据会被复制成两份分别保存在两个“块”中。最后我定义两个独立的“块”,作为卷的存储空间:192.168.0.121 上的 /srv/gv0 和 192.168.0.122 上的 /srv/gv0。

现在,卷被成功创建,我只需启动它:

pi@pi1 ~ $ sudo gluster volume start gv0
Starting volume gv0 has been successful

然后我可以在任何一个树莓派上使用“volume info”命令来查看状态:

$ sudo gluster volume info
Volume Name: gv0
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: 192.168.0.121:/srv/gv0
Brick2: 192.168.0.122:/srv/gv0

配置 GlusterFS 客户端

卷已启动,现在我可以在一个支持 GlusterFS 的客户端上,将它作为一个 GlusterFS 类型的文件系统挂载起来。首先我想在这两个树莓派上挂载这个卷,于是我在两个树莓派上都创建了挂载点,并下面的命令把这个卷挂载上去:

$ sudo mkdir -p /mnt/gluster1
$ sudo mount -t glusterfs 192.168.0.121:/gv0 /mnt/gluster1
$ df
Filesystem         1K-blocks    Used Available Use% Mounted on
rootfs               1804128 1496464    216016  88% /
/dev/root            1804128 1496464    216016  88% /
devtmpfs               86184       0     86184   0% /dev
tmpfs                  18888     216     18672   2% /run
tmpfs                   5120       0      5120   0% /run/lock
tmpfs                  37760       0     37760   0% /run/shm
/dev/mmcblk0p1         57288   18960     38328  34% /boot
192.168.0.121:/gv0   1804032 1496448    215936  88% /mnt/gluster1

如果你是一个喜欢钻研的读者,你可能会问了:“如果我指定了一个 IP 地址,如果192.168.0.121当机了,怎么办?”。别担心,这个 IP 地址仅仅是为了指定使用哪个卷,当我们访问这个卷的时候,卷内的两个“块”都会被访问到。

当你挂载好这个文件系统后,试试在里面新建文件,然后查看一下“块”对应的路径:/srv/gv0。你应该可以看到你在 /mngt/gluster1 里创建的文件,在两个树莓派的 /srv/gv0 上都出现了(重申一遍,不要往 /srv/gv0 里写数据):

pi@pi1 ~ $ sudo touch /mnt/gluster1/test1
pi@pi1 ~ $ ls /mnt/gluster1/test1
/mnt/gluster1/test1
pi@pi1 ~ $ ls /srv/gv0
test1
pi@pi2 ~ $ ls /srv/gv0
test1

你可以在 /etc/fstab 上添加下面一段,就可以在系统启动的时候自动把 GlusterFS 的卷挂载上来:

192.168.0.121:/gv0  /mnt/gluster1  glusterfs  defaults,_netdev  0  0

注意:如果你想通过其他客户端访问到这个 GlusterFS 卷,只需要安装一个 GlusterFS 客户端(在基于 Debian 的发行版里,这个客户端叫 glusterfs-client),然后接我上面介绍的,创建挂载点,将卷挂载上去。

冗余测试

现在我们就来测试一下这个冗余文件系统。我们的目标是,当其中一个节点当掉,我们还能访问 GlusterFS 卷里面的文件。首先我配置一个独立的客户端用于挂载 GlusterFS 卷,然后新建一个简单的脚本文件放在卷中,文件名为“glustertest”:

#!/bin/bash
while [ 1 ]
do
  date > /mnt/gluster1/test1
  cat /mnt/gluster1/test1
  sleep 1
done

这个脚本运行无限循环并每隔1秒打印出系统时间。当我运行这个脚本时,我可以看到下面的信息:

# chmod a+x /mnt/gluster1/glustertest
root@moses:~# /mnt/gluster1/glustertest
Sat Mar  9 13:19:02 PST 2013
Sat Mar  9 13:19:04 PST 2013
Sat Mar  9 13:19:05 PST 2013
Sat Mar  9 13:19:06 PST 2013
Sat Mar  9 13:19:07 PST 2013
Sat Mar  9 13:19:08 PST 2013

我发现这个脚本偶尔会跳过1秒,可能是 date 这个命令并不是很精确地每隔1秒钟打印一次,所以偶尔会出现输出时间不连惯的现象。

当我执行这个脚本后,我登入一个树莓派并输入“sudo reboot”重启这个设备。这个脚本一直在运行,如果出现输出时间不连惯现象,我不知道还是不是上面说的偶然现象。当第一个树莓派启动后,我重启第二个树莓派,确认下这个系统有一个节点丢失后,我的程序仍然能正常工作。这个冗余系统配置起来只需要几个命令,如果你需要一个冗余系统,这是个不错的选择。

现在你已经实现了 2 Pi R 组成的冗余文件系统,在我的下篇文章中,我将会加入新的冗余服务,将这个共享存储系统好好利用起来。


via: http://www.linuxjournal.com/content/two-pi-r

译者:bazz2 校对:wxy

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

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

Linux:每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify

Spotify(译者注:下面译为”声破天”)云音乐服务已经解除了对所有用户及平台(web端/桌面端/手机端)的时间限制,现在用户可以在任何平台、任何时间无限制地听免费音乐。

起初,声破天有个时间限制,新用户自注册帐号时起的前六个月可以免费听音乐,但是这个限制取决于你所在的地区,不过现在所有免费帐号都可以无限制听音乐。

任何使用 Ubuntu 桌面客户端听音乐的用户也没有了之前对免费账户听音乐的限制,Ubuntu 用户可以使用他们最喜欢的桌面操作系统来享受免费音乐。

如果你现在有点小激动,但是还没有安装声破天,那么这里有一个快捷方法来指导你如何在 Ubuntu 上安装最新版本的声破天。

一些地区还不支持声破天的注册,这些地区的用户必须得想点别的办法了(译者注:需要使用代理),这是因为声破天并不是所有国家都支持。下面图片显示的是目前声破天支持的国家列表:

Linux:每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify
Linux:每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify

在 Ubuntu 安装上声破天

要想在 Ubuntu 上安装声破天,需要打开终端然后输入下面命令,将声破天的软件仓库添加到 Ubuntu

sudo apt-add-repository -y "deb http://repository.spotify.com stable non-free"

下一步,将声破天的仓库密钥添加到 Ubuntu,运行下面命令:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 94558F59

最后,更新系统的软件包仓库并且安装声破天,运行下面命令:

sudo apt-get update && sudo apt-get install spotify-client

就这么简单!

在安装完声破天后,你需要打开 Ubuntu 的面板,在里面找到这个软件。打开后,尽情享受你的免费音乐吧!

Linux:每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify
Linux:每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify

via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-use-spotify-in-ubuntu-linux/

译者:liuaiping 校对:Caroline

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

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

Linux:10个开源的基于WEB的文件管理器

目前,随着因特网的广泛普及,对文件管理的需求变得更多。对很多人来说,用一个应用程序来有效管理你在网络上的文件是必不可少的。因此,下面列出你会用到的10个最好的开源的基于WEB的文件管理器。

Linux:10个开源的基于WEB的文件管理器
Linux:10个开源的基于WEB的文件管理器
  1. eXtplorer: 这个程序为你提供了移动、复制、编辑、搜索、删除、下载和上传功能。此外,你也能用 eXtplorer 创建和提取档案,文件夹和新文件。它的主要功能是让你通过 FTP 访问文件。你可以选择 Mozilla 公共许可或者 GPL 协议。为了正常使用这个文件管理器,服务器的PHP最低版本要求为 PHP 4.3 并且必须更新JavaScript。

  2. AjaXplorer: 绝大多数浏览器都支持这个文件管理器,并且它能很轻易地自动适应类似于手机一样的小屏幕浏览。目前iOS版的程序已经被开发出来了,安卓版的也将很快完成。要运行 AjaXplorer:,你所需要的是一个支持 PHP5.1 或者更高版本的WEB服务器来。它允许你直接从服务器流式传输视频内容。

  3. KFM: 这个免费和开源文件管理器可以作为 FCKedition、CKeditor、Tiny MCE 之类的富文本编辑器的插件。如果您正在使用一个基于 Linux 的操作系统,那么你需要 PHP 5.2 或更高版本,而 Mac OS X 和 Windows 分别需要 MySQL 4.1 或更高版本和 MySQL 5.0 或更高版本。它有一个自己的搜索引擎,附带了一个文本编辑器,可以高亮显示语法。它还带有 mp3 播放和视频播放选项。

  4. PAFM: 这个文件管理器可以让用户完全控制文件,还允许使用 CodePress 来编辑源代码。文件管理器的主要特色来自 CodePress,它提供了即时的语法高亮显示。

  5. QuiXplorer: 这个文件管理器可用于在互联网和局域网管理和共享文件。它还提供了一种多用户模式,每个用户可以定制自己的设置。

  6. BytesFall Explorer: 这个使用 PHP 和 JavaScript 编写的管理器在 GPL 下发布。它的 UI 非常类似于 Windows 资源管理器,但是它被用在 GeSHi、LiveTree、Shell 命令、FCKeditor 等项目。因为它有一组不同的功能。

  7. NavPHP: 这个文件管理器是使用PHP和AJAX编写的,并且提供了WindowsXP风格的导航。和 QuiXplorer 一样,这个管理器也有一个多用户模式,并有自己的代码编辑器。此外,它还可以使用Deflate和Gzip来压缩传输网页。你也可以使用这个功能来以zip格式下载文件或文件夹。

  8. iDC File Manager: 这是一个多用户系统,可以安装在基于 Linux 或 Windows 的网页服务器上。它提供了热键功能并支持社交网络,还可以监视用户活动。它的数据库是 MySQL。

  9. FileMan: 这个文件管理器带有一个所见即所得编辑器,可以编辑和创建 HTML 文件。除了 HTML 编辑器,它还具有其他很多有用的功能。

  10. Relay: 这个文件管理器使用 GPL 协议发布,并支持 AJAX。如果你使用大量的目录和文件,那么这个管理器对你来说非常理想。


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

译者:kingname 校对:Caroline

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

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

Linux:Ubuntu 每日贴士:从Ubuntu 13.10升级到14.04(Trusty Tahr) [值得信赖的塔尔羊] … ..

虽然Ubuntu 14.04 按计划不会近期发布正式版,但那些想要尝试最新软件和系统的人现在可以从Ubuntu 13.10 就地升级到 14.04了。

Ubuntu 14.04 目前计划在2014.4.17发布,但是你不必等那么长的时间来升级尝试。这个简要的教程给你展示了如何就地从Ububtu 13.10 升级到 14.04。

就地升级是你在已存在的Ubuntu上运行update-manager命令来升级到下一版。它允许你保留你大多数的文档,设定和一些程序。

大多数就地升级依赖于一个可靠的网络连接。没有良好稳定的连接,可能无法使用这个方法升级Ubuntu。

如果你无法使用网络升级,你还可以通过CD/DVD盘来就地升级。这个方法允许你不通过网络连接离线升级Ubuntu。

升级到 Ubuntu 14.04

为了升级到Ubuntu 14.04, 你首先要给你要升级的电脑做好准备工作。请运行下面的命令更新所有存在的包和内核。

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

完成上述更新后,你可能需要重启来在升级前应用新的包和内核。

接着,按下键盘上的Alt+F2键来打开Ubuntu上的命令窗口。当窗口打开后,输入下面的命令并按下回车

update-manager –d

Ubuntu接着应该带着升级选项会打开update-manager。按下Upgrade 开始升级你的机器。

Linux:Ubuntu 每日贴士:从Ubuntu 13.10升级到14.04(Trusty Tahr) [值得信赖的塔尔羊] ... ..
Linux:Ubuntu 每日贴士:从Ubuntu 13.10升级到14.04(Trusty Tahr) [值得信赖的塔尔羊] … ..

就是这样!

等待Ubuntu完成下载并安装所有的更新包。当一切完成时,你会被提示重启计算机。

享受吧!


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-upgrade-to-ubuntu-14-04-trusty-tahr-from-13-10/

译者:geekpi 校对:wxy

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

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

Linux:Linux下百度云的Python客户端(支持Unicode)

bypy – 百度云/百度网盘的Python客户端


下载地址:

https://github.com/houtianze/bypy


Copyright 2013 Hou Tianze (GitHub: houtianze, Twitter: @ibic, G+: +TianzeHou)

这是一个百度云/百度网盘的Python客户端。主要的目的就是在Linux环境下(命令行)使用百度云盘的2TB的巨大空间。比如,你可以用在Raspberry Pi树莓派上。它提供文件列表、下载、上传、比较、向上同步、向下同步,等等。

全面支持Unicode / 中文。错误重试,递归上/下载,目录比较,哈希缓存。

界面是英文的,主要是因为这个是为了Raspberry Pi树莓派开发的。

第一次运行的时候要通过百度的网页进行授权(一次就好)

 

重要1 想要支持中文,你要把系统的区域编码(locale)设置为UTF-8。

重要2 你需要安装Python Requests 库. 在 Debian / Ubuntu / Raspbian 环境下,只需执行如下命令一次:

sudo pip install requests

上手:

显示使用帮助和所有命令(英文):

bypy.py

更详细的了解某一个命令:

bypy.py help 

显示在云盘(程序的)根目录下文件列表:

bypy.py list

把当前目录同步到云盘:

bypy.py syncup

or

bypy.py upload

把云盘内容同步到本地来:

bypy.py syncdown

or

bypy.py downdir /

比较本地当前目录和云盘(程序的)根目录(这个很有用):

bypy.py compare 

还有一些其他命令 …

哈希值的计算加入了缓存处理,使得第一次以后的计算速度有所提高。

运行时添加 -v 参数,程序会显示进度详情;添加 -d ,程序会显示一些调试信息。

Linux:在Vim里精通Vim

Linux:在Vim里精通Vim
Linux:在Vim里精通Vim

Vim的难学是出了名的,而且当之无愧。虽然内置的vimtutor教材能够教会你一些非常基本的用法,能让你知道如何编辑一个文件,但如果想像传说中的vim高手那样精通它,该怎么办呢?

通过简单的谷歌搜索,你能找到很多如何学习vim的好文章,比如vimcasts里就有很多非常不错的视频,但这些教材并不是用最直接的通过实践的方式来帮助你精通vim。你也许能学会一些非常有趣的技巧,但你如何能保证可以长久的记住如何使用它们?所以,你真正需要的是一个vim学习课件!

vim学习课件由大量的文本形式的学习卡片组成,但里面包含一些vim命令,用来方便的控制这些卡片。此外,因为这个课件是放在vim里面的,你可以方便的试验卡上的任何命令。

这里就是一个使用vim运行的vim学习课件的例子。当这个文件被载入后,它会将vim变成一个vim学习实验室。这种文件有两部分组成。第一部分是一些vimscript,当你加载这些文件时这些脚本将被执行。它们会创建一些键盘命令来让你按队列轻松的移动这些卡片。

第二部分就是教材自身,分为“学习中”和“已会”两部分。(意思就是,当你对一些知识已经学习的很熟,不需要再学习了,你可以把它们移到‘已会’队列里,放着以后再用)。课件里的东西很简单,就是一些命令和相关介绍。

这里是一个视频演示

下面是一个课件的片段:

= Study
ciw
在不选中一个单词的首字母的情况下修改整个单词
`.
跳跃至上一次修改的地方
g*
向前搜索
g;
在修改记录中向后选择
g,
在修改记录着向前选择
= Known
*
向前搜索

想开始学习,你只需要将这个文本内容拷贝到vim缓冲里,保存,然后敲入:so %来加载它。

现在,敲击,,将第一个卡片从队列的顶端移动到底部。记忆,然后重复。

用不了多久,你的vim学习课件就会变成一个非常棒的新知识库。你只需要将带有新技巧的卡片不断的加进去。

看看我们的lab-in-a-file里有没有你喜欢的命令,是缺少了某些非常好的技巧吗?请在评论里告知我们,或fork the gist!

提示:从web页面里将脚本直接拷贝到vim里会粘贴出很多多余的空白符,致使脚本无法运行。而且,如果你使用的Windows系统,脚本的编码格式也会成为一个问题。

[英文原文:Mastering Vim in Vim ]
via: http://www.vaikan.com/mastering-vim-in-vim/

Linux:每日 Ubuntu 小技巧——关闭 Ubuntu 中的关机/重启确认

对于 Ubuntu 新手来说,有很多新东西要学,但是网上很多教程不是针对新手的。

在这里,我们不走寻常路。不能说全部的教程都是为初学者准备,但至少大部分是。

这篇文章也是一篇新手教程,并且展示如何在每次执行关机、重启、注销时禁用确定框。

Ubuntu 总是配置好了一个对话框,每当你要关机、重启或者注销时提示你。

这是一个保护措施,防止你本不打算这样做却错误关机或重启。

不是所有人都想每次关机的时候被询问。忙碌的小伙伴们可能就让自己的电脑那么醒着,因为他执行了关闭命令,却忘了确认那个该死的对话框。

这个教程将会指导你每一次关机的时候如何避免那个对话框。

当这个特性被激活,你将会收到下面的提示。

Are you sure you want to close all programs and shutdown your computer?

运行下面命令关掉它。

按下键盘上的 Ctrl – Alt – T 打开终端。然后敲击下面的命令

gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown true

就这么简单,你再也不会被该死的确认对话框骚扰了。

如果想恢复这个对话框,敲下面的命令就可以了

gsettings set com.canonical.indicator.session suppress-logout-restart-shutdown false
Linux:每日 Ubuntu 小技巧——关闭 Ubuntu 中的关机/重启确认
Linux:每日 Ubuntu 小技巧——关闭 Ubuntu 中的关机/重启确认

 


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-turn-off-shutdown-restart-confirmation-in-ubuntu/

译者:ggaaooppeenngg 校对:Caroline

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

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

Linux:每日 Ubuntu 小贴士——如何在 Ubuntu 中手动安装 LibreOffice

这个简短教程将指导你如何在 Ubuntu 中手动安装 LibreOffice。正如你所知,LibreOffice 已经预装在 Ubuntu 中了。

这个版本是 Ubuntu 的定制版本,能够在 Ubuntu 中更好的工作。它也集成了 Ubuntu 的应用菜单和其它设置。

下载页面中的 LibreOffice 官方版本和你从 Ubuntu 获得的默认版本是不同的。你获得的并不是一个非标准版本,但它稍加定制再加入到 Ubunut 软件库中。

如果你想使用 LibreOffice 的官方标准版,你必须从下载页面手动下载。这意味着,完全卸载当前版本并从官方下载页面下载.deb包。

要做到这一点你必须先完全从 Ubuntu 中清除 LibreOffice。

从 Ubuntu 中卸载 LibreOffice

要在 Ubuntu 中手动安装 LibreOffice 的官方版本,必须先卸载当前版。在 Ubuntu 中要卸载 LibreOffice,运行下面的命令。

sudo apt-get remove --purge libreoffice* && sudo apt-get autoremove

运行以上命令之后,重启你的电脑。当你再次登录以后,从下载页面下载 LibreOffice 的.deb包。

在 Ubuntu 中手动安装 LibreOffice

下载.deb包后,打开终端,在你的 home 目录进入 Downloads 文件夹。默认情况下,Firefox下载的文件保存在那里。

cd ~/Downloads
Linux:每日 Ubuntu 小贴士——如何在 Ubuntu 中手动安装 LibreOffice
Linux:每日 Ubuntu 小贴士——如何在 Ubuntu 中手动安装 LibreOffice

然后运行下面的命令来提取下载文件中的.tar.gz文件。

tar -xvf LibreOffice_*.tar.gz

解压.tar.gz文件后,你会在 Downloads 文件夹下看到一个新的 LibreOffice Deb 文件夹。要开始手动安装 LibreOffice,运行下面的命令。

sudo dpkg -i LibreOffice_*/DEBS/*.deb

运行上面的命令后,LibreOffice 将被安装并可以使用了。

接下来,进入 Unity Dash 并启动 LibreOffice。以上就是指导你在 Ubuntu 中手动安装 LibreOffice 的方法。

Linux:每日 Ubuntu 小贴士——如何在 Ubuntu 中手动安装 LibreOffice
Linux:每日 Ubuntu 小贴士——如何在 Ubuntu 中手动安装 LibreOffice

如果在 Ubuntu 中手动安装 LibreOffice,很有可能每次有版本更新和安全更新时你必须手动更新。

或者你仅仅希望 Canonical(Ubuntu母公司)通过它的储存库进行 LibreOffice 的安装和补丁/更新管理。


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-how-to-manually-install-libreoffice-in-ubuntu/

译者:乌龙茶 校对:Caroline

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

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

Linux:Pipelight – 让 Linux 原生 Chromium/Chrome 无缝支持 ActiveX 控件 (看! 网银!) … …

工行网银, Silverlight, 支付宝控件, 放开那个 Windows 虚拟机, 让 Wine 上吧~

无图无真相:

基本的原理是, 利用 Chrome 里已有的 npactivex (ActiveX for Chrome) 扩展, 配合 pipelight 提供的 npactivex NPAPI 插件, 将 ActiveX 控件本身用 wine 执行, 并且无缝地嵌入 Chrome 网页中.

因为此功能依然在活跃开发中 (今年 FOSDEM 2014 的一个碰撞产生的火花神马的), 稳定版本的 pipelight 暂时没有加入此功能. 大家如果想尝鲜的话, 我下面介绍一下 Arch Linux 里的安装测试方法 (暂时只针对 64 位测试用户哈):

2014/2/27 更新: 因为 pipelight 0.2.5 已经添加了 npactivex 插件, 不再需要手动安装 -git 的版本了.


1. 添加来自 pipelight 的第三方源到 /etc/pacman.conf:

[pipelight]
Server = http://repos.fds-team.de/stable/arch/$arch

2. 添加并授权 pipelight 开发者的软件包签名 PGP key:

sudo pacman-key -r E49CC0415DC2D5CA
sudo pacman-key --lsign-key E49CC0415DC2D5CA

3. 安装 pipelight:

sudo pacman -Sy pipelight

4. 解锁 pipelight 的 npactivex 插件:

sudo pipelight-plugin --unlock npactivex

看到 “Plugin npactivex is now unlocked” 即为解锁成功.

5. 启用 npactivex 插件

sudo pipelight-plugin --enable npactivex

看到 “Plugin npactivex is now enabled” 即为解锁成功.

6. 启动 chrome 浏览器,打开 chrome://plugins, 应该可以看到以下内容:

ActiveX hosting plugin for NPAPI
ActiveX hosting plugin for NPAPI r37
Name: ActiveX hosting plugin for NPAPI
Description: ActiveX hosting plugin for NPAPI r37
Version:
Location: /usr/lib/pipelight/libpipelight-npactivex.so
Type: NPAPI
Disable
MIME types:
MIME type Description File extensions
application/x-itst-activex ActiveX (*.ocx)
.ocx
application/activex-manager ActiveXManager

如果看到下列错误:

Pipelight Error (npactivex)!
Something went wrong, check the terminal output

请从终端打开 chromium/google-chrome, 观察终端出错日志.

7. 安装需要的 ActiveX 控件. 下面以工行控件为例:

7.1. 下载工行网银控件安装包:

wget http://www.icbc.com.cn/icbc/html/download/dkq/icbc_netbank_client_controls.exe

7.2. 安装 mfc42 运行库:

WINEPREFIX=~/.wine-pipelight winetricks -q mfc42

7.3. 安装:

WINEPREFIX=~/.wine-pipelight wine icbc_netbank_client_controls.exe

故障排除: 运行

WINEPREFIX=~/.wine-pipelight wine uninstaller --list

如果输出包含以下内容就说明安装成功了, 否则说明以上某一步出错了

{93156467-FD99-4A30-9CA5-8563F4BB8DB3}|||icbc_netbank_client_controls

8. 安装 np-activex extension:

扩展可以从 Chrome Web Store 直接安装, 地址:https://chrome.google.com/webstore/detail/activex-for-chrome/lgllffgicojgllpmdbemgglaponefajn/related (打不开请翻墙哦 :D)

9. 设置 np-activex extension:

打开 chrome://chrome/extensions, 点击 “ActiveX for Chrome” 旁边的 “选项” (Options), 浏览到 “ICBC工商银行” 所在的条目, 将”已禁用”改为”已启用”.

10. 用 Chrome 打开 https://mybank.icbc.com.cn/icbc/perbank/index.jsp 应该可以正常登陆工行网银了 :D

支付宝控件的安装过程基本一样 (注意不要漏掉设置 WINEPREFIX 哦), 不过在 npactivex extension 的设置界面并没有 Alipay 的选项. 分享一下我测试成功的规则哈:

Mode: WildChar
Pattern: https://*.alipay.com/*
User Agent: MSIE9
Other helper scripts: dynamic ieevent

最后, 感谢 Pipelight 项目. Pipelight 项目是两位德国的大学生发起的项目, 因最初目标是在浏览器里无缝支持 Silverlight 而得名. 如果你愿意表达对他们的感谢, 可以到以下链接为他们赠送 kudo:

https://www.ohloh.net/p/pipelight/contributors/3052248574201504https://www.ohloh.net/p/pipelight/contributors/3052248574201570

感谢 npactivex 项目. npactivex 项目的开发者是 Chuan Qiu, 如果你愿意表达对他的感谢, 可以向他捐赠, 链接是 http://code.google.com/p/np-activex/wiki/Donations

感谢 Wine 项目以及 Wine 项目背后的CodeWeavers公司, 如果你愿意表达对他们的感谢, 可以购买商业版的 CrossOver 支持他们继续为 Wine 做出更多贡献:http://www.codeweavers.com/ 如果有足够多的用户要求, CrossOver 会集成 pipelight 解决方案, 方便更多 Linux 用户 :3

附安装 -git 版本的旧方法:

1. 安装源里的 mingw-w64 组, 全选安装

2. 安装 AUR/pipelight-git, 需要修改 PKGBUILD 的一些部分:

– 删除依赖 mingw-w32-bin
– 在 ./configure 这一行末尾添加 –win32-static

3. 完成安装, pipelight-git 的 wine-browser-installer 和 wine-silverlight 两个依赖也来自 AUR. 

 

via:  http://blog.felixc.at/2014/02/pipelight-let-linux-native-chromium-chrome-support-activex-seamlessly/

Linux:如何选择一个安全的密码

要去解释如何选择一个好的密码,最好方式是去解释如何破解它。通常的破解方式被认为是脱机密码猜测破解。在这个方案中,攻击者从一些需要验证的地方拿到加密的密码文件。他的目的是解密这个加密的密码用来给自己验证。他通过密码测试验证它们是否正确。电脑可以很快处理它们,而且可以同时破解解攻击,如果密码正确会立即得到确认。是的,有一种方式可以阻止这个攻击,这也是为什么ATM卡有4位PIN码的原因。但是上面所说的方法仍然是正确的密码破解方案。

有一些商业程序可以做密码破解,主要是卖给警察局。还有一些黑客工具做同样的事情。这些非常好用。

破解密码的效率主要依赖两个独立的因素:能力和效率。

能力是简单的计算机能力。计算机已经变得很快,它们每秒能测试很多密码。一个程序宣称每秒可以测试800万个密码。那些黑客可能连日在多台机器上同时运行程序。在一个知名的案件中,他们的破解程序运行了几个月。

效率是有能力去猜测密码,而且有智能。它不是按顺序去执行8个字符的组合,例如:从”aaaaaaaa”到”zzzzzzzz”。这可能有2000亿种可能,这其中大量的是没希望的。聪明的密码破解者会先尝试常用密码。

一个典型的密码包含一个词根,加上附加的东西。这个词根不一定是字典里的词,但是它通常是能发音的东西。一个附加物通常是一个后辍(90%可能性)或前辍(10%可能性)。我见过一个破解程序从字典中的大约1000个通用密码开始破解,例如”letmein”, “temp”, “123456”等如此这些字符。然后试着给它们加上100个通用的符加物:”1″, “4u”, “69”, “abc”, “!” 等等相似的字符。它破解了四分之一的密码,尽管这些字符只有100000个组合。

黑客使用不同的字典:英语单词,名字,外来词,语音等等一类的东西来做为词根;两个数字,日期,单个符号和这一类的东西做为附加物。它们动行的字典能做多种复杂替换:”$” 替换成 “s”, “@”  替换成 “a”, “1” 替换成 “l” 和类似的。 这个密码破解策略快速的破解了约三分之二的密码。

现代密码破解者从它们的字典中联合不同的单词组成密码。

这些字典包含一些能被记住的单词,例如:”k1araj0hns0n,” “Sh1a-labe0uf,” “Apr!l221973,” “Qbesancon321,” “DG091101%,” “@Yourmom69,” “ilovetofunot,” “windermere2313,” “tmdmmj17,” 和 “BandGeek2014.”,同时也包含”all of the lights” (是的,很多站点允许空格。), “i hate hackers,” “allineedislove,” “ilovemySister31,” “iloveyousomuch,” “Philippians4:13,” “Philippians4:6-7,” and “qeadzcwrsfxv1331.” “gonefishing1125″。

Linux:如何选择一个安全的密码
Linux:如何选择一个安全的密码

这是为什么经常引用XKCD scheme去生成密码——字符串给合单个单词不是好的建议,比如“correcthorsebatterystaple”。密码破解者知道这个花招。

攻击者会提供他知道的任何密码创建者的人个信息给密码破解者。一个好的密码破解者将从地址簿中测试名字和地址,也会测试任何有意义的日期,和其它他知道的个人信息。邮编通常是附加物。如果可以,猜解者会索引目标的硬盘并生成一个字典包含任何可见字符,包括删除的文件。如果你曾经保存E-mail和密码,这个处理会提取它。并且你的密码会很快被破解。

去年,Ars Technica给三个专家16000条加密的文件,让他们尽可能多的去破解。赢的人破解了90%,最后一名破解了62%——这是几小内完成的。2012年,2007年或更早,同样的事情在发生。如果有任何新的新闻,肯定是比赛的获胜者比人们想像的更容易更快的完成了破解。

几乎能被记住的任何东西,都可以被破解。

还有一种有用的组合方式。回到2008年,我描述它为“施奈尔组合”:

如果你想让你的密码很难被破解,你应该选择一些被破解方案漏掉的组合方式。我的建议是把一个句子转换成密码,比如“This little piggy went to market”可以变成”tlpWENT2m”。破解者的字典中应该是不会有9个字符的密码。当然,请不要用我这个密码,因为我已经公布它了。请选择你自己的句子——个人的。

这是一些例子:

WIw7,mstmsritt… = When I was seven, my sister threw my stuffed rabbit in the toilet.

Wow…doestcst = Wow, does that couch smell terrible.

Ltime@go-inag~faaa! = Long time ago in a Galaxy not far away at all.

uTVM,TPw55:utvm,tpwstillsecure = Until this very moment, these passwords were still secure.

通过这个想法,你是否有一些启示?把自己能记住的句子加上一些个人技巧组合成一个长的密码。当然,这个站点已经能用非希腊字符和任意长度的密码。

实际上比较好的方案是使用随机密码,它包含字母数字(如果站点支持可以带有特殊符号),并且使用一个密码管理工具去创建和存储它,比如:Password Safe。这个工具包含了一个随机的密码生成功能。设置你的密码长度(我的默认值是12位),它会生成一个密码,例如:y.)v_|.7)7Bl, B3h4_[%}kgv) 和 QG6,FN4nFAm_。 这个程序支持减切和贴贴,所以你不用手工输入它们。

选择一个好密码的注意事项:

1 不要重用你的密码。尽管你选择了一个安全的密码,一些站点仍然会泄露它,因为一些站点并不专业。你给某人一个站点或应用的密码,让他去使用这个站点的应用,但他也能把这个密码用在其它站点。

2 不要厌烦密码定期更新。如果站点要求90天更新一次密码,这是弊大于利的。除非你认为你的密码可能被盗用了,不需要更改它。

3 谨慎填写”安全问题”。

4 多一个建议:如果网站提供两种验证方式,请认真考虑使用它。这是非常有必要的安全提升。

原文:http://boingboing.net/2014/02/25/choosing-a-secure-password.html 

Linux:Ubuntu 每日贴士- Skype小更新,修复64位系统上PulseAudio问题

Skype最近为Linux系统发布了一个小更新,包括在Ubuntu上修复PulseAudio 3.x 和 4.x 的音频噪声问题,解决由于缺失libasound2-plugins:i386和其他导致在Ubuntu/Debian 64位系统上的崩溃。

如果你正在Ubuntu上使用Skype,你也许想要升级来获取这些修复。这个版本除了解决这些问题没有其他新的。

这是根据changelog的完整修复列表。

  • 临时解决 PulseAudio 3.x 和 4.x 音频噪声问题。
  • Bug 修复 在打开不带表情符号的聊天时的崩溃。
  • Bug 修复 由于缺失libasound2-plugins:i386依赖而导致的在Ubuntu/Debian 64位系统上不正常崩溃。
  • Bug 修复 一些拨号面板数字不能正常工作。

对于Ubuntu用户,这里是如何更新。

如果你已经安装了Skype,你要在更新前先卸载它因为它会也许会创建与当前安装冲突的文件。

要从Ubuntu移除Skype,在终端上运行命令。

sudo apt-get autoremove --purge skype

在卸载完Skype,进入Skype 下载界面并获取最新的Ubuntu下的版本。保存下载并在Ubuntu软件中心打开它。

Linux:Ubuntu 每日贴士- Skype小更新,修复64位系统上PulseAudio问题
Linux:Ubuntu 每日贴士- Skype小更新,修复64位系统上PulseAudio问题

因为软件中心必须下载额外的Skype包,安装也许会花费一些时间,请耐心等待。

如果你通过软件中心安装Skype时遇到了问题,进入下载文件夹并运行下面的命令来强制按照下面的命令安装Skype。

sudo dpkg -i skype-ubuntu*.deb; sudo apt-get -f install

安装完Skype后,进入Unity 面板并运行此时最新的4.2.0.14版本。

Linux:Ubuntu 每日贴士- Skype小更新,修复64位系统上PulseAudio问题
Linux:Ubuntu 每日贴士- Skype小更新,修复64位系统上PulseAudio问题

就是这样!享受吧!


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-skype-minor-update-fixes-pulseaudio-64-bit-issues/

译者:geekpi 校对:wxy

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

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

Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知

我必须说 VLC 是目前最好的视频文件播放器。VLC 播放器有许多隐藏特性你可能还不知道。其中一个就是桌面通知。在本教程中,我们将会看到如何在 Ubuntu 13.10 和其它版本下启用 VLC 桌面通知

在 Ubuntu 下启用 VLC 桌面通知:

要想在 Ubuntu 下启用桌面通知,依照下面步骤进行:

步骤 1:

打开 VLC 播放器。在顶部菜单内,进入 Tools,接着进入 Preferences

VLC->Tools->Preferences

Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知
Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知

步骤 2:

选择底部的 All 按钮:

Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知
Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知

步骤 3:

现在从左边栏中选择 Control interfaces。在这里,选择 LibNotify Notification Plugin 并保存。这个会在带 Unity 的 Ubuntu 中启用桌面通知。

Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知
Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知

默认通知会显示4000ms也就是4秒。你可以通过控制接口下的通知选项来更改。

Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知
Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知

就这么简单!你可以在播放音频或者视频文件的时候看到通知。它与 Ubuntu 环境完美地整合在一起:

Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知
Linux:快速技巧:如何在 Ubuntu 13.10 下启用 VLC 桌面通知

我希望这个启用桌面通知的快速技巧能使你的 VLC 更加 Ubuntu化,更加时尚化。你觉得如何?


via: http://itsfoss.com/enable-desktop-notification-vlc-ubuntu/

译者:geekpi 校对:Caroline

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

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

Linux:在Linux系统下玩《炉石传说:魔兽英雄传》

Linux:在Linux系统下玩《炉石传说:魔兽英雄传》
Linux:在Linux系统下玩《炉石传说:魔兽英雄传》

《炉石传说:魔兽英雄传》是暴雪娱乐开发的一款免费的集换式卡牌游戏。花点工夫,你也可以在Linux上玩这个游戏。

像Windows平台的大多数游戏一样,《炉石传说:魔兽英雄传》也可以在Wine的帮助下在Linux上运行(Wine Is Not an Emulator)。不过只是安装一下还不够,你得稍微调整一下才行。

非常感谢迈克尔 华盛顿(Google+上Gaming On Linux社区的版主)和迈克尔 斯佩斯(winehq.org的维护者),他们整理汇总了所有需要的指令,现在玩炉石传说只是输入几个命令就好了。

首先,你得先把客户端从暴雪的网站下载下来。它是一个免费游戏,目前还处在beta测试阶段,所有人都可以下载。

然后,你得安装wine的最新开发版本。如果你在用Ubuntu(这份指引最适合Ubuntu),你可以从官方PPA源安装。只需要在终端下输入下面的命令:

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7
sudo apt-get install wine1.7-i386

在网站appdb.winhq.org上可以找到让它运行的所有信息。之后你得编辑几个库的一些属性。

dbghelp

  • 运行winecfg
  • 选择Libraries标签,在New override for library框中输入dbghelp
  • 点击Add,然后在提示框里选择Yes
  • 在Existing overrides列表中点击dbghelp
  • 点击Edit
  • 设置成Disabled
  • 点击Ok,搞定

msvcp100

  • 运行winecfg
  • 选择Libraries标签, 在New override for library框中输入msvcp100
  • 点击Add, 然后在提示框中选择Yes
  • 在Existing overrides列表中点击msvcp100
  • 点击Edit
  • 设置成native,embedded
  • 点击Ok,搞定

你还需要在终端里运行下面的命令,并等待运行结束。

winetricks wininet

之后你所需要做的就是双击从暴雪下载下来的exe文件,就可以开始玩了。

Follow @thesilviu


via: http://news.softpedia.com/news/How-to-Play-Blizzard-s-Hearthstone-Heroes-of-Warcraft-on-Linux-424410.shtml

译者:zpl1025 校对:wxy

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

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

Linux:如何在Linux上提高文本的搜索效率

ack_ampliado

对于系统管理员或程序员来说,当需要在复杂配置的目录中或者在大型源码树中搜寻特定的文本或模式时,grep类型的工具大概是最受欢迎的。

如果grep是你最喜欢的工具之一,那么你可能会更喜欢ack。ack是一个基于Perl的类似于grep的命令行工具,但是搜索速度更快,能力比grep更强。尤其是当你是程序员时,我强烈推荐你使用ack来取代grep。

ack的用法非常适用与代码搜索,因此程序员可以在源码树中进行复杂的查询,而只需要更少的按键。

ack的特性

ack的一些非常强大的特性:

  • 默认搜索当前工作目录
  • 默认递归搜索子目录
  • 忽略元数据目录,比如.svn,.git,CSV等目录
  • 忽略二进制文件(比如pdf,image,coredumps)和备份文件(比如foo~,*.swp)
  • 在搜索结果中打印行号,有助于找到目标代码
  • 能搜索特定文件类型(比如Perl,C++,Makefile),该文件类型可以有多种文件后缀
  • 高亮搜索结果
  • 支持Perl的高级正则表达式,比grep所使用GNU正则表达式更有表现力。

相比于搜索速度,ack总体上比grep更快。ack的速度只要表现在它的内置的文件类型过滤器。在搜索过程中,ack维持着认可的文件类型的列表,同时跳过未知或不必要的文件类型。它同样避免检查多余的元数据目录。

在Linux上安装ack

尽管在大多数Linux发行版中是ack是标准包,可轻易获得(比如在基于debian的系统中,是ack-grep包,而在基于Redhat的系统中则是ack包),但是与发行版捆绑的ack版本仍然是1.x,而ack2.0已经发布,而且拥有更多特性。

因此我准备在官方网站下载,然后安装ack。

方便的是,ack在官网可可作为一个单独的Perl脚本获得,其中整合了所有需要依赖的模块。因此,你不需要额外安装Perl模块来运行这脚本。

为了在你的Linux系统中安装ack,去官网下载最新版本的ack。在写本文时,最新的版本是2.12

$ wget http://beyondgrep.com/ack-2.12-single-file
$ sudo mv ack-2.12-single-file /usr/local/bin/ack
$ sudo chmod 0755 /usr/local/bin/ack

需要注意的是,在基于Debian的系统中,有一个独立的包也叫ack(汉码转换器)。所以如果你碰巧有使用那个包,那么你就必须重命名ack来避免命名冲突了。

ack的使用案例

1.在当前目录递归搜索单词”eat”,不匹配类似于”feature”或”eating”的字符串:

$ ack -w eat

2.搜索有特殊字符的字符串’$path=.’,所有的元字符(比如’$’,’.’)需要在字面上被匹配:

$ ack -Q '$path=.' /etc

3.除了dowloads目录,在所有目录搜索”about”单词:

$ ack about --ignore-dir=downloads

4.只搜索包含’protected’单词的PHP文件,然后通过文件名把搜索结果整合在一起,打印每个文件对应的搜索结果:

$ ack --php --group protected

ack_1

5.获取包含’CFLAG’关键字的Makefile的文件名。文件名为*.mk,makefile,Makefile,GNUmakefile的都在考虑范围内:

$ ack --make -l CFLAG

6.显示整个日志文件时高亮匹配到的字符串:

$ tail -f /var/log/syslog | ack --passthru 192.168.1.10

7.要换取ack支持的文件过滤类型,运行:

$ ack --help-type

ack_2

原文链接: Xmodulo 翻译: 极客范 – minejo译文链接: http://www.geekfan.net/6881/

Linux:你应该了解的 5 个 JavaScript 调试技巧

我之前使用过用printf debugging,自此之后我用这种方法似乎总能更快地解决bug。 在某些情况下需要更好的工具,下面是其中的一些佼佼者,我敢肯定你会发现它们的有用之处:

1. debugger

正如我之前提到的,你可以使用“debugger;”语句在代码中加入强制断点。 需要断点条件吗?只需将它包装它在IF子句中:

if (somethingHappens) {
     debugger;
}

只需记住在上线前移除。

2. 当节点变化时断开

有时DOM像有了自己的想法。当不可思议的变化发生时很难找到问题的根源。 Chrome开发人员工有调试这个问题的超级有用技能。这就是所谓的“Break on…”,你可以通过在元素选项卡上右键DOM节点找到它。 断点可以在节点被删除后设置,当节点的属性更改或者其子树中的节点变化时。

Linux:你应该了解的 5 个 JavaScript 调试技巧
Linux:你应该了解的 5 个 JavaScript 调试技巧

3. Ajax断点

XHR断点或我称作的Ajax断点,也允许当一个预期Ajax请求创建时断开。 当调试你的web应用的网络时这是个让人吃惊的工具。

Linux:你应该了解的 5 个 JavaScript 调试技巧
Linux:你应该了解的 5 个 JavaScript 调试技巧

4. 模拟不同的移动设备

Chrome增加了内置的移动设备模拟工具,这将简化你的日常工作。 选择任何非Console的选项卡找到它们,按键盘上的esc键并选择你想摸你的移动设备。 你当然不会得到一个真正的iPhone,但尺寸、触摸事件和agemt都会为你效仿。

Linux:你应该了解的 5 个 JavaScript 调试技巧
Linux:你应该了解的 5 个 JavaScript 调试技巧

5. 通过审核提升你的站点

YSlow是个伟大的工具。Chrome也在开发人员工具下包含一个称作Audits的类似工具。 使用快速审核一下你的网站,来获得有用实际的优化技巧。

Linux:你应该了解的 5 个 JavaScript 调试技巧
Linux:你应该了解的 5 个 JavaScript 调试技巧

还有什么呢? 没有这些工具我不能想象如何开发。当我发现新的后我会发布更多,敬请期待。

英文原文:5 Javascript debugging tips you’ll start using today  

via : http://www.oschina.net/translate/5-javascript-debugging-tips-youll-start-using-today