首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Linux系统】命令如诗,步入Linux的晨曦:指令初学者的旅程(上)

【Linux系统】命令如诗,步入Linux的晨曦:指令初学者的旅程(上)

作者头像
suye
发布2025-05-29 14:42:21
发布2025-05-29 14:42:21
28400
代码可运行
举报
文章被收录于专栏:17的博客分享17的博客分享
运行总次数:0
代码可运行

前言

Linux系统因其高效、灵活和安全性,广泛应用于服务器、开发、运维等各个领域。对于刚接触Linux的新手来说,熟练掌握基本指令是开启Linux之旅的第一步。本文将帮助您快速了解和使用Linux中最常用的基础指令,为您在日常操作和管理中打下扎实的基础。


🦚1. ls - 列出目录内容

1.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
ls [选项] [目录]

如果不指定目录,ls 将列出当前工作目录中的内容。

1.2 常用选项
  • -a(或 --all):
    • 列出所有文件,包括以点开头的隐藏文件。
  • -l(或 --long):
    • 以详细列表的格式显示。
  • -h(或 --human-readable):
    • 显示人类可读的文件大小。
  • -t(或 --time):
    • 按时间排序文件。
  • -r(或 --reverse):
    • 反向排序输出。
  • -S
    • 按文件大小排序。
1.3 示例用法

列出当前目录的内容

代码语言:javascript
代码运行次数:0
运行
复制
ls

列出指定目录的内容

代码语言:javascript
代码运行次数:0
运行
复制
ls /path/to/directory

列出所有文件(包括隐藏文件)

代码语言:javascript
代码运行次数:0
运行
复制
ls -a

隐藏文件以点(.)开头。

列出详细信息

代码语言:javascript
代码运行次数:0
运行
复制
ls -l

这条命令会显示文件的详细信息,包括权限、链接数、所有者、组、大小和最后修改时间。

以人类可读的格式显示文件大小

代码语言:javascript
代码运行次数:0
运行
复制
ls -lh

-h 选项将文件大小以可读的格式(如 K、M、G)显示。

按修改时间排序

代码语言:javascript
代码运行次数:0
运行
复制
ls -lt

这条命令会按修改时间列出文件,最近修改的文件在前面。

反向排序

代码语言:javascript
代码运行次数:0
运行
复制
ls -lr

-r 选项将结果反向排序。

组合选项

代码语言:javascript
代码运行次数:0
运行
复制
ls -la

这条命令同时显示所有文件和详细信息。

🦚2. cd - 改变当前工作目录

2.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
cd [目录]
2.2 示例用法

切换到指定目录

代码语言:javascript
代码运行次数:0
运行
复制
cd /path/to/directory

这条命令会将当前工作目录切换到 /path/to/directory

返回上级目录

代码语言:javascript
代码运行次数:0
运行
复制
cd ..

这条命令会将当前工作目录切换到上一级目录。

返回当前用户的主目录

代码语言:javascript
代码运行次数:0
运行
复制
cd ~

这条命令会将当前工作目录切换到当前用户的主目录(如 /home/username)。

使用相对路径

代码语言:javascript
代码运行次数:0
运行
复制
cd dir1/dir2

如果当前目录下有 dir1,且 dir1 下有 dir2,这条命令会将当前工作目录切换到 dir2

使用点(.)表示当前目录:v

代码语言:javascript
代码运行次数:0
运行
复制
cd .

这条命令不会改变当前目录,但在某些情况下可以用于表明当前目录的存在。

注意事项

  • 路径可以是绝对路径或相对路径:
    • 绝对路径是从根目录 / 开始的完整路径。
    • 相对路径是相对于当前工作目录的路径。
  • 在输入目录名称时,Linux 是区分大小写的,因此 /home/user/home/User 被视为两个不同的目录。
  • 如果目录不存在,cd 命令会返回一个错误提示。

🦚3. pwd - 显示当前工作目录

3.1 基本用法
  • 查看当前工作目录
代码语言:javascript
代码运行次数:0
运行
复制
pwd
3.2 功能

