如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP

如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP
如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP

我成功地在 Ubuntu 15.04 下用 Gnome Network Manager 创建了一个无线AP热点。接下来我要分享一下我的步骤。请注意:你必须要有一个可以用来创建AP热点的无线网卡。如果你不知道如何确认它的话,在终端(Terminal)里输入iw list

如果你没有安装iw的话, 在Ubuntu下你可以使用sudo apt-get install iw进行安装.

在你键入iw list之后, 查看“支持的接口模式”, 你应该会看到类似下面的条目中看到 AP:

Supported interface modes:

* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point

让我们一步步看:

1、 断开WIFI连接。使用有线网络接入你的笔记本。

2、 在顶栏面板里点击网络的图标 -> Edit Connections(编辑连接) -> 在弹出窗口里点击Add(新增)按钮。

3、 在下拉菜单内选择Wi-Fi。

4、 接下来:

a、 输入一个链接名 比如: Hotspot 1

b、 输入一个 SSID 比如: Hotspot 1

c、 选择模式(mode): Infrastructure (基础设施)

d、 设备 MAC 地址: 在下拉菜单里选择你的无线设备

如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP
如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP

5、 进入Wi-Fi安全选项卡,选择 WPA & WPA2 Personal 并且输入密码。 6、 进入IPv4设置选项卡,在Method(方法)下拉菜单里,选择Shared to other computers(共享至其他电脑)。

如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP
如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP

7、 进入IPv6选项卡,在Method(方法)里设置为忽略ignore (只有在你不使用IPv6的情况下这么做) 8、 点击 Save(保存) 按钮以保存配置。 9、 从 menu/dash 里打开Terminal。 10、 修改你刚刚使用 network settings 创建的连接。

使用 VIM 编辑器:

sudo vim /etc/NetworkManager/system-connections/Hotspot

或使用Gedit 编辑器:

gksu gedit /etc/NetworkManager/system-connections/Hotspot

把名字 Hotspot 用你在第4步里起的连接名替换掉。

如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP
如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP

a、 把 mode=infrastructure 改成 mode=ap 并且保存文件。 b、 一旦你保存了这个文件,你应该能在 Wifi 菜单里看到你刚刚建立的AP了。(如果没有的话请再顶栏里 关闭/打开 Wifi 选项一次)

如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP
如何在 Ubuntu 15.04 下创建一个可供 Android/iOS 连接的 AP

11、你现在可以把你的设备连上Wifi了。已经过 Android 5.0的小米4测试。(下载了1GB的文件以测试速度与稳定性)


via: http://www.linuxveda.com/2015/08/23/how-to-create-an-ap-in-ubuntu-15-04-to-connect-to-androidiphone/

作者:Sayantan Das 译者:jerryling315 校对:wxy

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

RHCSA 系列(四): 编辑文本文件及分析文本

作为系统管理员的日常职责的一部分,每个系统管理员都必须处理文本文件,这包括编辑已有文件(大多可能是配置文件),或创建新的文件。有这样一个说法,假如你想在 Linux 世界中挑起一场圣战,你可以询问系统管理员们,什么是他们最喜爱的编辑器以及为什么。在这篇文章中,我们并不打算那样做,但我们将向你呈现一些技巧,这些技巧对使用两款在 RHEL 7 中最为常用的文本编辑器: nano(由于其简单和易用,特别是对于新手来说)和 vi/m(由于其自身的几个特色使得它不仅仅是一个简单的编辑器)来说都大有裨益。我确信你可以找到更多的理由来使用其中的一个或另一个,或许其他的一些编辑器如 emacs 或 pico。这完全取决于你自己。

RHCSA 系列(四): 编辑文本文件及分析文本
RHCSA 系列(四): 编辑文本文件及分析文本

RHCSA: 使用 Nano 和 Vim 编辑文本文件 – Part 4

使用 Nano 编辑器来编辑文件

要启动 nano,你可以在命令提示符下输入 nano,或可选地跟上一个文件名(在这种情况下,若文件存在,它将在编辑模式中被打开)。若文件不存在,或我们省略了文件名, nano 也将在编辑模式下开启,但将为我们开启一个空白屏以便开始输入:

RHCSA 系列(四): 编辑文本文件及分析文本
RHCSA 系列(四): 编辑文本文件及分析文本

Nano 编辑器

正如你在上一张图片中所见的那样, nano 在屏幕的底部呈现出一些可以通过指定的快捷键来触发的功能(^,即插入记号,代指 Ctrl 键)。它们中的一些是:

  • Ctrl + G: 触发一个帮助菜单,带有一个关于功能和相应的描述的完整列表;
RHCSA 系列(四): 编辑文本文件及分析文本
RHCSA 系列(四): 编辑文本文件及分析文本

Nano 编辑器帮助菜单

  • Ctrl + O: 保存更改到一个文件。它可以让你用一个与源文件相同或不同的名称来保存该文件,然后按 Enter 键来确认。

Nano 编辑器保存更改模式

Nano 编辑器的保存更改模式

  • Ctrl + X: 离开当前文件,假如更改没有被保存,则它们将被丢弃;
  • Ctrl + R: 通过指定一个完整的文件路径,让你选择一个文件来将该文件的内容插入到当前文件中;

