戴文的Linux内核专题：14 配置内核 (10)

Summary: 使用WiMAX协议的无线宽频设备可以启用这个(WiMAX Wireless Broadband support)。这个类型的无线连接通常需由服务供应商提供的连接服务才能工作(这与3G/4G的概念相同)。WiMAX代表"Worldwide Interoperability for Mic ...

# 戴文的Linux内核专题：14 配置内核 (10)

使用WiMAX协议的无线宽频设备可以启用这个(WiMAX Wireless Broadband support)。这个类型的无线连接通常需由服务供应商提供的连接服务才能工作(这与3G/4G的概念相同)。WiMAX代表"Worldwide Interoperability for Microwave Access"(微波存取全球互通)。WiMAX的目的是代替DSL。宽频指的是宽的带宽和大量信号的传输。

射频开关被用于许多Wifi和蓝牙卡中(RF switch subsystem support)。"RF"代表"Radio Frequency"。RF开关路由高频信号。

RF开关输入支持同样也在内核中支持(RF switch input support)。

内核可以控制并请求无线传输(Generic rfkill regulator driver)。启用这个生成一个设备文件(/dev/rfkill)。这个设备文件作为无线设备的接口。

Linux内核支持9P2000协议(Plan 9 Resource Sharing Support (9P2000))。这个网络协议有时称作Styx。Plan 9的窗口系统(Rio)的Styx和Linux的X11都使用Unix网络套接字。Linux系统可能使用Styx在Styx网络中。Plan 9和Linux可以在一个网络中使用Styx

"9P Virtio Transport"(9P 虚拟io传输)系统提供了在虚拟系统上客户机和主机分区间的传输。

内核同样支持RDMA传输(9P RDMA Transport (Experimental))。RDMA代表的是"Remote Direct Memory Access"(远程内存直接访问)。这个Plan9上访问远程计算机内存的协议。

9P系统与其他内核组件一样有调试特性(Debug information)。

"CAIF support"支持同样可以在内核中启用。CAIF代表" Communication CPU to Application CPU Interface"(通信CPU到应用CPU接口)。这是一个使用数据包的多路复用(MUX)协议并被用于ST-Ericsson(意法爱立信)调制解调器中。ST-Ericsson是开发这个协议的公司(是的，MeeGo和Android是Linux系统，并且我正在讨论Google的Andorid)。MUX协议就是多路复用(multiplexing)协议。多路复用在前面的文章中已经提到过。

下面，cephlib可以加入内核，它可以用于rados块设备(rbd)h和Ceph文件系统(Ceph核心库)(译注：Ceph是一种分布式文件系统)。cephlib是是Ceph的完整核心库。Ceph是存储平台。CephFs(Ceph文件系统)是运行在另外一个文件系统的顶部。通常，CephFs运行在EXT2、ZFS、XFS或者BTRFS上面。Rados设备是使用CephFs的块存储单元。

ceph的调试特性会损害内核性能，所以只在需要的时候启用(Include file:line in ceph debug output)。 当启用这个选项(Use in-kernel support for DNS lookup)，CONFIG*DNS*RESOLVER设施会执行DNS查询。

近场通信(Near Field Communication (NFC))设备在Linux内核中也被支持(NFC subsystem support)。

如果上面的特性被启用，那么NFC控制器接口(NFC Controller Interface (NCI))也应该启用(NCI protocol support)。这允许主机和NFC控制器相互通信。

NFC要处理HCI帧需要启用下面一个特性(NFC HCI implementation)。

一些HCI驱动需要一个SHDLC链路层(SHDLC link layer)(SHDLC link layer for HCI based NFC drivers)。SHDLC是检测完整性和管理HCI帧顺序的协议。

如果NFC特性启用了，那么通常也启用"NFC LLCP support"(就像上面那样)。

接下来有一些为特别的NFC设备的驱动。第一个是"NXP PN533 USB driver"。

下一个NFC驱动支持TI的BT/FM/GPS/NFC设备(Texas Instruments NFC WiLink driver)。

下面的是"NXP PN544 NFC driver"。

对于Inside Secure(译注：法国一家非接触半导体芯片厂商)生产的microread NFC芯片驱动同样在内核中支持(Inside Secure microread NFC driver)。

现在，我们将继续配置与网络无关的驱动。首先我们可以选择uevent帮助程序的路径(path to uevent helper)。如今许多计算机不在需要这个特性因为一个uevent帮助程序会在每次执行时fork一个进程处理。这回很快地消耗资源。

在启动时，内核会创建一个tmpfs/ramfs 文件系统(Maintain a devtmpfs filesystem to mount at /dev)。这个提供了完整的/dev目录系统。在这两个文件系统中(tmpfs和ramfs)，ramfs两者中最简单。"tmpfs"代表"temporary filesystem"(临时文件系统)，而"ramfs"代表"ram filesystem"(内存文件系统)。

下一个设置是devtmpfs文件系统的代码，它同样挂载在/dev下(Automount devtmpfs at /dev, after the kernel mounted the rootfs)。

下面的特性允许模块加载到用户空间(Userspace firmware loading support)。

为了"Include in-kernel firmware blobs in kernel binary"(译注：将固件编译进内核)(这会增加专有固件到内核中)，就启用这个特性。

一些二进制专有驱动需要在启动时使用。这个特性允许这类软件这么做(External firmware blobs to build into the kernel binary)。一些计算机有些引导设备需要只包含专有二进制文件的特殊固件。这个特性不启用，系统将无法引导。

启用"Fallback user-helper invocation for firmware loading"，允许user-helper(用户助手) (udev)作为内核加载固件驱动失败的后备手段加载固件。udev可以加载驻留在非标准路径的固件。

管理驱动的不跟内核如果被允许就可以生成调试信息(Driver Core verbose debug messages)。

下一步，如果启用这个特性(Managed device resources verbose debug messages)，devres.log文件就可以使用。这是一个用于设备资源的调试系统。

下面一个特性会通过netlink套接字生成一条用户空间和内核空间的连接(Connector - unified userspace kernelspace linker)。这个套接字使用netlink协议。这是另外一个Linux系统即使在没有物理网络情况下仍需要网络特性的例子。

用户空间可以通过套接字得到进城时间的通知(Report process events to userspace)。一些报告事件包含了ID改变、fork、和退出状态。一些先前启用的内核特性可能需要这个。最好按配置工具建议的那样设置。

使用固态硬盘的系统需要MTD的支持(Memory Technology Device (MTD) support)。MTD设备是固态存储设备。典型的存储设备与固态硬盘(SSD)不同。用于磁盘单元的标准常规不适用于SSD(读、写、擦除)。

大多数会桌面电脑带有并口(一个有25个洞的连接器)，所以他们需要这个特性(Parallel port support)。并口在其他许多鲜为人知的应用中通常用于打印机和ZIP驱动器。并口有25针。

对IBM兼容计算机启用这个特性(PC-style hardware)。它们是不同类型的计算机。除了IBM计算机(通常运行Windows),还有苹果计算机。Linxu可以运行在几乎所有类型的计算机上。

Linux同样支持Multi-IO PCI卡(Multi-IO cards (parallel and serial))。Multi-IO PCI卡同时拥有并口和串口。串口每次发送或接收1位数据。

下一个特性允许内核"Use FIFO/DMA if available"。这用于特定的并口卡来加速打印。FIFO代表"First In, First Out"(先入先出)。DMA是先前提过的直接内存访问(Direct Memory Access)。

下面一个特性用于探测Super-IO卡(SuperIO chipset support)。这些探针会发信中断号、DMA通道和其他类型设备的地址/数量。Super-IO是一种集成IO控制器类型。

PCMCIA的并口支持可以启用(Support for PCMCIA management for PC-style ports)。

注意：对于许多特性来说，你最好按照配置工具的建议除非你有特别的理由不这么做。通常地，如果你是交叉编译或者编译一个通用内核，那么你应该熟悉你想要支持的并做出相应的选择。

在AX88796网络控制器的并口需要这个支持(AX88796 Parallel Port)。

"IEEE 1284 transfer modes"在并口上支持增强型并口(Enhanced Parallel Port (EPP))和增强功能口(Enhanced Capability Port (ECP))并支持打印机状态回读。状态回读是检索打印机的状态。

即插即用("Plug and Play support" (PnP))应该启用。这允许用户在系统开机状态下插入设备并能马上使用它们。没有这个特性，用户不能使用USB设备、打印机或者其他没有执行特殊任务的设备。系统会自动管理复位(译注：原文是 "The system will manage the rest automatically")。

下面，用户可以启用块设备(Block devices)。这是一个应该启用的特性，因为块设备很常见。

软驱也是可以启用的块设备(Normal floppy disk support)。

连接到并口的IDE设备也同样支持(Parallel port IDE device support)。一些外部CD-ROM设备也能通过并口连接。

外部IDE存储设备单元同样可以连接到并口(Parallel port IDE disks)。

连接到并口的ATA包接口(ATA Packet Interface (ATAPI)) CD-ROM需要这个驱动(Parallel port ATAPI CD-ROMs)。ATAPI是用于并行ATA(PATA)设备的ATA协议扩展。

还有一个ATAPI磁盘设备可以插到并口中(Parallel port ATAPI disks)。这个驱动会除了支持CD-ROM外还支持其他类型的磁盘。

内核同样支持通过并口连接ATAPI磁带设备(Parallel port ATAPI tapes)。

还有许多其他的ATAPI设备可以连接到并口中。结果就是，一个通用驱动被用于管理前面提到过的驱动不支持的设备(Parallel port generic ATAPI devices)。

连接到并口上的IDE设备需要一个特殊的协议用于通信。有很多这样的协议，其中一个是"ATEN EH-100 protocol"。

一个可选的用于并行IDE设备的协议是"MicroSolutions backpack (Series 5) protocol"。

这里仍有另外一个并口IDE设备协议(DataStor Commuter protocol)和另一个(DataStor EP-2000 protocol)还有(FIT TD-2000 protocol)。

再提一次，这里有另外一个协议，但是这个强烈建议用在更新的插在并口上的CD-ROM和PD/CD设备(FIT TD-3000 protocol)。

下面的协议主要用于SyQuest、Avatar、Imation和HP生产的并口设备(Shuttle EPAT/EPEZ protocol)。

Imation SuperDisks需要Shuttle EP1284芯片的支持(Support c7/c8 chips)。

一些其他的并行IDE协议可以启用，包括：

* Shuttle EPIA protocol
* Freecom IQ ASIC-2 protocol - (用于Maxell Superdisks)
* FreeCom power protocol
* KingByte KBIC-951A/971A protocols
* KT PHd protocol - (用于2.5英寸外置并口硬盘)
* OnSpec 90c20 protocol
* OnSpec 90c26 protocol

注意：这些协议以及支持的插入并口的设备意味着这些都类似于热插拔设备,就像USB设备插入USB端口一样。USB和火线人仍旧是使用最流行的端口,因为它们的大小和速度。一个并口设备单元大于USB闪存因为并口大于USB端口。

下一步,我们有一个对于Micron PCIe的SSD驱动(Block Device Driver for Micron PCIe SSDs)。

你可能已经猜到了- 下面的文章会讨论更多的配置.

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-10.4613/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：15 配置内核 (11)

Summary:
准备好配置更多的驱动了么？还有很多要做。
Linux支持两种不同的康柏智能阵列控制器：(Compaq SMART2 support)和(Compaq Smart Array 5xxx support)。阵列控制器是将物理存储单元表现为逻辑单元的设备。这些控制可能 ...

# 戴文的Linux内核专题：15 配置内核 (11)

准备好配置更多的驱动了么？还有很多要做。

Linux支持两种不同的康柏智能阵列控制器：(Compaq SMART2 support)和(Compaq Smart Array 5xxx support)。阵列控制器是将物理存储单元表现为逻辑单元的设备。这些控制可能同样实现了基于硬件的RAID。硬件和软件RIAD的不同是简单的。Linux管理并见到软件RIAD。Linux将硬件RAID视为另外的存储单元。这意味着Linux没有意识到设备就是RAID驱动器。硬件(阵列控制器)独立于内核管理着RAID系统。这对于系统的性能更好因为内核不必配置或者管理RAID。注意，不同的阵列控制器有不同的RAID能力。

上面提到的阵列控制器可以通过这个驱动访问SCSI磁带(SCSI tape drive support for Smart Array 5xxx)。SCSI磁带是使用SCSI协议的磁带机。

PCI RAID控制器Mylex DAC960、AcceleRAID和eXtremeRAID在这个驱动中支持(Mylex DAC960/DAC1100 PCI RAID Controller support)。PCI RAID控制器是一个连接到PCI卡的阵列控制器。RAID控制器是拥有RAID功能的阵列控制器。

带电源备份的MM5415内存芯片在这个驱动中支持(Micro Memory MM5415 Battery Backed RAM support)。带后备电源内存芯片允许数据在切断电源后继续保存在内存设备中。这有助于保护数据。不然，当电源断开后，当前的计算机会话就会丢失。

当启用这个特性后，可以将典型的文件(比如ISO文件)作为一个块设备并挂载它Loopback device support)。这对于从镜像文件中检索文件而不必把文件烧录到光盘或者解压出来。想像一下你从因特网上得到了一份包含了很多文件的ISO文件。如果你只需要包中的一个文件并且用户不希望烧写ISO到光盘上或者不想知道如何打开一个ISO文件。用户可以用挂载ISO来替代。

Linux内核在初始化阶段会创建一些回路设备，所以一些回环设备已经准备好并创建了(Number of loop devices to pre-create at init time)。当一个文件(像ISO)或者虚拟设备(就像虚拟磁盘驱动器[vhd])被作为回环设备挂载时会节约一些时间。这个设定允许开发者选择内核可以预 创建多少回环设备。

当"Cryptoloop Support"启用后就可以CryptoAPI创建密码。这个用于硬件驱动器加密。然而，并不是所有的文件系统都支持。

下面用户可以启用"DRBD Distributed Replicated Block Device support"(译注：Linux上的分布存储系统)。这个就像网络RAID1。这些设备拥有设备文件/dev/drbdx。这些设备通常被用于集群，这里集群中的每台计算机都有一个从主单元镜像过来的存储单元。这意味着每台计算机的硬盘是位于组中心计算机硬盘的镜像拷贝。集群是一组计算机扮演着一台大型强力单元的角色。然而，每个集群都有一台控制计算机称为主节点。余下的计算机是从节点。

DRBD支持用于测试IO错误处理的故障注射(DRBD fault injection)。记住，故障注射就是使设备/软件认为发生了一个错误，因此开发者可以测试硬件/软件如何处理错误

如果内核要成为网络块设备的客户端，那么启用这个特性(Network block device support)。第一个设备文件是/dev/nd0。网络块设备是通过网络访问的远程存储单元。

直接连接SSD到PCI或者PCIe需要这个驱动(NVM Express block device)。

用这个特性允许将单独的SCSI OSD(object-based storage,基于对象的存储)对象作为块设备(OSD object-as-blkdev support)。

下一个驱动是"Promise SATA SX8 support"。这个驱动用于Promise公司(Promise Technology Inc.)生产的SATA控制器。

Linux允许将一部分内存作为块设备(RAM block device support)。这通常见与完全运行于内存上的Linux的live发行版。Linux的live发行版会卸载光盘并接着加载到内存中，所以在尝试一个新的操作系统或者修复另一个系统时不会伤害到已安装的系统。

下一个选项允许用户输入"Default number of RAM disks"(默认RAM磁盘数量)。

"Default RAM disk size"(默认RAM磁盘大小)可以以KB设置大小。

内核可以支持在内存设备的XIP文件系统作为块设备(Support XIP filesystems on RAM block device)。这个特性会增大内核的大小。 XIP (eXecute In Place)文件系统是一个允许可执行文件在相同的文件系统上存储数据而不必像其他应用一样利用内存。在一个驻留在内存上的live版linux系统上运行可执行文件时需要这个文件系统。

下面，内核可以支持"Packet writing on CD/DVD media"。(CD/DVD刻录机支持.)

内核开发者可以设置最大活跃并发包数量(Free buffers for data gathering)。大的数字会以内存的消耗为代价加速写入性能。一个包会消耗大约64KB。

Linux内核可以使用可擦写光盘作为缓存空间(Enable write caching)。这个特性仍然是试验性质。

下面的特性允许通过以太网线缆使用ATA规范(ATA over Ethernet support)。

下面的驱动允许虚拟块设备创建为virtio(Virtio block driver)。virtio是IO虚拟化平台。

一些非常老的硬盘还要一个特殊的驱动(Very old hard disk (MFM/RLL/IDE) driver)。

这里有一个驱动用于先前提到的Rados设备(Rados block device (RBD))。

下面是一个特殊的设备驱动(IBM FlashSystem 70/80 PCIe SSD Device Driver)。

现在，我们可以进入杂项设备。第一个设定是启用/禁用电位器(Analog Devices Digital Potentiometers )。

如果电位器在I2C总线上，那么就启用这个(support I2C bus connection)。

如果电位器是连接到SPI总线，那么需要这个驱动(support SPI bus connection)。

注意:Linux内核支持很多传感器因为Linux内核经常用于天气设备和机器人。

这个驱动用于IBM RSA(Condor)服务处理器(Device driver for IBM RSA service processor)。

内核同样支持PCI Sensable PHANToM设备驱动(Sensable PHANToM (PCI))。

