Linux作用:
Linux 比 Windows 等作系统 (OS) 更令人生畏。两种变体都有自己的优点和缺点。例如,Linux 要轻量级得多,您会惊讶地发现您很有可能每天都以某种形式使用 Linux!Linux 支持以下内容:
- 您访问的网站
- 汽车娱乐/控制面板
- 销售点 (PoS) 系统,例如商店的收银台和收银机
- 关键基础设施,例如交通信号灯控制器或工业传感器
Linux 的版本:
“Linux”这个名称实际上是基于 UNIX(另一种作系统)的多个作系统的总称。
Ubuntu 和 Debian 是 Linux 的一些更常见的发行版
我们将学习使用 Ubuntu
注意:Ubuntu Server 可以在只有 512MB RAM 的系统上运行!
常见命令
“终端”纯粹基于文本,一开始令人生畏。但是,如果我们分解一些命令,一段时间后,您很快就会熟悉使用终端!
我们需要能够执行基本功能,例如导航到文件、输出其内容和制作文件!
命令 | 描述 |
echo | 输出我们提供的任何文本 |
whoami | 找出我们当前登录的用户! |
有关所使用echo的示例,请参阅下面的代码片段
tryhackme@linux1:~$ echo Hello
Hello
tryhackme@linux1:~$ echo "Hello Friend!"
Hello Friend!
如上面的终端所示,如果我们想“回显”单个单词,我们不需要使用双引号,例如 。但是,如果存在一个或多个空格,则字符串应括在双引号中,例如 。echo Helloecho "Hello Friend!"
whoami可用于查找我们登录的用户名。
tryhackme@linux1:~$ whoami
到目前为止,我们只介绍了“echo”和“whoami”命令。当您考虑我们需要做的事情时,这并不是那么有用 – 包括导航文件系统、读取和写入文件系统。
在这个任务中,我们将学习命令,以便我们可以做到这一点。与上一个任务一样,我将在下一个标题中显示表中的命令,并显示正在使用的这些命令的示例。
与文件系统交互
命令 | 全名 |
ls | 清单 |
cd | 更改目录 |
cat | 连接 |
pwd | 打印工作目录 |
列出我们当前目录中的文件 (ls)
在我们做任何事情(例如找出任何文件或文件夹的内容)之前,我们首先需要知道存在什么。这可以使用“ls”命令(列表的缩写)来完成
更改我们当前的目录 (cd)
现在我们知道存在哪些文件夹,我们需要使用“cd”命令(change directory 的缩写)更改到该目录。
输出文件内容 (cat)
输出文本文件的内容
tryhackme@linux1:~/Documents$ ls
todo.txt
tryhackme@linux1:~/Documents$ cat todo.txt
Here's something important for me to do later!
找出我们当前工作目录 (pwd) 的完整路径
您会注意到,当您浏览 Linux 机器时,您当前正在使用的目录的名称将列在您的终端中。
很容易忘记我们在文件系统上的确切位置,这就是我想引入“pwd”的原因。这代表 print working directory。
tryhackme@linux1:~/Documents$ pwd
/home/ubuntu/Documents
tryhackme@linux1:~/Documents$
使用查找(find)
find 命令非常棒,因为它既可以非常简单地使用,也可以相当复杂地使用,具体取决于您到底想做什么。但是,让我们先坚持基本面。
tryhackme@linux1:~$ ls
Desktop Documents Pictures folder1
tryhackme@linux1:~$
让我们从简单开始,假设我们已经知道要查找的文件的名称——但不记得它的确切位置!在本例中,我们正在寻找“passwords.txt”
如果我们记得文件名,我们可以简单地使用命令将查看当前目录中的每个文件夹以查找该特定文件的位置,如下所示:find -name passwords.txt
tryhackme@linux1:~$ find -name passwords.txt
./folder1/passwords.txt
tryhackme@linux1:~$
“查找”已经设法找到了该文件——原来它位于文件夹 1/passwords.txt——很甜蜜。但是,假设我们不知道文件的名称,或者想要搜索每个扩展名为“.txt”的文件。找到让我们也这样做!
tryhackme@linux1:~$ find -name *.txt
./folder1/passwords.txt
./Documents/todo.txt
tryhackme@linux1:~$
使用 Grep
另一个值得学习的实用程序是使用 .该命令允许我们在文件内容中搜索我们正在寻找的特定值。
使用“wc”计算“access.log”中的条目数量
tryhackme@linux1:~$ wc -l access.log
244 access.log
tryhackme@linux1:~$
使用“grep”查找“access.log”中 IP 地址为“81.143.211.90”的任何条目
tryhackme@linux1:~$ grep "81.143.211.90" access.log
81.143.211.90 – – [25/Mar/2021:11:17 + 0000] "GET / HTTP/1.1" 200 417 "-" "Mozilla/5.0 (Linux; Android 7.0; Moto G(4))"
tryhackme@linux1:~$
Linux shell运算
符号/运算符 | 描述 |
& | 此运算符允许您在终端的后台运行命令。 |
&& | 此运算符允许您将多个命令组合在终端的一行中。 |
> | 此运算符是一个重定向器 – 这意味着我们可以从命令中获取输出(例如使用 cat 输出文件)并将其定向到其他位置。 |
>> |
此运算符执行与运算符相同的功能,但附加输出而不是替换(意味着不会覆盖任何内容)。> |
运算符“&”
该运算符允许我们在后台执行命令。例如,假设我们要复制一个大文件。这显然需要相当长的时间,并且在文件成功复制之前,我们将无法执行任何其他作。
“&”shell 运算符允许我们执行命令并在后台运行(例如此文件副本),从而允许我们做其他事情!
运算符“&&”
这个 shell 运算符在对它的伙伴“&”有多熟悉的意义上有点误导。与“&”运算符不同,我们可以使用“&&”来制作要运行的命令列表,例如 。但是,值得注意的是,只有在成功时才会运行。command1 && command2command2command1
运算符“>”
假设我们想创建一个名为“welcome”的文件,并带有消息“hey”。我们可以在我们想要创建的文件的位置运行,内容为 “嘿”,如下所示:echo hey > welcome
tryhackme@linux1:~$ echo hey > welcome
使用 cat 输出“欢迎”文件
tryhackme@linux1:~$ cat welcome
hey
注意:如果文件(即“welcome”)已经存在,则内容将被覆盖!
运算符“>>”
此运算符也是一个输出重定向然而,这个运算符的不同之处在于,它不是覆盖文件中的任何内容,而是只是将输出放在最后。
tryhackme@linux1:~$ echo hello >> welcome
使用 cat 输出“欢迎”文件
tryhackme@linux1:~$ cat welcome
hey
hello
为了总结一下,我们介绍了以下内容:
- 了解为什么 Linux 在今天如此普遍
- 与您的第一台 Linux 机器交互!
- 运行一些最基本的命令
- 介绍了在文件系统中导航,以及我们如何使用 find 和 grep 等命令来使查找数据更加高效!
- 通过了解一些重要的 shell 运算符来增强您的命令。
评论前必须登录!
注册