admin 管理员组

文章数量: 887038


2024年1月22日发(作者:哈希表查找时间复杂度)

Linux 常用命令的使用方法

Linux 操作系统及命令的基本概念和特点

Linux系统

Linux 操作系统是一种开放源代码的操作系统,具有广泛的应用领域。它基于 Unix 操作系统,并由全球范围的开发者共同构建和维护。Linux 的基本概念是多用户、多任务的操作系统。它允许多个用户同时访问系统,并在同一时间内运行多个任务。通过使用分时操作系统的策略,Linux 能够灵活地管理系统资源和进程调度,确保系统的高效性。其次,Linux 是一种具有高度可定制性的操作系统。其开源的特点使得用户可以自由地修改和定制系统的各个方面,以满足特定的需求。用户可以自由选择和配置各种软件和工具,构建一个完全符合自己需求的定制化操作系统。此外,Linux 操作系统具有良好的稳定性和安全性。由于有众多的开发者参与到代码的审核和改进中,Linux 的内核和核心组件经过了广泛的测试和优化。这使得 Linux 可以长时间稳定地运行,减少系统故障和崩溃的可能性。此外,Linux 的安全性也得到了充分的重视和改进,并提供了强大的安全特性和机制,以保护系统和用户的数据。

Linux命令

Linux命令作为操作Linux系统的基本工具,具有以下基本特点。首先,Linux命令是开源的,用户可以自由查看、修改和分发命令的源代码,以满足个人及组织的需求,并且享受开放源代码社区的积极贡献和共享精神。其次,Linux命令主要通过终端界面进行操作,用户可以通过命令行输入指令来与计算机系统进行交互,这种终端界面提供了高度的灵活性和控制力,用户可以根据需要精确地控制系统的行为。第三,Linux命令使用命令行参数的形式,用户可以通过参数来定制命令的行为,如指定选项、参数和操作方式,从而适应不同的使用场景。此外,Linux命令支持对文件和目录进行各种操作,包括创建、删除、复制、移动和修改等。通过命令操作文件系统,用户可以灵活地管理和操作文件资源。另外,Linux命令还支持管道和重定向操作,用户可以将一个命令的输出传递给另一个命令进行处理,或将输出重定向到文件中保存,实现数据的流畅处理和重定向。此外,Linux命令功能丰富,覆盖了文件管理、进程管理、系统配置、网络操作、文本处理、软件安装和配置等各个方面,满足用户的各种需求。同时,Linux命令具有很强的扩展性和可定制性,用户可以编写脚本和自定义命令来满足特定的需求,实现自动化任务和定制化操作。最后,Linux是一个多用户和多任务的操作系统,Linux命令具备多用户和多任务的支持,可以实现多个用户同时登录系统并进行各自的任务处理,实现系统资源的共享和高效利用。综上所述,Linux命令开源、终端界面、命令行参数、文件操作、管道和重定向、丰富的功能、扩展性和多用户多任务的支持是其基本特点,这些特点使得Linux命令成为一种强大而灵活的工具,广泛应用于各种计算机系统和领域中,为用户提供了强大的控制和操作能力。

从功能上来说, Linux命令具有多个基本大类别,包括文件和目录操作、文件内容处理、文本编辑、系统操作和管理、网络操作、软件包管理以及Shell脚本等。这些命令提供了丰富而强大的功能,使用户能够有效地管理和操作Linux系统。通过使用这些命令,用户可以浏览文件和目录、编辑文本文件、管理进程和系统资源、配置网络接口、安装和卸载软件包,并编写自动化脚本等。熟练掌握不同类别的命令,以及它们的具体用法和选项,能够提高Linux系统的使用效率和灵活性,适应各种需求和应用场景。

常用命令分类

文件和目录管理

1. ls:列出目录内容

ls 是一个常用的 Linux 命令,用于列出目录的内容。下面是 ls 命令的一些常见用法:

列出当前目录的内容:

ls

列出指定目录的内容:

ls /path/to/directory

列出当前目录的详细内容(包括文件权限、所有者、大小等信息):

ls –l

列出所有文件,包括隐藏文件(以 . 开头的文件):

ls –a

以逆序方式列出目录内容:

ls –r

列出目录内容,并按修改时间进行排序:

ls –t

列出目录内容,并按文件大小进行排序:

ls –S

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

ls –lh

使用多个选项组合:

ls –alh

2. cd:切换目录

切换到指定目录:

cd /path/to/directory这将使当前工作目录更改为指定路径的目录。

切换到当前用户的主目录(home directory):

cd这将将当前工作目录更改为当前用户的主目录。

切换到上一级目录:

cd ..这将使当前工作目录更改为上一级目录。

切换到前一个目录(返回先前的工作目录):

cd -这将使当前工作目录更改为之前所在的目录。

使用相对路径进行切换:

cd relative/path/to/directory

3. mkdir:创建目录

在当前目录下创建一个新目录:

