Silver Moon 发布的文章

wxWidgets

wxWidgets是一个程序开发框架/库, 允许你在Windows、Mac、Linux中使用相同的代码跨平台开发。它主要用C++写成,但也可以与其他语言绑定比如Python、Perl、Ruby。

本教程中我将向你展示如何在基于Debian的linux中如Ubuntu和Linux Mint中编译wxwidgets 3.0+。

从源码编译wxWidgets并不困难,仅仅需要几分钟。库可以按不同的方式来编译,比如静态或者动态库。

1. 下载 wxWidgets

第一步你需要从wxwidgets.org下载wxWidgets源码文件。

做完后,解压到目录。

2. 设置编译环境

要编译wxwidgets,我们需要一些工具包括C++编译器,在Linux上是g++。所有这些可以通过apt-get工具从仓库中安装。

我们还需要wxWidgets依赖的GTK开发库。

$ sudo apt-get install libgtk-3-dev build-essential checkinstall
这个叫做checkinstall的工具允许我们为wxwidgets创建一个安装包,这样之后就可以轻松的使用包管理器来卸载。

3. 编译 wxWidgets

进入到wxWidgets解压后的目录。为了保持清洁,创建一个编译用的目录。

$ mkdir gtk-build
$ cd gtk-build/

现在运行configure和make命令。每个将花费一些时间来完成。

$ ../configure --disable-shared --enable-unicode
$ make

"--disable-shared"选项将会编译静态库而不是动态库。

make命令完成后,编译就成功了。是时候安装wxWidgets到正确的目录。

更多信息请参考install.txt和readme.txt,这可在wxwidgets中的/docs/gtk/目录下找到。

4. 安装 checkinstall

现在我们不使用"make install"命令,我们使用checkinstall命令来创建一个wxwidgets的deb安装包。运行命令:

$ sudo checkinstall

checkinstall会询问几个问题,请保证在提问后提供一个版本号,否则将会失败。

完成这一切后,wxWidgets就安装好了,deb文件也会创建在相同的目录下。

5. 追踪安装的文件

如果你想要检查文件安装的位置,使用dpkg命令后面跟上checkinstall提供的包名。

$ dpkg -L package_name
/.
/usr
/usr/local
/usr/local/lib
/usr/local/lib/libwx_baseu-3.0.a
/usr/local/lib/libwx_gtk3u_propgrid-3.0.a
/usr/local/lib/libwx_gtk3u_html-3.0.a
/usr/local/lib/libwxscintilla-3.0.a
/usr/local/lib/libwx_gtk3u_ribbon-3.0.a
/usr/local/lib/libwx_gtk3u_stc-3.0.a
/usr/local/lib/libwx_gtk3u_qa-3.0.a
/usr/local/lib/libwx_baseu_net-3.0.a
/usr/local/lib/libwxtiff-3.0.a

6. 编译示例

编译wxWidgets完成后就可以马上编译示例程序了。在相同的目录下,一个新的sample目录已经创建了。

进入它并运行下面的命令

$ compile samples
$ cd samples/
$ make

make命令完成后,进入sample 子目录,这里就有一个可以马上运行的Demo程序了。

7. 编译你的第一个程序

你完成编译demo程序后,可以写你自己的程序来编译了。这个也很简单。

假设你用的是C++,这样的话你还可以使用编辑器的高亮特性。比如gedit、kate、kwrite等等。或者用全功能的IDE像Geany、Codelite、Codeblocks等等。

然而你的第一个程序只需要用一个文本编辑器来快速完成。

如下:

#include <wx/wx.h>

class Simple : public wxFrame
{
public:
    Simple(const wxString& title)
        : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150))
    {
        Centre();
    }
};

class MyApp : public wxApp
{
public:
    bool OnInit()
    {
        Simple *simple = new Simple(wxT("Simple"));
        simple->Show(true);
        return true;
    }
};

wxIMPLEMENT_APP(MyApp);

现在保存并用下面的命令编译。

# compile
$ g++ basic.cpp `wx-config --cxxflags --libs std` -o program

# run
$ ./program

和非标准的库一起编译

面展示的wx-config命令默认只支持标准的库。如果你使用的是Aui库,那么你需要指定额外用到的库。

$ g++ code.cpp `wx-config --cxxflags --libs std,aui` -o program

更多的信息参考这里这里

资源

下载wxWidgets的源码和帮助 https://www.wxwidgets.org/downloads/

wxWidgets编译的wiki页面 https://wiki.wxwidgets.org/Compilingandgetting\_started

使用wxWidgets最新版本(3.0+)的事项 https://wiki.wxwidgets.org/UpdatingtotheLatestVersionofwxWidgets


via: http://www.binarytides.com/install-wxwidgets-ubuntu/

作者:Silver Moon 译者:geekpi 校对:wxy

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

如果你不喜欢现在的Unity桌面,Gnome Flashback桌面环境是一个简单的并且很棒的选择,让你能找回曾经经典的桌面。

