分类 技术 下的文章

Ubuntu 13.10 中配备了GNOME 3.8桌面。 尽管它相比Unity是一个可靠稳定以及有特色的替代品,但这个版本还是过时了。

GNOME桌面的最新版本在2013年9月发布,随之而来的是一系列改进的功能、应用程序和可用性的调整。从对高分辨率屏幕的支持到客户端应用窗口上的美化,GNOME 3.10无疑是一个引人注目的升级版本。

好消息是:假设你正在运行Ubuntu 13.10,拥有不错的网络操作和命令行水平,那么你无需继续使用一个过时版本的GNOME。

在Ubuntu 13.10 上如何升级到GNOME 3.10

为了那些爱略过前言直奔主题的读者,我还要重申两点:

要使用本方法安装GNOME 3.10,需运行 Ubuntu 13.10版本。

GNOME 3.10还未在 Ubuntu 13.10上测试,所以升级风险自负。

首先,让我们添加GNOME 3 的PPA到Ubuntu的软件资源中。这个操作可以使用图形界面完成,但使用命令更容易一些。

打开一个新的终端窗口,键入下列命令,在需要时输入你的用户密码:

sudo add-apt-repository ppa:gnome3-team/gnome3-next && sudo apt-get update

添加完PPA并更新包列表后,我们就可以继续,开始安装GNOME 3.10了。运行下列命令,当弹出提示时再次输入你的用户密码:

sudo apt-get update && sudo apt-get install gnome-shell ubuntu-gnome-desktop

获取并安装所有必要的包和组件会花一点时间,所以请耐心一点。

在安装过程中,在终端将会弹出一个提示,要求你选择一种显示管理器,默认使用的是“登录窗口”。

这个决定完全取决于你;UBuntu的Unity Greeter和GNOME的显示管理器都能让你很轻松地在桌面会话之间切换(如果你想保持在Unity界面或者另一个桌面将很方便),但仅仅只有GDM提供给GNOME特定的功能,譬如锁屏通知。

当你确定选择后,使用上下键选择,然后敲击‘确认/返回’键以确认。安装便会继续进行。

增加额外的功能

GNOME 3.10还有一些不错的新特性和应用-包括GNOME天气,音乐盒及地图 以及其它各种各样的改变。因为并不是所有的特性都足够稳定以致于可以被包含在我们之前添加的GNOME 3 PPA中,所以如果你想使用它们,就需要利用到两个额外的GNOME PPA。

现在,你需要意识到很重要的是,在这些仓库里的一些包据说有稳定性问题。这些问题大多是小问题,譬如应用程序崩溃和损坏。但还是有潜在的可能,导致像使GNOME完全崩溃这样的重大问题。

除开这个警告不说,在终端里打开一个新的选项卡,输入下列命令:

sudo add-apt-repository ppa:gnome3-team/gnome3-staging
sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt-get update && sudo apt-get dist-upgrade

为了添加一些之前提到的很酷的应用,运行这个命令:

sudo apt-get install gnome-weather gnome-music gnome-maps cheese gnome-documents

这样之后,就搞定了!

你可能会想先注销然后重新登录(记得选择“GNOME”会话)以确保改动都已经正确生效了。

细小的差别

如果你在不卸载Unity的情况下安装GNOME 3.10,那么有一些注意事项。

首先,你会发现在系统设置里“Online Accounts”有两个入口。其中,有钥匙图标的是Unity版的,另一个有插孔符号的是GNOME版的。

一些应用程序可能会要求你往Unity中添加账户(Shotwell, Gwibber, Empathy),有一些可能是要求往GNOME中添加(Evolution, Documents, Contacts)。

“通知”和“搜索”入口是GNOME专有的,它们让你挑选哪些应用程序和资源能够显示通知或出现在活动区。

卸载GNOME 3.10

假如你已经尝试了GNOME 3.10,但不喜欢它。这时该怎么办?

使用一个叫做“PPA Purge”的命令行工具,移除GNOME 3.10 是一个相当简单的过程。这个工具可以在Ubuntu软件中心里找到,是目前为止自动移除或降级从PPA安装的包的最容易的方法。

