分类 技术 下的文章

我们知道你想拥有一个有格调的ubuntu桌面来炫耀一下 :)

在linxu上费一点点劲搭建一个出色的工作环境是很简单的。今天,我们(重新)着重来探讨长驻你脑海中那些东西 :一款自由,开源,能够给你的截图增添光彩的工具。

它叫 Live Wallpaper (正如你猜的那样) ,它用由OpenGL驱动的一款动态桌面背景来代替标准的静态桌面背景。

最好的一点是:在ubuntu上安装它很容易。

动态壁纸主题

Live Wallpaper 不是此类软件唯一的一款,但它是最好的一款之一。

它附带很多不同的开箱即用的主题。

Live Wallpaper

Live Wallpaper

从精细的(‘noise’)到狂热的 (‘nexus’),包罗万象,甚至有受到Ubuntu Phone欢迎屏幕启发的obligatory锁屏壁纸。

  • Circles — 带着‘evolving circle’风格的时钟,灵感来自于Ubuntu Phone
  • Galaxy — 支持自定义大小,位置的旋转星系
  • Gradient Clock — 放在倾斜面上的polar时钟
  • Nexus — 亮色粒子火花穿越屏幕
  • Noise — 类似于iOS动态壁纸的Bokeh设计
  • Photoslide — 由文件夹(默认为 ~/Photos)内照片构成的动态网格相册

Live Wallpaper 完全开源,所以没有什么能够阻挡天马行空的艺术家们用诀窍(当然还有耐心)来创造他们自己的精美主题。

设置 & 特点

虽然某些主题与其它主题相比有更多的选项,但每款主题都可以通过某些方式来配置或者定制。

例如,Nexus主题中 (上图所示) 你可以更改脉冲粒子的数量,颜色,大小和出现频率。

首选项提供了 通用选项 适用于所有主题,包括:

  • 设置登录界面的动态壁纸
  • 自定义动画背景
  • 调节 FPS (包括在屏幕上显示FPS)
  • 指定多显示器的行为

有如此多的选项,diy适用于你自己的桌面背景是很容易的。

缺陷

没有桌面图标

Live Wallpaper在运行时,你无法在桌面添加,打开或者是编辑文件和文件夹。

首选项程序提供了一个选项来让你这样做(只是猜测)。也许是它只能在老版本中使用,在我们的测试中-测试环境为Ununtu 14.10,它不工作。但在测试中发现当把桌面壁纸设置成格式为png的图片文件时,这个选项有用,不需要是透明的png图片文件,只要是png图片文件就行了。

资源占用

动态壁纸与标准的壁纸相比要消耗更多的系统资源。

我们并不是说任何时候都会消耗大量资源,但至少在我们的测试中是这样,所以低配置机器和笔记本用户要谨慎使用这款软件。可以使用 系统监视器 来追踪CPU 和GPU的负载。

退出程序

对我来说最大的“bug”绝对是没有“退出”选项。

当然,动态壁纸可以通过托盘图标和首选项完全退出,那退出托盘图标呢?没办法。只能在终端执行命令‘pkill livewallpaper’。

怎么在 Ubuntu 14.04 LTS+ 上安装 Live Wallpaper

要想在Ubuntu 14.04 LTS 和更高版本中安装 Live Wallpaper,你首先需要把官方PPA添加进你的软件源。 最快的方法是在终端中执行下列命令:

sudo add-apt-repository ppa:fyrmir/livewallpaper-daily

sudo apt-get update && sudo apt-get install livewallpaper

你还需要安装 indicator applet,这样可以方便快速的打开或是关闭动态壁纸,从菜单选择主题,另外图形配置工具可以让你基于你自己的口味来配置每款主题。

sudo apt-get install livewallpaper-config livewallpaper-indicator

所有都安装好之后你就可以通过Unity Dash来启动它和它的首选项工具了。

让人不爽的是,安装完成后,程序不会自动打开托盘图标,而仅仅将它自己加入自动启动项,所以,快速来个注销 -> 登陆它就会出现啦。

总结

如果你正处在无聊呆板的桌面中,幻想有一个更有活力的生活,不妨试试。另外,告诉我们你想看到什么样的动态壁纸!


via: http://www.omgubuntu.co.uk/2015/05/animated-wallpaper-adds-live-backgrounds-to-linux-distros

作者:Joey-Elijah Sneddon 译者:Love-xuan 校对:wxy

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

那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。

在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。

为终端生成彩虹般颜色的输出的 Lolcat 命令

为终端生成彩虹般颜色的输出的 Lolcat 命令

何为 lolcat ?

Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat 的输出添加彩虹般的色彩。 Lolcat 主要用于在 Linux 终端中为文本添加彩虹般的色彩。

在 Linux 中安装 Lolcat

1. Lolcat 工具在许多 Linux 发行版的软件仓库中都可获取到,但可获得的版本都有些陈旧,而你可以通过 git 仓库下载和安装最新版本的 lolcat。

由于 Lolcat 是一个 ruby gem 程序,所以在你的系统中必须安装有最新版本的 RUBY。

# apt-get install ruby      [在基于 APT 的系统中]
# yum install ruby          [在基于 Yum 的系统中]
# dnf install ruby          [在基于 DNF 的系统中]

一旦 ruby 软件包安装成功,请确保验证安装的 ruby 的版本。

# ruby --version

ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]

2. 接着使用下面的命令来从 lolcat 的 git 仓库中下载和安装最新版本的 lolcat。

# wget https://github.com/busyloop/lolcat/archive/master.zip
# unzip master.zip
# cd lolcat-master/bin
# gem install lolcat

一旦 lolcat 安装后,你可以检查它的版本号。

# lolcat --version

lolcat 42.0.99 (c)2011 [email protected]

Lolcat 的用法

3. 在开始使用 lolcat 之前,使用下面的命令来了解它可用的选项和其帮助文档。

# lolcat -h

Lolcat 的帮助文档

Lolcat 的帮助文档

4. 接着, 通过管道连接 lolcat 和其他命令,例如 ps, date 和 cal:

# ps | lolcat
# date | lolcat
# cal | lolcat

ps 命令的输出

ps 命令的输出

Date 的输出

Date 的输出

Calendar 的输出

Calendar 的输出

5. 使用 lolcat 来展示一个脚本文件的代码:

# lolcat test.sh

用 lolcat 来展示代码

用 lolcat 来展示代码

6. 通过管道连接 lolcat 和 figlet 命令。Figlet 是一个展示由常规的屏幕字符组成的巨大字符串的应用。我们可以通过管道将 figlet 的输出连接到 lolcat 中来展示出如下的多彩输出:

# echo I ❤ Tecmint | lolcat
# figlet I Love Tecmint | lolcat

多彩的文字

多彩的文字

: 注意, ❤ 是一个 unicode 字符。要安装 figlet,你需要像下面那样使用 yum 和 apt 来得到这个软件包:

# apt-get figlet 
# yum install figlet 
# dnf install figlet

7. 给文本赋予彩虹颜色的动画:

$ echo I ❤ Tecmit | lolcat -a -d 500

动的文本

动的文本

这里选项 -a 指的是 Animation(动画), -d 指的是 duration(持续时间)。在上面的例子中,持续 500 次动画。

8. 在彩虹般的颜色下阅读 man 页(例如 man ls):

# man ls | lolcat

多彩地显示文件

多彩地显示文件

9. 通过管道连接 lolcat 和 cowsay。cowsay 是一个可配置的正在思考或说话的奶牛,这个程序也支持其他的动物。

使用下面的命令来安装 cowsay :

# apt-get cowsay
# yum install cowsay
# dnf install cowsay

安装后,使用下面的命令来显示在 cowsay 中的所有动物:

# cowsay -l

样例输出

Cow files in /usr/share/cowsay/cows:
apt beavis.zen bong bud-frogs bunny calvin cheese cock cower daemon default
dragon dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters gnu head-in hellokitty kiss kitty koala kosh luke-koala
mech-and-cow meow milk moofasa moose mutilated pony pony-smaller ren sheep
skeleton snowman sodomized-sheep stegosaurus stimpy suse three-eyes turkey
turtle tux unipony unipony-smaller vader vader-koala www

通过管道连接 lolcat 和 cowsay 后的输出,并且使用了‘gnu’形象的 cowfile。

# cowsay -f gnu ☛ Tecmint ☚ is the best Linux Resource Available online | lolcat

使用 Lolcat 的 Cowsay

使用 Lolcat 的 Cowsay

: 你可以在将 lolcat 和其他任何命令用管道连接起来在终端中得到彩色的输出。

10. 你可以为最常用的命令创建别名来使得命令的输出呈现出彩虹般的色彩。你可以像下面那样为 ‘ls -l‘ 命令创建别名,这个命令输出一个目录中包含内容的列表。

# alias lolls="ls -l | lolcat"
# lolls

多彩的 Alias 命令

多彩的 Alias 命令

你可以像上面建议的那样,为任何命令创建别名。为了使得别名永久生效,你需要添加相关的代码(上面的代码是 ls -l 的别名) 到 ~/.bashrc 文件中,并登出后再重新登录来使得更改生效。

现在就是这些了。我想知道你是否曾经注意过 lolcat 这个工具?你是否喜欢这篇文章?欢迎在下面的评论环节中给出你的建议和反馈。喜欢并分享我们,帮助我们传播。


via: http://www.tecmint.com/lolcat-command-to-output-rainbow-of-colors-in-linux-terminal/

作者:Avishek Kumar 译者:FSSlc 校对:wxy

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

跳过 LAMP 的介绍,因为我认为你们大多数已经知道了。这个教程会集中在如何在升级到 Apache 2.4 的 Red Hat Enterprise Linux 7.0 和 CentOS 7.0 中安装和配置 LAMP:Linux、Apache、 MariaDB、 PHP/PhpMyAdmin。

Install LAMP in CentOS 7

在 RHEL/CentOS 7.0 中安装 LAMP

前置要求

根据使用的发行版是 RHEL 还是 CentOS 7.0,按照下面的链接来进行最小化的系统安装,网络使用静态 IP。

对于 RHEL 7.0

对于 CentOS 7.0

第一步:使用基本配置安装apache

1、在完成最小化系统安装,并在 RHEL/CentOS 7.0 上配置静态 IP 后,就可以使用下面的命令从官方仓库安装最新的 Apache 2.4 httpd 服务了。

# yum install httpd

Install Apache in CentOS 7

安装 apache 服务

2、安装完成后,使用下面的命令来管理apache守护进程,因为 RHEL 和 CentOS 7.0 都将 init 脚本从 SysV 升级到了systemd,所以同时你还可以使用 SysV 脚本和 Apache 脚本来管理服务。

# systemctl status|start|stop|restart|reload httpd
或者 
# service httpd status|start|stop|restart|reload
或者 
# apachectl configtest| graceful

Start Apache in CentOS 7

启动apache服务

3、在使用 systemd 初始化脚本来启动 apache 服务后,要用 firewall-cmd 打开 RHEL/CentOS 7.0 防火墙规则, 这是通过 firewalld 守护进程管理 iptables 的默认命令。**

# firewall-cmd --add-service=http

注意:上面的命令会在系统重启或者 firewalld 服务重启后失效,因为它是即时的规则,它不会永久生效。要使 iptables 规则在 fiewalld 中持久化,使用 --permanent 选项并重启 firewalld 服务来生效。(LCTT 译注:也可以不重启 firewalld 服务,而是再执行一遍不带 --permanent 选项的命令。)

# firewall-cmd --permanent --add-service=http
# systemctl restart firewalld

Enable Firewall in CentOS 7

在 CentOS 7 中启用防火墙

下面是 firewalld 其他的重要选项:

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=8080/tcp