Gnome Flashback基于GTK3并提供与原先gnome桌面视觉上相似的界面。

Gnome Flashback的另一个改变是采用了源自mint和xface的MATE桌面,但无论mint还是xface都是基于GTK2的。

安装 Gnome Flashback

在你的ubuntu上安装以下包即可:

$ sudo apt-get install gnome-session-flashback

然后注销返回到登录界面,单击密码输入框右上角的徽标型按钮,即可选择桌面环境。可供选择的有Gnome Flashback (Metacity) 会话模式和Gnome Flashback (Compiz)会话模式。

Metacity更轻更快,而Compiz则能带给你更棒的桌面效果。下面是我使用gnome flashback桌面的截图。

桌面采用了elementary OS的壁纸和Plank dock并且移除了底部面板。这些都会在这篇教程中涉及到。

在安装好gnome flashback桌面以后也许你对效果还不满意,这样你可能需要执行接下来的一系列操作来对它进行微调。

1. 安装 Gnome Tweak Tool

Gnome Tweak Tool能够帮助你定制比如字体、主题等,这些在Unity桌面的控制中心是十分困难,几乎不可能完成的任务。

$ sudo apt-get install gnome-tweak-tool

启动按步骤: 应用程序 > 系统工具 > 首选项 > Tweak Tool

2. 在面板上添加小应用

默认的右键点击面板是没有效果的。你可以尝试在右键点击面板的同时按住键盘上的Alt+Super (win)键,这样就会出现定制面板的相关选项。

你可以修改或删除面板,并在上面添加些小应用。在这个例子中我们移除了底部面板,并用Plank dock来代替它的位置。

在顶部面板的中间添加一个显示时间的小应用。通过配置使它显示时间和天气。

同样的添加一个工作空间切换器到顶部面板,并创建合适个数的工作空间。

3. 将窗口标题栏的按钮右置

在ubuntu中,最小化、最大化和关闭按钮默认是在标题栏左侧的。需要稍作手脚才能让他们乖乖回到右边去。

想让窗口的按钮到右边可以使用下面的命令,这是我在askubuntu上找到的。

$ gsettings set org.gnome.desktop.wm.preferences button-layout 'menu:minimize,maximize,close'

4.安装 Plank dock

plank dock位于屏幕底部,用于启动应用和切换打开的窗口。它会在必要的时间隐藏自己,并在需要的时候出现。elementary OS使用的dock就是plank dock。

运行以下命令安装:

$ sudo add-apt-repository ppa:ricotz/docky -y 
$ sudo apt-get update 
$ sudo apt-get install plank -y

现在启动:应用程序 > 附件 > Plank。若想让它开机自动启动,找到 应用程序 > 系统工具 > 首选项 > 启动应用程序 并将“plank”的命令加到列表中。

5. 安装 Conky 系统监视器

Conky非常酷,它用系统的中如CPU和内存使用率的统计值来装饰桌面。它不太占资源,并且绝大部分情况下运行都不会有什么问题。

运行如下命令安装:

$ sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt-get update
$ sudo apt-get install conky-manager

现在启动:应用程序 > 附件 > Conky Manager ,选择你想在桌面上显示的部件。Conky Manager同样可以配置到启动项中。

6. 安装CCSM

如果你更愿意使用Gnome Flashback (Compiz),那么CCSM将是你配置桌面特效的得力助手。

运行以下命令安装:

$ sudo apt-get install compizconfig-settings-manager

启动按步骤: 应用程序 > 系统工具 > 首选项 > CompizConfig Settings Manager.

在虚拟机中经常会发生compiz会话中装饰窗口消失。可以通过启动Compiz设置,并启用"Copy to texture"插件,注销后重新登录即可。

不过值得一提的是Compiz 会话会比Metacity慢。


via: http://www.binarytides.com/install-gnome-flashback-ubuntu/

作者:Silver Moon 译者:martin2011qi 校对:wxy

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

linux中的tar命令

tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令。

其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩。

在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子。

使用tar命令

tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件。

tar命令具有两个压缩格式,gzip和bzip,该命令的“z”选项用来指定gzip,“j”选项用来指定bzip。同时也可以创建非压缩归档文件。

1.解压一个tar.gz归档

一般常见的用法是用来解压归档文件,下面的命令将会把文件从一个tar.gz归档文件中解压出来。

$ tar -xvzf tarfile.tar.gz

这里对这些参数做一个简单解释-

x - 解压文件

v - 冗长模式,在解压每个文件时打印出文件的名称。

z - 该文件是一个使用 gzip 压缩的文件。

f - 使用接下来的tar归档来进行操作。

这些就是一些需要记住的重要选项。

解压 tar.bz2/bzip 归档文件

具有bz2扩展名的文件是使用bzip算法进行压缩的,但是tar命令也可以对其进行处理,但是需要通过使用“j”选项来替换“z”选项。