Nano: 插入文件内容到主文件中

Nano: 插入文件内容到主文件中

上图的操作将把 /etc/passwd 的内容插入到当前文件中。

  • Ctrl + K: 剪切当前行;
  • Ctrl + U: 粘贴;
  • Ctrl + C: 取消当前的操作并返回先前的屏幕;

为了轻松地在打开的文件中浏览, nano 提供了下面的功能:

  • Ctrl + F 和 Ctrl + B 分别先前或向后移动光标;而 Ctrl + P 和 Ctrl + N 则分别向上或向下移动一行,功能与箭头键相同;
  • Ctrl + space 和 Alt + space 分别向前或向后移动一个单词;

最后,

  • 假如你想将光标移动到文档中的特定位置,使用 Ctrl + _ (下划线) 并接着输入 X,Y 将准确地带你到 第 X 行,第 Y 列。

在 nano 中定位到具体的行,列

在 nano 中定位到具体的行和列

上面的例子将带你到当前文档的第 15 行,第 14 列。

假如你可以回忆起你早期的 Linux 岁月,特别是当你刚从 Windows 迁移到 Linux 中,你就可能会同意:对于一个新手来说,使用 nano 来开始学习是最好的方式。

使用 Vim 编辑器来编辑文件

Vim 是 vi 的加强版本,它是 Linux 中一个著名的文本编辑器,可在所有兼容 POSIX 的 *nix 系统中获取到,例如在 RHEL 7 中。假如你有机会并可以安装 Vim,请继续;假如不能,这篇文章中的大多数(若不是全部)的提示也应该可以正常工作。

Vim 的一个出众的特点是可以在多个不同的模式中进行操作:

  • 命令模式Command Mode将允许你在文件中跳转和输入命令,这些命令是由一个或多个字母组成的简洁且大小写敏感的组合。假如你想重复执行某个命令特定次数,你可以在这个命令前加上需要重复的次数(这个规则只有极少数例外)。例如, yy(或 Y,yank 的缩写)可以复制整个当前行,而 4yy(或 4Y)则复制整个从当前行到接下来的 3 行(总共 4 行)。
  • 我们总是可以通过敲击 Esc 键来进入命令模式(无论我们正工作在哪个模式下)。
  • 末行模式Ex Mode中,你可以操作文件(包括保存当前文件和运行外部的程序或命令)。要进入末行模式,你必须从命令模式中(换言之,输入 Esc + :)输入一个冒号(:),再直接跟上你想使用的末行模式命令的名称。
  • 对于插入模式Insert Mode,可以输入字母 i 进入,然后只需要输入文字即可。大多数的击键结果都将出现在屏幕中的文本中。

现在,让我们看看如何在 vim 中执行在上一节列举的针对 nano 的相同的操作。不要忘记敲击 Enter 键来确认 vim 命令。

为了从命令行中获取 vim 的完整手册,在命令模式下键入 :help 并敲击 Enter 键:

RHCSA 系列(四): 编辑文本文件及分析文本
RHCSA 系列(四): 编辑文本文件及分析文本

vim 编辑器帮助菜单

上面的部分呈现出一个内容列表,这些定义的小节则描述了 Vim 的特定话题。要浏览某一个小节,可以将光标放到它的上面,然后按 Ctrl + ] (闭方括号)。注意,底部的小节展示的是当前文件的内容。

1、 要保存更改到文件,在命令模式中运行下面命令中的任意一个,就可以达到这个目的:

:wq!
:x!
ZZ (是的,两个 ZZ,前面无需添加冒号)

2、 要离开并丢弃更改,使用 :q!。这个命令也将允许你离开上面描述过的帮助菜单,并返回到命令模式中的当前文件。

3、 剪切 N 行:在命令模式中键入 Ndd

4、 复制 M 行:在命令模式中键入 Myy

5、 粘贴先前剪贴或复制过的行:在命令模式中按 P键。

6、 要插入另一个文件的内容到当前文件:

:r filename

例如,插入 /etc/fstab 的内容,可以这样做:

在 vi 编辑器中插入文件的内容

在 vi 编辑器中插入文件的内容

7、 插入一个命令的输出到当前文档:

:r! command

例如,要在光标所在的当前位置后面插入日期和时间:

在 vi 编辑器中插入时间和日期

在 vi 编辑器中插入时间和日期

在另一篇我写的文章中,(LFCS 系列(二)),我更加详细地解释了在 vim 中可用的键盘快捷键和功能。或许你可以参考那个教程来查看如何使用这个强大的文本编辑器的更深入的例子。

使用 grep 和正则表达式来分析文本

到现在为止,你已经学习了如何使用 nano 或 vim 创建和编辑文件。打个比方说,假如你成为了一个文本编辑器忍者 – 那又怎样呢? 在其他事情上,你也需要知道如何在文本中搜索正则表达式。

正则表达式(也称为 “regex” 或 “regexp”) 是一种识别一个特定文本字符串或模式的方式,使得一个程序可以将这个模式和任意的文本字符串相比较。尽管利用 grep 来使用正则表达式值得用一整篇文章来描述,这里就让我们复习一些基本的知识:

1、 最简单的正则表达式是一个由数字和字母构成的字符串(例如,单词 “svm”) ,或者两个(在使用两个字符串时,你可以使用 |(或) 操作符):

