命令行教程—Linux必备_全栈工程师技能

命令行教程

使用场景:

Apple macOS和大多数Linux服务器几乎使用完全相同的命令,因此本教程适用于两者。即使您使用Windows PC,这也很有用,因为您的网站很可能托管在Linux服务器上。

基本命令行知识

前提知识
  1. 具备基本的计算机知识
进阶知识
  1. Web开发和编程
  2. 服务器运维
学习目标
  • 了解命令行界面是什么以及它与计算机的关系
  • 学习一些与命令行相关的基本术语
  • 学习最常见,最有用的命令
必须掌握的能力
  • 显示当前目录和目录内容
  • 在目录之间移动
  • 创建文件和目录
    • 将文字写入文件
    • 查看文件内容
  • 删除文件和目录
  • 复制和粘贴文件和目录
  • 移动/剪切文件和目录
  • 运行多个命令
  • 变更权限
  • 以管理员身份运行
  • 连接到另一台计算机或服务器
  • 其他一些有用的命令
  • 使用基本的文本编辑器

什么是命令行?

基本术语的理解

Windows,macOS(无论使用什么操作系统)都只是计算机的直观表示。这被称为图形用户界面(GUI)。带有文件浏览器,桌面,图标和所有其他图形,在这以前你只能命令行操作。您不能输入拖放,指向和点击,而是只能输入内容。那是唯一二者的区别。

您可以通过命令行访问整个计算机。您可以通过命令行执行所有操作。执行效率,交互效率也是最高的,可能唯一的缺点,你会觉得是交互友好性差,但是你要知道它的应用场景(高效利用硬件资源)就不会觉得是一个缺点了。

简单实战

我可以通过网络浏览器访问我电脑中的文件。如果我打开Google Chrome浏览器并输入/Users,那么我将看到如下效果。
命令行教程—Linux必备_全栈工程师技能_第1张图片

命令行界面也是如此。包括我们自己cmd命令打开的命令行dos界面

我的终端背景很暗。您的颜色可能是白色,蓝色或其他,取决于您所使用的内容。这只是个人喜好,我们以后可以学习改变这些配置。

就像我C:/在Google Chrome中一样,当前我通过命令提示符/cmd终端“切换到”同一文件夹中。我将通过pwd在终端中键入然后按Enter 来证明这一点。pwd代表“ 打印工作目录路径”,显示“文件所在路径”。

pwd

但是我怎么知道文件中内容呢?如何与任何这些文件和目录进行交互?我将使用ls命令,该命令代表列出目录内容

ls

现在,我可以完全看到 和Chrome /网络浏览器中看到的一样的内容了!

现在您应该了解,您正在通过命令行访问计算机上任何文件和文件夹了。

了解语法

当我打开终端时,我看到了

NolBook:~ taniarascia$

您可能还会看到其他内容,但是~$仍然存在


Computer Name:Directory Username READY
  • 计算机名(NolBook)-这只是我给我的计算机起的名字。
  • 目录~)-计算机名称旁边是您正在使用的当前目录。~代表主目录,这是我的taniarascia文件夹。
  • 用户名(taniarascia)-这可能有点令人困惑,因为我的主文件夹和用户名都是taniarascia,但这是专门指计算机用户。
  • 就绪$)-美元符号表示提示已准备就绪,可以接受您的命令。您无需输入$,它就在那里。在Windows计算机上,这由>符号表示。

终端或命令提示符是运行外壳程序的程序(命令行界面),该外壳程序会解释录入的命令。

指令

我们将学习如何使用鼠标或键盘快捷键在计算机上执行许多常规操作。我们将在目录之间移动,创建文件和文件夹,删除它们,移动它们,复制和粘贴它们以及编辑文件。您也可以随时按clear以擦拭所有历史记录并拥有干净的屏幕。

到目前为止,我们已经学到了三件命令。

命令 含义 描述
pwd 打印工作目录 找出当前目录在哪里
ls 列出目录内容 查看您当前位置的文件和目录
clear 明确 清除终端屏幕

pwd在编写任何命令之前,请始终记住键入以确保您知道自己在哪里。

默认情况下,如果退出Terminal,您将最终回到主目录。

在目录之间移动

现在,我在主文件夹中。如果要移动到其他地方,我将使用cd命令- 更改目录。我将移至“ **音乐”**文件夹,然后检查我的位置。键入这些命令,然后在每个命令之后按Enter键。

cd music
pwd
ls

首先,我移至“ 音乐”文件夹。不管大小写,终端都将理解为目录,因此我可以编写音乐Music。我打印出当前位置以确保确定,然后列出内容。如您所见,它说的NolBook:music不是NolBook:~,所以我知道我现在在不同的目录中。