4、要验证 apache 的功能,打开一个远程浏览器并使用 http 协议访问你服务器的 IP 地址(http://server\_IP), 应该会显示下图中的默认页面。

Apache Default Page

Apache 默认页

5、现在 apache 的根地址在 /var/www/html,该目录中没有提供任何索引文件。如果你想要看见根目录下的文件夹列表,打开 apache 欢迎配置文件并设置 <LocationMach>Indexes 前的状态从-+,下面的截图就是一个例子。

# nano /etc/httpd/conf.d/welcome.conf

Apache Directory Listing

Apache 目录列出

6、关闭文件,重启 apache 服务来使设置生效,重载页面来看最终效果。

# systemctl restart httpd

Apache Index File

Apache 索引文件

第二步:为 Apache 安装 php5 支持

7、在为 apache 安装 php 支持之前,使用下面的命令的得到所有可用的php模块和扩展。

# yum search php

Install PHP in CentOS 7

在 CentOS 7 上安装 PHP*

8、根据你所要使用的应用类型,安装上述列表中所需的 PHP 模块。对于 PHP 中的基本的 MariaDB 支持和 PhpMyAdmin,你需要安装如下模块。

# yum install php php-mysql php-pdo php-gd php-mbstring

Install PHP Modules in CentOS 7

安装 PHP 模块

Install PHP mbstring Module

安装 PHP mbstring 模块

9、 要在你的浏览器上显示 PHP 的全部信息,用 root 账号执行如下命令在 Apache 的文档根目录下创建一个 info.php 文件,然后重启 httpd 服务,并在你的浏览器里面访问 http://server\_IP/info.php 。

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd

Check PHP Info in CentOS 7

查看 CentOS 7 上的 PHP 信息

10、如果你得到一个 PHP 的日期和时区错误,打开配置文件 php.ini,取消 date.timezone 语句的注释,加上你的实际时区参数,然后重启 Apache 守护进程。

# nano /etc/php.ini

找到并如下修改date.timezone,参考 PHP 支持的时区列表。(LCTT 译注:对于中国,可以使用 Asia/Shanghai、Asia/Chongqing 等,但是不建议使用向后兼容而保留的 PRC。)

date.timezone = Continent/City

Set Timezone in PHP

设置 PHP 的时区

第三步:安装和配置 MariaDB 数据库

11、 Red Hat Enterprise Linux/CentOS 7.0 使用 MariaDB 替换 MySQL 为默认数据库管理系统。使用如下命令安装 MariaDB 数据库。

# yum install mariadb-server mariadb

Install MariaDB in CentOS 7

在 CentOS 7中安装 MariaDB

12、安装 MariaDB 后,启动数据库守护进程并使用 mysqlsecureinstallation 脚本来保护数据库(设置数据库的 root 密码、禁止远程 root 登录、移除测试数据库、移除匿名用户等)。

# systemctl start mariadb
# mysql_secure_installation

Start MariaDB Database

启动 MariaDB 数据库

Secure MySQL Installation

MariaDB 安全设置

13、要测试数据库功能,使用 root 账户登录 MariaDB 并用 quit 退出。

mysql -u root -p
MariaDB > SHOW VARIABLES;
MariaDB > quit

Connect MySQL Database in CentOS

连接 MariaDB 数据库

第四步:安装 PhpMyAdmin

14、 RHEL 7.0 或者 CentOS 7.0 仓库默认没有提供 PhpMyAdmin 二进制安装包。如果你不适应使用 MySQL 命令行来管理你的数据库,你可以通过下面的命令启用 CentOS 7.0 rpmforge 仓库来安装 PhpMyAdmin。

# yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

启用 rpmforge 仓库后,下面安装 PhpMyAdmin。

# yum install phpmyadmin

Enable RPMForge in CentOS 7

启用 RPMForge 仓库

15、下面配置 PhpMyAdmin 的 phpmyadmin.conf 来允许远程连接,它位于 Apache 的 conf.d 目录下,并注释掉下面的行。

# nano /etc/httpd/conf.d/phpmyadmin.conf

使用#来注释掉下列行。

# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1

Allow Remote PhpMyAdmin Access

允许远程 PhpMyAdmin 访问

16、 要使用 cookie 验证来登录 PhpMyAdmin,像下面的截图那样使用生成的秘密字符串来添加一个 blowfish 字符串到 config.inc.php 文件中,重启 apache 服务并打开 URL:http://server\_IP/phpmyadmin/。

# nano /etc/httpd/conf.d/phpmyadmin.conf
# systemctl restart httpd

Add Blowfish in PhpMyAdmin

在 PhpMyAdmin 中添加 Blowfish

PhpMyAdmin Dashboard

PhpMyAdmin 面板

第五步:在系统范围内启用 LAMP

17、 如果你需要在重启后自动运行 MariaDB 和 Apache 服务,你需要在系统级地启用它们。

# systemctl enable mariadb
# systemctl enable httpd

Enable Services System Wide

系统级启用服务

这就是在 Red Hat Enterprise 7.0 或者 CentOS 7.0 中安装 LAMP 的过程。在 CentOS/RHEL 7.0 上关于 LAMP 的系列文章接下来将会讨论在 Apache 中创建虚拟主机,生成 SSL 证书、密钥和添加 SSL 事务支持。


via: http://www.tecmint.com/install-lamp-in-centos-7/

作者:Matei Cezar 译者:geekpi 校对:wxy

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

我们经常会看到文件名和文件夹名。大多数时候文件/文件夹的名字和内容相关并以数字和字母开头。字母加数字的文件名最常见,应用也很广泛,但总会需要处理一些包含特殊字符的文件名/文件夹名。

注意:我们可能有各种类型的文件,但是为了简单以及方便实现,在本文中我们只用文本文件(.txt)做演示。

最常见的文件名例子:

abc.txt
avi.txt
debian.txt
...

数字文件名例子:

121.txt
3221.txt
674659.txt
...

字母数字文件名例子:

eg84235.txt
3kf43nl2.txt
2323ddw.txt
...

包含特殊字符的文件名的例子,并不常见:

#232.txt
#bkf.txt
#bjsd3469.txt
#121nkfd.txt
-2232.txt
-fbjdew.txt
-gi32kj.txt
--321.txt
--bk34.txt
...

一个显而易见的问题是 - 在这个星球上有谁会创建和处理包含井号(#),分号(;),破折号(-)或其他特殊字符的文件/文件夹啊。

我和你想的一样,这种文件名确实不常见,不过在你必须得处理这种文件名的时候你的 shell 也不应该出错或罢工。而且技术上来说,Linux 下的一切比如文件夹、驱动器或其他所有的都被当作文件处理。

处理名字包含破折号(-)的文件

创建以破折号(-)开头的文件,比如 -abx.txt。

$ touch -abc.txt

测试输出

touch: invalid option -- 'b'
Try 'touch --help' for more information.

出现上面错误的原因是,shell 把破折号(-)之后的内容认作参数了,而很明显没有这样的参数,所以报错。

要解决这个问题,我们得告诉 Bash shell(是的,这里以及本文后面的大多数例子都是基于 BASH 环境)不要将特殊字符(这里是破折号)后的字符解释为参数。

有两种方法解决这个错误:

$ touch -- -abc.txt     [方法 #1]
$ touch ./-abc.txt      [方法 #2]

你可以通过运行命令 ls 或 ls -l 列出详细信息来检查通过上面两种方式创建的文件。

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 11:05 -abc.txt

要编辑上述文件可以这样:

$ nano -- -abc.txt 
或者 
$ nano ./-abc.txt 

注意:你可以将 nano 替换为任何其他你喜欢的编辑器比如说 vim:

$ vim -- -abc.txt 
或者 
$ vim ./-abc.txt 

如果只是简单地移动文件可以这样:

$ mv -- -abc.txt -a.txt
或者
$ mv -- -a.txt -abc.txt

删除这种文件,可以这样:

$ rm -- -abc.txt
或者
$ rm ./-abc.txt 

如果一个目录下有大量这种名字包含破折号的文件,要一次全部删除的话,可以这样:

$ rm ./-*

重要:

  1. 上面讨论的规则可以同样应用于名字中包含任意数量以及任意位置的连接符号的文件。就是说,-a-b-c.txt,ab-c.txt,abc-.txt,等等。
  2. 上面讨论的规则可以同样应用于名字中包含任意数量以及任意位置连接符号的文件夹,除了一种情况,在删除一个文件夹的时候你得这样使用rm -rf

$ rm -rf -- -abc 或者 $ rm -rf ./-abc

处理名字包含井号(#)的文件

符号#在 BASH 里有非常特别的含义。#之后的一切都会被认为是评论,因此会被 BASH 忽略。

通过例子来加深理解:

创建一个名字是 #abc.txt 的文件:

$ touch #abc.txt

测试输出

touch: missing file operand
Try 'touch --help' for more information.

出现上面错误的原因是,BASH 将 #abc.txt 解释为评论而忽略了。所以命令 touch没有收到任何文件作为参数,所以导致这个错误。

要解决这个问题,你可能需要告诉 BASH 不要将 # 解释为评论。

$ touch ./#abc.txt
或者
$ touch '#abc.txt'

检查刚创建的文件:

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 12:14 #abc.txt

现在创建名字中除了开头的其他地方包含 # 的文件。

$ touch ./a#bc.txt
$ touch ./abc#.txt    
或者
$ touch 'a#bc.txt'
$ touch 'abc#.txt'

运行 ‘ls -l‘ 来检查:

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 12:16 a#bc.txt
-rw-r--r-- 1 avi avi 0 Jun  8 12:16 abc#.txt

如果同时创建两个文件(比如 a 和 #bc)会怎么样:

$ touch a.txt #bc.txt

检查刚创建的文件:

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 12:18 a.txt

很明显上面的例子中只创建了文件 a 而文件 #bc 被忽略了。对于上面的情况我们可以这样做,

$ touch a.txt ./#bc.txt
或者
$ touch a.txt '#bc.txt'

检查一下:

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 12:20 a.txt
-rw-r--r-- 1 avi avi 0 Jun  8 12:20 #bc.txt

可以这样移动文件:

$ mv ./#bc.txt ./#cd.txt
或者
$ mv '#bc.txt' '#cd.txt'

这样拷贝:

$ cp ./#cd.txt ./#de.txt
或者
$ cp '#cd.txt' '#de.txt'

可以使用你喜欢的编辑器来编辑文件:

$ vi ./#cd.txt
或者
$ vi '#cd.txt'

$ nano ./#cd.txt
或者
$ nano '#cd.txt'

这样删除:

$ rm ./#bc.txt 
或者
$ rm '#bc.txt'

要删除所有以井号(#)开头的文件,可以这样:

# rm ./#*

处理名字包含分号(;)的文件

如果你还不知道的话,分号在 BASH 里起到命令分隔的作用,其他 shell 可能也是一样的。分号作为分隔符可以让你一次执行几个命令。你碰到过名字包含分号的文件吗?如果没有的话,这里有例子。

创建一个名字包含分号的文件。

$ touch ;abc.txt

测试输出

touch: missing file operand
Try 'touch --help' for more information.
bash: abc.txt: command not found

出现上面错误的原因是,在运行上面命令的时候 BASH 会把 touch 解释为一个命令但是在分号前没有任何文件参数,所以报告错误。然后报告的另一个错误找不到命令 abc.txt,只是因为在分号后 BASH 会期望另一个新的命令,而 abc.txt 并不是一个命令。

要解决这个问题,我们得告诉 BASH 不要将分号解释为命令分隔符,例如:

$ touch ./';abc.txt'
或者
$ touch ';abc.txt'

注意:我们将文件名用单引号 '' 包含起来。这样可以告诉 BASH 分号 ; 是文件名的一部分而不是命令分隔符。

对名字包含分号的文件和文件夹的其他操作(就是,拷贝、移动、删除)可以直接将名字用单引号包含起来就好了。

处理名字包含其他特殊字符的文件/文件夹

文件名包含加号 (+)

不需要任何特殊处理,按平时的方式做就好了,比如下面测试的文件名。

$ touch +12.txt 

文件名包含美元符 ($)

你需要将文件名用单引号括起来,像处理分号那样的方式。然后就很简单了。

$ touch '$12.txt'

文件名包含百分号 (%)

不需要任何特殊处理,当作一个普通文件就可以了。

$ touch %12.txt

文件名包含星号 (*)

需要用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改。)

$ touch *12.txt

注意:当你需要删除星号开头的文件时,千万不要用类似下面的命令。

$ rm *
或者
$ rm -rf *

而是用这样的命令,(LCTT 译注:此处原文有误,已修改)

$ rm ./'*.txt'

文件名包含叹号 (!)

只要将文件名用单引号括起来,其他的就一样了。

$ touch '!12.txt'

文件名包含小老鼠 (@)

没有什么特别的,可以将名字包含小老鼠的文件当作普通文件。

$ touch '@12.txt'

文件名包含 ^

不需要特殊处理。可以将名字包含 ^ 的文件当作普通文件。

$ touch ^12.txt

文件名包含 (&)

将文件名用单引号括起来,然后就可以操作了。

$ touch '&12.txt'

文件名包含括号 ()

如果文件名包含括号,你需要将文件名用单引号括起来。

$ touch '(12.txt)'

文件名包含花括号 {}

用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)

$ touch '{12.txt}'

文件名包含尖括号 <>

名字包含尖括号的文件需要用单引号括起来。

$ touch '<12.txt>'

文件名包含方括号 [ ]

用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)

$ touch '[12.txt]'

文件名包含下划线 (\_)

这个非常普遍,不需要特殊对待。当作普通文件随意处理。

$ touch _12.txt

文件名包含等号 (=)

用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)

$ touch '=12.txt'

处理反斜杠 ()

反斜杠会告诉 shell 忽略后面字符的特殊含义。你必须将文件名用单引号括起来,就像处理分号那样。其他的就没什么了。

$ touch '\12.txt'

包含斜杠的特殊情形

除非你的文件系统有问题,否则你不能创建名字包含斜杠的文件。没办法转义斜杠。

所以如果你能创建类似 ‘/12.txt’ 或者 ‘b/c.txt’ 这样的文件,那要么你的文件系统有问题,或者支持 Unicode,这样你可以创建包含斜杠的文件。只是这样并不是真的斜杠,而是一个看起来像斜杠的 Unicode 字符。

文件名包含问号 (?)

用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)

$ touch '?12.txt'

文件名包含点 (.)

在 Linux 里以点 (.) 开头的文件非常特别,被称为点文件。它们通常是隐藏的配置文件或系统文件。你需要使用 ls 命令的 ‘-a‘ 或 ‘-A‘ 开关来查看这种文件。

创建,编辑,重命名和删除这种文件很直接。

$ touch .12.txt

注意:在 Linux 里你可能碰到名字包含许多点 (.) 的文件。不像其他操作系统,文件名里的点并不意味着分隔名字和扩展后缀。你可以创建名字包含多个点的文件:

$ touch 1.2.3.4.5.6.7.8.9.10.txt

检查一下:

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 14:32 1.2.3.4.5.6.7.8.9.10.txt

文件名包含逗号 (,)

你可以在文件名中使用逗号,可以有任意多个而不用特殊对待。就像平时普通名字文件那样处理。

$ touch ,12.txt
或者
$ touch ,12,.txt

文件名包含冒号 (:)

用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)

$ touch ':12.txt'
或者
$ touch ':12:.txt'

文件名包含引号(单引号和双引号)

要在文件名里使用引号,我们需要使用交替规则。例如,如果你需要在文件名里使用单引号,那就用双引号把文件名括起来。而如果你需要在文件名里使用双引号,那就用单引号把文件名括起来。(LCTT 译注:或者如果单引号和双引号混杂的情况,你也可以用反斜杠转义。)

$ touch "15'.txt"

以及

$ touch '15".txt'

文件名包含波浪号 (~)

Linux 下一些像 emacs 这样的文本编辑器在编辑文件的时候会创建备份文件。这个备份文件的名字是在原文件名后面附加一个波浪号。你可以在文件名任意位置使用波浪号,例如:

$ touch ~1a.txt
或者
$touch 2b~.txt

文件名包含空格

创建名字的字符/单词之间包含空格的文件,比如 “hi my name is avishek.txt”。

最好不要在文件名里使用空格,如果你必须要分隔可读的名字,可以使用下划线或横杠。不过,你还是需要创建这样的文件的话,你可以用反斜杠来转义下一个字符。要创建上面名字的文件可以这样做。

$ touch hi\ my\ name\ is\ avishek.txt

hi my name is avishek.txt

我已经尝试覆盖你可能碰到的所有情况。上面大多数测试都在 BASH Shell 里完成,可能在其他 shell 下会有差异。

如果你觉得我遗漏了什么(这很正常也符合人性),请把你的建议发表到下面的评论里。保持联系,多评论。不要走开!求点赞求分享求扩散!


via: http://www.tecmint.com/manage-linux-filenames-with-special-characters/

作者:Avishek Kumar 译者:zpl1025 校对:wxy

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

如果你要在Ubuntu 15.04上安装Node.js的话,这篇教程对你来说肯定很重要。Node.js从本质上来说就是一个运行在服务端上的封装好了输入输出流的javascript程序。Node.js巧妙的使用单线程的事件循环来处理高吞吐量和非阻塞IO。同时它也是一个提供了通过操作系统读写文件和网络操作功能的平台层。所以这篇文章将展示在Ubuntu 15.04 server上不同的安装Node.Js的方式。

安装Node.JS 的方法

有许多安装Node.JS的不同的方法,我们可以选择其一。通过本篇文章我们将手把手带着你在Ubuntu 15.04上安装Node.Js,在此之前请卸载旧版本的包以免发生包冲突。

  • 从源代码安装Node.JS
  • 用包管理器安装Node.JS
  • 从Github远程库安装Node.JS
  • 用NVM安装Node.JS

1) 从源代码安装Node.JS

