Ubuntu 基础

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,因此如有必要它们会提示您输入自己的密码。

终端

  • 使用命令行并不像您想象的那么困难。使用命令行不需要专门知识,和其它软件一样,它也仅仅是一个程序。Linux 中绝大部分工作都可以用命令行完成,尽管大部分程序都有相应的图形工具,但有时这些图形工具会捉襟见肘,不够用。此时便是命令行大显身手的时候。 终端常常被称为命令行或者 shell。过去,这就是人机交互的方式。即便现在,Linux 用户还是觉得 shell 比图形方式更快并且仍有一些优势。接下来,您将学习如何使用终端。 终端最初用作文件浏览器,即使现在,遇上图形环境失效时,它仍被用作文件浏览器。您可以将终端作为一个文件浏览器,用来浏览自己的文件和撤销曾做过的改动。

启动终端

  • 要启动一个终端,可以选择 应用程序 → 附件 → 终端
  • 快捷方式:Ctrl + Alt + T

常用命令

处理目录的常用命令

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:make directory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

Linux 文件内容查看

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

apt命令

APT (Advanced Package Tool,高级软件包工具) 是一个强大的包管理系统,而那些图形化程序如 添加/删除 应用程序 和 Synaptic 都是建立在它的基础之上的。APT 自动处理依赖关系并在系统软件包执行其他操作以便安装所要的软件包。

  • 列出所有可更新的软件清单命令:sudo apt update

  • 升级软件包:sudo apt upgrade

    列出可更新的软件包及版本信息:apt list --upgradeable

    升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

  • 安装指定的软件命令:sudo apt install <package_name>

    安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

  • 更新指定的软件命令:sudo apt update <package_name>

  • 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

  • 删除软件包命令:sudo apt remove <package_name>

  • 清理不再使用的依赖和库文件: sudo apt autoremove

  • 移除软件包及配置文件: sudo apt purge <package_name>

  • 查找软件包命令: sudo apt search

  • 列出所有已安装的包:apt list --installed

  • 列出所有已安装的包的版本信息:apt list --all-versions