unix操作系统的特点(unix操作系统基础知识)
全文共4108字,预计学习时长8分钟或更长
你是否注意到,电影中超级讨厌的黑客仅仅只需键入几行指令,盯着黑底绿字的屏幕就能轻易渗透最安全的银行系统,将银行账户洗劫一空。这个人是如何只需敲击几下键盘便能畅通无阻访问所有密码并控制所有的隐藏摄像的呢?电影制作方如何达成这一效果并不好说,这有悖原理!但也许这就是他们的目的:通过镜头告诉观众 “commandline”是多么强大的工具!
很多时候,由于初学者太习惯于使用图形用户界面(Graphical User Interface)界面,而容易忽略命令行界面(Command-lineinterface)的功能。当用户需要将大约十万个文件复制到一个文件夹中时,使用鼠标就可以实现,但是如果需要对这些文件进行重命名或者根据其扩展名将这些文件进行分类又该如何?由于 GUI 不可编程,使用“command line”操作是不可行的。然而通过键入几行代码,就能快速完成这一操作。
对不同的开发人员而言,Unix shell 都是非常强大的工具。本文旨在介绍 UNIX 操作系统基础知识。
UNIX
除了 WINDOWS 之外,如今大多数的操作系统都是在 UNIX 基础上构建。其中包括 Linux 发行版,macOS,iOS,Android 等。看一眼 UNIX 操作系统的族谱就足以突出 UNIX 的重要性,这也是它在业界采用如此广泛的原因。事实上,许多数据和计算系统的后端,包括像 Facebook 和谷歌这样的行业巨头,都大量使用 UNIX。
UNIX 族谱 图片来源:WIkipedia
Shell
Shell 是用于在计算机上运行程序的命令行界面。用户在提示符下键入一串命令,shell 为用户运行程序,然后显示输出。用户可以直接输入命令,也可以从称为名为 shell 脚本或 shell 程序的文件中读取。
Shell types
UNIX 系统通常提供多种 shell 类型。以下是常见的 Shell 类型:
本文只针对 Bash Shell,对其他类型不做详细介绍。但是,也鼓励你阅读并尝试其他 shell 类型,特别是 zsh shell,因为在苹果最新一代名为 Catalina 的 Mac 操作系统中,zsh 将代替 bash shell。所以现在了解它再好不过。
终端
终端是用于与 shell 交互的程序,是 Shell 和其中运行的其他命令行程序的交互界面。类似于 Web 浏览器是网站的界面。以下是 Mac 上典型终端的外观:
典型 MAC 终端示例图
Mac 和 Linux 有各自版本的终端。Windows 还有一个内置命令 shell,但它基于 MS-DOS 命令行而不是 UNIX。所以接下来请看如何在 Windows 上安装 shell 和终端程序,使其运行与在 Mac 和 Linux 上的相同。
Windows 系统中安装
· Windows 系统 Linux 子程序
WSL 是 Windows 10 发布的新版 Linux 兼容系统,允许开发人员直接在 Windows 上运行 GNU / Linux 环境 – 包括大多数命令行工具,实用程序和应用程序-不用修改,无需虚拟机开销。
· Git Bash 命令
本文中将使用 Git Bash 命令。下载安装后将得到一个终端窗口,如下图所示。
WindowsGit Bash 示例图
终端探索
每当打开终端窗口时,都会看到上次登录凭据和 Shell 提示。只要 shell 准备好接受输入,就会出现 Shell 提示符。根据发行版本的不同,显示可能会稍有不同,但大多数情况下显示为 username @machinename 后跟$符号。
如果你不想显示以上信息,可以使用 PS1 自定义 shell 提示符。
终端现在只在提示符下显示$。但这只是暂时的,一旦终端关闭,将重置为其原始设置。
入门
为掌握 Bash 入门知识,请尝试下列简单命令:
· echo:返回在 shell 提示符下键入的内容,类似于在 Python 中打印。
· date:显示当前时间和日期。
· cal:显示当月的日历。
· 清除终端:按住 Ctrl-L 或删除清除终端。
Bash 命令基本知识
Bash 命令是 Bash 可以独立执行的最小代码单元。这些命令告诉 Bash 需要做什么。Bash 通常从用户方接收单个命令,并在命令执行后返回给用户。
工作目录
Pwd 命令(Print Working Directory)
PWD 是 Print Working Directory 的缩写,其功能是显示当前工作目录,即 shell 当前正在查看的目录,也是 shell 命令查找数据文件的默认位置。
目录类似于文件夹,但在 Shell 中,称为目录。UNIX 文件层次结构呈树状。要访问特定的文件夹或文件,需要穿过树结构中的某些特定路径。路径需借助斜杠(/)字符分隔上述结构的每个节点。
文件定位/文件导航
如 Ls 和 cd 这样的命令用于定位和管理文件。
Ls
Ls 是 list(列表)的缩写,其功能为列出目录的内容。通常会从主目录开始查看。这意味着如果自行运行 Ls,将始终显示当前目录的内容,依据我的经验是/ Users / parul。
shell 和 GUI 界面中主目录显示图示例。
Parameters
与 Ls 命令一起使用时,参数和选项会开启部分特殊功能。
· ls<folder>:查看特定文件夹的内容。
· ls-a:用于列出文件夹中的所有隐藏文件。
· ls-l:显示更长,更详细的文件列表。ls -l 还可以与 Directory 的名称一起使用,以列出指定目录文件。
· ls~:tilde(〜)是表示主目录的快捷方法。因此,无论进入哪个目录,ls~将始终列出主目录。
通配符
shell 还支持文件名与模式匹配,用星号(*)表示。通过通配符来替换给定模式中的其他字符。例如,如果列出*.txt,wildcard,所有.txtextension 的文件都会被列出。接下来请尝试列出 Demo 文件夹中的所有.py 文件:
Cd 命令
Cd 是更改目录(Change Directory)的缩写,其功能为将活动目录更改为指定的路径。在进入目录后,可以使用 ls 命令查看该目录的内容。下列是使用此命令的一些方法:
· cd<Directory>:将当前目录更改为所需的目录。定位到 Demo 目录中的测试目录,并使用 Ls 命令查看内容。请注意,也可以使用分号(;)在同一行上键入两个命令。
· cd..:返回父目录。
· cd:返回主目录。
管理文件
一些命令可以从 shell 中移动,删除,创建和复制文件。
Mkdir 命令
Mkdir 是 make directory 的缩写,用于创建新目录或文件夹。
Mv 命令
Mv 是移动(Move)的缩写,其功能为将一个或多个文件或目录从一个地方移动到另一个地方。用户需要指定想要移动的内容,即源和想要移动的位置,即目的地。
演示文件夹中创建一个名为 PythonFiles 的新目录,并使用上述两个命令将 Demo 文件夹中的所有.py 文件移入其中。
Touch 命令
Touch 命令用于创建新空白文件,还用于更改现有文件和目录的时间戳。以下是如何在 Demo 文件夹中创建名为 foo.txt 的文件的图示。
Rm 命令
Rm 是删除(remove)的缩写,其功能为删除文件或目录。默认情况下,它不会删除目录,但如果在目录中用作 rm-r *,则该目录下所有目录文件都会被删除。接下来请删除之前创建的 foo.txt 文件。
Rmdir 命令
Rmdir 是删除目录(remove directory)的缩写,用于从文件系统中删除空目录。让我们删除前一段时间创建的 PythonFiles 文件夹。
注意:/标示父目录
查看文件
查看文件是 Shell 的另一实用功能。一些命令可以帮助用户查看文件的内容,以便操作。
Cat 命令
Cat 是 concatenate 的缩写,用作读取文件并输出其内容。Cat 命令可以读取任意数量的文件,因此命名为 concatenate。Demo 文件夹中有一些文本文件,现在使用 cat 命令查看其内容。
查看多个文件,需在 cat 命令后键入文件名:
$ cat Names.txt fruits.txt
Less 命令
Cat 命令在屏幕上显示文件内容。文件较少时,使用 cat 命令并无大碍,但是当文件过大时就会造成问题。从下图示例中可以看出,该命令快速弹出终端所有内容,但却无法理解文件所有内容。幸运的是,名为 less 的命令,允许一次查看一个屏幕的内容。
$ less babynames.txt
以下是使用 less 命令的示例
Spacebar :To go to the next screen
b:to go to the previous screen
/:to search for a specific word
q:quit
Pipelinesand Filters 管道和过滤器
管道运算符“|”(垂直条)是一种将一个命令的输出作为输入发送到另一个命令的方法。
command1 | command2
当命令将其输出发送到管道时,该输出的接收端是另一个命令,而不是文件。下图显示了 wc 命令如何计算 cat 命令显示的文件内容。
在某种程度上,wc 是一个接收输入并以某种方式转换这些输入的命令。这些命令称为过滤器,放于 Unix 管道之后。
Filters 过滤器
接下来请看一些常用的过滤器命令。我们将使用一个名为 babynames.txt 的文件,其中包含大约 1000 个婴儿的姓名和一个包含少量水果名的 fruits.txt 文件。
· Grep(全称:global regular expression print)搜索具有给定字符串的行或查找指定输入流中的模式。以下命令将读取所有文件并输出包含单词“Tom”的所有行。
但这是一个庞大的列表,我们无法理解所有数据只是在终端爆炸。接下来请看如何使用管道操作符来理解。
Wc 是字数统计(word count)的缩写。它读取文件列表并生成以下一个或多个统计信息:换行计数,字数和字节数。将上述 grep 命令的输出输入到 wc,以计算包含单词“Tom”的行数。
排序过滤器按首字母顺序或数字顺序对行进行排序
cat 命令首先读取文件 fruits.txt 的内容,然后对其进行排序。
uniq 代表 unique,它提供输入流中特殊行的数量。
值得注意的是,除非它们相邻,否则 uniq 无法检测重复的条目。因此在使用 sort 命令之前需要对文件进行排序。或者,你也可以使用 sort -u 来替换 uniq。
由于多个命令可以放在一个 Pipeline 中,因此 Pipeline 在执行某些复杂任务时非常方便。
留言 点赞 关注
我们一起分享 AI 学习与发展的干货
欢迎关注全平台 AI 垂类自媒体 “读芯术”
系统下载排行榜71011xp
番茄花园Win7 64位推荐旗舰版 V2021.05
2深度技术Win7 64位豪华旗舰版 V2021.07
3番茄花园Win7 64位旗舰激活版 V2021.07
4带USB3.0驱动Win7镜像 V2021
5系统之家 Ghost Win7 64位 旗舰激活版 V2021.11
6萝卜家园Win7 64位旗舰纯净版 V2021.08
7技术员联盟Win7 64位旗舰激活版 V2021.09
8雨林木风Win7 SP1 64位旗舰版 V2021.05
9萝卜家园Ghost Win7 64位极速装机版 V2021.04
10技术员联盟Win7 64位完美装机版 V2021.04
深度技术Win10 64位优化专业版 V2021.06
2深度技术Win10系统 最新精简版 V2021.09
3Win10超级精简版 V2021
4Win10完整版原版镜像 V2021
5风林火山Win10 21H1 64位专业版 V2021.06
6Win10光盘镜像文件 V2021
7深度技术 Ghost Win10 64位 专业稳定版 V2021.11
8技术员联盟Ghost Win10 64位正式版 V2021.10
9Win10 21H1 Build 19043.1320 官方正式版
10技术员联盟Win10 64位永久激活版镜像 V2021.07
系统之家 Ghost Win11 64位 官方正式版 V2021.11
2Win11PE网络纯净版 V2021
3系统之家Ghost Win11 64位专业版 V2021.10
4Win11官网纯净版 V2021.10
5Win11 RTM版镜像 V2021
6番茄花园Win11系统64位 V2021.09 极速专业版
7Win11专业版原版镜像ISO V2021
8Win11官方中文正式版 V2021
9Win11 22494.1000预览版 V2021.11
10番茄花园Win11 64位极速优化版 V2021.08
深度技术Windows XP SP3 稳定专业版 V2021.08
2雨林木风Ghost XP Sp3纯净版 V2021.08
3萝卜家园WindowsXP Sp3专业版 V2021.06
4雨林木风WindowsXP Sp3专业版 V2021.06
5技术员联盟Windows XP SP3极速专业版 V2021.07
6风林火山Ghost XP Sp3纯净版 V2021.08
7萝卜家园 Windows Sp3 XP 经典版 V2021.04
8番茄花园WindowsXP Sp3专业版 V2021.05
9电脑公司WindowsXP Sp3专业版 V2021.05
10番茄花园 GHOST XP SP3 纯净专业版 V2021.03
热门教程 更多+
装机必备 更多+
重装教程 更多+
电脑教程专题 更多+