为了使用这个工具,我们需要返回终端然后键入下面命令,要留意任何出现在降级过程中的提示。

sudo ppa-purge ppa:gnome3-team/gnome3-next

如果你也添加了其它可选的PPA,你也需要清除它们:

sudo ppa-purge ppa:gnome3-team/gnome3-staging
sudo ppa-purge ppa:gnome3-team/gnome3

完成后,你就剩下了原来的 GNOME 3.8 桌面。如果你不再想保留GNOME Shell了,你可以执行下列命令去卸载它:

sudo apt-get remove gnome-shell ubuntu-gnome-desktop

最后,手动移除任何在降级之后可能残留的应用程序(譬如,Epiphany and GNOME Documents),然后重启。


via: http://www.omgubuntu.co.uk/2013/12/upgrade-gnome-3-10-ubuntu-13-10

译者:KAyGuoWhu 校对:jasminepeng

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

通用串行总线USB)被设计成为连接计算机外设的标准,如键盘、鼠标、打印机、数码相机、便携式媒体播放器、磁盘和网络适配器等等 - 来源:Wikipedia

它已经成为了一个工业标准,现在很难看到一个没有USB口的计算机了。USB闪存的使用使得它更加流行。在Linux上,我们可以使用lsusb来列出USB设备和它的属性。

什么是lsusb

在它的手册上,lsusb定义成:

显示系统中以及连接到系统的USB总线信息的工具。

如何运行lsusb? 要运行lsusb,你可以直接在控制台输入lsusb。

$ lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 17ef:4811 Lenovo Integrated Webcam [R5U877]
Bus 008 Device 002: ID 0a5c:217f Broadcom Corp. Bluetooth Controller

lsusb会显示驱动和内部连接到你系统的设备。

下面介绍如何理解输出。我抓取了上面输出的最后一行:

Bus 008 Device 002 : ID 0a5c:217f Broadcom Corp. Bluetooth Controller
  • Bus 008 : 指明设备连接到哪(哪条总线)
  • Device 002 : 表明这是连接到总线上的第二台设备
  • ID : 设备的ID
  • Broadcom Corp. Bluetooth Controller :生产商名字和设备名

我们同样可以看到在我们的系统中同时使用了USB2.0 root hub驱动和USB 1.1 root hub驱动。

dmesg命令同样可以看到。下面是一个例子。

$ dmesg |grep -i usb

[ 0.353138] usbcore: registered new interface driver usbfs
[ 0.353150] usbcore: registered new interface driver hub
[ 0.353182] usbcore: registered new device driver usb
[ 0.730026] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 0.730116] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
[ 0.748019] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[ 0.748169] hub 1-0:1.0: USB hub found
[ 0.748336] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
[ 0.768019] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[ 0.768147] hub 2-0:1.0: USB hub found
[ 0.768236] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 0.768251] uhci_hcd: USB Universal Host Controller Interface driver 

如何列出USB详细信息

使用-v选项来开启。下面是一个例子。

$ lsusb -v

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1

找出连接了多少USB设备

使用下面的命令

$ find /dev/bus

接着你会看到像下面的输出:

/dev/bus
/dev/bus/usb
/dev/bus/usb/008
/dev/bus/usb/008/002
/dev/bus/usb/008/001
/dev/bus/usb/007
/dev/bus/usb/007/001
/dev/bus/usb/006
/dev/bus/usb/006/001
/dev/bus/usb/005
/dev/bus/usb/005/001
/dev/bus/usb/004
/dev/bus/usb/004/001
/dev/bus/usb/003
/dev/bus/usb/003/001
/dev/bus/usb/002
/dev/bus/usb/002/004
/dev/bus/usb/002/003
/dev/bus/usb/002/001
/dev/bus/usb/001
/dev/bus/usb/001/001

使用lsusb 命令 的-D 选项,你可以打印特定设备的详细信息。下面是一个博通蓝牙设备的示例。

$ lsusb -D /dev/bus/usb/008/002