# grep -Ei 'svm|vmx' /proc/cpuinfo

上面命令的输出结果中若有这两个字符串之一的出现,则标志着你的处理器支持虚拟化:

正则表达式示例

正则表达式示例

2、 第二种正则表达式是一个范围列表,由方括号包裹。

例如, c[aeiou]t 匹配字符串 cat、cet、cit、cot 和 cut,而 [a-z][0-9] 则相应地匹配小写字母或十进制数字。假如你想重复正则表达式 X 次,在正则表达式的后面立即输入 {X}即可。

例如,让我们从 /etc/fstab 中析出存储设备的 UUID:

# grep -Ei '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' -o /etc/fstab

在 Linux 中从一个文件中析出字符串

从一个文件中析出字符串

方括号中的第一个表达式 [0-9a-f] 被用来表示小写的十六进制字符,{8}是一个量词,暗示前面匹配的字符串应该重复的次数(在一个 UUID 中的开头序列是一个 8 个字符长的十六进制字符串)。

在圆括号中,量词 {4}和连字符暗示下一个序列是一个 4 个字符长的十六进制字符串,接着的量词 ({3})表示前面的表达式要重复 3 次。

最后,在 UUID 中的最后一个 12 个字符长的十六进制字符串可以由 [0-9a-f]{12} 取得, -o 选项表示只打印出在 /etc/fstab中匹配行中的匹配的(非空)部分。

3、 POSIX 字符类

字符类 匹配 …
[:alnum:] 任意字母或数字 [a-zA-Z0-9]
[:alpha:] 任意字母 [a-zA-Z]
[:blank:] 空格或制表符
[:cntrl:] 任意控制字符 (ASCII 码的 0 至 32)
[:digit:] 任意数字 [0-9]
[:graph:] 任意可见字符
[:lower:] 任意小写字母 [a-z]
[:print:] 任意非控制字符
[:space:] 任意空格
[:punct:] 任意标点字符
[:upper:] 任意大写字母 [A-Z]
[:xdigit:] 任意十六进制数字 [0-9a-fA-F]
[:word:] 任意字母,数字和下划线 [a-zA-Z0-9_]

例如,我们可能会对查找已添加到我们系统中给真实用户的 UID 和 GID(参考“RHCSA 系列(二): 如何进行文件和目录管理”来回忆起这些知识)感兴趣。那么,我们将在 /etc/passwd 文件中查找 4 个字符长的序列:

# grep -Ei [[:digit:]]{4} /etc/passwd

在文件中查找一个字符串

在文件中查找一个字符串

上面的示例可能不是真实世界中使用正则表达式的最好案例,但它清晰地启发了我们如何使用 POSIX 字符类来使用 grep 分析文本。

总结

在这篇文章中,我们已经提供了一些技巧来最大地利用针对命令行用户的两个文本编辑器 nano 和 vim,这两个工具都有相关的扩展文档可供阅读,你可以分别查询它们的官方网站(链接在下面给出)以及使用“RHCSA 系列(一): 回顾基础命令及系统文档”中给出的建议。

参考文件链接


via: http://www.tecmint.com/rhcsa-exam-how-to-use-nano-vi-editors/

作者:Gabriel Cánepa 译者:FSSlc 校对:wxy

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

在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

Crossroads 是一个独立的服务,它是一个用于Linux和TCP服务的开源负载均衡和故障转移实用程序。它可用于HTTP,HTTPS,SSH,SMTP 和 DNS 等,它也是一个多线程的工具,在提供负载均衡服务时,它可以只使用一块内存空间以此来提高性能。

首先来看看 XR 是如何工作的。我们可以将 XR 放到网络客户端和服务器之间,它可以将客户端的请求分配到服务器上以平衡负载。

如果一台服务器宕机,XR 会转发客户端请求到另一个服务器,所以客户感觉不到停顿。看看下面的图来了解什么样的情况下,我们要使用 XR 处理。

在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

安装 XR Crossroads 负载均衡器

这里有两个 Web 服务器,一个网关服务器,我们将在网关服务器上安装和设置 XR 以接收客户端请求,并分发到服务器。

    XR Crossroads 网关服务器:172.16.1.204

    Web 服务器01:172.16.1.222

    Web 服务器02:192.168.1.161

在上述情况下,我们网关服务器(即 XR Crossroads)的IP地址是172.16.1.204,webserver01 为172.16.1.222,它监听8888端口,webserver02 是192.168.1.161,它监听端口5555。

现在,我们需要的是均衡所有的请求,通过 XR 网关从网上接收请求然后分发它到两个web服务器已达到负载均衡。

第1步:在网关服务器上安装 XR Crossroads 负载均衡器

1. 不幸的是,没有为 crossroads 提供可用的 RPM 包,我们只能从源码安装。

要编译 XR,你必须在系统上安装 C++ 编译器和 GNU make 组件,才能避免安装错误。

# yum install gcc gcc-c++ make