$ tar -xvjf archivefile.tar.bz2

2.将文件解压到一个指定的目录或路径

为了将文件解压到一个指定的目录中,使用“-C”选项来指定路径,此处的“C”是大写“C”。

$ tar -xvzf abc.tar.gz -C /opt/folder/

然后,首先需要确认目标目录是否存在,毕竟tar命令并不会为你创建目录,所以如果目标目录不存在的情况下该命令会失败。

3. 提取出单个文件

为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。

$ tar -xz -f abc.tar.gz "./new/abc.txt"

在上述命令中,可以按照以下方式来指定多个文件。

$ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"

4.使用通配符来解压多个文件

通配符可以用来解压于给定通配符匹配的一批文件,例如所有以".txt"作为扩展名的文件。

$ tar -xz -f abc.tar.gz --wildcards "*.txt"

5. 列出并检索tar归档文件中的内容

如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”(test)选项, 下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。

$ tar -tz -f abc.tar.gz
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/abc.txt
...

可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。 使用"v"冗长选项将会打印出每个文件的额外详细信息。

对于 tar.bz2/bzip文件,需要使用"j"选项。

结合上述的命令和grep命令来检索归档文件,如下所示。简单吧!

$ tar -tvz -f abc.tar.gz | grep abc.txt
-rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt

6.创建一个tar/tar.gz归档文件

现在我们已经学过了如何解压一个tar归档文件,是时候开始创建一个新的tar归档文件了。tar命令可以用来将所选的文件或整个目录放入到一个归档文件中,以下是相应的样例。

下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入到归档文件中。

$ tar -cvf abc.tar ./new/
./new/
./new/cde.txt
./new/abc.txt

上述命令不会创建一个压缩的的归档文件,只是一个普通的归档文件,只是将多个文件放入到一个归档文件中并没有真正地压缩每个文件。

为了使用压缩,可以分别使用“z”或“j”选项进行gzip或bzip压缩算法。

$ tar -cvzf abc.tar.gz ./new/
文件的扩展名其实并不真正有什么影响。“tar.gz” 和“tgz”是gzip压缩算法压缩文件的常见扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名(LCTT 译注:归档是否是压缩的和采用哪种压缩方式并不取决于其扩展名,扩展名只是为了便于辨识。)。

7. 在添加文件之前进行确认

一个有用的选项是“w”,该选项使得tar命令在添加每个文件到归档文件之前来让用户进行确认,有时候这会很有用。

使用该选项时,只有用户输入“y”时的文件才会被加入到归档文件中,如果你不输入任何东西,其默认表示是一个“n”。

# 添加指定文件

$ tar -czw -f abc.tar.gz ./new/*
add ‘./new/abc.txt’?y
add ‘./new/cde.txt’?y
add ‘./new/newfile.txt’?n
add ‘./new/subdir’?y
add ‘./new/subdir/in.txt’?n

#现在列出所有被加入的文件

$ tar -t -f abc.tar.gz 
./new/abc.txt
./new/cde.txt
./new/subdir/

8. 加入文件到存在的归档文件中

“r”选项可以被用来将文件加入到已存在的归档文件中,而不用创建一个新的归档文件,下面是一个简单的样例:

$ tar -rv -f abc.tar abc.txt
文件并不能加入到已压缩的归档文件中(gz 或 bzip)。文件只能被加入到普通的归档文件中。

9. 将文件加入到压缩的归档文件中(tar.gz/tar.bz2)

之前已经提到了不可能将文件加入到已压缩的归档文件中,然而依然可以通过简单的一些把戏来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。

$ gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
$ gzip archive.tar

对于bzip文件分别使用bzip2和bunzip2。

10.通过tar来进行备份

一个真实的场景是在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份,以下是一个样例 :

$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

使用cron来运行上述的命令会保持创建类似以下名称的备份文件 :'archive-20150218.tar.gz'。

当然,需要确保日益增长的归档文件不会导致磁盘空间的溢出。

11. 在创建归档文件时进行验证

"W"选项可以用来在创建归档文件之后进行验证,以下是一个简单例子。

$ tar -cvW -f abc.tar ./new/
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/newfile.txt
./new/abc.txt
Verify ./new/
Verify ./new/cde.txt
Verify ./new/subdir/
Verify ./new/subdir/in.txt
Verify ./new/newfile.txt                                                                                                                              
Verify ./new/abc.txt

需要注意的是验证动作不能在压缩过的归档文件上进行,只能在非压缩的tar归档文件上执行。

这次就先到此为止,可以通过“man tar”命令来查看tar命令的的手册。


via: http://www.binarytides.com/linux-tar-command/

作者:Silver Moon 译者:theo-l 校对:wxy

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

在这篇文章中,我们来了解一些用来检查你的系统分区的一些命令,这些命令将检查每个磁盘的分区情况和其它细节,例如总空间容量,已用完的空间和文件系统等。

像fdisk,sfdisk和cfdisk命令这样的常规分区工具,不仅可以显示分区信息,还可以修改。

1. fdisk

Fdisk是检查磁盘上分区的最常用命令,fdisk命令可以显示分区和细节,如文件系统类型,但是它并不报告每个分区的字节大小。

$ sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x30093008

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   146801969    73400953+   7  HPFS/NTFS/exFAT
/dev/sda2       146802031   976771071   414984520+   f  W95 Ext'd (LBA)
/dev/sda5       146802033   351614654   102406311    7  HPFS/NTFS/exFAT
/dev/sda6       351614718   556427339   102406311   83  Linux
/dev/sda7       556429312   560427007     1998848   82  Linux swap / Solaris
/dev/sda8       560429056   976771071   208171008   83  Linux

Disk /dev/sdb: 4048 MB, 4048551936 bytes
54 heads, 9 sectors/track, 16270 cylinders, total 7907328 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001135d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     7907327     3952640    b  W95 FAT32

每个设备都单独显示其详细信息:容量大小,扇区数,设备ID及其包含的每个分区。

2. sfdisk

Sfdisk是另一种跟fdisk用途相似的实用工具,但具有更多的功能。它能够以MB为单位显示每个分区的大小。

$ sudo sfdisk -l -uM

Disk /dev/sda: 60801 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start   End    MiB    #blocks   Id  System
/dev/sda1   *     0+ 71680- 71681-  73400953+   7  HPFS/NTFS/exFAT
/dev/sda2     71680+ 476938  405259- 414984520+   f  W95 Ext'd (LBA)
/dev/sda3         0      -      0          0    0  Empty
/dev/sda4         0      -      0          0    0  Empty
/dev/sda5     71680+ 171686- 100007- 102406311    7  HPFS/NTFS/exFAT
/dev/sda6     171686+ 271693- 100007- 102406311   83  Linux
/dev/sda7     271694  273645   1952    1998848   82  Linux swap / Solaris
/dev/sda8     273647  476938  203292  208171008   83  Linux

Disk /dev/sdb: 1020 cylinders, 125 heads, 62 sectors/track
Warning: The partition table looks like it was made
  for C/H/S=*/54/9 (instead of 1020/125/62).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start   End    MiB    #blocks   Id  System