Device: ID 0a5c:217f Broadcom Corp. Bluetooth Controller
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x217f Bluetooth Controller
bcdDevice 3.60
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0×0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0×02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0×0040 1x 64 bytes
bInterval 1 

找出大容量存储设备

既然 lsusb -v给我们很详细的信息,那么你或许会错过一些信息。我们可以使用grep命令指定特定的信息。

大容量存储设备会有一个供应商名和ID。我们可以用它作为一个起点。

$ lsusb -v |grep -Ei ‘(idVendor|Mass\ Storage)’

idVendor 0×1005 Apacer Technology, Inc.
bInterfaceClass 8 Mass Storage

你可以看到,我们系统上有一个来自Apacer Technology, Inc的USB大容量存储设备。

以树层级结构输出USB设备

使用 -t选项满足这个要求

$ lsusb -t

/: Bus 08.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 07.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 05.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root\_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M
|__ Port 1: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M
|__ Port 6: Dev 3, If 0, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M
|__ Port 6: Dev 3, If 1, Class=’bInterfaceClass 0x0e not yet handled’, Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root\_hub, Driver=ehci_hcd/6p, 480M

数字12M和480M指USB类型的传输速率

  • 12M 意味着 USB 1.0 / 1.1的速率是 12Mbit/s
  • 480M 意味着 USB 2.0的速率是 480Mbit/s

如果你找到5.0G,那意味这你有USB 3.0类型接口。它有5.0Gbit/s的传输速率。Linux从/var/lib/usbutils/usb.ids识别USB设备的详细信息。或者你可以访问Linux-USB.org获取最新的USB ID列表。

这些就是lsusb命令的基础。你可以用lsusb命令对你的系统上的USB设备做一个诊断。一般来说,你可以通过lsusb的手册探索命令的更多详细细节。只要输入man lsab来打开它的手册。


via: http://linoxide.com/linux-command/linux-lsusb-command-print-usb/

译者:geekpi 校对:Mr小眼儿

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

VMware Workstation是一款“第二类(Type-2)”商用虚拟化软件。被称为“第二类”是因为它是运行在现有的操作系统之上的,而正在运行的计算机则成为其宿主机。

你可以使用VMware Workstation在宿主机上同时运行各自具有独立操作系统的多个客户机。客户机可以是32位或者64位的操作系统。VMware Workstation支持Windows,Mac OS X,Solaris和许多其他系统。

这篇简短的教程将会教你怎么在Ubuntu上面安装VMware Workstation。

因为这个软件是商业软件,因此你必须要拥有一个可用的许可证才能够使用它。你可以从下载页面 下载30天免费体验版来体验它。如果你想注册,获得并且验证一个许可证即可。

想要在Ubuntu上开始安装VMware Workstation,首先需要运行如下命令升级Ubuntu。

sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove

升级完电脑后,运行如下命令来让Ubuntu为安装做好准备。

sudo apt-get install build-essential linux-headers-`uname -r`

然后,下载VMware Workstation。接着进入~/Downloads 目录,我的Firefox把下载的文件保存在这里。(译注:如果你的Ubuntu是中文版,该路径默认则为~/下载,下述命令也要相应变为 “cd 下载”)

cd Downloads

如果下载的包是.zip格式的,则运行如下命令解压下载的包,否则跳过这一步。

unzip VMware-Workstation-Full*.zip

然后,运行如下命令给文件加上可执行权限。

chmod +x VMware-Workstation-Full*.bundle

最后,运行下面的命令开始安装。

sudo ./VMware-Workstation-Full*.bundle

在完成安装前按照向导进行选择。

当所有工作完成后,从Dash打开它并开始创建客户机。

你可以从所有的类型中选择创建各种客户机,包括Windows,Linux,Nevell,Solaris等。

Enjoy!


via: http://www.liberiangeek.net/2013/12/daily-ubuntu-tips-install-vmware-workstation-in-ubuntu/

译者:SCUSJS 校对:Mr小眼儿

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

几个星期前,我们展示了如何在Microsoft Windows中移动Dropbox文件夹到一个移动硬盘。该教程获得一致好评。对于使用Ubuntu操作系统的用户来说同样适用。

