基本的文件和shell操作:修订间差异

来自tutorials.sdfcn.org - sdf中文html教程
跳转到导航 跳转到搜索
无编辑摘要
无编辑摘要
 
(未显示同一用户的3个中间版本)
第1行: 第1行:
在本教程中,我们将简要解释一些基本的文件和 Shell 操作,使用以下命令:
在本教程中,我们将简要解释一些基本的文件和 Shell 操作,本教程使用以下命令:


== 命令列表 ==
== 命令列表 ==
第57行: 第57行:


=== touch 和 pwd:创建文件并输出工作目录 ===
=== touch 和 pwd:创建文件并输出工作目录 ===
要创建一个文件而无需调用文本编辑器或其他程序,只需使用 <code>touch</code> 即可。例如,要创建一个名为 orange.txt 的文件,在命令提示符下输入:<syntaxhighlight lang="shell">
% touch orange.txt
</syntaxhighlight>没什么大不了的!要查看你创建的文件,你可以列出当前工作目录中的文件和目录。首先,让我们看看我们当前所在的目录。默认情况下,当你通过SSH或Telnet连接到你的shell账户时,你会进入你的主目录。要确认这一点,在命令提示符下你可以输入:<syntaxhighlight lang="shell">
% pwd
</syntaxhighlight>如果你的用户名是 georgette,你可能会看到类似这样:<syntaxhighlight lang="shell">
/udd/g/georgette
</syntaxhighlight>或者如果你在自己家的电脑上,也许你会看到类似这样:<syntaxhighlight lang="shell">
/home/georgette
</syntaxhighlight>
=== ls : 列出当前目录中的文件 ===
现在要列出您当前目录中的文件,请输入:<syntaxhighlight lang="shell">
% ls
</syntaxhighlight>如果你按照教程使用 <code>touch</code> 命令创建了 <code>orange.txt</code> 文件,你应该能在 <code>ls</code> 命令的输出结果中看到该文件。接下来,尝试使用 <code>ls</code> 命令并结合以下各种选项,观察每个选项提供的信息类型有何不同:<syntaxhighlight lang="shell">
% ls -l
% ls -hl
% ls -a
% ls -al
% ls -ahl
</syntaxhighlight>
=== cp : 复制文件 ===
复制文件同样非常简单。复制命令具有两个重要功能:一是对目标文件进行简单的备份,二是重命名文件的同时保留原文件。
假设你想将你的<code>orange.txt</code>文件备份到一个名为backups的子目录中(关于如何创建目录,稍后会详细说明)。要实现这一点,你需要输入以下命令:<syntaxhighlight lang="shell">
% cp orange.txt backups/
</syntaxhighlight>单词 ''backups'' 末尾的斜杠表示这是一个目录。
要使用 <code>cp</code> 命令更改文件名称而不破坏原文件,您需要输入以下内容:<syntaxhighlight lang="shell">
% cp orange.txt papaya.txt
</syntaxhighlight>其中 ''papaya.txt'' 是文件的新名称。
要将原始 "orange.txt" 文件复制到备份目录并同时更改名称,您需要输入:<syntaxhighlight lang="shell">
% cp orange.txt backups/papaya.txt
</syntaxhighlight>
=== mv : 移动或重命名文件 ===
<code>mv</code> 命令与 <code>cp</code> 命令的工作原理类似,但有一个关键区别。移动文件意味着会删除原文件名。因此,以下命令:<syntaxhighlight lang="shell">
% mv orange.txt papaya.txt
</syntaxhighlight>本质上是用新的 ''papaya.txt'' 文件替换原有的 ''orange.txt'' 文件。
您可以使用 <code>mv</code> 命令将文件移动到另一个目录,同时保持文件名不变。要执行此操作,请输入以下内容:<syntaxhighlight lang="shell">
% mv orange.txt backups/
</syntaxhighlight>这将把 ''orange.txt'' 文件移动到 backups 目录。要将文件移动到 backups 目录并重命名,你需要输入:<syntaxhighlight lang="shell">
% mv orange.txt backups/papaya.txt
</syntaxhighlight>
=== rm : 删除文件 ===
删除文件也非常简单。执行此操作的命令是 <code>rm</code>。要彻底删除并销毁一个文件,只需输入:<syntaxhighlight lang="shell">
% rm orange.txt
</syntaxhighlight>
==== 交互使用简述 ====
如果不小心使用复制、移动和删除文件的命令,可能会给你带来一些麻烦。对于这些命令,你可以通过输入以下内容来启用交互式选项:<syntaxhighlight lang="shell">
% cp -i orange.txt backups/orange.txt
% mv -i orange.txt papaya.txt
% rm -i orange.txt
</syntaxhighlight>当调用交互式选项时,系统会提示您对每个要删除的文件回答“是”或“否”。对于 <code>cp -i</code> 和 <code>mv -i</code> 命令,系统仅在您要复制或移动的文件会覆盖另一个文件时才会提示您。
=== file:检查文件类型 ===
文件命令可用于确定文件的类型。在类Unix操作系统中,文件名具有较高的灵活性,文件扩展名(如.txt后缀)并非总是必要。因此,如果有人发送给你一个文件,而你希望在打开它之前确认其类型,可以使用文件命令如下:<syntaxhighlight lang="shell">
% file name_of_file
</syntaxhighlight>文本文件的结果将类似于以下内容:<syntaxhighlight lang="shell">
name_of_file: ASCII text
</syntaxhighlight>假设有人给你发送了一个名为 ''something.something'' 的PNG格式图像文件,而你想确认它确实是PNG格式文件,只需输入:<syntaxhighlight lang="shell">
% file something.something
</syntaxhighlight>如果文件确实是 PNG 文件,你应该看到类似以下内容:<syntaxhighlight lang="shell">
something.something: PNG image data, 922 x 691, 8-bit/color RGBA, non-interlaced
</syntaxhighlight>
=== less : 阅读文件 ===
<code>less</code> 命令是一种用于查看和浏览文本文件的分页器,无需修改文件或在文本编辑器中打开文件。建议您阅读该命令的 man 手册页,因为它具备许多实用功能,例如在文本中搜索关键词或字符串。使用该命令时,请输入要查看的文件名称:<syntaxhighlight lang="shell">
% less orange.txt
</syntaxhighlight>如果文件中的文字超过了电脑屏幕的显示范围,请按空格键逐页向下滚动。通常情况下,键盘上的 Page Up 和 Page Down 按钮可以正常使用,而方向键则允许您逐行在文件中上下移动。
=== mkdir : 创建目录 ===
您可以使用 mkdir 命令创建目录。要创建我们在之前示例中使用的备份目录,请输入:<syntaxhighlight lang="shell">
% mkdir backups
</syntaxhighlight>
=== cd : 更改目录 ===
cd 命令用于切换目录。如果我们当前位于主目录,想要进入新创建的 ''backups'' 子目录,只需输入:<syntaxhighlight lang="shell">
% cd backups
</syntaxhighlight>要返回,只需输入:<syntaxhighlight lang="shell">
% cd
</syntaxhighlight>单独输入 <code>cd</code> 命令将始终带您返回主目录,这在您深入目录树的其他分支时非常有用。如果您只想返回上一级目录,请输入:<syntaxhighlight lang="shell">
% cd ..
</syntaxhighlight>当然,你也可以直接输入要切换到的目录的完整路径:<syntaxhighlight lang="shell">
% cd /usr/bin
</syntaxhighlight>要切换回上一个工作目录,请输入:<syntaxhighlight lang="shell">
% cd -
</syntaxhighlight>
=== rmdir:删除目录 ===
要删除一个空目录,使用 <code>rmdir</code> 命令。<syntaxhighlight lang="shell">
% rmdir backups
</syntaxhighlight><code>rmdir</code> 命令仅在要删除的目录中没有文件时才有效。如果目录中包含文件,而你确定要删除该目录及其所有文件,实际上你需要返回 <code>rm</code> 命令并输入:<syntaxhighlight lang="shell">
% rm -r name_of_directory
</syntaxhighlight><code>-r</code> 是一个命令选项,用于指示 <code>rm</code> (remove) 命令删除目录及其所有内容(包括子目录),它表示''递归''。使用此命令时请务必小心!事实上,更安全的方式是通过以下方式执行此命令:<syntaxhighlight lang="shell">
% rm -ir
</syntaxhighlight>这将调用删除命令的交互使用方式,系统会提示您对每个可能被删除的文件和目录回答“是”或“否”。再次提醒,请查阅手册页以获取更多详细信息。
=== clear : 清屏 ===
最后,要清除屏幕,请在命令提示符下输入以下内容:<syntaxhighlight lang="shell">
% clear
</syntaxhighlight>
----''<small>$Id: file_operations.html,v 1.12 2024/07/24 19:49:11 cseiler Exp $</small>''

