当前位置: 首页 > article >正文

The Linux Command Line中文版阅读——1-3章

文章目录

  • 参考资料
  • 第一章:引言
    • 1.1 为什么使用命令行
    • 1.2 这本书讲什么
    • 1.4 这本书的内容
  • 第二章:什么是shell
    • 2.1 终端仿真器
    • 2.2 第一次按键
    • 2.3 命令历史
    • 2.4 移动光标
    • 2.5 关于鼠标和光标
    • 2.6 试试运行一些简单命令
    • 2.7 结束终端会话
  • 第三章:文件系统中跳转
    • 3.1 理解文件系统树
    • 3.2 当前工作目录
    • 3.3 列出目录内容
    • 3.4 更改当前工作目录
    • 3.5 绝对路径
    • 3.6 相对路径
    • 3.7 有用的快捷键

参考资料

1.The Linux Command Line
2.快乐的Linux命令行

第一章:引言

一个如何夺回计算机管理权的故事

在 20 世纪 70 年代末,我刚开始和计算机打交道时,正进行着一场革命,那时的我还是一 名大学生。微处理器的发明,使普通老百姓(就如你和我)真正拥有一台计算机成为可能。今 天,人们难以想象,只有大企业和强大的政府才能够拥有计算机的世界,是怎样的一个世界。 简单说,你做不了多少事情。

今天,世界已经截然不同了。计算机遍布各个领域,从小手表到大型数据中心,及大小介 于它们之间的每件东西。除了随处可见的计算机之外,我们还有一个无处不在的连接所有计算 机的网络。这已经开创了一个奇妙的,个人授权和创作自由的新时代,但是在过去的二三十年 里,正在发生另一些事情。一个大公司不断地把它的管理权强加到世界上绝大多数的计算机上, 并且决定你对计算机的操作权力。幸运地是,来自世界各地的人们,正积极努力地做些事情来 改变这种境况。通过编写自己的软件,他们一直在为维护电脑的管理权而战斗着。他们建设着 Linux。

一提到 Linux,许多人都会说到“自由”,但我不认为他们都知道“自由”的真正涵义。“自由”是一种权力,它决定你的计算机能做什么,同时能够拥有这种“自由”的唯一方式就是知 道计算机正在做什么。“自由”是指一台没有任何秘密的计算机,你可以从它那里了解一切,只 要你用心的去寻找。

1.1 为什么使用命令行

现在,大多数的计算机用户只是熟悉图形用户界面(GUI),并且产品供应商和此领域的学 者会灌输给用户这样的思想,命令行界面(CLI)是过去使用的一种很恐怖的东西。这就很不 幸,因为一个好的命令行界面,是用来和计算机进行交流沟通的非常有效的方式,正像人类社 会使用文字互通信息一样。人们说,“图形用户界面让简单的任务更容易完成,而命令行界面使 完成复杂的任务成为可能”,到现在这句话仍然很正确。

1.2 这本书讲什么

这本书介绍如何生存在 Linux 命令行的世界。不像一些书籍仅仅涉及一个程序,比如shell 程序,bash。这本书将试着向你传授如何与命令行界面友好相处。它是怎样工作的?它能做什么?使用它的最好方法是什么?

1.4 这本书的内容

这本书共分为五部分,每一部分讲述了不同方面的命令行知识。除了第一部分,也就是你正 在阅读的这一部分,这本书还包括:

第二部分—学习 shell 开始探究命令行基本语言,包括命令组成结构,文件系统浏览,编 写命令行,查找命令帮助文档。

第三部分—配置文件及环境讲述了如何编写配置文件,通过配置文件,用命令行来操控计算机。

第四部分—常见任务及主要工具探究了许多命令行经常执行的普通任务。类似于 Unix 的 操作系统,例如 Linux, 包括许多经典的命令行程序,这些程序可以用来对数据进行强大 的操作。

第五部分—编写 Shell 脚本介绍了 shell 编程,一个无可否认的基本技能,能够自动化许 多常见的计算任务,很容易学。通过学习 shell 编程,你会逐渐熟悉一些关于编程语言方 面的概念,这些概念也适用于其他的编程语言。

这里还拓展了一些Linux命名和GNU Linux背后的故事。

第二章:什么是shell

一说到命令行,我们真正指的是 shell。shell 就是一个程序,它接受从键盘输入的命令,然后 把命令传递给操作系统去执行。几乎所有的 Linux 发行版都提供一个名为 bash 的来自 GNU 项目的 shell 程序。“bash”是“Bourne Again Shell”的首字母缩写,所指的是这样一个事实, bash 是最初 Unix 上由 Steve Bourne 写成 shell 程序 sh 的增强版。