这个简短的教程将告诉你如何在Ubuntu下轻松地将Dropbox文件夹移动到另一个位置。

我写这些教程的原因是,几个月前我收到了一台全新的只有128GB SSD硬盘的惠普EliteBook笔记本电脑。我爱这台快速且性能良好的电脑。

它的缺点是,本地存储太小,无法处理我所有的东西。除了我的本地应用程序和数据,我在我的Dropbox也有几个GB大小的文件。

所以,当我同步我的Dropbox帐号并下载它的所有内容,我的HP EliteBook,完全消耗掉整个本地磁盘。

唯一的解决办法是,不使用本地存储磁盘直接将Dropbox文件夹移动到一个外部的移动硬盘上中。

如果你发现自己也有类似的问题,无论是使用Windows还是Ubuntu,请按照下列步骤,以腾出本地磁盘上的空间。在Ubuntu中开始移动Dropbox文件夹,首先插入外部存储器。(译注:本例并非真实的外部移动硬盘,而是在vbox测试环境中测试。)

插入磁盘后,进入Unity Dash 并搜索Disks。打开它并选择你希望适用的外部驱动器,点击 Tools –> Format

下一步,格式化驱动器的文件系统为NTFS格式。

格式化之后,选择 Tools –> Mount Options

然后指定相应的选项,如下图所示:安装点(准备将Dropbox的文件夹放到这里),文件系统类型,以及下面的图片中的其他选项。保存它时,你就大功告成了。

在此之后,退出Dropbox的服务并在默认位置(/home/用户名/Dropbox)删除当前的Dropbox文件夹(译注:在Dropbox完全移动好之前,我不建议你如本文一样删除原来的文件夹,而是将文件夹改名,要不万一出错呢?)。当您再次启动Dropbox的服务时,它会提醒你缺少的文件夹。点击重新链接按钮以指定新的位置(就是你的移动硬盘上的新位置)。

当提示选择安装类型,选择‘Advanced’并指定位置安装Dropbox文件夹。

设置完毕后,重新启动,如果Dropbox的不会提示你缺少文件夹,那么就成功了。

教程就是这样!

如果没有安装NTFS-3G,运行这个命令来安装它。

sudo apt-get install ntfs-3g

via: http://www.liberiangeek.net/2013/12/move-dropboxs-folder-to-an-external-drive-in-ubuntu/

译者:乌龙茶 校对:wxy

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

此前我们已经有发表过Linux 面试基础问答之共3篇文章,获得读者的好评,同时我们得到反馈,有些读者希望这种交互式学习方法能够做得更加灵活。心动不如行动,我们这就为您奉上 15个 MySQL 面试题

问题1:你如何确定 MySQL 是否处于运行状态?

答案: Debian 上运行命令 service mysql status,在RedHat 上运行命令 service mysqld status。然后看看输出即可。
root@localhost:/home/avi# service mysql status

/usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.72, for debian-linux-gnu on i486
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version 5.1.72-2
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 1 hour 22 min 49 sec

Threads: 1  Questions: 112138  Slow queries: 1  Opens: 1485  Flush tables: 1  Open tables: 64  Queries per second avg: 22.567.

问题2:如何开启或停止 MySQL 服务?

答案:运行命令 service mysqld start 开启服务;运行命令 service mysqld stop 停止服务。
root@localhost:/home/avi# service mysql stop

Stopping MySQL database server: mysqld.

root@localhost:/home/avi# service mysql start

Starting MySQL database server: mysqld.

Checking for corrupt, not cleanly closed and upgrade needing tables..

问题3:如何通过 Shell 登入 MySQL?

答案:运行命令 mysql -u root -p
root@localhost:/home/avi# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 207 
Server version: 5.1.72-2 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql>

问题4:如何列出所有数据库?

答案:运行命令 show databases;
mysql> show databases; 
+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| a1                 | 
| cloud              | 
| mysql              | 
| phpmyadmin         | 
| playsms            | 
| sisso              | 
| test               | 
| ukolovnik          | 
| wordpress          | 
+--------------------+ 
10 rows in set (0.14 sec)