这个驱动指引不同来自并行追踪接口(Parallel Trace Interface (PTI))的追踪数据发往Intel Penwell PTI口 (Parallel Trace Interface for MIPI P1149.7 cJTAG standard)。这个被指领的数据用于调试目的。

一些带有IOC4芯片的SGI IO控制器需要这个驱动(SGI IOC4 Base IO support)。SGI IO是由SCI管理的输入/输出设备。IOC4芯片控制着许多由这些设备执行的任务。这是一个基础驱动。其他对这些设备的驱动依赖于这个驱动。

这里有很少的TI闪存媒体适配器驱动在Linux内核中，(TI Flash Media interface support) 和(TI Flash Media PCI74xx/PCI76xx host adapter support)。

这个驱动("Integrated Circuits ICS932S401")用于ICS932S401时钟控制芯片。

Atmel同步串行通信外设(Synchronized Serial Communication peripheral (SSC))有一个驱动在内核中(Device driver for Atmel SSC peripheral)。这个设备提供点对点的设备间的串行连接。

"Enclosure Services"特性支持硬盘托架。

这是对于CS5535/CS5536芯片的定时器驱动(CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support)。

这个驱动让应用可以与HP工业标准服务器中的iLO管理处理器通信(Channel interface driver for the HP iLO processor)。"iLO"代表的是"Integrity Integrated Lights-Out".iLO允许远程服务器管理。

Linux内核支持ALS APDS9802光敏传感器(Medfield Avago APDS9802 ALS Sensor module)。一些其他支持的传感器包括：

* Intersil ISL29003 ambient light sensor
* Intersil ISL29020 ambient light sensor
* Taos TSL2550 ambient light sensor
* ROHM BH1780GLI ambient light sensor
* BH1770GLC / SFH7770 combined ALS - Proximity sensor
* APDS990X combined als and proximity sensors

注意：如果内核是为广泛的计算机编译的话，大多数驱动应该以模块形式加入。

Linux甚至可以使用"Honeywell HMC6352 compass"(一种电子罗盘)。

内核同样支持"Dallas DS1682 Total Elapsed Time Recorder with Alarm"。(一种运行时间记录仪)

16位的数模转换器通过这个驱动支持(Texas Instruments DAC7512)。

"VMware Balloon Driver"将客户机操作系统不需要的物理内存页交给需要那些需要的。

这里有两个不同的压力传感器(BMP085 digital pressure sensor on I2C) 和 (BMP085 digital pressure sensor on SPI)。

Intel输入/输出集线器(Intel Input/Output Hub (IOH))同样在内核中支持(Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB)。具体地说，这个是Intel Topcliff芯片组的PCH PHUB(Platform Controller Hub Packet Hub)

"FSA9480 USB Switch"是检测设备何时插入的检测器。

下一个选项允许比特流配置(Lattice ECP3 FPGA bitstream configuration via SPI)。

Silicon微控制器使用Silicon实验室C2端口，这需要一个特殊的驱动(Silicon Labs C2 port support)。

再说一次，继续留意下一篇文章因为我们还有更多的要做。

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-11.4640/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary:
几个月以前，Debian开发者发布了《The Debian Administrator's Handbook》，这本便于阅读、组织良好的书深入展现了Debian的内部。
本书最初发布的版本现在已经更新至Debian 7 Wheezy，改名为《The Debian Administra ...

# 厚达500页的《The Debian Administrator's Handbook》更新至Debian 7

几个月以前，Debian开发者[发布](http://iloveubuntu.net/debian-administrator%E2%80%99s-handbook-available-both-payed-and-free-ebook-epub-mobi-pdf)了《The Debian Administrator's Handbook》，这本便于阅读、组织良好的书深入展现了Debian的内部。

本书最初发布的版本现在已经[更新](http://debian-handbook.info/2013/major-update-of-the-debian-administrators-handbook-for-debian-7-wheezy/)至Debian 7 Wheezy，改名为《**The Debian Administrator's Handbook, Debian Wheezy from Discovery to Mastery**》，新书根据目前现状重新整理了Debian的知识点，并明显增加了手册知识点数量。

《The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery》是该手册的第一次重大更新，这次更新距第一次发布已经超过了一年时间，因此，推荐给已经熟悉Debian，并希望提升Debian知识的用户们。

>
> “我们高兴的宣布《The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery》发布了。这是自第一版书（2012年5月）发布后的第一次重大更新。我们更新了所有的章节来介绍Debian 7的改变。我们还删除了一些已经不再适用的过时内容。当然我们也增加了新的东西（如关于 multi-arch的部分），并修正了读者反馈的16个错误。”
>
>
>

什么是Debian？安装方法、二进制包的结构、软件包的结构、稳定软件库、性能和apt-get命令、配置和编程、通过ADSL连接、数据库、编译内核、RAID和LVM、图形化桌面、创建Debian包等，全部涵盖在了《The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery》的498页内容中。

<img src="content_image/album_201401_21_095502mugznz22rc6onu5w.png" alt="" title="">

《The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery》可以免费下载（498页，[PDF](http://debian-handbook.info/download/stable/debian-handbook.pdf)，[EPUB](http://debian-handbook.info/download/stable/debian-handbook.epub)，[MOBI](http://debian-handbook.info/download/stable/debian-handbook.mobi)）。

对于喜欢印刷版书籍的朋友，《The Debian Administrator’s Handbook, Debian Wheezy from Discovery to Mastery》可以通过以下方式购买<http://debian-handbook.info/get/>

---

via: <http://iloveubuntu.net/debian-administrator%E2%80%99s-handbook-updated-debian-7-wheezy-published-and-freely-available-download>

译者：[乌龙茶](https://github.com/yechunxiao19) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


淺談Raid Cache Memory上應用的問題和實踐

Summary:
作者：Michael Zhang
 $1, Raid和Cache Memory
通常，出於二個目標：安全和性能，我們在生產環境的服務器上會設置Raid功能。最常見的場景是，我們會由於安全性的考慮將磁盤設置成Raid 1 或Raid 5、Raid6等模式保障在 ...

# 淺談Raid Cache Memory上應用的問題和實踐

### $1, Raid和Cache Memory

通常，出於二個目標：安全和性能，我們在生產環境的服務器上會設置Raid功能。最常見的場景是，我們會由於安全性的考慮將磁盤設置成Raid 1 或Raid 5、Raid6等模式保障在一塊或多塊硬盤故障時數據不丟失。或者是由於Dis IO性能上的考慮將硬盤設置成Raid 0或Raid 10來擴展有限的IO。

無論DELL/HP/IBM等服務器廠商，都會OEM一些Raid控制器在實現Raid功能，而為了保障和提升讀寫性能，Raid控制卡裏都會內置128MB 至 1GB不等的Cache Memory，而我們對磁盤的讀和寫操作都會通過事先在Cache Memory中Hit或緩存，這樣一來就可以大大提高了實際IO性能。

OS也認為只要讀或寫到Cache Memory以後即算操作成功，而Cache Memory中的數據如何Flush到物理磁盤中的Policy控制則由Raid控制器來解決。這種通過寫入Cache Memory的Policy我們稱為WriteBack，而如果不通過Cache Memory直接寫入磁盤的Policy我們稱為WriteThrough。

任何一條數據寫入Memory和寫入磁盤的性能差別之巨大，不用比較都可想像得到是天壤之別。特別是當我們遇到MySQL等數據庫或其他IO要求壓力非常大的環境，這是我們實際生產環境中不得不要考慮的因素。

### $2, BBU,TBBU在實際應用中的問題和運維

什麼是BBU/TBBU呢？其實BBU就是Raid卡中的一個電池備用模塊，因為之前我們說到在Raid的環境下很多情況下數據都是通過Cache Memory和磁盤交換的，而Memory本身並無法保障數據持久性，萬一電源中斷，而數據沒來得及flush到物理磁盤上，就會造成數據丟失的悲劇。為此硬件廠商提供了BBU和TBBU，其中包含了一塊鋰電池來保障萬一電源中斷的情況下，Cache Memory中的數據不至於丟失，直至電源恢復。TBBU的不同區別是Cache Memory和電池是做成一個模塊，以防止Raid控制器如果硬件故障的時候，在更換Raid控制卡過程中可以不更換TBBU及其中的Cache Memory，防止這一過程中的數據不丟失。

就是這麼樣的一個模塊，如圖：

    正是由於使用電池做為持續Memory是數據的可靠性，而存在一個尷尬的隱患。以目前的技術水平，電池是不可以長期不充放電的，否則會造成電池損壞而無法起到保護數據的特性。所以Raid卡廠商在設計BBU/TBBU中加入了一個自動充放電的維護過程，每過一段時間（通常是數個月左右）會自動對電池放電，然後再自動充電，以保證電池的可用性。

而在電池放電的時候，出於數據安全性的考慮，Cache Policy默認從WriteBack改成WriteThrough。這段時間會持續數小時或更久，IO性能會因此大幅下降，如果正好這個時間你有數據庫或其他大量IO壓力的服務，性能會急劇下降，如果系統沒有足夠的Capacity的話，嚴重的話會導致服務可用性的賁潰。

為了防止出現這種情況，通常業內大家會使用各種想法：

a) 給系統留出足夠的Capacity，即使WriteThrough的時候也可以保障服務的性能是可接受的

b) 自動或半自動的地設定在系統負載最低的時候提前去觸發電池的充放電過程

c) 將Cache Policy設置為CachedBadBBU，也就是即使在充放電過程中，還是使用寫入Cache的WriteBack，而不是默認的WriteThrough，這存在的風險是這一過程中的服務器電源中斷會造成數據丟失，這不是一個最安全的選擇，但如果業務上可以接受這個風險，如果Data Center的供電足夠安全，如果服務器有冗餘的電源的話，未必不是一個好的選擇。

d) 當A服務器發生這一情況時能自動或半自動地切換到Backup的節點上，必竟二臺服務器同時發生這一自動維護過程是不太可能的，但同一批次的服務器是有可能的，並且這可以從時間和過程中去人工調節。

e) 從軟件、業務程序上來保障對數據持久性或一致性的取捨。

目前國內大家常用的DELL和HP服務器多數都已經集成了LSI公司的Raid控制器，以上的這些狀態和Policy的調整在Linux中都可以通過其MegaCLI工具包操作：

### $3, ZMCP,CacheCade技術的原理和應用

單從硬件運維角度來看，BBU和TBBU帶來的Cache Policy問題如果在幾百臺或上千臺服務器環境下維護將會是一個非常繁瑣的過程，除非從軟件上來對安全性和數據一致性的取捨。

所以新的一代的Raid控制器出現了另一種選擇。其中Adaptec公司提供了ZMCP模塊，而LSI公司提供了CacheCade的軟件支持。

ZMCP就是Zero-Maintenance Cache Protection的意思，在支持ZMCP的Raid控制器上加裝一個ZMCP模塊將不再依賴電池對Cache Memory的保護，而是通過SLC的Flash NAND和電容來保證在電力中斷時數據的可靠性：

而LSI的CacheCade是一個軟件的License，可以支持通過SSD來持久化Cache Memory，而不是通過不能持久化的Memory。優點是可以讓Cache Memory更大，並缺點也顯而易見。

從性能上的測試來看明顯ZMCP會占有優勢，但同時也是成本上的劣勢。而且無論是哪種新的技術都暫時性地會帶來相對BBU/TBBU技術的成本增加，出於成本上的考慮，所以目前大部分DELL/HP服務器依舊會OEM原有的方案。

但是從更專業的業務環境下去定制的服務器上，在軟件、性能、硬件等方面做更合適自己的取舎將是給每個人更自由的選擇範圍。在此希望我在實踐和看到的information希望能給到大家有益的幫助。

### $4, 引用和參考資料

* Dell™ PowerEdge™ 可扩充 RAID 控制器 5/i 和 5/E 用户指南
<ftp://ftp.dell.com/Manuals/all-products/esuprt_ser_stor_net/esuprt_dell_adapters/poweredge-rc-5i_User's%20Guide_zh-cn.pdf>
* Dell h700 adaptor vs integrated 的分別
<http://www.hkepc.com/forum/viewthread.php?tid=1681179>
* 零维护缓存保护 Zero-Maintenance Cache Protection
<http://www.adaptec.com/nr/pdfs/cn-ZMCP_wp.pdf>
* LSI® MegaRAID® CacheCade™ Pro 2.0 Read/Write Caching Software
<http://www.lsi.com/downloads/Public/Advanced%20Software/LSI%20MegaRAID%20CacheCade%20Software/CacheCadePro2_PB.pdf>


2013：Linux的黄金之年-十大杰出成就

Summary:
2013年已经过去。这一年见证了许多里程碑事件，使得2013年可以称得上是一个Linux的黄金之年。其中一些成果在FOSS和Linux世界更可以称得上是举世瞩目的成就。

1.Android的上升趋势
2013年，Android手机达到了每日150 ...

# 2013：Linux的黄金之年-十大杰出成就

**2013年**已经过去。这一年见证了许多里程碑事件，使得2013年可以称得上是一个**Linux的黄金之年**。其中一些成果在**FOSS**和**Linux**世界更可以称得上是举世瞩目的成就。

<img src="content_image/album_201401_23_2309348eye8yacksece6zp.jpg" alt="2013 Year of Linux" title="2013 Year of Linux">

### 1.Android的上升趋势

2013年，Android手机达到了每日**150万**的激活量记录。不用说，正是Android的**Linux内核**以及它在该方面的狂热贡献使其达到了今天的标杆地位，这一趋势还将在未来的日子里一直持续下去。

### 2. Raspberry pi 树莓派

**Raspberry pi**，低成本单片计算机历史上的最伟大发明之一。它在学校和其他很多地方极大地推广了Linux，同时在FOSS社区中也有很高的欢迎程度，这一状况也仍将继续。

### 3. Debian上太空

Debian，众多优秀Linux发行版中的其中一款高端发行版。2013年三月下旬的一次**航天飞机**任务中就使用了Debian负责实验的控制。实验的主要内容是尝试无土植物栽培的新方法，从而为宇航员提供空气和食物。

### 4. SteamOS的崛起

SteamOS，基于Debian发行版，用于**Stream Machine Game Console游戏终端**，已经于**2013年12月**中旬发布。GNU/Linux开始涉足于游戏环境，这对广大宅男极客来说当然是喜闻乐见喜大普奔。

### 5. Linux的平板应用

查看**亚马逊**的平板销量，排名前十的平板都是Android操作系统。苹果和微软的平板则排在第11和12位，远远地被抛在后面，这对于FOSS社区来说确实是一个振奋人心的消息。

### 6. Chromebooks

Chromebooks之所以能在笔记本电脑市场赢得一席之地，是由于比起微软等专属平台，诸如三星，华硕等许多高端制造商给了GNU/Linux类操作系统更多的空间。

### 7. The Firefox OS 火狐操作系统

Firefox OS是基于Linux和FOSS的开源操作系统，主要用于智能手机和平板，发布于**2013年4月**下旬。基于**ARM**构架的移动设备Linux发行版显示出了广阔的前景。

### 8. Kali发布

来自BackTrack Linux的开发者发布了**Kali Linux**。Kali是是基于Debian的Linux发行版，其母系统或者说其前身(BT Linux)，主要用于渗透测试，并分享了大量的Debian版本库，成为了最为丰富的一个发行版。Kail仍保持着在刚发布后的很短时间内超高下载量的记录。

### 9. Android Kitkat

尽管之前预测的发布版本是**5.0 Key Lime Pie**，经过万众期待后，最新发布的android版本被命名为**Kitkat**，Google宣布**Android 4.4**又名**KitKat 4于2013年9月发布**。Kitkat进行了优化更新，能在具有最小的**512 MB内存**的设备上运行，这样就能够支持众多各种各样的设备。

### 10. Linux 在汽车上的应用

截至目前，Linux被应用于各种设备，从腕表到遥控器，再到太空飞船，所以**Linux在汽车上的应用**并不让人意外。但当Linux的作用表现在**汽车趋势杂志**的年度车上时仍然令人惊讶。2013年被选为优胜候选的两个车型，都运行Linux系统。

2013年已经过去，但故事远没有结束，我们可能错过了一些重要的里程碑，你可以在评论部分告诉我们。2014年，未来，还在继续……

---

via: <http://www.tecmint.com/2013-the-golden-year-for-linux-and-foss/>