让我们开始从源代码安装Node.JS之前,请确认系统上的所有的依赖包都已经更新到最新版本。然后跟着以下步骤来开始安装:

步骤1: 升级系统

用以下命令来升级系统,并且安装一些Node.JS必要的包。

root@ubuntu-15:~# apt-get update
root@ubuntu-15:~# apt-get install python gcc make g++

步骤2: 获取Node.JS的源代码

安装好依赖包之后我们可以从官方网站上下载Node.JS的源代码。下载以及解压的命令如下:

root@ubuntu-15:~# wget http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
root@ubuntu-15:~# tar zxvf node-v0.12.4.tar.gz

步骤3: 开始安装

现在我们进入源代码的目录,然后运行.configure文件

NodeJS Configure

root@ubuntu-15:~# ls
node-v0.12.4 node-v0.12.4.tar.gz
root@ubuntu-15:~# cd node-v0.12.4/
root@ubuntu-15:~/node-v0.12.4# ./configure
root@ubuntu-15:~/node-v0.12.4# make install

安装后测试

只要运行一下上面的命令就顺利安装好了Node.JS,现在我们来确认一下版本信息和测试以下Node.JS是否可以运行输出。

root@ubuntu-15:~/node-v0.12.4# node -v
v0.12.4

Node.Js Test