当你在命令行中输入 pwd 并按下回车时,系统会输出你当前所在的目录的完整路径。例如,如果你在 /home/user/documents目录下运行 pwd,输出将会是:

代码语言:javascript
代码运行次数:0
运行
复制
/home/user/documents
3.3 常用选项

-L(或 --logical):

  • 显示当前工作目录的逻辑路径,通常会是你所使用的符号链接的路径。
代码语言:javascript
代码运行次数:0
运行
复制
pwd -L

-P(或 --physical):

  • 显示当前工作目录的物理路径,解析所有符号链接。
代码语言:javascript
代码运行次数:0
运行
复制
pwd -P

注意事项

  • pwd 命令通常与 cd 命令结合使用,以确认你正在操作的目录。
  • pwd 命令的输出是绝对路径,通常以 / 开头,表示从根目录开始。

🦚4. mkdir - 创建新目录

4.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
mkdir [选项] 目录名
4.2 创建目录

创建单个目录

代码语言:javascript
代码运行次数:0
运行
复制
mkdir mydirectory

这条命令将在当前工作目录下创建一个名为 mydirectory 的新目录。

创建多个目录

代码语言:javascript
代码运行次数:0
运行
复制
mkdir dir1 dir2 dir3

这条命令将在当前工作目录下同时创建 dir1dir2dir3 这三个目录。

4.3 常用选项

-p(或 --parents):

  • 创建父目录。如果父目录不存在,会一并创建。例如:
代码语言:javascript
代码运行次数:0
运行
复制
mkdir -p /home/user/docs/projects

这条命令会创建 projects 目录,同时确保 /home/user/docs 路径中的所有父目录都存在。

-v(或 --verbose):

  • 显示详细的操作信息。例如:
代码语言:javascript
代码运行次数:0
运行
复制
mkdir -v mydirectory

这条命令将在创建目录时输出创建的操作信息。

-m(或 --mode):

  • 设置新目录的权限。可以使用八进制数或符号模式来设置。例如:
代码语言:javascript
代码运行次数:0
运行
复制
mkdir -m 755 mydirectory

这条命令会创建 mydirectory,并将其权限设置为 755(即所有者有读、写、执行权限,组用户和其他用户有读和执行权限)。

4.4 示例

创建嵌套目录

代码语言:javascript
代码运行次数:0
运行
复制
mkdir -p projects/2024

这条命令会在当前目录下创建 projects 目录,如果它不存在的话,然后在 projects 目录下创建 2024 目录。

创建多个目录并显示操作信息

代码语言:javascript
代码运行次数:0
运行
复制
mkdir -v dirA dirB dirC

这将创建三个目录,并在终端中显示每个目录创建的详细信息。

注意事项

  • 如果要创建的目录已经存在,mkdir 命令会返回一个错误,提示目录已存在。
  • 使用 -p 选项可以避免此错误,因为它会忽略已存在的目录。

🦚5. rmdir指令和rm指令 - 删除文件和目录

5.1 rmdir

rmdir 命令用于删除空目录。它无法删除包含文件或其他目录的非空目录。

5.1.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
rmdir [选项] 目录名
5.1.2 示例用法

删除空目录

代码语言:javascript
代码运行次数:0
运行
复制
rmdir myemptydir

同时删除多个空目录

代码语言:javascript
代码运行次数:0
运行
复制
rmdir dir1 dir2 dir3
5.2 rm

rm 命令用于删除文件和目录,可以删除非空目录(配合 -r 选项)。

5.2.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
rm [选项] 文件或目录名
5.2.2 示例用法

删除单个文件

代码语言:javascript
代码运行次数:0
运行
复制
rm myfile.txt

删除多个文件

代码语言:javascript
代码运行次数:0
运行
复制
rm file1.txt file2.txt file3.txt

递归删除非空目录

代码语言:javascript
代码运行次数:0
运行
复制
rm -r mydir

这条命令将删除 mydir 及其所有内容,包括子目录和文件。

强制删除文件或目录(不提示确认):

代码语言:javascript
代码运行次数:0
运行
复制
rm -f myfile.txt

