如何使用终端创建一个简单的.txt(文本)文件?[关闭]


77

我只是在尝试查看基本的终端命令。话虽如此,我如何仅使用终端创建文本文件?


尽管问题确实太过广泛,但快速教程(vim,编辑器,shell命令重定向等)可能对将来有用,尤其是与视图数,帖子的投票分数和答案一起使用时。作为社区Wiki帖子,也许这将是最有用的。
user259412 '18

Answers:


106

您不能使用终端来创建文件。您可以使用在终端中运行的应用程序。只需调用任何非GUI编辑器(emacs -nwjoenanovivim,...)。

如果要使用命令行,那么您正在询问如何使用Shell创建文件。请参阅“终端”,“外壳”,“ tty”和“控制台”之间的确切区别是什么?

使用shell创建文件的基本方法是使用输出重定向。例如,以下命令创建一个名为的文件,foo.txt其中包含以下行Hello, world.

echo 'Hello, world.' >foo.txt

如果要写多行,则有几种可能。您可以使用printf

printf '%s\n' 'First line.' 'Second line.' 'Third line.' >foo.txt

您可以使用包含换行符的字符串文字。

echo 'First line.
Second line.
Third line.' >foo.txt

要么

echo $'First line.\nSecond line.\nThird line.' >foo.txt

另一种可能性是对命令进行分组。

{
  echo 'First line.'
  echo 'Second line.'
  echo 'Third line.'
} >foo.txt

在命令行上,您可以使用进行更直接的操作cat。将其输出重定向到文件,并在cat的标准输入上逐行键入输入。在行的开头按Ctrl+ D指示输入的结尾。

$ cat> foo.txt 
第一行。
第二行。
第三行。
Ctrl+D

在脚本中,您将使用here文档来达到相同的效果:

cat <<EOF >foo.txt
First line.
Second line.
Third line.
EOF

如果只想创建一个空文件,则可以使用以下touch命令:如果文件不存在,它将创建文件;如果文件存在,则仅更新其最后修改日期。

touch foo.txt

等效地:

>>foo.txt

即打开foo.txt进行追加,但向其写入0字节-这将创建文件,但不会对其进行修改。与不同的是touch,如果文件的上次修改日期已经存在,则不会更新该文件。

要创建一个空文件,并删除文件内容(如果该文件已经存在),可以使用

>foo.txt

13
touch ~/Desktop/something.txt

这将创建一个空txt文件。

要么

echo "Hello" > ~/Desktop/somethingelse.txt

这将创建一个名为txt“ Hello” 的文件。

nano ~/Desktop/anotherfile.txt

这将~/Desktop/anotherfile.txt在中打开nano,或者如果不存在,它将创建并在中打开nano

只需替换nanoemacs或即可vim使用emacsvim代替nano


还应该提cat<<,提>>
o11c 2014年

让我们不要重新发明轮子。<<>>在讨论什么是壳的控制和重定向操作符?
G-Man

9

创建一个空文件所需要做的就是:

> my.txt

2
在某些shell(zsh,tcsh等)中至少:> my.txt需要。:是一个空命令。
jofel 2014年

{回显“第一行。” 回显“第二行”。回显“第三行”。}> foo.txt无法使用
Waterfr Villa

2

您可以使用nano,vi或emacs编辑程序在终端级别创建文件。如果您使用的是x Windows系统,则需要告诉系统不要在GUI中使用该程序。但无论如何,我将以emacs为例。

从重击;类型:

 emacs filename.txt (press enter) - it will create an empty file with the filename specified "filename.txt". It will save "filename.txt" from which ever 
directory type in "emacs filename.txt" command.

请记住,所有UNIX系统VI都附带它;emacs不需要,您需要安装emacs。另一方面,纳米更受欢迎。以防万一如果没有响应,这意味着当您“ nano filename.ext”并且什么也没有发生时,您将需要安装它。

一旦发出vi filename.txt,很可能最终会创建一个新文件。在开始之前,您应该先查找vi,emacs或nano在Google上的用法。在那些编辑程序中,如何编写文件,进行编辑,使用其工具搜索和替换文本的方法有所不同。我在所有选择中都喜欢emacs,但您会发现对vi和nano痴迷或偏爱的开发人员


因为emacs中没有图形编辑器选项,所以是“ emacs filename.txt -nw”,其中“ -nw”表示没有图形用户窗口,没有窗口
unixmiah 2014年

2

当您陷入困境并且必须在命令行上创建多行文本文件时,有一些类似的帮助:

# cat <<'EOF' > textfile
> This "should"
> prove useful, 'maybe'.
> EOF
# cat textfile 
This "should"
prove useful, 'maybe'.

您可以替换cat另一个命令(例如grep和一个pattern),并让grep在您的输入上完成其工作,这将以相同的方式输出到文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.