mkdir directory_name

这将在当前工作目录下创建名为 “directory_name” 的新目录。

在指定路径下创建一个新目录:

mkdir /path/to/directory

这将在指定路径下创建一个新目录。

创建多级目录(递归创建):

mkdir -p /path/to/directory

如果指定的路径中的某些父级目录不存在,使用 “-p” 选项可以创建所有缺少的父级目录。

4. rm:删除文件或目录

rm(Remove)是一个命令行命令,用于删除文件或目录。下面是 rm 命令的一些常见用法:

删除一个文件:

rm

这将删除名为 “” 的文件。

删除一个目录及其内容(需要添加递归选项 “-r”):

rm -r directory

这将删除名为 “directory” 的目录及其所有内容。

强制删除(不显示确认提示):

rm -f

这将强制删除文件,即使文件是只读的或存在其他限制。

5. cp:复制文件或目录

复制一个文件到指定目录:

cp /path/to/directory

这将复制名为 “” 的文件到指定目录中。

复制多个文件到指定目录:

cp /path/to/directory

这将同时复制 “” 和 “” 两个文件到指定目录中。

复制一个目录及其内容到指定目录(需要添加递归选项 “-r”):

cp -r directory /path/to/new_directory

这将复制名为 “directory” 的目录及其内容到指定目录中。

在复制时保留文件元数据(如权限、时间戳等):

cp -a /path/to/directory

使用 “-a” 选项可以保留文件的元数据,包括权限、时间戳、所有者等。

强制覆盖目标文件:

cp -f /path/to/directory

使用 “-f” 选项可以强制复制并覆盖目标目录中同名的文件,如果目标文件已经存在。

6. mv:移动文件或目录

mv(Move)是一个命令行命令,用于移动文件或目录,也可以用于重命名文件或目录。下面是 mv 命令的一些常见用法:

移动一个文件到指定目录:

mv /path/to/directory

这将把名为 “” 的文件移动到指定目录中。

移动并重命名一个文件:

mv old_ new_

这将把名为 “old_” 的文件重命名为 “new_”。

移动一个目录及其内容到指定目录:

mv directory /path/to/new_directory

这将把名为 “directory” 的目录及其内容移动到指定目录中。

重命名一个目录:

mv old_directory new_directory

这将把名为 “old_directory” 的目录重命名为 “new_directory”。

7. find:查找文件

find 是一个强大的命令行命令,用于在文件系统中查找文件。它可以根据不同的条件来查找文件,并对符合条件的文件执行相应的操作。下面是 find 命令的一些常见用法:

根据文件名查找文件:

find /path/to/directory -name "filename"

这将在指定目录及其子目录中查找文件名为 “filename” 的文件。

根据文件类型查找文件:

find /path/to/directory -type f

这将在指定目录及其子目录中查找普通文件(不包括目录和符号链接)。

根据文件大小查找文件:

find /path/to/directory -size +1M

这将在指定目录及其子目录中查找大小超过 1MB 的文件。

根据文件权限查找文件:

find /path/to/directory -perm 644

这将在指定目录及其子目录中查找文件权限为 644 的文件。

根据修改时间查找文件:

find /path/to/directory -mtime -7

这将在指定目录及其子目录中查找最近 7 天内修改过的文件。

组合多个条件来查找文件:

find /path/to/directory -name "*.txt" -size +1M

这将在指定目录及其子目录中查找文件名以 “.txt” 结尾且大小超过 1MB 的文件。

文件内容操作

1. cat:查看文件内容

cat(Concatenate)是一个命令行命令,用于查看文件内容。它可以将文件的内容输出到终端或者将多个文件合并并输出到终端。下面是 cat 命令的一些常见用法:

查看单个文件的内容:

cat

这将在终端中显示名为 “” 的文件的内容。

查看多个文件的内容:

cat

这将按顺序输出 “” 和 “” 文件的内容到终端。

合并多个文件的内容:

cat >

这将将 “” 和 “” 文件的内容合并,并将合并后的结果输出到名为

“” 的新文件中。

通过管道将文件内容传递给其他命令:

cat | grep "keyword"

这将查看 “” 文件的内容,并通过管道将其传递给 grep 命令,以进行关键字搜索。

显示行号:

cat -n

使用 “-n” 选项,cat 命令将显示文件内容,并在每行前面显示行号。

2. head:显示文件前几行

head 是一个命令行命令,用于显示文件的前几行内容。它默认显示文件的前10行,但你可以通过选项来指定要显示的行数。下面是 head 命令的一些常见用法:

显示文件的前几行(默认为前10行):

head

这将显示名为 “” 的文件的前10行内容。

显示文件的前n行:

head -n 5

这将显示名为 “” 的文件的前5行内容。

显示多个文件的前几行:

head

这将分别显示 “” 和 “” 文件的前10行内容。

显示标准输入的前几行:

echo "Hello, world!" | head -n 1

