This commit is contained in:
runningwater
2014-09-10 16:56:19 +08:00
122 changed files with 3671 additions and 865 deletions

View File

@@ -1,23 +0,0 @@
Linux有问必答——如何为sudo命令定义PATH环境变量
================================================================================
>**问题**:我安装了一个程序到/usr/local/bin目录下这个程序需要root权限才能执行当我用sudo去执行它时收到"sudo: XXXXX: command not found"的错误提示,不知道为什么/usr/local/bin没有被包含到PATH环境变量下面来我该如何解决这个问题
当你使用sudo去执行一个程序时处于安全的考虑这个程序将在一个新的、最小化的环境中执行也就是说诸如PATH这样的环境变量在sudo命令下已经被重置成默认状态了。所以当一个刚初始化的PATH变量中不包含你所要运行的程序所在的目录用sudo去执行你就会得到"command not found"的错误提示。
要想改变PATH在sudo会话中的初始值用文本编辑器打开/etc/sudoers文件找到"secure_path"一行当你执行sudo 命令时,"secure_path"中包含的路径将被当做默认PATH变量使用。
添加所需要的路径(如 /usr/local/bin到"secure_path"下,在开篇所遇见的问题就将迎刃而解。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
这个修改会即刻生效。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/define-path-environment-variable-sudo-commands.html
译者:[nd0104](https://github.com/nd0104) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -1,185 +0,0 @@
使用Linux命令行管理DigitalOcean VPS水滴
================================================================================
[DigitalOcean][1]是云VPS主机市场中最炙手可热的新生儿。虽然没有提供像Amazon之类一样的综合服务业务DigitalOcean已经成为定位于中小型企业和开发者的基于Linux的最佳云VPS服务的强有力的竞争者这都得归功于他们具有竞争力的价格和对用户友好的管理界面。
![](https://farm4.staticflickr.com/3841/14501627500_2ef275ac1c_z.jpg)
不管什么时候,当你需要一个面向网络的服务器用于你的个人项目,你都可以全速开动一个“水滴”([DigitalOcean][3]中VPS实例的昵称也可以在你不需要时杀掉它没必要为了让你的VPS保持运作而烧光了你的钱袋。尽管DigitalOcean基于网络的管理界面已经十分高效但对于那些命令行界面的死忠派它还是提供了基于命令行界面的水滴管理工具它叫[tugboat][4]。多亏了这个命令行工具,所有复杂的水滴管理任务都可以简单地转变成一个脚本来完成。
在本文中,我打算讲述**怎样使用tugboat来从命令行对DigitalOcean水滴进行管理**。
### 在Linux上安装tugboat ###
在DebianUbuntu或者Linux Mint上安装tugboat
$ sudo apt-get install ruby-dev
$ sudo gem install tugboat
在Fedora上安装tugboat
$ sudo yum install ruby-devel
$ sudo gem install tugboat
要在CentOS上安装tugboat首先[安装或升级到最新的Ruby][5]因为在CentOS 6.5以及更早的版本上默认的Ruby不满足拖船所需的最小版本1.9及更高版本。安装Ruby 1.9及更高版本后请按如下方式安装tugboat。
$ sudo gem install tugboat
### tugboat首次使用配置 ###
在安装完后就该实行一次配置配置涉及了授权tugboat访问DigitalOcean帐号。
转到[https://cloud.digitalocean.com/api_access][6]并创建新的API密钥记录客户ID和API密钥。
![](https://farm4.staticflickr.com/3836/14688299215_fd282a0142_z.jpg)
通过运行以下命令来启动授权过程:
$ tugboat authorize
在提示你输入客户ID和API密钥时请输入。它会询问几个其它问题目前你可以接受默认的回答。我们打算在今后自定义默认设置。
[![](https://farm6.staticflickr.com/5596/14685122101_dba50fc86b_z.jpg)][7]
现在,让我们自定义默认水滴设置,以反映你典型的使用状况。要那么做,首先检查水滴提供的可用的东西(如,可用的镜像、区域、大小)。
运行以下命令它会列出可用的水滴镜像。选取使用一个默认镜像并记录相关的ID。
$ tugboat images --global
![](https://farm3.staticflickr.com/2900/14688299175_e77e74fa1e_z.jpg)
类似,从可用区域中选取一个默认的地理位置:
$ tugboat regions
同时从可用的RAM大小中选择一个默认的水滴大小
$ tugboat sizes
![](https://farm4.staticflickr.com/3858/14501661238_4304e8bdfb_o.png)
现在,把你的默认选择放到~/.tugboat中。例如我在这里自定义了默认设置区域在纽约系统是Ubuntu 14.04内存512MB。如果你想要通过密钥验证启用SSH设置“ssh_user”为root这个我很快会讲到。
$ vi ~/.tugboat
----------
---
authentication:
client_key: XXXXXXXXXXXXXXXXXXX
api_key: XXXXXXXXXXXXXXXXXXXX
ssh:
ssh_user: root
ssh_key_path: /home/dev/.ssh/id_rsa
ssh_port: '22'
defaults:
region: '4'
image: '3240036'
size: '66'
ssh_key: ''
private_networking: 'false'
backups_enabled: 'false'
### 创建并添加SSH密钥到数字海洋 ###
要访问水滴实例,一个安全的方式是通过[密钥验证][8]的SSH连接到该实例。
事实上,你可以通过使用[DigitalOcean][9]来注册SSH公钥为你的水滴实现自动启用密钥验证。下面告诉你怎么做。
首先,生成一个公/私密钥对(如果你还没有)。
$ ssh-keygen -t rsa -C "your@emailaddress.com"
假设生成的密钥对由~/.ssh/id_rsa私钥和~/.ssh/id_rsa.pub公钥构成去将你的公钥上传吧命令如下
$ tugboat add-key [name-of-your-key]
你可以任意给你的密钥命名“my-default-key”。当出现提示时输入公钥路径/home/user/.ssh/id_rsa.pub。在密钥上传完成后运行以下命令来验证密钥是否正确添加
$ tugboat keys
![](https://farm4.staticflickr.com/3869/14501853397_3d3f4365b1_z.jpg)
密钥也应该出现在DigitalOcean的[SSH密钥页][10]。如果你想要密钥自动使用到水滴中添加密钥ID到~/.tugboat中。
ssh_key: '182710'
### 拖船的基本用法 ###
这里列出了tugboat命令行的一些基本使用情况。
1. 使用默认设置创建新水滴。
$ tugboat create <name-of-droplet>
2. 列出所有活动水滴。
$ tugboat droplets
3. 显示水滴的信息。
$ tugboat info <name-of-droplet>
[![](https://farm6.staticflickr.com/5593/14501627440_5835506d2a_z.jpg)][11]
4. 关闭水滴,并移除镜像。
$ tugboat destroy <name-of-droplet>
5. 关闭水滴,但保持镜像
$ tugboat halt <name-of-droplet>
6. 为水滴创建快照,水滴必须先关闭。
$ tugboat snapshot <snapshot-name> <name-of-droplet>
7. 调整水滴大小增加或减少RAM大小水滴必须先关闭。
$ tugboat resize <name-of-droplet> -s <image-id>
如果你想要知道特定命令的更多选项,运行:
$ tugboat help <command>
![](https://farm4.staticflickr.com/3900/14688013322_4fa6080c5e_z.jpg)
### 排障 ###
1. 当我运行tugboat命令时它出错了并出现以下错误。
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': /usr/lib/ruby/gems/1.8/gems/tugboat-0.2.0/lib/tugboat/cli.rb:12: syntax error, unexpected ':', expecting kEND (SyntaxError)
Tugboat要求Ruby 1.9及更高版本你需要升级Ruby来解决该问题。对于CentOS请参考[此教程][12]
2. 当我试着用gem来安装Tugboat时出现了下面的错误。
/usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json/pure (LoadError)
安装以下gem来修复该问题。
$ sudo gem install json_pure
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/07/manage-digitalocean-vps-droplets-command-line-linux.html
原文作者:[Dan Nanni][a]
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://xmodulo.com/go/digitalocean
[2]:http://news.netcraft.com/archives/2013/12/11/digitalocean-now-growing-faster-than-amazon.html
[3]:http://xmodulo.com/go/digitalocean
[4]:https://github.com/pearkes/tugboat
[5]:http://ask.xmodulo.com/upgrade-ruby-centos.html
[6]:https://cloud.digitalocean.com/api_access
[7]:https://www.flickr.com/photos/xmodulo/14685122101/
[8]:http://xmodulo.com/2012/04/how-to-enable-ssh-login-without.html
[9]:http://xmodulo.com/go/digitalocean
[10]:https://cloud.digitalocean.com/ssh_keys
[11]:https://www.flickr.com/photos/xmodulo/14501627440/
[12]:http://ask.xmodulo.com/upgrade-ruby-centos.html

View File

@@ -1,89 +0,0 @@
如何在Linux命令行下访问SoundCloud
================================================================================
如果你喜欢流媒体音乐和原创音乐,你不能错过[SoundCloud][1]。这家云流媒体服务总部设在德国这对任何音乐爱好者都非常有名且完善。自然作为一个Linux爱好者你可能想知道如何在Linux中加入你对音乐的热情。作为一个解决方案我建议你使用Soundcloud2000**SoundCloud的命令行客户端**脱胎于[Music Hack Day Stockholm '13][2]。
### 安装 ###
对于Debian或者Ubuntu用户如下安装
$ sudo apt-get install portaudio19-dev libmpg123-dev libncurses-dev ruby1.9.1-dev
$ sudo gem install soundcloud2000
对于Archlinux用户在[AUR][3]仓库中可以获取到包
对于Fedora用户如下安装
$ sudo yum install portaudio-devel libmpg123-devel ncurses-devel ruby-devel
$ sudo gem install soundcloud2000
对于CentOS用户安装或者升级到[最新 Ruby/RubyGems][4] (1.9或更高),启用[Repoforge repo][5],如下安装:
$ sudo yum install portaudio-devel mpg123-devel
$ sudo gem install curses soundcloud2000
最后到官方的github页面获取源码
### 使用 ###
Soundcloud2000非常容易使用。有些人甚至会说简单。我喜欢它的庄重以及三位作者和贡献者的努力。如下启动它
$ soundcloud2000
这里,你将看到一个闪屏:
![](https://farm4.staticflickr.com/3919/14658085706_71c9094e4f_z.jpg)
接着是歌曲列表:
![](https://farm4.staticflickr.com/3888/14494626757_3e788482d5_z.jpg)
您可以通过上下键滚动列表,回车播放一首歌曲,空格键是暂停/恢复,左右箭头键是快进/快退。正如你所看到的,没有什么突破性的但绝对符合人体工程学。
如果随机列表太长无法滚动完,你有一个选项来查看所有曲目,用户通过点击'u'键接着输入自己的名字。
![](https://farm4.staticflickr.com/3861/14494436719_b5536f7b67_z.jpg)
这可能是Soundcloud2000的主要默认之一。而导航没有优化过我寄予厚望的改善和支持的软件还是很年轻的。
### 红利 ###
另外一个额外的红利如果你喜欢在终端上使用SoundCloud的想法但不想安装任何额外的软件也许你不能我劝你去[cmd.fm][6]。该网站是一个伪装的SoundCloud因为它隐藏在一个shell接口后。
[![](https://farm6.staticflickr.com/5580/14494448218_a16b05e3ee_z.jpg)][7]
输入“help”可以得到命令列表这比Soundcloud2000长很多。比如我看到
- _genres to list all genres
- _play random to play a random track
- _pause to pause the current track
- _playlist new to make a new playlist
- _loop to loop current track
- _cinema to watch and ASCII version of Star Wars which completely blew my mind.
它甚至支持通过tab键自动完成流派
最后Soundcloud2000的确是一个整洁的程序。我们可以原谅其目前的缺陷因为它还年轻。我真的希望它会成长并包含更多的功能并从潜在的cmd.fm得到的灵感
如果您喜欢这个主意,我邀请你支持程序员,如果你喜欢这类举措,请支持[Music Hack Day][8],这其中混合了软件开发和音乐。
你认为在命令行下使用SoundCloud怎么样让我们在评论中知道你的想法。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/07/access-soundcloud-command-line-linux.html
原文作者:[Adrien Brochard][a]
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/adrien
[1]:https://soundcloud.com/
[2]:https://www.hackerleague.org/hackathons/music-hack-day-stockholm-13/
[3]:https://aur.archlinux.org/packages/ruby-soundcloud2000/
[4]:http://ask.xmodulo.com/upgrade-ruby-centos.html
[5]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
[6]:https://cmd.fm/
[7]:https://www.flickr.com/photos/xmodulo/14494448218/
[8]:http://new.musichackday.org/

View File

@@ -1,126 +0,0 @@
Top 10! Fun On The Command Line
================================================================================
排名前10!在命令行中寻找乐趣
================================================================================
**如果你喜欢做排名前10'类型的列表但又有点不好意思这样说,那么告诉人们你热爱数据的探索。为了进一步打动他们们,向他们解释你在命令行间的数据探索。但是不要告诉他们这其实很容易,以免你的好形象就这样被毁灭了哦!**
在这篇文章中我将基于GNU/Linux工具和'一列的表格'来做一些数据探索,也就是我所说的简单列表。如若想在这里通过命令行查看更多的信息,请查看'man'页,或者在“注释”部分求解。
### 密码 ###
在第一个列表里探讨的是马克.伯内特2011著的关于[10000 个最常用的密码][1]汇编。这个列表是有序的、使用最频繁的也是广为人知的阶乘“密码”的最常用来源之一与“123456”并列排名第二。在这里我已经把一个所谓密码的文件列出来了并且使用head命令把排名前10的列出来了
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/1.png)
(伯内特解释他是如何手收集这些密码的[这里][2]。你会注意到在列表中他把所有大写字母都转换成小写的。)
OK所以'密码'是伯内特列表的顶部。那么个位数字呢?
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/2.png)
非常有趣的是!数字'1'出现在密码列表中多于是第二个最常用数字'2'的两倍以及10位数字在数值以及人气排序除了0和9。而排名前10的字母呢
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/3.png)
在密码文件中出现最频繁的字母依次是EARONISTLC.这个和EAIRTONSLC差不多也是一个频率模式图至少在 [one published table][3] 中最常适用的英语单词。这是否意味着,大部分密码其实是一些常见的英语单词呢,也许会参杂一些数字呢?
为了找到答案,我先把密码转换成一个纯字母字符串列表,然后看看有多少字符串是可以在英语词典中找到的。
首先我将通过 **sed**命令删除所有密码中的数字,然后删除所有的标点符号,再删除所有的空行。这将创建出一个纯字母的密码列表。然后我通过**sort** 和 **uniq**来修剪列表的排序,将重复项取出。(例如,'abc1234def'和'abc1!2!3!def!'都剔除剩下'abcdef'.) 。根据wc命令我把1000个密码减至成8583个纯字母的字符串
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/4.png)
我经常使用一本便携式的英语字典,我通常会使用`usr/share/dict/american-english`,这个文件是来自Debian Linux的一个发行版本。它包含了99171个单词。我会先通过**tr**命令将这个词表转换为纯小写的,然后使用**sort** 和 **uniq**删除掉人和重复的条目排序(例如'A' 和 'a' 都将成为 'a'。这样就将词表的数量减至97723项了
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/5.png)
我现在可以用通信命令带'-23'的参数来比较两个列表和报告中纯字母文件而没有出现在字典中的单词:
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/6.png)
总数是3137所以至少有8583 -3137 = 5446个'核心'密码在伯纳特的纯小写字母列表中大约63%是简单的英语单词或者是简单的单词附加一些数字或者标点符号。我之所以写至少是因为在3137个字符串中有很大比例是只有经过轻微修改的纯英语单词、名称、或者在/usr/share字典中未能找到的名称修改而成的。在LA项中例如'labtec', 'ladyboy', 'lakeside', 'lalakers', 'lalala', 'laserjet', 'lasvegas', 'lavalamp' and 'lawman'.
### Placenames ###
### 地名 ###
在之前的一篇[Linux Rain article][4],我描述了如何建立一张37万项澳大利亚的地名表。有了它我现在可以回答一些类似这样的关键问题“Round Hill是澳大利亚山脉中最流行的名字吗”和“桑迪是沙滩之最而岩溪峡谷呢
在地名表中地名字段的排名第2所以这里有
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/7.png)
哇。我当时甚至没有关闭。(但是请注意到我是如何通过**^string1^string2**命令保存打印的内容。它重复着最后一个命令但是用第2个字符串代替了第1个字符串。这是多门经常的BASH绝招
另一个亟待解决的问题是有多少地名有'Mile'在其中,例如'Six Mile Creek',而他们的排名又是如何:
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/8.png)
我在我的澳洲之旅发现有很多Dead Horse Creeks因此有这些地名
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/9.png)
### 种类 ###
第三个列表是探索我今年出版的1961-2010年期间澳大利亚新种类昆虫名。从这个列表中我去掉所有“物种的绰号”这也是种群组合的第二部分像智人你和我和西方蜜蜂欧洲蜜蜂
科技小贴士这个昆虫表可以从开发数据Zenodo库中[https://zenodo.org/record/10481][5],包括亚种。在我的top 10练习中我首先分离出所有独特的种群组合这样避免了重复的例如蜜蜂iberica的亚种以避免蜜蜂的绰号intermissa等等。最后一个物种文件有18155个绰号。
大多数人讲科学名称带玩笑式地用'-us'结局,如'Biggus buggus'.那么昆虫学家呢有几个不错的用命令行的方式获取字符串的最后2个字母在这里我都会用到这2个
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/10.png)
耶!昆虫学家喜欢也‘-us结尾。接下来我不知道有多少物种是以我的家乡State of Tasmania来命名的下面我想看看前100行来确保我得到的所有'tasman'组合.)
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/11.png)
那么昆士兰呢?
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/12.png)
一般来说昆虫物种名单中的前10名分别是什么呢
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/13.png)
嗯,除了明显的'australis'和'australiensis',而地理方面的'occidentalis'西部另外昆虫学家创建7个在10个最流行列表中的绰号已经旅行了其它昆虫学家的意愿。(加词'commoni'是给澳大利亚蝴蝶和蛾专家Ian F.B. Common,从1917-2006.)
### Speechifying ###
### 演变 ###
上面使用的命令在一个简单的列表中。从一个文本块做一个简单的列表这个命令行又再次成为你的朋友。例如我保存了一个相当filibustery[演讲][6]在澳大利亚参议院于2014年7月16日的文本文件议事录。将议事录分割成一个单词列表
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/14.png)
And to look at word frequency in the speech:
现在看看讲话中的单词使用频率:
![](http://thelinuxrain.com/content/01-articles/67-top-10-fun-on-the-command-line/15.png)
### Coming soon... ###
### 即将推出... ###
从多列的表中做'top 10'等排名,需要更多些的命令行工具。我将会在未来的文章中证明他们的用处。
--------------------------------------------------------------------------------
via: http://thelinuxrain.com/articles/top-10-fun-on-the-command-line
原文作者Bob Mesibov(Bob Mesibov is Tasmanian, retired and a keen Linux tinkerer.)
译者:[disylee](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://xato.net/passwords/more-top-worst-passwords/#.U8eD13AvDy0
[2]:https://xato.net/passwords/how-i-collect-passwords/#.U8eEdnAvDy0
[3]:http://www.rinkworks.com/words/letterfreq.shtml
[4]:http://www.thelinuxrain.com/articles/building-a-gazetteer-table-from-kml-files
[5]:https://zenodo.org/record/10481
[6]:http://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;db=CHAMBER;id=chamber%2Fhansards%2F232fa1a8-d7e8-4b22-9018-1a99b5a96812%2F0025;query=Id%3A%22chamber%2Fhansards%2F232fa1a8-d7e8-4b22-9018-1a99b5a96812%2F0000%22

View File

@@ -1,40 +0,0 @@
如何创建Ubuntu信息端计算机
================================================================================
**Linux发行版可以作为全功能打包也可以按需分解驱动了从市内标示牌到市议会桌面系统在内的所有设备。**
正是这种多样化几乎可塑的质量让Linux发行版包括Ubuntu在内在众多不同领域如此成功。
### 信息端和单功能计算机 ###
Ubuntu更为流行的使用之一是在**信息端类计算机**中。这些设备趋向于运行功能剥离的或者功能有限的OS版本只允许**一个单一应用运行**。
信息端计算机可以设置提供短暂的或者被动的访问,对于网吧或者对于任何要求只有特定功能——如网页浏览器——可以让用户访问的机器十分理想。
### 构建Ubuntu信息端 ###
但你会怎样来创建这样一台计算机好吧保存你的Google。Linux开发者Oli Warner最近发布了两篇文章介绍了使用Ubuntu 14.04和Google Chrome来创建单一功能的设备。
他的第一篇指南从零开始使用Ubuntu Server和少量的软件包来创建一个轻量级的X和Openbox的组合开机启动Chrome。该安装需要最多2GB的磁盘空间和仅仅512MB的内存来运行。
- [从零开始构建信息端计算机][1]
第二篇教程反其道而行一步一步介绍了将一个现存的Ubuntu桌面安装转变为一个更轻巧的单一功能的变形版本。
- [将Ubuntu转换成信息端计算机][2]
Neither guide is for the faint-hearted, but are simple enough for most intermediate-level users to follow. Follow the guides to get a functional setup, but dont be afraid to strip out further packages and processes or double down on security, especially if intending to use an instance in a public space.
两个指南都不是给那些胆小的新手的,而对于大多数中级水平的用户而言却是简单易行的。跟着指南来获得一次实用的安装体验,不要畏首畏尾,大胆去剥离一些深层次的包和进程,或者加固安全吧,特别是如果想要在公共空间中使用一个实例。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/07/create-ubuntu-kiosk
作者:[Joey-Elijah Sneddon][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:http://thepcspy.com/read/building-a-kiosk-computer-ubuntu-1404-chrome
[2]:http://thepcspy.com/read/converting-ubuntu-desktop-to-kiosk/

View File

@@ -1,175 +0,0 @@
Cheat - 一个给Linux初学者和管理员的终极命令行备忘单
==============================================================================================
当你不确定你所运行的命令尤其是那些使用了许多选项的复杂命令的时候你怎么做在这种情况下我们使用man pages来获取帮助。还有一些其它的选择可能包括像**help****whereis**’和‘**whatis**’这样的命令。但是所有的这些既有优点,也有缺点
当我们浏览**man pages**来查看选项和帮助的时候man pages里面的描述实在太冗长了我们无法在很短的时间里理解它的意思
![Linux Man Pages](http://www.tecmint.com/wp-content/uploads/2014/07/Linux-Man-Pages.jpeg)
Linux Man Pages
同样,‘**help**’命令可能不会给你想要的答案
![Help Command](http://www.tecmint.com/wp-content/uploads/2014/07/help-command.jpeg)
Help Command
**whereis**’命令几乎不给你任何信息,除了安装的二进制文件的位置(有些时候可能非常重要)
![Whereis Command](http://www.tecmint.com/wp-content/uploads/2014/07/whereis-command.jpeg)
Whereis Command
**whatis**’命令给出一套很严格的答案---仅仅说出了所查询命令的作用,但,它并没有什么太大帮助。而且, 它从来不提及所查询命令所拥有的选项
![Whatis Command](http://www.tecmint.com/wp-content/uploads/2014/07/whatis-command.jpeg)
Whatis Command
我们使用这些选项直到在困境中解决问题,但是现在来了一个交互式的备忘录应用程序‘**cheat**’,它将带领其余的命令查询命令
### 什么是cheat? ###
**cheat**是在GNU通用公共许可证下为Linux命令行使用者发行的交互式备忘单应用程序。它提供显示Linux命令使用案例包括该命令所有的选项和简短但尚可理解的功能介绍
![Cheat: Provides Easy Command Options](http://www.tecmint.com/wp-content/uploads/2014/07/cheat-sheet.jpeg)
Cheat提供简单命令选项
### 在Linux系统中安装Cheat ###
**Cheat**’有两个主要的依赖 - **python****pip**’,在安装‘**cheat**之前确保你的系统安装了python和pip
### Install Python ###
# apt-get install Python (基于Debian的系统)
# yum install python (基于小红帽的系统)
Install Pip
# apt-get install python-pip (基于Debian的系统)
# yum install python-pip (基于小红帽的系统)
**Note**pip是一个简单的安装替代是一个有极大改进的Python第三方包安装器
### 下载并安装Cheat ###
我们将通过Git下载Cheat确保你安装了git如果没有最好安装下
# apt-get install git (基于Debian的系统)
# yum install git (基于小红帽的系统)
接下来通过运行下面的命令来安装所需要的python依赖包
# pip install docopt pygments
现在clone cheat的[Git repository][1]
# git clone https://github.com/chrisallenlane/cheat.git
进入cheat目录运行**setup.py**一个python脚本
# cd cheat
# python setup.py install
如果安装很顺利你就能够看到安装在系统上的cheat版本了
# cheat -v
cheat 2.0.9
### cheat的一些必要配置 ###
你必须在‘~/.bashrc文件里设置**EDITOR**’环境变量,打开用户‘**.bashrc**’文件,然后把下面这行加入到里面:
export EDITOR = /usr/bin/nano
你可以使用你喜欢的编辑器来替代‘**nano**’。保存文件然后退出,再次登录以确保修改生效
接下来添加cheat的自动补全特性来确保不同解释器下命令行的自动补全。为了到达该功能要求简单地将**cheat.bash**脚本clone下来然后复制到你系统正确的路径下
# wget https://github.com/chrisallenlane/cheat/raw/master/cheat/autocompletion/cheat.bash
# mv cheat.bash /etc/bash_completion.d/
**NOTE**团队已经在Git上上传了其他解释器的自动补全脚本这些都可以被克隆然后用在不同的解释器上。使用下面的链接以找到其余解释器的自动补全脚本
- [Auto Completion Script for Various Shells][2]
不仅如此,如果需要的话,你也可以使用语法高亮。要想达到次功能,在你的‘**.bashrc**’文件中添加‘**CHEATCOLORS**’环境变量
export CHEATCOLOR=true
Cheat应用默认只提供最基本和最常用的命令。cheat备忘单的内容保存在**~/.cheat/.**目录里我们可以手动在这个目录添加备忘单里面的内容这样我们的cheat应用将更强大
# cheat -xyz
这将打开xyz备忘单如果没有的话就会创建一个。备忘单将使用**.bashrc**里设置的默认**编辑器**打开,默认编辑器就是上面内容所提及到的
### 一些Cheat命令的使用 ###
一个包可以是 *.gz , *.bz2 , *.zip , *.xz可是什么情况下用哪些选项呢
![tar command options](http://www.tecmint.com/wp-content/uploads/2014/07/cheat-tar.jpeg)
tar命令选项
除非在不同的地方咨询和核对后,我才使用**dd**命令,在此之前,无论我对这个命令多么的确定,我从不使用它。现在,事情就变得简单多了
![dd command options](http://www.tecmint.com/wp-content/uploads/2014/07/cheat-dd.jpeg)
dd命令选项
**uname**’命令帮助
![uname command options](http://www.tecmint.com/wp-content/uploads/2014/07/uname-command.jpeg)
uname命令选择
一个简短的**ifconfig**命令操作教程
![ifconfig command options](http://www.tecmint.com/wp-content/uploads/2014/07/ifconfig-command.jpeg)
ifconfig命令选项
top命令一个对管理员和正常用户来说最重要的命令之一
![top command options](http://www.tecmint.com/wp-content/uploads/2014/07/top-command.jpeg)
top命令选项
我们来骗骗cheat命令如何尽管别有意义得到可用命令的的列表其实就是安装在你系统里的cheat备忘录
![List All Linux Commands](http://www.tecmint.com/wp-content/uploads/2014/07/linux-commands.jpeg)
列出所有Linux命令
使用关键字搜索备忘单
![Search Cheat Sheet](http://www.tecmint.com/wp-content/uploads/2014/07/search-cheat-sheet.jpeg)
搜索备忘单
来看看包含所有命令的内置备忘单
$ cheat -d
/home/avi/.cheat
/usr/local/lib/python2.7/dist-packages/cheat/cheatsheets
复制内置的备忘单到你的本地目录
# cp /usr/local/lib/python2.7/dist-packages/cheat/cheatsheets/* /home/avi/.cheat/
### 结论 ###
这个有趣的工程在许多情况下担任救世主的角色,它给予你需要的信息,信息不冗余,不模糊,相反地,却击中要点。这是每个人都会需要的工具,很简单就能创建,安装,使用和理解,这个项目前途无量
这个Git仓库已经添加了一个精彩的**gag**,这里我不打算去解释它,而留给你去解释
![Linux Gag](http://www.tecmint.com/wp-content/uploads/2014/07/linux-gag.jpeg)
Linux Gag
好了文章就要结束了我会带着下一个你们爱读的有趣文章回到这里的在此之前时刻关注Tecmint。别忘了在下面的评论部分给我们提供你们有价值的反馈
-------------------------------------------------------------------------------------------------------------------------------
via: http://www.tecmint.com/cheat-command-line-cheat-sheet-for-linux-users/
作者:[Avishek Kumar][a]
译者:[su-kaiyao](https://github.com/su-kaiyao)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/install-git-to-create-and-share-your-own-projects-on-github-repository/
[2]:https://github.com/chrisallenlane/cheat/tree/master/cheat/autocompletion

View File

@@ -0,0 +1,38 @@
Linux FAQ -- 如何检查Linux系统的最后重启时间
================================================================================
> **问题**: 是否有一个命令可以快速地检查系统已经运行了多久? 也就是我怎么知道Linux最后的重启时间?
There are several ways to find out the last system reboot time,
### 方法一 ###
第一种方法是使用last命令
$ last reboot
![](https://farm4.staticflickr.com/3925/14881994335_041e9c2f86_z.jpg)
这条命令实际上显示的是最近几天的系统运行时间。last原本被设计来显示某个特定用户的登录历史。在Linux中有一个特别的“伪用户”称为reboot会在系统重启的时候立即登录。这样通过检查reboot用户的登录历史你就可以检查最后的重启时间。
### 方法二 ###
另外一个检测系统最后启动时间的方法是使用who命令带上-b选项。
$ who -b
### 方法三 ###
你同样可以使用uptime命令来推断系统最后的启动时间。uptime命令会显示当前的时间同样也会显示系统已经运行的时间。从这些信息中你就可以计算系统最后启动的时间了
$ uptime
![](https://farm4.staticflickr.com/3915/14881660192_58f2843969_o.png)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/check-last-time-system-rebooted-linux.html
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,50 @@
Linux FAQ -- 如何修复“X11 forwarding request failed on channel 0”错误
================================================================================
> **问题**: 当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" X11 转发请求在通道0上失败的错误。 我为什么会遇到这个错误,并且该如何修复它
![](https://farm6.staticflickr.com/5562/14909594691_ce7ca01b2d_z.jpg)
首先,我们假设你已经正确启用了[SSH的X11转发][1]。
如果你在登录时遇到"X11 forwarding request failed on channel 0" X11 转发请求在通道0上失败这里可能有不同的原因解决的方法也不同。
### 方案一 ###
出于安全原因OpenSSH服务默认将X11转发请求绑定到本地回环地址上并且在DISPLAY环境变量中将主机名设置为“localhost”。在这样的设定下一些
X11客户端不能正确处理X11转发这会导致报告中的错误。要解决这个问题在/etc/ssh/sshd配置文件中加入下面这几行它可以将X11转发请求绑定到外网卡地址上。
$ sudo vi /etc/ssh/sshd_config
----------
X11Forwarding yes
X11UseLocalhost no
重启SSH使设置生效:
$ sudo /etc/init.d/ssh restart (Debian 6, Ubuntu or Linux Mint)
$ sudo systemctl restart ssh.service (Debian 7, CentOS/RHEL 7, Fedora)
$ sudo service sshd restart (CentOS/RHEL 6)
### 方案而 ###
如果远程主机的SSH服务禁止了IPv6,那么X11转发失败的错误也有可能发生。要解决这个情况下的错误。打开/etc/ssh/sshd配置文件打开"AddressFamily all" 如果有的话的注释。接着加入下面这行。这会强制SSH服务只使用IPv4而不是IPv6。
$ sudo vi /etc/ssh/sshd_config
----------
AddressFamily inet
再说一次重启SSH服务来完成设置
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/fix-broken-x11-forwarding-ssh.html
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html

View File

@@ -0,0 +1,42 @@
Linux FAQ -- 如何在VMware ESXi虚拟机上设置静态MAC地址。
================================================================================
> **问题**:我想给VMware ESXi上的一台虚拟机分配一个静态的MAC地址。然而当我开始这么做的时候虚拟机就不能启动了不且抛出了一个这样一个错误"00:0c:29:1f:4a:ab is not an allowed static Ethernet address. It conflicts with VMware reserved MACs"00:0c:29:1f:4a:ab不是一个合法的静态以太网地址。它与VMWare的保留MAC地址冲突。我该如何在VMware ESXi虚拟机上设置静态MAC地址
当你在VMware ESXi上创建虚拟机时虚拟机的每个网络接口就被分配了一个动态的NAC地址。如果你想要改变默认的行为并给你的虚拟机分配一个静态MAC地址时就这样做
![](https://farm6.staticflickr.com/5592/14726591627_64c1dc67ce_z.jpg)
如你上图所见VMWare的vSphere的GUI客户端已经有一个为虚拟机分配静态MAC地址的菜单。然而基于GUI的方法只允许你在**00:50:56:xx:xx:xx**的范围里选择一个静态MAC地址这是VMWare保留的MAC地址范围。如果你尝试设置任何超出这个范围的MAC地址你就会无法启动VM接着就会看到下面的错误。
![](https://farm6.staticflickr.com/5591/14890165456_a82ded21b9_z.jpg)
那么如果我想要给虚拟机设置任意的MAC地址怎么办
幸运地这里有一个对于这个限制的临时方案。方法就是不使用vSphere GUI客户端编辑。在登录ESXi主机后直接编辑你虚拟机的.vmx文件。
首先关闭你想要分配静态MAC地址的虚拟机。
[对你的ESXi主机启用SSH访问][1]如果你还没这么做的话。接着通过SSH登录ESXi主机。
移到你虚拟机的.vmx文件所在目录。
# cd vmfs/volumes/datastore1/[name-of-vm]
用文本编辑器打开.vmx文件接着在加入下面这几行。把MAC地址替换成你自己的MAC地址。
ethernet0.addressType = "static"
ethernet0.checkMACAddress = "false"
ethernet0.address = "00:0c:29:1f:4b:ac"
现在你应该可以使用你定义在.vmx文件中的静态MAC地址启动虚拟机了。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/static-mac-address-vmware-esxi-virtual-machine.html
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://ask.xmodulo.com/enable-ssh-remote-access-vmware-esxi5.html

View File

@@ -1,69 +0,0 @@
Linux Systemd —— 在RHEL/CentOS 7中启动/停止/重启服务
================================================================================
RHEL/CentOS 7.0中一个最主要的改变,就是切换到了**systemd**。它用于替代红帽企业版Linux前任版本中的SysV和Upstart对系统和服务进行管理。systemd兼容SysV和Linux标准组的启动脚本。
**Systemd**是一个Linux操作系统下的系统和服务管理器。它被设计成向后兼容SysV启动脚本并提供了大量的特性如开机时平行启动系统服务按需启动守护进程支持系统状态快照或者基于依赖的服务控制逻辑。
先前的使用SysV初始化或Upstart的红帽企业版Linux版本中使用位于/etc/rc.d/init.d/目录中的bash初始化脚本进行管理。而在RHEL 7/CentOS 7中这些启动脚本被服务单元取代了。服务单元以.service文件扩展结束提供了与初始化脚本同样的用途。要查看、启动、停止、重启、启用或者禁用系统服务你要使用systemctl来代替旧的service命令。
> 为了向后兼容旧的service命令在CentOS 7中仍然可用它会重定向所有命令到新的systemctl工具。
### 使用systemctl来启动/停止/重启服务 ###
要启动一个服务,你需要使用如下命令:
# systemctl start httpd.service
这会启动httpd服务就我们而言Apache HTTP服务器。
要停掉它需要以root身份使用该命令
# systemctl stop httpd.service
要重启你可以使用restart选项如果服务在运行中它将重启服务如果服务不在运行中它将会启动。你也可以使用try-start选项它只会在服务已经在运行中的时候重启服务。同时reload选项你也可以有它会重新加载配置文件。
# systemctl restart httpd.service
# systemctl try-restart httpd.service
# systemctl reload httpd.service
我们例子中的命令看起来会像下面这样:
![systemctl start-stop-restart](http://linoxide.com/wp-content/uploads/2014/08/systemctl-start-stop-restart.gif)
### 检查服务状态 ###
要检查服务状态你可以使用status选项看这里
# systemctl status httpd.service
输出结果就像这样:
![systemctl status](http://linoxide.com/wp-content/uploads/2014/08/systemctl-status.gif)
它会告诉你运行中的服务的方方面面。
### 使用启用/禁用服务来控制开机启动 ###
你也可以使用enable/disable选项来控制一个服务是否开机启动命令如下
# systemctl enable httpd.service
# systemctl disable httpd.service
输出结果看这里:
![systemctl-enable](http://linoxide.com/wp-content/uploads/2014/08/systemctl-enable.gif)
虽然在过去的几年中对systemd的采用饱受争议然而大多数主流发行版都已经逐渐采用或打算在下一个发行版中采用它。所以它是一个有用的工具我们需要好好熟悉它。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/start-stop-services-systemd/
作者:[Adrian Dinu][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/adriand/

View File

@@ -0,0 +1,49 @@
Linux FAQ -- 如何在CentOS或者RHEL上启用Nux Dextop仓库
================================================================================
> **问题**: 我想要安装一个在Nux Dextop仓库的RPM包。我该如何在CentOS或者RHEL上设置Nux Dextop仓库
[Nux Dextop][1]是一个面对CentOS、RHEL、ScientificLinux的含有许多流行的桌面和多媒体相关的包的第三方RPM仓库比如ArdourShutter等等。目前Nux Dextop桌面对CentOS和RHEL 6/7可用。
要在CentOS或者RHEL上启用Nux Dextop遵循下面的步骤。
首先要理解Nux Dextop被设计与EPEL仓库共存。因此你需要使用Nux Dexyop仓库前先[启用 EPEL][2]。
启用EPEL后用下面的命令安装Nux Dextop仓库。
在 CentOS/RHEL 6.* 上:
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
在 CentOS/RHEL 7 上 :
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
现在验证Nux Dextop仓库是否已经成功安装
$ yum repolist
![](https://farm6.staticflickr.com/5574/14790031847_90b4a829d7_z.jpg)
### 对于 Repoforge/RPMforge 用户 ###
据作者所说Nux Dextop目前所知会与其他第三方库比如Repoforge和ATrpms相冲突。因此如果你启用了除了EPEL的其他第三方库强烈建议你将Nux Dextop仓库设置成“default off”默认关闭状态。就是用文本编辑器打开/etc/yum.repos.d/nux-dextop.repo并且在nux-desktop下面将"enabled=1" 改成 "enabled=0"。
$ sudo vi /etc/yum.repos.d/nux-dextop.repo
![](https://farm6.staticflickr.com/5560/14789955930_f8711b3581_z.jpg)
当你无论何时从Nux Dextop仓库安装包时显式地用下面的命令启用仓库。
$ sudo yum --enablerepo=nux-dextop install <package-name>
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://li.nux.ro/download/nux/dextop/
[2]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html

View File

@@ -0,0 +1,173 @@
Linux终端的乐趣之把玩Word Counts
================================================================================
Linux 命令行有很多的乐趣,我们可以很容易并且完善地执行很多繁琐的任务。比如,我们计算一个文本文件中字和字符的出现频率,则是我们打算在这篇文章中讲到的。
立刻来到我们脑海的命令,计算字和字符在一个文本文件中出现频率的 Linux 命令是 [wc 命令] [1]。
![Fun with Word and Letter Counts in Shell](http://www.tecmint.com/wp-content/uploads/2014/03/Linux-Word-Count.png)
在使用的脚本来分析文本文件之前我们必须有一个文本文件。为了保持一致性我们将创建一个文本文件man命令的输出如下所述。
$ man man > man.txt
以上命令是将man命令的使用方式导入到**man.txt**文件里。
我们希望能得到最平常的单词,对之前我们新建的文件执行如下脚本。
$ cat man.txt | tr ' ' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
### Sample Output ###
7557
262 the
163 to
112 is
112 a
78 of
78 manual
76 and
64 if
63 be
上面的脚本,输出了最常使用的十个单词。
如何看单个的字母呢?那就用如下的命令。
$ echo 'tecmint team' | fold -w1
### Sample Output ###
t
e
c
m
i
n
t
t
e
a
m
**Note**: `-w1`只是设定了长度
现在我们将从那个文本文件中掰下来的每一个字母,对结果进行排序,得到所需的输出频率的十个最常见的字符。
$ fold -w1 < man.txt | sort | uniq -c | sort -rn | head
### Sample Output ###
8579
2413 e
1987 a
1875 t
1644 i
1553 n
1522 o
1514 s
1224 r
1021 l
如何区分大小写呢?之前我们都是乎略大小写的。所以,用如下命令。
$ fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
### Sample Output ###
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 o
1269 R
1055 L
836 H
791 P
766 D
753 C
725 M
690 U
605 F
504 G
352 Y
344 .
请检查上面的输出,标点符号居然包括在内。让我们干掉他,用**tr** 命令。GO:
$ fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
### Sample Output ###
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
1550
1269 R
1055 L
836 H
791 P
766 D
753 C
725 M
690 U
605 F
504 G
352 Y
现在,我们有了三个文本,那就让我们用如下命令查看结果吧。
$ cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
### Sample Output ###
11636
2504 E
2079 A
2005 T
1729 I
1645 N
1632 S
1580 O
下一步我们将会生成那些罕见的至少十个字母长的单词。以下是简单的脚本:
$ cat man.txt | tr '' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n | grep -E '..................' | head
### Sample Output ###
1 ──────────────────────────────────────────
1 a all
1 abc any or all arguments within are optional
1 able see setlocale for precise details
1 ab options delimited by cannot be used together
1 achieved by using the less environment variable
1 a child process returned a nonzero exit status
1 act as if this option was supplied using the name as a filename
1 activate local mode format and display local manual files
1 acute accent
**Note**: 上面的.越来越多,其实,我们可以使用.{10} 得到同样的效果。
这些简单的脚本,让我们知道最频繁出现的单词和英语中的字符。
这就是现在。我会在这里再一次提到另一个有趣的话题,你应该会喜欢读。还有别忘了向我们提供您的宝贵意见的评论部分。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/play-with-word-and-character-counts-in-linux/
作者:[Avishek Kumar][a]
译者:[MikeCoder](https://github.com/MikeCoder)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/wc-command-examples/

View File

@@ -1,136 +0,0 @@
如何在Linux命令行下收听网络电台
========================================================================
对于系统管理员和Linux爱好者来说我们花大量的时间在Linux屏幕前但是你们知道网络/本地电台上的音乐可以极大的提高我们的生产力吗?不管你相信与否,在工作环境中有适当的声音,如音乐或者喋喋不休的声音都可以提高我们的创造力。如果你喜欢在音乐环境中工作,这个教程也许会对你有用。我将会向你展示**如何在命令行中收听潘多拉Pandora在线电台**LCTT译注Pandora Internet Radio是一个仅为美国、澳大利亚和新西兰提供自动音乐推荐的系统。详细介绍[Prandoea电台][1]
正如你已经知道的Pandora是最有名的在线电台服务之一它包含无数的不同种类的免费音乐流同时它还有一个强大的音乐推荐引擎。Pandora可以通过不同的方法访问浏览器桌面客户端或者手机Apps开源社区还给出了另一种访问Pandora音乐服务的方法Linux命令行。
[pianobar][2]是一个播放Pandora在线电台音乐的开源命令行音乐播放器。它有一个简单的人机接口用于播放和管理音乐电台。同时还有其他包括歌曲评价即将上线音乐列表播放历史自定义快捷键绑定远程控制等功能。对于那些居住在不可访问Pandora音乐服务区域的用户即美国、澳大利亚和新西兰以外的用户。Pianobar还配置了代理服务的支持。
###在Linux中安装Pianobar###
在Debian或者其他Debian的衍生品如Ubuntu或LinuxMint中Pianobar是一个已经编译好的软件包因此安装Pianobar只是简单的输入如下命令
$ sudo apt-get install pianobar
在Fedora中Pianobar并不包含在基础的软件库中。因此你需要通过源代码编译安装Pianobar。整个安装过程会有点麻烦但是下面的教程将会实现Pianobar在Frdora系统中编译安装。该教程在Fedora20版本中测试通过。
首先,根据[FFmpeg安装教程][3]编译并安装FFmpeg。
然后,[启用RPM Fusion源][4],并安装其他依赖软件:
$ sudo yum install wget gcc-c++ pkgconfig gnutls-devel json-c-devel libgcrypt-devel make libao-devel faad2-devel libmad-devel libao faad2-libs
编译并安装Pianobar
$ wget http://6xq.net/projects/pianobar/pianobar-2014.06.08.tar.bz2
$ tar xvfvj pianobar-2014.06.08.tar.bz2
$ cd pianobar-2014.06.08
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH make
$ sudo make install
最后允许Paniobar加载安装在/usr/local/lib目录下的FFmpeg共享库在/etc/ld.so.conf配置文件中添加下面一行
>/usr/local/lib
重载所有的共享库
就这样Pianobar已经在Fedora系统中安装完成。
###在命令行中收听Pandora音乐###
paniobar的基本用法是输入如下命令
> $ pianobar
该命令将会要求你登录到Pandora并从你的个性化电台列表中选择要收听的电台。在你选择电台后音乐就开始自动播放。
![](https://farm6.staticflickr.com/5552/14993320301_58e58b5810_z.jpg)
按键pianobar会列出一系列可用个命令其中一些如下
>- s: 更换电台
- u: 查看即将上线音乐列表
- h: 查看播放历史
- n: 播放下一首
- b: 收藏歌曲或艺术家
- ( 或者 ): 减少或增加播放音量
- S: 暂停播放
- P: 恢复播放
- V为当前收听的歌曲或者艺术家创建一个电台
- +或者-:查看上一首或者下一首歌曲
- a添加音乐到电台
- q退出pianobar
![](https://farm6.staticflickr.com/5559/14993326991_ccdffd0fa6_z.jpg)
###将Pianobar配置为自动登录###
你可以再一个单独的配置文件中配置Pianobar的各项默认配置。例如你可以将你的登录信息配置到配置文件中这样你就不用每次都要手动输入。下面是如何创建一个配置文件的示例
> $ mkdir -p ~/.config/pianobar
----------
> $ vi ~/.config/pianobar/config
----------
> # Example pianobar configuration file
>
> # Pandora login info
user = your@email_address
password = plaintext_password
>
> # Users who cannot access Pandora in their region can set a proxy.
control_proxy = http://user:password@host:port/
>
> # Initial volume in dB: between -30 and +5
volume = 0
>
> # Audio quality: high, medium or low
audio_quality = high
如需了解完整的配置选项请参阅其man手册页。
$ man pianobar
###远程控制Pianobar###
Pianobar的另一个优秀的特性是支持远程控制你可以通过命令管道FIFO为Pianobar的一个运行实例发送命令。下面是远程控制Pianobar的示例
首先在目录~/.config/pianobar下创建一个FIFO命令管道
> $ mkfifo ~/.config/pianobar/ctl
然后运行Pianobar
现在你可以通过使用echo命令发送任何的单字符命令键到Pianobar中例如播放下一首歌曲
> $ echo -n 'n' > ~/.config/pianobar/ctl
你可以很容易的将此配置扩展到远程计算机中当Pianobar在主机X上运行你可以从远程主机Y中通过SSH控制Pianobar,如下所示:
在主机Y中运行
> $ ssh user@host_X "echo -n 'n' > ~/.config/pianobar/ctl"
当然你希望为登录到主机X的SSH登录认证[启用秘钥认证][5]这样你就不用每次都输入SSH密码。
当你想在[树莓PI][6]上设置一个可以远程控制的在线电台播放器时Pianobar的远程控制特性将会让你非常方便的实现该需求。
希望你像我一样喜欢Pianobar若有什么想法请在评论中告诉我。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/08/listen-to-internet-radio-command-line-linux.html
作者:[Dan Nanni][a]
译者:[cvsher](https://github.com/cvsher)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://zh.wikipedia.org/wiki/Pandora%E7%94%B5%E5%8F%B0
[2]:http://6xq.net/projects/pianobar/
[3]:http://ask.xmodulo.com/compile-ffmpeg-centos-fedora-rhel.html
[4]:http://xmodulo.com/2013/06/how-to-install-rpm-fusion-on-fedora.html
[5]:http://xmodulo.com/2012/04/how-to-enable-ssh-login-without.html
[6]:http://xmodulo.com/go/raspberrypi