我知道Linux是基于文本文件构建的操作系统。我想做的是使用vi
我学到的所有各种命令来创建文件。这样,我可以使用/
in 非常容易地找到每个单独的命令vi
。但我只想在不改变计算机功能的情况下执行此操作。这是个好主意吗?
vi
(相对于gedit
)有什么特别的地方?或者您只是说“文本编辑器”?
sudo
。
我知道Linux是基于文本文件构建的操作系统。我想做的是使用vi
我学到的所有各种命令来创建文件。这样,我可以使用/
in 非常容易地找到每个单独的命令vi
。但我只想在不改变计算机功能的情况下执行此操作。这是个好主意吗?
vi
(相对于gedit
)有什么特别的地方?或者您只是说“文本编辑器”?
sudo
。
Answers:
编写文本文件不会“改变计算机功能的方式”。
特别是,要执行类似的操作,您必须执行以下一项操作
由于您将不会明确地进行此类操作,因此无需担心。特别是,另一个答案是多余的长度,它建议您的文本文件需要以每行的哈希开头。当然不是。仅将文本文件存储在普通主目录中的某处将不会做任何事情。
#
这样就不会有任何意外的事情发生。我认为最好总是站在安全的一边。
You won't have permission to do this
。须藤给我做一个三明治。Aye, aye, sir!
exit
?
您可以将学习到的所有命令保存在一个文件中,但需要注意一些重要事项:
source
档案最好的方法是#
在所有命令的开头放置一个以注释掉所有命令,以免它们被意外执行。这样,您可以实际搜索所需的命令,并且也不会有任何风险。您可以#
通过以下命令在每行的开头添加:
sed -i 's/^/#/' <file_name>
编辑:我已经将第三点作为一种极端的安全措施,因为“ neon_overload”和“ David Z”指出,在所有行中放入哈希值过于广泛,因此不需要,在这种情况下,我将与他们一道。同样,正如“ random832”所指出的那样,对我的第三点的更好的选择是使用来启动文件exit
,因为那样以后就不会执行任何命令了。
EDIT-2: “ Rinzwind”提到了两个要点:
不要覆盖现有文件
将文件存储在用户的主目录(/home/$USER/
)中。
put a # in the beginning of all the commands to comment out all the commands so they don't get executed accidentally
我不太确定这是一个严肃的建议还是在开玩笑。我的讽刺侦探今天使我失败了。
#!
,只是exit
;这样一来,您也可以免受sh yourfile
无效的shebang的攻击。
neon_overload有一个很好的答案。
我会在您问题的某个方面稍作扩展-我会发表评论,但是我在这里没有足够的声誉。
Linux作为操作系统,很大程度上不是基于文本文件的。也就是说,我可以看到您来自哪里。对于外部观察者来说,编辑和启动“文本”文件需要做很多工作,尤其是与Windows相比。
这有几个原因,其中一些是:
vi
是一个文本编辑器,因此,如果您只需要将一些文本片段存储在文本文件中并进行搜索,则可以使用内置命令直接从终端执行所有操作。
将注释写到文本文件(如果文件不存在,将创建该文件):
回显具有重要数据的便笺>> info.txt
重要说明:请注意单引号和双引号,并在要加引号的前面加上斜杠。
在文件中搜索一些文本(例如important
):
grep --color -i重要信息.txt
为避免键入--color -i
,应在您的中添加别名~/.bashrc
。
您还可以将多行文本添加到现有或不存在的文本文件中:
cat >> info2.txt
然后输入或粘贴文本,完成后按CTR+Z
至于更改系统,不,只要您在自己的主文件夹中创建文件并且不执行它们,就不会改变系统的工作方式(即使文件不可执行,您也可以执行,例如使用bash myFile
) 。还要确保仅在需要时才严格使用root特权。
最后,您对基于文件系统的解释使您有些误解:大多数操作系统的文件都存储着会严重影响系统运行方式的重要设置,但它们位于预定义的位置,并且通常受到常规用户的保护,以防被修改。
不过,可以轻松地将自己踢倒,例如,如果您是普通用户,您添加了本地“可执行文件”文件夹PATH
,并且在该文件夹中恰好具有与构建名称相同的可执行文件, -in公共公用事业或bash关键字,例如test
,echo
,cat
,for
,cut
,等。