1. 本文将学习的内容
在 Ubuntu 上工作时,你不可避免会遇到想要“创建一个新文件”的情形。
比如,你可能会为笔记创建一个文本文件,生成一个新的配置文件,或准备一个 shell 脚本——用例非常多。
如果你习惯了 Windows,往往会想:“右键就能新建文件吗?”或者“哪种方法才是正确的?”——这正是经典的 Ubuntu 时刻。
在本文中,我们将整理并讲解 在 Ubuntu 中创建文件的最常见方法,让即使是初学者也能毫不迷茫地跟随。
1.1 Ubuntu 中创建文件的常见方式(命令行 / GUI)
在 Ubuntu 中创建文件主要有两种方式:
使用命令(终端)
一旦熟悉,使用终端的速度极快,而且在实际工作中使用频繁。
- 创建空文件:
touch - 创建文件并同步写入内容:
echo或printf+ 重定向(>) - 一次性创建多行文件:
cat(heredoc)
对于服务器操作或编辑配置文件等任务,命令行是标准做法。
使用 GUI(文件管理器)
在 Ubuntu 的桌面环境下,你也可以使用文件应用(Nautilus)进行可视化操作。
- 打开文本编辑器,使用 “新建文件 → 保存”
- 使用 模板 功能(Templates)从右键菜单创建文件
即使你主要使用 GUI,这也是一种舒适的选择。
1.2 应该选哪种方法?(按使用场景快速参考)
很多人会卡在“到底该用哪种?”——下面直接给出结论。
| What you want to do | Recommended method | Why |
|---|---|---|
| Create an empty file as fast as possible | touch | Fastest and reliable |
| Create a file with just one line | echo + > | Easy to copy/paste |
| Create a multi-line configuration file | cat (heredoc) | Create in one shot, fewer mistakes |
| Create while viewing on screen | Save from a text editor | Beginner-friendly |
| Create from right-click | Templates | Ubuntu-specific solution |
如果你是初学者,只需要掌握 “从 GUI 保存” 和 “touch” 两种方式就足够。
当你熟练后,加入重定向和 heredoc 到你的工具箱中,工作流会更加顺畅。
1.3 目标受众(从入门到轻度实用)
本文面向以下人群:
- 刚开始使用 Ubuntu,却不知道如何创建文件
- 对终端不熟悉,但想学习最基本的命令
- 正在逐步编写配置文件或脚本
- 因右键无法新建文件而卡住
- 遭遇 “Permission denied” 等错误被卡住
后文还会介绍创建后检查(权限与所有者)以及常见故障排除,
因此它将成为你日常 Ubuntu 使用时 “随时翻阅的参考手册”。
2. Ubuntu 中“创建文件”到底是什么意思
在 Ubuntu 中,“创建文件”仅指 “准备一个可以保存数据的容器”。
但在实际工作中,初学者常常因为以下情况混淆概念:
- 以为自己创建了文件,实际上创建的是目录(文件夹)
- 记不清自己把文件放在哪儿了
- 创建时没有加文件扩展名,导致不知道文件用途
- 创建后无法编辑(权限问题)
下面我们将 整理 你在 Ubuntu 中需要了解的文件创建基础。
2.1 文件与目录的区别(常被混淆)
首先,在 Ubuntu(Linux)中,“文件” 与 “目录(文件夹)” 是不同的概念。
- 文件:包含内容(文本、设置、数据等)的实体
- 目录:用于组织文件的容器
举例:
memo.txt→ 文件Documents/→ 目录config.ini→ 文件project/→ 目录
初学者最常犯的错误是本想创建文件,却误用了创建目录的命令。
- 创建目录的命令:
mkdir - 创建文件的命令:
touch(以及其他方式)
本文聚焦于 创建文件,因此主要使用 touch 与 > 等重定向方式。
2.2 扩展名不是必须的,但在实际使用中很重要
(此节后续内容将在后文展开)
在 Windows 上,文件扩展名(.txt、.jpg、.exe 等)非常重要,
人们常常觉得扩展名“定义”了文件是什么。
在 Ubuntu(Linux)中,另一方面,扩展名不是必需的。
在极端情况下,像这样的文件可以存在而没有任何问题:
memoconfigrun
话虽如此,在实际使用中添加扩展名通常更清晰。
特别是对于初学者,推荐使用扩展名以使用途明显。
常见示例包括:
memo.txt: 文本笔记script.sh: shell 脚本settings.conf: 配置文件data.csv: CSV 数据README.md: 文档(Markdown)
此外,在 Ubuntu 中,“文件内容”和“权限(是否可以执行)”往往比扩展名更重要。
这就是为什么本文后面我们还将涉及 chmod(执行权限)。
2.3 通过考虑保存位置(路径)来减少错误(主目录 / 工作目录)
这是 Ubuntu 上创建文件时初学者最常见的问题之一:
“我创建了文件,但找不到它在哪里……”
这通常是因为你没有注意你是在哪个目录中创建的它。
在 Ubuntu 中,创建文件的位置有两种常见模式。
在你的主目录下创建(推荐给初学者)
你登录的用户通常有一个个人工作空间。
这被称为你的主目录。
示例路径:
/home/username/
在终端中,它由符号 ~ 表示。
示例:
~/Documents~/Downloads~/Desktop
作为初学者,通常在你的主目录下工作是最安全的。
在你的工作目录中创建(熟悉后理解)
当你从终端创建文件时,它会创建在“你现在所在的地方”。
这被称为当前目录。
检查当前位置的命令是 pwd。
pwd
示例:如果输出是:
/home/user/Documents
那么运行 touch test.txt 将在这里创建文件:
/home/user/Documents/test.txt
所以文件创建不仅仅是“动作”——你需要将位置(路径)理解为其一部分。
3. 最快的选项:创建空文件 (touch)
当你在 Ubuntu 上想,“我现在只是想创建一个文件”时,最简单和最可靠的方法是 touch 命令。
touch 常用于以下情况:
- 为笔记创建一个空文件并稍后编辑
- 为配置文件首先准备一个“空容器”
- 为项目一次性创建多个文件
- 在运行另一个进程之前准备一个必须存在的文件
对于“创建空文件”的目标,touch 接近于最佳答案。
3.1 touch filename 的基础(创建空文件)
基本形式极其简单。
touch filename
例如,要创建一个名为 memo.txt 的空文件:
touch memo.txt
要确认它是否创建,使用 ls 列出文件。
ls
你应该看到你创建的文件:
memo.txt
如果你想确认“它真的是空的吗?”,你可以用 cat 显示其内容。
cat memo.txt
如果没有显示任何内容,文件就是空的。
3.2 如果对现有文件运行 touch 会发生什么?(时间戳更新)
touch 不仅仅创建不存在的文件。
如果你对已经存在的文件运行它,它通常表现如下:
- 文件内容不变
- 修改时间(时间戳)变得更新
例如,如果 memo.txt 已经存在并且你运行:
touch memo.txt
内容保持不变,但文件的“修改时间”被更新。
在许多日常任务中这无关紧要,但要小心以下情况:
- 备份/同步工具将其视为“已更新”
- 构建或自动化进程依赖时间戳
- 监控系统可能将其误解为更改
作为初学者,记住 “touch = 创建一个空文件” 已经足够。
随着经验的积累,最好再记住它还能 “更新时间戳”。
3.3 一次创建多个文件(示例:touch a.txt b.txt)
你也可以在一次命令中创建多个文件。
touch a.txt b.txt c.txt
这一行会同时创建 a.txt、b.txt 和 c.txt。
在需要准备一个基本项目骨架时,这也非常方便。
touch index.html style.css script.js
在 Web 开发和学习场景中,这种一次性创建多个文件的做法非常常见。
3.4 常见错误:拼写错误导致意外文件 / 错误位置
touch 使用起来很便利,但正因为它太容易,就可能导致 “意外”。
以下是初学者常犯的错误。
没注意到文件名的拼写错误
例如,你本想创建 config.txt,却不小心敲成了:
touch confgi.txt
于是系统会创建一个名为 confgi.txt 的不同文件。
touch 不会报错——它直接创建文件——所以很容易被忽视。
技巧:创建文件后立即运行 ls,确认实际生成了哪些文件。
在错误的目录下创建(找不到文件)
这种情况非常常见。
当你在终端里创建文件时,它会出现在当前所在的目录中。
查看 “我现在在哪儿?” 的命令是 pwd。
pwd
如果不在预期的目录,请先使用 cd 切换到正确位置,再创建文件。
示例:切换到 Documents 目录后再创建文件
cd ~/Documents
touch memo.txt
至此,你已经掌握了在 Ubuntu 上创建空文件的最简方法:touch。
4. 创建并写入内容:使用重定向(echo / printf / cat)
touch 适合创建空文件。
但在实际工作中,你更常需要下面这种情况:
- 不仅要创建文件,还要 同时写入内容
- 只写入一行后结束
- 批量生成配置文件
这时 重定向(使用 > 或 >>)就非常有用了。
重定向需要一点练习,但一旦掌握,你的工作流会快很多。
4.1 使用 > 创建(并说明覆盖风险)
在 Ubuntu 上,你可以把命令的输出保存到文件中。
用于此目的的操作符是 >。
基本语法如下:
command > filename
例如,将 hello 写入并创建 memo.txt:
echo "hello" > memo.txt
如果 memo.txt 不存在,会被创建;如果已经存在,内容会被替换掉。
关键点如下:
>可以创建新文件,但它也会 覆盖已有文件。
因此,如果对已经有重要内容的文件使用 >,原有内容会被删除。
作为安全的初学者准则:
>表示 替换(覆盖)>>表示 追加(添加)
4.2 使用 >> 追加(配置文件的常见写法)
如果想在不覆盖的情况下添加内容,请使用 >>。
echo "second line" >> memo.txt
这会在 memo.txt 的末尾添加新的一行。
在处理配置文件或日志时,追加往往是更安全的选择。
例如,向配置文件添加一行可以这样写:
echo "export PATH=\$PATH:/opt/tools/bin" >> ~/.bashrc
>> 的优势在于:它 保留已有内容并在其后追加新内容。
4.3 使用 printf 更安全(换行和转义)
echo 简单易用,但在实际环境中,printf 往往更可靠。
主要原因包括:
echo在不同环境下的行为可能略有差异printf更容易精确处理\n(换行)和\t(制表符)等转义字符
例如,使用显式换行一次性写入多行:
printf "line1\nline2\n" > memo.txt
这会一次性创建 memo.txt,其中恰好包含两行内容。
printf 在需要插入空行或更复杂的格式时也非常好用。
4.4 一次写入多行:Heredoc(cat << 'EOF' > file 的工作原理)
在创建配置文件时,使用 echo 一行行追加会非常繁琐。
这时 heredoc(here‑document)就显得非常实用。
使用下面的语法,你可以一次性把多行内容保存到文件中:
cat << 'EOF' > sample.conf
server_name example.com;
root /var/www/html;
index index.html;
EOF
关键点如下:
EOF是一个标记,表示“输入在此结束”(你也可以使用其他单词)- 将其写成
'EOF'的形式可以防止变量展开,使其更安全
Heredoc 常用于服务器搭建和配置工作。
起初可能看起来有点高级,但一旦熟悉后,它极其方便。
4.5 小技巧——防止误覆盖的“事故预防”
重定向最可怕的地方在于不小心覆盖了文件。
例如,下面的操作就很危险:
echo "test" > important.conf
如果 important.conf 中保存着关键设置,内容将会全部丢失。
为了在实际操作中减少失误,请记住以下两点:
1) 覆盖前先创建备份
例如,对一个配置文件进行备份:
cp important.conf important.conf.bak
2) 用 cat 或 less 检查内容后再编辑
养成编辑前先检查的习惯,可以避免很多意外事故。
cat important.conf
5. 用编辑器创建文件(新手友好:nano / GUI 文本编辑器)
到目前为止,我们已经介绍了 touch 和重定向,这两者在熟练使用后非常强大。
但如果你是 Ubuntu 新手,可能会有以下感受:
- 终端仍然让人望而生畏
- 要是误删了文件怎么办?
- 想边看屏幕边编辑
在这种情况下,使用 编辑器来创建文件 是最安全的做法。
有了编辑器,流程就是“新建 → 保存”,直观易懂。
5.1 在终端中编辑:nano file(如何保存与退出)
Ubuntu 上最适合新手的终端编辑器是 nano。
它使用简单,快捷键会显示在屏幕底部,避免了迷失方向的情况。
例如,创建并编辑 memo.txt:
nano memo.txt
如果 memo.txt 不存在,nano 会自动创建并打开它。
编写完文本后保存并退出——完成。
基础 nano 快捷键(新手应先掌握的 3 件事)
nano 通过快捷键操作。
基本思路是按住 Ctrl 再按另一个键。
- 保存:
Ctrl + O(Write Out) - 回车:确认文件名
- 退出:
Ctrl + X
如果尝试在未保存的情况下退出,nano 会询问是否确认,这正是它对新手友好的原因。

