什么是Linux?
Linux 内核,其发音为 ‘lee-nucks’,是 Ubuntu 操作系统的核心。内核是操作系统的重要组成部分,它是硬件和软件之间进行通讯的桥梁。 Linux 诞生于1991年,由芬兰学生 Linus Torvalds 发起。那时,它只能运行在 i386 系统上,实质上是个独立编写的 UNIX 内核之克隆,旨在充分利用当时全新的 i386 架构。 现如今 Linux 几乎能运行在所有现代架构之上,这要归功于来自世界各地的人们所作的大量开发工作。 Linux 内核不仅在技术上占有一席之地,还在意识形态上占有重要位置。有一整个社区的人相信自由软件的理念,并花费大量时间帮助开源技术,使之臻于完美。 正是这个社区里的人们促使了 Ubuntu 的出现、促成了规范 Internet 发展的众多标准委员会、促成了一些组织如Mozilla基金会 (负责创建了Mozilla Firefox) 的出现、还促成了无数其它使您受益匪浅的软件项目。 开源精神,这通常归因于 Linux,正在深刻影响着各地的软件开发者和用户,他们驱使着各个社区朝着共同的目标前进。
Linux 基础
Linux 的灵感源自 1969 年就出现的 Unix 操作系统,时至今日该系统仍被广泛使用,并在不断发展中。 Unix 背后的许多设计惯例也同样存在于 Linux 中,对系统基本原理的理解至关重要。 Unix 最初主要使用命令行界面,这在 Linux 中也得到了保留。也就是说,图形用户界面及其窗口、图标、菜单等都构建在基本的命令行界面之上。更进一步,这也意味着在命令行里可以十分便捷的管理和访问 Linux 的文件系统。
目录和文件系统
Linux 和 Unix 文件系统被组织成一个有层次的树形结构。文件系统的最上层是 /,或称为 根目录。在 Unix 和 Linux 的设计理念中,一切皆为文件——包括硬盘、分区和可插拔介质。这就意味着所有其它文件和目录(包括其它硬盘和分区)都位于根目录中。 例如:/home/jebediah/cheeses.odt 给出了正确的完整路径,它指向 cheeses.odt 文件,而该文件位于 jebediah 目录下,该目录又位于 home 目录,最后,home 目录又位于根(/) 目录下。 在根 (/) 目录下,有一组重要的系统目录,在大部分 Linux 发行版里都通用。直接位于根 (/) 目录下的常见目录列表如下:
/bin – 重要的二进制 (binary) 应用程序
/boot – 启动 (boot) 配置文件
/dev – 设备 (device) 文件
/etc – 配置文件、启动脚本等 (etc)
/home – 本地用户主 (home) 目录
/lib – 系统库 (libraries) 文件
/lost+found – 在根 (/) 目录下提供一个遗失+查找(lost+found) 系统
/media – 挂载可移动介质 (media),诸如 CD、数码相机等
/mnt – 挂载 (mounted) 文件系统
/opt – 提供一个供可选的 (optional) 应用程序安装目录
/proc – 特殊的动态目录,用以维护系统信息和状态,包括当前运行中进程 (processes) 信息。
/root – root (root) 用户主文件夹,读作“slash-root”
/sbin – 重要的系统二进制 (system binaries) 文件
/sys – 系统 (system) 文件
/tmp – 临时(temporary)文件
/usr – 包含绝大部分所有用户(users)都能访问的应用程序和文件
/var – 经常变化的(variable)文件,诸如日志或数据库等
权限
Linux 系统上的所有文件都有权限,以允许或者阻止其它用户查阅、修改或者执行。超级用户“root”则可以访问系统上的任意文件。每个文件都有访问限制、用户限制以及隶属于某个用户/组(owner/group)。 所有文件皆有如下三组权限加以保护,按重要性依次排列:
用户(user)
适用于该文件的所有者
组(group)
适用于该文件所属的组
其他(other)
适用于所有其他用户
上述三组权限信息的每一组都包含了实际权限。这些权限信息,连同它们对文件和目录具有的不同含义,概述如下:
读(read)
允许显示/打开该文件 可以显示目录内容
写(write)
可以编辑或删除该文件 可以更改目录内容
可执行(execute)
可执行文件可以作为程序运行 可以进入该目录
要查看和编辑文件或目录的权限,请打开 位置 → 主文件夹 并在文件或者目录上单击右键。然后选择 属性。授权信息就在 权限 标签页中,如果您是该文件的所有者,您可以编辑所有的授权等级。
root 用户和 sudo 命令
GNU/Linux 系统的 root 用户具有系统的管理权限。出于安全考虑,普通用户并不具备这一权限。不过,Ubuntu 上并不包含 root 用户,而是将管理员权限授予特定用户,他们可以使用 “sudo” 应用程序来执行管理任务。默认情况下,在您的系统安装过程中创建的第一个用户帐号具有使用 sudo 的权限。您可以通过用户和组 (参见 第1.3.6节 ― 用户和组) 来限制和赋予用户运行 sudo 的权限。 当您运行一个要求 root 权限的应用程序时,sudo 会要求您输入自己的普通用户密码;这样可以确保恶意程序无法损害您的系统,还可以提醒您应该小心谨慎的对待自己将要执行的管理动作。 在命令行里使用 sudo,只需直接在您想执行的命令前加上”sudo”即可。随后 sudo 会提示您输入自己的密码。 在短时间内 sudo 会记得您输入过的密码。设计这一特性的目的,是为了避免用户在执行多个管理任务时重复输入密码。 执行管理任务时请务必小心,以免损坏系统! 其它一些 sudo 使用技巧:
欲使用 “root” 终端,请在命令行里输入“sudo -i”。
Ubuntu 里所有图形界面配置工具(启动时)默认已使用sudo,因此如有必要它们会提示您输入自己的密码。
关于 sudo 程序及 Ubuntu 里为何默认没有 root 用户的更多信息,请阅读 Ubuntu wiki 上的 sudo页面。
终端
使用命令行并不像您想象的那么困难。使用命令行不需要专门知识,和其它软件一样,它也仅仅是一个程序。Linux 中绝大部分工作都可以用命令行完成,尽管大部分程序都有相应的图形工具,但有时这些图形工具会捉襟见肘,不够用。此时便是命令行大显身手的时候。 终端常常被称为命令行或者 shell。过去,这就是人机交互的方式。即便现在,Linux 用户还是觉得 shell 比图形方式更快并且仍有一些优势。接下来,您将学习如何使用终端。 终端最初用作文件浏览器,即使现在,遇上图形环境失效时,它仍被用作文件浏览器。您可以将终端作为一个文件浏览器,用来浏览自己的文件和撤销曾做过的改动。
启动终端
要启动一个终端,可以选择 应用程序 → 附件 → 终端。
快捷方式:Ctrl + Alt + T
ALT+F2 Run a command: gnome-terminal
常用命令
查看目录: ls
ls (List) 用不同颜色、经过排列的文本列出目录下的文件。
创建目录: mkdir (目录名)
mkdir (MaKeDIRectory) 命令可以创建目录。
切换目录: cd (directory/location)
cd (ChangeDirectory) 命令可以从您的当前目录切换到您指定的任意目录。
复制文件/目录: cp (源文件或目录名) (目标目录或文件名)
cp (CoPy) 命令会拷贝您指定的任意文件。cp -r 命令则可以拷贝您指定的任意目录(注:包括该目录里的文件和子目录)。
删除文件/目录: rm (文件或目录名)
rm (ReMove) 可以删除您指定的任意文件。rm -rf 命令则可以删除您指定的任意目录(注:包括该目录里的文件和子目录)。
重命名文件/目录: mv (文件或目录名)
mv (MoVe) 命令可以重命名/移动您指定的任意文件或目录。
查找文件/目录: locate (文件或目录名)
切换到 root 用户 ,输入 “sudo -i ”或“sudo su -”, 退出 “exit”
pwd 显示当前目录, pwd = print working directory
ls 列出目录下当前文件
cp 复制文件/目录 cp (源文件或目录) (目标文件或目录)
cp -r 复制文件夹 包括子目录和文件rm 删除文件/目录 可以删除文件
rm -rf 删除目录包含子目录和文件
rmdir 删除空文件夹mv 移动或重命名 文件
cd 进入目录
cd / 进入根目录
cd 或 cd ~ 进入用户的 home 目录
cd – 进入上次访问的目录 (相当于 back)
cd .. 进入上级目录
man 显示某个命令的 manual
df 显示文件系统空间信息
df -h 用 M 和 G 做单位显示文件系统空间信息 -h 意思是 human-readabledu 显示目录的空间使用信息
du -sh /media/floppy
-s 意思 summary -h 意思 human-readableifconfig 显示系统的网络
locate 命令会在您的计算机里搜索您指定的任意文件。它使用您系统中的文件索引以便进行快速查找:运行命令 updatedb 可以更新该索引。每天您一开机,该命令便会(在合适的时机)自动运行。运行该命令需要具备管理员权限 (参见 第1.3.3节 ― root 用户和 sudo 命令)。
您还可以使用通配符来匹配一个或多个文件,如 “*” (匹配所有文件) 或 “?” (匹配一个字符)。 欲知关于 Linux 命令行的详尽介绍,请参阅 Ubuntu wiki 上的命令行介绍。
切换到控制台模式
在 Ubuntu 里使用命令行的常见方法是启动一个终端 (参见前面的 第1.3.4.1节 ― 启动终端),但有些时候还是需要切换到真正的控制台下。
使用 Ctrl+Alt+F1 快捷键可以切换到第一个控制台。
要切回桌面模式,可以使用 Ctrl+Alt+F7 快捷键。
一共可以使用 6 个控制台,分别用快捷键 Ctrl+Alt+F1 到 Ctrl+Alt+F6 进行切换。
文本编辑
Linux 中的所有配置和设定都保存在文本文件里。尽管您可以通过图形界面来编辑大部分配置,但有时您还是得手工编辑它们。Gedit 是 Ubuntu 的默认文本编辑器,您可以通过点击桌面菜单系统中的应用程序 → 附件 → 文本编辑器来启动它。 本指南中,有时为了修改配置文件,会从命令行里使用 gksudo 来运行 Gedit,这样就能以管理权限来运行 Gedit。
如果需要在命令行中使用文本编辑器,那么您可以使用 nano 这个用法简单的文本编辑器。如果要在命令行中运行 nano,请务必使用如下命令:nano -w,它可确保编辑器不会插入断行符。
欲知 nano 使用的更多信息,请参考 Wiki 上的指南。 Ubuntu 提供了大量其它基于终端的编辑器,包括流行的 VIM 和 Emacs (它们各自的赞成者和反对者在 Linux 社区里引发了许多不乏善意的争论)。和 nano 相比,通常上述编辑器的用法更为复杂,当然功能也更强大。
用户和组
要在您的系统中添加用户或组,可以使用 系统 → 系统管理 → 用户和组 中的 用户和组 程序。
要添加一个新用户,点击 添加用户,然后填写各项数据,点击 确定 加以确认。要编辑每个用户的属性,点击位于主 用户 /guilabel> 要添加一个新组,选择 组 标签页并点击 添加组。为新组选择一个名字,如有必要,还可以改变 组 ID 的默认值。如果您试图分配一个正在使用的 组 ID,系统会向您发出警告。 通过从左边菜单选择用户并点击添加按钮,您可以将该用户添加到新建组中。删除用户与添加一样简单:从右边菜单中选择用户并点击移除。做好上述准备之后,点击确定,便可创建一个包含有用户的新组。 要编辑组的属性,在组主窗口中,选择一个组名并点击属性按钮。 要从系统中删除一个用户或组,请先选中您要删除的用户或组,然后点击 删除。