/dev/sdb1   *     1   3860   3860    3952640    b  W95 FAT32
                start: (c,h,s) expected (4,11,6) found (0,32,33)
                end: (c,h,s) expected (1023,53,9) found (492,53,9)
/dev/sdb2         0      -      0          0    0  Empty
/dev/sdb3         0      -      0          0    0  Empty
/dev/sdb4         0      -      0          0    0  Empty

3. cfdisk

Cfdisk是一个基于ncurses(提供字符终端处理库,包括面板和菜单)的带有交互式用户界面的Linux分区编辑器,它可以用来列出现有分区以及创建或修改这些分区。

下面是一个如何使用Cfdisk来列出分区的例子。

linux cfdisk disk partitions

Cfdisk一次只能列出一个分区,所以如果你需要看某一磁盘的细节,可以把该磁盘的设备名作为Cfdisk的参数。

$ sudo cfdisk /dev/sdb

4. parted

Parted是另一个命令行实用程序,可以列出分区;如果需要的话,也可进行修改。

下面是一个例子,列出了详细的分区信息。

$ sudo parted -l
Model: ATA ST3500418AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  75.2GB  75.2GB  primary   ntfs            boot
 2      75.2GB  500GB   425GB   extended                  lba
 5      75.2GB  180GB   105GB   logical   ntfs
 6      180GB   285GB   105GB   logical   ext4
 7      285GB   287GB   2047MB  logical   linux-swap(v1)
 8      287GB   500GB   213GB   logical   ext4


Model: Sony Storage Media (scsi)
Disk /dev/sdb: 4049MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4049MB  4048MB  primary  fat32        boot

5. df

Df是不是一个分区工具,但它打印出挂装文件系统的细节,Df可以列出甚至不是真实的磁盘分区的文件系统。

这里是个简单的例子:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        97G   43G   49G  48% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            3.9G  8.0K  3.9G   1% /dev
tmpfs           799M  1.7M  797M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G   12M  3.9G   1% /run/shm
none            100M   20K  100M   1% /run/user
/dev/sda8       196G  154G   33G  83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5        98G   37G   62G  38% /media/4668484A68483B47

只有以 /dev 开始的文件系统才是实际的设备或分区。

可以使用grep命令来筛选出实际的硬盘分区或文件系统。

$ df -h | grep ^/dev
/dev/sda6        97G   43G   49G  48% /
/dev/sda8       196G  154G   33G  83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5        98G   37G   62G  38% /media/4668484A68483B47

要只显示真正的磁盘分区与分区类型,可以这样使用Df:

$ df -h --output=source,fstype,size,used,avail,pcent,target -x tmpfs -x devtmpfs
Filesystem     Type     Size  Used Avail Use% Mounted on
/dev/sda6      ext4      97G   43G   49G  48% /
/dev/sda8      ext4     196G  154G   33G  83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5      fuseblk   98G   37G   62G  38% /media/4668484A68483B47

请注意,Df只显示已挂载的文件系统或分区,并不是所有。

6. pydf

它是用Python写的Df的改进版本,以易读的方式打印出所有磁盘分区。

$ pydf
Filesystem Size Used Avail Use%             Mounted on                                 
/dev/sda6   96G  43G   48G 44.7 [####.....] /                                          
/dev/sda8  195G 153G   32G 78.4 [#######..] /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5   98G  36G   61G 37.1 [###......] /media/4668484A68483B47

另外,pydf被限制为仅显示已挂载的文件系统。

7. lsblk

列出了所有的块存储设备,包括磁盘分区和光盘驱动器。细节包括所有分区/块总大小和挂载点。

它不会报告分区上的已使用和空闲磁盘空间。

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0    70G  0 part 
├─sda2   8:2    0     1K  0 part 
├─sda5   8:5    0  97.7G  0 part /media/4668484A68483B47
├─sda6   8:6    0  97.7G  0 part /
├─sda7   8:7    0   1.9G  0 part [SWAP]
└─sda8   8:8    0 198.5G  0 part /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
sdb      8:16   1   3.8G  0 disk 
└─sdb1   8:17   1   3.8G  0 part 
sr0     11:0    1  1024M  0 rom

如果没有挂载点,这就意味着文件系统未安装,而对于cd/dvd这意味着没有插入光盘。

lsblk能够显示每个设备的更多信息,如标签和型号,更多请查看信息手册。

8. blkid

显示块设备(分区和存储介质)属性,例如UUID和文件系统类型,不报告分区空间。

$ sudo blkid
/dev/sda1: UUID="5E38BE8B38BE6227" TYPE="ntfs" 
/dev/sda5: UUID="4668484A68483B47" TYPE="ntfs" 
/dev/sda6: UUID="6fa5a72a-ba26-4588-a103-74bb6b33a763" TYPE="ext4" 
/dev/sda7: UUID="94443023-34a1-4428-8f65-2fb02e571dae" TYPE="swap" 
/dev/sda8: UUID="13f35f59-f023-4d98-b06f-9dfaebefd6c1" TYPE="ext4" 
/dev/sdb1: UUID="08D1-8024" TYPE="vfat"

9. hwinfo

hwinfo是一个通用的硬件信息的工具,可以用来打印出磁盘和分区表,但是输出不再像上面的命令那样打印每个分区的详细信息。

$ hwinfo --block --short
disk:                                                           
  /dev/sda             ST3500418AS
  /dev/sdb             Sony Storage Media
partition:
  /dev/sda1            Partition
  /dev/sda2            Partition
  /dev/sda5            Partition
  /dev/sda6            Partition
  /dev/sda7            Partition
  /dev/sda8            Partition
  /dev/sdb1            Partition
cdrom:
  /dev/sr0             SONY DVD RW DRU-190A

总结

parted的输出可以得到简洁而完整的不同分区的概述、其上的文件系统以及总空间。pydf和df它们一样,只是被限制为只显示已挂载文件系统。

fdisk和sfdisk显示完整大量的信息,需要花些时间来解释。cfdisk是一个交互式分区工具,每次显示一个单一的设备。

来尝试下这些命令吧,别忘了在下面评论哟!

(题图来源:http://freegraphicdownload.com/


via: http://www.binarytides.com/linux-command-check-disk-partitions/

译者:tenght 校对:Caroline

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

【编者注】都说IPv4地址枯竭了,要推广IPv6,但是迟迟不见动静,既然如此,在它完全就绪前,就不要让它来打扰我们的系统好了。

IPv6

IPv6是寻址方案IPv4的下一个版本,被用来给域名分配数字地址。

IPv6比IPv4支持更多的地址。然而,它还没有被广泛支持,还在被接受的过程中。

你的系统支持IPv6么?

为了支持IPv6,需要很多事情。首先你需要系统/操作系统支持IPv6。Ubuntu,Linux Mint,和大多是现代发行版都支持它。如果你看一下ifconfig指令的输出,你就会看见你的网络接口被分配了IPv6地址。

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1c:c0:f8:79:ee  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fef8:79ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:110880 errors:0 dropped:0 overruns:0 frame:0
          TX packets:111960 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:62289395 (62.2 MB)  TX bytes:25169458 (25.1 MB)
          Interrupt:20 Memory:e3200000-e3220000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:45258 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45258 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4900560 (4.9 MB)  TX bytes:4900560 (4.9 MB)

看一下行“inet6 addr”。

接下来你需要一个支持ipv6的路由器/调制解调器。此外,你的ISP也必须支持IPv6。

除了检查网络设备的每一部分,最好查出你是否可以通过IPv6访问网站。

有很多网站可以检测你的网络连接是否支持IPv6. 这里就是个例子:http://testmyipv6.com/

下面是在内核中启用IPv6的参数:

$ sysctl net.ipv6.conf.all.disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0

$ sysctl net.ipv6.conf.default.disable_ipv6
net.ipv6.conf.default.disable_ipv6 = 0

$ sysctl net.ipv6.conf.lo.disable_ipv6
net.ipv6.conf.lo.disable_ipv6 = 0

同样可以在proc文件中检查

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0

注意这里的变量是控制IPv6的“禁用”。所以设置1就会禁用IPv6。

如果它不支持就禁用IPv6

如果你的网络设备中不支持IPv6,那最好就全部禁用它们。为什么?因为这会引起域名查询延迟,在网络连接中不必要地尝试连接到IPv6地址导致延迟等等问题。

我也遇到过像这样的问题,apt-get命令偶尔会尝试连接到IPv6地址失败接着检索IPv4地址。看一下下面的输出。

$ sudo apt-get update
Ign http://archive.canonical.com trusty InRelease
Ign http://archive.canonical.com raring InRelease                                                                                                    
Err http://archive.canonical.com trusty Release.gpg                                                                                                  
  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
Err http://archive.canonical.com raring Release.gpg                                                                                                  
  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]

.....

像这样的错误在最近的Ubuntu中更频繁了,或许它比以前更频繁地尝试使用IPv6地址。

我在其他的应用上也注意到了相似的问题,如Hexchat,同样Google Chrome也会有时会在查询域名的时候花费更长的时间。

所以最好的方案是完全禁用IPv6来摆脱这些事情。这只需要一点点配置但可以帮助你解决很多你系统上的很多问题。用户甚至反应这可以加速网络。

禁用 IPv6 - 方案1

编辑文件 - /etc/sysctl.conf

$ sudo gedit /etc/sysctl.conf

在文件的最后加入下面的行。

# IPv6 disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

保存并关闭

重启sysctl

$ sudo sysctl -p

再次检查ifconfig的输出,这里应该没有IPv6地址了。

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:5f:28:8b  
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
          TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1501691 (1.5 MB)  TX bytes:104883 (104.8 KB)

如果不行,尝试重启系统并再次检查ifconfig

禁用 IPv6 - GRUB 方案

IPv6同样可以通过编辑grub配置文件禁用。

$ sudo gedit /etc/default/grub

查找包含"GRUBCMDLINELINUX"的行,并如下编辑:

GRUB_CMDLINE_LINUX="ipv6.disable=1"

同样可以加入名为"GRUBCMDLINELINUX\_DEFAULT"的变量,这同样有用。保存并关闭文件,重新生成grub配置。

$ sudo update-grub2

重启,现在IPv6应该就已经禁用了。


via: http://www.binarytides.com/disable-ipv6-ubuntu/

译者:geekpi ,校对:wxy

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

Linux Mint 17 Qiana Cinnamon

Linux Mint 17已经发布,定名为Qiana。Mint是Linux最佳发行版之一,它定位于桌面用户,关注可用性和简洁。它携带了风格迥异的桌面环境,如Mate以及Cinnamon,并基于不同的发行版,如Ubuntu或Debian。

在本文中,我们使用的是Linux Mint 17的cinnamon版本。要获取更多关于Cinnamon版本的信息(包括下载链接),可以访问 - http://linux.cn/article-3260-1.html

下载适合你系统的正确的iso,烧录成dvd,或者也可以制作成usb启动盘来启动。安装完毕,是时候来使用一些优化工具和基本应用程序来优化系统性能和体验,让你系统激情澎湃吧!

1. 更新系统

第一件事情是重中之重,就是让你的系统保持时刻最新。赶紧在终端中运行以下命令吧。

$ sudo apt-get update
$ sudo apt-get upgrade

或者,你也可以使用更新管理器(mintUpdate)来干这事,你可以在菜单(Menu)> 管理(Administration)中找到它。

2. 找回旧壁纸

每个Linux Mint发行版都自带了一套最新的漂亮的壁纸。但是,你也可以安装先前版本中的壁纸。

$ sudo apt-get install mint-backgrounds-*

3. 多安装些浏览器

Linux Mint 17默认安装了firefox,你也可以获得更多的浏览器,如Chronium和Google Chrome。

Chronium浏览器可以在仓库中获取。

$ sudo apt-get install chromium-browser

至于Google Chrome,请访问google.com/chrome下载deb包,并使用gdebi来安装。

# 64 位
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$ sudo gdebi google-chrome-stable_current_amd64.deb

# 32 位
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb
$ sudo gdebi google-chrome-stable_current_i386.deb

4. 安装Flash Player

Mint上默认安装adobe flash插件包(adobe-flashplugin),因此,你可以在Firefox中畅玩flash游戏,也可以尽情享受网页版视频了。

Google Chrome现在使用了基于flash player的Pepper API,而且该插件也内建于Chrome中,因此,你也不需要为它额外做任何事情了。

然而对于Chronium,基于flash player的Pepper没有被囊括进来(因为它不是个自由组件),所以你需要手动安装了。

安装以下包来为Chronium安装pepper flash player。它会自动从Google Chrome浏览器中下载pepper flash player并加入到Chronium中。

$ sudo apt-get install pepperflashplugin-nonfree

上面的命令应该帮你将flash player安装到Chronium里头了。万一下载失败,你可以使用下面的命令重新进行安装。

$ sudo dpkg-reconfigure pepperflashplugin-nonfree

5. 安装多媒体解码

受限的额外包可以帮你安装大多数基本的解码,可以让你播放像mp3这样的格式。它也会帮你安装微软字体。

$ sudo apt-get install ubuntu-restricted-extras

要启用加密dvd的回放,请安装以下包。

$ sudo apt-get install libdvdread4
$ sudo /usr/share/doc/libdvdread4/install-css.sh

6. 安装专有驱动

如果你有一张Nvidia或者ati的图形卡,或者broadcom的无线网卡,那么请安装厂商提供的专有驱动,这些驱动会为你带来最佳的硬件性能。

要安装Nvidia驱动,你可以参照先前的这篇文章 :如何在Linux Mint上安装最新的Nvidia驱动

7. 安装Dropbox

Linux mint仓库已经提供了dropbox的客户端软件包,所以你不必满世界找了。

$ sudo apt-get install dropbox python-gpgme

如果你还是比较喜欢从官方网站下载,那么翻墙可直达https://www.dropbox.com/install?os=lnx,请遵照说明下载用于Ubuntu的deb安装包。(LCTT译注:墙内用户还是忽视此条吧。)

Copy是另外一个云存储解决方案,它也有本地Linux客户端。详情可查阅copy.com,它也有ppa仓库

8. Skype

Skype可以在Ubuntu canonical合作仓库中找到。

$ sudo apt-get install skype

9. 安装rar和其它归档工具

要想在Nemo这样的文件管理器中通过上下文菜单创建rar归档,请安装rar工具。安装rar的同时,也可安装其它几个包以增加对其它归档格式的支持。

$ sudo apt-get install unace p7zip-rar sharutils rar arj lunzip lzip

10. 安装剪贴板管理器

剪贴板管理器允许你维护和访问通过像Ctr+C这样的操作拷贝的项目历史,gnome下有很多的剪贴板管理器,像diodon,clipit,glipper,parcellite。

Diodon在cinnamon桌面上似乎存在一些问题,在历史列表增长时会出现滚动条。Clipit和Gipper工作得很好,你也可以安装

$ sudo apt-get install glipper
# 或者
$ sudo apt-get install clipit

然后,你可以从应用程序菜单中启动它们,它们应该会在你每次登录时启动。

11. 优化桌面

1. 修复系统托盘上的日期格式

在底部面板右边的时间小程序只显示了时间,它也可以设置显示日期。右击底部面板右边的日期-时间小程序,然后点击配置,选中标有“使用自定义日期格式”的选框,然后填入

%B %e, %I:%M %p

这会以带有AM/PM的12小时格式显示月份名称、日期和时间。

2. 安装主题、扩展、小程序、桌面组件

为你的桌面搞一些好东西玩玩。你可以在桌面区域放置一些桌面组件,在面板上放些小程序,为桌面效果添加一些扩展,以及为桌面设计安装一些主题。

去系统设置吧,点击指定的图标,你可以看见一个可供选择的列表。点击“在线获取更多”标签来下载更多的好东西。

3. 修改Firefox的搜索引擎

你也许注意到,Firefox默认选择了Yahoo搜索引擎,而搜索引擎列表中并没有Google。点击“管理搜索引擎” > 获取更多搜索引擎,它会带你去 http://www.linuxmint.com/searchengines.php

向下拉动滚动条到商业搜索引擎部分,找到并点击Google图标。进入下一页后,再次点击搜索引擎列表,而这次你会看到“添加Google”选项,点击它就可以用上Google搜索了。(LCTT译注:墙内用户也请忽略此条。怒!)

12. 优化字体渲染

Linux mint默认使用Dejavu Sans字体,它看起来真普通啊。你可以使用Droid和Noto字体获得好看得多视觉享受。请参照我们先前的教程,它会一步一步带你渐入佳境。如何在Linux Mint上获得华丽好看的字体

13. Guake下拉终端

下拉终端让你可以通过点击单个键来访问终端,Guake就是这其中之一,它用于基于gtk的桌面。下拉终端按要求显示/隐藏,并保持运行,因此你无需从菜单或者启动器中打开终端了。这对于热衷于终端的人来说,这是一个必不可少的工具。

$ sudo apt-get install guake

Guake需要配置,以便在每次登陆时启动。首先,找到guake命令的路径。

$ which guake
/usr/bin/guake

现在,把它添加到启动程序列表中。出门左拐,请往系统设置 > 启动程序,然后点击添加。在对话框中填写

名称 - Guake下拉终端 命令 - /usr/bin/guake

点击添加。现在Guake已经跑到你的运行程序列表中去了,并每次会自动启动。

14. Uget下载管理器

Uget是一个简洁而健壮的跨平台下载管理器,在Linux上工作得很好。虽然它缺少分段下载文件功能,但是仍然是一个十分稳定的下载管理器。

$ sudo apt-get install uget

15. Deluge BitTorrent客户端

Linux Mint自带了Transmission,这是个简洁而高效的torrent客户端。如果正在寻找一个更有特色的torrent客户端,那么你可以试试deluge或者vuze(正式名称是azureus),还可以试试qbittorent。

$ sudo apt-get install deluge-torrent

16. Hardinfo - 系统信息工具

Hardinfo是一个十分便利的GUI工具,它可以用来报告大量完整的系统硬件信息。你可以通过它来集中查看处理器、内存、存储设备、网络配置、打印机、usb设备、声音/视频适配器等等信息。它具有测试和评估系统性能的功能。

$ sudo apt-get install hardinfo

17. 安装MATE桌面环境

除了Cinnamon,Linux Mint还自带了另一个流行的桌面环境MATE(Maatay)桌面。如果你想试试,那么就来安装吧。

$ sudo apt-get install mint-meta-mate

现在你可以在登陆屏幕选择MATE会话了。

18. 让其它分区可写

如果你有其它ext分区,比如想用来存储和备份文件,那么你需要让它们可写,以免每次都要使用root特权。

首先,使用gksudo在文件管理器里打开分区挂载目录

$ gksudo nemo

导航到分区目录,右击去往属性 > 权限标签

赋予“目录访问” - 创建和删除文件权限给用户、组和其它。

赋予“文件访问” - 读和写权限给用户、组和其它。

对于NTFS分区,你不需要做此事。

19. 安装Conky

Conky是一个轻量级系统监控工具,它通过桌面图形组件显示系统各种资源的统计数据,如cpu、内存、网络等。它不是必须的,但是可以让你的桌面更加绚丽夺目。

$ sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt-get update
$ sudo apt-get install conky-manager

从应用程序菜单启动Conky管理器,并添加组件到桌面。也可以选中开机启动选项来让Conky开机启动。

20. 安装一些游戏

Linux确实有一些酷爽的游戏,很具娱乐性,而且是免费的。注意,某些游戏像supertuxkart和0ad要求专用的图形处理器以优化性能。

# 0ad - 像帝国时代那样的策略游戏
$ aptitude search 0ad

# supertuxkart - 赛车游戏
$ aptitude search supertuxkart

# openarena
$ aptitude search openarena

仓库中还有更多的游戏可供你安装,像Alien arena, secret maryo chronicles, supertux, frozen bubbles等等。

清除

做完这一切后,请为系统进行一次大扫除,移除一些不必要的包。

$ sudo apt-get autoremove

为Google Chrome/Chronium提供Java小程序支持

默认情况下已经安装了"icedtea-plugin",用以为firefox提供java小程序支持。

然而,Chrome和Chronium却不再支持基于NPAPI的插件。因此java小程序,在没有获得基于Pepper api的java插件前,java小程序是不能在这些浏览器中工作的。要查看更多信息,请往这里

更多应用程序

如果你正在为你的Mint盒子寻找更多的应用程序,那么这里列出了一部分更好的应用程序,所有这些都可以在软件管理器中安装。

  • Opera - 网页浏览器
  • Gnome Encfs Manager - 管理使用Encfs加密的文件和文件夹
  • Smplayer - 多媒体播放器
  • Rhythmbox, Clementine - 音乐播放器
  • Openshot, Kdenlive - 视频编辑器
  • Audacity - 音频编辑器
  • Inkscape - 图形和图像编辑
  • Gparted - 分区编辑器
  • Gufw - 防火墙配置工具
  • qBittorrent, Vuze - Torrent客户端
  • Gwenview - 图像浏览
  • Team viewer - 远程桌面
  • Tv-maxe - 查看电视频道
  • Grub Customizer - 修改GRUB启动菜单设置
  • Linrunner TLP - 电源管理工具,对笔记本节电很有用
  • Virtualbox - 虚拟化
  • Kazam, recordMyDesktop - 桌面录像/演示
  • Bleachbit - 通过删除旧的/临时文件释放磁盘空间
  • Cheese - 使用网络摄像头拍照
  • Shutter - 带有众多功能的屏幕截图工具

那么,请选择你喜欢的那些,并尽情享受Linux Mint吧!!

资源

下载最新Linux Mint http://www.linuxmint.com/download.php

社区教程 http://community.linuxmint.com/tutorial

Linux Mint论坛 http://forums.linuxmint.com/


via: http://www.binarytides.com/better-linux-mint-17-cinnamon/

译者:GOLinux 校对:wxy

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