创建一个以.js为扩展名的文件然后用Node的命令运行

root@ubuntu-15:~/node-v0.12.4# touch helo_test.js
root@ubuntu-15:~/node-v0.12.4# vim helo_test.js
console.log('Hello World');

现在我们用Node的命令运行文件

root@ubuntu-15:~/node-v0.12.4# node helo_test.js
Hello World

输出的结果证明我们已经成功的在Ubuntu 15.04安装好了Node.JS,同时我们也能运行JavaScript文件。

2) 利用包管理器安装Node.JS

在Ubuntu下用包管理器安装Node.JS是非常简单的,只要增加NodeSource的个人软件包档案(PPA)即可。

我们将下面通过PPA安装Node.JS。

步骤1: 用curl获取源代码

在我们用curl获取源代码之前,我们必须先升级操作系统,然后用curl命令获取NodeSource添加到本地仓库。

root@ubuntu-15:~#apt-get update
root@ubuntu-15:~# curl -sL https://deb.nodesource.com/setup | sudo bash -

curl将运行以下任务

## Installing the NodeSource Node.js 0.10 repo...
## Populating apt-get cache...
## Confirming "vivid" is supported...
## Adding the NodeSource signing key to your keyring...
## Creating apt sources list file for the NodeSource Node.js 0.10 repo...
## Running `apt-get update` for you...
Fetched 6,411 B in 5s (1,077 B/s)
Reading package lists... Done
## Run `apt-get install nodejs` (as root) to install Node.js 0.10 and npm

