标签 Linux 下的文章

Linus Torvalds 前不久发布了 Linux 3.17 rc-2,这偏离了他正常的发布时间表,因为8月25日是 Linux 的第23个生日。“Hello 大家好,你还在使用minix吗?”,23年前的8月25日,Torvalds 在 Linux 的第一次发布中这样写道。

与此同时,最近 PCMag.com 网站声称Linux 的时间已经不多了。但是你们不觉得这样没完没了地讨论 Linux 在桌面端是否成功其实是毫无意义的吗?Linux 已经广泛应用于超级计算机和车载系统,它构建了 Android 的基础,同时还是最流行的云整合(例如 OpenStack)的运行平台 —— 以上这些还只是 Linux 的一部分成就。桌面并不是 Linux 唯一的战场。

Jon Buys 在他最近的文章中谈到了 Linux 专业化以及与桌面有关的内容:

“最近,IT业在追问‘Linus 是否还在执著于 Linux 桌面?’,来自 Teck Republic 的 Matt Asay 也在说‘拜托不要再讨论 Linux 桌面了行吗?’。这两篇文章都对 Linux 在个人计算机方面的发展空间持怀疑态度,还拿 Android 的成功故事来说事…… 但是它们都忽略了,Linux的灵活性以及它开源许可证的开放性,也许这两者正是拯救 Linux 桌面的关键。”

也许这是事实,但是 Linux 对于如此众多的桌面用户来说,还是太多余了。Linux 分享庞大市场的最佳机会已经来也匆匆去也匆匆了。

事实其实很简单,Linux已经改变了世界,获得了无与伦比的成功 —— 除了桌面系统,这毋庸置疑。Android已经不仅仅是一个基于Linux的平台,它已经成为了一个伟大的标志。Linux在服务器端和嵌入式技术领域占有巨大的份额,同时也为平台整合方面不断提供创新动力。Ubuntu已经成为部署搭建 OpenStack 最流行的平台。全世界的超级计算机都运行着 Linux,Chrome OS 也是基于 Linux。

因此,Linux 正在不断推动着整个世界的巨变,批评家们是时候停下来执著于 Linux 在桌面端的状态了。


via: http://ostatic.com/blog/linux-doesnt-need-to-own-the-desktop

作者:Sam Dean 译者:Mr小眼儿 校对:wxy

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

问题: 是否有一个命令可以快速地检查系统已经运行了多久? 也就是我怎么知道Linux系统最后的重启时间?

有许多方法来查询系统最后的重启时间。

方法一

第一种方法是使用last命令。

$ last reboot 

这条命令实际上显示的是最近几天的系统运行时间。last原本被设计来显示某个特定用户的登录历史。在Linux中,有一个特别的“伪用户”称为reboot会在系统重启的时候立即自动登录。这样通过检查reboot用户的登录历史,你就可以检查最后的重启时间。

方法二

另外一个检测系统最后启动时间的方法是使用who命令带上‘-b’选项。

$ who -b 

方法三

你同样可以使用uptime命令来推断系统最后的启动时间。uptime命令会显示当前的时间,同样也会显示系统已经运行的时间。从这些信息中,你就可以计算系统最后启动的时间了

$ uptime 


via: http://ask.xmodulo.com/check-last-time-system-rebooted-linux.html

译者:geekpi 校对:Caroline

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

你在家(或者办公室)的上传和下载速度如何?你能保证,你支付费用给ISP的同时得到了等价的回报?

要想测试我们因特网连接的速度,当下存在着一些因特网服务,比如说SpeedTest,这是一种可以通过Web浏览器和手机应用程序浏览的web服务。

现在,你可以很容易地检测你的网速,使用speedtest\_cli同样很简单,它是一个使用speedtest.net来测试因特网带宽的命令行界面。通过这种方式,你也可以在没有浏览器或者图形化界面的服务器上做带宽测试。

安装

speedtest\_cli是一个python脚本,所以它真的很容易安装和使用,你可以通过许多方式安装它:

1)pip / easy\_install

打开一个终端,输入下面的命令:

pip install speedtest_cli

或者

easy_install speedtest_cli

2)Github

想要直接从github安装,你得这么做:

pip install git+https://github.com/sivel/speedtest-cli.git

或者

git clone https://github.com/sivel/speedtest-cli.git
python speedtest-cli/setup.py install

3)作为Ubuntu/Debian或者Mint包

getdeb仓库给我们提供了安装包,按照下面的步骤,就可以轻松安装:

或者

  • 手动配置仓库:

进入系统管理软件源,第三方软件选项,加上:

deb http://archive.getdeb.net/ubuntu trusty-getdeb apps

增加仓库GPG钥匙,打开终端窗口,然后输入:

wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -

现在,你就可以使用下面的命令安装speedtest\_cli包了:

sudo apt-get update
sudo apt-get install python-speedtest-cli

4)下载(和以前的方式一样)

最后一个选择,只需要下载python脚本,然后在你想运行的地方运行脚本:

wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli

或者

curl -o speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli

基本用法

你可以不带任何选项地运行speedtest\_cli.py,然后你会在终端获得关于你带宽速度的报告,这就是我那糟糕的意大利Adsl输出:

$ ./speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Telecom Italia (87.13.73.66)...
Selecting best server based on latency...
Hosted by LepidaSpA (Bologna) [12.20 km]: 104.347 ms
Testing download speed........................................
Download: 6.35 Mbits/s
Testing upload speed...............................................
Upload: 0.34 Mbits/s

这就是基本用法,这足以让你知道你因特网连接的好坏,但是可能你想要和朋友分享这条信息,那么,只需要-share选项就可以

./speedtest_cli.py --share
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Telecom Italia (87.13.73.66)...
Selecting best server based on latency...
Hosted by LepidaSpA (Bologna) [12.20 km]: 93.778 ms
Testing download speed........................................
Download: 6.20 Mbits/s 
Testing upload speed...............................................
Upload: 0.33 Mbits/s
Share results: http://img.linux.net.cn/data/attachment/album/201409/11/153414kpd6xpiqs278f4xd.png

这将会产生一个类似于下面的图像(但是我希望你图像里面的值更好):

另一个有趣的选项是-list,它会按照距离列出所有speedtest.net服务器,下面是我运行的结果:

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
2872) LepidaSpA (Bologna, Italy) [12.20 km]
1561) MYNETWAY S.R.L. (Cesena, Italy) [80.97 km]
2710) ReteIVO by D.t.s. Srl (Florence, Italy) [90.90 km]
4826) Inteplanet Srl (Verona, Italy) [100.45 km]
3998) Wolnext srl (Verona, Italy) [100.45 km]
2957) Wifiweb s.r.l. (Altavilla Vicentina, Italy) [103.11 km]
3103) E4A s.r.l. (Vicenza, Italy) [107.17 km]
3804) Interplanet Srl (Vicenza, Italy) [107.17 km]
1014) NTRnet (Vicenza, Italy) [107.17 km]
3679) Hynet s r l (Vicenza, Italy) [107.17 km]
3745) Comeser Srl (Fidenza, Italy) [114.00 km]
5011) Welcomeitalia spa (Massarosa, Italy) [119.26 km]
2864) ReteIVO by D.t.s. Srl (Massa, Italy) [120.92 km]
2918) ReteIVO by D.t.s. Srl (Arezzo, Italy) [129.79 km]
...

既然我知道了围绕在我周围的服务器的ID,我可以使用-server选项选择一个特定的服务器,所以,要想选择位于佛罗伦萨(ID 2710)的服务器,我使用下面的命令:

./speedtest_cli.py --server 2710
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Telecom Italia (87.13.73.66)...
Hosted by ReteIVO by D.t.s. Srl (Florence) [90.90 km]: 106.505 ms
Testing download speed........................................
Download: 6.18 Mbits/s 
Testing upload speed..............................................
Upload: 0.35 Mbits/s

文章由Asapy Programming Company发表


via: http://linuxaria.com/howto/linux-terminal-speedtest_cli-checks-your-real-bandwidth-speed

译者:su-kaiyao 校对:Caroline

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

对于花大量时间在Linux屏幕前的系统管理员和Linux爱好者来说,网络/本地电台上的音乐可以极大提高生产力,你们知道吗?不管你们相信与否,,在工作环境中有适当的声音,如音乐或者闲聊声包围,都可以提高我们的创造力。如果你喜欢在音乐环境中工作,这个教程也许会对你有用。我将会向你展示如何在命令行中收听潘多拉(Pandora)在线电台(LCTT译注:Pandora Internet Radio是一个仅为美国、澳大利亚和新西兰提供自动音乐推荐的系统。详细介绍Prandoea电台

正如你已经知道的,Pandora是最有名的在线电台服务之一,它包含无数的不同种类的免费音乐流,同时它还有一个强大的音乐推荐引擎。Pandora可以通过不同的方式访问,如:浏览器,桌面客户端或者手机Apps,开源社区还给出了另一种访问Pandora音乐服务的方法:Linux命令行。

pianobar是一个播放Pandora在线电台音乐的开源命令行音乐播放器。它有一个简单的终端接口,用于播放和管理音乐电台。同时还有其他包括歌曲评价,即将上线音乐列表,播放历史,自定义快捷键绑定,远程控制等功能。对于那些居住在不可访问Pandora音乐服务区域的用户(即美国、澳大利亚和新西兰以外的用户),Pianobar还配置了代理服务的支持。

在Linux中安装Pianobar

在Debian或者其他Debian的衍生品中,如Ubuntu或LinuxMint,Pianobar是一个已经编译好的软件包,因此安装Pianobar只是简单的输入如下命令:

$ sudo apt-get install pianobar

在Fedora中,Pianobar并不包含在基础的软件库中。因此,你需要通过源代码编译安装Pianobar。整个安装过程会有点麻烦,但是下面的教程将会实现Pianobar在Fedora系统中编译安装。该教程在Fedora20版本中测试通过。

首先,根据FFmpeg安装教程编译并安装FFmpeg。

然后,启用RPM Fusion源,并安装其他依赖软件:

 $ 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

重载所有的共享库

$ sudo ldconfig

就这样,Pianobar已经在Fedora系统中安装完成。

在命令行中收听Pandora音乐

paniobar的基本用法是输入如下命令:

$ pianobar

该命令将会要求你登录到Pandora并从你的个性化电台列表中选择要收听的电台。在你选择电台后,音乐就开始自动播放。

按‘?’按键pianobar会列出一系列可用个命令,其中一些如下:

  • s: 更换电台
  • u: 查看即将上线音乐列表
  • h: 查看播放历史
  • n: 播放下一首
  • b: 收藏歌曲或艺术家
  • ( 或者 ): 减少或增加播放音量
  • S: 暂停播放
  • P: 恢复播放
  • V:为当前收听的歌曲或者艺术家创建一个电台
  • +或者-:查看上一首或者下一首歌曲
  • a:添加音乐到电台
  • q:退出pianobar

将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登录认证启用秘钥认证,这样你就不用每次都输入SSH密码。

当你想在树莓Pi上设置一个可以远程控制的在线电台播放器时,Pianobar的远程控制特性将会让你非常方便地实现该需求。

希望你和我一样喜欢Pianobar,若有什么想法,请在评论中告诉我。


via: http://xmodulo.com/2014/08/listen-to-internet-radio-command-line-linux.html

作者:Dan Nanni 译者:cvsher 校对:Caroline

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

DigitalOcean是云VPS主机市场中最炙手可热的新生儿。虽然没有提供像Amazon之类一样的综合服务业务,但DigitalOcean定位于中小型企业和开发者,已经成为基于Linux的最佳云VPS服务的强有力竞争者,这都得归功于它们具有竞争力的价格和用户友好的管理界面。

不管什么时候,当你需要一个面向网络的服务器用于你的个人项目,你都可以全速开动一个“水滴”(DigitalOcean中VPS实例的昵称),也可以在你不需要时杀掉它,没必要为了让你的VPS保持运作而烧光了你的钱袋。尽管DigitalOcean基于网络的管理界面已经十分高效,但对于那些命令行界面的死忠派,它还是提供了基于命令行界面的水滴管理工具,它叫tugboat。多亏了这个命令行工具,所有复杂的水滴管理任务都可以简单地转变成一个脚本来完成。

在本文中,我打算讲述怎样使用tugboat来从命令行对DigitalOcean水滴进行管理

在Linux上安装tugboat

在Debian,Ubuntu或者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,因为在CentOS 6.5以及更早的版本上,默认的Ruby不满足Tugboat所需的最小版本(1.9及更高版本)。安装Ruby 1.9及更高版本后,请按如下方式安装tugboat。

$ sudo gem install tugboat 

tugboat首次使用配置

在安装完后,就该进行一次配置,其中包括授权tugboat访问DigitalOcean帐号。

转到https://cloud.digitalocean.com/api_access,并创建新的API密钥,记录客户ID和API密钥。

通过运行以下命令来启动授权过程:

$ tugboat authorize 

在提示你输入客户ID和API密钥时,请输入。它会询问几个其它问题,目前你可以接受默认的回答。我们将会在后面自定义默认设置。

现在,让我们自定义默认水滴设置,以反映你典型的使用状况。要做到这一点,首先检查水滴提供的可用设置项(如,可用的镜像、区域、大小)。

运行以下命令,它会列出可用的水滴镜像。选取使用一个默认镜像,并记录相关的ID。

$ tugboat images --global 

类似,从可用区域中选取一个默认的地理位置:

$ tugboat regions

同时,从可用的RAM大小中选择一个默认的水滴大小:

$ tugboat sizes 

现在,把你的默认选择放到~/.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密钥到DigitalOcean

要访问水滴实例,一个安全的方式是通过密钥验证的SSH连接到该实例。

事实上,你可以通过使用DigitalOcean来注册SSH公钥,为你的水滴实现自动启用密钥验证。下面告诉你怎么做。

首先,生成一个公/私密钥对(如果你还没有)。

$ ssh-keygen -t rsa -C "[email protected]"

假设生成的密钥对由~/.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 

密钥也应该出现在DigitalOcean的SSH密钥页。如果你想要密钥自动使用到水滴中,添加密钥ID到~/.tugboat中。

ssh_key: '182710'

Tugboat的基本用法

这里列出了tugboat命令行的一些基本使用情况。

  1. 使用默认设置创建新水滴。
$ tugboat create
  1. 列出所有活动水滴。
$ tugboat droplets
  1. 显示水滴的信息。
$ tugboat info

  1. 关闭水滴,并移除镜像。
$ tugboat destroy
  1. 关闭水滴,但保持镜像
$ tugboat halt
  1. 为水滴创建快照,水滴必须先关闭。
$ tugboat snapshot
  1. 调整水滴大小(增加或减少RAM大小),水滴必须先关闭。
$ tugboat resize -s

如果你想要了解特定命令的更多选项,运行:

$ tugboat help <command> 

排障

  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,请参考此教程

  1. 当我试着用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

译者:GOLinux 校对:Caroline

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

问题:我安装了一个程序到/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 校对:Caroline

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