接下来,去他们的官方网站(https://crossroads.e-tunity.com)下载此压缩包(即 crossroads-stable.tar.gz)。

或者,您可以使用 wget 去下载包然后解压在任何位置(如:/usr/src/),进入解压目录,并使用 “make install” 命令安装。

# wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
# tar -xvf crossroads-stable.tar.gz
# cd crossroads-2.74/
# make install
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

安装 XR Crossroads 负载均衡器

安装完成后,二进制文件安装在 /usr/sbin 目录下,XR 的配置文件在 /etc 下名为 “xrctl.xml” 。

2. 最后一个条件,你需要两个web服务器。为了方便使用,我在一台服务器中创建两个 Python SimpleHTTPServer 实例。

要了解如何设置一个 python SimpleHTTPServer,请阅读我们此处的文章 使用 SimpleHTTPServer 轻松创建两个 web 服务器.

正如我所说的,我们要使用两个web服务器,webserver01 通过8888端口运行在172.16.1.222上,webserver02 通过5555端口运行在192.168.1.161上。

XR WebServer 01

XR WebServer 01

XR WebServer 02

XR WebServer 02

第2步: 配置 XR Crossroads 负载均衡器

3. 所需都已经就绪。现在我们要做的就是配置xrctl.xml 文件并通过 XR 服务器接受来自互联网的请求分发到 web 服务器上。

现在用 vi/vim 编辑器打开xrctl.xml文件。

# vim /etc/xrctl.xml

并作如下修改。




true
/tmp


Tecmint

172.16.1.204:8080
tcp 0:8010 yes 0 0 0 0
172.16.1.222:8888
192.168.1.161:5555
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

配置 XR Crossroads 负载均衡器

在这里,你可以看到在 xrctl.xml 中配置了一个非常基本的 XR 。我已经定义了 XR 服务器在哪里,XR 的后端服务和端口及 XR 的 web 管理界面是什么。

4. 现在,你需要通过以下命令来启动该 XR 守护进程。

# xrctl start
# xrctl status
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

启动 XR Crossroads

5. 好的。现在是时候来检查该配置是否可以工作正常了。打开两个网页浏览器,输入 XR 服务器的 IP 地址和端口,并查看输出。

在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

验证 Web 服务器负载均衡

太棒了。它工作正常。是时候玩玩 XR 了。(LCTT 译注:可以看到两个请求分别分配到了不同服务器。)

6. 现在可以通过我们配置的网络管理界面的端口来登录到 XR Crossroads 仪表盘。在浏览器输入你的 XR 服务器的 IP 地址和你配置在 xrctl.xml 中的管理端口。

http://172.16.1.204:8010
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器
在 RHEL/CentOS 上为Web服务器架设 “XR”(Crossroads) 负载均衡器

XR Crossroads 仪表盘

看起来像上面一样。它容易理解,用户界面​​友好,易于使用。它在右上角显示每个服务器能容纳多少个连接,以及关于接收该请求的附加细节。你也可以设置每个服务器承担的负载量,最大连接数和平均负载等。

最大的好处是,即使没有配置文件 xrctl.xml,你也可以做到这一点。你唯一要做的就是运行以下命令,它就会把这一切搞定。

# xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

上面语法的详细说明:

  • -verbose 将显示命令执行后的信息。
  • -server 定义你在安装包中的 XR 服务器。
  • -backend 定义你需要平衡分配到 Web 服务器的流量。
  • tcp 说明我们使用 TCP 服务。

欲了解更多详情,有关文件及 CROSSROADS 的配置,请访问他们的官方网站: https://crossroads.e-tunity.com/.

XR Corssroads 使用许多方法来提高服务器性能,避免宕机,让你的管理任务更轻松,更简便。希望你喜欢此文章,并随时在下面发表你的评论和建议,方便与我们保持联系。


via: http://www.tecmint.com/setting-up-xr-crossroads-load-balancer-for-web-servers-on-rhel-centos/

作者:Thilina Uvindasiri 译者:strugglingyouth 校对:wxy

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

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

Linux:用 Tmux 和 Vim 打造 IDE

我的一个朋友在参观一个办公室时发现其雇员都在使用 tmux 和 vim 工具来开发 Ruby 项目。他很好奇为什么人们宁可放弃鼠标输入的便利而选择使用控制台版本的 vim 进行工作。

最终我发现这个是一个非常好的工作方式。起初使用控制台 vim 强迫我去正确地学习 vim 快捷键(motion commands)。结合盲打后,vim 提供了在多文件以及多代码行跳转的强大指令,这无疑比使用鼠标更加高效。

Linux:用 Tmux 和 Vim 打造 IDE
Linux:用 Tmux 和 Vim 打造 IDE

我习惯于将终端工具与代码编辑器平铺在一起。在 web 开发工作通常需要一个控制台用于输入 ad-hoc 命令,一个控制台操作数据库,以及一个控制台查看日志。同时我的一些项目还会使用测试工具来对有修订的文件进行自动化测试,因此我也希望同时能看到这些测试执行的状态。

vim 提供了很多插件可以将上述功能集成在一起,但我更喜欢 vim/tmux 这个组合。这是个可视化的操作工具。

通用这种方式使用命令行工具,我们可以高效地打造一个轻量级、可定制化 IDE 。我还发现在 tmux 的多个控制台窗格(pane)中输入 Unix 命令的方式很好用,因为这种方式可以很容易地将命令结合起来从而提供复杂的脚本化操作,而不需要臃肿的IDE工具。

这种使用方法与使用传统的IDE的区别在于其提供的界面非常契合我当下的工作,且它仅受限于我所安装命令行工具以及脚本语言。我可以按需创建 tmux 窗格(pane)以及 vim 分割(split)窗口,而不要开发什么模板。尽管 Eclipse 和 Xocde 有提供一些以任务为中心( task-foruce) 的界面,我还是觉得这些有些碍事。尤其是 Xcode,它所提供的快捷键感觉像是后面才补上去的,我还是得不停地使用鼠标进行操作。

支持任务间快速切换则是另一个优点。我是一个自由职业者,通常一天中我需要在 3、4 个项目间进行切换。在使用 tmux 之后, 我可以先断开(detach)一个会话稍后再切回来继续,这使我能够专注于当前工作。我觉得这个是控制台 vim 工具相比于 GUI vim 或是同时开一堆控制台工作而言的一个极大优势,因为 Eclipse 以及 Xcode 总是在关闭工程时尝试保存界面状态(不过最新的版本的 Xcode 在关闭工程貌似总是将我打开的分割窗口关闭掉)。

为什么使用 hjkl 键

这种操作方式看起来可能很别扭,不过如果你能够熟练地盲打,vim 和 tmux (配置成 vim 键风格)可以很容易让手指远离鼠标而只保持在键盘主键区(home row)进行操作。(译者注:home row 指的是键盘上的 “A、S、D、F、J、K、L、;” 这 8 个按键。)

这正是 hjkl 键的秘密:对于哪些盲打正确率高的人而言。 对于那些不习惯使用这些按键的人,可以先慢慢尝试几天。并先专注于打字的正确性,充分利用好你的十个手指。

使用 hjkl 键的道理让我想起说服游戏初学者去使用 wasd 键而不使用方向键情况。 起初 wasd 的确会觉得不太直观,但这使得同时使用键盘以及鼠标操作变得更加容易。当适应这种操作方式之后,其优点是显而易见的。

配置提示

我在 ~/.tmux.conf 文件中做了如下的配置:

set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

这个能让我在 tmux 中使用 vim 的快捷键。

如果你正在努力掌握 vim 的快捷键,请在 vim 的编辑模式下关闭方向键,具体可以参考:Vim: Making those Arrow Keys Work With You 。

如果你是个 vim 新手,这里值得一提的是 vim 支持 ctags。同时还有 TagHighlight 插件可以在 pane 中动态地显示当前文件编辑缓存区的多个标签(tags),这是个类似于 IDE 的功能。

Dotfiles文件

你的 IDE 配置文件是否能够在多台电脑间同步?

我有一个名为 dotfiles 的私个 git 库,专门用于存储 vim 和 ctags 配置以及插件。我写了一个安装脚本用于自动为本地 dotfiles 库创建配置文件的符号链接。一旦我使用一台新电脑时,我首先做的是检出(check out)这个 git 库。之后当我再开项目进行编辑时,vim 和 tmux 就已按我习惯的使用方式配置好了。

拷贝与粘贴

我经常需要使用 tmux 的拷贝与粘贴命令将控制台的输出拷贝到 vim 中。基于 tmux 的不同配置,快捷键有很大差异,因此非常值得去阅读一下 tmux 的手册并了解其工作原理。默认是使用 “ctrl-b [” 进入拷贝模式,使用空格键(space)开始内容选取,回车键(Enter)进行拷贝,然后使用 “ctrl-b ]” 进行粘贴。

快捷键

如果想要高效地使用 vim,对于重度依赖键盘的操作一定要思考是否有相关的快捷键。举个例子,当我第一次使用 ~ 快捷键时(用于大小写转换),我觉得“这个真是搞笑了,我肯定再不会使用它”。哈,实际上在我写这篇文章时,我已经使用三次了。

我之后找到了使用快捷键的窍门,因为我注意到一些有经验的 vim 使用者都在尽可能地避免使用编辑模式(insert mode)。因此一定要多看看 vim 的帮助手册,之后你就会发现居然有这么多好方法可以改进你的编辑技能。

来源:http://blog.jobbole.com/87585/

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

SNMP(简单网络管理协议)用于收集设备内部发生的数据,如负载、磁盘状态、带宽之类。像Cacti这样的网络监控工具用这些数据来生成图标以达到监控的目的。

在一个典型的Cacti和SNMP部署中,会有一台或多台启用了SNMP的设备,以及一台独立的用来从那些设备收集SNMP回馈的监控服务器。请记住,所有需要监控的设备必须启用SNMP。在本教程中,出于演示目的,我们将在同一台Linux服务器上配置Cacti和SNMP。

在Debian或Ubuntu上配置SNMP

要在基于Debian的系统上安装SNMP代理(snmpd),请运行以下命令:

root@server:~# apt-get install snmpd

然后,如下编辑配置文件。

root@server:~# vim /etc/snmp/snmpd.conf

# 使snmpd 监听再所有接口上
agentAddress  udp:161

# 定义一个只读的 community 'myCommunity' 和源网络
rocommunity myCommunity 172.17.1.0/24

sysLocation    Earth
sysContact     email@domain.tld

在编辑完配置文件后,重启snmpd。

root@server:~# service snmpd restart

在CentOS或RHEL上配置SNMP

要安装SNMP工具和库,请运行以下命令。

root@server:~# sudo yum install net-snmp

然后,如下编辑SNMP配置文件。

root@server:~# vim /etc/snmp/snmpd.conf

# 定义一个使用 community 'myCommunity' 和源网络 172.17.1.0/24 的用户 'myUser'
com2sec myUser 172.17.1.0/24 myCommunity

# 将 myUser 加到 'myGroup' 组,定义组权限
group    myGroup    v1        myUser
group    myGroup    v2c        myUser
view all included .1
access myGroup    ""    any    noauth     exact    all    all    none

root@server:~# service snmpd restart
root@server:~# chkconfig snmpd on

重启snmpd服务,然后添加到启动服务列表。

测试SNMP

SNMP可以通过运行snmpwalk命令进行测试。如果SNMP已经配置成功,该命令会生成大量输出。

root@server:~# snmpwalk -c myCommunity 172.17.1.44 -v1

iso.3.6.1.2.1.1.1.0 = STRING: "Linux mrtg 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (2097) 0:00:20.97

~~ 输出截断 ~~

iso.3.6.1.2.1.92.1.1.2.0 = Gauge32: 1440
iso.3.6.1.2.1.92.1.2.1.0 = Counter32: 1
iso.3.6.1.2.1.92.1.2.2.0 = Counter32: 0
iso.3.6.1.2.1.92.1.3.1.1.2.7.100.101.102.97.117.108.116.1 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.92.1.3.1.1.3.7.100.101.102.97.117.108.116.1 = Hex-STRING: 07 DD 0B 12 00 39 27 00 2B 06 00

配置带有SNMP的Cacti

在本教程中,我们将在同一台Linux服务器上设置Cacti和SNMP。所以,到刚刚配置SNMP的Linux服务器上去[安装Cacti][2]吧。

安装完后,Cacti网页界面可以通过“http://172.17.1.44/cacti ”来访问,当然,在你的环境中,请将IP地址换成你的服务器的地址。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

安装过程中Cacti的路径一般都是正确的,但是如有必要,请再次检查以下。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

在首次安装过程中,Cacti默认的用户名和密码是“admin”和“admin”。在首次登录后会强制你修改密码。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

添加设备到Cacti并管理

Cacti将根据先前配置的SNMP字符串注册设备。在本教程中,我们将只添加启用了SNMP的本地服务器。

要添加设备,我们必须以管理员登录,然后转到Cacti管理员面板中的控制台。点击 控制台 > 设备。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

那里可能已经有一个名为‘localhost’的设备。我们不需要它,因为我们要创建全新的图表。我们可以将该设备从列表中删除,使用“添加”按钮来添加新设备。

接下来,我们设置设备参数。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

现在设备已经添加,我们来指定想要创建的图表模板。你可以在该页面的最后部分中找到这块内容。

然后,我们继续来创建图表。

这里,我们创建用于平均负载、RAM和硬盘、处理器的图表。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

接口的图表和64位计数器

默认情况下,Cacti在SNMP查询中使用32位计数器。32位计数器对于大多数带宽图表而言已经足够了,但是对于超过100Mbps的带宽,它就无能为力了。如果已经知道带宽会超过100Mbps,建议你使用64位计数器。使用64位计数器一点也不麻烦。

注意: Cacti会花费大约15分钟来产生新图表,除了耐心等待,你别无选择。

创建图表树

这些截图展示了如何创建图表树,以及如何添加图表到这些树中。

我们可以验证图表树中的图表。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

用户管理

最后,我们创建一个只具有查看我们刚创建的图表权限的用户。Cacti内建了用户管理系统,而且是高度可定制的。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

在完成这些步骤后,我们可以使用‘user1’来登录进去,并验证只有该用户可以查看该图表。

Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器
Linux:使用 SNMP 和 Cacti 监控 Linux 服务器

至此,我们在网络监控系统中部署了一台Cacti服务器。Cacti服务器比较稳定,可以处理大量图表而不会出问题。

希望本文对你有所帮助。


via: http://xmodulo.com/monitor-linux-servers-snmp-cacti.html

作者:Sarmed Rahman 译者:GOLinux 校对:wxy

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

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

Linux:使用redhat的luks分区加密

LUKS(linux unified key setup)是一个对磁盘分区进行加密的工具,算法貌似有叫做“双鱼算法”(具体是什么,我忘了……) 命令:

  1. cryptsetup luksFormat /dev/sda15(注意:是个分区),然后就会输入两次密码,
  2. 之后用cryptsetup luksOpen /dev/sda15 xxx(因为LUKS将分区映射成一个xxx,可以在/dev/mapper下看到xxx ),要输入前面的密码才能打开
  3. 对LUKS分区进行格式化,mkfs.ext3 /dev/mapper/xxx后,就可以mount /dev/mapper/xxx /mnt下了
  4. 反挂载就是先umount ,然后cryptsetup luksClose xxx(注意luks紧跟的参数首字母都是大写的哦!)

PS:

这个说一个开机自动挂载LUKS分区的技巧,命令:

vim /etc/crypttab  

加入4列:

xxx   /dev/sda15   /root/keyfile   luks

(映射名,分区,key文件位置,最后一列就是'luks')
cd /root
dd if=/dev/urandom of=keyfile bs=4k count=1
cryptsetup luksAddKey /dev/sda15 /root/keyfile

最后修改/etc/fstab就能开机自动挂载LUKS了……

或许有人会说,我怎么记得有个加密是”cryptsetup -y create xxx /dev/sda15″这个命令在RHEL6中被移除了,虽然这个加密十分安全,使用单向HASH算法,但是唯一的缺点就是不能改密码!!每次改密码只能tar出来然后格式化再加密再tar回去……

汗,LUKS加密也可以对文件进行加密,但是需要把文件losetup成为一个“假分区”,具体百度能搜到,但是我觉得加密一般文件用gpg或者别的加密工具比较方便,写了这么多废话……对不起……

 

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

Linux:Linux下utf-8 BOM 的检查和删除

当源程序是gb格式,你转换为 utf8 的时候,很多情况是头部会出现bom,当是php 程序时候,这样会出现很多意想不到的事情,那怎么办呢,你可以用linux 命令来查找,然后对文件的bom 进行删除,就ok 了

grep -r $’\xEF\xBB\xBF’ * |grep .php

bom:UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark)