步骤2: 安装NodeJS和NPM

运行以上命令之后如果输出如上所示,我们可以用apt-get命令来安装NodeJS和NPM包。

root@ubuntu-15:~# apt-get install nodejs

NodeJS Install

步骤3: 安装一些必备的工具

通过以下命令来安装编译安装一些我们必需的本地插件。

root@ubuntu-15:~# apt-get install -y build-essential

通过Node.JS Shell来测试

测试Node.JS的步骤与之前使用源代码安装相似,通过以下node命令来确认Node.JS是否完全安装好:

root@ubuntu-15:~# node
> console.log('Node.js Installed Using Package Manager');
Node.js Installed Using Package Manager

root@ubuntu-15:~# node
> a = [1,2,3,4,5]
[ 1, 2, 3, 4, 5 ]
> typeof a
'object'
> 5 + 2
7
>
(^C again to quit)
>
root@ubuntu-15:~#

使用NodeJS应用进行简单的测试

REPL是一个Node.js的shell,任何有效的JavaScript代码都能在REPL下运行通过。所以让我们看看在Node.JS下的REPL是什么样子吧。

root@ubuntu-15:~# node
> var repl = require("repl");
undefined
> repl.start("> ");

Press Enter and it will show out put like this:
> { domain: null,
_events: {},
_maxListeners: 10,
useGlobal: false,
ignoreUndefined: false,
eval: [Function],
inputStream:
{ _connecting: false,
_handle:
{ fd: 0,
writeQueueSize: 0,
owner: [Circular],
onread: [Function: onread],
reading: true },
_readableState:
{ highWaterMark: 0,
buffer: [],
length: 0,
pipes: null,
...
...

以下是可以在REPL下使用的命令列表

REPL Manual

使用NodeJS的包管理器

NPM是一个提供给node脚本持续生命力的命令行工具,它能通过package.json来安装和管理依赖包。最开始从初始化命令init开始

root@ubuntu-15:~# npm init

NPM starting

3) 从Github远程库安装Node.JS

在这个方法中我们需要一些步骤来把Node.JS从Github的远程的仓库克隆到本地仓库目录

在开始克隆(clone)包到本地并且配制之前,我们要先安装以下依赖包

root@ubuntu-15:~# apt-get install g++ curl make libssl-dev apache2-utils git-core

现在我们开始用git命令克隆到本地并且转到配制目录

root@ubuntu-15:~# git clone git://github.com/ry/node.git
root@ubuntu-15:~# cd node/

Git Clone NodeJS

clone仓库之后,通过运行.config命令来编译生成完整的安装包。

root@ubuntu-15:~# ./configure

Configure Node

运行make install命令之后耐心等待几分钟,程序将会安装好Node.JS。

root@ubuntu-15:~/node# make install
root@ubuntu-15:~/node# node -v
v0.13.0-pre

测试Node.JS

root@ubuntu-15:~/node# node
> a = [1,2,3,4,5,6,7]
[ 1, 2, 3, 4, 5, 6, 7 ]
> typeof a
'object'
> 6 + 5
11
>
(^C again to quit)
>
root@ubuntu-15:~/node#

4) 通过NVM安装Node.JS

在最后一种方法中我们我们将用NVM来比较容易安装Node.JS。安装和配制Node.JS,这是最好的方法之一,它可以供我们选择要安装的版本。

在安装之前,请确认本机以前的安装包已经被卸载。

步骤1: 安装依赖包

首先升级Ubuntu Server系统,然后安装以下安装Node.JS和使用NVM所要依赖的包。用curl命令从git上下载NVM到本地仓库:

root@ubuntu-15:~# apt-get install build-essential libssl-dev
root@ubuntu-15:~# curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

NVM Curl

步骤2: 修改Home环境

用curl从NVM下载必需的包到用户的home目录之后,我们需要修改bash的配置文件添加NVM,之后只要重新登录中断或者用如下命令更新即可。

root@ubuntu-15:~# source ~/.profile

现在我们可以用NVM来设置默认的NVM的版本,或者用如下命令来指定之前版本:

root@ubuntu-15:~# nvm ls
root@ubuntu-15:~# nvm alias default 0.12.4

NVM Default

步骤3: 使用NVM

我们已经通过NVM成功的安装了Node.JS,所以我们现在可以使用各种有用的命令。

NVM Manual

总结

现在我们已经准备好了在服务端安装Node.JS,你可以从我们说的四种方式中选择最合适你的方式在最新的Ubuntu 15.04上来安装Node.JS,安装好之后你就可以利用Node.JS来编写你的代码。


via: http://linoxide.com/ubuntu-how-to/setup-node-js-ubuntu-15-04-different-methods/

作者:Kashif Siddique 译者:NearTan 校对:wxy

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

服务器管理员需要维护系统并保持更新和安全。每天需要运行大量的指令。有些系统进程会记录日志。这些日志不断更新。为了检查这些更新,需要重复地执行命令。比如,为了读取一个日志文件需要使用head、tail、cat等命令。这些命令需要重复地执行。而watch命令可以用于定期地执行一个命令。

Watch 命令

watch是一个简单的命令,只有几个选项。watch命令的基本语法是:

watch [-dhvt] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--no-title] [--version] <command>

