使用场景:
Apple macOS和大多数Linux服务器几乎使用完全相同的命令,因此本教程适用于两者。即使您使用Windows PC,这也很有用,因为您的网站很可能托管在Linux服务器上。
Windows,macOS(无论使用什么操作系统)都只是计算机的直观表示。这被称为图形用户界面(GUI)。带有文件浏览器,桌面,图标和所有其他图形,在这以前你只能命令行操作。您不能输入拖放,指向和点击,而是只能输入内容。那是唯一二者的区别。
您可以通过命令行访问整个计算机。您可以通过命令行执行所有操作。执行效率,交互效率也是最高的,可能唯一的缺点,你会觉得是交互友好性差,但是你要知道它的应用场景(高效利用硬件资源)就不会觉得是一个缺点了。
我可以通过网络浏览器访问我电脑中的文件。如果我打开Google Chrome浏览器并输入/Users
,那么我将看到如下效果。
命令行界面也是如此。包括我们自己cmd命令打开的命令行dos界面
我的终端背景很暗。您的颜色可能是白色,蓝色或其他,取决于您所使用的内容。这只是个人喜好,我们以后可以学习改变这些配置。
就像我C:/
在Google Chrome中一样,当前我通过命令提示符/cmd终端“切换到”同一文件夹中。我将通过pwd
在终端中键入然后按Enter 来证明这一点。pwd
代表“ 打印工作目录路径”,显示“文件所在路径”。
pwd
但是我怎么知道文件中内容呢?如何与任何这些文件和目录进行交互?我将使用ls
命令,该命令代表列出目录内容
ls
现在,我可以完全看到 和Chrome /网络浏览器中看到的一样的内容了!
现在您应该了解,您正在通过命令行访问计算机上任何文件和文件夹了。
当我打开终端时,我看到了
NolBook:~ taniarascia$
您可能还会看到其他内容,但是~
和$
仍然存在
Computer Name:Directory Username READY
~
)-计算机名称旁边是您正在使用的当前目录。~
代表主目录,这是我的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
在这一点上,我建议创建更多文件和目录,并在它们之间移动来熟悉命令。
这些命令- touch
,cat
和echo
-的功能远远超过我在这些快速示例中显示的内容
命令 | 含义 | 描述 |
---|---|---|
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 |
删除目录 | 删除目录 |
我们还可以使用cp
(Copy)命令通过命令行复制和粘贴文件。只需键入,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
您可以使用mv
(Move)命令移动文件,就像复制文件一样。
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服务器。您可以使用ssh
(Secure SHell)通过命令行实现安全连接。
您通过连接相同的信息使用FileZilla或Transmit之类的GUI进行连接服务器。
ssh username@host
输入密码后,您现在位于另一台服务器内部。您的控制台很可能看起来像这样:
[username@host ~]$
我们已经学习的所有命令也可以在您的虚拟主机上使用。您可以使用以下exit
命令退出服务器并返回到自己的计算机。
有时,当我面临所处环境时,我会使用计算机将自己带回到所处环境中。
whoami
NolBook:~ taniarascia$ whoami
taniarascia
迁移网站时,我经常需要检查给定域的IP地址。我可以使用dig
(DNS查找)命令来执行此操作。
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
现在我的终端屏幕看起来像这样。
在顶部,我可以看到正在编辑的文件(index.html),在底部是可以执行的各种命令。^
代表控制。除了复制文件内容之外,您将无法使用鼠标来回移动或执行任何操作。
因此,我将输入以下的内容。
现在要保存文件,我按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编辑器 | 自由文本编辑程序 |