用vim去除utf-8 BOM

1.’去掉utf-8 BOM

:set nobomb

2.’保留utf-8 BOM

:set bomb

您可以任意转载本文,但转载时请以超链接形式标明文章原始出处和作者信息及版权声明 作者:danny,原文链接:http://www.hidba.net/20120112/616.html 

Linux:给 man pages 设置颜色

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。在windows中F1可能不经常用,但在linux中man命令可是比不可少的。

默认的man pages 只有一种颜色,有些文字是进行加粗的,习惯了vim的颜色高亮显示,man pages显得单调很多:

点击查看原始大图

方法比较简单:

打开/etc/bash.bashrc(需要root权限)或者~/.bashrc文件加入如下内容:

# Set colors for man pages
man() {
  env \
  LESS_TERMCAP_mb=$(printf "\e[1;31m") \
  LESS_TERMCAP_md=$(printf "\e[1;31m") \
  LESS_TERMCAP_me=$(printf "\e[0m") \
  LESS_TERMCAP_se=$(printf "\e[0m") \
  LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
  LESS_TERMCAP_ue=$(printf "\e[0m") \
  LESS_TERMCAP_us=$(printf "\e[1;32m") \
  man "$@"
}

重新打开终端,现在执行man就有颜色了。

该脚本其实定义了一个man函数,每次我们执行man的时候都是执行的该函数。如果执行原始的man运行/usr/bin/man 即可。

