命令如诗,步入Linux的晨曦:指令初学者的旅程(上)
文章目录
- 前言
- 🦚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.1.1 基本用法
- 5.1.2 示例用法
- 5.2 `rm`
- 5.2.1 基本用法
- 5.2.2 示例用法
- 5.2.3 常用选项
- 🦚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 示例
- 结语
前言
Linux系统因其高效、灵活和安全性,广泛应用于服务器、开发、运维等各个领域。对于刚接触Linux的新手来说,熟练掌握基本指令是开启Linux之旅的第一步。本文将帮助您快速了解和使用Linux中最常用的基础指令,为您在日常操作和管理中打下扎实的基础。
🦚1. ls
- 列出目录内容
1.1 基本用法
ls [选项] [目录]
如果不指定目录,ls
将列出当前工作目录中的内容。
1.2 常用选项
-a
(或--all
):- 列出所有文件,包括以点开头的隐藏文件。
-l
(或--long
):- 以详细列表的格式显示。
-h
(或--human-readable
):- 显示人类可读的文件大小。
-t
(或--time
):- 按时间排序文件。
-r
(或--reverse
):- 反向排序输出。
-S
:- 按文件大小排序。
1.3 示例用法
-
列出当前目录的内容:
ls
-
列出指定目录的内容:
ls /path/to/directory
-
列出所有文件(包括隐藏文件):
ls -a
隐藏文件以点(.
)开头。
-
列出详细信息:
ls -l
这条命令会显示文件的详细信息,包括权限、链接数、所有者、组、大小和最后修改时间。
-
以人类可读的格式显示文件大小:
ls -lh
-h
选项将文件大小以可读的格式(如 K、M、G)显示。
-
按修改时间排序:
ls -lt
这条命令会按修改时间列出文件,最近修改的文件在前面。
-
反向排序:
ls -lr
-r
选项将结果反向排序。
-
组合选项:
ls -la
这条命令同时显示所有文件和详细信息。
🦚2. cd
- 改变当前工作目录
2.1 基本用法
cd [目录]
2.2 示例用法
-
切换到指定目录:
cd /path/to/directory
这条命令会将当前工作目录切换到 /path/to/directory
。
-
返回上级目录:
cd ..
这条命令会将当前工作目录切换到上一级目录。
-
返回当前用户的主目录:
cd ~
这条命令会将当前工作目录切换到当前用户的主目录(如 /home/username
)。
-
使用相对路径:
cd dir1/dir2
如果当前目录下有 dir1
,且 dir1
下有 dir2
,这条命令会将当前工作目录切换到 dir2
。
-
使用点(
.
)表示当前目录:vcd .
这条命令不会改变当前目录,但在某些情况下可以用于表明当前目录的存在。
注意事项
- 路径可以是绝对路径或相对路径:
- 绝对路径是从根目录
/
开始的完整路径。 - 相对路径是相对于当前工作目录的路径。
- 绝对路径是从根目录
- 在输入目录名称时,Linux 是区分大小写的,因此
/home/user
和/home/User
被视为两个不同的目录。 - 如果目录不存在,
cd
命令会返回一个错误提示。
🦚3. pwd
- 显示当前工作目录
3.1 基本用法
- 查看当前工作目录
pwd
3.2 功能
-
当你在命令行中输入
pwd
并按下回车时,系统会输出你当前所在的目录的完整路径。例如,如果你在/home/user/documents
目录下运行pwd
,输出将会是:/home/user/documents
3.3 常用选项
-
-L
(或--logical
):- 显示当前工作目录的逻辑路径,通常会是你所使用的符号链接的路径。
pwd -L
-
-P
(或--physical
):- 显示当前工作目录的物理路径,解析所有符号链接。
pwd -P
注意事项
pwd
命令通常与cd
命令结合使用,以确认你正在操作的目录。pwd
命令的输出是绝对路径,通常以/
开头,表示从根目录开始。
🦚4. mkdir
- 创建新目录
4.1 基本用法
mkdir [选项] 目录名
4.2 创建目录
-
创建单个目录:
mkdir mydirectory
这条命令将在当前工作目录下创建一个名为 mydirectory
的新目录。
-
创建多个目录:
mkdir dir1 dir2 dir3
这条命令将在当前工作目录下同时创建 dir1
、dir2
和 dir3
这三个目录。
4.3 常用选项
-
-p
(或--parents
):- 创建父目录。如果父目录不存在,会一并创建。例如:
mkdir -p /home/user/docs/projects
这条命令会创建
projects
目录,同时确保/home/user/docs
路径中的所有父目录都存在。 -
-v
(或--verbose
):- 显示详细的操作信息。例如:
mkdir -v mydirectory
这条命令将在创建目录时输出创建的操作信息。
-
-m
(或--mode
):- 设置新目录的权限。可以使用八进制数或符号模式来设置。例如:
mkdir -m 755 mydirectory
这条命令会创建
mydirectory
,并将其权限设置为755
(即所有者有读、写、执行权限,组用户和其他用户有读和执行权限)。
4.4 示例
-
创建嵌套目录:
mkdir -p projects/2024
这条命令会在当前目录下创建 projects
目录,如果它不存在的话,然后在 projects
目录下创建 2024
目录。
-
创建多个目录并显示操作信息:
mkdir -v dirA dirB dirC
这将创建三个目录,并在终端中显示每个目录创建的详细信息。
注意事项
- 如果要创建的目录已经存在,
mkdir
命令会返回一个错误,提示目录已存在。 - 使用
-p
选项可以避免此错误,因为它会忽略已存在的目录。
🦚5. rmdir
指令和rm
指令 - 删除文件和目录
5.1 rmdir
rmdir
命令用于删除空目录。它无法删除包含文件或其他目录的非空目录。
5.1.1 基本用法
rmdir [选项] 目录名
5.1.2 示例用法
-
删除空目录:
rmdir myemptydir
-
同时删除多个空目录:
rmdir dir1 dir2 dir3
5.2 rm
rm
命令用于删除文件和目录,可以删除非空目录(配合 -r
选项)。
5.2.1 基本用法
rm [选项] 文件或目录名
5.2.2 示例用法
-
删除单个文件:
rm myfile.txt
-
删除多个文件:
rm file1.txt file2.txt file3.txt
-
递归删除非空目录:
rm -r mydir
这条命令将删除
mydir
及其所有内容,包括子目录和文件。 -
强制删除文件或目录(不提示确认):
rm -f myfile.txt
-
递归强制删除非空目录:
rm -rf mydir
5.2.3 常用选项
-r
(或--recursive
):- 递归删除,用于删除目录及其内容。
-f
(或--force
):- 强制删除,不会询问用户确认。
-i
(或--interactive
):- 交互式删除,在删除每个文件前都会询问用户确认。
【总结】
rmdir
只能删除空目录,适用于安全地清理不再需要的空目录。rm
更为强大,可以删除文件和目录,且可以使用多种选项控制删除行为。需谨慎使用,尤其是-r
和-f
选项,因为它们会永久删除文件和目录,且不易恢复。
🦚6. man
指令 - 显示特定命令的手册页
man
指令(manual)是 Linux系统中的一个常用工具,用于查看命令、程序、系统调用等的手册页,帮助用户了解如何使用特定的指令或工具。每个命令的手册页提供了详细的语法说明、可选参数、用法示例等。
用法:
man [命令名称]
示例:
man ls
这将打开 ls
命令的手册页,显示 ls
命令的说明、选项、用法等。
6.1 手册页章节
Linux 系统中的手册页分为多个章节,主要章节如下:
- 可执行文件或命令(如
ls
,cd
) - 系统调用(内核提供的功能)
- 库调用(程序库中的函数)
- 特殊文件(通常是
/dev
下的文件) - 文件格式(配置文件格式等)
- 游戏(游戏与演示程序)
- 杂项(宏包、惯例等)
- 系统管理命令(通常只有 root 用户能使用)
6.2 指定章节
如果需要查看特定章节的内容,可以通过在命令后面指定章节号。例如,要查看 printf
函数的库调用而不是命令:
man 3 printf
常用操作:
- 上下翻页:使用
Page Up
和Page Down
键,或者按j
和k
来向下或向上滚动。 - 搜索:按
/
然后输入关键词进行搜索,按n
查找下一个匹配项。 - 退出:按
q
退出手册页。
🦚7. cp
- 复制文件或目录
cp
是 Linux 中用于复制文件或目录的命令。它可以将文件从一个位置复制到另一个位置,或将整个目录复制到另一个目录。
7.1 基本用法
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
- 源文件:你想要复制的文件或目录。
- 目标文件/目录:复制文件或目录的目标位置。
7.2 常用选项
-
-r
(或--recursive
):递归复制目录及其内容。要复制非空目录时必须使用此选项。cp -r source_directory/ destination_directory/
-
-i
(或--interactive
):如果目标文件已经存在,提示确认是否覆盖。cp -i file1.txt /path/to/destination/
-
-p
(或--preserve
):保留文件的属性(权限、所有者、时间戳等)。cp -p file1.txt /path/to/destination/
-
-f
(或--force
):强制复制文件,目标文件若已存在,则强制覆盖。cp -f file1.txt /path/to/destination/
-
-u
(或--update
):仅当源文件比目标文件新时,才进行复制。cp -u file1.txt /path/to/destination/
-
-v
(或--verbose
):显示详细的复制过程。cp -v file1.txt /path/to/destination/
7.3 示例用法
-
复制单个文件:
cp file1.txt file2.txt
这条命令将
file1.txt
复制为file2.txt
。如果file2.txt
已经存在,它会被覆盖。 -
复制多个文件到一个目录:
cp file1.txt file2.txt /path/to/destination/
这条命令将
file1.txt
和file2.txt
复制到指定的destination
目录。 -
复制整个目录:
cp -r /path/to/source /path/to/destination/
这条命令使用 -r
选项递归地复制 source
目录及其所有内容到 destination
目录。
-
复制文件并保留权限、时间戳等:
cp -p file1.txt /path/to/destination/
使用
-p
选项可以保留文件的权限、所有者和时间戳。
【注意事项】
- 使用
cp
复制文件时,如果目标位置已有同名文件且没有使用-i
或其他交互选项,系统将不会提示直接覆盖文件,因此需要谨慎操作。 - 复制目录时,必须使用
-r
选项,否则会报错。
🦚8. echo
- 输出文本
8.1 基本用法
echo [选项] [字符串或变量]
8.2 示例用法
-
输出文本:
echo "Hello, World!"
输出:
Hello, World!
在 Linux 中,输出重定向 是指将命令的输出从默认的终端(屏幕)重定向到其他地方,比如文件。通过输出重定向,可以将程序执行的结果保存到文件中,或者追加到已有文件中。
8.3 输出重定向
输出重定向通常使用大于号(>
)或两个大于号(>>
),来控制将输出保存到文件中:
-
覆盖输出:
>
用于将输出重定向到文件,会覆盖文件中的现有内容。 -
追加输出:
>>
用于将输出追加到文件的末尾,不会覆盖文件中的内容。 -
覆盖重定向:
echo "Hello, World!" > output.txt
这条命令将 echo
命令的输出写入到 output.txt
文件中。如果文件已存在,它的内容将被覆盖。
-
追加重定向:
echo "Another line" >> output.txt
这条命令将文本 Another line
追加到 output.txt
文件末尾,不会覆盖已有内容。
🦚9. mv
- 移动或重命名文件
9.1 移动文件
将文件从一个位置移动到另一个位置:
mv 源文件 目标位置
例如,将 file.txt
移动到 /home/user/docs
目录:
mv file.txt /home/user/docs/
9.2 重命名文件
mv
也可以用来重命名文件:
mv 旧文件名 新文件名
例如,将 oldname.txt
重命名为 newname.txt
:
mv oldname.txt newname.txt
注意:移动和重命名可以同时进行
9.3 移动多个文件
可以一次移动多个文件:
mv file1.txt file2.txt 目标目录
例如,将 file1.txt
和 file2.txt
移动到 /home/user/docs
目录:
mv file1.txt file2.txt /home/user/docs/
9.4 覆盖文件
如果目标位置已存在同名文件,mv
会覆盖它。为了避免覆盖,可以使用 -i
选项,它会在覆盖前提示确认:
mv -i 源文件 目标位置
9.5 显示详细信息
使用 -v
选项可以显示详细信息,告诉你正在做什么:
mv -v 源文件 目标位置
9.6 移动目录
mv
也可以用来移动整个目录:
mv 源目录 目标位置
🦚10. touch
- 创建空文件或更新文件时间戳
10.1 基本用法
touch
指令的基本语法如下:
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 示例
- 创建一个名为
newfile.txt
的空文件:
touch newfile.txt
- 更新文件
existingfile.txt
的时间戳为当前时间:
touch existingfile.txt
- 使用指定的日期时间字符串来设置文件的时间戳:
touch -d "2023-04-01 12:00:00" myfile.txt
- 只更改文件的访问时间,而不更改修改时间:
touch -a -t 202304011200.00 myfile.txt
- 使用另一个文件的时间戳来更新目标文件的时间戳:
touch -r referencefile.txt targetfile.txt
注意事项
-
如果指定的文件不存在,
touch
会默认创建一个空文件,除非使用了-c
选项。 -
touch
指令不会改变文件的内容,只会更新文件的时间戳或创建空文件。 -
在使用
-d
或-t
选项时,需要确保日期时间字符串的格式是正确的,否则touch
可能会报错。
结语
Linux的世界广阔而充满活力,而基础指令只是它的起点。随着对Linux的不断深入学习,您将发现更多强大而高效的工具和方法。希望这篇文章能帮助您顺利迈出第一步,为将来的深入学习奠定坚实的基础。
今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,17的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是17前进的动力!