2.1 终端仿真器

当使用图形用户界面时,我们需要另一个和 shell 交互的叫做终端仿真器的程序。如果我们浏览 一下桌面菜单,可能会找到一个。虽然在菜单里它可能都被简单地称为“terminal”,但是 KDE 用的是 konsole , 而 GNOME 则使用 gnome-terminal。还有其他一些终端仿真器可供 Linux 使 用,但基本上,它们都完成同样的事情,让我们能访问 shell。也许,你可能会因为附加的一系 列花俏功能而喜欢上某个终端。

2.2 第一次按键

好,开始吧。启动终端仿真器!一旦它运行起来,我们应该看到一行像这样的文字:

[me@linuxbox ~]$

这叫做 shell 提示符,无论何时当 shell 准备好了去接受输入时,它就会出现。然而,它可 能会以各种各样的面孔显示,这则取决于不同的 Linux 发行版,它通常包括你的用户名 @ 主机 名,紧接着当前工作目录(稍后会有更多介绍)和一个美元符号。

如果提示符的最后一个字符是“#”, 而不是“$”, 那么这个终端会话就有超级用户权限。 这意味着,我们或者是以 root 用户的身份登录,或者是我们选择的终端仿真器提供超级用户 (管理员)权限。

假定到目前为止,所有事情都进行顺利,那我们试着键入字符吧。在提示符下敲入一些像下面一样的乱七八糟的字符,因为这个命令没有任何意义,所以 shell 会提示错误信息,并让我们再试一下

2.3 命令历史

如果按下上箭头按键,我们会看到刚才输入的命令“kaekfjaeifj”重新出现在提示符之后。这就 叫做命令历史。许多 Linux 发行版默认保存最后输入的 500 个命令。按下下箭头按键,先前输 入的命令就消失了。

2.4 移动光标

可借助上箭头按键,来获得上次输入的命令。现在试着使用左右箭头按键。看一下怎样把光标 定位到命令行的任意位置?通过使用箭头按键,使编辑命令变得轻松些。

2.5 关于鼠标和光标

虽然,shell 是和键盘打交道的,但你也可以在终端仿真器里使用鼠标。X 窗口系统(使 GUI 工作的底层引擎)内建了一种机制,支持快速拷贝和粘贴技巧。如果你按下鼠标左键,沿着文 本拖动鼠标(或者双击一个单词)高亮了一些文本,那么这些高亮的文本就被拷贝到了一个由 X 管理的缓冲区里面。然后按下鼠标中键,这些文本就被粘贴到光标所在的位置。 试试看。

注意:不要在一个终端窗口里使用 Ctrl-c 和 Ctrl-v 快捷键来执行拷贝和粘贴操作。它们不 起作用。对于 shell 来说,这两个控制代码有着不同的含义,它们在早于 Microsoft Windows (定义复制粘贴的含义)许多年之前就赋予了不同的意义。

2.6 试试运行一些简单命令

现在,我们学习了怎样输入命令,那我们执行一些简单的命令吧。第一个命令是 date。这个命 令显示系统当前时间和日期。

一个相关联的命令,cal,它默认显示当前月份的日历。

查看磁盘剩余空间的数量,输入 df

同样地,显示空闲内存的数量,输入命令 free

2.7 结束终端会话

我们可以通过关闭终端仿真器窗口,或者是在 shell 提示符下输入 exit 命令来终止一个终端会话

第三章:文件系统中跳转

我们需要学习的第一件事(除了打字之外)是如何在 Linux 文件系统中跳转。在这一章节中, 我们将介绍以下命令:

  • pwd —打印出当前工作目录名
  • cd —更改目录
  • ls —列出目录内容

3.1 理解文件系统树

类似于 Windows,一个“类 Unix”的操作系统,比如说 Linux,以分层目录结构来组织所有文 件。这就意味着所有文件组成了一棵树型目录(有时候在其它系统中叫做文件夹),这个目录树 可能包含文件和其它的目录。文件系统中的第一级目录称为根目录。根目录包含文件和子目录, 子目录包含更多的文件和子目录,依此类推。

注意 (类 Unix 系统) 不像 Windows ,每个存储设备都有一个独自的文件系统。类 Unix 操 作系统,比如 Linux,总是只有一个单一的文件系统树,不管有多少个磁盘或者存储设备连接 到计算机上。根据负责维护系统安全的系统管理员的兴致,存储设备连接到(或着更精确些, 是挂载到)目录树的各个节点上。

3.2 当前工作目录