2025年8月20日 (三) 07:36的最新版本

在本教程中,我们将简要解释一些基本的文件和 Shell 操作,本教程使用以下命令:

命令列表

  1. touch -- 创建文件
  2. pwd -- 打印当前工作目录
  3. ls -- 列出当前目录中的文件
  4. cp -- 复制文件
  5. mv -- 移动文件
  6. rm -- 删除文件
  7. file -- 检查文件类型
  8. less -- 阅读文件
  9. mkdir -- 创建目录
  10. cd -- 改变目录
  11. rmdir -- 删除目录
  12. clear -- 清屏

请注意,上述每个命令都有相应的 man 手册页,其中会详细介绍每个命令的全部功能。在本教程中,我们仅提供简要概述,足以在命令行上完成基本操作。如需了解更多关于 man 手册页的信息,请参阅《从Shell中寻找帮助》教程。

首先,关于以下几点的说明:

  • 命令选项
  • 文件命名

1. 命令选项

上述所有命令以及你在终端中发现和使用的许多命令都可以通过使用选项进行修改。请查阅手册页以获取每个命令可用选项的详细信息。选项通常以 ls -l 的形式出现,即你输入命令后,空格一次,输入一个连字符和所需选项的字母。

SDF 服务器的一大特色是,它现在同时提供了带有 BSD 风格选项的命令和带有 GNU 风格选项的命令。例如,ls 命令为用户提供了带有 BSD 风格选项的命令。而以 “g” 开头的 gls 命令则表示带有 GNU 风格选项的 ls 命令。这一点非常值得注意,因为大多数用户对带有 GNU 风格选项的二进制文件更为熟悉。最常用的命令包括:gls --color=always 和 gdiff。