问题5: 如何切换到某个数据库并在上面工作?

答案:运行命令 use database\_name; 进入名为 database\_name 的数据库。
mysql> use cloud; 
Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 

Database changed 
mysql>

问题6:如何列出某个数据库内所有表?

答案:在当前数据库运行命令 show tables;
mysql> show tables; 
+----------------------------+ 
| Tables_in_cloud            | 
+----------------------------+ 
| oc_appconfig               | 
| oc_calendar_calendars      | 
| oc_calendar_objects        | 
| oc_calendar_repeat         | 
| oc_calendar_share_calendar | 
| oc_calendar_share_event    | 
| oc_contacts_addressbooks   | 
| oc_contacts_cards          | 
| oc_fscache                 | 
| oc_gallery_sharing         | 
+----------------------------+ 
10 rows in set (0.00 sec)

问题7:如何获取表内所有 Field 对象的名称和类型?

答案:运行命令 describe table\_name;
mysql> describe oc_users; 
+----------+--------------+------+-----+---------+-------+ 
| Field    | Type         | Null | Key | Default | Extra | 
+----------+--------------+------+-----+---------+-------+ 
| uid      | varchar(64)  | NO   | PRI |         |       | 
| password | varchar(255) | NO   |     |         |       | 
+----------+--------------+------+-----+---------+-------+ 
2 rows in set (0.00 sec)

问题8:如何删除表?

答案:运行命令 drop table table\_name;
mysql> drop table lookup; 

Query OK, 0 rows affected (0.00 sec)

问题9:如何删除数据库?

答案:运行命令 drop database database-name;
mysql> drop database a1; 

Query OK, 11 rows affected (0.07 sec)

问题10:如何查看表内所有数据?

答案:运行命令 select * from table\_name;
mysql> select * from engines; 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
| ENGINE     | SUPPORT | COMMENT                                                        | TRANSACTIONS | XA   | SAVEPOINTS | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        | 
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         | 
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         | 
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         | 
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         | 
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       | 
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         | 
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
8 rows in set (0.00 sec)

问题11:如何从表(比如 oc\_users )中获取一个 field 对象(比如 uid)的所有数据?

答案:运行命令 select uid from oc\_users;
mysql> select uid from oc_users; 
+-----+ 
| uid | 
+-----+ 
| avi | 
+-----+ 
1 row in set (0.03 sec)

问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’ 和 ‘engine’。名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。如何只列出 ‘createtime’ 和 ‘engine’ 这两列并且 engine 的值为 ‘MyIsam’?

答案:运行命令 select create\_time, engine from xyz where engine = ”MyIsam”;
mysql> select create_time, engine from xyz where engine="MyIsam";

+---------------------+--------+ 
| create_time         | engine | 
+---------------------+--------+ 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-12-15 13:43:27 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
| 2013-10-23 14:56:38 | MyISAM | 
+---------------------+--------+ 
132 rows in set (0.29 sec)

问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web\_address 域值为 ‘tecmint.com’ 的所有数据?

答案:运行命令 select * from xrt where name = “tecmint” and web\_address = “tecmint.com”;
mysql> select  * from xrt where name = "tecmint" and web_address = “tecmint.com”;
+---------------+---------------------+---------------+ 
| Id                  | name                   | web_address | 
+---------------+---------------------+----------------+ 
| 13                 |  tecmint               | tecmint.com  |
+---------------+---------------------+----------------+ 
| 41                 |  tecmint               | tecmint.com  |
+---------------+---------------------+----------------+

问题14:如何列出表 ‘xrt’ 内 name 域值不为 ‘tecmint’,web\_address 域值为 ‘tecmint.com’ 的所有数据?

答案:运行命令 select * from xrt where name != "tecmint" and web\_address = "tecmint.com";
mysql> select * from xrt where name != ”tecmint” and web_address = ”tecmint.com”;

+---------------+---------------------+---------------+ 
| Id            | name                | web_address   | 
+---------------+---------------------+----------------+ 
| 1173          |  tecmint            | tecmint.com   |
+---------------+---------------------+----------------+