把文件系统想象成一个迷宫形状,就像一棵倒立的大树,我们站在迷宫的中间位置。在任意 时刻,我们处于一个目录里面,我们能看到这个目录包含的所有文件,以及通往上面目录(父 目录)的路径,和下面的各个子目录。我们所在的目录则称为当前工作目录。我们使用 pwd (print working directory(的缩写))命令,来显示当前工作目录。

当我们首次登录系统(或者启动终端仿真器会话)后,当前工作目录是我们的家目录。每个 用户都有他自己的家目录,当用户以普通用户的身份操控系统时,家目录是唯一允许用户写入文件的地方。

3.3 列出目录内容

列出一个目录包含的文件及子目录,使用 ls 命令

实际上,用 ls 命令可以列出任一个目录的内容,而不只是当前工作目录的内容。ls 命令还 能完成许多有趣的事情。在下一章节,我们将介绍更多关于 ls 的知识。

3.4 更改当前工作目录

要更改工作目录(此刻,我们站在树形迷宫里面),我们用 cd 命令。输入 cd, 然后输入你想要 去的工作目录的路径名。路径名就是沿着目录树的分支到达想要的目录期间所经过的路线。路 径名可通过两种方式来指定,一种是绝对路径,另一种是相对路径。我们先来介绍绝对路径。

3.5 绝对路径

绝对路径开始于根目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件。例如, 你的系统中有一个目录,大多数系统程序都安装在这个目录下。这个目录的路径名是 /usr/ bin。它意味着从根目录(用开头的“/“表示)开始,有一个叫”usr” 的目录包含了目录 “bin”。

我们把工作目录转到 /usr/bin 目录下,里面装满了文件。注意 shell 提示符是怎样改变的 吗?为了方便,通常终端提示符自动显示工作目录名。

3.6 相对路径

绝对路径从根目录开始,直到它的目的地,而相对路径开始于工作目录。为了做到这个(用相 对路径表示),我们在文件系统树中用一对特殊符号来表示相对位置。这对特殊符号是 “.” (点) 和 “…” (点点)。

符号 “.” 指的是工作目录,”…” 指的是工作目录的父目录。下面的例子说明怎样使用它。让 我们再次把工作目录切换到 /usr/bin:

好了,比方说我们想更改工作目录到 /usr/bin 的父目录 /usr。可以通过两种方法来实现。 可以使用以下绝对路径名:

或者,也可以使用相对路径

两种不同的方法,一样的结果。我们应该选哪一个呢?选输入量最少的那个! 同样地,从目录 /usr/ 到 /usr/bin 也有两种途径。可以使用绝对路径:

3.7 有用的快捷键

  • cd 更改工作目录到你的家目录
  • cd - 更改工作目录到先前的工作目录
  • cd ˜user_name 更改工作目录到用户家目录。例如, cd ˜bob 会更改工作目 录到用户“bob”的家目录。

虽然 Linux 支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限 使用“.”,“-”,下划线。最重要的是,不要在文件名中使用空格。如果你想表 示词与词间的空格,用下划线字符来代替。过些时候,你会感激自己这样做。

Linux文件名不要使用空格


http://www.kler.cn/a/301320.html

相关文章:

  • 超简单,使用Kube-Vip实现K8s高可用VIP详细教程
  • 【掌握 JavaScript 数组迭代:map 和 includes 的使用技巧】
  • 【深度学习】多目标融合算法(二):底部共享多任务模型(Shared-Bottom Multi-task Model)
  • 下载并安装MySQL
  • 深度学习与计算机视觉 (博士)
  • DELTA并联机械手视觉方案荣获2024年度机器人应用典型案例奖
  • 【最新华为OD机试E卷-支持在线评测】计算疫情扩散时间(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 韩国客户到访国信华源 共谋合作新篇章
  • Debian 12如何关闭防火墙
  • 2、数据模拟
  • 基础Web开发的支持
  • [ACTF2020 新生赛]Upload1
  • 探索Python世界的隐藏宝石:Pika库的神秘力量
  • 基于JavaWeb开发的Java+SpringBoot+vue+element实现汽车订票管理平台详细设计和实现
  • 个人学习笔记7-1:动手学深度学习pytorch版-李沐
  • 正则表达式--python
  • C 盘突然爆满,罪魁祸首竟然是 ...... !
  • 并发编程(八)
  • 智能的PHP开发工具PhpStorm v2024.2全新发布——支持日志文件
  • 【Jupyter Notebook】汉化
  • 使用 Python-docx 进行 Word 文档操作
  • 最新HTML5中的视频和音频讲解
  • Computer Exercise
  • java-redis-穿透
  • .NET 一款支持NTLM实现横向移动的工具
  • Python实现模糊逻辑算法