2. 文件命名

在命名文件或目录时,最好避免在名称中使用空格。例如,文件名“my journal.txt”可能比“my_journal.txt”更难处理。这是因为 shell 会将“my journal.txt”视为两个独立的文件:一个名为“my”,另一个名为“journal.txt”。如果你遇到文件名中包含空格的情况,可以使用以下方法进行处理:

  1. 在文件名周围使用单引号或双引号:
    • rm "my file.txt" 或者
    • cp 'my file.txt' my_file.txt, 作为例子。
  2. 在空格处使用反斜杠:
    • mv my\ file.txt my_file.txt 或者
    • cd backups/text\ pages/
  3. 使用 Tab 补全功能:许多终端 shell 支持 Tab 补全功能。这意味着,如果你输入文件名的前两个或三个字符并按下 Tab 键,除非你有多个文件名开头相似的文件,否则你的终端 shell 可能会为你自动补全文件名。注意:如果你所在的目录与你要补全的文件所在的目录不同,你需要提供路径,而 Tab 补全功能也可以帮助你完成这一点。

此外,在使用两个或更多单词为文件命名时,最安全的选择是使用下划线、连字符和句点。举例:

my_file.txt

my-file.txt

my.file.txt

或者,你可以将其作为一个单词:

myfile.txt

使用其他符号(如“&”)可能会引发问题,因为这些符号在某些情况下可能对 shell 具有其他含义。如需更多信息,建议查阅您所选 shell 的手册页(man-pages)。

命令

注意:在下面的示例中,百分号用于表示命令提示符,并不需要输入。

touch 和 pwd:创建文件并输出工作目录

要创建一个文件而无需调用文本编辑器或其他程序,只需使用 touch 即可。例如,要创建一个名为 orange.txt 的文件,在命令提示符下输入:

% touch orange.txt

没什么大不了的!要查看你创建的文件,你可以列出当前工作目录中的文件和目录。首先,让我们看看我们当前所在的目录。默认情况下,当你通过SSH或Telnet连接到你的shell账户时,你会进入你的主目录。要确认这一点,在命令提示符下你可以输入:

% pwd

如果你的用户名是 georgette,你可能会看到类似这样:

/udd/g/georgette

或者如果你在自己家的电脑上,也许你会看到类似这样:

/home/georgette

ls : 列出当前目录中的文件

现在要列出您当前目录中的文件,请输入:

% ls

如果你按照教程使用 touch 命令创建了 orange.txt 文件,你应该能在 ls 命令的输出结果中看到该文件。接下来,尝试使用 ls 命令并结合以下各种选项,观察每个选项提供的信息类型有何不同:

% ls -l
% ls -hl
% ls -a
% ls -al
% ls -ahl

cp : 复制文件

复制文件同样非常简单。复制命令具有两个重要功能:一是对目标文件进行简单的备份,二是重命名文件的同时保留原文件。

假设你想将你的orange.txt文件备份到一个名为backups的子目录中(关于如何创建目录,稍后会详细说明)。要实现这一点,你需要输入以下命令:

% cp orange.txt backups/

单词 backups 末尾的斜杠表示这是一个目录。 要使用 cp 命令更改文件名称而不破坏原文件,您需要输入以下内容:

% cp orange.txt papaya.txt

其中 papaya.txt 是文件的新名称。 要将原始 "orange.txt" 文件复制到备份目录并同时更改名称,您需要输入:

% cp orange.txt backups/papaya.txt

mv : 移动或重命名文件

mv 命令与 cp 命令的工作原理类似,但有一个关键区别。移动文件意味着会删除原文件名。因此,以下命令:

% mv orange.txt papaya.txt

本质上是用新的 papaya.txt 文件替换原有的 orange.txt 文件。 您可以使用 mv 命令将文件移动到另一个目录,同时保持文件名不变。要执行此操作,请输入以下内容:

% mv orange.txt backups/

这将把 orange.txt 文件移动到 backups 目录。要将文件移动到 backups 目录并重命名,你需要输入:

% mv orange.txt backups/papaya.txt

rm : 删除文件

删除文件也非常简单。执行此操作的命令是 rm。要彻底删除并销毁一个文件,只需输入:

% rm orange.txt

交互使用简述

如果不小心使用复制、移动和删除文件的命令,可能会给你带来一些麻烦。对于这些命令,你可以通过输入以下内容来启用交互式选项:

% cp -i orange.txt backups/orange.txt
% mv -i orange.txt papaya.txt
% rm -i orange.txt

当调用交互式选项时,系统会提示您对每个要删除的文件回答“是”或“否”。对于 cp -imv -i 命令,系统仅在您要复制或移动的文件会覆盖另一个文件时才会提示您。

file:检查文件类型

文件命令可用于确定文件的类型。在类Unix操作系统中,文件名具有较高的灵活性,文件扩展名(如.txt后缀)并非总是必要。因此,如果有人发送给你一个文件,而你希望在打开它之前确认其类型,可以使用文件命令如下:

% file name_of_file

文本文件的结果将类似于以下内容:

name_of_file: ASCII text

假设有人给你发送了一个名为 something.something 的PNG格式图像文件,而你想确认它确实是PNG格式文件,只需输入:

% file something.something

如果文件确实是 PNG 文件,你应该看到类似以下内容:

something.something: PNG image data, 922 x 691, 8-bit/color RGBA, non-interlaced

less : 阅读文件

less 命令是一种用于查看和浏览文本文件的分页器,无需修改文件或在文本编辑器中打开文件。建议您阅读该命令的 man 手册页,因为它具备许多实用功能,例如在文本中搜索关键词或字符串。使用该命令时,请输入要查看的文件名称:

% less orange.txt

如果文件中的文字超过了电脑屏幕的显示范围,请按空格键逐页向下滚动。通常情况下,键盘上的 Page Up 和 Page Down 按钮可以正常使用,而方向键则允许您逐行在文件中上下移动。

mkdir : 创建目录

您可以使用 mkdir 命令创建目录。要创建我们在之前示例中使用的备份目录,请输入:

% mkdir backups

cd : 更改目录

cd 命令用于切换目录。如果我们当前位于主目录,想要进入新创建的 backups 子目录,只需输入:

% cd backups

要返回,只需输入:

% cd

单独输入 cd 命令将始终带您返回主目录,这在您深入目录树的其他分支时非常有用。如果您只想返回上一级目录,请输入:

% cd ..

当然,你也可以直接输入要切换到的目录的完整路径:

% cd /usr/bin

要切换回上一个工作目录,请输入:

% cd -

rmdir:删除目录

要删除一个空目录,使用 rmdir 命令。

% rmdir backups

rmdir 命令仅在要删除的目录中没有文件时才有效。如果目录中包含文件,而你确定要删除该目录及其所有文件,实际上你需要返回 rm 命令并输入:

% rm -r name_of_directory

-r 是一个命令选项,用于指示 rm (remove) 命令删除目录及其所有内容(包括子目录),它表示递归。使用此命令时请务必小心!事实上,更安全的方式是通过以下方式执行此命令:

% rm -ir

这将调用删除命令的交互使用方式,系统会提示您对每个可能被删除的文件和目录回答“是”或“否”。再次提醒,请查阅手册页以获取更多详细信息。

clear : 清屏

最后,要清除屏幕,请在命令提示符下输入以下内容:

% clear

$Id: file_operations.html,v 1.12 2024/07/24 19:49:11 cseiler Exp $