watch命令默认每隔2秒执行后面参数给出的命令。这个时间根据的是命令执行结束到上次执行的间隔来算的。比如,watch命令可以用于监测日志更新,更新是在文件的后面追加新的内容,因此可以用tail命令来检测文件的更新(LCTT 译注:可以直接使用 tail -f 主动跟踪某个文件的更新,而不用使用 watch。)。这个命令会持续地运行直到你按下 CTRL + C回到提示符。

例子

每两秒监测 errors/notices/warning 生成的情况。

watch tail /var/log/messages

tail messages

按指定的时间间隔监测磁盘的使用率。

watch df -h

df -h

对磁盘管理员而言,关注高I/O等待导致的磁盘操作尤其是mysql事务是很重要的。

watch mysqladmin processlist

processlist

监测服务器负载和运行时间。

watch uptime

uptime

监测exim给用户发送通知的队列大小。

watch exim -bpc

exim -bpc

1) 指定延迟

watch [-n <seconds>] <command>

命令默认运行的时间间隔可用-n改变,下面的命令会在5秒后运行后面的命令:

watch -n 5 date

date 5 seconds

2) 连续输出比较

如果你使用-d选项,它会累次地高亮第一次和下一次命令之间输出的差别。

watch [-d or --differences[=cumulative]] <command>

例子 1,用下面的命令连续地输出时间并观察高亮出来的不同部分。

watch -n 15 -d date

第一次执行date的输出会被记录,15秒后会重复运行命令。

Difference A

在下一次执行时,可以看到输出除了被高亮的秒数从14到29之外其他的都一样。

Difference A

例子 2,让我们来体验一下两个连续的“uptime”命令输出的不同。

watch -n 20 -d uptime

uptime

现在列出了时间和3个负载快照之间的不同。

10b

3) 不带标题输出

如果你不希望显示更多关于延迟和实际命令的信息可以使用-t选项。

watch [-t | --no-title] <command>

让我们看下下面例子命令的输出:

watch -t date

watch without title

Watch 帮助

可以在ssh中输入下面的命令来得到watch的简要帮助。

watch -h [--help]

watch help

Watch 版本

在ssh终端中运行下面的命令来检查watch的版本。

watch -v [--version]

version

不足

不幸的是,在终端大小调整时,屏幕不能在下次运行前重画。所有用--difference高亮的内容也会在更新时丢失。

总结

watch对系统管理员而言是一个非常强大的工具,因为它可以用于监控、日志、运维、性能和系统运行时的吞吐量。人们可以非常简单地格式化和推延watch的输出。任何Linux命令/程序或脚本可以按照所需监测和连续输出。


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

作者:Aun Raza 译者:geekpi 校对:wxy

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