来自LinuxDeepin博客,并进行一定的修改。

来自:http://www.ubuntuhome.com/man-pages-set-color.html

 

 

Linux:Ranger – 给命令行用户一个基于文本的文件管理器

图形文件管理器是每个人日常电脑工作的一部分。多数用户都乐于使用默认的文件管理器,并且没有那么多困扰让他们去探索替代的文件管理器。但是,当使用命令行(CLI)的文件管理器,用户在找到一个最好的之前,可能有兴趣尝试各种可用的文件管理器,以适合他们的需求。在这篇文章中,我们将来看看Ranger,一个基于命令行的文件管理器。

ranger-main

 注释:这篇文章中的所有示例和使用说明在ubuntu13.04上已通过测试。

Ranger – 命令行文件管理器

Ranger是一个基于ncurses库的命令行文件管理器,有一个简单而简约的用户界面。它使用基本的vi式的导航键,能够预览文件和用默认程序打开它们。

如何使用Ranger

只需在命令行里键入命令ranger去执行这个程序。这是在我系统上从/home/himanshu目录执行时的ranger快照。

Linux:Ranger – 给命令行用户一个基于文本的文件管理器
Linux:Ranger – 给命令行用户一个基于文本的文件管理器

你可以看到在单独的列上ranger显示了目录,子目录和目录里的内容。例如,如上图所示,在窗口最左边一列,代表我的系统在/home/目录下有三个目录。在这三种目录里,himanhu目录是当前已被选择的。

