Merge pull request #4 from LCTT/master

Update Repo
This commit is contained in:
joeren
2015-05-26 07:58:43 +08:00
16 changed files with 1112 additions and 922 deletions

View File

@@ -0,0 +1,320 @@
五款 Linux 文本编辑器测评
================================================================================
> Mayank Sharma 测试了5款不仅仅是能处理文字的超强文本编辑器。
如果你使用Linux已经有很长一段时间你知道不管是编辑一款app的配置文件还是修改shell脚本或者编写/查看代码类似LibreOffice的工具并不适合。尽管字面上看起来都是一样但是你并不需要一个文字处理器来完成这些任务你需要的是一个文本编辑器。
在这个测评中我们将着眼于5款更能胜任繁重文本工作的轻量级的文本编辑器。他们支持语法高亮像拼写检查一样轻松处理代码缩进。你可以像你复制/粘贴文本那样容易地使用它们记录宏以及管理代码片段。
得益于它们的插件,使得它们足以抗衡其它的以文本为中心的应用程序,一些简单的文本编辑器甚至超出了它们的设计目标。它们能胜任一个源代码编辑器的任务,甚至就是一个集成开发环境。
Emacs和Vim是两款最流行和强大的纯文本编辑器。但是由于一些原因我们在这个测评中并没有包括它们。首先如果你使用它们中的任何一个那么恭喜你你不需要更换了。其次它们都有陡峭的学习曲线尤其是那些熟悉了桌面环境的用户他们很更愿意投入其他有图形界面的文本编辑器。
### 目录: ###
#### Gedit ####
- URL:http://projects.gnome.org/gedit/
- 版本: 3.10
- 许可证: GPL
- Gnome的默认文本编辑器准备好挑战了吗?
#### Kate ####
- URL: www.kate-editor.org
- 版本: 3.11
- 许可证: LGPL/GPL
- Kate会挑战命运吗?
#### Sublime Text ####
- URL: www.sublimetext.com
- 版本: 2.0.2
- 许可证: Proprietary
- 在自由的土地上的带有黄金般的心脏的专利软件。
#### UltraEdit ####
- URL: www.ultraedit.com
- 版本: 4.1.0.4
- 许可证: Proprietary
- 足够证明它的价值了吗?
#### jEdit ####
- URL: www.jedit.org
- 版本: 5.1.0
- 许可证: GPL
- 基于Java的编辑器是否会毁掉其他编辑器的世界?
### 关键标准 ###
除了Gedit和jEdit以外的所有工具都是通过其推荐的安装方法安装在Fedora和Ubuntu上。前者已经兼容默认的Gnome桌面后者仍然固执地反对安装在Fedora上。由于这些是相对简单的应用程序他们没有复杂的依赖唯一例外的是jEdit它要求要有Oracle Java。
得益于Gnome和KDE持续的努力所有编辑器无论在哪个桌面上的外观看起来很好功能也很正常。这不仅是作为评价的标准也意味着你不再受制于你的桌面环境兼容的工具。
除了它们独特的功能,我们也对所有候选者测试了常规的文本编辑功能。然而,它们并没有被设计为模仿现代字处理器的所有功能,我们也不以此评判。
### 编程语言支持 ###
UltraEdit 能进行语法高亮、代码折叠以及拥有项目管理的能力。也有一个罗列源文件中所有函数的功能列表但并不适用于我们测试的任何代码文件。UltraEdit也支持HTML5有一个能添加常用HTML标记的HTML工具栏。
即使Gnome的默认文本编辑器Gedit也有几个面向编码的功能特性例如括号匹配、自动缩进以及为包括C, C++, Java, HTML, XML, Python, Perl, 以及许多其它编程语言进行语法高亮。
如果你需要更多的编程辅助功能看一下Sublime和Kate。
Sublime支持多种编程语言并且能为(那些流行的)C#, D, Dylan, Erlang, Groovy, Haskell, Lisp, Lua, MATLAB, OCaml, R, 甚至 SQL 进行语法高亮。如果这还不够你可以下载插件以支持更多的语言。另外它的语法高亮功能提供了多个可定制选项。这个应用程序也会进行括号匹配确保代码段都正确Sublime的自动补全功能也支持用户创建的变量。就像Komodo IDESublime也可以显示一个全部源代码的滚动预览图这对于长代码文件导航和在文件中的不同部分跳转很方便。Sublime最好的功能之一就是能在编辑器内部运行特定语言例如C++, Python, Ruby等的代码当然假设在你的电脑上安装有编译器以及其它系统工具。省时间而且不用再开终端.
你也可以用插件在Kate中开启构建系统功能。另外你可以为GDB调试器添加一个简单的前端。Kate能和GitSubversion以及Mercurial版本控制系统一起工作也提供了一些项目管理的功能。除了能为超过180种语言进行语法高亮它支持所有的这些辅助功能例如括号匹配自动补全和自动缩进。它也支持代码折叠甚至在一个程序中折叠函数。
唯一的遗憾的是jEdit它声称自己是一个程序员的文本编辑器但它缺少其他的基本功能例如代码折叠它甚至不能提示或者补全函数.
**评分:**
- Gedit3/5
- Kate5/5
- Sublime5/5
- UltraEdit3/5
- jEdit1/5
### 键盘控制 ###
高级文本编辑器的用户希望能完全通过键盘控制和操作,一些应用程序甚至支持用户自定义快捷方式的键盘绑定。
你可以轻松的使用Gedit的扩展键盘快捷键。可以在编辑文件时通过工具的快捷键调用工具例如对一个文档进行拼写检查。你可以看到应用程序内部的一系列默认快捷键但并没有图形化的方式去自定义它们。相似的在Sublime中自定义键盘绑定你需要修改它的XML的键盘映射文件。Sublime由于缺少定义键盘快捷键的图形化界面而饱受批评但长期使用的用户支持当前的基于文件的机制这给了他们更多的控制能力。
UltraEdit为它"一切都可自定义"的座右铭感到自豪,这也包括键盘快捷键。你可以自定义菜单导航的热键,以及定义你自己的访问大量功能的组合键映射。
除了完全可自定义的键盘快捷键以外jEdit也有为Emacs预定义的键映射。Kate在这方面尤其令人映像深刻。它有简单可访问的自定义键绑定窗口。你可以更改默认的键或者定义替代的键。另外Kate也有一个能使用户使用Vi键操作Kate的Vi模式。
**评分:**
- Gedit2/5
- Kate5/5
- Sublime3/5
- UltraEdit4/5
- jEdit5/5
### 片段和宏 ###
宏通过自动化重复的步骤帮助你降低花费在编辑和组织数据上的时间,而代码片段通过创建可重用的源代码块为程序员扩展类似的功能。这两者都能节省你的时间。
标准的Gedit安装没有这两种功能中的任何一种但是你可以通过独立的插件启用这些功能。片段插件随Gedit一起发布但在Gedit内启用宏插件则需要你手动下载和安装(被称为gedit-macropy托管在GitHub上)。
Kate也同样通过插件的形式启用片段功能。一旦加入插件也增加了PHPBash和Java的片段库。你可以在侧边栏中显示片段列表以便于访问。可以通过右击片段或者快捷键组合方式编辑它的内容。然而令人惊讶的是它不支持宏-尽管用户从2002年就不断要求
jEdit也有一个启用片段的插件。它还可以从用户行为中记录宏或者你也可以用BeanShell 脚本语言(BeanShell支持像Perl和JavaScript那样将脚本对象封装为简单的方法)中写宏。jEdit也有一个可以从jEdit的网站中下载多种宏的插件。
Sublime有创建片段和宏的内建功能也有为大多数编程语言经常使用的函数多种片段。
在UltraEdit中片段被称为智能模板就像Sublime中一样你可以根据正在编辑的源代码文件类型插入片段。要完成宏记录功能UltraEdit还有集成了一个基于JavaScript的脚本语言引擎来完成自动任务。你也可以从该编辑器的网站中下载用户提交的宏和脚本。
**评分:**
- Gedit3/5
- Kate1/5
- Sublime5/5
- UltraEdit5/5
- jEdit5/5
### 易用性 ###
不像那些简陋的文本编辑器,这些文本编辑器在这方面可以适应从文档写作者到程序员的各种用户的需要。与精简应用程序相反,他们的开发者在寻找添加更多功能的途径。
尽管第一眼看上去这次测评中的大部分应用有一个很相似的布局,经过仔细的检查,你会发现一些可用性的差异。我们通过用户界面的合理使用来介绍它们的功能和特性,而不是铺天盖地地告诉读者。
#### Gedit: 4/5 ####
Gedit的外观很普通它有一个带有很少的菜单和按钮的简单界面。这是一把双刃剑因为有些用户可能不会发现它真正的潜能。
Gedit可以在选项卡中打开多个文件这些选项卡可以重排和在多个 Gedit窗口之间移动。用户可以选择通过插件来启用侧边栏来浏览文件或者在底部面板显示工具输出内容。这个应用程序会检测到被其它应用程序更改的文件并可以重新加载该文件。
为了适配Gnome在应用程序的最新版本中做了大量的 UI 修改。然而修改还还不稳定,尽管包括了所有的功能,但是菜单交互的一些插件还需要升级。
![在展示一个有功能的应用程序和将它们所有的东西曝光给用户之间有一个很好的平衡。Geddit隐藏了它的大部分功能。](http://www.linuxvoice.com/wp-content/uploads/2014/07/gedit-web.png)
*在功能与界面之间取得了良好的平衡Gedit将其大部分功能隐藏在背后。*
#### Kate: 5/5 ####
尽管用户界面的主要部分和Gedit相似Kate可以在两边显示选项卡并且它的菜单更加丰富。该应用程序平易近人吸引用户来挖掘它的其它功能。
Kate可以在KDE的KIO支持的所有协议上透明地打开和保存文件包括通过HTTP, FTP, SSH, SMB 和 WebDAV。你可以用这个应用同时处理多个文件。但不同于大部分应用程序传统的水平选项卡选择栏Kate在屏幕的两个方向都有选项卡。左侧的侧边栏显示打开的文件列表。需要同时查看一个文件不同部分的程序员也会感激它可以水平或者竖直分隔界面的能力。
![Kate能搭建为功能丰富的集成开发环境](http://www.linuxvoice.com/wp-content/uploads/2014/08/kate-web.png)
*Kate能搭建为功能丰富的集成开发环境。*
#### Sublime: 5/5 ####
Sublime支持你在不同方式同时查看多达四个文件。当你在集中精力编程时它也有一个只显示文件和菜单的全屏无扰模式。
这个编辑器还在右边有个缩略地图,这在长文件中导航非常有用。应用程序为多种编程语言提供多种常用函数的片段,这使得它对于开发者非常有用。另一个精巧的功能是,无论你使用都是文本文档或者代码,都可以任意选择和替换。
![如果你不喜欢Sublime的Charcoal外观你可以选择它包含的其它22种主题。](http://www.linuxvoice.com/wp-content/uploads/2014/08/sublime-web.png)
*如果你不喜欢Sublime的Charcoal外观你可以选择它包含的其它22种主题。*
#### UltraEdit: 3/5 ####
UltraEdit在界面的顶部和底部加载了多种工具栏。加上切换文档的选项卡、两边的面板以及分隔区域使得只剩下一点空间给编辑窗口。
使用HTML的网络开发者有很多唾手可得的帮助。你可以通过FTP和SFTP访问远程文件。高级功能例如记录一个宏以及比较文件也简单易用。
使用应用程序的偏好设置窗口,你可以调整应用程序的多个方面,包括颜色主题和类似语法高亮的其它功能。
![UltraEdit的用户界面是高度可配置的 — 你可以像改变其它许多方面那样简单的自定义工具栏和菜单的布局。](http://www.linuxvoice.com/wp-content/uploads/2014/08/ultraedit-web.png)
*UltraEdit的用户界面是高度可配置的 — 你可以像改变其它许多方面那样简单的自定义工具栏和菜单的布局。*
#### jEdit: 3/5 ####
在可用性方面首先一个不好就是jEdit不能在基于RPM的发行版上安装。导航编辑器需要一些时间来适应因为它的菜单和其它流行的应用程序顺序不同而且有些普通桌面用户不熟悉的名字。但是该应用程序有详细的内部帮助这有利于缓解学习曲线。
jEdit会高亮你所在的当前行并使你能以多种查看方式分隔窗口。你可以简单地从应用程序中安装和管理插件除了使用完整的宏jEdit也支持你快速记录一个临时的宏。
![由于它的Java基础jEdit在任何桌面环境中都不能给人宾至如归的感觉](http://www.linuxvoice.com/wp-content/uploads/2014/08/jedit-web.png)
*由于它的Java基础jEdit在任何桌面环境中都不能给人宾至如归的感觉*
### 可用性和支持 ###
在Gedit和Kate之间有很多相似性。两个应用程序都得益于他们各自的父项目Gnome和KDE捆绑在各种主流的发行版中。另外两个项目都是跨平台的有Windows和Mac OS X版本以及原生的Linux版本。
Gedit托管在Gnome的网站上并有一个简单的用户指南、关于多种插件的信息以及包括邮件列表和IRC通道在内的常用联系方式。你也可以在其它基于Gnome的发行版例如Ubuntu中找到使用信息。相似地Kate得益于KDE的资源并包括详细的用户信息以及邮件列表和IRC通道。你也可以从应用程序中获取相应的离线用户指南。
除了LinuxUltraEdit在Windows和Mac OS X中也可用虽然在应用程序中并没有包括但在启动时也有详细的用户指南。为了辅助用户的使用UltraEdit保存了一个常见问题的数据库一系列关于多种特定功能的详细介绍用户还可以在论坛版块彼此帮助。另外付费用户也可以通过邮件从开发者中获取支持。
Sublime支持一样多的平台但是你需要单独为每种平台购买许可证。开发者通过博客让用户了解正在进行的开发并积极参加它的论坛。这个项目支持设施的亮点是提供免费的详细教程和视频课程。Sublime非常漂亮。
由于jEdit是用java编写的所以它在多种平台中都可用。在它的网站上你可以找到一个详细的用户指南以及一些插件帮助文档的链接。然而这里没有能使用户和其他用户或者开发者交流的途径。
**评分:**
- Gedit4/5
- Kate4/5
- Sublime5/5
- UltraEdit3/5
- jEdit2/5
### 附加组件和插件 ###
不同的用户有不同的需求,一个简单的轻量级应用程序只能做到这么多。这就是为什么需要插件的原因。应用程序依赖于这些小部件来扩展它们的功能集并让更多的用户使用。
UltraEdit是一个例外。它没有第三方插件但开发者将例如HtmlTidy这样的第三方工具集成到了UltraEdit。
Gedit附带了好多已安装的插件你可以下载更多的更多gedit插件包。基于和Gedit版本的兼容性项目网站也有到多个第三方插件的链接。
三个对程序员非常有用的插件是Code Comment、在底部面板增加一个终端的Terminal Plugin以及Session Saver。当你用多个文件开发项目的时候Session Saver相当有用。你可以在选项卡中打开文件保存会话你可以用一键恢复就可以按照你保存时的选项卡顺序打开所有的文件。
类似的你可以通过用内部的插件管理器增加插件来扩展Kate。除了令人映像深刻的项目插件一些开发者使用的插件包括嵌入式终端它能编译和调试代码以及对数据库执行SQL查询。
Sublime的插件是用Python写的文本编辑器包括了一个类似于apt-get能使用户查找安装升级和移除插件包的名为Package Control的工具。通过插件你可以在Sublime中使用Git版本控制以及美化JavaScript代码的JSLint工具。Sublime Linter能指出你代码中的错误是编码人员必备的插件。
jEdit拥有最令人印象深刻的插件设施。该应用有超过200个插件可以在它们自己的专用网站中浏览。网站通过不同的类型列出了插件例如文件管理版本控制文本等。你可以在每个类型下找到很多的插件。
一些最好的插件是Android插件它们提供了和Android项目协同工作的工具你可以使用TomcatSwitch插件创建和控制外部Jakarta Tomcat服务器进程以及类似于Vi功能的Vimulator插件。你可以通过使用jEdit的插件管理器安装这些插件。
**评分:**
- Gedit3/5
- Kate4/5
- Sublime4/5
- UltraEdit1/5
- jEdit5/5
### 纯文本编辑 ###
尽管它们强大的额外功能甚至可能会取代几种完全成熟的应用程序,有时候可能只需要使用这些庞大的文本编辑器读、写或者编辑简单的纯文本。虽然你可以使用它们中的任何一个输入文本,我们通过普通文本编辑的方便性评价它们。
Gnome的默认文本编辑器Gedit支持取消和重做机制以及搜索和替换。它可以对多种语言进行拼写检查并能通过使用Gnome GVFS库访问和编辑远程文件。
你也可以使用Kate进行拼写检查它也可以让你对任何高亮文本进行Google搜索。它还有一个能可视化告知用户文件中更改过但没有保存的行的行修改系统。另外它通过允许用户在文件中使用书签简化长文档的导航。
Sublime有很多可选择的编辑命令例如缩进文本和格式化段落。它的自动保存功能帮助防止用户丢失他们的更改。高级用户还会喜欢基于正则表达式的递归查找和替换功能以及选择多个不连续的文本块并执行统一操作。
UltraEdit也允许用户在查找和替换功能中使用正则表达式并能通过FTP编辑远程文件。
JEdit一个独特的功能是它支持被称为寄存器的不限数目的剪切板。你可以复制文本片段到这些寄存器中在编辑会话过程中都可用。
**评分:**
- Gedit4/5
- Kate5/5
- Sublime5/5
- UltraEdit4/5
- jEdit4/5
### 我们的评比 ###
在这里的所有编辑器都足以替换你已有的文本编辑器,来编辑文本和调整配置文件。事实上,没准它们会组合起来作为你的集成开发环境。这些应用程序都有各种各样功能,它们的开发者不会考虑剥离功能,而是增加越来越多的功能。
jEdit排在这次测试的最后面。因为它不仅坚持使用专有的Oracle Java运行时环境不能在你的Fedora机器上安装而且开发者并不积极和用户交互。
UltraEdit做的稍微好一点。这个商业专用工具专注于网络开发者不为非开发者的高级用户提供任何功能使得它不值得推荐为免费软件的替代品。
排在第三的是Gedit。作为Gnome的默认编辑器它没有任何内在的问题但尽管有很多积极的方面它还是略微被Sublime和Kate超越。开诚布公地说Kate是比Gedit更通用的编辑器甚至考虑到他们的插件系统评分也优于Gnome的默认编辑器。
Sublime和Kate都相当好。他们在我们的大多数测试中表现同样出色。Kate由于不支持宏而落后于Sublime但键盘友好和能简单定义自定义键绑定又使Kate找回优势。
Kate成功的原因可以归结为它通过最小化学习曲线提供了最大化的功能。尽管使用它吧不仅作为简单文本编辑器使用或者容易使用语法高亮编辑配置文件甚至得益于其项目管理能力能使用它协作一个复杂的编程项目。
我们不是选择Kate去替换一个类似“[XX在这里插入你最喜欢的专业工具]”的全面的集成开发环境。但是它是一个专业工具理想的、全面的、以及完美的垫脚石。
Kate为能快速响应你的需要而设计它的界面并不会使你茫然并且和那些过于复杂的应用一样的有用。
### 1st Kate ###
- Licence LGPL/GPL Version 3.11
- www.kate-editor.org
- 拥有超能力,态度温和的文本编辑器。
- Kate是KDE项目中最有用的应用程序之一。
### 2nd Sublime Text ###
- Licence 专利 Version 2.0.2
- www.sublimetext.com
- 值得你每分钱的专业文本编辑器 - 简单易用,功能全面而且看起来很棒。
### 3rd Gedit ###
- Licence GPL Version 3.10
- http://projects.gnome.org/gedit
- 在Gnome中就用它吧。这是一个奇妙的文本编辑器确实令人钦佩的工作但这里的竞争实在太大了。
### 4th UltraEdit ###
- Licence Proprietary Version 4.1.0.4
- www.ultraedit.com
- 关注于为网络开发者提供各种便利,而不为普通用户提供任何特殊功能。
### 5th jEdit ###
- Licence GPL Version 5.1.0
- www.jedit.org
- 缺乏支持不支持Fedora缺乏好看的界面jEdit被贬低到最后。
### 你也许希望尝试… ###
随你发行版发布的默认文本编辑器也能帮助你一些高级任务。例如KDE的KWrite和Raspbian的Nano。得益于KDE的katepart组件KWrite继承了一些Kate的功能得益于在树莓派上的可用性Nano也开始重现风头。
如果你希望跟随Linux大师的脚步你总是可以尝试高大上的文本编辑器Emacs和Vim。想尝试Vim强大的用户首先可以考虑gVim它通过图形界面展现了Vim的强大。
除了jEdit和Kate这里还有其他模仿Emacs和Vim之类的旧式高级编辑器的编辑器比如JED 编辑器和Joe's Own Editor这两者都有Emacs的模拟模式。另一方面如果你在寻找轻量级的代码编辑器可以看看Bluefish和Geany。他们的存在是为了填补文本编辑器和全面集成的开发平台之间的空隙。
--------------------------------------------------------------------------------
via: http://www.linuxvoice.com/text-editors/
作者:[Ben Everard][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[royaso](https://github.com/royaso),[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.linuxvoice.com/author/ben_everard/

View File

@@ -1,7 +1,7 @@
Inxi——获取Linux的系统和硬件信息
Inxi获取Linux的系统和硬件信息
================================================================================
我们已经展示了一些不同的[应用程序][1]和方法来获取Linux的系统和硬件信息。在这一系列我们将看到如何使用**inxi**来获取这些详情信息。在论坛技术支持中,它可以作为调试工具,迅速确定用户的系统配置和硬件信息。
我们已经展示了一些不同的[应用程序][1]和方法来获取Linux的系统和硬件信息。在这一系列,我们将看到如何使用**inxi**来获取这些详情信息。在论坛技术支持中,它可以作为调试工具,迅速确定用户的系统配置和硬件信息。
**Inxi**是一个可以获取完整的系统和硬件详情信息的命令行工具,内容包括:
@@ -86,7 +86,7 @@ Inxi在多数现代GNU/Linux操作系统的默认软件仓库中。所以我们
Machine: System: Dell (portable) product: Inspiron N5050
Mobo: Dell model: 01HXXJ version: A05 Bios: Dell version: A05 date: 08/03/2012
只有硬性详情信息,它也可以显示我们系统中的**可用软件仓库列表**。
仅是硬性详情信息,它也可以显示我们系统中的**可用软件仓库列表**。
inxi -r
@@ -110,7 +110,7 @@ Inxi还可以显示你所在位置的天气信息。感到意外吗是的
inxi -W Erode,Tamilnadu
这里**Erode**是区,**Tamilnadu**是印度的一个邦。
这里**Erode**是区,**Tamilnadu**是印度的一个邦。
示例输出:
@@ -118,7 +118,7 @@ Inxi还可以显示你所在位置的天气信息。感到意外吗是的
### 查看完整的硬件详情信息 ###
厌倦了获取每种硬件的信息?你可以使用如下命令将所有信息一次列出:
厌倦了逐一获取每种硬件的信息?你可以使用如下命令将所有信息一次列出:
inxi -F
@@ -164,9 +164,9 @@ via: http://www.unixmen.com/inxi-find-system-hardware-information-linux/
作者:[SK][a]
译者:[goreliu](https://github.com/goreliu)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/sk/
[1]:http://www.unixmen.com/screenfetch-bash-screenshot-information-tool/
[1]:https://linux.cn/article-1947-1.html

View File

@@ -1,29 +1,30 @@
现在值得去尝试一下在CentOS 7.xFedora 21上面安装PHP 7.0
在CentOS 7.x / Fedora 21 上面体验 PHP 7.0
===============================================================================
PHP是一种为我们熟知的通用的服务器网页脚本语言。超大量的在线网站都是用PHP编写的。PHP过去一直在更新丰富功能易于使用而且很好组织的脚本语言。目前PHP的开发团队正筹备下一个PHP版本的发行名字是PHP 7。现在的PHP版本为PHP 5.6可能你清楚PHP 6已经流产了PHP 7的支持者们不希望下一个重要的版本被其他分支混淆即过去已经停止很久的PHP 6。所以决定下一个PHP主要的发行版本叫PHP 7而不是PHP 6。PHP 7.0预计在今年十一月份发行。
在下一个主要的PHP发行版里有一些不错的功能
PHP是一种为我们熟知的通用服务器网页脚本语言。非常多的在线网站都是用PHP编写的。PHP这些年来一直在持续进化丰富其功能变得易于使用更好地组织的脚本语言。目前PHP的开发团队正筹备下一个PHP版本的发行名字是PHP 7。现在的PHP版本为PHP 5.6可能你清楚PHP 6已经流产了PHP 7的支持者们不希望下一个重要的版本被其他分支混淆即过去已经停止很久的PHP 6。所以决定下一个PHP主要的发行版本叫PHP 7而不是PHP 6。PHP 7.0预计在今年十一月份发行
- 为了提升执行效率与记忆痕迹PHPNG功能被添加到新的发行版中。
- JIT引擎被收入来动态编译Zend操作码为自然机器码以此来达到更快的处理性能。这项功能允许随后的程序调用同一份代码这样会运行快很多。
在下一代主要PHP版本里有一些不错的功能
- 为了改善执行效率与内存占用新的版本添加了PHPNG功能。
- 引入了JIT引擎来动态编译Zend操作码为自然机器码以此来达到更快的处理性能。这项功能允许随后的程序调用同一份代码这样会运行快很多。
- AST抽象语法树是最新添加的功能它可以增强支持PHP的扩展性和用户应用。
- 异步编程功能会添加支持并行任务,在同样的需求下
-新的版本会支持独立多线程网页服务,这样可以使用一个单独的存储处理很多并发的请求。
- 添加异步编程功能以支持同一个请求中的并行任务
- 新的版本会支持独立多线程网页服务,这样可以使用一个单独的存储处理很多并发的请求。
### 在CcentOS/Fedora上安装PHP 7 ###
### 在CentOS/Fedora上安装PHP 7 ###
让我们来看看怎样在CentOS 7和Fedora 21安装PHP7。为了安装PHP7我们首先需要克隆php-src 仓库。当克隆工作完成,我们配置和编译它。进行下一步之前我们要确保已经在LInux系统下安装了如下的东西否则PHP编译会返回错误,然后流产
让我们来看看怎样在CentOS 7和Fedora 21安装PHP7。为了安装PHP7我们首先需要克隆php-src 仓库。当克隆工作完成,我们配置和编译它。进行下一步之前我们要确保已经在LInux系统下安装了如下的组件否则PHP编译会返回错误中止
- Git
- autoconf
- gcc
- bison
所有上面提到的要求可以使用Yum软件包管理器安装。用连续的一个命令应该这样
所有上面提到的要求可以使用Yum软件包管理器安装。以下一条命令即可完成
yum install git autoconf gcc bison
准备好开始安装PHP7了吗让我们先创建一个PHP7目录作为你的工作目录。
准备好开始安装PHP7了吗让我们先创建一个PHP7目录作为你的当前工作目录。
mkdir php7
@@ -143,7 +144,7 @@ PHP是一种为我们熟知的通用的服务器网页脚本语言。超大
--with-mysqli=/usr/bin/mysql_config
这会花去不少的时间,一旦完成你应该会看到如下面的输出:
这会花去不少的时间,完成你应该会看到如下面的输出:
creating libtool
@@ -206,9 +207,9 @@ PHP是一种为我们熟知的通用的服务器网页脚本语言。超大
运行下面的命令,完成编译过程。
manke
make
“make”命令过后的样例输出如下所示:
“make”命令的样例输出如下所示
Generating phar.php
@@ -294,7 +295,7 @@ PHP是一种为我们熟知的通用的服务器网页脚本语言。超大
cd sapi/cli
在这里验证PHP的版本。
验证一下PHP的版本。
[root@localhost cli]# ./php -v
@@ -306,7 +307,7 @@ PHP是一种为我们熟知的通用的服务器网页脚本语言。超大
### 总结 ###
PHP 7也[添加到了remi仓库][1],即将到来的版本主要关注执行效率的提升,新特性致力于使PHP较好满足现代编程的需求和趋势。PHP 7.0将会有许多新的特性丢弃一些老版本的东西。在接下来的日子里,我们希望看到新特性和弃用功能的具体情况。尽情享受吧
PHP 7也[添加到了remi仓库][1]这个即将到来的版本主要关注执行效率的提升,它的新特性致力于使PHP较好满足现代编程的需求和趋势。PHP 7.0将会有许多新的特性丢弃一些老版本的东西。在接下来的日子里,我们希望看到新特性和弃用功能的具体情况。希望你喜欢
--------------------------------------------------------------------------------
@@ -314,7 +315,7 @@ via: http://linoxide.com/linux-how-to/install-php-7-centos-7-fedora-21/
作者:[Aun Raza][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -1,62 +1,61 @@
如何在CentOS上面安装CentOS网页面板
如何在CentOS上面安装CentOS网页面板
===========================================================================
![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/04/centos-790x427.jpg)
### 关于CentOS网页面板 ###
目前有很多免费的或者付费的控制面板。今天,我们来讨论[CentOS网页面板CWP][1]这是特别为基于如CentOSRHEL科研用Linux系统等发行版的RPM设计的。**CWP** 是免费且开源的控制面板,可以被广泛用于简单地配置一个网页集群环境。不同于其他的控制面板CWP自动用高速缓存来配置LAMP的栈区
目前有很多免费的或者付费的控制面板。今天,我们来讨论[CentOS网页面板CWP][1],这是特别为基于RPM 的发行版,如CentOSRHELScientific Linux等设计的。**CWP** 是免费且开源的控制面板,可以被广泛用于简单地配置一个网页托管环境。不同于其他的控制面板CWP自动部署LAMP的软件栈及Varnish 缓存服务器
### 特性 ###
CWP有很多的特性和免费的服务。如我前面提到的一样CWP自动在你的服务器上安装全套LAMP服务apachephpphpmyadminwebmailmailserver等等
CWP有很多的特性和免费的服务。如我前面提到的一样CWP在你的服务器上自动安装全套LAMP服务apachephpphpmyadminwebmailmailserver等等
### CWP安装过程中会安装和配置的软件列表 ###
- Apache Web Server
- Apache 网页服务器
- PHP 5.4
- MySQL + phpMyAdmin
- Postfix + Dovecot + roundcube webmail
- CSF Firewall
- File System Lock (no more website hacking, all your files are locked from changes)
- Backups; AutoFixer for server configuration
- CSF 防火墙
- File System Lock (不需要修改网站,你的所有文件都会被锁定修改)
- Backups; AutoFixer ,用于服务器配置
### 第三方应用: ###
- CloudLinux + CageFS + PHP Selector
- Softaculous Script Installer (Free and Premium)
- Softaculous 脚本安装器 (免费版和白金版)
#### 网页服务器: ####
- Varnish Cache server
- Compiles Apache from source
- Apache reCompiler + Additional modules
- Apache server status, configuration
- Edit apache vhosts, vhosts templates, include configuration
- Rebuild all apache Virtual hosts
- Varnish 缓存服务器
- 从代码编译 Apache
- Apache 重新编译+附加模块
- Apache 服务器状态,配置
- 编辑 Apache 虚拟主机、虚拟主机模版,包括配置
- 重建所有 Apache 虚拟主机
- suPHP & suExec
- Mod Security + OWASP rules
- Tomcat 8 server management
- DoS protection
- Perl cgi script support
- Mod Security + OWASP 规则
- Tomcat 8 服务器管理
- DoS 防护
- Perl cgi 脚本支持
#### PHP: ####
- PHP 切换器 (在PHP版本如: 5.2, 5.3, 5.4, 5.5之间切换)
- PHP选择器选择每个用户或者每个文件的PHP版本PHP 4.4, 5.2, 5.3, 5.4, 5.5, 5.6)
- 简单的php编辑软件
- PHP 切换器 (在PHP版本如: 5.2 5.3 5.4 5.5之间切换)
- PHP选择器选择每个用户或者每个文件的PHP版本PHP 4.4 5.2 5.3 5.45.5 5.6)
- 简单的php编辑
- 在用户面板下简单的php.ini生成器
- PHP 插件
- PHP.ini editor & PHP info & List modules
- PHP.ini 编辑器 & PHP 信息 和列出模块
- 每个帐号一个php.ini
- FFMPEG,用于视频流网站
- FFMPEG用于视频流网站
- CloudLinux + PHP 选择器
#### 用户管理 ####
- 添加,列举,编辑和移除用户
- 添加、列出、编辑和移除用户
- 用户监管
- Shell接入管理
- Shell访问管理
- 用户限制管理
- 限制进程
- 限制访问文件
@@ -67,85 +66,85 @@ CWP有很多的特性和免费的服务。如我前面提到的一样CWP自
#### DNS: ####
- FreeDNS
- 添加编辑,列举和移除DNS区块
- 添加编辑、列出和移除DNS区块
- 编辑域名服务的IP
- DNS区块模板编辑器
- 新的易用DNS区块管理器 (用ajax)
- 新的DNS区块列表带有额外的修复信息 (同时检测 rDNS, 域名服务….)
- 新的DNS区块列表带有额外的google解析信息 (同时检测 rDNS 域名服务…)
#### Email: ####
- Postfix & dovecot
- MailBoxes, Alias
- 邮箱、别名
- Roundcube webmail
- Postfix Mail queue
- rDNS Checker Module
- Postfix 邮件队列
- rDNS 检查器模块
- 垃圾邮件拦截
- SPF & DKIM集成
- Re-Build Postfix/Dovecot Mail server with AntiVirus, AntiSpam Protection
- Email Auto Responder
- 重构带有反病毒、反垃圾邮件防护的 Postfix/Dovecot 的邮件服务器
- Email 自动应答器
#### 系统: ####
- CPU核心和时钟信息
- 内存使用信息
- 详细的磁盘状态
- 软件信息如内核版本,正常运行时间等等.
- 软件信息如内核版本正常运行时间等等.
- 服务器状态
- 检查配置管理
- ChkConfig管理
- 网络端口使用
- 网络配置
- SSHD配置
- sshd 配置
- 自动修复(检查重要的配置并尝试自动修复问题)
#### 监控: ####
- 监控服务 eg. top, apache stats, mysql etc.
- 在面板内使用Java SSH Terminal/Console
- 服务器配置 (eg. Apache, PHP, MySQL etc)
- 监控服务,例如 top apache 状态、 mysql
- 在面板内使用Java SSH 终端/控制台
- 服务器配置 (例如 Apache PHP MySQL )
- 在屏幕/后台运行命令行
#### 安全: ####
- CSF防火墙
- SSL生器
- SSL生
- SSL证书管理
- CloudLinux + CageFS
#### SQL: ####
- MySQL 数据库管理
- 添加本地或者远程接入用户
- 添加本地或者远程访问的用户
- 实时监控MySQL进程列表
- 创建,移除数据库
- 为每个数据库添加额外的用户
- MySQL服务器配置
- PhpMyAdmin(这个不知道要不要译过来)
- PhpMyAdmin
- PostgreSQL, phpPgAdmin支持
#### 额外功能: ####
- 语言通话3 管理
- 网络电台管理
- TeamSpeak 3 管理
- Shoutcast 管理
- 自动更新
- 备份管理
- 文件管理
- 备份管理
- 文件管理
- 每个域名的虚拟FTP用户
- 控制面板帐号移植 (恢复文件,数据库和数据库用户)
- 还有更多.
- cPanel帐号迁移 (恢复文件,数据库和数据库用户)
- 还有更多
### 在CentOS 6上安装CentOS网页面板 ###
写这篇教程的时候CWP仅仅支持最高CentOS 6.x版本。在CentOS 7和更高的版本中是行不通的。
写这篇教程的时候CWP仅仅支持最高CentOS 6.x版本。在CentOS 7和更高的版本中是不支持的。
#### 前期准备: ####
**安装CWP之前必须知道以下的信息:**
**安装CWP之前必须知道以下的信息:**
- CWP 仅支持静态IP地址。它并不支持动态的固定的,或者内部的IP地址。
- CWP 并没有卸载程序。当你安装CWP后必须重新安装服务器来移除它。
- 之安装CWP在一个新装的还没做任何配置改变的操作系统上。
- 对32位操作系统至少需要512MB RAM。
- CWP 仅支持静态IP地址。它并不支持动态的或者内部的IP地址。
- CWP 并没有卸载程序。当你安装CWP后必须重新安装服务器来移除它。
- 只能在一个新装的还没做任何配置改变的操作系统上安装CWP
- 对32位操作系统至少需要512MB RAM。
- 64位系统需要1024MB RAM。
- 要求至少20GB的硬盘空间。
@@ -175,7 +174,7 @@ CWP有很多的特性和免费的服务。如我前面提到的一样CWP自
如果上面的URL出现错误用下面的链接代替。
wget http://dll.centos-webpanle.com/files/cwp-latest
wget http://dl1.centos-webpanle.com/files/cwp-latest
然后用命令开始安装CWP
@@ -189,8 +188,7 @@ CWP有很多的特性和免费的服务。如我前面提到的一样CWP自
安装过程会持续到30分钟或者更多取决于你的网速。
最后,你会看到如下安装完成的信息。
记下一些详细信息如mysql超级用户密码和CWP的登录URLs。你随后会需要。然后按下回车Enter重启系统。
最后,你会看到如下安装完成的信息。记下一些详细信息如mysql超级用户密码和CWP的登录URL你随后会需要它们。然后按下回车Enter重启系统。
![](http://www.unixmen.com/wp-content/uploads/2015/04/root@server-usr-local-src_004.png)
@@ -200,7 +198,7 @@ CWP有很多的特性和免费的服务。如我前面提到的一样CWP自
#### 调整防火墙/路由: ####
CWP的默认网控制口是**2030http**和**2031https**。你应该通过防火墙/路由允许使用这两个端口以便远程接入CWP网络控制台。
CWP的默认网控制界面的端口是**2030http**和**2031https**。你应该通过防火墙/路由允许使用这两个端口以便远程接入CWP网络控制台。
编辑iptables文件
@@ -242,43 +240,42 @@ CWP的默认网络控制接口是**2030http**和**2031https**。你
接下来,我们得做一些事,比如:
1.建立域名服务
1.建立ip共享必须是你的公共IP地址
1.建立至少一个集合包(或者编辑默认的包)
1.建立root电子邮件等等。
1. 设置域名服务
1. 设置 ip 共享必须是你的公共IP地址
1. 设置至少一个托管包(或者编辑默认的包)
1. 设置 root 电子邮件,等等。
#### 建立域名服务: ####
#### 设置域名服务 ####
为建立域名服务,找到**DNS Functions -> Edit nameservers IPs**。
为建立域名服务,找到**DNS Functions -> Edit nameservers IPs**。
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_009.png)
设置你的域名服务器,点击保存按钮。
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_010.png)
#### 建立共享IP和Root邮箱ID ####
#### 建立共享IP和Root邮件地址 ####
在你的主机上管网站这是非常重要的一步。为了建立共享IP进入**CWP Setting -> Edit settings**。
在你的主机上管网站这是非常重要的一步。为了建立共享IP进入**CWP Setting -> Edit settings**。
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_011.png)
输入你的静态IP和邮箱ID,然后点击保存设置按钮。
输入你的静态IP和邮件地址,然后点击保存设置按钮。
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_012.png)
现在CWP可以进行网站维护了。
#### 建立主机包 ####
#### 建立托管包 ####
一个主机包什么都没有,除了一个网站托管计划包括允许访问的磁盘空间带宽但没有FTP帐号邮箱IDs和数据库等等。你可以建立任意数量的网站托管计划,只要你喜欢。
一个托管包就是一个网站托管计划包括允许访问的磁盘空间带宽但没有FTP帐号邮箱地址和数据库等等。你可以建立任意数量的网站托管计划,只要你喜欢。
添加一个包从CWP的控制台进入**Packages — Add a Package**
添加一个包从CWP的控制台进入**Packages — Add a Package**
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_013.png)
输入包的名字,允许访问的磁盘配额/RAM数量FTP/Email帐号数据库和子域名等等。点击保设置按钮,建立一个网站托管计划。
输入包的名字,允许访问的磁盘配额/RAM数量FTP/Email帐号数据库和子域名等等。点击保设置按钮,建立一个网站托管计划。
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_014.png)
@@ -290,7 +287,7 @@ CWP的默认网络控制接口是**2030http**和**2031https**。你
而添加一个用户,请进入**User Account -> New Account**。
输入域名(ex.unixmen.com),用户名,密码和邮箱id等等。最后,点击**Create**。
输入域名(ex.unixmen.com),用户名,密码和邮箱地址等等。最后,点击**Create**。
![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_016.png)
@@ -312,12 +309,11 @@ CWP的默认网络控制接口是**2030http**和**2031https**。你
---------------------------------------------------------------------------
via: http://www.unixmen.com/how-to-install-centos-web-panel-in-centos/
作者:[SK][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -1,10 +1,10 @@
4个可以发送带主题、正文和附件的电子邮件的工具
4个可以发送完整电子邮件的命令行工具
================================================================================
今天的文章里我们会讲到一些使用Linux命令行工具来发送带附件的电子邮件的方法。它有很多用处比如在应用程序所在服务器上使用电子邮件发送一个档案过来或者你可以在脚本中使用这些命令来做一些自动化操作。在本文的例子中我们会使用foo.tar.gz文件作为附件。
今天的文章里我们会讲到一些使用Linux命令行工具来发送带附件的电子邮件的方法。它有很多用处比如在应用程序所在服务器上使用电子邮件发送一个文件过来或者你可以在脚本中使用这些命令来做一些自动化操作。在本文的例子中我们会使用foo.tar.gz文件作为附件。
有不同的命令行工具可以发送邮件,这里我分享几个多数用户会使用的工具,如`mailx``mutt``swaks`
我们即将呈现的多数工具都是非常有名的并且存在于多数Linux发行版默认的软件仓库中你可以使用如下命令安装
我们即将呈现的这些工具都是非常有名的并且存在于多数Linux发行版默认的软件仓库中你可以使用如下命令安装
**Debian / Ubuntu** 系统
@@ -30,11 +30,11 @@
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops] [-A account] [-S variable[=value]] to-addr . . .
如果你看到它支持`-a`的选项(-a 文件名,将文件作为附件添加到邮件)和`-s`选项(-s 主题,指定邮件的主题),就是支持的。可以使用如下的几个例子发送邮件。
如果你看到它支持`-a`的选项(-a 文件名,将文件作为附件添加到邮件)和`-s`选项(-s 主题,指定邮件的主题),就是支持的。可以使用如下的几个例子发送邮件。
**a) 简单的邮件 **
**a) 简单的邮件**
运行`mail`命令,然后`mailx`会等待你输入邮件内容。你可以按回车来换行。当输入完成后按Ctrl + D`mailx`会显示EOT。
运行`mail`命令,然后`mailx`会等待你输入邮件内容。你可以按回车来换行。当输入完成后按Ctrl + D`mailx`会显示EOT表示结束
然后`mailx`会自动将邮件发送给收件人。
@@ -45,21 +45,21 @@
How are you
EOT
**b) 发送有主题的邮件 **
**b) 发送有主题的邮件**
$ echo "Email text" | mail -s "Test Subject" user@example.com
`-s`的用处是指定邮件的主题。
**c) 从文件中读取邮件内容并发送 **
**c) 从文件中读取邮件内容并发送**
$ mail -s "message send from file" user@example.com < /path/to/file
**d) 将从管道获取到的`echo`命令输出作为邮件内容发送 **
**d) 将从管道获取到的`echo`命令输出作为邮件内容发送**
$ echo "This is message body" | mail -s "This is Subject" user@example.com
**e) 发送带附件的邮件 **
**e) 发送带附件的邮件**
$ echo “Body with attachment "| mail -a foo.tar.gz -s "attached file" user@example.com
@@ -67,37 +67,37 @@
### 2) mutt ###
Mutt是类Unix系统上的一个文本界面邮件客户端。它有20多年的历史在Linux历史中也是一个很重要的部分它是最早支持进程打分和多线程处理的程序之一。按照如下的例子来发送邮件。
Mutt是类Unix系统上的一个文本界面邮件客户端。它有20多年的历史在Linux历史中也是一个很重要的部分它是最早支持进程打分和多线程处理的客户端程序之一。按照如下的例子来发送邮件。
**a) 从文件中读取邮件的主题和正文,并发送 **
**a) 带有主题,从文件中读取邮件的正文,并发送**
$ mutt -s "Testing from mutt" user@example.com < /tmp/message.txt
**b) 将从管道获取到的`echo`命令输出作为邮件内容发送 **
**b) 通过管道获取`echo`命令输出作为邮件内容发送**
$ echo "This is the body" | mutt -s "Testing mutt" user@example.com
**c) 发送带附件的邮件 **
**c) 发送带附件的邮件**
$ echo "This is the body" | mutt -s "Testing mutt" user@example.com -a /tmp/foo.tar.gz
**d) 发送带有多个附件的邮件 **
**d) 发送带有多个附件的邮件**
$ echo "This is the body" | mutt -s "Testing" user@example.com -a foo.tar.gz a bar.tar.gz
### 3) swaks ###
SwaksSwiss Army Knife瑞士军刀是SMTP的瑞士军刀它功能强大、灵活、可编程、面向事务的SMTP测试工具由John Jetmore开发和维护。你可以使用如下语法发送带附件的邮件
SwaksSwiss Army Knife瑞士军刀是SMTP服务上的瑞士军刀,它是一个功能强大、灵活、可编程、面向事务的SMTP测试工具由John Jetmore开发和维护。你可以使用如下语法发送带附件的邮件
$ swaks -t "foo@bar.com" --header "Subject: Subject" --body "Email Text" --attach foo.tar.gz
关于Swaks一个重要的事情是,它会为你显示整个邮件发送过程,所以如果你想调试邮件发送过程,它是一个非常有用的工具
关于Swaks一个重要的地方是,它会为你显示整个邮件发送过程,所以如果你想调试邮件发送过程,它是一个非常有用的工具
正如你看到的那样,它给你提供了邮件发送过程的所有细节,包括邮件接收服务器的功能支持、两个服务器之间的每一步交互。
给你提供了邮件发送过程的所有细节,包括邮件接收服务器的功能支持、两个服务器之间的每一步交互。
### 4) uuencode ###
邮件传输系统最初是被设计来传送7位编码类似ASCII的内容的。这就意味这它是用来发送文本内容而不能发会使用8位的二进制内容(如程序文件或者图片)。`uuencode`“UNIX to UNIX encoding”UNIX之间使用的编码方式程序用来解决这个限制。使用`uuencode`,发送端将二进制格式的转换成文本格式来传输,接收端再转换回去。
邮件传输系统最初是被设计来传送7位编码类似ASCII的内容的。这就意味这它是用来发送文本内容而不能发会使用8位的二进制内容如程序文件或者图片`uuencode`“UNIX to UNIX encoding”UNIX之间使用的编码方式程序用来解决这个限制。使用`uuencode`,发送端将二进制格式的转换成文本格式来传输,接收端再转换回去。
我们可以简单地使用`uuencode``mailx`或者`mutt`配合,来发送二进制内容,类似这样:
@@ -246,7 +246,7 @@ SwaksSwiss Army Knife瑞士军刀是SMTP的瑞士军刀它功能强
### 总结 ###
有很多方法可以使用命令行/Shell脚本来发送邮件我们只分享了其中4个类Unix系统可用的工具。希望你喜欢我们的文章并且提供您的宝贵意见让我们知道您想了解哪些新工具。
有很多方法可以使用命令行/Shell脚本来发送邮件这里我们只分享了其中4个类Unix系统可用的工具。希望你喜欢我们的文章并且提供您的宝贵意见让我们知道您想了解哪些新工具。
--------------------------------------------------------------------------------
@@ -254,7 +254,7 @@ via: http://linoxide.com/linux-shell-script/send-email-subject-body-attachment-l
作者:[Bobbin Zachariah][a]
译者:[goreliu](https://github.com/goreliu)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -1,25 +1,26 @@
Bodhi Linux引入Moksha桌面
Bodhi Linux引入 Moksha 桌面
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/05/Bodhi_Linux.jpg)
基于Ubuntu的轻量级Linux发行版[Bodhi Linux][1]致力于构建其自家的桌面环境这个全新桌面环境被称之为Moksha梵文意为完全自由。Moksha将替换常用的[Enlightenment桌面环境][2]。
基于Ubuntu的轻量级Linux发行版[Bodhi Linux][1]致力于构建其自家的桌面环境这个全新桌面环境被称之为Moksha梵文意为完全自由。Moksha将替换其原来的[Enlightenment桌面环境][2]。
### 为何用Moksha替换Englightenment ###
Bodhi Linux的Jeff Hoogland最近[表示][3]了他对新版Enlightenment的不满。直到E17,Enlightenment都十分稳定并且能满足轻量级Linux的部署需求。而E18则到处都充满了问题Bodhi Linux只好弃之不用了。
Bodhi Linux的Jeff Hoogland最近[表示][3]了他对新版Enlightenment的不满。直到E17Enlightenment都十分稳定并且能满足轻量级Linux的部署需求。而E18则到处都充满了问题Bodhi Linux只好弃之不用了。
虽然最新的[Bodhi Linux 3.0发行版][4]仍然使用了E19作为其桌面除传统模式外这意味着对于旧的硬件仍然会使用E17Jeff对E19也十分不满。他说道
>除了性能问题外对于我个人而言E19并没有给我带来与E17下相同的工作流程因为它移除了很多E17的特性。鉴于此我不得不将我所有的3台Bodhi计算机桌面改成E17——这3台机器都是我高端的了。这不由得让我想到我们还有多少现存的Bodhi用户也怀着和我同样的感受所以我[在我们的用户论坛上开启一个与此相关的讨论][5]。
> 除了性能问题外对于我个人而言E19并没有给我带来与E17下相同的工作流程因为它移除了很多E17的特性。鉴于此我不得不将我所有的3台Bodhi计算机桌面改成E17——这3台机器都是我高端的了。这不由得让我想到我们还有多少现存的Bodhi用户也怀着和我同样的感受所以我[在我们的用户论坛上开启一个与此相关的讨论][5]。
### Moksha是E17桌面的延续 ###
Moksha将会是Bodhi所热衷的E17桌面的延续。Jeff进一步提到
>我们将从整合所有Bodhi修改开始。多年来我们一直都只是给源代码打补丁并修复桌面所具有的问题。如果该工作完成我们将开始移植一些E18和E19引入的更为有用的特性最后我们将引入一些我们认为会改善最终用户体验的东西。
> 我们将从整合所有Bodhi修改开始。多年来我们一直都只是给源代码打补丁并修复桌面所带有的问题。如果该工作完成我们将开始移植一些E18和E19引入的更为有用的特性最后我们将引入一些我们认为会改善最终用户体验的东西。
### Moksha何时发布 ###
下一个Bodhi更新将会是Bodhi 3.1.0,就在今年八月。这个新版本将为所有其缺省ISO带来Moksha。让我们拭目以待看看Moksha是否是一个好的决定。
下一个Bodhi更新将会是Bodhi 3.1.0,就在今年八月。这个新版本将为所有其默认安装镜像带来Moksha。让我们拭目以待看看Moksha是否是一个好的决定。
--------------------------------------------------------------------------------
@@ -27,7 +28,7 @@ via: http://itsfoss.com/bodhi-linux-introduces-moksha-desktop/
作者:[Abhishek][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,121 @@
一个用于Gnome桌面的下拉式终端 Guake 0.7.0 发布
================================================================================
Linux的命令行是最好、最强大的东西它使新手着迷并为老手和极客的提供极其强大的功能。那些在服务器和生产环境下工作的人早已认识到了这个事实。有趣的是Linux终端是Linus Torvald在1991年写内核时实现的第一批功能之一。
终端是个强大的工具由于它没有什么可调整的部分所以十分可靠。终端介于控制台环境和GUI环境之间。终端自身作为一个GUI程序运行在桌面环境下。有许多终端是适用于特定的桌面环境的其它的则是通用的。Terminator, Konsole, Gnome-Terminal, Terminology, XFCE terminal, xterm都是些常用的终端模拟器。
您可以从下面的链接中获得一份使用最广泛的终端模拟器的列表。
- [20 Useful Terminals for Linux][1]
前几日上网时我偶遇了名为Guake的终端程序它是用于gnome的终端模拟器。尽管这并不是我第一次听到Guake。实际上我在大约一年前便知道了这个应用程序但不知怎么搞的我那时没有写写Guake再后来我便渐渐忘掉了Guake直到我再一次听到Guake。所以最终这篇文章诞生了。我将给你讲讲Guake的功能在Debian、Ubuntu、Fedora上的安装过程以及一些测试。
#### 什么是Guake ####
Guake是应用于Gnome环境的下拉式终端。主要由Python编写使用了一些C它以GPL2+许可证发布适用于Linux以及类似的系统。Guake的灵感来源于电脑游戏Quake雷神之锤中的终端Quake的终端能通过按下特定按键默认为F12从屏幕上滑下来并在按下同样的键后滑上去。
值得注意的是Guake并不是第一个这样的应用。YakuakeYet Another Kuake是一个运行于KDE的终端模拟器Tilda是一个用GTK+写成的终端模拟器。它们的灵感都来自于雷神之锤那上下滑动的终端。
#### Guake的功能 ####
- 轻量级
- 简单而优雅
- 功能众多
- 强大
- 美观
- 将终端平滑地集成于GUI中
- 在按下预定义的键后出现/消失
- 支持热键、标签、透明化背景这使得它适合所有Gnome用户
- 可配置各种方面
- 包括许多颜色的调色板
- 设定透明度的快捷方式
- 通过Guake配置可在启动时运行一个脚本
- 可以在多个显示器上运行
Guake 0.7.0最近发布,它带来了一些修正以及上面提到的一些功能。完整的版本历史和源代码包可以在[这里][2]找到。
### 在Linux中安装Guake终端 ###
如果您对从源码编译Guake感兴趣您可以从上面的链接处下载Guake并在安装前进行编译。
然而Guake可以在许多的发行版中通过添加额外的仓库来安装。这里我们将在Debian、Ubuntu、Linux Mint和Fedora下安装Guake。
首先从仓库获取最新的软件包列表并从默认的仓库安装Guake如下所示
---------------- 在 Debian, Ubuntu 和 Linux Mint 上 ----------------
$ sudo apt-get update
$ apt-get install guake
----------
---------------- 在 Fedora 19 及其以后版本 ----------------
# yum update
# yum install guake
安装后可以从另一个终端中启动Guake
$ guake
在启动它后便可以在Gnome桌面中使用F12默认配置来拉下、收回终端。
看起来非常漂亮,尤其是透明背景。滑下来...滑上去...滑下来...滑上去...执行命令,打开另一个标签,执行命令,滑上去...滑下来...(作者已沉迷其中)
![Guake Terminal in Action](http://www.tecmint.com/wp-content/uploads/2015/05/Guake.png)
*Guake实战*
如果您的壁纸或活动窗口的颜色和Guake的颜色有些不搭。您可以改变您的壁纸减少透明度或者改变Guake的颜色。
下一步便是进入Guake的配置根据每个人的需求修改设置。可以通过应用菜单或者下面的命令来运行Guake的配置。
$ guake --preferences
![Guake Terminal Properties](http://www.tecmint.com/wp-content/uploads/2015/05/Guake-Properties.png)
*Guake终端配置*
设置滚动
![Guake Scrolling Settings](http://www.tecmint.com/wp-content/uploads/2015/05/Guake-Scrolling.png)
*Guake滚动配置*
外观设置 - 在这里您可以修改文字颜色和背景色以及透明度。
![Appearance Properties](http://www.tecmint.com/wp-content/uploads/2015/05/Appearance-Properties.png)
*外观设置*
键盘快捷键 - 在这里您可以修改Guake显示的开关快捷键。
![Keyboard Shortcuts](http://www.tecmint.com/wp-content/uploads/2015/05/Keyboard-Shortcuts.png)
*键盘快捷键*
兼容性设置 - 基本上不必设置它。
![Compatibility Setting](http://www.tecmint.com/wp-content/uploads/2015/05/Compatibility-Setting.png)
*兼容性设置*
### 结论 ###
这个项目即不是太年轻也不是太古老因此它已经达到了一定的成熟度足够可靠可以开箱即用。像我这样需要在GUI和终端间频繁切换的人来说Guake是一个福利。我不需要管理一个多余的窗口频繁的打开和关闭使用tab在大量打开的应用程序中寻找终端或切换到不同的工作区来管理终端现在我需要的只有F12。
我认为对任何同时使用GUI和终端的Linux用户来说Guake都是必须的工具。同样的我会向任何想要在系统中结合使用GUI和终端的人推荐它因为它既平滑又没有任何障碍。
上面就是我要说的全部了。如果在安装和使用时有任何问题请告诉我我们会帮助您。也请您告诉我您使用Guake的经验。在下面的评论区反馈您宝贵的经验。点赞和分享以帮助我们宣传。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/install-guake-terminal-ubuntu-mint-fedora/
作者:[Avishek Kumar][a]
译者:[wwy-hust](https://github.com/wwy-hust)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/linux-terminal-emulators/
[2]:https://github.com/Guake/guake/releases/tag/0.7.0

View File

@@ -1,6 +1,6 @@
Linux 有问必答--如何修复 “fatal error: security/pam_modules.h: No such file or directory”
如何修复 “fatal error: security/pam_modules.h: No such file or directory”
================================================================================
> **问题**: 我尝试在 [插入你的 Linux 发行版] 上编译程序,但是出现下面的编译错误:
> **问题**: 我尝试在 [某某 Linux 发行版] 上编译程序,但是出现下面的编译错误:
>
> "pam_otpw.c:27:34: fatal error: security/pam_modules.h: No such file or directory"
>
@@ -26,7 +26,7 @@ via: http://ask.xmodulo.com/fatal-error-security-pam-modules.html
作者:[Dan Nanni][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@@ -1,3 +1,5 @@
translating by wwy-hust
Will Ubuntu Linux Hit 200 Million Users This Year?
================================================================================
It's been four years and two weeks since Mark Shuttleworth expressed his goal of "200 million users of Ubuntu in 4 years." While Ubuntu's presence has continued to increase over the past four years, it doesn't look like that goal has been realized yet or will be by the end of the calendar year.
@@ -35,4 +37,4 @@ via: http://www.phoronix.com/scan.php?page=news_item&px=2015-200-Million-Goal-Re
[4]:http://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Calculator-Reboot
[5]:http://www.phoronix.com/scan.php?page=news_item&px=MTgzOTM
[6]:http://www.phoronix.com/scan.php?page=news_item&px=MTA5ODM
[7]:https://www.phoronix.com/scan.php?page=news_item&px=Nzg1Mw
[7]:https://www.phoronix.com/scan.php?page=news_item&px=Nzg1Mw

View File

@@ -1,161 +0,0 @@
FSSlc Translating
Sleuth Kit - Open Source Forensic Tool to Analyze Disk Images and Recover Files
================================================================================
SIFT is a Ubuntu based forensics distribution provided by SANS Inc. It consist of many forensics tools such as Sleuth kit / Autopsy etc . However, Sleuth kit/Autopsy tools can be installed on Ubuntu/Fedora distribution instead of downloading complete distribution of SIFT.
Sleuth Kit /Autopsy is open source digital forensics investigation tool which is used for recovering the lost files from disk image and analysis of images for incident response. Autopsy tool is a web interface of sleuth kit which supports all features of sleuth kit. This tool is available for both Windows and Linux Platforms.
### Install Sleuth kit ###
First of all, download Sleuth kit software from [sleuthkit][1] website. Use wget command to download it in terminal which is shown in the figure.
# wget http://cznic.dl.sourceforge.net/project/sleuthkit/sleuthkit/4.1.3/sleuthkit-4.1.3.tar.gz
![Download Sleuth Kit](http://blog.linoxide.com/wp-content/uploads/2015/03/download-sleuthkeit.png)
Extract the sleuthkit-4.1.3.tar.gz using following command and go inside the extracted directory
# tar -xvzf sleuthkit-4.1.3.tar.gz
![Extraction Process](http://blog.linoxide.com/wp-content/uploads/2015/03/extract.png)
Run following command which perform the requirement check before sleuth kit installation
#./configure
![configure](http://blog.linoxide.com/wp-content/uploads/2015/03/configure.png)
Make command compile the sleuth kit code.
#make
![make](http://blog.linoxide.com/wp-content/uploads/2015/03/make.png)
Finally following command install it under **/usr/local** path.
#make install
![make install](http://blog.linoxide.com/wp-content/uploads/2015/03/make-install.png)
### Install Autopsy Tool ###
Sleuth kit installation is complete and now we will install autopsy interface. Download Autopsy software from [sleuthkit's autopsy page][2] . Use wget command to download it in terminal which is shown in the figure.
# wget http://kaz.dl.sourceforge.net/project/autopsy/autopsy/2.24/autopsy-2.24.tar.gz
![Autpsy download link](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy.png)
Extract the autopsy-2.24.tar.gz using following command and go inside the extracted directory
# tar -xvzf autopsy-2.24.tar.gz
![Autopsy Extraction](http://blog.linoxide.com/wp-content/uploads/2015/03/Autopsy-extraction.png)
Configuration script of autopsy asks for NSRL (National Software Reference Library) and path of **Evidence_Locker** folder.
Enter "n" for NSRL prompt and create Evidence_Locker folder under **/usr/local** directory. Autopsy stores the configuration files, audit logs and output under Evidence_Locker folder.
#mkdir /usr/local/Evidence_Locker
#cd autopsy-2.24
#./configure
![Autopsy Configuration Script](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy-configuration.png)
After adding Evidence_Locker path in installation process , autopsy stores configuration files in it and shows a following message to run the autopsy program.
![Start Autopsy](http://blog.linoxide.com/wp-content/uploads/2015/03/start-autopsy.png)
Type **./autopsy** command in terminal to start the graphical interface of Sleuth kit tool.
![Autopsy Started](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy-started.png)
Type following address in the web browser to access the interface of autopsy .
http://localhost:9999/autopsy
Main web page of autopsy plugin is shown int the following figure.
![Main Page](http://blog.linoxide.com/wp-content/uploads/2015/03/main-interface.png)
Click on the **New Case** button to start analysis in autopsy tool. Enter the case name, description about the investigation and name of agent which is shown in the following figure.
![create new case](http://blog.linoxide.com/wp-content/uploads/2015/03/create-new-case1.png)
Following web page will appear after entering the details in the above page. Click on **Add Host** button to add details for the analyst machine.
![add host](http://blog.linoxide.com/wp-content/uploads/2015/03/add-host1.png)
Enter host name, description and time zone setting of analyst machine on the next page.
![add host-detial](http://blog.linoxide.com/wp-content/uploads/2015/03/add-host-detial.png)
Click on the **Add Image** button to add image file for forensics analysis.
![add image](http://blog.linoxide.com/wp-content/uploads/2015/03/add-image.png)
Click on the **Add Image File** button on the following web page. It opens new web page which require Path of image file and select type & importing method.
![Add image file](http://blog.linoxide.com/wp-content/uploads/2015/03/Add-image-file.png)
As shown in the following figure, we have entered path of Linux image file. In our case, image file is partition of disk.
![add image parition](http://blog.linoxide.com/wp-content/uploads/2015/03/add-image-parition.png)
Click on the next button and select **Calculate hash** option in the next page which is shown in the following figure. It also detect the file system type of the given image.
![image and file system detail](http://blog.linoxide.com/wp-content/uploads/2015/03/image-and-file-system-detail.png)
Following window shows the MD5 hash of the image file before static analysis .
![hash](http://blog.linoxide.com/wp-content/uploads/2015/03/hash1.png)
On the next web page, autopsy shows following information about the image file.
- mount point for the image
- name of image
- file system type of given image
Click on the **details** button to get more information about the given image file. It also offer extraction of unallocated fragments and strings from the volume of image file which is shown in the following figure.
![Image detail](http://blog.linoxide.com/wp-content/uploads/2015/03/image-details.png)
Click on **Analyze** button which is shown in the below figure to start analysis on given image . It opens another page which shows the multiple options for image analysis.
![analysis](http://blog.linoxide.com/wp-content/uploads/2015/03/analysis1.png)
Autopsy offer following features during image analysis process.
- File Analysis
- Keyword Search
- File Type
- Image Details
- Data Unit
File Analysis on given image of Linux partition is shown in the following figure.
![Analysis of image](http://blog.linoxide.com/wp-content/uploads/2015/03/Analysis-of-image.png)
It extracts all files and folders from the given image . Extraction of deleted files are shown int he figure.
![Deleted Files](http://blog.linoxide.com/wp-content/uploads/2015/03/deleted.png)
### Conclusion ###
Hopefully this article will be useful for the beginner in static forensics analysis of disk image. Autopsy is web interface for sleuth kit which provides features such as extraction of strings , recovery of deleted files, timeline analysis, extraction of web surfing history, keyword search and email analysis on windows and linux disk images.
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/autopsy-sleuth-kit-installation-ubuntu/
作者:[nido][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/naveeda/
[1]:http://www.sleuthkit.org/sleuthkit/download.php
[2]:http://www.sleuthkit.org/autopsy/download.php

View File

@@ -1,195 +0,0 @@
translating by wwy-hust
10 Amazing and Mysterious Uses of (!) Symbol or Operator in Linux Commands
================================================================================
The `'!'` symbol or operator in Linux can be used as Logical Negation operator as well as to fetch commands from history with tweaks or to run previously run command with modification. All the commands below have been checked explicitly in bash Shell. Though I have not checked but a major of these wont run in other shell. Here we go into the amazing and mysterious uses of `'!'` symbol or operator in Linux commands.
### 1. Run a command from history by command number. ###
You might not be aware of the fact that you can run a command from your history command (already/earlier executed commands). To get started first find the command number by running history command.
$ history
![Find Last Executed Commands with History Command](http://www.tecmint.com/wp-content/uploads/2015/05/history-Command.gif)
Now run a command from history just by the number at which it appears, in the output of history. Say run a command that appears at number 1551 in the output of history command.
$ !1551
![Run Last Executed Commands by Number ID](http://www.tecmint.com/wp-content/uploads/2015/05/Run-Commands-By-number.gif)
And, it runs the command ([top command][1] in the above case), that was listed at number 1551. This way to retrieving already executed command is very helpful specially in case of those commands which are long. You just need to call it using **![Number at which it appears in the output of history command]**.
### 2. Run previously executed command as 2nd last command, 7th last command,etc. ###
You may run those commands which you have run previously by their running sequence being the last run command will be represented as -1, second last as -2, seventh last as -7,….
First run history command to get a list of last executed command. It is necessary to run history command, so that you can be sure that there is no command like `rm command > file` and others just to make sure you do not run any dangerous command accidentally. And then check Sixth last command, Eight last command and Tenth last command.
$ history
$ !-6
$ !-8
$ !-10
![Run Last Executed Commands By Numbers](http://www.tecmint.com/wp-content/uploads/2015/05/3.gif)
Run Last Executed Commands By Numbers
### 3. Pass arguments of last command that we run to the new command without retyping ###
I need to list the content of directory /home/$USER/Binary/firefox so I fired.
$ ls /home/$USER/Binary/firefox
Then I realized that I should have fired ls -l to see which file is executable there? So should I type the whole command again! No I dont need. I just need to carry the last argument to this new command as:
$ ls -l !$
Here `!$` will carry arguments passed in last command to this new command.
![Pass Arguments of Last Executed Command to New](http://www.tecmint.com/wp-content/uploads/2015/05/4.gif)
Pass Arguments of Last Executed Command to New
### 4. How to handle two or more arguments using (!) ###
Lets say I created a text file 1.txt on the Desktop.
$ touch /home/avi/Desktop/1.txt
and then copy it to /home/avi/Downloads using complete path on either side with cp command.
$ cp /home/avi/Desktop/1.txt /home/avi/downloads
Now we have passed two arguments with cp command. First is /home/avi/Desktop/1.txt and second is /home/avi/Downloads, lets handle them differently, just execute `echo [arguments]` to print both arguments differently.
$ echo “1st Argument is : !^”
$ echo “2nd Argument is : !cp:2”
Note 1st argument can be printed as `“!^”` and rest of the arguments can be printed by executing `“![Name_of_Command]:[Number_of_argument]”`.
In the above example the first command was cp and 2nd argument was needed to print. Hence `“!cp:2”`, if any command say xyz is run with 5 arguments and you need to get 4th argument, you may use `“!xyz:4”`, and use it as you like. All the arguments can be accessed by `“!*”`.
![Handle Two or More Arguments](http://www.tecmint.com/wp-content/uploads/2015/05/5.gif)
Handle Two or More Arguments
### 5. Execute last command on the basis of keywords ###
We can execute the last executed command on the basis of keywords. We can understand it as follows:
$ ls /home > /dev/null [Command 1]
$ ls -l /home/avi/Desktop > /dev/null [Command 2]
$ ls -la /home/avi/Downloads > /dev/null [Command 3]
$ ls -lA /usr/bin > /dev/null [Command 4]
Here we have used same command (ls) but with different switches and for different folders. Moreover we have sent to output of each command to /dev/null as we are not going to deal with the output of the command also the console remains clean.
Now Execute last run command on the basis of keywords.
$ ! ls [Command 1]
$ ! ls -l [Command 2]
$ ! ls -la [Command 3]
$ ! ls -lA [Command 4]
Check the output and you will be astonished that you are running already executed commands just by `ls` keywords.
![Run Commands Based on Keywords](http://www.tecmint.com/wp-content/uploads/2015/05/6.gif)
Run Commands Based on Keywords
### 6. The power of !! Operator ###
You can run/alter your last run command using `(!!)`. It will call the last run command with alter/tweak in the current command. Lets show you the scenario
Last day I run a one-liner script to get my private IP so I run,
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/
Then suddenly I figured out that I need to redirect the output of the above script to a file ip.txt, so what should I do? Should I retype the whole command again and redirect the output to a file? Well an easy solution is to use `UP` navigation key and add `'> ip.txt'` to redirect the output to a file as.
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/ > ip.txt
Thanks to the life Savior `UP` navigation key here. Now consider the below condition, the next time I run below one-liner script.
$ ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
As soon as I run script, the bash prompt returned an error with the message `“bash: ifconfig: command not found”`, It was not difficult for me to guess I run this command as user where it should be run as root.
So whats the solution? It is difficult to login to root and then type the whole command again! Also (UP Navigation Key) in last example didnt came to rescue here. So? We need to call `“!!”` without quotes, which will call the last command for that user.
$ su -c “!!” root
Here su is switch user which is root, `-c` is to run the specific command as the user and the most important part `!!` will be replaced by command and last run command will be substituted here. Yeah! You need to provide root password.
![The Power of !! Key](http://www.tecmint.com/wp-content/uploads/2015/05/7.gif)
The Power of !! Key
I make use of `!!` mostly in following scenarios,
1. When I run apt-get command as normal user, I usually get an error saying you dont have permission to execute.
$ apt-get upgrade && apt-get dist-upgrade
Opps error…dont worry execute below command to get it successful..
$ su -c !!
Same way I do for,
$ service apache2 start
or
$ /etc/init.d/apache2 start
or
$ systemctl start apache2
OOPS User not authorized to carry such task, so I run..
$ su -c 'service apache2 start'
or
$ su -c '/etc/init.d/apache2 start'
or
$ su -c 'systemctl start apache2'
### 7. Run a command that affects all the file except ![FILE_NAME] ###
The `!` (Logical NOT) can be used to run the command on all the files/extension except that is behind `'!'`.
A. Remove all the files from a directory except the one the name of which is 2.txt.
$ rm !(2.txt)
B. Remove all the file type from the folder except the one the extension of which is pdf.
$ $ rm !(*.pdf)
### 8. Check if a directory (say /home/avi/Tecmint)exist or not? Printf if the said directory exist or not. ###
Here we will use `'! -d'` to validate if the directory exist or not followed by Logical AND Operator `(&&)` to print that directory does not exist and Logical OR Operator `(||)` to print the directory is present.
Logic is, when the output of `[ ! -d /home/avi/Tecmint ]` is 0, it will execute what lies beyond Logical AND else it will go to Logical OR `(||)` and execute what lies beyond Logical OR.
$ [ ! -d /home/avi/Tecmint ] && printf '\nno such /home/avi/Tecmint directory exist\n' || printf '\n/home/avi/Tecmint directory exist\n'
### 9. Check if a directory exist or not? If not exit the command. ###
Similar to the above condition, but here if the desired directory doesnt exist it will exit the command.
$ [ ! -d /home/avi/Tecmint ] && exit
### 10. Create a directory (say test) in your home directory if it does not exist. ###
A general implementation in Scripting Language where if the desired directory does not exist, it will create one.
[ ! -d /home/avi/Tecmint ] && mkdir /home/avi/Tecmint
Thats all for now. If you know or come across any other use of `'!'` which is worth knowing, you may like to provide us with your suggestion in the feedback. Keep connected!
--------------------------------------------------------------------------------
via: http://www.tecmint.com/mysterious-uses-of-symbol-or-operator-in-linux-commands/
作者:[Avishek Kumar][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/12-top-command-examples-in-linux/

View File

@@ -0,0 +1,188 @@
Linux ntopng - Network Monitoring Tool Installation (Screenshots)
================================================================================
Nowdays computers are connected between each other. From the small area such as your home Local Area Network (LAN) until the the biggest one which we call - Internet. When you are managing a network computer, you are managing one of the most critical component. Since most of developed application is web based application, the network between critical.
There is why we need a network monitoring tool. One of the best network monitoring tool is called ntop. From [Wikipedia][1] “ntop is a network probe that shows network usage in a way similar to what top does for processes. In interactive mode, it displays the networkstatus on the user's terminal. In Web mode, it acts as a web server, creating a HTML dump of the network status. It supports a NetFlow/sFlowemitter/collector, a HTTP-based client interface for creating ntop-centric monitoring applications, and RRD for persistently storing traffic statistics”
Now after 15 years, you will find ntopng - the next generation ntop.
### What is ntopng ###
Ntopng is a high-speed web-based traffic analysis and flow collection. Ntopng is based from ntop. Its run on every Unix platform, MacOS X and Windows.
### Features ###
From [ntopng website][2], they said there are many features of it. Heres some of the list :
- Sort network traffic according to many protocols
- Show network traffic and IPv4/v6 active hosts
- Store on disk persistent traffic statistics in RRD format Geolocate hosts
- Discover application protocols by leveraging on nDPI, ntops DPI framework
- Show IP traffic distribution among the various protocols
- Analyse IP traffic and sort it according to the source/destination
- Display IP Traffic Subnet matrix (whos talking to who?)
- Report IP protocol usage sorted by protocol type
- Produce HTML5/AJAX network traffic statistics
### Installation ###
Ntop is available in pre-compiled packages for CentOS dan Ubuntu **64-bit based**. You may find the packages in [their download page][3]. For 32-bit operating system, you have to compile it from the source. This article is **tested** on **CentOS 6.4 32-bit** version. But it may works also in other version of CentOS / RedHat based Linux. Lets start.
#### Prerequisites ####
#### Development Tools ####
You have to make sure that you have all development tools which is needed to compile ntopng. To install the development tools you can use yum command :
# yum groupinstall Development Tools
#### Install TCL ####
# yum install tcl
#### Install libpcap ####
# yum install libpcap libcap-devel
#### Install Redis ####
# wget http://redis.googlecode.com/files/redis-2.6.13.tar.gz
# tar zxfv redis-2.6.13.tar.gz
# cd redis-2.6.13
# make 32bit
# make test
# make install
### Install ntopng ###
#### Method 1 : ####
# wget http://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.1_6932.tgz/download
# tar zxfv ntopng-1.1_6932.tgz
# cd ntopng-1.1_6932
# ./configure
# make
# make install
#### Method 2 : ####
On my CentOS 6.4 , I got an error message when using Method 1. Heres the error message :
./third-party/LuaJIT-2.0.2/src/libluajit.a : could not read symbols : File in wrong format
So I **switch** to install it using **SVN**. Internet connection is required for this installation method. Heres the steps :
# svn co https://svn.ntop.org/svn/ntop/trunk/ntopng/
# ./autogen.sh
# ./configure
# make
# make install
*Since ntopng is a web-based application, your system must have a working web-server installed*
### Create configuration files for ntopng ###
If everything is installed, then its time for us to running it. By default, redis and ntopng will installed in /usr/local/ folder if we dont change the installation folder explicitly in ./configure step. Next we need to create configuration files for ntopng. In this article we use vi as text editor. You can use your favorite text editor to create ntopng configuration files.
# cd /usr/local/etc
# mkdir ntopng
# cd ntopng
# vi ntopng.start
Put these lines :
--local-network “10.0.2.0/24”
--interface 1
# vi ntopng.pid
Put this line :
-G=/var/run/ntopng.pid
Save those files and we can continue to the next step
### Run ntopng ###
We assume that you have installed web server correctly, then the next step is to run redis server.
# /usr/local/bin/redis-server
![Starting Redis Server](http://blog.linoxide.com/wp-content/uploads/2013/11/redis-server-start.png)
Then **run** ntopng
# /usr/local/bin/ntopng
![Starting Ntopng](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng-start.png)
### Testing ntopng ###
Now you can test your ntopng application by typing [http://yourserver.name:3000][4] . You will see ntopng login page. For the first time, you can use user **admin** and password **admin**.
![Ntop Login page](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_login.png)
The dashboard is quite simple. After you logged in, you will see an information about Top Flow Talkers.
![Ntopng Flow Talker](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_talkers.png)
If you click **Flows menu** on the right top, ntopng will show you more detail about Active Flows.
![Ntopng Flows](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_flows.png)
On **Hosts menu**, you can see all hosts which are connected to the flows
![Ntopng Hosts List](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_hoslist.png)
If you click **Hosts > Interactions**, ntop will show you a nice graphic about interaction which happen between them.
![Ntopng Hosts Interaction](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_hosts_interaction.png)
**Dashboard menu** consist of :
#### Top Hosts (Send+Receive) ####
![Ntopng Hosts](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_hosts.png)
#### Top Application Protocol ####
![Ntopng Apps](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_apps.png)
**Interfaces menu** will bring you more menus inside. Packets menu shows you size distribution of packets.
![Ntopng packets](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_packets.png)
**Protocols menus** will give you information about how many protocols that have been used and its percentage.
![Ntopng protocol](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_protocol.png)
![Ntopng protocols - detail](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_protocol_detail.png)
You can also see the activity by using **Historical Activity menu**
![Ntopng Historical Activity](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_historical.png)
![Ntopng Historical Activity detail](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_historical_detail.png)
Last but not least, you can also manage the user who can access ntopng via **Settings menu** on the top right area (the one that have a gear icon). Then click **Manage Users**.
![Ntopng Users](http://blog.linoxide.com/wp-content/uploads/2013/11/ntopng_users.png)
Ntopng provide you with a wide range of timeframe, from every 5 minutes until 1 year. You just need to click the timeframe you want to show. The graphic itself is clickable. You can click it to zoom it.
Of course, ntopng is more than just pictures above. You can also integrates it with GeoLocation and GeoMap services. From ntopng website it self, there are a paid modul such as nprobe to enrich the information provided by ntopng. For more detail usage of ntopng, please visit [ntopng website][5].
--------------------------------------------------------------------------------
via: http://linoxide.com/monitoring-2/ntopng-network-monitoring-tool/
作者:[Pungki Arianto][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/pungki/
[1]:http://en.wikipedia.org/wiki/Ntop
[2]:http://www.ntop.org/products/ntop/
[3]:http://www.nmon.net/packages/
[4]:http://yourserver.name:3000/
[5]:http://www.ntop.org/

View File

@@ -1,320 +0,0 @@
组测试: Linux 文本编辑器
================================================================================
> Mayank Sharma 测试了5款不仅仅是能处理字的超级文本编辑器。
如果你使用Linux已经有很长一段时间你知道不管是编辑一款app的配置文件一起用shell脚本骇客或者编写/查看代码类似LobreOffice的工具并不能满足。尽管字面上看起来意思一样你不需要一个字处理器来完成这些任务你需要一个文本编辑器。
在这个组测试中我们将着眼于5款不仅仅是能胜任繁重文本任务的简陋的文本编辑器。他们能高亮语法像拼写检查一样轻松处理代码缩进。你可以像你复制/粘贴文本那样容易地使用他们记录宏以及管理代码片段。
得益于能向它们注入足以抗衡其它类型的以文本为中心的应用程序能力的插件,一些简单的文本编辑器甚至超过了它们的设计目标。它们能胜任一个源代码编辑器的任务,甚至是一个集成开发环境。
Emacs和Vim是两款最流行和强大的纯文本编辑器。但是由于一些原因我们在这个组测试中并没有包括它们。首先如果你使用它们中的任何一个那么恭喜你你不需要更换了。其次它们都有陡峭的学习曲线尤其是那些熟悉了桌面环境的用户:他们很更愿意投入其他有图形界面的文本编辑器。
### 目录: ###
#### Gedit ####
- URL:http://projects.gnome.org/gedit/
- 版本: 3.10
- 许可证: GPL
- Gnome的默认文本编辑器准备好挑战了?
#### Kate ####
- URL: www.kate-editor.org
- 版本: 3.11
- 许可证: LGPL/GPL
- Kate会挑战命运吗?
#### Sublime Text ####
- URL: www.sublimetext.com
- 版本: 2.0.2
- 许可证: Proprietary
- 在自由与黄金心脏土地上的私有软件。
#### UltraEdit ####
- URL: www.ultraedit.com
- 版本: 4.1.0.4
- 许可证: Proprietary
- 它做的足够多去证明它的价值了吗?
#### jEdit ####
- URL: www.jedit.org
- 版本: 5.1.0
- 许可证: GPL
- 基于Java的编辑器是否会扰乱其他编辑器的世界?
![在展示一个有功能的应用程序和将它们所有的东西曝光给用户之间有一个很好的平衡。Geddit隐藏了它的大部分功能。](http://www.linuxvoice.com/wp-content/uploads/2014/07/gedit-web.png)
在展示一个有功能的应用程序和将它们所有的东西曝光给用户之间有一个很好的平衡。Geddit隐藏了它的大部分功能。
### 关键标准 ###
除了Gedit和jEdit以外的所有工具都是通过推荐的安装方法安装在Fedora和Ubuntu上。前者已经兼容默认的Gnome桌面后者仍然固执地反对安装在Fedora上。由于这些是相对简单的应用程序他们没有复杂的依赖唯一例外的是jEdit它要求要有Oracle Java。
得益于Gnome和KDE持续的努力不论他们运行的桌面环境所有编辑器看起来很好功能也很正常。这不仅是作为评价的标准也意味着你不再受制于要找到和你的桌面环境兼容的工具。
除了它们奇特的功能,我们也对所有候选者测试了通用文本编辑功能。然而,它们并没有被设计为模仿现代字处理器的所有功能,我们也不以此评判。
![Kate能搭建为功能丰富的集成开发环境](http://www.linuxvoice.com/wp-content/uploads/2014/08/kate-web.png)
Kate能搭建为功能丰富的集成开发环境。
### 编程语言支持 ###
UltraEdit 能进行语法高亮代码折叠以及拥有项目管理的能力。这也有一个罗列源文件中所有函数的功能列表但并不适用于我们任何的测试代码文件。UltraEdit也支持HTML5有能添加常用HTML标记的HTML工具栏。
即使Gnome的默认文本编辑器Gedit也有几个面向编码的功能特性例如括号匹配自动缩进以及为包括C, C++, Java, HTML, XML, Python, Perl, 以及许多其它编程语言进行语法高亮。
如果你需要更多的编程辅助看一下Sublime和Kate。Sublime支持多种编程语言并且(正如流行的那些)能为C#, D, Dylan, Erlang, Groovy, Haskell, Lisp, Lua, MATLAB, OCaml, R, 甚至 SQL 进行语法高亮。如果这还不够,你可以下载插件以支持更多的语言。
另外它的语法高亮功能提供了多个可定制选项。这个应用程序也会进行括号匹配确保代码段都正确Sublime的自动补全功能也支持用户创建的变量。
正如Komodo IDESublime也可滚动浏览显示完整的代码这对于长代码文件导航和在文件中的不同部分跳转很方便。
Sublime最好的功能之一就是能在编辑器内部为特定语言例如C++, Python, Ruby等运行代码当然假设在你的电脑上安装有编译器以及其它系统工具。省时间而且不用再开终端.
你也可以用插件在Kate中开启构建系统功能。另外你可以为GDB调试器添加一个简单的前端。Kate能和GitSubversion以及Mercurial版本控制系统一起工作也提供了一些项目管理的功能。
除了能为超过180中语言进行语法高亮它支持所有的这些辅助功能例如括号匹配自动补全和自动缩进。它也支持代码折叠甚至在一个程序中折叠函数。
唯一的遗憾的是jEdit它声称自己是一个程序员的文本编辑器但它缺少其他的基本功能例如代码折叠它甚至不能提示或者不全函数.
**评分:**
- Gedit:3/5
- Kate:5/5
- Sublime:5/5
- UltraEdit3/5
- jEdit:1/5
![如果你不喜欢Sublime的Charcoal外观你可以选择它包含的其它22中主题。](http://www.linuxvoice.com/wp-content/uploads/2014/08/sublime-web.png)
如果你不喜欢Sublime的Charcoal外观你可以选择它包含的其它22中主题。
### 键盘控制 ###
高级文本编辑器用户希望能完全通过键盘控制和操作,一些应用程序甚至运行他们的用户自定义快捷方式的键盘绑定。
你可以轻松的使用Gedit的扩展键盘快捷键。这里有编辑文件为普通任务例如对一个文档进行拼写检查唤起工具的快捷键。你可以获取应用程序内部的一系列默认快捷键但并没有图形化的方式去自定义它们。相似的在Sublime中自定义键绑定你需要修改他的XML键映射文件。Sublime由于缺少定义键盘快捷键的图形化界面而饱受批评但长期使用的用户支持当前的基于文件的机制:这给他们更多的控制能力。
UltraEdit为它"一切都可自定义"的座右铭感到自豪,这也包括键盘快捷键。你可以自定义菜单导航的热键,以及定义你自己的访问大量函数的多键键映射。
除了完全可自定义的键盘快捷键以外jEdit也有为Emacs预定义的键映射。Kate在这方面尤其令人映像深刻。它有简单可访问的自定义键绑定窗口。你可以更改默认的键或者定义替代的键。另外Kate也有一个能使用户使用Vi键操作Kate的Vi模式。
**Verdict:**
- Gedit:2/5
- Kate:5/5
- Sublime:3/5
- UltraEdit:4/5
- jEdit:5/5
### 片段和宏 ###
宏通过自动化重复的步骤帮助你降低花费在编辑和组织数据上的时间,而代码片段通过创建可重用的源代码块为程序员扩展类似的功能。这两者都能节省你的时间。
标准的Gedit安装没有这两种功能中的任何一种但是你可以通过独立的插件启用这些功能。片段插件随Gedit一起发布但在Gedit内部启用宏插件之前你需要手动下载和安装(被称为gedit-macropy托管在GitHub上)。
Kate也同样通过插件的形式启用片段功能。一旦加入插件也增加了片段的PHPBash和Java库。你可以在侧边栏中显示片段列表以便于访问。可以通过右击片段或者快捷键组合方式编辑它的内容。然而令人惊讶的是它不支持宏-尽管用户从2002年开始重复要求
jEdit也有一个启用片段的插件。但是它可以从用户行为中记录宏或者你也可以在BeanShell 脚本语言(BeanShell支持像Perl和JavaScript那样将脚本对象封锁为简单的方法)中写宏。jEdit也有一个可以从jEdit的网站中下载多种宏的插件。
Sublime有创建片段和宏的内建功能也有为大多数编程语言经常使用的函数多种片段。
在UltraEdit中片段被称为智能模板正如Sublime你可以根据正在编辑的源代码文件类型插入片段。要完成宏记录功能UltraEdit还有一个基于JavaScript的集成脚本语言来完成自动任务。你也可以从编辑器的网站中下载用户提交的宏和脚本。
**Verdict:**
- Gedit:3/5
- Kate:1/5
- Sublime:5/5
- UltraEdit:5/5
- jEdit:5/5
![UltraEdit的用户界面是高度可配置的 — 你可以正如改变其它许多方面那样简单的自定义工具栏和菜单的布局。](http://www.linuxvoice.com/wp-content/uploads/2014/08/ultraedit-web.png)
UltraEdit的用户界面是高度可配置的 — 你可以正如改变其它许多方面那样简单的自定义工具栏和菜单的布局。]
### 易用性 ###
不像一个准系统文本编辑器,文本编辑器的这个功能洋溢着适应大范围用户的功能 - 从文档写作者到程序员。从应用程序剥离相反,他们的开发者在寻找添加更多功能的途径。
尽管第一眼看上去这次组测试中的大部分应用有一个很相似的布局,经过仔细的检查,你会发现一些可用性差异。我们通过用户界面的合理使用来介绍它们的功能和特性,而不是铺天盖地地告诉读者。
### Gedit: 4/5 ###
Gedit有很普通的外观。通过最小化菜单和按钮有一个简单的界面。但这也是一种双刃剑因为有些用户可能不会发现它真正的潜能。
Gedit可以通过在窗口中能重排和移动的选项卡打开多个文件。用户可以通过使用一个插件选择性地启用旁边或者底部用来显示文件浏览和工具输出的面板。这个应用程序会检测到被其它应用程序更改的文件并可以重新加载这个文件。
为了适配Gnome在应用程序的最后一个版本中考虑了大量的用户界面。然而它还并不稳定尽管包括了所有的功能和菜单交互的一些插件还需要升级。
### Kate: 5/5 ###
尽管用户界面的主要部分和Gedit的相似Kate可以在两边显示选项卡并且它的菜单更加丰富。该应用程序平易近人让用户可以挖掘其它功能。
Kate可以在KDE的KIO支持的所有协议上透明地打开和保存文件包括HTTP, FTP, SSH, SMB 和 WebDAV。你可以用这个应用同时处理多个文件。但不同于大部分应用程序传统的水平选项卡选择栏Kate在屏幕的两个方向都有选项卡。左侧的侧边栏显示打开文件的索引。需要同时查看一个文件不同部分的程序员也会感激它可以水平或者竖直分隔界面的能力。
### Sublime: 5/5 ###
Sublime支持你在不同方式同时查看多达四个文件。当你在zone下这里也有一个只显示文件和菜单的全屏模式。
这个编辑器还在右边有个小地图,这在长文件中导航非常有用。应用程序为多种编程语言提供多种流行功能的片段,这使得它对于开发者非常有用。另一个精巧的功能是,无论你使用都是文本文档或者代码,都可以交换和随机选择。
### UltraEdit: 3/5 ###
UltraEdit在界面的顶部和底部加载了多种工具栏。由于有在文档中跳转的选项卡两边的面板以及复杂区别使得只剩下一点空间给编辑窗口。
使用HTML的网络开发者有很多唾手可得的帮助。你可以通过FTP和SFTP访问远程文件。高级功能例如记录一个宏以及比较文件也简单易用。
使用应用程序的Preference窗口你可以调整应用程序的多个方面包括颜色主题和类似语法高亮的其它功能。
### jEdit: 3/5 ###
在可用性方面首先一个不好就是jEdit不能在基于RPM的发行版上安装。导航编辑器需要一些时间来适应因为它的菜单和其它流行的应用程序顺序不同而且有些普通桌面用户不熟悉的名字。但是该应用程序有详细的内部帮助这有利于缓解学习曲线。
jEdit高亮你所在的当前行并使你能一多种查看方式分隔窗口。你可以简单地从应用程序中安装和管理插件除了全宏jEdit也支持你记录快速临时的宏。
![由于它的Java基础jEdit在任何桌面环境中都不能给人宾至如归的感觉](http://www.linuxvoice.com/wp-content/uploads/2014/08/jedit-web.png)
由于它的Java基础jEdit在任何桌面环境中都不能给人宾至如归的感觉
### 可用性和支持 ###
在Gedit和Kate之间有很多相似性。两个应用程序都得益于他们各自的父项目Gnome和KDE并绑定在各种主流的发行版中。另外两个项目都是交叉平台的有Windows和Mac OS X版本以及本来的Linux版本。
Gedit托管在Gnome的网络设施上并有一个简单的用户指南关于多种插件的信息以及包括邮件列表和IRC通道的常用保持联系方式。你也可以在其它基于Gnome的发行版例如Ubuntu中找到使用信息。相似地Kate得益于KDE的资源并包括详细的用户信息以及邮件列表和IRC通道。你也可以从应用程序中获取相应的离线用户指南。
除了LinuxUltraEdit在Windows和Mac OS X中也可用虽然在应用程序中并没有包括但在启动时也有详细的用户指南。为了辅助用户UltraEdit保存了一个常见问题的数据库一系列关于多种特定功能的详细信息的有用提示用户还可以在论坛版块彼此帮助。另外付费用户也可以通过邮件从开发者中获取支持。
Sublime支持相同数目的平台但是你需要单独为每种平台购买许可证。开发者通过博客使用户了解正在进行的开发并积极参加了主持论坛。这个项目支持设施的亮点是提供免费的详细教程和视频课程。Sublime非常可爱。
由于是用java编写的jEdit在多种平台中都可用。在它的网站上你可以找到一个详细的用户指南以及一些插件帮助文档的链接。然而这里没有能使用户和其他用户或者开发者交流的途径。
**判定:**
- Gedit: 4/5
- Kate: 4/5
- Sublime: 5/5
- UltraEdit: 3/5
- jEdit: 2/5
### 附加和插件 ###
不同的用户有不同的需求,一个简单的轻量级应用程序只能做到这么多。这就是为什么需要插件的原因。应用程序依赖于这些小部件来扩展它们的功能集并让更多的用户使用。
UltraEdit是一个另外。它没有第三方插件但开发者确实支出了例如HtmlTidy的第三方工具已经安装到了UltraEdit。
Gedit附带了好多已安装的插件你可以从gedit-插件包下载更多的插件。基于和Gedit版本的兼容性项目网站也有到多个第三方插件的链接。
三个对程序员非常有用的插件是Code Comment在底部面板增加一个终端的Terminal Plugin以及Session Saver。当你用多个文件开发项目的时候Session Saver相当有用。你可以在选项卡中打开文件保存会话当你用一个单击回复的时候可以按照你保存时的选项卡顺序打开所有的文件。
类似的你可以通过用内部的插件管理器增加插件来扩展Kate。除了令人映像深刻的项目插件一些开发者使用的插件包括嵌入式终端能编译和调试代码以及对数据库执行SQL查询。
Sublime的插件是用Python写的文本编辑器包括了一个类似于apt-get能使用户查找安装升级和移除插件包的名为Package Control的工具。通过插件你可以在Sublime中使用Git版本控制以及改进JavaScript的JSLint工具。Sublime Linter能指出你代码中的错误是编码人员必备的插件。
jEdit拥有最令人映像深刻的插件设施。该应用有超过200个插件可以在它们自己的专用网站中浏览。网站通过不同的类型列举了插件例如文件管理版本控制文本等。你可以在每个类型下找到很多的插件。
一些最好的插件是Android插件它们提供了和Android项目协同工作的工具你可以使用TomcatSwitch插件创建和控制外部Jakarta Tomcat服务器进程以及类似于Vi功能的Vimulator插件。你可以通过使用jEdit的插件管理器安装这些插件。
**评定**
- Gedit: 3/5
- Kate: 4/5
- Sublime: 4/5
- UltraEdit: 1/5
- jEdit: 5/5
### 纯文本编辑 ###
尽管它们强大的额外功能甚至可能会取代几个流派完全成熟的应用程序,有时候可能只需要使用这些庞大的文本编辑器读写或者编辑简单的纯文本。虽然你可以使用它们中的任何一个输入文本,我们通过普通文本编辑的方便性评价它们。
Gnome的默认文本编辑器Gedit支持取消和重做机制以及搜索和替换。它可以对多种语言进行拼写检查并能通过使用Gnome GVFS库访问和编辑远程文件。
你也可以使用Kate进行拼写检查它也可以让你对任何高亮文本进行Google搜索。它还有一个能可视化告知用户文件中更改过但没有保存的行的行修改系统。另外它通过允许用户在文件中使用书签简化长文档的导航。
Sublime有很多可选择的编辑命令例如缩进文本和格式化段落。它的自动保存功能帮助防止用户丢失他们的更改。高级用户还会喜欢基于正则表达式的递归查找和替换功能以及选择多个不连续的文本块并执行统一操作。
UltraEdit也允许用户在查找和替换功能中使用正则表示并能通过FTP编辑远程文件。JEdit一个独特的功能是它支持被称为寄存器的不限数目的剪切板。你可以复制文本片段到这些寄存器中在编辑会话过程中都可用。
**评定:**
- Gedit: 4/5
- Kate: 5/5
- Sublime: 5/5
- UltraEdit: 4/5
- jEdit: 4/5
### 我们的评比 ###
在这里的所有编辑器都足以替换你已有的文本编辑器去用来编辑文本和调整配置文件。事实上,没准它们会组合起来作为你的集成开发环境。这些应用程序都有各种各样功能,它们的开发者不会考虑剥离功能,而是增加越来越多的功能。
jEdit排在这次测试的最后面。因为它不仅坚持使用专有的Oracle Java运行环境不能在你的Fedora机器上安装而且开发者不积极的和用户交互。
UltraEdit做的稍微好一点。这个商业专用工具专注于网络开发者不为非开发者高级用户提供任何功能使得它不值得推荐为免费软件的替代品。
排在第三的是Gedit。作为Gnome的默认编辑器它没有任何内在的错误但尽管有很多积极的方面它还是略微被Sublime和Kate超越。开诚布公地说Kate是比Gedit更通用的编辑器甚至考虑到他们的插件系统评分也优于Gnome的默认编辑器。
Sublime和Kate都相当好。他们在我们的大多数测试中表现同样出色。由于不支持宏而落后于Sublime但键盘友好和能简单定义自定义键绑定又使Kate找回优势。
Kate成功的原因可以归结为它通过最小化学习曲线提供了最大化数目的功能。尽量使用它吧不仅作为简单文本编辑器使用或者容易使用语法高亮编辑配置文件甚至得益于项目管理能力能使用它协作一个复杂的编程项目。
我们不是选择Kate去替换一个类似[在这里插入你最喜欢的专业工具]的全面的集成开发环境。但是它是一个专业工具理想的全面的以及完美的垫脚石。
Kate为能快速响应你的需要而设计它的界面并不会使你茫然并且和那些过于复杂的应用一样的有用。
### 1st Kate ###
- Licence LGPL/GPL Version 3.11
- www.kate-editor.org
- 拥有超能力,最终温和的文本编辑器。
- Kate是KDE项目中最有用的应用程序之一。
### 2nd Sublime Text ###
- Licence Proprietary Version 2.0.2
- www.sublimetext.com
- 值得你每分钱的专业文本编辑器 - 简单易用,功能全面而且看起来很棒。
### 3rd Gedit ###
- Licence GPL Version 3.10
- http://projects.gnome.org/gedit
- 从Gnome中完成。这是一个奇妙的文本编辑器确实令人钦佩的工作但这里的竞争实在太大了。
### 4th UltraEdit ###
- Licence Proprietary Version 4.1.0.4
- www.ultraedit.com
- 关注于为网络开发者绑定便利,而不为普通用户提供任何特殊功能。
### 5th jEdit ###
- Licence GPL Version 5.1.0
- www.jedit.org
- 缺乏支持不支持Fedora缺乏好看的界面jEdit被贬低到最后。
### 你也许希望尝试… ###
随你发行版发布的默认文本编辑器也能帮助你一些高级任务。例如KDE的KWrite和Raspbian的Nano。得益于KDE的katepart组件KWrite继承了一些Kate的功能得益于在树莓派上的可用性Nano也开始重现风头。
如果你希望跟随Linux大师的脚步你总是可以尝试崇高的文本编辑机Emacs和Vim。想尝试Vim强大的用户首先可以考虑gVim它通过图形界面展现了Vim的强大。
除了jEdit和Kate这里还有其他模仿例如Emacs和Vim之类的老派高级编辑器的编辑器比如JED 编辑器和Joe's Own Editor这两者都有Emacs的模拟模式。另一方面如果你在寻找轻量级的代码编辑器可以看看Bluefish和Geany。他们的存在是为了填补文本编辑器和全面集成的开发平台之间的空隙。
--------------------------------------------------------------------------------
via: http://www.linuxvoice.com/text-editors/
作者:[Ben Everard][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[royaso](https://github.com/royaso)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.linuxvoice.com/author/ben_everard/

View File

@@ -1,115 +0,0 @@
Guake 0.7.0 已发布 - 一个用于Gnome桌面的下拉式终端
================================================================================
Linux的命令行是最好、最强大的东西它使新手着迷并为老手和极客的提供极端强大的功能。那些在服务器和生产环境下工作的人早已认识到了这个事实。有趣的是Linux终端是Linus Torvald在1991年写内核时实现的第一批功能之一。
终端是个强大的工具由于它没有可移动的部分所以十分可靠。终端介于控制台环境和GUI环境之间。终端自身作为一个GUI程序运行在桌面环境下。有许多终端是适用于特定的桌面环境的而其余是通用的。Terminator, Konsole, Gnome-Terminal, Terminology, XFCE terminal, xterm都是些常用的终端模拟器。
您可以从下面的链接中获得一份使用最广泛的终端模拟器的列表。
- [20 Useful Terminals for Linux][1]
前几日上网时我偶遇了名为Guake它是用于gnome的终端模拟器。尽管这并不是我第一次听到Guake。实际上我在大约一年前便知道了这个应用程序但不知怎么搞的我那时没有写写Guake再后来我便渐渐忘掉了Guake直到我再一次听到Guake。所以最终这篇文章诞生了。我将给你讲讲Guake的功能在Debian、Ubuntu、Fedora上的安装过程以及一些测试。
#### 什么是Guake ####
Guake是应用于Gnome环境的下拉式终端。主要由Python编写使用了一些C它以GPL2+证书发布适用于Linux以及类似的系统。Guake的灵感来源于电脑游戏Quake雷神之锤的终端Quake的终端能通过按下特定按键默认为F12从屏幕上滑下来并在按下同样的键后滑上去。
值得注意的是Guake并不是第一个这样的应用。YakuakeYet Another Kuake是一个运行于KDE的终端模拟器Tilda是一个用GTK+写成的终端模拟器。它们的灵感都来自于雷神之锤那上下滑动的终端。
#### Guake的功能 ####
- 轻量级
- 简单而优雅
- 众多功能
- 强大的
- 好看的
- 平滑的集成于GUI
- 在按下预定义的键后出现/消失
- 支持热键、标签、透明化背景这使得它适合所有Gnome用户
- 极端地可配置
- 包括许多颜色的调色板
- 设定透明度的快捷方式
- 通过Guake配置可在启动时运行一个脚本
- 可以在多个监视器上运行
Guake 0.7.0最近发布,它带来了一些修正以及上面提到的一些功能。完整的版本历史和源代码包可以在[这里][2]找到。
### 在Linux中安装Guake终端 ###
如果您对从源码编译Guake感兴趣您可以从上面的链接处下载Guake并在安装前进行编译。
然而Guake可以在许多的发行版中通过添加额外的仓库来安装。这里我们将在Debian、Ubuntu、Linux Mint和Fedora下安装Guake。
首先从仓库获取最新的软件包列表并从默认的仓库安装Guake如下所示
---------------- On Debian, Ubuntu and Linux Mint ----------------
$ sudo apt-get update
$ apt-get install guake
----------
---------------- On Fedora 19 Onwards ----------------
# yum update
# yum install guake
安装后可以从另一个终端中启动Guake
$ guake
在启动它后便可以在Gnome桌面中使用F12默认配置来下滑、上滑终端。
看起来非常漂亮,尤其是透明背景。滑下来...滑上去...滑下来...滑上去...执行命令,打开另一个标签,执行命令,滑上去...滑下来...(作者已沉迷其中)
![Guake Terminal in Action](http://www.tecmint.com/wp-content/uploads/2015/05/Guake.png)
Guake实战
如果您的壁纸或活动窗口的颜色和Guake的颜色有些不搭。您可以改变您的壁纸减少透明度或者改变Guake的颜色。
下一步便是进入Guake的配置根据每个人的需求修改设置。可以通过应用菜单或者下面的命令来运行Guake的配置。
$ guake --preferences
![Guake Terminal Properties](http://www.tecmint.com/wp-content/uploads/2015/05/Guake-Properties.png)
Guake终端配置
滚动配置
![Guake Scrolling Settings](http://www.tecmint.com/wp-content/uploads/2015/05/Guake-Scrolling.png)
Guake滚动配置
外观设置 - 在这里您可以修改文字颜色和背景色以及透明度。
![Appearance Properties](http://www.tecmint.com/wp-content/uploads/2015/05/Appearance-Properties.png)
外观设置
键盘快捷键 - 在这里您可以修改Guake显示的开关快捷键。
![Keyboard Shortcuts](http://www.tecmint.com/wp-content/uploads/2015/05/Keyboard-Shortcuts.png)
键盘快捷键
兼容性设置 - 基本上不必设置它。
![Compatibility Setting](http://www.tecmint.com/wp-content/uploads/2015/05/Compatibility-Setting.png)
兼容性设置
### 结论 ###
这个项目即不是太年轻也不是太古老因此它已经达到了一定的成熟度足够可靠可以开箱即用。像我这样需要在GUI和终端间频繁切换的人来说Guake是一个福利。我不需要管理一个多余的窗口频繁的打开和关闭使用tab在大量打开的应用程序中寻找终端或切换到不同的工作区来管理终端现在我需要的只有F12。
我认为对任何同时使用GUI和终端的Linux用户来说Guake都是必须的工具。同样的我会向任何想要在系统中结合使用GUI和终端的人推荐它因为它既平滑又没有任何障碍。
上面就是我要说的全部了。如果在安装和使用时有任何问题请告诉我我们会帮助您。也请您告诉我您使用Guake的经验。在下面的评论区反馈您宝贵的经验。点赞和分享以帮助我们宣传。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/install-guake-terminal-ubuntu-mint-fedora/
作者:[Avishek Kumar][a]
译者:[wwy-hust](https://github.com/wwy-hust)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/linux-terminal-emulators/
[2]:https://github.com/Guake/guake/releases/tag/0.7.0

View File

@@ -0,0 +1,159 @@
Sleuth Kit -- 一个用来分析磁盘映像和恢复文件的开源取证工具
================================================================================
SIFT 是一个由 SANS 公司提供的基于 Ubuntu 的取证发行版本。它包含许多取证工具,如 Sleuth kit/Autopsy 。但 Sleuth kit / Autopsy 可以直接在 Ubuntu 或 Fedora 发行版本上直接安装,而不必下载 SIFT 的整个发行版本。
Sleuth Kit/Autopsy 是一个开源的电子取证调查工具,它被用于从磁盘映像中恢复丢失的文件,基于事件响应的磁盘映像的分析。 Autopsy 工具是 sleuth kit 的一个网页接口,支持 sleuth kit 的所有功能。这个工具在 Windows 和 Linux 平台下都可获取到。
### 安装 Sleuth kit ###
首先,从 [sleuthkit][1] 的网站下载 Sleuth kit 软件。使用下面的命令在虚拟终端下使用 wget 命令来下载它,下图展示了这个过程。
# wget http://cznic.dl.sourceforge.net/project/sleuthkit/sleuthkit/4.1.3/sleuthkit-4.1.3.tar.gz
![下载 Sleuth Kit](http://blog.linoxide.com/wp-content/uploads/2015/03/download-sleuthkeit.png)
使用下面的命令解压 sleuthkit-4.1.3.tar.gz 并进入解压后的目录:
# tar -xvzf sleuthkit-4.1.3.tar.gz
![解压过程](http://blog.linoxide.com/wp-content/uploads/2015/03/extract.png)
在安装 sleuth kit 之前,运行下面的命令来执行所需的检查:
#./configure
![configure](http://blog.linoxide.com/wp-content/uploads/2015/03/configure.png)
然后使用 Make 命令来编译 sleuth kit
#make
![make](http://blog.linoxide.com/wp-content/uploads/2015/03/make.png)
最后,使用下面的命令将它安装到 **/usr/local** 目录下:
#make install
![make install](http://blog.linoxide.com/wp-content/uploads/2015/03/make-install.png)
### 安装 Autopsy 工具 ###
Sleuth kit 已经安装完毕,现在我们将为它安装 autopsy 界面。从 [sleuthkit 的 autopsy 页面][2] 下载 Autopsy 软件。使用下面的命令在虚拟终端下使用 wget 命令来下载它,下图展示了这个过程。
# wget http://kaz.dl.sourceforge.net/project/autopsy/autopsy/2.24/autopsy-2.24.tar.gz
![Autpsy 的下载链接](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy.png)
使用下面的命令解压 autopsy-2.24.tar.gz 并进入解压后的目录:
# tar -xvzf autopsy-2.24.tar.gz
![Autopsy 的解压](http://blog.linoxide.com/wp-content/uploads/2015/03/Autopsy-extraction.png)
autopsy 的配置脚本将询问 NSRL (National Software Reference Library) 和 **Evidence_Locker** 文件夹的路径。
当弹窗问及 NSRL 时,输入 "n",并在 **/usr/local** 目录下创建名为 Evidence_Locker 的文件夹。Autopsy 将在 Evidence_Locker 文件夹下存储配置文件,审计记录和输出文件。
#mkdir /usr/local/Evidence_Locker
#cd autopsy-2.24
#./configure
![Autopsy 配置脚本](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy-configuration.png)
在安装过程中添加完 Evidence_Locker 的安装路径后, autopsy 在那里存储配置文件并展现如下的信息来运行 autopsy 程序。
![启动 Autopsy](http://blog.linoxide.com/wp-content/uploads/2015/03/start-autopsy.png)
在虚拟终端中键入 **./autopsy** 命令来启动 Sleuth kit 工具的图形界面:
![Autopsy](http://blog.linoxide.com/wp-content/uploads/2015/03/autopsy-started.png)
在浏览器中键入下面的地址来获取 autopsy 的界面:
http://localhost:9999/autopsy
下图展现了 autopsy 插件的主页面:
![主页](http://blog.linoxide.com/wp-content/uploads/2015/03/main-interface.png)
在 autopsy 工具中,点击 **新案例** 按钮来开始进行分析。键入案例名称,此次调查的描述和检查人的姓名,下图有具体的展示:
![创建新事件](http://blog.linoxide.com/wp-content/uploads/2015/03/create-new-case1.png)
在接下来的网页中,将展示在上一个的网页中键入的详细信息。接着点击 **增加主机** 按钮来添加有关要分析的机器的详细信息。
![增加主机](http://blog.linoxide.com/wp-content/uploads/2015/03/add-host1.png)
在下一个网页中键入主机名,相关的描述和要分析的机器的时区设置。
![添加主机的详细信息](http://blog.linoxide.com/wp-content/uploads/2015/03/add-host-detial.png)
点击 **增加映像** 按钮来为取证分析添加映像文件。
![添加映像](http://blog.linoxide.com/wp-content/uploads/2015/03/add-image.png)
在接下来的网页中点击 **增加映像文件** 按钮。它将打开一个新的网页,来询问映像文件的路径和选择映像的类型以及导入的方法。
![添加映像文件](http://blog.linoxide.com/wp-content/uploads/2015/03/Add-image-file.png)
正如下图中展示的那样,我们已经键入了 Linux 映像文件的路径。在我们这个例子中,映像文件是磁盘的分区。
![添加映像分区](http://blog.linoxide.com/wp-content/uploads/2015/03/add-image-parition.png)
点击 下一步 按钮并在下一页中选择 **计算散列值** 的选项,这在下图中有展示。它也将检测所给映像的文件系统类型。
![映像和文件系统详情](http://blog.linoxide.com/wp-content/uploads/2015/03/image-and-file-system-detail.png)
下面的图片展示了静态分析之前映像文件的 MD5 散列值。
![散列值](http://blog.linoxide.com/wp-content/uploads/2015/03/hash1.png)
在下一个网页中, autopsy 展现了有关映像文件的如下信息:
- 映像的挂载点
- 映像的名称
- 所给映像的文件系统类型
点击 **详情** 按钮来获取更多有关所给映像文件的信息。它还提供了从映像文件的卷中导出未分配的片段和字符串的数据信息,这在下图中有展现。
![映像的详细信息](http://blog.linoxide.com/wp-content/uploads/2015/03/image-details.png)
在下图中那样,点击 **分析** 按钮来开始分析所给映像。它将开启另一个页面,其中包含了映像分析的多个选项。
![分析](http://blog.linoxide.com/wp-content/uploads/2015/03/analysis1.png)
在映像分析过程中Autopsy 提供了如下的功能:
- 文件分析
- 关键字搜索
- 文件类型
- 映像详情
- 数据单元
下图展示的是在给定的 Linux 分区映像上进行文件分析:
![映像的分析](http://blog.linoxide.com/wp-content/uploads/2015/03/Analysis-of-image.png)
它将从所给映像中提取所有的文件和文件夹。在下图中也展示了已被删除的文件的提取:
![已被删除的文件](http://blog.linoxide.com/wp-content/uploads/2015/03/deleted.png)
### 结论 ###
希望这篇文章能够给那些进入磁盘映像的静态分析领域的新手提供帮助。Autopsy 是 sleuth kit 的网页界面,提供了在 Windows 和 Linux 磁盘映像中进行诸如字符串提取,恢复被删文件,时间线分析,网络浏览历史,关键字搜索和邮件分析等功能。
--------------------------------------------------------------------------------
via: http://linoxide.com/ubuntu-how-to/autopsy-sleuth-kit-installation-ubuntu/
作者:[nido][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/naveeda/
[1]:http://www.sleuthkit.org/sleuthkit/download.php
[2]:http://www.sleuthkit.org/autopsy/download.php

View File

@@ -0,0 +1,193 @@
10个!符号在Linux命令行下惊人和奇妙的用法
================================================================================
`'!'`符号在Linux中不但可以用作否定符号还可以用来从历史命令记录中取出命令或不加修改的执行之前运行的命令。下面的所有命令都已经在Bash Shell中经过确切地检查。尽管我没有试过但大多都不能在别的Shell中运行。这里我们介绍下Linux命令行中符号`'!'`那惊人和奇妙的用法。
### 1. 使用数字从历史命令列表中找一条命令来执行 ###
您也许没有意识到您可以从历史命令列表(之前已经执行的命令集)中找出一条来运行。首先,通过"history"命令查找之前命令的序号。
$ history
![使用history命令找到最后执行的命令](http://www.tecmint.com/wp-content/uploads/2015/05/history-Command.gif)
现在,只需要使用历史命令输出中显示在该命令前面的数字便可以运行这个命令。例如,运行一个在`history`输出中编号是1551的命令。
$ !1551
![使用命令ID来执行最后运行的命令](http://www.tecmint.com/wp-content/uploads/2015/05/Run-Commands-By-number.gif)
这样编号为1551的命令上面的例子是[top命令][1]便运行了。这种通过ID号来执行之前的命令的方式很有用尤其是在这些命令都很长的情况下。您只需要使用**![history命令输出的序号]**便可以调用它。
### 2. 运行之前的倒数第二个、第七个命令等 ###
您可以以另一种方式来运行之前执行的命令,通过使用-1代表最后的命令-2代表倒数第二个命令-7代表倒数第七个命令等。
首先使用history命令来获得执行过的命令的列表。history命令的执行很有必要因为您可以通过它来确保没有`rm command > file`或其他会导致危险的命令。接下来执行倒数第六个、第八个、第十个命令。
$ history
$ !-6
$ !-8
$ !-10
![通过负数序号运行之前执行的命令](http://www.tecmint.com/wp-content/uploads/2015/05/3.gif)
通过负数序号运行之前执行的命令
### 3. 向最后的命令传递参数,以方便的运行新的命令 ###
我需要显示`/home/$USER/Binary/firefox`文件夹的内容,因此我执行:
$ ls /home/$USER/Binary/firefox
接下来,我意识到我应该执行'ls -l'来查看哪个文件是可执行文件。因此我应该重新输入整个命令么?不,我不需要。我仅需要在新的命令中带上最后的参数,类似:
$ ls -l !$
这里`!$`将把最后执行的命令的参数传递到这个新的命令中。
![将上一个命令的参数传递给新命令](http://www.tecmint.com/wp-content/uploads/2015/05/4.gif)
将上一个命令的参数传递给新命令
### 4. 如何使用!来处理两个或更多的参数 ###
比如说我在桌面创建了一个文本文件file1.txt。
$ touch /home/avi/Desktop/1.txt
然后在cp命令中使用绝对路径将它拷贝到`/home/avi/Downloads`
$ cp /home/avi/Desktop/1.txt /home/avi/downloads
现在我们给cp命令传递了两个参数。第一个是`/home/avi/Desktop/1.txt`,第二个是`/home/avi/Downloads`。让我们分别处理他们,使用`echo [arguments]`来打印两个不同的参数。
$ echo "1st Argument is : !^"
$ echo "2nd Argument is : !cp:2"
注意第一个参数可以使用`"!^"`进行打印,其余的命令可以通过`"![命令名]:[参数编号]"`打印。
在上面的例子中,第一个命令是`cp`,第二个参数也需要被打印。因此是`"!cp:2"`如果任何命令比如xyz运行时有5个参数而您需要获得第四个参数您可以使用`"!xyz:4"`。所有的参数都可以通过`"!*"`来获得。
![处理两个或更多的参数](http://www.tecmint.com/wp-content/uploads/2015/05/5.gif)
处理两个或更多的参数
### 5. 以关键字为基础执行上个的命令 ###
我们可以以关键字为基础执行上次执行的命令。可以从下面的例子中理解:
$ ls /home > /dev/null [命令1]
$ ls -l /home/avi/Desktop > /dev/null [命令2]
$ ls -la /home/avi/Downloads > /dev/null [命令3]
$ ls -lA /usr/bin > /dev/null [命令4]
上面我们使用了同样的命令ls但有不同的开关和不同的操作文件夹。而且我们还将输出传递到`/dev/null`,我们并未处理输出,因而终端依旧很干净。
现在以关键字为基础执行上个的命令。
$ ! ls [命令1]
$ ! ls -l [命令2]
$ ! ls -la [命令3]
$ ! ls -lA [命令4]
检查输出,您将惊奇发现您仅仅使用关键字`ls`便执行了您已经执行过的命令。
![以关键字为基础执行命令](http://www.tecmint.com/wp-content/uploads/2015/05/6.gif)
以关键字为基础执行命令
### 6. !!操作符的威力 ###
您可以使用`(!!)`运行/修改您上个运行的命令。它将附带一些修改/调整并调用上个命令。让我给您展示一些实际情境。
昨天我运行了一行脚本来获得我的私密IP因此我执行了
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/
接着我突然发现我需要将上面脚本的输出重定向到一个ip.txt的文件因此我改怎么办呢我改重新输入整个命令并重定向到一个文件么一个简单的解决方案是使用向上导航键并添加`'> ip.txt'`来将输出重定向到文件。
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/ > ip.txt
在这里感谢救世主"向上导航键"。现在,考虑下面的情况,这次我运行了下面这一行脚本。
$ ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
一旦我运行了这个脚本Bash提示符便返回了错误消息`"bash: ifconfig: command not found"`。原因并不难猜我运行了本应以root权限的运行的命令。
所以怎么解决呢我们很难以root用户登录并且再次键入整个命令而且向上导航键也不管用了。因此我们需要调用`"!!"`(去掉引号),它将为那个用户调用上个命令。
$ su -c "!!" root
这里su是用来切换到root用户的`-c`用来以某用户运行特定的命令,最重要的部分是`!!`它将被替换为上次运行的命令。对的您需要提供root密码。
![!!操作符的威力](http://www.tecmint.com/wp-content/uploads/2015/05/7.gif)
!!操作符的威力
我通常在下面的情景中使用`!!`
1.当我用普通用户来运行apt-get我通常收到提示说我没有权限来执行。
$ apt-get upgrade && apt-get dist-upgrade
好吧,有错误。但别担心,使用下面的命令来成功的执行...
$ su -c !!
同样的适用于:
$ service apache2 start
$ /etc/init.d/apache2 start
$ systemctl start apache2
普通用户不被授权执行那些任务,所以我运行:
$ su -c 'service apache2 start'
$ su -c '/etc/init.d/apache2 start'
$ su -c 'systemctl start apache2'
### 7.运行一个影响所有除了![FILE_NAME]的文件命令 ###
`!`(逻辑非)能用来对除了`'!'`后的文件的所有的文件/扩展执行命令。
A.从文件夹移除所有文件2.txt除外。
$ rm !(2.txt)
B.从文件夹移除所有的文件类型pdf类型除外。
$ rm !(*.pdf)
### 8.检查某个文件夹(比如/home/avi/Tecmint是否存在并打印 ###
这里,我们使用`'! -d'`来验证文件夹是否存在当文件夹不存在时将使用其后跟随AND操作符`(&&)`进行打印当文件夹存在时将使用OR操作符`(||)`进行打印。
逻辑上,当`[ ! -d /home/avi/Tecmint ]`的输出为0时它将执行AND逻辑符后面的内容否则它将执行OR逻辑符`(||)`后面的内容。
$ [ ! -d /home/avi/Tecmint ] && printf '\nno such /home/avi/Tecmint directory exist\n' || printf '\n/home/avi/Tecmint directory exist\n'
### 9.检查某文件夹是否存在?如果不存在则退出该命令 ###
类似于上面的情况,但这里当期望的文件夹不存在时,该命令会退出。
$ [ ! -d /home/avi/Tecmint ] && exit
### 10.如果您的home文件夹内不存在一个文件夹比方说test则创建它 ###
这是脚本语言中的一个常用的实现,当期望的文件夹不存在时,创建一个。
[ ! -d /home/avi/Tecmint ] && mkdir /home/avi/Tecmint
这便是全部了。如果您知道或偶尔遇到其他值得了解的`'!'`使用方法,请您在反馈的地方给我们提建议。保持联系!
--------------------------------------------------------------------------------
via: http://www.tecmint.com/mysterious-uses-of-symbol-or-operator-in-linux-commands/
作者:[Avishek Kumar][a]
译者:[wwy-hust](https://github.com/wwy-hust)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/12-top-command-examples-in-linux/