5.2 vim 适用于进阶用户(仅需最小的保存/退出)
很多 Ubuntu 用户习惯使用 vim,但对新手来说可能有点难上手。
因为它有多种模式,容易出现“我打不出字”或“我退出不了”的情况。
不过,掌握最基本的——“打开”以及“保存并退出”——在紧急情况下已经足够。
打开文件(若文件不存在则会创建):
vim memo.txt
保存并退出的基本步骤:
- 按
Esc - 输入
:wq并回车(write + quit)
不保存直接退出:
- 按
Esc - 输入
:q!并回车
对新手而言,nano 通常已经足够。
把 vim 当作“进阶工具”,仅在需要时逐步学习即可。
5.3 使用 GUI 创建文件(文本编辑器 → 保存)
如果不想使用终端,也可以完全通过图形界面创建文件。
最简便的做法是:
- 打开文本编辑器(例如 “Text Editor” 或 “GNOME Text Editor”)
- 新建文件
- 点击 “保存” 并选择保存位置
final answer.这与 Windows 非常相似,所以初学者通常会感到很舒适。
此外,由于你明确选择了保存位置,文件创建位置不容易丢失。
5.4 推荐编辑器(Ubuntu 默认 / VS Code)
在 Ubuntu 上,根据你的用途有多种编辑器可供选择。
Ubuntu 默认:文本编辑器(简洁轻量)
Ubuntu 通常默认预装了一个简易的文本编辑器。
它非常适合快速记笔记、小型配置编辑和简单脚本。
VS Code(编程最佳)
如果你编写代码或管理大量文件,强烈推荐使用 Visual Studio Code(VS Code)。
- 语法高亮(易于阅读)
- 自动格式化
- 集成终端
- 支持多语言的扩展
对于初学者来说,先使用“默认文本编辑器”已经足够。
如果你觉得需要更舒适的开发环境,之后可以切换到 VS Code。
6. 在 Ubuntu 上右键“新建文件”:使用模板
许多从 Windows 转到 Ubuntu 的用户会期待以下工作流程:
“右键 → 新建 → 创建文件”
在 Ubuntu 上,文件管理器默认并不总是显示“新建文件”。
这常常导致初学者认为,“Ubuntu 不能通过右键新建文件”。
但解决方案是存在的:Templates。
6.1 什么是 Templates 文件夹?(工作原理)
Ubuntu 有一个名为 Templates 的功能,允许你通过右键菜单从模板创建新文件。
原理很简单:
- 如果你把文件放入 Templates 文件夹
- 它们会在右键菜单中显示为“新建文档”选项
这就是 Ubuntu 风格的在 GUI 中创建“新文件”的方式。
6.2 启用右键“新建文档”(创建空白模板)
要使用 Templates,你至少需要一个模板文件。
首先,检查你的主目录下是否有 Templates 文件夹。
ls ~
如果看到名为 Templates 的文件夹,那就是它。
如果不存在,创建它:
mkdir -p ~/Templates
现在在其中创建一个空白模板文件。
例如,一个空白文本文件模板:
touch ~/Templates/Empty\ Text\ File.txt
完成后,打开文件管理器,在文件夹中右键,你应该会看到类似以下内容:
- 新建文档
- 空白文本文件.txt
选择它,Ubuntu 将基于该模板创建一个新文件。
6.3 添加多个模板(文本 / Markdown / Shell 脚本)
了解概念后,你可以根据需求添加多个模板。
示例:
touch ~/Templates/README.md
touch ~/Templates/script.sh
touch ~/Templates/config.conf
现在你也可以通过右键创建这些常用文件。
如果你想让 script.sh 创建后立即可执行,也可以准备一个可执行的模板文件(后面的权限章节会介绍)。
6.4 故障排除:“Templates 未显示”
如果右键菜单中没有出现“新建文档”,请检查以下几点:
- Templates 文件夹位于你的主目录下
- Templates 中至少有一个文件
- 你使用的是默认的 Ubuntu 文件管理器(Nautilus)
在多数情况下,仅创建一个模板文件就足以让菜单出现。
7. 创建文件时的常见错误(权限被拒绝、只读等)
此时,你已经可以通过多种方式创建文件。
但许多初学者仍会遇到另一道障碍:
“我尝试创建文件,但提示权限被拒绝。”
这是因为 Ubuntu 拥有严格的权限系统。它可以防止系统被意外更改,但起初会让初学者感到困惑。
7.1 为什么会出现“权限被拒绝”(所有者 / 权限)
在 Ubuntu 上,每个文件和目录都有:
- 一个 所有者(谁拥有它)
- 一个 组(它属于哪个组)
- 权限(允许的操作)
如果你的用户账户没有在某个目录中创建文件的权限,Ubuntu 将阻止该操作。
例如,像下面这样的系统目录通常需要管理员权限:
/etc/usr/var
因此,如果你以普通用户尝试直接在 /etc 下创建文件,可能会收到错误。
7.2 使用 ls -l 检查权限
当你看到权限错误时,首先要做的就是检查文件/目录的权限。
最常用的命令是 ls -l。
ls -l
示例输出:
-rw-r--r-- 1 user user 120 Jan 24 10:30 memo.txt
此行包含重要信息:
-rw-r--r--: 权限user user: 所有者和组
对于目录,你可能会看到类似如下的输出:
drwxr-xr-x 2 user user 4096 Jan 24 10:20 Documents
首字符告诉你它的类型:
-= 文件d= 目录
因此你可以快速判断它是文件还是目录。
7.3 你需要的最基本权限知识(r / w / x)
Linux 权限看起来很复杂,但拆解后基本概念其实很简单。
权限字母的含义:
r= 读取(可以查看内容)w= 写入(可以编辑/创建/删除)x= 执行(可以运行 / 可以进入目录)
它们适用于三个类别:
- 所有者(用户)
- 组
- 其他人(其他所有用户)
因此像下面这样的权限字符串:
-rw-r--r--
可以解读为:
- 所有者:
rw-(允许读取/写入) - 组:
r--(只读) - 其他人:
r--(只读)
这些知识足以帮助你理解作为初学者会遇到的大多数权限问题。
7.4 安全地修复权限问题(使用正确的目录,避免随意使用 sudo)
当你看到 “Permission denied” 时,初学者常会立刻尝试以下操作:
sudo touch something
这可能有效,但在不了解的情况下使用 sudo 会在以后导致更大的问题(所有权错误、意外的系统修改)。
因此,这里提供一种更安全的初学者做法:
- 尽可能在你的 home 目录下创建文件
- 如果必须编辑系统文件,仅在特定任务中使用
sudo
例如,编辑 /etc 下的文件通常这样操作:
sudo nano /etc/example.conf
这比在未知位置以 root 身份随意创建文件更安全。
7.5 常见陷阱:使用 sudo 创建的文件会变成 “root 所有”
如果你使用 sudo 创建或编辑文件,它可能会归 root 所有。
示例:
sudo touch myfile.txt
如果你用 ls -l 检查它,可能会看到:
-rw-r--r-- 1 root root 0 Jan 24 11:00 myfile.txt
这意味着普通用户以后可能无法自由编辑它。
如果需要修复所有权(针对 home 目录下的文件),可以使用 chown:
sudo chown $USER:$USER myfile.txt
重要提示: 不要随意更改 /etc 或 /usr 下系统文件的所有权。
此操作主要用于应属于你的用户账户的文件(尤其是 ~ 目录下的文件)。
8. 创建可执行文件(Shell 脚本)并设置权限
在 Ubuntu 上,你可能想创建一个文件然后“运行它”。
典型的例子是 shell 脚本(.sh 文件)。
但许多初学者创建脚本后会遇到以下问题:
“我创建了文件,但无法执行它。”
这是因为在 Ubuntu 上,执行取决于权限(x 标志)。
8.1 创建一个简单的脚本文件(示例)
首先,创建脚本文件。下面是使用 heredoc 的快速示例:
cat << 'EOF' > hello.sh
#!/bin/bash
echo "Hello from Ubuntu!"
EOF
现在你有一个名为 hello.sh 的文件。
此时文件已存在,但可能尚未可执行。
8.2 使用 chmod +x 使其可执行
要直接运行脚本文件,需要添加执行权限。
使用如下方式的 chmod +x:
chmod +x hello.sh
现在你可以这样运行它:
./hello.sh
预期输出:
Hello from Ubuntu!
这是 Ubuntu 的关键概念:
.
文件可以存在,但如果没有执行权限(
x),它是无法运行的。
8.3 为什么需要 ./ 来运行它(初学者解释)
初学者常常会好奇,为什么不能直接这样运行脚本:
hello.sh
以及为什么 Ubuntu 必须这样写:
./hello.sh
原因在于出于安全考虑,Ubuntu 不会自动在当前目录(.)中搜索可执行命令。
所以 ./ 的含义是:
- “在当前目录下运行该文件”
这可以防止误运行与系统命令同名的恶意脚本。
8.4 更安全的脚本创建方式:使用 Scripts 文件夹
如果你经常编写脚本,创建一个专用文件夹会更方便。
mkdir -p ~/scripts
然后把脚本放在该文件夹中:
mv hello.sh ~/scripts/
这样可以保持主目录整洁,也更易于管理脚本。
9. 确认文件创建的实用命令(ls / file / cat / stat)
创建文件后,确认以下几点会很有帮助:
- 文件是否存在
- 文件类型是否正确
- 内容是否符合预期
- 权限是否正确
下面列出最常用的确认命令。
9.1 使用 ls 与 ls -l 确认存在性
最基本的检查是 ls。
ls
如果想查看权限、时间戳等详细信息,使用 ls -l:
ls -l memo.txt
它会显示所有者、权限、大小以及最后修改时间。
9.2 使用 file 检查文件类型
如果不确定文件到底是什么类型,使用 file 命令。
file memo.txt
示例输出:
memo.txt: ASCII text
在处理没有扩展名的文件时,这非常有用。
9.3 使用 cat 与 less 查看内容
要快速显示文件内容,使用 cat:
cat memo.txt
如果文件较长,less 更易阅读:
less memo.txt
在 less 中可以滚动查看,按 q 退出。
9.4 使用 stat 查看详细元数据
想获取更详细的信息(时间戳、inode 等),使用 stat:
stat memo.txt
在调试“文件为何看起来被更新”或“某些功能为何失效”时,这尤其有帮助。
10. 总结:在 Ubuntu 中创建文件的最佳方式(初学者清单)
最后,让我们概括在 Ubuntu 中创建文件的最实用方法。
10.1 按需求推荐的创建方式
- 快速创建空文件:
touch file.txt - 创建单行文件:
echo "text" > file.txt - 安全追加:
echo "text" >> file.txt - 创建多行文件:heredoc(
cat << 'EOF' > file) - 使用编辑器创建:
nano file.txt或图形化编辑器 - 右键创建:Templates 文件夹
记住这些方法,就能轻松应对 Ubuntu 中的大多数“创建文件”场景。
10.2 初学者安全工作流(避免错误)
对于新手来说,以下工作流最安全、最实用:
- 检查当前所在目录(
pwd) - 创建文件(
touch或编辑器) - 确认文件已存在(
ls) - 如有需要,检查权限(
ls -l)
熟练后即可开始使用重定向和 heredoc 提高效率。
10.3 最后建议:别怕终端——一步步来
Ubuntu 强大之处在于同时提供 GUI 与终端两种方式,你不必一次性掌握全部。
先从以下操作入手:
- 用
touch创建空文件 - 用图形化编辑器编写内容
- 用 Templates 文件夹实现右键新建
等你准备好后,再加入重定向和 heredoc,以实现更快捷的工作流。
有了这些工具,无论是初学者还是逐步进阶的用户,都能在 Ubuntu 上顺畅地创建文件。


