切换到Linux。 命令行

这是我们有关迁移到Linux的系列文章中的第四篇。 如果您错过了以前的文章,我们将在Linux中为新用户,文件和文件系统以及图形环境介绍它们。 Linux无处不在。 它用于运行大多数Internet服务,例如Web服务器,电子邮件服务器等。 它还可以在您的手机,控制台等中使用。 因此,您可能有兴趣尝试Linux并了解有关Linux工作原理的更多信息。

在Linux上,命令行非常有用。 在Linux桌面上,虽然命令行是可选的,但您经常会看到人们打开了命令提示符窗口以及其他应用程序窗口。 在Internet服务器上以及当Linux在设备上运行时,命令行通常是直接与系统进行交互的唯一方法。 因此,最好至少了解一些命令行基础知识。

在命令行(在Linux中通常称为shell)上,一切都通过键入命令来完成。 您可以从命令行列出文件,移动文件,显示文件内容,编辑文件等等,甚至显示网页。

导航

命令行具有当前工作目录的概念(注意:文件夹和目录是同义词,在Linux中通常称为目录)。 除非指定了其他目录路径,否则默认情况下,许多命令将出现在此目录中。 例如,在文件列表中键入ls将列出该工作目录中的文件。 例如:

$ ls

Desktop Documents Downloads Music Pictures README.txt Videos

ls Documents命令将改为Documents目录中的文件列表:

$ ls Documents

report.txt todo.txt AndreyEx.pdf

您可以通过键入pwd显示当前工作目录。 例如:

$ pwd

/home/student

您可以通过键入cd后跟要更改的目录来更改当前目录。 例如:

$ pwd

/home/student

$ cd Downloads

$ pwd

/home/student/Downloads

目录路径是用/(正斜杠)字符分隔的目录列表。 路径中的目录具有假定的层次结构,例如,如果路径为/ home / student,则它期望在顶层目录中有一个名为home的目录,而在该目录home中则有一个名为Student的目录。

目录路径是绝对路径或相对路径。 绝对目录路径以/开头。

相对路径以开头。 (点)或..(点)。 在途中 。(点)表示当前目录,而..(点点)表示当前目录的上一级目录。 例如,ls ../Documents表示在目录中浏览到当前目录之一,并显示名为Documents的目录的内容:

$ pwd

/home/student

$ ls

Desktop Documents Downloads Music Pictures README.txt Videos

$ cd Downloads

$ pwd

/home/student/Downloads

$ ls ../Documents

report.txt todo.txt AndreyEx.pdf

当您首次在Linux系统上打开命令提示符窗口时,当前的工作目录将设置为您的主目录,通常是:/ home / <此处的登录名>。 您的主目录用于登录,您可以在其中存储自己的文件。

$ HOME环境变量将扩展到您的主目录的目录路径。 例如:

$ echo $HOME

/home/student

搜索

有时我们忘记了文件在哪里,或者我们忘记了要查找的文件名。 Linux命令行上有几个命令可用于帮助您查找文件和搜索文件内容。

找到第一个命令。 您可以使用find通过名称或其他属性查找文件和目录。 例如,如果我们忘记了todo.txt文件的保存位置,则可以运行以下命令:

$ find $HOME -name todo.txt

/home/student/Documents/todo.txt

查找程序具有许多功能。 简单的命令形式:

find <dкаталог для поиска> -name <имя файла>

如果上面的示例包含多个名为todo.txt的文件,它将向我们显示找到该名称的文件的所有位置。 find命令具有许多选项,可用于按类型(文件,目录或其他),日期,比日期新的大小,大小等进行搜索。您可以输入:

man find

获得有关如何使用find命令的帮助。

您也可以使用grep命令在文件内部搜索特定内容。 例如:

grep "09/02/2018" todo.txt

将向我显示日期为2018年9月2日的所有行。

得到帮助

Linux中有许多命令,在这里很难描述所有命令。 因此,下一个最佳步骤是向您展示如何通过命令获得帮助。

apropos命令可帮助您查找执行特定操作的命令。 也许您想知道所有与目录一起使用的命令或获取打开文件的列表,但是您不知道要运行哪个命令。 因此,您可以尝试:

apropos directory

将提供命令列表,并在帮助文本中包含单词“ directory”。 或者,您可以执行以下操作:

apropos "список открытых файлов"

它将显示一个lsof命令,您可以使用该命令列出打开的文件。

如果您知道需要使用的命令,但是不知道要使用什么选项来使其表现出所需的效果,则可以使用man命令,该命令不适用于手册。 您将使用man <命令>,例如:

man ls

您可以自己尝试一下。 他将提供几页信息。

man命令说明了所有选项以及您可以提供的命令选项,甚至经常给出示例。

许多命令通常还具有帮助选项(例如ls –help),该选项将提供有关如何使用该命令的信息。 手册页通常会更详细,并且–help选项对于快速搜索很有用。

剧本

关于Linux命令行的最好的事情之一是您键入的命令可以被编写脚本,并且可以一遍又一遍地运行。 可以将命令作为单独的行放置在文件中。 您可以将#!/ Bin / sh放在文件的第一行,然后是命令。 然后,将文件标记为可执行文件后,就可以像运行自己的命令一样运行脚本。 例如,

--- contents of get_todays_todos.sh ---

#!/bin/sh

todays_date=`date +"%m/%d/%y"`

grep $todays_date $HOME/todos.txt

脚本通过一组可重复的步骤帮助自动完成某些任务。 如果需要使用循环,条件,子例程等,脚本编写也可能非常复杂。这里没有详细说明的余地,但是您可以在Internet上找到有关Linux bash脚本的更多信息。

熟悉Windows命令提示符吗?

如果您熟悉Windows CMD或PowerShell程序,则应该熟悉命令行输入命令。 但是,在Linux中,某些事情的工作方式有所不同,如果您不了解这些差异,可能会造成混淆。

首先,PATH环境变量在Linux和Windows上的工作方式不同。 在Windows上,当前目录被视为路径中的第一个目录,尽管该目录未在PATH中列出。 在Linux下,当前目录不被认为在路径中,并且显然不适合该路径。 在Linux中,在PATH环境变量中键入被认为是安全隐患。 在Linux上,要在当前目录中运行程序,您需要在其前面加上./(这是文件在当前目录中的相对路径)的前缀。 这导致了许多CMD用户。 例如:

./my_program

my_program

另外,在Windows上,路径用a分隔; (分号)放在PATH环境变量中。 在Linux上的PATH中,目录之间用:(冒号)分隔。 同样在Linux上,相同路径下的目录用/(反斜杠)字符分隔,而在Windows下,相同路径下的目录用(反斜杠)字符分隔。 因此,典型的Windows PATH环境变量可能如下所示:

PATH="C:Program Files;C:Program FilesFirefox;"
while on Linux it might look like:
PATH="/usr/bin:/opt/mozilla/firefox"

还要注意,在Linux上用$扩展了环境变量,因此$ PATH扩展为PATH环境变量的内容,而在Windows上,则需要用百分比字符括起来(例如,%PATH%)。

在Linux上,通常将参数传递给使用选项前的-(破折号)字符的程序,而在Windows选项下,先前的参数与/(正斜杠)字符一起传递。 因此,在Linux上,您可以执行以下操作:

a_prog -h

a_prog /h

在Linux中,文件扩展名通常没有任何意义。 例如,将myscript重命名为myscript.bat不会使其可执行。 除了将其设置为可执行文件之外,您需要设置可执行文件权限标志。 下次,将更详细地讨论文件权限。

在Linux上,以文件名和目录名开头。 (点)它们是隐藏的。 因此,例如,如果提示您编辑文件.bashrc,而您在主目录中看不到该文件,则可能是这种情况。 它是隐藏的。 在命令行上,可以对ls命令使用-a选项来查看隐藏的文件。 例如:

ls -a

在Linux中,常用命令也与普通Windows命令行命令不同。 下表显示了CMD中使用的通用元素和Linux中使用的替代元素的映射。

请禁用您的广告拦截器或将此网站列入白名单!

Sidebar