第二列代表himanshu目录的子目录。这里,Pictures子目录是当前被选择的。同样的,第三列代表呈现在图片目录的所有文件。

注释:你可以使用左右键选择一个特定的列并且使用上下键穿梭于这些列中。

Ranger使用默认程序去显示不同类型的文件。例如,当我导航到第三列如之前的截图并且按下我选择的文件workspace_switcher.png。下面会出现:

Linux:Ranger – 给命令行用户一个基于文本的文件管理器
Linux:Ranger – 给命令行用户一个基于文本的文件管理器

所以,你可以看到ranger在图像浏览器中打开文件。这个文件管理器另一个功能是,被选择的文件如果可能的话,可以在文件管理器中预览文件。

这是示例截图:

Linux:Ranger – 给命令行用户一个基于文本的文件管理器
Linux:Ranger – 给命令行用户一个基于文本的文件管理器

所以你可以看到当CMS文件被选中时,预览它的内容被显示在窗口的右边。如果想要读取完整文件,只需点击右键头,文件将在vi/vim编辑器中打开。退出vi/vim编辑器使用:q 回到文件管理器。

注释 – 预览图片需要一些支持库。更多方面的信息:可以看这里阅读支持部分。

这是关于使用ranger的一些提示:

  • 选择一个文件,按y复制它,然后导航到目标目录再按p粘贴。
  • 提示:delete键去删除当前被选中的文件。
  • 在文件管理器里使用问号(?)打开ranger的man手册页并且按q回到文件管理器。
  • 基于ncurses,可以很容易的通过鼠标上下滚动。

下载/安装

这是相关ranger文件管理器的重要链接:

我通过apt-get在命令行下载并安装这个程序。Ubuntu用户也可以使用Ubuntu软件中心下载安装这个程序。本文使用的版本是1.5.4-1。

没有其他问题的话,下载和安装能够顺利完成。

优点

  • 轻松导航
  • 简约的UI
  • 使用vi/vim风格命令控制

缺点

  • 只适用于基本的文件管理操作
  • 预览功能需要依赖关系被满足

总结

Ranger是一个很好的实用程序。我将推荐这个程序给那些工作在服务器上的用户(不含GUI)。如果你主要使用命令行,并且在寻找一个好的命令行管理器,Ranger可能是一个好的选择。如果你的期望不是太高,ranger不会使你失望。

 

via: http://mylinuxbook.com/ranger-command-line-file-manager/

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

译者:Vito 校对:wxy

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

Linux:11个Linux基础面试问题

Q.1: Linux 操作系统的核心是什么?

  • Shell
  • Kernel
  • Command
  • Script
  • Terminal

: 内核(Kernel)是Linux 操作系统的核心。Shell是一个命令行解释器,命令(Command)是针对计算机的指令,脚本(Script)是存储在文件中的命令的集合,终端(Termial)是命令行接口。

Q.2: Linus Torvalds 都创建过什么东东?

  • Fedora
  • Slackware
  • Debian
  • Gentoo
  • Linux

: Linux Torvalds 创建了Linux,Linux是所有上述操作系统的核心,同样也是其他一些Linux 操作系统的核心。

Q.3: Torvalds,使用C++语言编写了Linux内核的大部分代码,是这样吗?

: 不! Linux内核包含了12,020,528行代码,其中注释占去了2,151,595 行。因此剩下的9,868,933 行就是纯代码了。而其中7,896,318行都是用C语言写的。

剩下的1,972,615行则是使用C++,汇编,Perl, Shell Script, Python, Bash Script, HTML, awk, yacc, lex, sed等。

:代码行数每天都在变动,平均每天超过3,509行代码添加到内核。

Q.4: 起初,Linux 是为 Intel X86 架构编写的,但是后来比其他操作系统移植的硬件平台都多,是这样吗 ?

: 是的,我同意。Linux那时候是为x86机器写的,而且现已移至到所有类型的平台。今天超过90%的超级计算机都在使用Linux。Linux在移动手机和平板电脑领域前景广阔。事实上我们被Linux包围着,远程遥控,太空科学,研究,Web,桌面计算等等,举之不尽。

Q.5: 编辑 Linux 内核合法吗?

: 是的,内核基于GPL发布,任何人都可以基于GPL允许的权限随意编辑内核。Linux内核属于免费开源软件(FOSS)。

Q.6: UNIX和Linux操作系统,本质上的不同在哪里?

: Linux操作系统属于免费开源软件,内核是由 Linus Torvalds 和开源社区共同开发的。当然我们不能说UNIX操作系统和免费开源软件(FOSS)无关,BSD 就是基于 FOSS 范畴的 UNIX 的变种。而且大公司如 Apple,IBM,Oracle,HP等,都在为UNIX内核贡献代码。

Q. 7: 挑出来一个与众不同的来.

  • HP-UX
  • AIX
  • OSX
  • Slackware
  • Solaris

: Slackware。 HP-UX, AIX, OSX, Solaris 分别是由 HP, IBM, APPLE, Oracle 开发的,并且都是UNIX的变种. Slackware 则是一个Linux操作系统.

Q.8: Linux 不会感染病毒吗?

: 当然会! 这个地球上不存在不会感染病毒的操作系统。但是Linux以迄今为止病毒数量少而著称,是的,甚至比UNIX还要少。Linux榜上有名的病毒只有60-100个,而且没有一个病毒在传播蔓延。Unix粗略估计有85-120个。

Q.9: Linux 属于哪种类型的操作系统?

  • 多用户
  • 多任务
  • 多线程
  • 以上所有
  • 以上都不是

: 以上所有。Linux是一个支持多用户,可以同时运行多个进程执行多个任务的操作系统。

Q.10: 一般的 Linux 命令的语法格式是:

  • command [选项] [参数]
  • command 选项 [参数]
  • command [选项] [参数]
  • command 选项 参数

: Linux 命令的正确语法是, Command [选项] [参数]。

Q.11: 挑出来一个与众不同的来.

  • Vi
  • vim
  • cd
  • nano

: cd 与其他命令不同。Vi,vim和 nano都是编辑器,用于编辑文档,而cd是用于切换目录的命令。

就这么多了。上述问题你学到手几个?效果如何?我们期待着你的评论。下周,会有新的问题,让我们拭目以待。保持健康,锁定链接,记得来Tecmint哦。


via: http://www.tecmint.com/basic-linux-interview-questions-and-answers/

译者:l3b2w1 校对:jasminepeng

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

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