这将显示从标准输入接收的内容的前1行。在这个例子中,输出将是 “Hello, world!”。

3. tail:显示文件后几行

tail 是一个命令行命令,用于显示文件的后几行内容。它默认显示文件的最后10行,但你可以通过选项来指定要显示的行数。下面是 tail 命令的一些常见用法:

显示文件的后几行(默认为最后10行):

tail

这将显示名为 “” 的文件的最后10行内容。

显示文件的后n行:

tail -n 5

这将显示名为 “” 的文件的最后5行内容。

监视文件的动态变化(输出新添加的行):

tail -f

这将持续显示名为 “” 的文件的最后10行,并监视文件的动态变化,以便输出新添加的行。

显示多个文件的后几行:

tail

这将分别显示 “” 和 “” 文件的最后10行内容。

4. grep:在文件中搜索指定模式

grep 是一个命令行命令,用于在文件中搜索指定模式,并输出匹配的行。它可以用于对文本内容进行快速的模式匹配和搜索操作。下面是 grep 命令的一些常见用法:

在单个文件中搜索模式:

grep pattern

这将在名为 “” 的文件中搜索包含指定模式的行,并将匹配的行输出到终端。

在多个文件中搜索模式:

grep pattern

这将在多个文件中搜索包含指定模式的行,并将匹配的行输出到终端。

递归搜索目录中的文件:

grep -r pattern directory/

使用 “-r” 选项,grep 命令将递归搜索目录中的所有文件,查找包含指定模式的行。

忽略模式的大小写:

grep -i pattern

使用 “-i” 选项,grep 命令将忽略模式的大小写,进行不区分大小写的搜索。

显示匹配行的上下文:

grep -C 2 pattern

使用 “-C” 选项,grep 命令将显示匹配行的上下文,输出包含匹配行前后指定行数的内容。

5. wc:统计文件的行数、字数和字符数

wc 是一个命令行命令,用于统计文件中的行数、字数和字符数。它可以对文件进行快速的文本统计操作。下面是 wc 命令的一些常见用法:

统计文件的行数、字数和字符数:

wc

这将输出名为 “” 的文件的行数、字数和字符数。输出结果的格式为:行数 字数 字符数 文件名。

统计多个文件的总行数、字数和字符数:

wc

这将分别输出 “” 和 “” 文件的行数、字数和字符数,并在最后输出总行数、总字数和总字符数。

只统计行数:

wc -l

使用 “-l” 选项,wc 命令将只输出文件的行数。

只统计字数:

wc -w

使用 “-w” 选项,wc 命令将只输出文件的字数。

只统计字符数:

wc -c

使用 “-c” 选项,wc 命令将只输出文件的字符数。

6. sort:对文件内容进行排序

sort 是一个命令行命令,用于对文件内容进行排序。它可以按照不同的排序规则和不同的字段进行排序操作。下面是 sort 命令的一些常见用法:

对文件内容进行默认排序:

sort

这将按照字母顺序对名为 “” 的文件内容进行排序,并将排序结果输出到终端。

对文件内容进行逆序排序:

sort -r

使用 “-r” 选项,sort 命令将按照逆序(降序)对文件内容进行排序。

对文件内容按照数字进行排序:

sort -n

使用 “-n” 选项,sort 命令将按照数字顺序对文件内容进行排序。

指定排序字段:

sort -k 2

使用 “-k” 选项,sort 命令将按照指定的字段对文件内容进行排序。在上述示例中, “-k 2”

表示按照第二个字段进行排序。

指定字段之间的分隔符:

sort -t ":" -k 3

使用 “-t” 选项,sort 命令将指定字段之间的分隔符。在上述示例中, "-t “:” 指定字段之间的分隔符为冒号。

7. diff:比较两个文件的差异

diff 是一个命令行命令,用于比较两个文件之间的差异。它会逐行比较两个文件,并将它们

之间的不同之处以特定格式输出。下面是 diff 命令的一些常见用法:

比较两个文件的差异:

diff

这将比较名为 “” 和 “” 的两个文件,并将它们之间的差异以行为单位进行输出。

以递归方式比较目录下的文件:

diff -r directory1 directory2

使用 “-r” 选项,diff 命令将递归比较两个目录下相应文件的差异。

生成可应用的补丁文件:

diff -u >

使用 “-u” 选项,diff 命令将生成一份可应用的补丁文件,其中包含了将 “” 转换为

“” 的所有更改。

忽略空白字符的差异:

diff -w

使用 “-w” 选项,diff 命令将忽略空白字符的差异,例如空格和制表符。

仅显示不同行的差异:

diff --brief

使用 “–brief” 选项,diff 命令将仅显示文件之间不同的行,而不会详细列出所有差异。

权限管理

1. chmod:修改文件或目录的权限

chmod 是一个命令行命令,用于修改文件或目录的权限。它可以控制文件或目录的所有者、所属组和其他用户对文件的读取、写入和执行权限。下面是 chmod 命令的一些常见用法:

使用数字表示权限:

chmod 755

这将将名为 “” 的文件的权限设置为 755,其中数字 7 表示所有者具有读取、写入和执行权限,数字 5 表示所属组用户具有读取和执行权限,其他用户具有读取和执行权限。

使用符号表示权限:

chmod u=rw,g=r,o=r

这将将名为 “” 的文件的权限设置为所有者具有读取和写入权限,所属组用户具有读取权限,其他用户具有读取权限。“u” 表示所有者,“g” 表示所属组用户,“o” 表示其他用户。

递归修改目录权限:

chmod -R 750 directory/

使用 “-R” 选项,chmod 命令将递归修改目录及其子目录中的文件权限。

添加或去除特定权限:

chmod +x

这将向名为 “” 的文件添加执行权限。可以使用 “+/-” 符号来添加或去除具体的权限。

2. chown:修改文件或目录的所有者

chown 是一个命令行命令,用于修改文件或目录的所有者。它可以将文件或目录的所有权转移给其他用户或用户组。下面是 chown 命令的一些常见用法:

修改文件的所有者:

chown user1

这将将名为 “” 的文件的所有者修改为 “user1”。文件的所属组不受影响。

修改文件的所有者和所属组:

chown user1:group1

这将将名为 “” 的文件的所有者修改为 “user1”,并将所属组修改为 “group1”。

递归修改目录的所有者和所属组:

chown -R user1:group1 directory/

使用 “-R” 选项,chown 命令将递归修改目录及其子目录中的文件的所有者和所属组。

以符号链接方式修改所有者:

chown -h user1

使用 “-h” 选项,chown 命令将以符号链接方式修改文件的所有者,而不是修改符号链接目标文件的所有者。

3. chgrp:修改文件或目录的所属组

chgrp 是一个命令行命令,用于修改文件或目录的所属组。它可以将文件或目录的所属组转移给其他用户组。下面是 chgrp 命令的一些常见用法:

修改文件的所属组:

chgrp group1

这将将名为 “” 的文件的所属组修改为 “group1”。文件的所有者不受影响。

递归修改目录的所属组:

chgrp -R group1 directory/

使用 “-R” 选项,chgrp 命令将递归修改目录及其子目录中的文件的所属组。

以符号链接方式修改所属组:

chgrp -h group1

使用 “-h” 选项,chgrp 命令将以符号链接方式修改文件的所属组,而不是修改符号链接目标文件的所属组。

网络管理

1. ping:测试网络连通性

ping 是一个常用的命令行命令,用于测试网络连通性和测量目标主机的响应时间。它发送

ICMP 回显请求报文到目标主机,并等待目标主机返回 ICMP 回显应答报文。下面是 ping

命令的一些常见用法:

测试与目标主机的网络连通性:

ping target_host

将 “target_host” 替换为要测试的目标主机的 IP 地址或域名。默认情况下,ping 命令将发送连续的 ICMP 请求并显示每个响应的时间和状态。

设置发送请求的次数:

ping -c count target_host

使用 “-c” 选项,可以指定发送请求的次数。例如,使用 “ping -c 5 target_host” 将发送 5

个请求并显示响应。

持续 ping 测试:

ping -t target_host

使用 “-t” 选项,可以持续发送 ping 请求,直到手动中断。这对于长时间的连通性测试很有用。

设置 ping 包大小:

ping -s packet_size target_host

使用 “-s” 选项,可以设置发送的 ICMP 包的大小(字节)。默认情况下,每个包的大小为

56 字节(包括 ICMP 头部)。

禁止 DNS 反向解析:

ping -n target_ip

使用 “-n” 选项,可以禁止 ping 命令进行目标主机的 DNS 反向解析。这可以加快 ping 响应速度。

2. ifconfig:查看和配置网络接口信息

ifconfig 是一个命令行命令,用于查看和配置网络接口的信息。它通常用于 Linux 和 macOS

系统中。在最新版本的 macOS 中,该命令已经被 ipconfig 替代。下面是 ifconfig 命令的一些常见用法:

查看所有网络接口的信息:

ifconfig

这将显示计算机上所有网络接口(例如以太网卡、Wi-Fi、回环接口等)的配置信息,包括IP地址、MAC地址、网络状态等。

查看特定网络接口的信息:

ifconfig interface_name

将 “interface_name” 替换为要查看的网络接口的名称,例如 “eth0” 或 “wlan0”。该命令将显示该特定网络接口的配置信息。

启用或禁用网络接口:

ifconfig interface_name up

ifconfig interface_name down

使用 “up” 参数可以启用指定的网络接口,使用 “down” 参数可以禁用指定的网络接口。

配置网络接口的 IP 地址:

ifconfig interface_name inet IP_address

将 “interface_name” 替换为要配置的网络接口的名称,“IP_address” 替换为要设置的IP地址。这样可以为指定的网络接口分配特定的IP地址。

配置网络接口的子网掩码:

ifconfig interface_name netmask netmask_value

将 “interface_name” 替换为要配置的网络接口的名称,“netmask_value” 替换为要设置的子网掩码。这可用于为指定的网络接口设置特定的子网掩码。

3. ssh:远程登录到其他计算机

ssh 是一个命令行协议,用于通过网络安全地远程登录到其他计算机。它提供了加密的通信通道,让用户可以在远程计算机上执行命令或操作。下面是 ssh 命令的一些常见用法:

远程登录到目标计算机:

ssh username@hostname

将 “username” 替换为目标计算机上的有效用户名,将 “hostname” 替换为目标计算机的

IP 地址或域名。执行此命令后,系统会要求输入目标计算机用户的密码。

指定 SSH 端口:

ssh -p port username@hostname

使用 “-p” 选项,可以指定目标计算机上 SSH 服务器的端口号。通常,默认的 SSH 端口是

22,但在某些情况下可能会更改。

使用密钥进行身份验证:

ssh -i private_ username@hostname

使用 “-i” 选项,可以指定用于身份验证的私钥文件。通过密钥进行身份验证可以提供更安全的方式,而不是每次都输入密码。

传输文件到远程计算机:

scp username@hostname:destination_directory

使用 scp 命令,可以将本地文件复制到远程计算机上。将 “” 替换为要复制的文件名,

“destination_directory” 替换为目标计算机上的目标目录。

4. scp:在本地和远程主机之间复制文件

scp 是一个命令行命令,用于在本地主机和远程主机之间复制文件。它支持通过 SSH 协议进行安全的文件传输。下面是 scp 命令的一些常见用法:

从本地主机复制文件到远程主机:

scp local_file username@remote_host:destination_path

将 “local_file” 替换为要复制的本地文件路径,“username” 替换为目标远程主机上的有效用户名,“remote_host” 替换为目标远程主机的 IP 地址或域名,“destination_path” 替换为要复制到的目标路径。

从远程主机复制文件到本地主机:

scp username@remote_host:remote_file local_destination

将 “username” 替换为远程主机上的有效用户名,“remote_host” 替换为远程主机的 IP 地址或域名,“remote_file” 替换为要复制的远程文件路径,“local_destination” 替换为要保存文件的本地路径。

通过 SSH 私钥进行文件传输:

scp -i private_ local_file username@remote_host:destination_path

使用 “-i” 选项,可以指定用于身份验证的 SSH 私钥文件。

递归复制整个目录:

scp -r local_directory username@remote_host:destination_path

使用 “-r” 选项,可以递归复制整个目录及其中的文件。

系统管理

1. ps:查看进程信息

ps 是一个常用的命令行命令,用于查看系统中正在运行的进程的信息。它提供了一种查看进程状态、资源使用情况和进程层次结构等的方式。下面是 ps 命令的一些常见用法:

查看所有进程信息:

ps -ef

这将显示系统中所有进程的详细信息,包括进程ID(PID)、父进程ID(PPID)、运行状态、占用的CPU和内存等。

查看当前用户的进程信息:

ps -u username

将 “username” 替换为要查看其进程信息的用户名。这将显示该用户所有正在运行的进程。

查看指定进程的详细信息:

ps -p pid

将 “pid” 替换为要查看的进程的PID。这将显示该进程的详细信息,包括进程启动的命令和资源使用情况等。

查看进程树/层次结构:

ps -ejH

使用 “-H” 选项,可以显示进程树或进程层次结构,以展示进程之间的父子关系。

查看进程的资源使用情况:

ps -o pid,ppid,%cpu,%mem,cmd

使用 “-o” 选项,可以选择要显示的进程信息列。以上命令将显示进程的PID、父进程ID、CPU利用率、内存使用率和命令行。

2. top:实时监控系统资源使用情况

top 是一个命令行实用程序,用于实时监控系统的资源使用情况和进程活动。它提供了一个动态更新的界面,显示 CPU、内存、磁盘、网络等方面的系统信息。以下是 top 命令的一些常见用法:

运行 top 命令:

top

执行此命令后,top 将以交互式方式显示系统的实时资源使用情况。默认情况下,它会按

CPU 使用率对所有进程进行排序,并显示前几个使用 CPU 最多的进程。

按特定字段进行排序:

top -o field_name

使用 “-o” 选项,可以按指定的字段对所有进程进行排序。例如,你可以使用 “-o %CPU” 按

CPU 使用率对所有进程进行排序,或使用 “-o RES” 按内存占用量对所有进程进行排序。

设置显示的进程数目:

top -n number_of_processes

使用 “-n” 选项,可以指定要显示的进程数目。这使你可以限制 top 显示的进程数,以适应终端和屏幕的大小。

刷新时间间隔设置:

top -d refresh_interval

使用 “-d” 选项,可以设置刷新时间间隔,以控制 top 刷新界面的速度。默认情况下,它每隔 3 秒刷新一次。

3. service:管理系统服务

service 是一个命令行工具,用于管理系统服务。它提供了一种方便的方式来启动、停止、重新启动以及查询系统上运行的服务的状态。具体的 service 命令使用取决于你所使用的操作系统和发行版。下面是一些常见的 service 命令的示例:

启动服务:

service servicename start

将 “servicename” 替换为要启动的服务的名称。这将启动指定的服务。

停止服务:

service servicename stop

将 “servicename” 替换为要停止的服务的名称。这将停止指定的服务。

重启服务:

service servicename restart

将 “servicename” 替换为要重启的服务的名称。这将先停止再启动指定的服务。

查询服务状态:

service servicename status

将 “servicename” 替换为要查询状态的服务的名称。这将显示指定服务的运行状态,如运行、停止等。

4. shutdown:关机或重启系统

shutdown 是一个命令行命令,用于在指定的时间关机或重启系统。它提供了一种管理系统关机和重启的方式,可以通过不同的选项来控制操作。下面是 shutdown 命令的一些常见用法:

关机系统:

shutdown -h now

这将立即关机系统。

重启系统:

shutdown -r now

这将立即重启系统。

定时关机或重启系统:

shutdown -h +10

这将在接下来的 10 分钟后关机系统。你可以将数字替换为其他时间值,也可以指定具体的时间,例如 “shutdown -h 23:00” 在晚上 11 点关机系统。

取消计划的关机或重启:

shutdown -c

这将取消之前计划的关机或重启操作。

5. uname:查看系统信息

uname 是一个命令行命令,用于查看系统的相关信息。它提供了一种快速获取操作系统和计算机架构等信息的方式。以下是 uname 命令的一些常见用法:

查看操作系统信息:

uname -a

这将显示包括操作系统名称、主机名、内核版本、计算机架构等在内的系统信息。

查看内核版本:

uname -r

这将显示当前操作系统所运行的内核版本号。

查看计算机架构:

uname -m

这将显示计算机的架构,如 x86_64、armv7l 等。

仅显示操作系统名称:

uname -s

这将仅显示操作系统名称,如 Linux、Darwin(macOS)、Windows 等。

压缩和解压缩

1. tar:压缩和解压缩文件

tar 是一个常用的命令行工具,用于打包和解包文件。它能够将多个文件或目录打包成一个单独的文件,也可以从打包文件中解包出文件和目录。以下是 tar 命令的一些常见用法:

创建打包文件:

tar -cvf file1 file2 directory/

这将创建名为 的打包文件,并将 file1、file2 和 directory 目录中的文件打包到其中。选项 -c 表示创建打包文件,-v 表示显示详细的处理信息。

解包打包文件:

tar -xvf

这将从名为 的打包文件中解包出文件和目录。选项 -x 表示解包文件。

显示打包文件内容:

tar -tvf

这将显示打包文件 中的内容列表。选项 -t 表示展示打包文件的内容。

压缩打包文件:

tar -czvf file1 file2 directory/

这将创建名为 的压缩打包文件,同时将 file1、file2 和 directory 目录中的文件打包并压缩到其中。选项 -z 表示使用 gzip 压缩算法。

2. gzip:压缩文件

gzip 是一个常用的命令行工具,用于对文件进行压缩。它使用 gzip 压缩算法来减小文件的大小,并且可以还原为原始文件。以下是 gzip 命令的一些常见用法:

压缩文件:

gzip

这将压缩名为 的文件,并生成一个以 “.gz” 扩展名结尾的压缩文件,即 。

解压缩文件:

gzip -d

这将解压缩名为 的压缩文件,并还原为原始的 文件。选项 -d 表示解压缩。

压缩并保留原文件:

gzip -k

这将压缩名为 的文件,并生成一个压缩文件 ,同时保留原始的 文件。选项 -k 表示保留原文件。

显示压缩比:

gzip -l

这将显示名为 的压缩文件的压缩比、压缩前后的文件大小等信息。选项 -l 表示显示文件信息。

3. gunzip:解压缩文件

gunzip 是一个命令行工具,用于解压缩使用 gzip 压缩算法压缩的文件。使用 gunzip 命令可以还原压缩文件为原始文件。以下是 gunzip 命令的一些常见用法:

解压缩文件:

gunzip

这将解压缩名为 的压缩文件,并还原为原始的 文件。gunzip 命令会替换原始的压缩文件。

保留压缩文件:

gunzip -k

这将解压缩名为 的压缩文件,同时保留原始的压缩文件。选项 -k 表示保留原压缩文件。

解压缩多个文件:

gunzip

这将同时解压缩名为 和 的压缩文件,并还原为原始的文件。

包管理

1. apt/apt-get:Debian/Ubuntu 包管理器

apt 和 apt-get 是在 Debian 和 Ubuntu 等基于 Debian 的 Linux 发行版中常用的包管理器。它们用于在命令行界面上安装、升级、移除软件包,并管理软件源以获取更新的软件包。是 apt/apt-get 命令的一些常见用法:

更新软件包列表:

sudo apt update

这将从配置的软件源中获取最新的软件包列表,以便后续的安装和升级操作可以使用最新的信息。

安装软件包:

sudo apt install package-name

这将安装名为 package-name 的软件包及其相关依赖项。你可以指定多个软件包名称进行批量安装。

升级软件包:

sudo apt upgrade

这将升级已安装的所有软件包到最新可用的版本。在升级过程中,apt 会询问是否继续,并显示要升级的软件包列表。

移除软件包:

sudo apt remove package-name

这将移除已安装的名为 package-name 的软件包,但不会删除其配置文件。

搜索软件包:

apt search package-name

这将搜索并显示与 package-name 相关的可用软件包列表。

2. yum/dnf:Red Hat/CentOS 包管理器

yum 和 dnf 是在 Red Hat、CentOS 和 Fedora 等基于 Red Hat 的 Linux 发行版中常用的包管理器。它们用于在命令行界面上安装、升级、移除软件包,并管理软件源以获取更新的软件包。以下是 yum/dnf 命令的一些常见用法:

更新软件包列表:

sudo yum update

或者

sudo dnf update

这将从配置的软件源中获取最新的软件包列表,并更新已安装的软件包到最新可用的版本。

安装软件包:

sudo yum install package-name

或者

sudo dnf install package-name

这将安装名为 package-name 的软件包及其相关依赖项。你可以根据需要指定多个软件包

名称进行批量安装。

升级软件包:

sudo yum upgrade

或者

sudo dnf upgrade

这将升级已安装的所有软件包到最新可用的版本。在升级过程中,yum/dnf 会询问是否继续,并显示要升级的软件包列表。

移除软件包:

sudo yum remove package-name

或者

sudo dnf remove package-name

这将移除已安装的名为 package-name 的软件包,但不会删除其配置文件。

搜索软件包:

yum search package-name

或者

dnf search package-name

这将搜索并显示与 package-name 相关的可用软件包列表。

其他常用命令

1. date:显示或设置系统时间

date 是一个常用的命令行工具,用于显示或设置系统的日期和时间。

以下是 date 命令的一些常见用法:

显示当前日期和时间:

date

这将显示当前系统的日期和时间。

显示当前日期:

date +%Y-%m-%d

这将显示当前系统的日期,格式为年-月-日(例如:2023-08-04)。

显示当前时间:

date +%H:%M:%S

这将显示当前系统的时间,格式为小时:分钟:秒(例如:11:13:25)。

设置系统日期和时间:

sudo date -s "2023-08-04 10:30:00"

这将设置系统的日期和时间为指定的日期和时间。需要管理员权限,因此使用 sudo。日期和时间的格式必须正确,并用双引号括起来。

2. echo:在终端输出文本

echo 是一个常用的命令行工具,用于在终端输出文本信息或变量的值。以下是 echo 命令的一些常见用法:

输出字符串:

echo "Hello, World!"

这将在终端输出字符串 “Hello, World!”。

输出变量的值:

name="John"

echo "My name is $name"

这将定义一个名为 name 的变量,并输出 “My name is John”,其中 $name 表示变量的值。

输出换行符:

echo "Line 1"

echo "Line 2"

这将分别输出 “Line 1” 和 “Line 2”,每行一个。

输出到文件:

echo "Hello, World!" >

这将将文本输出到名为 的文件中。如果文件不存在,将创建该文件;如果文件已存在,将覆盖原有内容。

追加到文件:

echo "Line 1" >>

echo "Line 2" >>

这将将文本追加到名为 的文件末尾。如果文件不存在,将创建该文件;如果文件已存在,将在文件末尾追加内容。

3. history:查看命令历史记录

history 命令用于在终端中查看以前执行过的命令的历史记录。它可以显示最近执行的命令,并可以在需要时重新执行或编辑以前的命令。以下是 history 命令的一些常见用法:

显示最近执行的命令历史记录:

history

这将在终端中显示最近执行过的命令列表,按照执行顺序编号显示。默认情况下,会显示最近执行的几十条命令,具体数量可以通过设置 HISTSIZE 环境变量来调整。

重新执行历史记录中的命令:

!n

这将重新执行编号为 n 的命令,其中 n 是命令在历史记录中的编号。例如,执行 !10 会

重新执行历史记录中编号为 10 的命令。

搜索历史记录中的命令:

history | grep "keyword"

这将搜索历史记录中包含关键词 “keyword” 的命令,并显示匹配的命令列表。

使用感叹号 (!) 快速执行历史记录中的命令:

!string

这将执行最近执行的以 “string” 开头的命令。例如,执行 !echo 会执行最近执行的以 “echo”

开头的命令。

使用箭头键浏览历史记录:

按上箭头键 (↑) 可以向上浏览历史记录中的命令,并按下箭头键 (↓) 可以向下浏览历史记录。使用箭头键可以方便地查找以前执行的命令,并重新执行或编辑它们。

使用技巧和注意事项

命令参数的使用

命令参数是在执行命令时提供给命令的额外信息,用于修改命令的行为或提供操作上下文。命令参数通常通过在命令后面添加特定的标记或数值来指定。

以下是命令参数的几种常见使用方式:

短选项(Short Options):

使用单个短划线 (-) 作为前缀,后跟一个字母或字母组合来表示选项。

例如,ls -l 中的 -l 表示以长格式显示文件列表。

长选项(Long Options):

使用双短划线 (–) 作为前缀,后跟一个单词或短语来表示选项。

例如,git commit --message "Initial commit" 中的 --message 表示指定提交信息。

参数(Arguments):

参数是命令执行所需的额外输入,它们通常是在选项之后提供的信息。

例如,cp file1 file2 中的 file1 和 file2 分别是源文件和目标文件的参数。

值(Values):

有些选项需要提供一个值或参数,可以使用等号 (=) 将选项和值连接起来。

例如,grep -i "hello" 中的 -i 表示忽略大小写,并将值 “hello” 作为要搜索的模式。

多个选项的组合:

多个选项可以组合在一起使用,例如 -l -a 可以简写为 -la。在某些情况下,组合在一起的选项可能需要单独的参数或值。

重定向和管道操作

重定向(Redirection):

重定向允许你将命令的输入或输出重定向到文件或设备中,而不是直接与终端交互。

>:将命令的输出重定向到文件,覆盖原有内容。

例如:ls > 将目录列表输出到名为 的文件中。如果 存在,则会覆盖现有内容。

>>:将命令的输出追加到文件中。

例如:echo "Hello" >> 将字符串 “Hello” 追加到 文件末尾。

<:将文件中的内容作为命令的输入。

例如:sort < 从 文件中读取内容,并对其进行排序。

2>:将标准错误输出重定向到文件。

例如:command 2> 将命令的错误信息输出到名为 的文件中。

管道(Pipeline):

管道可以将一个命令的输出作为另一个命令的输入,用于在多个命令之间传递数据和进行数据处理。

使用竖线符号 (|) 将命令连接在一起,前一个命令的输出将成为后一个命令的输入。

例如:ls | grep "file" 将目录列表的输出作为 grep 命令的输入,同时过滤出包含 “file” 的行。

管道操作可以通过连续使用多个命令来进行复杂的数据处理操作,充分发挥命令行工具的威力。

使用通配符进行模式匹配

通配符是用于进行模式匹配的特殊字符,可以帮助你在命令行中批量选择符合特定模式的文件或目录。

星号(*):匹配任意字符,包括零个或多个字符。

例如,ls *.txt 匹配当前目录下所有以 .txt 结尾的文件。

问号(?):匹配单个字符。

例如,ls file?.txt 匹配 、、 等文件。

中括号([ ]):匹配括号内的任意一个字符。

例如,ls file[123].txt 匹配 、、 等文件。

花括号({ }):用于生成可能的匹配项组合。

例如,mv file{1,2}.txt destination/ 可以将 和 移动到 destination 目录。

反斜杠():用于转义特殊字符,使其不被解释为通配符。

例如,ls file?.txt 匹配 “file?.txt” 这个具体的文件名,而不是匹配一个字符。

使用命令替换和变量

在命令行中,可以使用命令替换和变量来处理和传递数据。下面我将介绍命令替换和变量的基本概念以及它们在命令行中的使用方式。

命令替换

命令替换允许你执行命令并将其输出作为字符串插入到另一个命令中。

使用反引号( )进行命令替换。例如:

result=`command`

echo $result

使用美元符号和圆括号($( ))进行命令替换。例如:

result=$(command)

echo $result

在上述示例中,command 是需要执行的命令,它的输出结果会被赋值给变量 result,然后可以在后续命令中引用该变量。

变量:

变量是用来存储数据的值,在命令行中可以使用变量来存储和传递数据。

使用等号(=)来赋值给变量。例如:

variable=value

使用美元符号($)来引用变量的值。例如:

echo $variable

在命令行中,你可以创建自己的变量,并将其用于命令参数、字符串拼接等场景。

示例:

使用命令替换:

current_date=$(date +%Y-%m-%d)

echo "Today's date is $current_date"

在这个示例中,date +%Y-%m-%d 是一个获取当前日期的命令,通过命令替换将日期赋值给变量 current_date,然后在字符串中使用变量打印出当前日期。

使用变量进行字符串拼接:

name="John"

greeting="Hello, $name!"

echo $greeting

在这个示例中,将变量 name 的值设置为 “John”,然后使用变量进行字符串拼接,将问候语赋值给变量 greeting,最后通过 echo 命令打印出问候语。


本文标签: 文件 命令 目录 使用 用于