很好,但是我真的不想在Music文件夹中做任何事情。我该如何回去?在终端中,一个点(.)表示当前目录,两个点(..)表示一个目录向后或靠近根目录。

我想回到一个目录,回到我之前的主文件夹。

cd ..
NolBook:~ taniarascia$

通过输入,cd ..我告诉shell将我带回到一个目录,现在我回到home / ~。现在拓展一下练习在目录之间移动,使用../..将带您回到两个目录,依此类推。

目录和文件名中的空格

如果尝试移动到具有空格的目录中,则可能会遇到问题。例如,在我的音乐文件夹中,有一个名为Audio Music Apps的目录。但是,如果我尝试简单键入。

cd Audio Music Apps
-bash: cd: Audio: No such file or directory

命名行界面程序认为我试图移入音频而不是**音频音乐应用程序,**因为它无法识别空格。有两种方法可以解决此问题。

使用引号

将任何文件都用双引号引起来以保留空格

cd "Audio Music Apps"
转义

\在每个空格之前键入反斜杠字符。如果您按Tab键,终端将为您完成!只需键入cd A并按Tab键,shell便会自动假定您要键入的内容。

cd Audio\ Music\ Apps/
命令 含义 描述
cd 变更目录 在目录之间移动

您可以通过按Control + C随时结束命令

创建文件和目录

您可以从命令行创建文件和文件夹。

建立目录

让我们创建一个文件夹,使用(Make Directory)命令练习名为Shell的文件夹。mkdir

mkdir Shell

恭喜,您创建了目录!如果输入ls,我将在主文件夹中看到我新创建的目录。

NolBook:~ taniarascia$ cd shell
NolBook:shell taniarascia$ pwd
/Users/taniarascia/shell
建立文件

现在让我们制作一个文件。您可以使用touch命令执行此操作。

touch test.html

我的示例名称不是很独特,因此我将其命名为test.html。输入此代码时,它不会输出任何内容来表示命令已成功执行。您可以ls查看它,或在(Finder是Mac软件)Finder中检查是否已创建有效的.html文件。

您可以创建任何类型的文件,但是只有通过终端创建基于文本的文件才有意义。

您也可以同时创建多个文件。

touch one.txt two.txt three.txt
将文字写入文件

我们曾经touch创建过一个空文件,甚至可以使用echo创建一个包含某些内容的文件。

echo "Hello World" > hello.txt

现在,我有一个名为hello.txt的纯文本文件,其中包含内容Hello World

查看文件内容

我可以通过Terminal使用cat命令查看内容。

cat hello.txt
NolBook:shell taniarascia$ cat hello.txt
Hello World

在这一点上,我建议创建更多文件和目录,并在它们之间移动来熟悉命令。

这些命令- touchcatecho-的功能远远超过我在这些快速示例中显示的内容

命令 含义 描述
mkdir 创建目录 创建一个新目录
touch 触摸 创建一个新文件
cat 级联 查看文件内容
echo "x" > 回声 快速将文本打印到文件

删除文件和目录

现在假设您已经在测试文件夹中弄乱了文件和目录,因此我们可以开始清理它。

删除文件

使用rm删除)命令删除文件。

rm hello.txt

请注意,这将永久删除文件-不会将其发送到垃圾箱/回收站。

*在编程中,星号 被称为通配符。我可以选择使用通配符删除某个文件类型的所有文件。例如,如果我有许多.png文件,则可以rm *.png批量删除整个.png文件。

删除目录