译者：[乌龙茶](https://github.com/yechunxiao19) 校对：[Mr小眼儿](http://blog.csdn.net/tinyeyeser)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linus Torvalds坦言所有CLA都不够完美，Canonical有话说

Summary:
一场关于 Canonical 公司的贡献者许可协议的争论已经持续了好几天，现在连 Linus Torvalds 也加入这场论战了，呃，这次他比较心平气和了一点。

贡献者许可协议（CLA）允许你的软件贡献者（比如 Canonical，Apache   ...

# Linus Torvalds坦言所有CLA都不够完美，Canonical有话说

**一场关于 Canonical 公司的贡献者许可协议的争论已经持续了好几天，现在连 Linus Torvalds 也加入这场论战了，呃，这次他比较心平气和了一点。**

<img src="content_image/album_201401_23_232441i9aqs740ttkkqx6x.jpg" alt="" title="">

贡献者许可协议（CLA）允许你的软件贡献者（比如 Canonical，Apache 以及其他贡献者）在这个应用需要保护的方面提供法律保护，比如版权。

到了 Canonical 宣布使用 CLA，事情就变得有点耐人寻味了。Canonical 是一家商业公司，为了生存下去，它得赚钱，并且它的目标绝不仅仅是发行 Ubuntu 操作系统，它需要盈利。于是乎，Canonical 公司利用 CLA 将一些软件通过私有许可发行出来。（2011年7月份，Canonical 开始让贡献者签署一份 CLA 文件，文件表示贡献者可以保留自己的版权，同时要授权 Canonical 公司可以改变贡献者的许可协议 —— 译者注。）

>
> “公平地说，人们只是讨厌 Canonical。那些 FSF 和 Apache 基金会的 CLA 也是这副德行。他们只是没有因为修改许可协议而受到非议，但是这些版权转换工作最终将会消灭整个社区。”
>
>
> “基本上，在 CLA 下你不可能获得像 Linux 内核一样那么多的随机驱动补丁。因此不管多少人想试水 CLA，不管改不改这个协议，都一样，所有 CLA 都有本质上的缺陷，”Linus Torvals 在 Google+ 上面发帖说道。
>
>
>

Ubuntu 社区经理 Jono Bacon 解释为什么 Canonical 的 CLA 会走这条道，以及它不能给那些想为项目作贡献的人设置障碍的原因。

>
> “这些都是社区贡献的问题。社区一直存在很多问题：开发语言的选择、VCS、管理方式、社区讨论的口音、如何决定方案、如何回顾分支、bug 管理、CI 工作流程以及其他无数问题。CLA 仅仅是其中一个。有人欢喜，有人讨厌，萝卜青菜各有所爱罢了。”
>
>
> “我不认为 Canonical 在 CLA 方面表现得不够诚意，也不关心为什么它会认为它的 CLA 方案很有必要。Canonical 在人们印象中是完美无瑕的吗？不见得。那它危险吗？它虚伪吗？当然不。”Jono Bacon 说道。
>
>
>

---

via: <http://news.softpedia.com/news/Linus-Torvalds-Says-All-Contributor-License-Agreements-Are-Broken-418978.shtml>

译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux id 命令 - 显示用户id和组id信息

Summary:
要登入一台计算机，我们需要一个用户名。用户名是一个可以被计算机识别的身份。基于此，计算机会对使用这个用户名的登陆的人应用一系列的规则。在Linux系统下，我们可以使用 id 命令。

什么是 id 命令
id 命令可以  ...

# Linux id 命令 - 显示用户id和组id信息

要登入一台计算机，我们需要一个用户名。用户名是一个可以被计算机识别的身份。基于此，计算机会对使用这个用户名的登陆的人应用一系列的规则。在Linux系统下，我们可以使用 **id** 命令。

### 什么是 id 命令

**id** 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID)。UID 是对一个用户的单一身份标识。组 ID（GID）则对应多个UID。

### 如何使用 id 命令

**id** 命令已经默认预装在大多数 Linux 系统中。要使用它，只需要在你的控制台输入id。不带选项输入 id 会显示如下。结果会使用活跃用户。

$ id

#### 如何读取输出:

* 用户 **pungki** 的 **UID** 号码= **1000**, **GID** 号码= **1000**
* 用户 **pungki** 是下面的组成员 :

**pungki** 的 GID 号码= **1000**
**adm** 的 GID 号码= **4**
**cdrom** 的 GID 号码= **24**
**sudo** 的 GID 号码= **27**
**dip** 的 GID 号码= **30**
**plugdev** 的 GID 号码= **46**
**lpadmin** 的 GID 号码= **108**
**sambashare** 的 GID 号码= **124**

### 带选项使用id

id 命令可以使用一些选项。下面有一些在日常使用中有用的选项。

#### 打印用户名、UID 和该用户所属的所有组

要这么做，我们可以使用 **-a** 选项

$ id -a

#### 输出所有不同的组ID (有效的，真实的和补充的)

我们可以使用 **-G** 选项来实现。

$ id -G

结果只会显示 GID 号。你可以和 **/etc/group** 文件比较。下面是 **/etc/group** 文件的示例内容：

```
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pungki
fax:x:21:
voice:x:22:
cdrom:x:24:pungki
floppy:x:25:
tape:x:26:
sudo:x:27:pungki
audio:x:29:pulse
dip:x:30:pungki
www-data:x:33:
backup:x:34:
operator:x:37:
sasl:x:45:
plugdev:x:46:pungki
ssl-cert:x:107:
lpadmin:x:108:pungki
saned:x:123:
sambashare:x:124:pungki
winbindd_priv:x:125:

```

#### 只输出有效的组ID

通过使用 **-g** 选项来只输出有效组ID。

$ id -g

#### 输出特定用户信息

我们可以输出特定的用户信息相关的 UID 和 GID。只需要在 id 命令后跟上用户名。

$ id leni

上面的命令会打印用户 **leni** 的 UID 和 GID。

### 总结

当我们想知道某个用户的 UID 和 GID 时 id 命令是非常有用的。一些程序可能需要 UID/GID 来运行。id 使我们更加容易地找出用户的 UID 以 GID 而不必在 /etc/group 文件中搜寻。如往常一样，你可以在控制台输入 **man id** 进入 id 的手册页来获取更多的详情。

---

via: <http://linoxide.com/linux-command/linux-id-command/>

译者：[geekpi](https://github.com/geekpi) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


十大顶级的黑客级Linux发行版！

Summary:
黑客和安全研究员需要在他们手边随时都有那些黑客工具。它们很多都是基于流行的Ubuntu和Debain操作系统，并且其中已经安装了许多黑客工具。

BackTrack 5r3:这是一个最受欢迎和广为人知的基于Linux的黑客发行版。  ...

# 十大顶级的黑客级Linux发行版！

黑客和安全研究员需要在他们手边随时都有那些黑客工具。它们很多都是基于流行的Ubuntu和Debain操作系统，并且其中已经安装了许多黑客工具。

<img src="content_image/album_201401_24_235343rj55yvvb06zugkyk.jpg" alt="" title="">

1. [BackTrack 5r3](http://www.backtrack-linux.org/downloads/):这是一个最受欢迎和广为人知的基于Linux的黑客发行版。它是基于Canonical的Ubuntu操作系统的，它的logo的意思是，"如果你更安静，你将听到的更多。"在版本5中，除了以前的KDE桌面外，还增加了GNOME桌面环境。
2. [Nodezero](http://www.nodezero-linux.org/downloads):这是另外一个基于Ubuntu的黑客版，它用于渗透测试。它会跟着Ubuntu同步更新的。
3. [BackBox Linux](http://www.backbox.org/downloads): 这也是一个基于Ubuntu的黑客工具。根据开发者称，它被设计来创建一个渗透测试发行版，并且快速而易用。它还可以通过软件仓库来更新那些白帽渗透测试工具。
4. [Blackbuntu](http://sourceforge.net/projects/blackbuntu/):Ubuntu自己虽然不是一个黑客工具，但是有许多基于它的黑客版本。这个发行版带来了诸如网络扫描、信息获取、渗透、漏洞识别，权限提升，无线网络分析、VoIP分析等各类工具。
5. [Samurai Web Testing Framework](http://sourceforge.net/projects/samurai/files/):这个发行版主要关注在对网站的攻击方面，它使用最好的免费开源的工具攻击和入侵网站。开发者已经把包括侦查、映射、探索和利用的攻击的四个步骤都集成到了发行版中。
6. [Knoppix STD](http://s-t-d.org/download.html):从Ubuntu迁移到了Debian，Knoppix STD现在是一个基于Debian的黑客发行版，可以运行GNOME、KDE、LXDE和Openbox等桌面环境。它已经出现了很长一段时间，并且是它们之中最早的live发行版。
7. [Pentoo](http://www.pentoo.ch/download/):这是一个基于Gentoo的针对安全测试的live CD。它带来了大量的自定义工具和内核。包括Backported WiFi stack, XFCE4等等。
8. [Weakerthan](http://weaknetlabs.com/main/?page_id=479):这个发行版使用Flufbox桌面环境，它包含了很多无线工具，最适合用于WiFi攻击。它基于Debian Squeeze发行版，具有WiFi攻击、Cisco漏洞利用、SQL入侵、Web入侵、蓝牙及其他功能。
9. [Matriux Krypton](http://sourceforge.net/projects/matriux/):这也许是第一个直接基于Debian OS的发行版。它是一个有300个安全工具的兵工厂，是白帽测试、渗透测试、安全测试、系统和网络管理、网络取证的一个好选择。
10. [DEFT](http://iso.linuxquestions.org/deft-linux/deft-linux-7/):一款带有DART（Digital Advanced Response Toolkit，高级数字响应工具）的基于Linux Kernel 3 的操作系统。它使用WINE来在Linux上运行Windows工具，并主要运行LXDE桌面环境。

---

via: <http://www.efytimes.com/e1/fullnews.asp?edid=125775>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


十个鲜为人知的Linux命令 - Part 5

Summary:
在前四篇 鲜为人知的Linux命令 系列文章受到高度赞赏之后，我们将为广大读者呈上此系列的最后一篇文章，虽然是最后一篇，但是其重要性毫不逊于前几篇。

前几篇文章的地址如下：

十一个鲜为人知的 Linux 命令 - Par ...

# 十个鲜为人知的Linux命令 - Part 5

在前四篇 **“鲜为人知的Linux命令”** 系列文章受到高度赞赏之后，我们将为广大读者呈上此系列的最后一篇文章，虽然是最后一篇，但是其重要性毫不逊于前几篇。

<img src="content_image/album_201401_25_2106535e99n99d39end9tz.png" alt="" title="">

前几篇文章的地址如下：

* [十一个鲜为人知的 Linux 命令 - Part 1](http://linux.cn/article-2258-1.html)
* [十个鲜为人知的 Linux 命令 - Part 2](http://linux.cn/article-2265-1.html)
* [十个鲜为人知的 Linux 命令 - Part 3](http://linux.cn/article-2284-1.html)
* [十个鲜为人知的 Linux 命令 - Part 4](http://linux.cn/article-2404-1.html)

### 42. lsb\_release

**‘lsb\_release’** 命令会打印特殊发行版的信息。如果 **lsb\_release** 还没安装，你可以在基于 **Debain** 的发行版中用命令 apt 安装，在基于 **Red Hat** 系统下用 yum 来安装包。

```
# lsb_release -a
LSB Version:    :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:
Distributor ID: CentOS
Description:    CentOS release 6.3 (Final)
Release:        6.3
Codename:       Final

```

**注意：**选项‘**-a**’，会显示有关**版本、ID、详情、发行号**和**研发代号**的全部可用信息。

### 43. nc -zv localhost 80

检查 **80** 端口是否被打开。我们可以用任何其他端口号替换‘**80**’来检查端口是否被打开或关闭。

```
$ nc -zv localhost 80
Connection to localhost 80 port [tcp/http] succeeded!

```

（译注：出现该信息表示80端口已被打开。）

检查 **8080** 端口是否启用

```
$ nc -zv localhost 8080
nc: connect to localhost port 8080 (tcp) failed: Connection refused

```

（译注：该信息显示了8080端口并未打开。）

### 44. curl ipinfo.io

该命令会输出并提供 **IP 地址** 的 **‘地理位置’** 。

```
$ curl ipinfo.io

```

"ip": "xx.xx.xx.xx", "hostname": "triband-del-aa.bbb.cc.ddd.bol.net.in", "city": "null", "region": "null", "country": "IN", "loc": "20,77", "org": "AS17813 Mahanagar Telephone Nigam Ltd".

### 45. find . -user root

该命令会输出当前目录下( **root** )用户所拥有的文件（译注：即owner为root）。下面是在当前目录下列出的所有 ‘root’用户拥有的文件。

```
# find . -user root
./.recently-used.xbel
./.mysql_history
./.aptitude
./.aptitude/config
./.aptitude/cache
./.bluefish
./.bluefish/session-2.0
./.bluefish/autosave
./.bash_history

```

在当前路径下列出所有 **‘avi’** 用户拥有的文件

```
# find . -user avi
./.cache/chromium/Cache/f_002b66
./.cache/chromium/Cache/f_001719
./.cache/chromium/Cache/f_001262
./.cache/chromium/Cache/f_000544
./.cache/chromium/Cache/f_002e40
./.cache/chromium/Cache/f_00119a
./.cache/chromium/Cache/f_0014fc
./.cache/chromium/Cache/f_001b52
./.cache/chromium/Cache/f_00198d
./.cache/chromium/Cache/f_003680

```

### 46. sudo apt-get build-dep ffmpeg

该命令会在相应的包安装时自动构建依赖关系。因此包安装的过程将非常流畅，也是非常容易的。

```
# apt-get build-dep ffmpeg
libxinerama-dev libxml-namespacesupport-perl libxml-sax-expat-perl
libxml-sax-perl libxml-simple-perl libxrandr-dev libxrender-dev
x11proto-render-dev x11proto-xinerama-dev xulrunner-dev
The following packages will be upgraded:
libpixman-1-0

1 upgraded, 143 newly installed, 0 to remove and 6 not upgraded.
Need to get 205 MB of archives.
After this operation, 448 MB of additional disk space will be used.
Do you want to continue [Y/n]?

```

### 47. lsof -iTCP:80 -sTCP:LISTEN

该命令会输出所用正在使用 **80** 端口的 **进程/服务** 的名称。在 **80** 端口运行下列命令会更好理解这个命令，它会列出所用运行在该端口的 **进程/服务** 。

```
root@localhost:/home/avi# lsof -iTCP:80 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 1566 root 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1664 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1665 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1666 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1667 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1668 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

```

同样，你可以检查运行在端口 **22** 的进程/服务。

```
root@localhost:/home/avi# lsof -iTCP:22 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2261 root 3u IPv4 8366 0t0 TCP *:ssh (LISTEN)
sshd 2261 root 4u IPv6 8369 0t0 TCP *:ssh (LISTEN)

```

### 48. find -size +100M

这条find命令会在当前目录下列出所有超过指定大小的文件(这里指定为**100 MB**)，递归查询。

```
# find -size +100M
./.local/share/Trash/files/linuxmint-15-cinnamon-dvd-32bit.iso
./Downloads/Fedora-Live-Desktop-i686-19-1.iso
./Downloads/Ant Videos/shakira 2.avi
./Downloads/Deewar.avi
./Desktop/101MSDCF/MOV02224.AVI
./Desktop/101MSDCF/MOV02020.AVI
./Desktop/101MSDCF/MOV00406.MP4
./Desktop/squeeze.iso

```

在当前目录递归的列出所用大于 **1000 MB** 的文件。

```
root@localhost:/home/avi# find -size +1000M
./Downloads/The Dark Knight 2008 hindi BRRip 720p/The Dark Knight.mkv.part
./Downloads/Saudagar - (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR]/Saudagar
- (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR].mkv
./Downloads/Deewar.avi
./Desktop/squeeze.iso

```

### 49. pdftk

**pdftk**命令用来合并几个pdf文件。你必须安装有 **pdftk** 程序。如果还没有，请用apt或yum来获取相应的包。

```
$ pdftk 1.pdf 2.pdf 3.pdf …. 10.pdf cat output merged.pdf

```

### 50. ps -LF -u user\_name

该命令会输出一个用户的进程和线程。选项“**L**”（列出线程），选项“**-F**”（完整格式化）

```
$ ps -LF -u avi
avi 21645 3717 21766 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/
avi 21645 3717 21768 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/
avi 22314 3717 22314 0 2 42797 50332 0 19:00 ? 00:00:40 /usr/
avi 22314 3717 22316 0 2 42797 50332 1 19:00 ? 00:00:00 /usr/
avi 22678 24621 22678 0 1 969 1060 1 21:05 pts/1 00:00:00 ps -L
avi 23051 3717 23051 0 2 37583 45444 1 19:03 ? 00:00:52 /usr/
avi 23051 3717 23053 0 2 37583 45444 0 19:03 ? 00:00:03 /usr/
avi 23652 1 23652 0 2 22092 12520 0 19:06 ? 00:00:22 gnome
avi 23652 1 23655 0 2 22092 12520 0 19:06 ? 00:00:00 gnome

```

### 51. startx - :1

分享 **X** 会话。如果你需要频繁的（以不同用户身份）登入或登出桌面时，那就需要 **startx** 来救场。这个命令建立了一个新的会话从而避免了在一个会话中反复的登入和登出。为了在X会话间进行交换，我们可以通过‘**ctrl+Alt+F7**’和‘**ctrl+Alt+F8**’的组合键来完成。

**注意**：快捷键“**ctrl+Alt+F1～F6**“是为了控制台会话准备的，而“**ctrl+Alt+F7～F12**”则为X会话服务。因此我们有**6**个控制台会话和**6**个X会话，不需要频繁的登入登出。上面的顺序适用于大多数的发行版，然而不同发行版可能会有不同的实现。我在Debian中尝试过，运行的很好。

以上就是今天的所有内容。我们如有需要会在以后的文章中继续发布“鲜为人知的命令”，不要忘记留下你对我们文章和‘ **鲜为人知的Linux命令** ’系列的宝贵意见。我会很快带来我的新文章，敬请期待，记得常回来看看哦。

---

via: <http://www.tecmint.com/10-lesser-known-useful-linux-commands-part-v/>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


每日Ubuntu小技巧：Ubuntu下一款和Windows磁盘管理一样的工具

Summary:
对于一些用惯了Windows的用户来说，刚开始接触Ubuntu的时候会面临这样的一个问题，这个问题在很多论坛里面也经常出现，前段时间也有位读者问到相同的问题：

在 Ubuntu 中有和 Windows 下的磁盘管理一样的工具么？

 ...

# 每日Ubuntu小技巧：Ubuntu下一款和Windows磁盘管理一样的工具

对于一些用惯了Windows的用户来说，刚开始接触Ubuntu的时候会面临这样的一个问题，这个问题在很多论坛里面也经常出现，前段时间也有位读者问到相同的问题：

>
> 在 Ubuntu 中有和 Windows 下的磁盘管理一样的工具么？
>
>
>

对于那些不太清楚磁盘管理的用户，下面有个简单介绍。

磁盘管理是一个从 Windows XP 起就有的默认工具，其主要负责磁盘相关的任务，比如：创建和格式化磁盘、初始化磁盘，重新划分磁盘大小和指定分区号以及删除分区。

在 Windows 下用户使用和磁盘分区管理相关的命令行工具进行磁盘操作，这个工具很高大上。

问题是在 Ubuntu 系统下有这样的工具么，答案是肯定滴。

Ubuntu 下有个很相似的软件叫做 GNOME Disk Utility ，这个工具同样能尽心查看/管理你的磁盘分区，以及创建和恢复分区。你同样可以用它进行创建和格式化分区，挂载和卸载卷组以及其它相关的磁盘操作。

尽管这和Windows下的管理工具相似，但是它不允许用户重新定义分区和卷组大小，因为 ubuntu 不支持驱动器号。

所以，想在 Ubuntu 系统下使用类似 windows 下的磁盘管理工具，那就试试 GNOME Disk Utility 吧。

你可以在 Unity Dash 中搜索 **硬盘** ，打开时，它会自己识别你电脑上的外部硬盘和额外的硬盘驱动器。

<img src="content_image/album_201401_25_212949uf97nyfyqb9sz9yz.png" alt="" title="">

一旦驱动器被选择你就可以进行磁盘相关的操作了，比如：格式化、创建分区，管理驱动器。另外在磁盘访问超时情况下一些待机模式的操作。

需要注意的是，当你格式化一个磁盘让它既可以在 Windows 下又可以在 Ubuntu 下使用时，一定要选择 NTFS 文件系统。

那么，在 Ubuntu 下使用磁盘配置你的驱动器吧。

慢慢享用，新年快乐！

---

via: <http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-windows-disk-management-equivalent-in-ubuntu/>

译者：[Timeszoro](https://github.com/Timeszoro) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Shuttleworth表示Ubuntu将在微软之前达到真正的全平台融合

Summary:
Ubuntu的创始人表示，六个月一次的Ubuntu发布传统可能会成为过去。

也许我们会减轻这6个月的事而把它们分布到各个时间段里

与PCPro说到Canonical的融合计划  我们将会看到一个供手机、平板和台式机等全平台使用的U ...

# Shuttleworth表示Ubuntu将在微软之前达到真正的全平台融合

**Ubuntu的创始人表示，六个月一次的Ubuntu发布传统可能会成为过去。**

>
> ‘也许我们会减轻这6个月的事而把它们分布到各个时间段里’
>
>
>

与[PCPro](http://www.pcpro.co.uk/news/interviews/386080/mark-shuttleworth-interview-taking-ubuntu-beyond-desktops)说到Canonical的融合计划 —— 我们将会看到一个供手机、平板和台式机等全平台使用的Ubuntu 15.04 —— Mark Shuttleworth解释说移动终端用户已经习惯于在任何时候接受升级，这部分原因可能会带来 *“也许我们会减轻这6个月的事而把它们分布到各个时间段里”*

这已经不是第一次提出关于更改Ubuntu更新周期的问题了。今年早些时候的讨论都涉及到[移动发行版的滚动发布](http://www.omgubuntu.co.uk/2013/02/ubuntu-to-discuss-rolling-release-move-at-next-weeks-uds)，Ubuntu 13.04的发布带给用户[更新方式的改变](http://www.omgubuntu.co.uk/2013/08/phased-updates-to-start-rolling-out-for-ubuntu-13-04)。

### 手机平台覆盖的优势

<img src="content_image/album_201401_25_213923hveaazehkhchedqc.jpg" alt="" title="">

这并不是这次简单采访中提到的唯一的点，Shuttleworth还表示，他相信**Ubuntu将领先于微软实现真正的移动/桌面融合。**那个总部在雷蒙德的公司曾说过[在Windows Phone和Windows8平台上的统一](http://blogs.wsj.com/cio/2013/10/24/microsoft-moves-closer-to-mobile-desktop-convergence/)和[因Windows RT的不良反馈而解散](http://www.theguardian.com/technology/2013/nov/26/microsoft-kill-windows-rt-larson-green)。

Shuttleworth指出当涉及到招揽应用开发商时，Ubuntu的Linux基础，可以给Ubuntu带来巨大优势。

*“Android的原生应用及web应用相比Windows平台而言更接近于在Ubuntu上的程序。许多Android开发人员使用Ubuntu，并在ubuntu上开发他们的软件，所以Ubuntu更容易成为开发人员的目标平台。”*

>
> ‘没有公布硬件合作伙伴’
>
>
>

当被问及是否有**硬件合作伙伴愿意生产的Ubuntu手机和平板电脑**，Mark有几分躲闪，他说，虽然目前“没有宣布合作伙伴”，但目前已经有几个“家用品牌”的“前沿设备”将Ubuntu作为内部测试操作系统。

他表示，这个独立的测试是一种“强烈利益信号”，带给产品更“舒适”的体验。

此前，在十二月份的巴黎Le Web会议上Mark告诉记者，与硬件合作伙伴达成协议[2014年将发布一款高端手机](http://www.omgubuntu.co.uk/2013/12/ubuntu-touch-signs-first-hardware-partner-will-debut-high-end-phone-2014)。该公司生产的手机的名称尚未透露（译注：现在我们已经知道了~）。

---

via: <http://www.omgubuntu.co.uk/2013/12/ubuntu-touch-plans-2014>

译者：[乌龙茶](https://github.com/yechunxiao19) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


GNU: 走向后稀缺世界

Summary:
自从理查德斯托曼宣布编写名为 GNU 的完全兼容 UNIX 的软件系统以来已经过去 30 年了，GNU 点燃了软件自由之理念，并使开源斗争延续至今

GNU 不是第一款分布式免费软件，却是第一款宣布永久免费，以及不受政治约束  ...

# GNU: 走向后稀缺世界

**自从理查德·斯托曼宣布编写名为 GNU 的完全兼容 UNIX 的软件系统以来已经过去 30 年了，GNU 点燃了软件自由之理念，并使开源斗争延续至今**

<img src="content_image/album_201401_26_155855umxwxeha37smpxa7.jpg" alt="" title="">

GNU 不是第一款分布式免费软件，却是第一款宣布永久免费，以及“不受政治约束的自由软件”。

在 GNU 宣言中，斯托曼描述了美好的愿景。“从长远角度来看，”他写道，“软件自由是步入[后稀缺世界](http://zh.wikipedia.org/wiki/%E5%90%8E%E7%A8%80%E7%BC%BA)的必经之道，在后稀缺世界任何人都无需为生计奔波。人们可以自愿投身于一些他们感兴趣的活动，比如软件开发，代价只是每周花费十个小时完成诸如法律制定、家庭协商、机器人修理、小行星观察等工作任务。”

在现实世界中，GNU 因为'EMACS 社区'以及由詹姆斯·高斯林编写 UNIX 版 Emacs 所引发的争论而发展迅速。在'针对 ITS 用户的 Emacs 手册'里，标示着 1981 年 10 月 22 日起，斯托曼就表明了授权 GPL 的想法。

“Emacs 并未抄袭任何软件，”他写道。“与之相反，你正在加入 Emacs 软件分享社区。加入社区的条件是你必须提交对 Emacs 作出的改进，包括任何你所写的插件。”

最初，高斯林基于其他人已经做出贡献的原因，允许自由分发高斯林版本 Emacs 的源代码。但是，1983 年 4 月，斯托曼就此[谈道](bit.ly/d58ndg)：“他通过申请版权的方式伤害了每一个人，他不允许任何人进行二次发布，接着把软件贩卖给软件公司。”

斯托曼被此种背叛的行为所伤害，但是高斯林，不久后作为 Java 之父而闻名于世，说道：“他对我的处理方式反映了他是一个既胆小又卑鄙的人，你可以从他做过的事看出来。”

围绕这件事的反击与法律威胁直接促成了 GNU 的成立，以及之后的 GPL 协议。高斯林版 Emacs 不久之后就被 GNU 版 Emacs 所吞并。GPL 出现的标志是 1985 年的 'GNU Emacs 分发许可事项'，经过几次修改重新发布，直到 1989 年 GPL 1.0 颁布。

斯托曼之后讲述当他创建 GNU 的时候，人们说：“噢，这是一项艰难地任务；你不可能写出一个像 UNIX 那样的完整系统来。我们能为之做出多少呢？这个主意很棒，但是很不现实。”然而斯托曼的回应是无论如何他都会去做。“这就是我强大的地方。我强大在我非常非常坚决，我会忽视各种诸如为什么你应该改变你的目标等理由，忽略许多其他人会为之动摇的因素。许多人都想成为胜利的一方。我并不反对这种想法。我只想成为正确的一方，即使甚至我没有成为胜利的一方，直到最后我仍将全力以赴。”

“这和钱没有关系”，他在 1999 年说道，“这关乎自由。如果你认为这和钱有关就已经偏离讨论方向了。我只想自由地使用电脑，使用电脑去合作,在使用电脑分享的过程中不会被限制或是禁止。GNU/Linux 系统现在或多或少已经做到了一些。系统因为付诸实践的原因正变得越来越流行。它是很好的操作系统。危险是人们将会喜欢上它，因为它是实用的，它将会变得流行，只要没有人在背后对这些理想产生含糊的念头，当然这些念头将会是具有讽刺意味的失败。”

自由软件归因于斯托曼的固执以及洞察力，但是正如同他过去在 GNU 项目中建议的一样，软件自由的斗争与成果很大程度上来自于他人的贡献，对它的威胁将会继续存在。

“当其他人怀疑我是否能够胜任工作，不确定我那么做将是否足够实现目标时，我已经完成了我的大部分工作。我尝试了各种手段，因为在我的同伴和敌人之间除了我什么都没有。我自己都感到很惊讶，有时候我竟然成功了。

“有时候我会失败; 我的一些同伴会突然离去。接着我会寻找其他受到威胁的同伴，准备好另一场战役。随着时间的流逝，我学会了寻找恐惧并将之置于我和我的同伴中，号召其他黑客来加入我。”

“如今，很多时候我不是唯一的。当我看着这么多黑客不断参与进来并坚持下去，这是一种救赎、也是一种乐趣，我知道，这片乐土将会幸存下来 – 不只是现在。因为危险每年都会扩增。”

---

via: <http://www.linuxuser.co.uk/features/gnu-toward-the-post-scarcity-world-the-free-software-column>

译者：[SteveArcher](https://github.com/SteveArcher) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在 Linux 上设置密码策略

Summary:
用户帐号管理是系统管理员最重要的工作之一。而密码安全是系统安全中最受关注的一块。在本教程中，我将为大家介绍如何在 Linux 上设置密码策略。

假设你已经在你的 Linux 系统上使用了 PAM (Pluggable Authenticati ...

# 如何在 Linux 上设置密码策略

用户帐号管理是系统管理员最重要的工作之一。而密码安全是系统安全中最受关注的一块。在本教程中，我将为大家介绍**如何在 Linux 上设置密码策略**。

假设你已经在你的 Linux 系统上使用了 [PAM (Pluggable Authentication Modules，插入式验证模块)](http://www.linux-pam.org/)，因为这些年所有的 Linux 发行版都在使用它。

### 准备工作

安装 PAM 的 cracklib 模块，cracklib 能提供额外的密码检查能力。

Debian、Ubuntu 或 Linux Mint 系统上：

$ sudo apt-get install libpam-cracklib

CentOS、Fedora、RHEL 系统已经默认安装了 cracklib PAM 模块，所以在这些系统上无需执行上面的操作。

为了强制实施密码策略，我们需要修改 /etc/pam.d 目录下的 PAM 配置文件。一旦修改，策略会马上生效。

注意：此教程中的密码策略只对非 root 用户有效，对 root 用户无效。

### 禁止使用旧密码

找到同时有 “password” 和 “pam\_unix.so” 字段并且附加有 “remember=5” 的那行，它表示禁止使用最近用过的5个密码（己使用过的密码会被保存在 /etc/security/opasswd 下面）。

Debian、Ubuntu 或 Linux Mint 系统上：

$ sudo vi /etc/pam.d/common-password

>
> password [success=1 default=ignore] pam\_unix.so obscure sha512 remember=5
>
>
>

CentOS、Fedora、RHEL 系统上：

$ sudo vi /etc/pam.d/system-auth

>
> password sufficient pam*unix.so sha512 shadow nullok try*first*pass use*authtok remember=5
>
>
>

### 设置最短密码长度

找到同时有 “password” 和 “pam\_cracklib.so” 字段并且附加有 “minlen=10” 的那行，它表示最小密码长度为（10 - 类型数量）。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码（大写字母、小写字母、数字和标点符号）。如果你的密码同时用上了这4种类型的符号，并且你的 minlen 设为10，那么最短的密码长度允许是6个字符。

Debian、Ubuntu 或 Linux Mint 系统上：

$ sudo vi /etc/pam.d/common-password

>
> password requisite pam\_cracklib.so retry=3 minlen=10 difok=3
>
>
>

CentOS、Fedora、RHEL 系统上：

$ sudo vi /etc/pam.d/system-auth

>
> password requisite pam\_cracklib.so retry=3 difok=3 minlen=10
>
>
>

### 设置密码复杂度

找到同时有 “password” 和 “pam\_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行，它表示密码必须至少包含一个大写字母（ucredit），两个小写字母（lcredit），一个数字（dcredit）和一个标点符号（ocredit）。

Debian、Ubuntu 或 Linux Mint 系统上：

$ sudo vi /etc/pam.d/common-password

>
> password requisite pam\_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
>
>
>

CentOS、Fedora、RHEL 系统上：

$ sudo vi /etc/pam.d/system-auth

>
> password requisite pam\_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
>
>
>

### 设置密码过期期限

编辑 /etc/login.defs 文件，可以设置当前密码的有效期限，具体变量如下所示：

$ sudo vi /etc/login.defs

>
> PASS*MAX*DAYS 150 PASS*MIN*DAYS 0 PASS*WARN*AGE 7
>
>
>

这些设置要求用户每6个月改变他们的密码，并且会提前7天提醒用户密码快到期了。

如果你想为每个用户设置不同的密码期限，使用 chage 命令。下面的命令可以查看某个用户的密码限期：

$ sudo chage -l xmodulo

>
> Last password change : Dec 30, 2013 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
>
>
>

默认情况下，用户的密码永不过期。

下面的命令用于修改 xmodulo 用户的密码期限：

$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo

上面的命令将密码期限设为2014年6月3日。另外，修改密码的最短周期为5天，最长周期为90天。密码过期前14天会发送消息提醒用户，过期后帐号会被锁住30天。

[](http://www.flickr.com/photos/xmodulo/11640903324/)

---

via: <http://xmodulo.com/2013/12/set-password-policy-linux.html>

译者：[bazz2](https://github.com/bazz2) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ubuntu 每日小贴士 - 在Ubuntu下用桌面图形界面挂载分区

Summary:
如果在之前你询问过经验丰富的 Linux 用户如何在 Ubuntu 下挂载磁盘分区，他们可能会告诉你使用在 /etc 目录里的fstab文件。这似乎是 Linux 系统包括 Ubuntu 挂载分区的唯一方式。
呵呵，幸亏有了GNOME Disk Utility ...

# Ubuntu 每日小贴士 - 在Ubuntu下用桌面图形界面挂载分区

如果在之前你询问过经验丰富的 Linux 用户如何在 Ubuntu 下挂载磁盘分区，他们可能会告诉你使用在 **/etc** 目录里的fstab文件。这似乎是 Linux 系统包括 Ubuntu 挂载分区的唯一方式。

呵呵，幸亏有了[GNOME Disk Utility](https://wiki.gnome.org/Design/Apps/Disks)，让挂载分区变得更加多样化。使用这个磁盘工具，你就可以在图形界面下轻松的挂载分区，不需要再在命令行下修改 fstab 文件。fstab 文件是一个用来列出可用磁盘和分区的 Linux 文件，同时指示出他们的挂载情况。

mount 命令查找 fstab 文件中的配置，它决定了设备挂载的方式和位置。这只能通过系统管理员或 root 来修改。

这个简短的教程将会展示给你如何在 Ubuntu 下轻松的挂载分区，在不主动修改 fstab 文件的前提下。对于新手和那些刚开始使用 Ubuntu 的用户，他们会发现这个方法易于挂载额外的分区和设备。

虽然有一些工具也许能帮助你构建 fstab 文件，但是在 Ubuntu 下很少有像这个磁盘工具那么高效的。

如果你在 Ubuntu 下打开了fstab 文件， 你会看到类似下面的内容。

```
#
/dev/fd0      /media/floppy0    vfat    rw,user,noauto    0   0

```

上列只是 Ubuntu 分区挂载的一个样例。每一个设备都有它自己的文件类型和挂载点。对于刚接触 Ubuntu 的用户，可能会感到生畏。

对于经验丰富的 Linux 用户来说，管理 fstab 并不困难。如果你已经做过一次了，那么下次会更加的轻松。

所以，接下来动手吧。在 fstab 文件中添加一个条目或挂载一个分区，打开 Unity Dash 搜索**Disk app**并打开。当程序打开后，选择你想要挂载和格式化的驱动器。在格式完后，选择**选项 -> 编辑挂载选项**。

最后，关闭自动挂载选项并手动指定你的挂载选项。磁盘会自动的将这些选项写入到 fstab 文件中，这样 mount 命令才可以读取挂载的分区。

保存你的设置并重启，或用 mount 命令挂载分区。

上面的选项在 fstab 文件中会像这样显示。

```
/dev/sdb /media/richard/ExtPartition ntfs-3g rw,auto,user,fmask=0111,dmask=0000 0 0

```

好了，这些就是今天全部内容！每当你启动你的机子是新分区将会自动挂载上。

Enjoy!

好好享受吧！

---

via: <http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-mount-partitions-in-ubuntu-from-your-desktop-gui/>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


软件在吞噬世界，但是开源软件在吞噬自己

Summary:
在开源世界，大家都不安分
像Marc Andreessen posits所说，软件可能在吞噬世界，但是开源软件似乎在吞噬自己。伴随着快速的步伐，软件世界逐渐习惯产业化，他们的卖主开始为更多的利益投资（比如：在操作系统方面的  ...

# 软件在吞噬世界，但是开源软件在吞噬自己

**在开源世界，大家都不安分**

像[Marc Andreessen posits](http://online.wsj.com/news/articles/SB10001424053111903480904576512250915629460)所说，软件可能在吞噬世界，但是开源软件似乎在吞噬自己。伴随着快速的步伐，软件世界逐渐习惯产业化，他们的卖主开始为更多的利益投资（比如：在操作系统方面的微软和数据库方面的甲骨文）， 开源软件的世界正迈向一个加速进化的时代，从来不满足于既得的荣誉。

在快速变更的开源世界，企业如何投资？

### 开源超神了

虽然[Dirk Riehle](http://dirkriehle.com/publications/2008-2/the-total-growth-of-open-source/)对于开源项目增长的分析并不是特别过时，当然，一部分已经[增长的趋势](http://www.techrepublic.com/blog/linux-and-open-source/driving-forces-behind-linux-and-open-source-growth/)除外：

现在大部分重要领域的技术-大数据，云，移动-都是开源的。伴随着Haddop、OpenStack等工具的活跃，我们应该期待开源软件卯足了劲发展。

这是好是坏？

### 开源码农竞争激烈

举个栗子，在系统配置领域。 Redmonk 的 Stephen O'Grady 挑了些数据用来衡量受欢迎程度，Chef、 Puppet、 Ansible 和 Salt，后面两个是这个领域的新星，但是赢得了相当的社区热情和采纳度。

这让O'Grady [推测](http://redmonk.com/sogrady/2013/12/06/configuration-management-2013/)：“ 看起来合理地去认为系统配置领域会和开源关系型数据库一样有相同的变革趋势，伴随着两个突出的工程出现，这样的观点有点问题。”

O’Grady觉得：

>
> 从这些观察中得出的最有趣的结论或许是 Ansible 和 Salt 的关联。这些工程会有不错的前景，比如在这个领域对解决方案的需求，和非常强的个人偏好的影响，例如，Salt 在 Python 开发者当中的亲和力。
>
>
>

实际上，我必须承认最有趣的的结论是，没有开源项目能保证长久。Puppet 在2005年退出，并且一直在和有固定期权的在职者竞争，现在和Chef竞争（4年后退出），Ansible（最新两年）和 Salt（最新两年）。

任何重要领域的在职者，总是会穷追不舍地吹毛求疵。但是在开源世界，比赛不会等待十亿美元的市场在它产生影响的时候形成。由Chef 和 Puppet 铺垫了的 Salt 和 Ansible 在市场的上升就是一个证明。

### 社区付出了，社区也拿走了

你会发现同样的动态在CMS中(Drupal 、Joomla 、 Alfresco 、 Wordpress 以及无数的其它 CMS)，在云中(Eucalyptus 、 OpenStack 、 CloudStack 、 CloudFoundry 、 OpenShift 及其它)，在[web 服务器中](http://www.theregister.co.uk/2013/02/06/open_and_shut/)，在关系和非关系的数据库中。

开源数据库数量的膨胀伴随着几乎每天都产生的新对手，正如[DB-Engines database tracking service](http://db-engines.com/en/ranking)中可以看到的一样。或许最好玩的是开源关系数据库领域，直到最近MySQL支配这个领域。Postgers 也是和 MySQL 赛跑，虽然是老二，但是排得非常后。

现在事情都在变化，或者骚动。很大程度因为 Oracle 的所谓的对 MySQL 社区的践踏，Postggres 在最前沿的 MySQLer中炙手可热。MariaDB 也是这样。虽然还是一个小家伙，比如[RedHat Fedora和Ubuntu等Linux发行版内置数据库更换成MariaDB了](http://www.zdnet.com/oracle-who-fedora-and-opensuse-will-replace-mysql-with-mariadb-7000010640/)，Google换掉了MySQL等。

或许就像O'Grady说的，这归结为开发者的偏好。如果开发者占据主要地位，小小的可以阻碍他们向更合适自己的新项目转换的障碍，会导致秩序混乱。如果这有道理，将会很好解释开源为什么拒绝长期垄断。

很难让开发者保持乐观。

### 做一笔社区友好的生意

对于想要对已有的开源项目投资的企业，这意味着什么呢？一个简单的、也许没有不令人满意的答案是企业应该投入到项目中，确定他们的可持续性，并且给予企业能力去支持他们自己。

但是大部分企业不想自己码出最好的代码。

相反，他们会去寻找受欢迎程度高的项目，非常适合企业的需求的，而且还有很强的社区的。如果项目在社区变得没什么意思的时候，欢迎程度可能会飞跃。最基础的原因，Linux已经在操作系统之巅呆了很久了，已经适应社区影响和需求。

不幸的是，没有什么方法去真正衡量一个开源社区的活力。一些成功的项目，比如OpenStack，取决于强大的基础。其他的，像Linux，取决于强大的个人和他的帮手。

但是所有成功的开源项目维持了他们强劲的热度，每几个月就会有一个发行版。快速发展的项目会非常难以供企业支持。

企业应该怎样避免开源项目荒废的风险呢?

---

via: <http://readwrite.com/2013/12/12/open-source-innovation>

译者：[ggaaooppeenngg](https://github.com/ggaaooppeenngg) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux 服务器管理员的12个有用的命令

Summary:
我们已经读了很多教程和看了很多视频了，你现在是一名Linux高级用户了。好的，恭喜你。但是还有一些需要学习！下面一些命令在你成为全能的管理员时会派上用场！

ifconfig: 在修改内核中已有的网络接口时，你会用  ...

# Linux 服务器管理员的12个有用的命令

我们已经读了很多教程和看了很多视频了，你现在是一名Linux高级用户了。好的，恭喜你。但是还有一些需要学习！下面一些命令在你成为全能的管理员时会派上用场！

<img src="content_image/album_201401_29_103202llq88w92u88jbb22.png" alt="" title="">

1. **ifconfig**: 在修改内核中已有的网络接口时，你会用到ifconfig命令。这个命令通常用于系统调校和调试，但同时也可以用于在启动过程中设置接口。
2. **netstat**: 对于Linux用户来说这是一个用于显示网络相关信息的高级命令。它包括路由表、网络连接、伪装连接、接口统计等丰富信息。
3. **nslookup**: 在你需要找出关于网络服务的信息时可以用到这个命令。它能帮你找到用于查询DNS域的名称服务器信息。
4. **dig**: dig工具用于请求DNS域名服务器。如果你要找出主机地址、邮件交换、名称服务器和其他相关信息，那么这个工具就是最佳选择。你可以在Linux和Mac OS X操作系统上使用这个命令。
5. **uptime**: uptime命令用于验证服务器在无人照看下发生了什么。当你需要坐在服务器前查找错误的时候，这个命令尤其有用。
6. **wall**: 这个命令用于给所有已登录的用户发送消息。你可以只给那些消息权限设置成了'是'的用户发消息。消息是作为wall命令的参数给出的。
7. **mesg**: 用户可以使用'write'命令给你发送消息。但是作为服务器管理员，你可以使用mesg命令来决定他们是否能够使用write命令。你可以选择'n'和'y'，分别用于控制在屏幕上不弹出或者弹出消息。
8. **write**: 如果对于一个用户的'mesg'命令的状态设置为'y'，那么write命令就允许你发送消息给那个用户。
9. **talk**: 当上面所说的“消息”不够用时，使用talk命令与登陆的用户进行“会话”。
10. **w**: 这个命令是uptime和who命令的结合，其显示结果就好像连续先后执行了这两个命令一样。
11. **rename**:当你需要重命名特定的文件时，rename命令会派上用场。这个命令可以通过匹配替换来为多个文件批量重命名。
12. **top**:这个命令可以显示运行在CPU上的进程。命令会自动刷新并持续显示进程直到你使用中断命令停止它。

---

via: <http://www.efytimes.com/e1/fullnews.asp?edid=125990>

译者：[geekpi](https://github.com/geekpi) 校对：[Mr小眼儿](http://blog.csdn.net/tinyeyeser)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何正确双启动Ubuntu和Windows双系统

Summary:
尽管微软想让你信任Windows，但一个Linux操作系统和一个Windows操作系统可以在同一台PC上和平共存。这个文章会指导你如何让一个Ubuntu系统和Windows操作系统并行运行。

你必须考虑两种场景，同时你也必须决定哪一种 ...

# 如何正确双启动Ubuntu和Windows双系统

**尽管微软想让你信任Windows，但一个Linux操作系统和一个Windows操作系统可以在同一台PC上和平共存。这个文章会指导你如何让一个Ubuntu系统和Windows操作系统并行运行。**

<img src="content_image/album_201401_29_111759fg1jou031ogsjjpk.jpg" alt="" title="">

你必须考虑两种场景，同时你也必须决定哪一种适合你。这里必须要考虑安装顺序。在你已经安装好Ubuntu操作系统后再安装Windows会有一点问题，因为微软似乎不太在意其他小伙伴。

如果你是在已经安装好Windows后安装Ubuntu，那么事情会变得简单多了，几乎没有任何工作和准备是必需的。

让我们开始处理更加困难的问题。如果你已经有一个Ubuntu系统，想安装Windows，你会丢掉GRUB，它是默认的引导程序。Windows不会在意它，并会擦除它。

如果你已经犯了这个错误，但你并没有重写Linux分区，请别沮丧。数据仍然在那里，你需要的是一个含有Ubuntu（最新到13.10版本）的可启动live CD。你需要安装一个名为Boot-Repair的应用程序，使用PPA来安装它。

记住，如果你使用U盘，安装应用会相当简单，因为Ubuntu安装镜像是混合镜像。用Live CD启动一个Ubuntu会话，打开终端，然后输入下列指令：

```
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

```

打开应用程序，点击推荐修复，然后等待。在这个步骤完成后，重启机器，你就会重新看到GRUB，实现双启动。

在另一方面，如果你已经安装好Windows，想要安装Ubuntu，事情会更加简单。启动Ubuntu安装，选择安装到一个非Windows分区，格式化为EXT4，选择引导程序的位置，然后就搞定了。

如果你选择将引导程序安装在和Windows安装的同一块硬盘上，它会擦除微软的引导程序。这样没有问题，因为GRUB会识别出WIndows操作系统，你不会丢掉它。如果你把它安装在其它地方，譬如在另一块硬盘上，当你选择从不同的硬盘启动时，你会看到它们两个。

开始享受你的Ubuntu和Windows双系统启动的乐趣吧！

---

via: <http://news.softpedia.com/news/How-to-Dual-Boot-Ubuntu-and-Windows-Properly-415377.shtml>

译者：[KayGuoWhu](https://github.com/KayGuoWhu) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：17 配置内核 (13)

Summary:
你好!这是Linux内核系列的下一篇，我们仍将配置ATA设备并将进入逻辑卷/存储。
"ATA SFF support (for legacy IDE and PATA)"应该启用，因为这扩展了ATA的能力。
为了支持Pacific Digital的ADMA控制器，应该启用"Paci ...

# 戴文的Linux内核专题：17 配置内核 (13)

你好!这是Linux内核系列的下一篇，我们仍将配置ATA设备并将进入逻辑卷/存储。

"ATA SFF support (for legacy IDE and PATA)"应该启用，因为这扩展了ATA的能力。

为了支持Pacific Digital的ADMA控制器，应该启用"Pacific Digital ADMA support"。

"Pacific Digital Serial ATA QStor support"(串口ATA支持)在下一个驱动中支持

Promise的SATA SX4设备在内核中支持(Promise SATA SX4 support (Experimental))。

可以BMDMA的SFF ATA控制器需要这个驱动(ATA BMDMA support)。BMDMA代表总线主控直接内存访问(BMDMA stands for Bus-Master Direct Memory Access)。

下面，这个驱动对不同的SATA和PATA控制器提供支持Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support)。

这里有其他的特定设备驱动(Calxeda Highbank SATA support)、(Marvell SATA support)、(NVIDIA SATA support)、(Promise SATA TX2/TX4 support)、(Silicon Image SATA support)还有(SiS 964/965/966/180 SATA support)、(ServerWorks Frodo / Apple K2 SATA support)、(ULi Electronics SATA support)、(VIA SATA support)。。。由于有很多SATA/PATA控制器设计不同，一个通用驱动无法使用在这些设备上。

接下来，这个驱动支持PC卡上的ATA设备除非有特定设备管理硬件的驱动(PCMCIA PATA support)。

在这之后，有一个通用PATA驱动用于管理其他不被先前驱动支持的PATA设备 (Generic platform device PATA support)。

PATA设备的电源消耗由这个ACPI驱动管理(ACPI firmware driver for PATA)。强烈建议对系统上所有的硬件启用ACPI。虽然这会增加内核的大小，但是ACPI会增强性能。

"Generic ATA support"(通用ATA支持)由这个驱动提供。

古老的ISA、VLB和PCI总线PATA设备可以通过这个驱动支持(Legacy ISA PATA support (Experimental))。这个古老支持使用新的ATA层。

这组特性包含了许多对于RAID和LVM能力，可见下面的特性选项(Multiple devices driver support (RAID and LVM))。

有趣的事实：内核是由C和汇编写成的。

这个驱动允许RAID和LVM组合在一起。这用于使几个LVM卷使用RAID。分区被组合成逻辑块设备，然后形成RAID设备。

许多用户会希望RAID可以在启动时侦测到(Autodetect RAID arrays during kernel boot)。如果你没有RAID，那么不要启用这个特性。不然，启动处理会比原先希望的慢上几秒。

注意：当配置Linux内核时，最好按照"use it or lose it"(非用即失)的原则。那就是，如果你不用它，那就禁用这个特性。

硬盘分区可以通过这个驱动加在一起(Linear (append) mode)。

下面的驱动加入RAID-0支持带逻辑块设备中(RAID-0 (striping) mode)。接着还有 (RAID-1 (mirroring) mode)、(RAID-10 (mirrored striping) mode)和(RAID-4/RAID-5/RAID-6 mode)。

MD框架需要多路径支持(Multipath I/O support)。MD框架就是多设备(Multi Device)框架,它将多台设备作为一个单元管理。举例来说，将许多存储单元的分区组合起来可以使多个设备就像一个那样。多路径支持是用于使用处理虚拟的有多个地址的"单个设备"。因为单存储单元物理上有多件物理设备，所以它有多个硬件地址。

使用这个调试驱动，可以测试更大的多磁盘存储单元的bug(Faulty test module for MD)。

"Device mapper support"是一个用来映射逻辑扇区的卷管理器。LVM使用扇区映射。

如果启用的话，设备映射器可以有调试特性(Device mapper debugging support)。

如果需要，逻辑设备可以设置加密数据(Crypt target support)。这个特性允许用户将来加密那些存储设备。

只有启用了这个特性，才能使用逻辑存储单元的快照功能(Snapshot target)。

"Thin provisioning"(自动精简配置)允许逻辑卷设置成比组成逻辑卷的物理设备拥有更大的存储容量(Thin provisioning target)。这个特性同样为这类设备提供了快照功能。这额外的虚拟数据空间无法马上使用。这个特性的意义是允许用户在将来增加物理存储单元并且节约了配置逻辑块设备的时间。

用这个可以调试"Thin provisioning" (Keep stack trace of thin provisioning block lock holders)。

块设备性能的提升可以通过移动更多的常用数据到更快的存储单元中(Cache target (EXPERIMENTAL))。

卷管理器可以制成镜像逻辑卷(Mirror target)。

设备映射器(Device-mapper (dm))单元支持映射RAID1、RAID10、 RAID4、RAID5和RAID6(RAID 1/4/5/6/10 target)。

设备映射器(device-mapper)日志可以镜像到用户空间(Mirror userspace logging)。

"Zero target"是一个忽视写入并返回读取为零的设备。

接下来，卷管理器应该对硬件有多路径支持(Multipath target)。

这个驱动会发现最有效的到存储设备的路径来读取和写入(I/O Path Selector based on the number of in-flight I/Os)。

下面的一个驱动和以上相同，但是会寻找最快路径(I/O Path Selector based on the service time)。

如果一个逻辑卷上的物理存储单元正忙，如果可能的话，这个特性会允许读取/写入到另一个物理卷上。

udev可以生成设备管理器操作事件DM uevents)。udev是/dev的设备管理器。

为了测试软件/硬件对偶尔失败的输入/输出任务的逻辑设备如何反映，启用这个调试特性(Flakey target)。

逻辑卷可以创建为一个用于验证另一个逻辑分区数据的只读存储单元(Verity target support)。

注意：如果你喜欢我的文章，并且如果你有Linux.org的账号，请在我的文章上点击"Like"。同样，再次分享这篇文章在Google、Twitter和/或者Facebook上。

ConfigFS和TCM存储引擎可以通过这个设置启用(Generic Target Core Mod (TCM) and ConfigFS Infrastructure)。ConfigFS是一个基于内存的文件系统。

有趣的事实：Linux内核没有"main()"函数。在程序中，main()被依赖于kernel的libc调用。内核没有main()函数是因为libc将无法启动内核。如果内核的确有main()函数，那么我们就有一个"鸡或者蛋"的问题-谁先来？另外，内核的入口点用汇编写成，这并不使用main()函数。

下面，"TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"可以禁用或者启用。

接着"TCM/FILEIO Subsystem Plugin for Linux/VFS"可以启用/禁用。

再次，还有两个TCM特性 - (TCM/pSCSI Subsystem Plugin for Linux/SCSI) 和 (TCM Virtual SAS target and Linux/SCSI LDD fabric loopback module)

对于ConfigFS的"Linux-iSCSI.org iSCSI Target Mode Stack"在这个驱动中支持(Linux-iSCSI.org iSCSI Target Mode Stack)。

下一步，可以启用/禁用"FireWire SBP-2 fabric module"。这允许一台计算机作为一个硬盘连接到另一台计算机上。

在这之后，我们可以配置"Fusion Message Passing Technology (MPT) device support"。

在那个标题下的第一个选项是一个用于并口适配器的SCSI支持的驱动(Fusion MPT ScsiHost drivers for SPI)。

SCSI同样也可以支持光纤通道主机适配器(Fusion MPT ScsiHost drivers for FC)和/或SAS适配器(Fusion MPT ScsiHost drivers for SAS)。

下一步，用户可以设置"Maximum number of scatter gather entries"。一个低的数值可以减少每个控制器实例的内存消耗。

下一个驱动提供了ioctl系统调用来管理MPT适配器(Fusion MPT misc device (ioctl) driver)。

光纤通道端口可以用这个驱动支持IP LAN的流量(Fusion MPT LAN driver)。

我可以读到你们的想法-你们会想到对于这个还有另外一篇文章。是的，你们想对了。请继续关注这个系列的下一篇文章。

如果你喜欢这个系列，请在Linux.org和/或者Google+上发表评论告诉我你有多喜欢这个系列，并且告诉我你想在今后的文章中希望看到的方面。或者给我发邮件[DevynCJohnson@Gmail.com](mailto:DevynCJohnson@Gmail.com))。谢谢！

想要更多地了解作者，请检查下面的签名栏中的链接(译注：原文所在论坛有)

如果你已经完整地阅读了这篇文章，那么你应该已经看到单词"Facebook"三次了。如果没有，你没有阅读全部文章。

单词"Facebook"在这段中，上一段，和一个注解中。我打赌你阅读了上面的段落而没有通读文章来试图寻找第三个单词实例。

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-13.4714/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：18 配置内核 (14)

Summary:
你好！ 准备好读另一篇很酷的Linux内核文章了么?
接下来，在这个任务中，我们可以启用/禁用"Fusion MPT logging facility"。MPT代表"Message Passing Technology"(消息传递技术)。Fusion驱动是由LSI Logic公司开发。 ...

# 戴文的Linux内核专题：18 配置内核 (14)

你好！ 准备好读另一篇很酷的Linux内核文章了么?

接下来，在这个任务中，我们可以启用/禁用"Fusion MPT logging facility"。MPT代表"Message Passing Technology"(消息传递技术)。Fusion驱动是由LSI Logic公司开发。MPT一种进程间使用的特定消息策略。这个技术是同步的意味着进程将会等待所需的消息。

在这之后，如果计算机处理拥有火线端口就应该启用"FireWire driver stack"。如果没有，那么就没有必要去启动一个不会使用到的火线驱动。火线很像USB。不过在协议、速度、物理形状和端口布局上不同。通常上，苹果设备使用火线和USB。一些PC有火线端口，但是不像USB口那样普及。

一些火线控制器使用OHCI-1394规范(OHCI-1394 controllers)。如果是这样，启用这个驱动。

为了使用火线存储设备，启用下一个驱动(Storage devices (SBP-2 protocol))。这个驱动提供了火线存储单元与火线总线通信的协议(the card with the attached FireWire ports)。一些火线扫描仪同样需要这个驱动。

IPv4可以用在火线端口(IP networking over 1394)。IEEE 1394或者简单的"1394"就是火线。使用IPv4在火线多播有局限。

"Nosy"是"FireWire PCILynx"卡上的流量监控(Nosy - a FireWire traffic sniffer for PCILynx cards)。

下一步，可以支持I2O设备(I2O device support)。"Intelligent Input/Output (I2O)"(智能输入/输出)总线使用硬件和操作系统层的驱动。硬件驱动(hardware drivers (HDM))并不特定与任何操作系统而OS驱动(OS drivers (OSM))必须在目标操作系统上使用。OSM可以与任何HDM通信。I2O卡/总线有一个IOP- 输入/输出处理器(Input/Output Processor)。由于主CPU处理更少的数据，所以加速了系统。

只在缺乏SUN I2O控制器的系统上启用"Enable LCT notification"。I2C SUN固件不支持LCT通知。 如果目标是RAID，Adaptec I2O控制器需要下一个驱动(Enable Adaptec extensions)。

64位的直接内存访问可以在Adaptec I2O控制器上启用(Enable 64-bit DMA)。

如果允许，可以配置I2O设备(I2O Configuration support)。这个特性主要用在RAID设定中。

可以为I2O启用支持老的输入/输出控制(Enable ioctls (OBSOLETE))。

可以启用I2O总线适配器的OSM软件(I2O Bus Adapter OSM)。这组OSM被用来寻找新的在其他适配器末端的I2O设备。

下面，可以启用I2O块设备上的OSM(I2O Block OSM)。I2O硬件上的RAID控制器需要这个OSM。

下面的OSM用于I2O控制器上的SCSI或者光纤通道设备。

如果启用了(I2O /proc support)，可以通过/proc读取I2O设备的信息。

在启用/禁用了I2O特性，我们可以继续其他的内核特性。下面，我们看到"Macintosh device drivers"。这只对苹果设备有用。PC的Linux内核不应该有任何这些驱动启用。然而，正如许多说法都有例外一样。一些PC用户可能会使用苹果鼠标、键盘和/或者一些其他的苹果设备。再说一次，最好彻底地理解需求和正在开发的内核。

下一步，我们有一个用于网络的驱动(Network device support)。X11和其他的Linux软件不依赖于这个驱动，所以如果内核不会连接到另一台计算机、因特网、内联网或者网络，那么这个特性可以安全地禁用。

下面的驱动就像上面，但是特定于核心驱动(Network core driver support)。

这个驱动支持Etherchannel(Bonding driver support)。"bonding"是两条或者更多的以太网通道的融合。这也成为中继。

使用这个驱动(Dummy net driver support)，可以在Linux中设置一个虚拟网络。虚拟网络(dummy network)就像网络中的/dev/null。任何发送给虚拟网络的数据都会永久消失，因为它会发往/dev/null。IP地址没有设置。用户可以定义他们的网络相当于/dev/null。

下一步，可以支持和EQL(EQL (serial line load balancing) support)。这允许两台计算机使用SLIP或者PPP协议在两条串行连接上通信。

光纤通道是一种用于连接存储设备到计算机的快速串行协议(Fibre Channel driver support)。

TMII收发器需要这个驱动(Generic Media Independent Interface device support)。MII是一种用于最高速度为100Mbit/s以太网的接口。以太网线缆用于连接到PHYceiver，这是一种以太网收发器。

为了通过虚拟接口组织许多以太网设备，需要"Ethernet team driver support"。

"MAC-VLAN support"允许用户在特定的MAC地址和某个接口上映射数据包。

TAP字符设备可以由MAC-VLAN接口生成(MAC-VLAN based tap driver)。TAP设备从内核中获取数据包，这样它们就可以被送往其他地方。

下一个特性允许虚拟vxvlan接口在3层网络上创建2层网络(Virtual eXtensible Local Area Network (VXLAN))。这通常用于隧道虚拟网络。

内核发送给网络的消息可任意通过这个特性记录下来(Network console logging support)。除非记录网络信息对你很重要时才启用它。禁用这个特性会增强性能。

这个特性允许不同参数被改变(Dynamic reconfiguration of logging targets)。这些参数包括端口号、MAC地址、IP地址和其他一些设定。

如果用户空间程序希望使用TAP设备，那么启用这个特性可以允许这样的活动(Universal TUN/TAP device driver support)。

这个驱动用于本地以太网隧道(Virtual ethernet pair device)。

"Virtio network driver"用于QEMU、Xen、KVM和其他虚拟机。

下一步，可以启用"ARCnet support"。ARCnet是一种类似令牌环本地局域网络(Local-Area-Network (LAN)协议。ARCnet代表"Attached Resource Computer Network"(附加资源计算器网络)。

现在，我们进入到"ATM drivers"。ATM代表"Asynchronous Transfer Mode"(异步传输模式)。ATM用于电信。

Marevell以太网交换机芯片需要这个驱动(Marvell 88E6060 ethernet switch chip support)。同样，这类交换机的芯片同样需要依赖模型(Marvell 88E6085/6095/6095F/6131 ethernet switch chip support)和(Marvell 88E6123/6161/6165 ethernet switch chip support)。

现在，我们可以学习关于"Ethernet driver support"。

首先我们可以启用/禁用"3Com devices"。接下来允许内核开发者选择支持哪些3Com设备。

下一组选项是对于不同的"Adaptec devices"和接下来的"Alteon devices"。

这些只是特定设备/供应商驱动。通常地，这些驱动被作为模块加入。

在设置了这两组选项后，接下来还有"AMD devices"和"Atheros devices"。

注意：请记住内核会运行在哪类硬件上。对于大量不同的设备，或许最好把它们作为模块加入

这里有不同特定供货商的设备驱动-"Cadence devices"、"Broadcom devices"、"Brocade devices"、"Chelsio devices"、"Cisco devices"、"Digital Equipment devices"。一些其他的特定设备/供应商驱动遵循它们。

接下来的驱动并不是特定设备/供应商的 "SLIP (serial line) support"。这个驱动支持SLIP和CSLIP。SLIP(Serial Line Internet Protocol)是一种用于调制解调器和串口的因特网驱动。PPP现在用来代替SLIP。CSLIP是压缩的SLIP。

下面，"CSLIP compressed headers"可以启用用来压缩TCP/IP头。CSLIP快于SLIP，但是想要启用CSLIP，传输和接收的计算机都必须理解CSLIP。

当在恶劣的模拟线路上使用SLIP时，最好启用"Keepalive and linefill"，这会帮助保持连接。

对于质量差的网络或者7bit网络中运行IP而言，最好启用"Six bit SLIP encapsulation"。

现在我们可以进入流行的USB系统，但是这些是用于网络的USB驱动。

第一个启用/禁用的USB网络设备是"USB CATC NetMate-based Ethernet device support"。这是用于10Mbps的USB以太网EL1210A芯片设备。USB设备将会扮演和成为一个以太网设备即使硬件是USB。

接下来，除了设备是KLSI KL5KUSB101B芯片组(USB KLSI KL5USB101-based ethernet device support)，其他与上面的驱动一样。

Pegasus USB是USB转以太网的适配器/转换器(USB Pegasus/Pegasus-II based ethernet device support)。

接下来是另外一个USB转以太网驱动(USB RTL8150 based ethernet device support)。

下一篇文章中，我们将继续配置USB网络系统。

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-14.4765/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ubuntu/Debian/Linux Mint 系统中使用 Tor

Summary: Tor, The Onion Router (洋葱路由)，是一种虚拟通道网络，它可使用户安全以及匿名的进行互联网通信。Tor 可以让组织及个人通过公共网络分享信息而不用担心隐私会泄露。我们可以用 Tor 来避免网站追踪我们及我们家人  ...

# Ubuntu/Debian/Linux Mint 系统中使用 Tor

**Tor**, **T**he **O**nion **R**outer (洋葱路由)，是一种虚拟通道网络，它可使用户安全以及匿名的进行互联网通信。Tor 可以让组织及个人通过公共网络分享信息而不用担心隐私会泄露。我们可以用 Tor 来避免网站追踪我们及我们家人的信息，也可以用来连接新闻网站、即时通讯服务或者那些被网络提供商和网络管理员封锁的网站。

Tor 最初是当做第三代[美国海军研究实验室的洋葱路由项目](http://www.onion-router.net/)而设计、实现及发展起来的。在美国海军心中，最初设计Tor的目的是为了政府的通信安全，但到了今天，出于各种各样的目的，Tor正在供普通人、军队、记者、执法人员、活动家以及其他更多的人每天使用。

这篇快速教程中，我们会学到怎么在浏览器上使用 Tor。下面所示的操作步骤是 Ubuntu 13.04 桌面系统中测试的，但它在所有的 Debian/Ubuntu 系统及它们的衍生系统中应该也适用。

### 在 Ubuntu / Debian / Linux Mint 上安装 Tor 和 Vidalia

Tor 在 Debian/Ubuntu 系统的默认源库中已经存在，但它们有点过时了。所以得把 Tor 源库加入你发行版的源列表中。

编辑 **/etc/apt/sources.list** 文件，

```
$ sudo nano /etc/apt/sources.list

```

根据你系统的发行版本添加如下的一行。因为在我的 Ubuntu 13.04 桌面系统上做测试，所以我添加了如下的一行。

```
[...]
deb     http://deb.torproject.org/torproject.org raring main

```

保存并关闭文件。如果你使用的是 buntu 13.10 系统，添加行应该是，

```
deb     http://deb.torproject.org/torproject.org saucy main

```

Debian 7 Wheezy 如下：

```
deb     http://deb.torproject.org/torproject.org wheezy main

```

用如下命令添加 gpg 密钥：

```
$ gpg --keyserver keys.gnupg.net --recv 886DDD89
$ gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

```

用下面命令更新源库列表及安装 vidalia：

```
$ sudo apt-get update
$ sudo apt-get install tor vidalia deb.torproject.org-keyring

```

在安装期间，你会被问到要用哪一个用户来负责 Tor 服务，选择一个用户然后点击 OK。

现在 Vidalia 已经安装运行了。

### 配置火狐浏览器

打开浏览器。进入 **编辑 -> 首选项 -> 高级 -> 网络 ->设置**。如下截图所示，选择手动配置代理，在 SOCKS Host 一栏，输入 **localhost** 或者 **127.0.0.1**，在端口一栏输入 **9050**。

现在，在浏览器上输入网址 **<https://check.torproject.org/>**。你会看到一个绿色的讯息：“**恭喜。这个浏览器配置为可以使用Tor**“。红色的消息表明 Tor 还没有设置。请参考下面的截图。

相同的设置适用于所有浏览器，只要打开浏览器设置/首选项窗口，找到网络设置，在代理服务器栏中输入 **127.0.0.1**,在端口选项框中输入**9050**。要禁用 Tor，在浏览器设置中选择**使用系统代理设置**。

**注意**: 如果你想使用 Tor 匿名浏览网页，请阅读我们有关[Tor浏览器套件](http://www.unixmen.com/protect-your-online-privacy-with-tor-browser/)的文章,它提供了易于配置的Tor以及浏览器补丁包，以使匿名访问更方便。要直接使用SOCKS（即时通讯，Jabber，IRC等），你可以直接在 Tor（本地端口9050）配置里指向你的应用程序，但需要先看看[这些FAQ条目](https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ#SOCKSAndDNS)来了解这么做的风险。

就这么多。好运吧！保持安全！

---

via: <http://www.unixmen.com/configure-browser-use-tor-ubuntu-debian-linux-mint/>

译者：[runningwater](https://github.com/runningwater) 校对：[Mr小眼儿](http://blog.csdn.net/tinyeyeser)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


8个有趣的Linux提示与技巧！

Summary:
我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致，这里有8个我们从读者收到最有趣的提示和技巧。我们希望你喜欢它。请继续读下去。。。

以它们的大小列出文件
如果你想要一个基于它们大小排序的文件  ...

# 8个有趣的Linux提示与技巧！

我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致，这里有8个我们从读者收到最有趣的提示和技巧。我们希望你喜欢它。请继续读下去。。。

<img src="content_image/album_201401_30_2200220gt6to7h06dtbi0b.png" alt="" title="">

### 以它们的大小列出文件

如果你想要一个基于它们大小排序的文件列表，你可以使用下面的命令。

它会以递减顺序排列文件。

```
# ls -l | grep ^- | sort -nr -k 5 | more

```

如果你想要递归地做相同的事，你可以使用下面的第二个命令。

```
# ls -lR | grep ^- | sort -nr -k 5 | more

```

*—Sumedh Gajbhiye, [sumedh.gajbhiye1985@gmail.com](mailto:sumedh.gajbhiye1985@gmail.com)*

### 重置奇怪的终端

如果感觉你的bash终端错误地显示垃圾的提示字符信息，并无论你输入任何命令都显示非ASCII字符-下面的命令可以让事情回到正轨。

在终端盲打输入（译注：因为你其实看不到你输入的这些字符的正确显示，不过尽管输入好了！）下面的命令并按回车：

```
# reset

```

如果那个不能修复这个问题，试一下下面的:

```
# stty sane

```

*—Sudheer Divakaran, [cdsudheer@gmail.com](mailto:cdsudheer@gmail.com)*

### 记录并回放终端会话

下面是一个简单的贴士来记录并回放终端回放。它通过使用命令script和scriptreplay。

这在使用终端制作教程时非常方便。

要开始记录你的终端会话，使用下面的命令：

```
$ script -t 2> timing.log -a output.session

```

接着输入:

```
$ ls
$touch test
.....

$ exit

```

这里，script命令取两个文件作为参数timing.log(它记录了每个命令执行的时间信息)和output.session(存储了命令的输出)。

现在，要回访记录的会话，使用下面所示的scriptplay。

```
$ scriptreplay timing.log output.session

```

注：timing.log和output.session可以被任何想要在自己的终端上重放会话的人使用。

*—Abhishek Singh, [abhishekkumarsingh.cse@gmail.com](mailto:abhishekkumarsingh.cse@gmail.com)*

### 使用shell脚本生成随机数

有时当你想要用shell脚本编程时，可能需要生成一个随机数来用于脚本。

这里是获得一个3位随机数的代码。

```
var=$(dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d” “ | cut -c 3-5);

```

这回存储随机生成的数字在名为var的变量中。

*—Arpan Chavda, [09bce006@nirmauni.ac.in](mailto:09bce006@nirmauni.ac.in)*

### 以root用户运行Linux上的软件

作为一名root用户，为了让某些不能在root身份运行的软件运行（译注：典型的是google chrome），你需要在软件的二进制文件中改变geteuid调用为getppid。

这个技术在操作系统中非常有用，比如backtrack，这里的大多数安装工作都以root用户完成。

比如:为了以root用户运行Google Chrome，使用下面的命令:

```
# hexedit /opt/google/chome/chrome

```

接着按下Ctrl+S并在16进制转储文件中搜寻geteuid字符串。用字符串getppid代替。按下Ctrl+X来保存并退出编辑器。

现在浏览器就可以以root用户运行了。

```
# google-chrome

```

*—Mayank Bhanderi, [mbhanderi24@gmail.com](mailto:mbhanderi24@gmail.com)*

### 用gzip压缩优化你的站点

压缩是一种简单、有效的方法来节约带宽和加速你的站点。在压缩的帮助下，多数站点的主页面会从100KB变成10KB。

为了在Apache Web服务器中启用这个特性，你需要在httpd.conf中包含deflate\_module，并且在Apache配置文件中加入下面的行 (/etc/httpd/conf/httpd.conf)来压缩text、html、 javascript、 css 和 xml 文件:

```
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

```

*—Munish Kumar, [munishtotech@gmail.com](mailto:munishtotech@gmail.com)*

### 在登陆时检查服务器负载信息

这里有一个贴士来在你登陆服务器的时候检查服务器平均负载。创建一个sload.sh的文本文件，内容如下:

```
#!/bin/bash
gh=$(uptime | awk -F, ‘{print $3}’)
echo -e “Server$gh\n”

```

现在，为了在登陆时检查服务器负载，通过/root/.bashrc调用sload.sh脚本。

记住如下设置脚本权限：

```
# chmod 755 /root/sload.sh

```

要调用sload.sh脚本，如下在/root/.bashrc后追加

```
/root/sload.sh

```

或者你还可以这样追加sload.sh的内容到.bashrc中。

```
$echo “/root/sload.sh” >> /root/.bashrc

```

当你完成上面的步骤后，你可以登出并再次登陆来查看服务器负载。

*—Ranjith Kumar T, [ranjith.stc@gmail.com](mailto:ranjith.stc@gmail.com)*

### 在特定时间开始你的任务

你可以使用下面的命令来在特定时间调度你的作业：

```
# at 2015

> >vlc /music/rockstar.mp3

```

这个命令会在2015小时后使用vlc播放器播放rockstar.mp3。你可以在at命令后跟上-l选项来检查挂起的作业：

```
# at -l

```

更多at命令的信息可以在man页找到。

*—Manas Pradhan, [acmeofmanas@gmail.com](mailto:acmeofmanas@gmail.com)*

---

via: <http://www.efytimes.com/e1/fullnews.asp?edid=127250>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在Linux Mint 16中正确安装Ubuntu One

Summary: 由于Linux Mint是基于 Ubuntu 的，所以我认为 Ubuntu One 应该是预装程序之一。不过我错了。我自行从 Software Manager 安装了 Ubuntu One，令我惊讶的是，它居然无法正常运行。在这篇教程中我们会告诉你如何在 Linu ...

# 如何在Linux Mint 16中正确安装Ubuntu One

<img src="content_image/album_201402_01_10533567ff1y6n1svhzl5v.jpg" alt="" title="">

由于[Linux Mint](http://www.linuxmint.com/)是基于 Ubuntu 的，所以我认为 Ubuntu One 应该是预装程序之一。不过我错了。我自行从 Software Manager 安装了 Ubuntu One，令我惊讶的是，它居然无法正常运行。在这篇教程中我们会告诉你**如何在 Linux Mint 16中安装 Ubuntu One** 以及如何正常运行它。

### 在Linux Mint 16 中安装 Ubuntu One:

当你通过 Software Manager 安装 Ubuntu One 客户端以后，你准备打开并配置它时，你甚至都无法在菜单搜索里面找到它。就像是完全没有安装过一样。但你查看 Software Manager，又显示它已经安装完成了。问题到底出在哪了？

问题的关键是 **Ubuntu One installer** 需要 **ubuntuone-control-panel-qt** 包。这个包没有安装，你的 Ubuntu One 的安装过程就无法运行。要解决这个问题，打开终端 (Ctrl+Alt+T)并运行下面的命令：

```
sudo apt-get install ubuntuone-control-panel-qt

```

现在你在菜单里面搜索，你会发现 Ubuntu One 已经存在了。现在你可以配置账户，选择哪些同步和哪些不同步。现在你可能觉得你已经解决了所有的问题，这时你会发现 **Ubuntu One 指示器并没出现在面板上**。

### 在 Linux Mint 16 中安装 Ubuntu One indicator:

你可以通过添加以下的 PPA 在 Linux Mint 中获取 Ubuntu One indicator 程序：

```
sudo add-apt-repository ppa:rye/ubuntuone-extras
sudo apt-get update
sudo apt-get install indicator-ubuntuone

```

注销并重新登录后，你会看到这个指示器已经出现在面板中。与此同时，你的 Ubuntu One 也全部安装完成了。我希望这篇 **在 Linux Mint 中安装 Ubuntu One** 会对你有所帮助。欢迎提出问题和建议。

---

via: <http://itsfoss.com/ubuntu-one-linux-mint-16/>

译者：[乌龙茶](https://github.com/yechunxiao19) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


ls命令的20个实用范例

Summary:
Linux中一个基本命令是ls。没有这个命令，我们会在浏览目录条目时会遇到困难。这个命令必须被每个学习Linux的人知道。
ls是什么
ls命令用于列出文件和目录。默认上，他会列出当前目录的内容。带上参数后，我们可以用 ...

# ls命令的20个实用范例

Linux中一个基本命令是ls。没有这个命令，我们会在浏览目录条目时会遇到困难。这个命令必须被每个学习Linux的人知道。

### ls是什么

ls命令用于列出文件和目录。默认上，他会列出当前目录的内容。带上参数后，我们可以用ls做更多的事情。这里是一些在日常操作中使用到的ls用法的示例。

#### 1. 不带参数运行ls

不带参数运行ls会只列出文件或者目录。看不到其他信息输出（译注：有时候你发现无参数的ls命令和这里描述的不同，那有可能是你的ls命令实际上带参数的ls别名）。

$ ls

#### 2. 使用长清单模式

使用-l字符(小写L字符),会显示当前目录内容的长列表。在接下来的例子中，我们会结合-l参数(这个参数经常使用)来得到更好的结果。

$ ls -l

这里是如何读取输出 :

* **第1列**

	+ 第一个字母**d**意味着内容是目录或者文件。在上面的截图中，Desktop、 Documents、 Downloads 和 lynis-1.3.8是目录。如果是'-'(**减号**)，这意味着它的内容是文件。当它是l(**小写l字符**)，意味这内容是链接文件。
	+ 下面的9个字符是关于文件权限。**前3个rwx**字符是文件的拥有者的权限，**第二组3rwx**是文件的所有组的权限，**最后的rwx**是对其他人访问文件的权限。
* **第2列** 这行告诉我们有多少链接指向这个文件。
* **第3列** 这行告诉我们谁是这个文件/文件夹的所有者。
* **第4列** 这行告诉我们谁是这个文件/文件夹的所有组。
* **第5列** 这行告诉我们这个文件/文件夹的以字节为单位的大小。 目录的大小总是4096字节。
* **第6列** 这告诉我们文件最后的修改时间。
* **第7列** 这告诉我们文件名或者目录名。

#### 3. 显示文件大小

以字节为单位看大小可能会不方便。6.5M读起来比6727680字节更简单。要这么做，我们可以使用-h与**-l**结合的参数。**-h参数意味着便于人识别**。

$ ls -lh

另外一个可以这么做的参数是**--si**。这个参数和-h参数类似，但是**-si以1000为单位，而-h以1024为单位**。

$ ls -si

#### 4. 排序文件大小

在我们可以显示文件大小之后，我们希望以文件大小排序。我们可以使用-S参数来这么做。这列表会从大到校排序。

$ ls -lhS

#### 5. 测量大小

ls可以通过使用**-block-size=SIZE**改单位大小。这里的SIZE是：

```
K = Kilobyte
M = Megabyte
G = Gigabyte
T = Terabyte
P = Petabyte
E = Exabyte
Z = Zettabyte
Y = Yottabyte

```

比如，我们希望使用MB作为单位大小。所以语法就会像这样:

$ ls -l --block-size=M

#### 6. 显示隐藏文件

在Linux中，以"."(**点号**)开头的文件是隐藏文件。为了在ls命令中显示它，我们可以使用**-a**选项。

$ ls -a

#### 7. 只列出目录条目

如果我们希望只列出目录，我们可以使用**-d**选项。

$ ls -d \*/

#### 8. 不打印所有者信息

要这么做，我们使用**-g**选项。

$ ls -g

#### 9. 不打印组信息

-g隐藏了拥有者信息，**—G**会隐藏组信息。

$ ls -lG

#### 10. 打印UID和GID

如果你想以数字方式列出项的所有者和所有组（即UID和GID），我们可以带**-n**选项使用ls命令。这里是个例子。

$ ls -n

从上面的例子中，我们知道**用户pungki的UID**是100，**GID是1000**，而**root组的GID是0**。

#### 11. 不带颜色打印

一些Linux发行版已经对ls命令启用彩色。这会使ls以各种颜色打印列表。如果你不想要这样，你可以使用 **--color=never** 参数。

$ ls --color=never

#### 12. 打印每个文件的索引号

为了打印索引或者大家俗称的inode号，我们可以使用-i选项。索引号会显示在第一列。

$ ls -li

#### 13. 增加 / (斜线) 标记目录

要这么做，使用**-p选项**。

$ ls -p

#### 14. 排序时反转顺序

你或许需要在列出条目时反转顺序。要这么做，你可以使用**-r**选项。

$ ls -r

#### 15. 递归列出子目录

带**-R**参数后，你可以列出包含它子目录的目录。

$ ls -R

#### 16. 扩展名排序

你可以使用-X参数或者--sort=extension来通过扩展名来排序（译注：这样对于筛选不同类型的文件很有用）。

$ ls -lX

**或**

$ ls --sort=extension

#### 17. 通过修改时间列出

使用-t选项会按修改时间排序，新的文件在前。

$ ls -lt

#### 18. 列出你的主目录

要列出你的主目录，你可以用"~"(**波浪号**)来代表它。这样你就不必输入完整的目录名。让我们假设家文件名为**/home/pungki**，那么**波浪号**就对/home/pungki有意义了。

$ ls ~

#### 19. 列出父目录

无论你在那个目录，你可以列出父目录而不必输入完整路径。这是个例子。

$ ls ../

这回列出**1**层之上的目录内容。

$ ls ../../

这回列出**2**层之上的目录内容（译注：可不支持“...”来代表2层之上）。

#### 20. 打印ls命令版本

使用--version参数打印它。

$ ls --version

### 总结

这些是在日常操作中会使用到的参数。当然你总可以输入**man ls** 或者 **ls --help** 来查询ls的手册页

---

via: <http://linoxide.com/linux-command/linux-ls-command/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在Arch上使用Syslinux替代GRUB

Summary:
这个教程用于教授Arch Linux用户如何在Arch下安装Syslinux一个轻量级、快速并且现代感十足的系统引导程序，用来替换掉系统自带的GRUB引导程序。

实际上，Syslinux不是一个简单的开机启动装载程序，它支持多种启动引 ...

# 在Arch上使用Syslinux替代GRUB

这个教程用于教授Arch Linux用户如何在Arch下安装Syslinux——一个轻量级、快速并且现代感十足的系统引导程序，用来替换掉系统自带的GRUB引导程序。

<img src="content_image/album_201402_03_211310qzolgma3gqgglcmq.jpg" alt="" title="">

实际上，Syslinux不是一个简单的开机启动装载程序，它支持多种启动引导方式，本地载入，通过PXE网络载入，以及通过可移动媒体载入。并且，它还同时支持MBR和GPT磁盘，以及RAID设置。

在开始你实际操作之前，你应该知道Syslinux支持如下文件系统：FAT，EXT2，EXT3，EXT4和Btrfs，而且Syslinux能够运行在支持UEFI或BIOS的机器上。到目前为止，Syslinux还不能访问自己所在的分区之外的文件。

在你替换GRUB启动之前，请认真考虑，这只是一个可选的尝试，这个尝试有可能会给你带来一些麻烦。如果说你只是想感受一下新鲜的事物，或是已经厌倦了GRUB的界面，没问题来尝试尝试Syslinux吧。

### 在Arch box 中安装Syslinux

该说的都说完了，下面我们来开始安装Syslinux，准备替换掉已有的GRUB或者GRUB2启动程序。打开一个终端，输入如下命令来安装Syslinux

```
sudo pacman -S syslinux

```

安装完成后，你应该注意到一条消息，将指导您如何分别在BIOS或UEFI机器上部署Syslinux引导装载程序。BIOS用户比较幸运，因为他们只需要运行syslinux-install\_update 脚本就行了，这个脚本是Matthew Gyurgyik编写的，用来在BIOS机器上成功的部署Syslinux。

### 在Arch box上部署Syslinux

如果你拥有的是一个单独的/boot分区，你要保证你是在/boot分区上执行的这个脚本。在终端中输入如下命令：

```
sudo syslinux-install_update -i -a -m

```

这个脚本会安装必需的文件，并且用启动标记标记分区，同时会安装MBR引导代码。

### 配置Syslinux

这是非常非常重要的一步，任何人都不能忽略它，因为如果你的Syslinux没有正确的配置，你的电脑将不能启动。请再次注意。

目前，Syslinux能通过/boot/syslinux/syslinux.cfg文件进行配置。在[the official Arch Linux page of Syslinux](https://wiki.archlinux.org/index.php/syslinux#Configuration) 中查看详细的配置指令。当你配置成功后，重启你的系统然后来看看新的启动引导程序效果如何！

如果你有任何的问题，请毫不犹豫的在评论中提出！

---

via: <http://news.softpedia.com/news/How-to-Replace-GRUB-with-Syslinux-on-Arch-Linux-415394.shtml>

译者：[dy2009](https://github.com/dy2009) 校对：[Mr小眼儿](http://blog.csdn.net/tinyeyeser)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在Linux上将视频转换成动态gif图片

Summary: 虽然曾经被认为是过时的艺术形式，但动态GIF图片现在复苏了。如果你还没有留意到，不少在线分享和社交网络网站都开始支持动态GIF图片，例如，Tumblr，Flickr，Google+和Facebook的部分地方。由于在消费和共享上的容  ...

# 在Linux上将视频转换成动态gif图片

虽然曾经被认为是过时的艺术形式，但动态GIF图片现在复苏了。如果你还没有留意到，不少在线分享和社交网络网站都开始支持动态GIF图片，例如，[Tumblr](http://staff.tumblr.com/post/15623140287/1mb-gifs)，[Flickr](http://www.flickr.com/photos/markus-weldon-imagebank/4439159924/sizes/o/in/photostream/)，[Google+](https://plus.google.com/communities/110524851358723545415)和[Facebook的部分地方](http://mashable.com/2013/08/29/gifs-return-to-facebook/)。由于在消费和共享上的容易，GIF的动画已经成为主流互联网文化的一部分了。

<img src="content_image/album_201402_03_2153247sm6z28pmus46m8t.png" alt="" title="">

所以，你们中的一些人会好奇怎样才能生成这样的动态GIF图片。已经有各种各样专门用来生成动态GIF图片的在线或离线工具。另一种选择是创建一副动态GIF图片时关闭现有的视频剪辑。在这个教程中，我会描述**在Linux上如何将一段视频文件转换成一副动态GIF图片**。

作为一个更有用的例子，让我展示如何**将一个YouTube视频转换成一副动态GIF图片**。

### 第一步：下载YouTube视频

首先，下载一个你想要转换的YouTube视频。你可以使用[youtube-dl](http://xmodulo.com/2013/03/how-to-save-youtube-videos-on-linux.html)这个工具将YouTube视频保存为MP4文件。假设你把你最爱的YouTube视频保存为"funny.mp4"。（译注：对于墙内的同学，请无视YT吧，自行去好人楼主那里寻找一个MP4吧，;-}）

### 第二步：从视频中解压视频帧

接下来，在Linux系统上[安装FFmpeg](http://xmodulo.com/2013/03/how-to-save-youtube-videos-on-linux.html)，我会用这个工具去解压从视频中解压出视频帧。

下面的指令会解压出独立的视频帧，将它们保存为GIF图片。确保使用诸如("out%04d.gif")的输出文件格式。这样，独立的帧就被合适地命名并保存。

```
ffmpeg -t  -ss  -i  out%04d.gif

```

例如，如果你想解压输入视频的视频帧，从第10秒开始，每5秒一帧，请运行下列命令。

```
$ ffmpeg -t 5 -ss 00:00:10 -i funny.mp4 out%04d.gif

```

在完成FFmpeg之后，你会看到一组创建出来的GIF文件，它们被命名为"out[\d+].gif"。

### 第三步：合并视频帧进一副动态GIF

下面这一步要合并单个的GIF文件成一副动态GIF图片。为此，你可以使用ImageMagick。

首先，如果你还没有的话，在Linux系统上[安装ImageMagick](http://ask.xmodulo.com/install-imagemagick-linux.html)。

```
convert -delay x -loop 0 out*gif

```

在这个命令中，"-delay"是控制动态速度的选项。这个选项表示在显示下一帧画面前需要等待的秒数：帧数/每秒帧数 。"-loop 0"选项表示动画的无限次循环。如果你愿意，你可以指定"-loop N"让动画只重复N次。

例如，为了生成一副每秒20帧和循环无数次的动态GIF图片，使用如下命令。

```
$ convert -delay 1x20 -loop 0 out*.gif animation.gif

```

### 第四步（可选）：减少动态GIF的大小

最后这一步（可选）是通过使用ImageMagick的GIF优化功能来减少生成的GIF文件的大小。

使用下列命令去减少GIF大小。

```
convert -layers Optimize animation.gif animation_small.gif

```

现在你已经准备好在你的社交网络上分享制作完成的GIF图片。

享受技术带来的乐趣吧！:-)

---

via: <http://xmodulo.com/2013/11/convert-video-animated-gif-image-linux.html>

译者：[KayGuoWhu](https://github.com/KayGuoWhu) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary:
1) Linux 3.13
Linus Torvalds 前一段时间释出了 Linux Kernel 3.13 作为2014年的开门红。按照惯例，此版本更新了大量驱动。
并且，Linux Kernel 3.13 包含了 nftable，这个软件是大名鼎鼎的 iptables 的继任者。从  ...

# Linux 安全新闻: Linux 3.13、SystemRescueCD 4和BackBox 3.13

### 1) Linux 3.13

Linus Torvalds 前一段时间释出了 Linux Kernel 3.13 作为2014年的开门红。按照惯例，此版本更新了大量驱动。

并且，Linux Kernel 3.13 包含了 nftable，这个软件是大名鼎鼎的 iptables 的继任者。从提交的代码来看，nftables 继续使用现存的网络过滤钩子(netfilter hooks)、连接追踪系统、NAT 子系统、透明代理引擎、日志基础架构和用户空间包排列设施。

>
> “简而言之，nftables 提供4个128位的普通寄存器和1个特殊寄存器用于保存结论”，代码提交的注释上说道，“并且 nftables 继承了 iptables 的“table/chain/rule 对象”这些概念，但提供了更灵活的配置方式，它也包含原先映射支持的未知数据类型架构。”
>
>
> 值得注意的是这次还支持 NFC（近场通信）支付协议。
>
>
> “使用 NFC*CMD*SE*IO 命令发送 ISO07816 应用协议数据单元到 NFC 嵌入式安全设备，”Intel 开发人员 Samuel Ortiz 在他的提交[信息](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5ce3f32b5264b337bfd13a780452a17705307725)中写道：“反馈信息也是通过 NFC*CMD*SE*IO 返回到用户空间的。”
>
>
>

### 2) System Rescue CD 4.0.0

<img src="content_image/album_201402_04_222556jsmfkzjnmfsjmbjl.jpeg" alt="" title="">

大多数人都会使用 Linux 作为服务器或桌面系统，其实我们还可以把一个 Linux 系统拿来救援一个非 \*nix 系统。

用于恢复系统和数据的 Linux 发行版中，比较流行的一个是“SystemRescueCd”，它在上周更新到了4.0.0版。

以下是它的[更新记录](http://www.sysresccd.org/Changes-x86)：

* 标准内核：长期支持（LTS）版 linux-3.10.25（内核镜像包含32位的 rescue32 和 64位的 rescue64）
* 备用内核：最新稳定版 linux-3.12.7（内核镜像包含32位的 altker32 和 64位的 altker64）
* XOrg 图形环境和驱动更新到 xorg-server-1.14.3
* GParted 更新到 0.17.0（添加在线重新分区的功能）
* btrfs 工具集更新到 sys-fs/btrfs-progs-3.12

### 3) BackBox 3.13

Linux 也是那些安全专家们手中的强大武器，而 BackBox 就是一个专注于安全的 Linux 发行版（BackBox 主要面对安全评估和渗透测试 —— 译者注）。最新版的 BackBox 更新了大量组件，有一点很奇怪，它没有使用最新的 Linux 3.13 内核，而用了 Linux 3.11 内核。

现在的 BackBox 发行版可以在匿名模式下更新安全工具。

---

via: <http://www.linuxplanet.com/news/linux-top-3-linux-3.13-system-rescue-4-and-backbox-3.13.html>

译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在 Linux Mint 16 中安装图标主题

Summary: 如果你觉得默认的 Mint 主题和图标并不足以满足你，为何不来点改变呢？在这篇初学者快速教程中，我们会指导你如何在Linux Mint 16中安装图标主题以及如何改变图标。我们将通过安装绚丽的 Moka 图标主题来学习本教程 ...

# 如何在 Linux Mint 16 中安装图标主题

如果你觉得默认的 Mint 主题和图标并不足以满足你，为何不来点改变呢？在这篇初学者快速教程中，我们会指导你如何**在Linux Mint 16中安装图标主题**以及**如何改变图标**。我们将通过安装绚丽的 Moka 图标主题来学习本教程。

小小提一下，可能你以前不知道，主题和图标主题之间是有区别的。图标主题只是改变图标的外观，而主题则改变了包括图标在内其余很多东西的外观。

### 在 Linux Mint 16 中安装图标主题:

在Linux Mint（以及其他大部分的Linux发行版）中有个两种方法来安装图标主题。如果你下载了图标主题的压缩包，你可以在~/.icons目录下解压它。通常这个目录并不存在，你可以随意创建它。

安装图标主题的第二种方法是使用 [PPA](http://en.wikipedia.org/wiki/Personal_Package_Archive)。大多数流行的图标主题都有自己的 PPA。让我们来看看如何使用 PPA 在 Mint 中安装 Moka 图标。

### 在 Linux Mint 16 中安装 Moka 图标主题:

打开 terminal（Ctrl+Alt+T）并输入下面的命令：

```
sudo add-apt-repository ppa:moka/moka-icon-theme
sudo apt-get update
sudo apt-get install moka-icon-theme

```

### 在 Linux Mint 16 中改变图标:

[在 Ubuntu 中改变图标主题](http://itsfoss.com/how-to-install-themes-in-ubuntu-13-10/)是非常简单直接的。不过在 Linux Mint 中稍微隐藏了一下。你安装了图标主题后，在菜单中选择 **Setting**，然后选择 **Themes**。

现在你可能已经明白为什么我说在 Linux Mint 中的图标更改稍微隐藏了。至少第一眼，你不会找到一个选项来改变图标。只改变图标，选择 **Other settings** 并点击 **Icons**。你会在这里找到所有的图标设置。选择你喜欢的一个。

改变会立即生效，并不需要重启。下面是我的 Linux Mint 使用 Moka 图标主题后的桌面：

我希望这篇教程能帮助你实现图标主题的修改。不要忘记 Ubuntu 13.10 的5个最好图标主题，你可以使用任何你喜欢的图标主题来使你的桌面变得更漂亮。如有任何问题、建议以及想法，请在下面评论栏留下您的评论。

---

via: <http://itsfoss.com/install-icon-linux-mint/>

译者：[乌龙茶](https://github.com/yechunxiao19) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


userdel 命令 - 从Linux系统中删除用户账户

Summary:
在服务器上维护用户就是添加、修改以及删除用户。当一个用户出于某种原因不再需要登录系统时，我们需要删除此用户以避免安全漏洞。在Linux系统上，我们用 userdel 命令来删除一个用户。

userdel是什么
userdel 是一 ...

# userdel 命令 - 从Linux系统中删除用户账户

在服务器上维护用户就是添加、修改以及删除用户。当一个用户出于某种原因不再需要登录系统时，我们需要删除此用户以避免安全漏洞。在Linux系统上，我们用 **userdel** 命令来删除一个用户。

### userdel是什么

userdel 是一个底层用于删除用户的工具。在 Debian 上，我们通常会使用 deluser 命令。userdel 会查询系统账户文件，例如 **/etc/password** 和 **/etc/group**。那么它会删除所有和用户名相关的条目。在我们删除它之前，用户名必须存在。

### 如何使用userdel

由于 userdel 会修改系统账户文件，那么我们**需要root特权**来运行它。不然我们会遇到一个报错信息“*只有root权限才能执行这项操作*”或者类似的信息。在我们得到特权后，我们可以通过输入 userdel 从你的控制台删除用户。下面是一个默认使用 userdel 的样例。

```
$ sudo userdel pasadena

```

或者

```
# userdel pasadena

```

正如你所见，我们不能没有root权限而删除用户 pasadena。当我们有权限时，系统不会给出错误信息，这意味着用户已经成功删除。

### 完全删除用户家目录

不带选项使用 userdel，只会删除用户。用户的家目录将仍会在/home目录下。

当我们进入/home目录时，我们仍旧可以看到ID 1002拥有 pasadena 文件夹。已创建的用户通常会有一个与用户名相同的组名。1002是 pasadena 用户名的 UID 和 pasadena 组名的 GID。

为了在删除用户时完全删除家目录，我们可以使用 **-r** 选项。这个选项同样会删除用户的邮件池，如果存在的话。

### 强制删除一个用户

userdel 提供了 **-f** 选项来强制删除用户。甚至当用户已经登入 Linux 系统时此选项仍旧生效。请看一下示例截图。

截图的上面显示用户 pasadena 已经登录了系统。它被标记的进程**6218**是 SSHD 进程。而当我们用“**userdel -f pasadena**”只会显示已经登录的要被删除的用户信息。命令本身已经成功。如果我们使用[cat 命令](http://linoxide.com/linux-command/13-cat-command-examples/)查看**/etc/passwd**的内容，我们看不到到用户 pasadena 存在了。他的家目录还存在但是所有者只能显示为数字ID。

有一件事我们必须了解，带 **-f** 选项的 userdel **不会断开** 该用户已有的 SSH 链接。因此，即使用户已经不存在，但实际上仍是登录状态，并且是活跃用户。但是当用户登出后不可再登录，因为用户已经被删除。

因此**所以这个选项使用起来有些危险**，因为它会使你的系统进入不一致的状态。

### 总结

userdel 是一个 Linux 系统内部删除用户的工具。userdel同样是**deluser**命令的后端，这是一个用perl编写的删除用户的脚本。如往常一样，你可以输入**man userdel**来查看关于userdel命令的更多细节。

---

via: <http://linoxide.com/linux-command/linux-userdel-command/>

译者：[geekpi](https://github.com/geekpi) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux 中如何打开一个大文本文件

Summary: 在大数据时代，我们会经常遇到有大文本文件（上 GB 或更大）的情况。假设需要我们手工的搜索和编辑这些大文件，或者为了解决一些特定的问题而需要手工分析多个上 GB 的日志文件。传统的文本编辑软件对处理这样的大文 ...

# Linux 中如何打开一个大文本文件

在“大数据”时代，我们会经常遇到有大文本文件（上 GB 或更大）的情况。假设需要我们手工的搜索和编辑这些大文件，或者为了解决一些特定的问题而需要手工分析多个上 GB 的日志文件。传统的文本编辑软件对处理这样的大文件不太有效，当我们试图打开一个大文件时会经常由于内存不足而郁闷的不行。

如果你是一个精明的系统管理员，你也许会用 cat、tail、grep、sed、awk 等这些命令的组合来打开和编辑一个文本文件。在这篇教程里，我将会谈论关于如何**在 Linux 中打开（并编辑）一个大文本文件**的更友好的方式方法。

### Vim 的 LargeFile 插件

Vim文本编辑器拥有大量的插件（或脚本），它们能扩展 VIM 的功能。其中的一个Vim插件是 [LargeFile 插件](http://www.vim.org/scripts/script.php?script_id=1506)。

LargeFile 插件可以使大文件更迅速的被加载和编辑，它是通过关闭 VIM 的一些像事件、回退、语法高亮等功能来实现的。

要在 VIM 上安装 LargeFile 插件，首先要确认是否已经安装 VIM。

在 Debian、 Ubuntu 或 Linux Mint 系统中:

```
$ sudo apt-get install vim

```

在 Fedora、CentOS 或 RHEL 系统中:

```
$ sudo yum install vim-enhanced

```

可以从 [Vim website](http://www.vim.org/scripts/script.php?script_id=1506) 上下载 LargFile 插件，最新版本号是5，下载的文件将会保存为 Vimball 格式（以 .vba 结尾）。

要在你的 home 目录下安装插件，用 VIM 打开 .vba 文件，如下所示。

```
$ gunzip LargeFile.vba.gz
$ vim LargeFile.vba

```

在 VIM 窗体上输入 “:so %”，然后按回车键，就可以在你的 home 目录下安装这个插件了。

完成后，输入 “:q” 退出 VIM。

这个插件将会被安装在 ~/.vim/plugin/LargeFile.vim 下。现在可以像平常一样使用 VIM 了。

当在 VIM 中装载一个“大”文件的时候，这个插件起的作用就是关掉事件、回退、语法高亮等功能。默认情况下大于 100MB 的文件就会被插件认为是“大文件”。要改变也个默认设置，你可以编辑 ~/.vimrc 文件（如果不存在就创建一个）。

如要把大文件的标准最小定为 10MB 的话，可以在 ~/.vimrc 中添加

>
> let g:LargeFile=10
>
>
>

虽然 LargeFile 可以加速文件装载的速度，但 VIM 自身对编辑相当大的文件支持不太好，因为它会一下子把整个文件都加载进内存。例如，用 VIM 装载 1G　大小的文件，它就会占很多内存和交换空间，如下图所示的顶部输出。

所以如果你的文件明显大于你 Linux 系统的物理内存的话，就要考虑其它的选择，如下所述。

### glogg 日志资源管理器

如果你只需要查看一个文本文件，并不对它做编辑，可以考虑下　[glogg](http://glogg.bonnefon.org/)。它是一款基于图形用户界面的独立日志分析器。这个　glogg　分析器支持通过正则表达式和通配符来对要打开的文本文件进行过滤和筛选，使用户只看到其真正关注的内容。

在 Debian (Wheezy 版本或更高版本)、Ubuntu 或 Linux Mint 系统中安装 glogg :

```
$ sudo apt-get install glogg

```

在 Fedora (17 版本或更高版本)　系统中安装 glogg :

```
$ sudo yum install glogg

```

用 glogg 打开文本文件 :

```
$ glogg test.log

```

glogg 能很快的打开一个大文本文件。我花了大约 12 秒就打开了一个 1G 的日志文件。

在 "Text" 区域，你可以输入正则表达式，然后点击 "Search" 按纽，它支持表达式大小写敏感搜索以及自动刷新功能。搜索后，在窗体底部会显示出筛选的结果内容。

从装载文件来跟 VIM 对比， glogg　显得更轻量级，在加载完一个 1G 的日志文件后，它仅仅只使用了 83M 的物理内存。

### JOE 文体编辑器

[JOE](http://joe-editor.sourceforge.net/) 是GPL下发布的一个轻量级的基于终端的文本编辑器。JOE 是一款少有的支持大文件的文本编辑器，可以打开和编辑比物理内存大的文件。

此外，JOE支持各种功能强大的文本编辑功能，如非破坏性编辑，用正则表达式搜索和替换，无限次的撤销/重做，语法高亮等。

在 Debian、Ubuntu 或 Linux Mint 系统中安装 JOE:

```
$ sudo apt-get install joe

```

在 Fedora、CentOS 或 RHEL 系统中安装 JOE:

```
$ sudo yum install joe

```

要打开编辑文本文件，请运行:

```
$ joe test.log

```

相比上面提到的 glogg 来说，用 JOE 加载一个大文本文件会有点卡，加载一个 1G 的文件要用将近 30 秒的时间，不过考虑到要对文件进行全文编辑，这还能忍受。一旦文件加载完成，就可以在相当快捷的终端模式中编辑此文件。

JOE的内存消耗令人印象深刻。加载并编辑一个1GB的文本文件，只花费47MB的物理内存。

如果你还知道在 Linux 中打开/编辑大文本文件的其它方法的话，请跟我们分享！

---

via: <http://xmodulo.com/2013/12/open-large-text-file-linux.html>

译者：[runningwater](https://github.com/runningwater) 校对：[jasminepeng](https://github.com/jasminepeng)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出