递归强制删除非空目录

代码语言:javascript
代码运行次数:0
运行
复制
rm -rf mydir
5.2.3 常用选项
  • -r(或 --recursive):
    • 递归删除,用于删除目录及其内容。
  • -f(或 --force):
    • 强制删除,不会询问用户确认。
  • -i(或 --interactive):
    • 交互式删除,在删除每个文件前都会询问用户确认。

【总结】

  • rmdir 只能删除空目录,适用于安全地清理不再需要的空目录。
  • rm 更为强大,可以删除文件和目录,且可以使用多种选项控制删除行为。需谨慎使用,尤其是 -r-f 选项,因为它们会永久删除文件和目录,且不易恢复。

🦚6. man指令 - 显示特定命令的手册页

man 指令(manual)是 Linux系统中的一个常用工具,用于查看命令、程序、系统调用等的手册页,帮助用户了解如何使用特定的指令或工具。每个命令的手册页提供了详细的语法说明、可选参数、用法示例等。

用法

代码语言:javascript
代码运行次数:0
运行
复制
man [命令名称]

示例

代码语言:javascript
代码运行次数:0
运行
复制
man ls

这将打开 ls 命令的手册页,显示 ls 命令的说明、选项、用法等。

6.1 手册页章节

Linux 系统中的手册页分为多个章节,主要章节如下:

  1. 可执行文件或命令(如 ls, cd
  2. 系统调用(内核提供的功能)
  3. 库调用(程序库中的函数)
  4. 特殊文件(通常是 /dev 下的文件)
  5. 文件格式(配置文件格式等)
  6. 游戏(游戏与演示程序)
  7. 杂项(宏包、惯例等)
  8. 系统管理命令(通常只有 root 用户能使用)
6.2 指定章节

如果需要查看特定章节的内容,可以通过在命令后面指定章节号。例如,要查看 printf 函数的库调用而不是命令:

代码语言:javascript
代码运行次数:0
运行
复制
man 3 printf

常用操作:

  • 上下翻页:使用 Page UpPage Down 键,或者按 jk 来向下或向上滚动。
  • 搜索:按 / 然后输入关键词进行搜索,按 n 查找下一个匹配项。
  • 退出:按 q 退出手册页。

🦚7. cp - 复制文件或目录

cp 是 Linux 中用于复制文件或目录的命令。它可以将文件从一个位置复制到另一个位置,或将整个目录复制到另一个目录。

7.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
  • 源文件:你想要复制的文件或目录。
  • 目标文件/目录:复制文件或目录的目标位置。
7.2 常用选项

-r(或 --recursive):递归复制目录及其内容。要复制非空目录时必须使用此选项。

代码语言:javascript
代码运行次数:0
运行
复制
cp -r source_directory/ destination_directory/

-i(或 --interactive):如果目标文件已经存在,提示确认是否覆盖。

代码语言:javascript
代码运行次数:0
运行
复制
cp -i file1.txt /path/to/destination/

-p(或 --preserve):保留文件的属性(权限、所有者、时间戳等)。

代码语言:javascript
代码运行次数:0
运行
复制
cp -p file1.txt /path/to/destination/

-f(或 --force):强制复制文件,目标文件若已存在,则强制覆盖。

代码语言:javascript
代码运行次数:0
运行
复制
cp -f file1.txt /path/to/destination/

-u(或 --update):仅当源文件比目标文件新时,才进行复制。

代码语言:javascript
代码运行次数:0
运行
复制
cp -u file1.txt /path/to/destination/

-v(或 --verbose):显示详细的复制过程。

代码语言:javascript
代码运行次数:0
运行
复制
cp -v file1.txt /path/to/destination/
7.3 示例用法

复制单个文件

代码语言:javascript
代码运行次数:0
运行
复制
cp file1.txt file2.txt

这条命令将 file1.txt 复制为 file2.txt。如果 file2.txt 已经存在,它会被覆盖。

复制多个文件到一个目录

代码语言:javascript
代码运行次数:0
运行
复制
cp file1.txt file2.txt /path/to/destination/

这条命令将 file1.txtfile2.txt 复制到指定的 destination 目录。

复制整个目录

代码语言:javascript
代码运行次数:0
运行
复制
cp -r /path/to/source /path/to/destination/

这条命令使用 -r 选项递归地复制 source 目录及其所有内容到 destination 目录。

复制文件并保留权限、时间戳等

代码语言:javascript
代码运行次数:0
运行
复制
cp -p file1.txt /path/to/destination/

使用 -p 选项可以保留文件的权限、所有者和时间戳。

【注意事项】

  • 使用 cp 复制文件时,如果目标位置已有同名文件且没有使用 -i 或其他交互选项,系统将不会提示直接覆盖文件,因此需要谨慎操作。
  • 复制目录时,必须使用 -r 选项,否则会报错。

🦚8. echo - 输出文本

8.1 基本用法
代码语言:javascript
代码运行次数:0
运行
复制
echo [选项] [字符串或变量]
8.2 示例用法

输出文本

代码语言:javascript
代码运行次数:0
运行
复制
echo "Hello, World!"

输出:

代码语言:javascript
代码运行次数:0
运行
复制
Hello, World!

在 Linux 中,输出重定向 是指将命令的输出从默认的终端(屏幕)重定向到其他地方,比如文件。通过输出重定向,可以将程序执行的结果保存到文件中,或者追加到已有文件中。

8.3 输出重定向

输出重定向通常使用大于号(>)或两个大于号(>>),来控制将输出保存到文件中:

覆盖输出> 用于将输出重定向到文件,会覆盖文件中的现有内容。

追加输出>> 用于将输出追加到文件的末尾,不会覆盖文件中的内容。

覆盖重定向

代码语言:javascript
代码运行次数:0
运行
复制
echo "Hello, World!" > output.txt

这条命令将 echo 命令的输出写入到 output.txt 文件中。如果文件已存在,它的内容将被覆盖。

追加重定向

代码语言:javascript
代码运行次数:0
运行
复制
echo "Another line" >> output.txt

这条命令将文本 Another line 追加到 output.txt 文件末尾,不会覆盖已有内容。

🦚9. mv - 移动或重命名文件

9.1 移动文件

将文件从一个位置移动到另一个位置:

代码语言:javascript
代码运行次数:0
运行
复制
mv 源文件 目标位置

例如,将 file.txt 移动到 /home/user/docs 目录:

代码语言:javascript
代码运行次数:0
运行
复制
mv file.txt /home/user/docs/
9.2 重命名文件

mv 也可以用来重命名文件:

代码语言:javascript
代码运行次数:0
运行
复制
mv 旧文件名 新文件名

例如,将 oldname.txt 重命名为 newname.txt

代码语言:javascript
代码运行次数:0
运行
复制
mv oldname.txt newname.txt

注意:移动和重命名可以同时进行

9.3 移动多个文件

可以一次移动多个文件:

代码语言:javascript
代码运行次数:0
运行
复制
mv file1.txt file2.txt 目标目录

例如,将 file1.txtfile2.txt 移动到 /home/user/docs 目录:

代码语言:javascript
代码运行次数:0
运行
复制
mv file1.txt file2.txt /home/user/docs/
9.4 覆盖文件

如果目标位置已存在同名文件,mv 会覆盖它。为了避免覆盖,可以使用 -i 选项,它会在覆盖前提示确认:

代码语言:javascript
代码运行次数:0
运行
复制
mv -i 源文件 目标位置
9.5 显示详细信息

使用 -v 选项可以显示详细信息,告诉你正在做什么:

代码语言:javascript
代码运行次数:0
运行
复制
mv -v 源文件 目标位置
9.6 移动目录

mv 也可以用来移动整个目录:

代码语言:javascript
代码运行次数:0
运行
复制
mv 源目录 目标位置

🦚10. touch - 创建空文件或更新文件时间戳

10.1 基本用法

touch 指令的基本语法如下:

代码语言:javascript
代码运行次数:0
运行
复制
touch [选项] 文件名...
  • 选项touch 指令支持多个选项,用于定制其行为。
  • 文件名:指定要创建或更新的文件。可以指定一个或多个文件名。
10.2 常用选项
  • -a--access:只更改访问时间。
  • -c--no-create:不创建任何文件,如果文件不存在则不执行任何操作,也不会报错。
  • -d--date=字符串:使用指定的字符串来设置文件的访问和修改时间,而不是使用当前时间。字符串的格式可以是多种日期时间格式。
  • -f:如果文件不存在,则不会创建文件,也不会显示错误信息(这个选项在较新版本的 touch 中可能已经被废弃或行为有所改变,具体取决于系统)。
  • -h--no-dereference:如果文件是符号链接,则更新链接本身的时间戳,而不是链接指向的文件的时间戳。
  • -m--time=mtime:只更改修改时间(这是默认行为,即使没有指定 -m 选项)。
  • -r--reference=文件:使用指定文件的时间戳来设置目标文件的时间戳。
  • -t--time=[[CC]YY]MMDDhhmm[.ss]:使用指定的时间格式来设置文件的时间戳。
10.3 示例
  1. 创建一个名为 newfile.txt 的空文件:
代码语言:javascript
代码运行次数:0
运行
复制
touch newfile.txt
  1. 更新文件 existingfile.txt 的时间戳为当前时间:
代码语言:javascript
代码运行次数:0
运行
复制
touch existingfile.txt
  1. 使用指定的日期时间字符串来设置文件的时间戳:
代码语言:javascript
代码运行次数:0
运行
复制
touch -d "2023-04-01 12:00:00" myfile.txt
  1. 只更改文件的访问时间,而不更改修改时间:
代码语言:javascript
代码运行次数:0
运行
复制
touch -a -t 202304011200.00 myfile.txt
  1. 使用另一个文件的时间戳来更新目标文件的时间戳:
代码语言:javascript
代码运行次数:0
运行
复制
touch -r referencefile.txt targetfile.txt

注意事项

  • 如果指定的文件不存在,touch 会默认创建一个空文件,除非使用了 -c 选项。
  • touch 指令不会改变文件的内容,只会更新文件的时间戳或创建空文件。
  • 在使用 -d-t 选项时,需要确保日期时间字符串的格式是正确的,否则 touch 可能会报错。

结语

Linux的世界广阔而充满活力,而基础指令只是它的起点。随着对Linux的不断深入学习,您将发现更多强大而高效的工具和方法。希望这篇文章能帮助您顺利迈出第一步,为将来的深入学习奠定坚实的基础。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 🦚1. ls - 列出目录内容
      • 1.1 基本用法
      • 1.2 常用选项
      • 1.3 示例用法
    • 🦚2. cd - 改变当前工作目录
      • 2.1 基本用法
      • 2.2 示例用法
    • 🦚3. pwd - 显示当前工作目录
      • 3.1 基本用法
      • 3.2 功能
      • 3.3 常用选项
    • 🦚4. mkdir - 创建新目录
      • 4.1 基本用法
      • 4.2 创建目录
      • 4.3 常用选项
      • 4.4 示例
    • 🦚5. rmdir指令和rm指令 - 删除文件和目录
      • 5.1 rmdir
      • 5.2 rm
    • 🦚6. man指令 - 显示特定命令的手册页
      • 6.1 手册页章节
      • 6.2 指定章节
    • 🦚7. cp - 复制文件或目录
      • 7.1 基本用法
      • 7.2 常用选项
      • 7.3 示例用法
    • 🦚8. echo - 输出文本
      • 8.1 基本用法
      • 8.2 示例用法
      • 8.3 输出重定向
    • 🦚9. mv - 移动或重命名文件
      • 9.1 移动文件
      • 9.2 重命名文件
      • 9.3 移动多个文件
      • 9.4 覆盖文件
      • 9.5 显示详细信息
      • 9.6 移动目录
    • 🦚10. touch - 创建空文件或更新文件时间戳
      • 10.1 基本用法
      • 10.2 常用选项
      • 10.3 示例
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档