现在,让你用mkdir goodbye创建一个名为**goodbye**的新目录,你尝试将其删除rm goodbye`。您会收到此错误。

NolBook:shell taniarascia$ rm goodbye
rm: goodbye: is a directory

没问题,我们将使用rmdir删除目录)将其删除

rmdir goodbye

现在不见了。如果要删除其中包含文件夹的文件,则必须运行稍有不同的命令。

rm -r goodbye

touch一样,我们可以同时删除多个文件或文件夹。

rm one.txt two.txt three.txt
命令 含义 描述
rm 去掉 删除目录条目
rmdir 删除目录 删除目录

复制文件和目录

我们还可以使用cpCopy)命令通过命令行复制和粘贴文件。只需键入,cp然后输入源(要复制的文件)和目标(要复制到的位置)。

cp source destination

我在我的Shell文件夹中。比方说,我使用mkdir websites创建一个新目录。现在,我可以将test.html/Users/taniarascia/shell复制到/Users/taniarascia/shell/websites

cp test.html websites

这与复制和粘贴(命令+ C)相同。

要复制整个目录,请使用该-R选项。我可以将website目录及其所有内容复制到新目录中。

cp -R websites websites2
复制文件

您也可以复制同一文件夹中的文件。(创建一个副本文件)

cp test.html test2.html

移动文件和目录

您可以使用mvMove)命令移动文件,就像复制文件一样。

mv source destination

这类似于剪切和粘贴(命令+ X)

命令 含义 描述
cp 复制 复制文件
cp -R 递归复制 复制目录及其所有内容
mv 移动 移动(剪切和粘贴)文件和目录

运行多个命令

我们可以使用双“&” &&运算符运行多个命令。只要第一个命令成功执行,下一个命令就会运行。

touch newfile.txt && mv newfile.txt websites

我刚刚创建了一个新文件,并使用一个命令将其移动到另一个目录

变更权限

当您是Windows或Mac临时用户时,通常不会考虑文件权限,但是,如果您曾经在Web服务器上工作过,则可能会拥有权限方面的经验。您可以使用chmod更改模式)命令更改权限。

chmod 644 test.html

我已经授予644(所有者读写)权限test.html,这是文件的常见权限。

以管理员身份运行

该术语sudo代表超级用户使用。您可能会遇到以下情况:您当前登录的用户没有足够的权限来执行任务。您可以在命令之前sudo以管理员身份运行命令,只要您具有管理员密码即可。键入密码时,它不会显示任何星号来表示您已键入任何内容。

sudo chmod 775 directory

您也可以切换到管理员用户。这不是您经常应该执行的操作,但是了解它很有用。有时,您需要以admin身份登录才能在受限目录之间移动。

sudo su

现在,我的终端看起来与众不同-它有一个#而不是 $来指示我以超级用户身份登录。

sh-3.2#

由于我真的不想以admin身份登录,因此我将转到exit,这将使我返回到常规用户帐户。

exit

连接到另一台计算机或服务器

如果您是Web开发人员或设计师,您将熟悉通过FTP或SFTP连接到Web服务器。您可以使用sshSecure SHell)通过命令行实现安全连接。

您通过连接相同的信息使用FileZilla或Transmit之类的GUI进行连接服务器。

ssh username@host

输入密码后,您现在位于另一台服务器内部。您的控制台很可能看起来像这样:

[username@host ~]$

我们已经学习的所有命令也可以在您的虚拟主机上使用。您可以使用以下exit命令退出服务器并返回到自己的计算机。

一些有用的命令

有时,当我面临所处环境时,我会使用计算机将自己带回到所处环境中。

whoami
NolBook:~ taniarascia$ whoami
taniarascia

迁移网站时,我经常需要检查给定域的IP地址。我可以使用digDNS查找)命令来执行此操作。

dig google.com
;; QUESTION SECTION:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		279	IN	A	216.58.192.238

如果忘记了某些内容,也可以使用man查看命令行的帮助指南。

man touch
NAME
touch -- change file access and modification times

要退出手册页,只需按q。

使用基本的文本编辑器

您可能听说过Vim或Emacs等程序。这些是基于终端的文本编辑器。这两个程序都有一些学习曲线。大多数(如果不是全部)基于Mac和Linux的计算机都装有一个名为Nano的程序,它是一个非常简单的文本编辑器。

我可以使用该nano命令通过Nano打开文件。

首先,我将创建一个新文件。

touch index.html

然后,我将使用nano编辑它。

nano index.html

现在我的终端屏幕看起来像这样。

命令行教程—Linux必备_全栈工程师技能_第2张图片

在顶部,我可以看到正在编辑的文件(index.html),在底部是可以执行的各种命令。^代表控制。除了复制文件内容之外,您将无法使用鼠标来回移动或执行任何操作。

因此,我将输入以下的内容。

命令行教程—Linux必备_全栈工程师技能_第3张图片

现在要保存文件,我按Control + O(字母),然后输入以确认。现在我可以通过键入control + X 退出Nano,然后我将回到开始的位置。

现在,我可以用cat检查index.html的内容确保它的所有操作内容正常。

NolBook:shell taniarascia$ cat index.html
  
    
      Hello, World!
    
    
      

Hello, World!

回顾

这是我今天完成的所有命令的回顾。

命令 含义 描述
pwd 打印工作目录 找出文件在哪里
ls 列出目录内容 查看您当前位置的文件和目录
clear 明确 清除终端屏幕
cd 变更目录 在目录之间移动
mkdir 制作目录 创建一个新目录
touch 触摸 创建一个新文件
cat 级联 查看文件内容
echo "x" > Echo 快速将文本打印到文件
rm 去掉 删除目录条目
rmdir 删除目录 删除目录
cp 复制 复制文件
cp -R 递归复制 复制目录及其所有内容
mv 移动 移动(剪切和粘贴)文件和目录
&& 运行多个命令
whoami 我是谁 显示当前用户ID
dig Dig DNS查询
man 手册 打开手册(帮助)页面
nano Nano的ANOther编辑器 自由文本编辑程序

你可能感兴趣的:(DevOps)