问题15:如何知道表内行数?

答案:运行命令 select count(*) from table\_name;
mysql> select count(*) from Tables; 

+----------+ 
| count(*) | 
+----------+ 
|      282 | 
+----------+ 
1 row in set (0.01 sec)

以上是文章的全部内容。这篇‘Linux 面试题’对您有任何帮助吗?别忘了在下面留言,写出您的宝贵意见。


via: http://www.tecmint.com/basic-mysql-interview-questions-for-database-administrators/

译者:bazz2 校对:Caroline

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

系统管理员必须维护他们服务器的健康运行。其中一个重要的部分就是内存。当服务器内存使用率过高时,它会降低服务器的性能。Linux有一个称为 free 的工具,来监控内存使用率。

free 命令是什么

free 命令是一个显示系统中空闲和已用内存大小的工具。free 命令的输出和 top 命令相似。大多数Linux发行版已经含有 free 命令。

如何运行 free

想要运行,只需在控制台输入free 即可。不带选项运行会显示一个以KB为单位的默认输出。

$ free

free默认视图

从上面的截图我们看到:

内存 (以KB计)

  • Total(全部) : 1026740
  • Used(已用) : 843396
  • Free(可用) : 183344
  • Shared(共享) : 0
  • Buffers(块设备缓存区) : 52704
  • Cached(文件缓存) : 376384

译注:关于Buffers和Cached的区别,来自 http://www.taobaotesting.com/blogs/qa?bid=2265 的一段解释如下:

buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.

cached是用来给文件做缓冲。

那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件

Swap (以KB计)

  • Total(全部) : 1045500
  • Used(已用) : 3376
  • Free(可用) : 1042124

当你看见 buffer/cache 的空闲空间低或者 swap 的空闲空间低,说明内存需要升级了。这意味这内存利用率很高。请注意 shared(共享)内存列应该被忽略 ,因为它已经被废弃了。

以其它单元显示内存信息

如我们先前提到的,默认 free 会以 KB 为单位显示信息。free 同样提供给我们 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)这些单位。要显示我们想要的单位,只要选择一个并在 free 后面跟上。下面一个是以 MB 为单位的输出样例。

$ free -m

free命令以MB为单位

这个技巧同样适用于-b, -k, -g 以及 –tera 选项。

以适于人类可读方式显示内存信息

free 同样提供了-h选项,这意味着适于人类可读(译注:系统上可能并不存在-h选项,已被-m取代)。那么这与其它的选项有什么不同呢,如-m(MB)选项? 可见的最大不同是-h选项会在数字后面加上适于人类可读的单位。让我们看一个例子。

$ free -h

人类可读的free

如我们一起看到的,在1,0数字后这里是G(GB)字母。当数字并没有达到GB时,free足够聪明来知道并在每个数字后面跟上合适的单位。后面的M - 数字929告诉我们它有929MB(译注: 原文为929 number tell us its 969 Megabytes,这里应该为输入错误)。

间隔显示 free

作为一个状态检查工具,最好的统计内存利用率的方法是使用延迟间隔。这么做的话,我们可以使用-s选项后面跟上我们想要间隔的N秒数。我们可以在后面合并几个选项来使输出满足我们的需求。假如我们想要每3秒统计一次内存利用率并且适于人类可读,那么就像这样做:

$ free -hs 3

间隔3s显示free

显示高低内存利用率

如果我们想要知道高低内存统计,我们可以使用-l选项。下面是一个例子。

$ free -l

Free 的 低-高 统计

显示 Linux 全部内存

如果我们需要每列的总计信息,我们可以在 free 命令后面跟上 -t 选项。这会在字底部额外加入一行显示。

$ free -t

free命令带总计内存

总结

除了vmstat以外,free 命令也是一个用于统计内存利用率的简单统计工具。用这个你可以快速查看你的 Linux 内存信息。free 命令使用 /proc/meminfo 作为基准来显示内存利用率信息。如往常一样,你可以在控制台下输入 man free 来获取更多关于 free 的信息。


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

译者:geekpi 校对:Caroline

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