带你认识UNIX操作系统基础知识(Unix文件系统是什么)
Shell是用于在计算机上运行程序的命令行界面。用户在提示符下键入一串命令,shell为用户运行程序,然后显示输出。用户可以直接输入命令,也可以从称为名为shell脚本或shell程序的文件
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:查看特定文件夹的内容。 · ls-a:用于列出文件夹中的所有隐藏文件。 · ls-l:显示更长,更详细的文件列表。ls -l还可以与Directory的名称一起使用,以列出指定目录文件。 · ls~:tilde(?)是表示主目录的快捷方法。因此,无论进入哪个目录,ls~将始终列出主目录。 通配符 shell还支持文件名与模式匹配,用星号(*)表示。通过通配符来替换给定模式中的其他字符。例如,如果列出*.txt,wildcard,所有.txtextension的文件都会被列出。接下来请尝试列出Demo文件夹中的所有.py文件: Cd命令 Cd是更改目录(Change Directory)的缩写,其功能为将活动目录更改为指定的路径。在进入目录后,可以使用ls命令查看该目录的内容。下列是使用此命令的一些方法: · cd:将当前目录更改为所需的目录。定位到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命令并无大碍unix命令图解,但是当文件过大时就会造成问题。从下图示例中可以看出,该命令快速弹出终端所有内容,但却无法理解文件所有内容。幸运的是,名为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在执行某些复杂任务时非常方便。 系统Unix文件基础知识 以上就是亿都购小编整理的关于带你认识UNIX操作系统基础知识及Unix文件系统是什么的相关知识,希望能帮助到你。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |