?目录
Linux是一个基于 Linux 内核的免费开源操作系统系列。基于 Linux 的操作系统称为Linux 发行版或发行版。示例包括 Debian、Ubuntu、Fedora、CentOS、Gentoo、Arch Linux 等。
Linux 内核自 1991 年以来一直在积极开发,并已被证明具有极强的通用性和适应性。您可以在世界各地的各种环境中找到运行 Linux 的计算机,从 Web 服务器到手机。如今,全球 90% 的云基础设施和 74% 的智能手机均由 Linux 提供支持。
然而,Linux 的新手可能会发现它有点难以接近,因为 Linux 文件系统的结构与 Windows 或 MacOS 上的文件系统不同。此外,基于 Linux 的操作系统严重依赖于命令行界面,而大多数个人计算机则依赖图形界面。
本指南介绍了重要的命令行概念和技能,帮助新手了解更多有关 Linux 的知识
要遵循本指南,您需要访问运行基于 Linux 的操作系统的计算机。这可以是您通过 SSH 连接的虚拟专用服务器,也可以是您的本地计算机。请注意,本教程是使用运行 Ubuntu 20.04 的 Linux 服务器进行验证的,但给出的示例应该适用于运行任何 Linux 发行版的任何版本的计算机。
术语“终端”、“shell”和“命令行界面”经常互换使用,但它们之间存在细微的区别:
当有人在 Linux 上下文中引用这三个术语之一时,它们通常指的是一个终端环境,您可以在其中运行命令并查看打印到终端的结果,如下所示:
成为 Linux 专家需要您熟悉终端的使用。任何管理任务,包括文件操作、软件包安装和用户管理,都可以通过终端完成。终端是交互式的:您指定要运行的命令,终端输出这些命令的结果。要执行任何命令,请在提示符中键入该命令并按ENTER
。访问云服务器时,您通常会通过终端 shell 来执行此操作。尽管运行 Linux 的个人计算机通常配备大多数计算机用户熟悉的图形桌面环境,但通过在终端中输入命令来执行某些任务通常更高效或更实用
几乎所有 Linux 发行版都符合文件系统目录结构的通用标准,? 称为文件系统层次结构标准 (FHS) ?,文件系统层次结构标准 (FHS)。FHS 定义了一组目录,每个目录都有自己的特殊功能。
正斜杠 (?/
) 用于指示 FHS 定义的文件系统层次结构中的根目录。
当用户登录到 shell 时,他们将被带到自己的用户目录,存储在/home/
.?这称为用户的主目录。FHS 定义/home/
为包含普通用户的主目录。
root用户有自己的由 FHS 指定的主目录:/root/
。请注意,/
被称为“根目录”,它与root/
存储在 中的不同/
。
由于 FHS 是 Linux 计算机上的默认文件系统布局,并且其中的每个目录都有特定用途,因此它简化了按功能组织文件的过程。
Linux 文件系统基于目录树。这意味着您可以在其他目录中创建目录(其功能与其他操作系统中的文件夹相同),并且文件可以存在于任何目录中。
要查看当前活动的目录,可以运行以下pwd
命令,该命令代表“打印工作目录”:
sammy@linux-machine:~$ pwd
打印当前目录的路径。输出将与此类似:
Output
/home/sammy
此示例输出表明当前活动目录是sammy
,它home/
位于根目录 中的目录内/
。如前所述,由于sammy/
目录存储在home/
目录中,sammy/
因此表示sammy用户的主目录。
要查看当前工作目录中存在的文件和目录的列表,请运行以下ls
命令:
ls
这将返回当前工作目录中保存的任何文件或目录的名称列表。但是,如果您在新计算机上遵循本指南,则此命令可能不会返回任何输出。
您可以使用该命令在当前工作目录中创建一个或多个新目录mkdir
,该命令代表“make directory”。例如,要创建两个名为testdir1
和的新目录testdir2
,您可以运行以下命令:
mkdir testdir1 testdir2
现在,当您运行ls
命令时,这些目录将出现在输出中:
ls
testdir1 testdir2
要导航到这些新目录之一,请运行命令cd
(代表“更改目录”)并指定目录名称:
cd testdir1
这会将您新的当前工作目录更改为您指定的目录。您可以使用以下命令查看pwd
:
pwd
Output
/home/sammy/testdir1
但是,由于testdir1
和testdir2
都保存在sammy用户的主目录中,因此它们驻留在目录树的不同分支中。该cd
命令在当前工作目录中查找目录,因此这意味着您无法cd
直接进入testdir2
之前创建的目录,而该testdir1
目录是您的工作目录:
cd testdir2
Output
bash: cd: testdir2: No such file or directory
但是,如果指定要导航到的目录的完整路径,则无论当前工作目录如何,都可以导航到任何现有目录:
cd /home/sammy/testdir2
注意:在 Linux 中,波形符 (?~
) 是您登录用户的主目录的简写。知道了这一点,您也可以像这样编写前面的命令,它将获得相同的结果:
cd ~/testdir2
此外,您可以指定..
更改到路径中上一级的目录。要返回到原始目录:
cd ..
如果您对导航树中的位置感到困惑,请记住您始终可以运行命令pwd
来查找当前目录。许多现代 shell(包括 Bash,许多 Linux 发行版的默认设置)也会指示您的当前目录,如本节中的示例命令所示
您不能使用cd
来与文件交互;cd
代表“更改目录”,仅允许您导航目录。但是,您可以创建、编辑和查看文件的内容。
创建文件的一种方法是使用命令touch
。要创建一个名为的新文件file.txt
:
touch file.txt
这将创建一个空文件,其名称file.txt
位于当前工作目录中。该文件的内容为空。
file.txt
如果您决定稍后重命名,可以使用以下mv
命令进行操作:
mv file.txt newfile.txt
mv
代表“移动”,它可以将文件或目录从一个地方移动到另一个地方。通过指定原始文件 ,file.txt
您可以将其“移动”到当前工作目录中的新位置,从而对其进行重命名。
还可以使用该cp
命令将文件复制到新位置。如果我们想带回来file.txt
但保留,你可以像这样newfile.txt
复制一个newfile.txt
named :file.txt
cp newfile.txt file.txt
正如您可能已经猜到的,cp
是“copy”的缩写。通过复制newfile.txt
到名为 的新文件file.txt
,您已将原始文件复制到具有不同名称的新文件中。
但是,如果文件不包含任何内容,则没有多大用处。要编辑文件,需要文件编辑器。
文件编辑器有很多选项,全部由专业人士创建供日常使用。此类编辑器包括vim、emacs
、nano
和pico
。
nano
对于初学者来说是一个合适的选项:它相对用户友好,并且不会因为神秘的选项或命令而让您负担过重。
要将文本添加到file.txt
with?nano
,请运行以下命令:
nano file.txt
这将打开一个空间,您可以在其中立即开始输入进行编辑file.txt
。添加您喜欢的任何文本,或者您可以复制本示例中的文本:
Say it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.
Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.
Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.
It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.
要保存您的书面文本,请按CTRL + X
、Y
,然后按ENTER
。这将返回到带有新保存的文件的 shell?file.txt
。
现在file.txt
其中包含一些文本,您可以使用cat
或查看它less
。
该cat
命令将指定文件的内容打印到系统的输出中。尝试运行并将刚刚编辑的文件作为参数cat
传递:file.txt
cat file.txt
这会将全部内容打印file.txt
到终端。如果您使用上一个示例中的文本,则此命令将返回类似于以下内容的输出:
Output
Say it's only a paper moon Sailing over a cardboard sea, But it wouldn't be make believe If you believed in me. Yes it's only a canvas sky Hanging over a muslin tree, But it wouldn't be make believe If you believed in me. Without your love, It's a honky-tonk parade. Without your love, It's a melody played in a penny arcade. It's a Barnum and Bailey world, Just as phony as it can be, But it wouldn't be make believe If you believed in me.
cat
如果文件特别长,则使用查看文件内容可能会很不方便且难以读取。作为替代方案,您可以使用less
允许您对输出进行分页的命令。
用于less
查看文件的内容file.txt
,如下所示:
less file.txt
这也将打印 的内容file.txt
,但从文件开头开始一次打印一个终端页。您可以使用空格键前进一页,或使用箭头键一次上下一行。
按q
退出less
。
最后,要删除file.txt
文件,请将文件名作为参数传递给rm
:
rm file.txt
注意:如果没有其他选项,该rm
命令(代表“remove”)不能用于删除目录。但是,它确实包含-d
允许您删除空目录的标志:
rm -d directory
您还可以使用以下命令删除空目录rmdir
:
rmdir directory
如果要删除不为空的目录,可以rm
使用该-r
标志运行。这将删除指定的目录及其内容,包括所有文件和子目录:
rm -r directory
但是,由于删除内容是永久性操作,因此只有在确定要删除指定目录时才应使用rm
该-r
选项运行
如果您的问题与特定的 Linux 命令有关,则手册页为几乎每个命令提供了详细且富有洞察力的文档。要查看任何命令的手册页,请将命令的名称作为参数传递给命令man
:
man command
例如,man rm
显示 的用途rm
、如何使用它、可用的选项、使用示例以及更多有用的信息
本指南介绍如何使用 Linux 环境。然而,完全理解 Linux 及其所有组件远远超出了单个教程的范围。例如,本教程没有提?及权限,?这是 Linux 系统管理的基本概念。