Post

Linux 基础命令

Linux 基础命令

Linux 是一种典型的 Unix 类操作系统,基于命令行操作,以下是一些常用的 Linux 基础命令:

  1. ls:列出目录内容
  2. cd:切换目录
  3. mkdir:创建新目录
  4. rm:删除文件或目录
  5. cp:复制文件或目录
  6. mv:移动文件或目录
  7. touch:创建新文件
  8. cat:连接、显示文件内容
  9. grep:文本搜索工具
  10. ping:测试网络连接
  11. ifconfig:查看和配置网络接口状态
  12. top:实时显示进程状态
  13. ps:列出当前系统进程
  14. kill:结束某个进程
  15. tar:打包或解压缩文件

以上只是常用命令的部分,还有很多其他的 Linux 命令可以使用。

ls 列出目录内容

“ls” 是一个常用的命令,用于显示当前工作目录中的文件和子目录列表。以下是 “ls” 命令的详细解释:

  • 格式:ls [选项] [文件/目录]
  • 选项:ls 命令支持许多选项,其中一些最常用的选项包括:
    • -l:以长格式列表方式显示文件和目录(包括权限、拥有者、大小、修改时间等信息)
    • -a:显示所有文件和目录,包括隐藏文件和目录
    • -h:人性化地显示文件和目录大小,例如使用 MB、GB 等单位
    • -r:反向排序输出结果
    • -t:按时间排序输出结果,最新的文件或目录将排在前面
  • 文件/目录:可以指定一个或多个文件或目录来进行查看,如果不指定,则默认为当前工作目录。

举个例子,如果要查看当前工作目录下的所有文件和目录,可以输入 “ls” 命令,在命令行界面上会列出所有文件和子目录的名称。如果要查看详细的信息,可以输入 “ls -l” 命令,会列出每个文件和目录的权限、拥有者、大小、修改时间等信息。

cd 切换目录

“cd” 命令用于更改当前工作目录。以下是 “cd” 命令的详解:

  • 格式:cd [目录路径]
  • 目录路径:要切换到的目录路径,可以是绝对路径或相对路径。如果不指定目录路径,则默认更改为当前用户的主目录。

举个例子,如果当前工作目录为 “/home/user1/Documents”,如果要切换到该用户的主目录 “/home/user1”,可以输入 “cd” 命令或 “cd ~” 命令;如果要切换到 “/home/user1/Desktop” 目录,可以输入 “cd Desktop” 或 “cd /home/user1/Desktop” 命令。

此外,还有一些特殊符号可以在 “cd” 命令中使用来快速导航:

  • . :代表当前目录,例如 “cd .” 命令不会进行任何操作。
  • .. :代表上级目录,例如 “cd ..” 命令可以将当前目录切换到其父目录。
  • - :代表上一个工作目录,例如 “cd -“ 命令可以切换回之前的工作目录。

需要注意的是,如果指定的目录不存在或没有访问权限,”cd” 命令将会失败并输出错误信息。因此,在使用 “cd” 命令时需要确保目录存在并且有正确的访问权限。

mkdir 创建新目录

“mkdir” 命令用于创建新的目录。以下是 “mkdir” 命令的详解:

  • 格式:mkdir [选项] 目录名
  • 选项:mkdir 命令支持许多选项,其中一些最常用的选项包括:
    • -p:递归地创建目录和子目录,例如可以使用 “mkdir -p dir1/dir2/dir3” 一次性创建多级目录。
    • -m:指定新创建目录的权限,例如可以使用 “mkdir -m 755 dirname” 创建新目录并将其权限设置为 755。
  • 目录名:要创建的目录名称。

举个例子,如果想在当前工作目录下创建一个名为 “test” 的新目录,可以输入 “mkdir test” 命令。如果想要一次性创建多级目录,可以使用 “mkdir -p dir1/dir2/dir3” 命令来创建名为 “dir1/dir2/dir3” 的目录树。如果需要指定新目录的权限,则可以使用 “mkdir -m 755 dirname” 命令,并将目录权限设置为 755。

需要注意的是,如果目录已经存在,”mkdir” 命令将会失败并输出错误信息。因此,在使用 “mkdir” 命令时需要确保目录不存在或者使用 “-p” 选项递归创建目录。

rm 删除文件或目录

“rm” 命令用于删除文件或目录。以下是 “rm” 命令的详解:

  • 格式:rm [选项] 文件/目录
  • 选项:rm 命令支持许多选项,其中一些最常用的选项包括:
    • -f:强制删除文件或目录,不提示确认。
    • -r:递归删除目录及其子目录和文件。
    • -i:交互式删除,删除每个文件或目录前都会提示确认。
  • 文件/目录:要删除的文件或目录名称。

举个例子,如果要删除当前工作目录下名为 “test.txt” 的文件,可以输入 “rm test.txt” 命令。如果要删除一个目录及其所有子目录和文件,可以使用 “rm -r dirname” 命令,注意需要谨慎操作以避免误删重要数据。如果需要在删除前进行确认,可以使用 “-i” 选项,例如 “rm -i filename” 命令会在删除文件前提示确认。

需要注意的是,删除文件或目录时需要确保有足够的权限,并且慎重考虑是否真的需要删除它们,因为一旦删除将无法恢复。在使用 “rm” 命令时建议先进行备份并且谨慎操作。

cp 复制文件或目录

“cp” 命令用于复制文件或目录。以下是 “cp” 命令的详解:

  • 格式:cp [选项] 源文件/目录 目标文件/目录
  • 选项:cp 命令支持许多选项,其中一些最常用的选项包括:
    • -r:递归复制目录及其子目录和文件。
    • -i:交互式复制,复制每个文件或目录前都会提示确认。
    • -p:保留源文件或目录的权限、所有权和时间戳等信息。
  • 源文件/目录:要复制的源文件或目录名称。
  • 目标文件/目录:要将源文件或目录复制到的目标位置。

举个例子,如果要将当前工作目录下名为 “test.txt” 的文件复制到 /home/user1/ 目录中,可以输入 “cp test.txt /home/user1/” 命令。如果要复制一个目录及其所有子目录和文件,可以使用 “cp -r sourcedir destdir” 命令。如果需要在复制前进行确认,可以使用 “-i” 选项,例如 “cp -i filename /path/to/destination/” 命令会在复制文件前提示确认。如果需要保留源文件或目录的权限和所有权等信息,可以使用 “-p” 选项,例如 “cp -rp sourcedir destdir” 命令会递归复制目录并保留其所有权、权限和时间戳等信息。

需要注意的是,在复制目录时,需要使用 “-r” 选项递归复制子目录和文件,并确保复制到的目标位置具有足够的权限。在使用 “cp” 命令时建议谨慎操作以避免误操作。

mv 移动文件或目录

“mv” 命令用于移动或重命名文件或目录。以下是 “mv” 命令的详解:

  • 格式:mv [选项] 源文件/目录 目标文件/目录
  • 选项:mv 命令支持许多选项,其中一些最常用的选项包括:
    • -i:交互式移动或重命名,移动或重命名每个文件或目录前都会提示确认。
    • -f:强制移动或重命名,不提示确认。
  • 源文件/目录:要移动或重命名的源文件或目录名称。
  • 目标文件/目录:要将源文件或目录移动到的目标位置,或者要将源文件或目录重命名为的新名称。

举个例子,如果要将当前工作目录下名为 “test.txt” 的文件移动到 /home/user1/ 目录中,可以输入 “mv test.txt /home/user1/” 命令。如果要将一个目录及其所有子目录和文件移动到另一个位置,可以使用 “mv sourcedir destdir” 命令。如果需要将文件或目录重命名,可以将目标位置指定为新名称,例如 “mv oldname newname” 命令将文件或目录 “oldname” 重命名为 “newname”。

需要注意的是,在移动或重命名文件或目录时,需要确保源文件或目录存在,并且目标位置具有足够的权限。在使用 “mv” 命令时建议谨慎操作以避免误操作,并且不要将文件移动到其他程序正在使用的目录中以避免出现意外错误。

touch 创建新文件

“touch” 命令用于创建新文件或更新已有文件的修改时间。以下是 “touch” 命令的详解:

  • 格式:touch [选项] 文件
  • 选项:touch 命令支持许多选项,其中一些最常用的选项包括:
    • -a:只更改文件的访问时间。
    • -m:只更改文件的修改时间。
    • -c:只在文件不存在时才创建该文件。
    • -t:指定要设置的时间戳,格式为 [[CC]YY]MMDDhhmm[.SS]
  • 文件:要创建或更新时间戳的文件名称。

举个例子,如果要在当前工作目录下创建一个名为 “test.txt” 的空文件,可以输入 “touch test.txt” 命令。如果要更新已有文件的修改时间,可以使用 “touch filename” 命令。如果需要只更改文件的访问时间或修改时间,可以使用 “-a” 或 “-m” 选项,例如 “touch -a filename” 命令只更改文件的访问时间。如果希望只在文件不存在时才创建该文件,则可以使用 “-c” 选项,例如 “touch -c filename” 命令。如果需要指定要设置的时间戳,则可以使用 “-t” 选项,例如 “touch -t 202201011200.00 filename” 命令将文件的时间戳设置为 2022 年 1 月 1 日 12:00。

需要注意的是,在使用 “touch” 命令时,如果指定的文件不存在,则会创建一个空文件。在更新时间戳时,需要确保具有足够的权限,并且谨慎操作以避免误操作。

cat 连接、显示文件内容

“cat” 命令用于显示文件内容或将多个文件合并成一个文件。以下是 “cat” 命令的详解:

  • 格式:cat [选项] 文件
  • 选项:cat 命令支持许多选项,其中一些最常用的选项包括:
    • -n:在输出文件的每一行前插入行号。
    • -b:在输出文件的非空行前插入行号。
    • -s:压缩连续空白行为一行。
    • -A:显示特殊字符(如文本中的制表符和换行符)。
  • 文件:要显示内容或合并的文件名称。

举个例子,如果要查看当前工作目录下名为 “test.txt” 的文件内容,可以输入 “cat test.txt” 命令。如果要合并两个文件 “file1” 和 “file2” 并将结果写入新文件 “output” 中,可以使用 “cat file1 file2 > output” 命令。如果需要在输出文件的每一行前插入行号,则可以使用 “-n” 选项,例如 “cat -n filename” 命令会输出带行号的文件内容。如果需要将连续空白行压缩成一行,则可以使用 “-s” 选项,例如 “cat -s filename” 命令会输出压缩后的文件内容。

需要注意的是,在显示文件之前,需要确保已经具有足够的权限来访问文件。在合并文件时,需要确保所有要合并的文件存在,并且目标文件没有被保护或已经存在,以避免数据丢失。

grep 文本搜索工具

grep 命令是一种文本搜索工具,常用于从文件中查找某个特定的字符串或者正则表达式,并且可以显示匹配行的内容。

以下是 grep 命令的基本语法:

1
grep [options] pattern [file]

其中,pattern 为要匹配的模式,可以是一个字符串或者一个正则表达式;file 则为要搜索的文件名。

下面是常用的一些选项:

  • -i: 忽略大小写。
  • -v: 显示不匹配的行。
  • -n: 显示匹配行的行号。
  • -l: 只显示包含匹配项的文件名。
  • -c: 统计匹配行的数量。
  • -r: 在目录及其子目录下递归搜索。

例如,以下命令将在文件 example.txt 中搜索所有包含字符串 “hello” 的行:

1
grep "hello" example.txt

如果要忽略大小写,可以使用 -i 选项:

1
grep -i "hello" example.txt

如果要显示匹配行的行号,可以使用 -n 选项:

1
grep -n "hello" example.txt

如果要递归搜索目录 mydir 下的所有文件,可以使用 -r 选项:

1
grep -r "hello" mydir/

以上是 grep 命令的一些基本用法和选项。更多信息可以参考 grep 的帮助文档。

ping 测试网络连接

ping 命令用于检查网络连接是否正常,可以测试与目标主机之间的连通性和网络延迟。它发送一个 ICMP ECHO 请求消息到指定的目的地,并等待接收一个 ICMP ECHO 响应消息。

以下是 ping 命令的基本语法:

1
ping [options] target

其中,target 可以是 IP 地址或者域名,表示需要对这个地址进行 ping 测试。

下面是一些常用的选项:

  • -c count: 指定要发送的 ICMP 请求消息的次数。
  • -i interval: 指定发送 ICMP 请求消息的时间间隔(以秒为单位)。
  • -s size: 指定每个 ICMP 请求消息的数据包大小(默认为 56 字节)。
  • -t ttl: 指定 ICMP 数据报中的 Time To Live 值(默认为 64)。
  • -w deadline: 指定等待响应的最大时间(以秒为单位)。

例如,以下命令将向 IP 地址为 192.168.1.1 发送 5 个 ICMP 请求消息:

1
ping -c 5 192.168.1.1

如果想要持续 ping 一个主机,可以使用 -t 选项:

1
ping -t google.com

以上是 ping 命令的一些基本用法和选项。更多信息可以参考 ping 的帮助文档。

ifconfig 查看和配置网络接口状态

ifconfig(interface configuration)命令是用于配置和显示网络接口信息的工具。它可以列出当前系统中所有的网络接口,包括以太网、无线网络、回环接口等,并且可以查看和修改这些接口的 IP 地址、子网掩码、MAC 地址等配置信息。

以下是 ifconfig 命令的基本语法:

1
ifconfig [options] [interface]

其中,interface 表示要操作的网络接口的名称,如果省略则默认显示所有接口的信息。

下面是一些常用的选项:

  • -a: 显示所有接口的信息,包括未激活的接口。
  • up: 启动指定的接口。
  • down: 关闭指定的接口。
  • inet addr: 指定 IPv4 地址。
  • netmask mask: 指定子网掩码。
  • hw ether MAC: 指定 MAC 地址。

例如,以下命令将显示所有网络接口的信息:

1
ifconfig -a

如果想要启动一个被禁止的网络接口(如 eth0),可以使用以下命令:

1
ifconfig eth0 up

如果想要修改一个接口的 IP 地址和子网掩码,可以使用以下命令:

1
ifconfig eth0 inet 192.168.1.10 netmask 255.255.255.0

以上是 ifconfig 命令的一些基本用法和选项。需要注意的是,ifconfig 命令已经被新的 ip 命令取代,因此在一些新的 Linux 发行版中可能已经不再支持 ifconfig 命令。

top 实时显示进程状态

top 命令用于实时监控系统的进程和资源使用情况,可以查看哪些进程占用了 CPU 时间、内存、虚拟内存等系统资源,并且可以按照不同的指标进行排序。

以下是 top 命令的基本语法:

1
top

运行该命令后,会显示当前系统中所有进程的信息,按照 CPU 占用率进行排序,上方的几行显示了系统的总体信息,包括系统负载、运行进程数、CPU 使用情况、内存使用情况等。下面的每一行显示了一个具体的进程的信息,包括进程 ID、占用 CPU 的百分比、内存占用量、进程所属用户等。

下面是一些常用的交互命令:

  • q: 退出 top 命令。
  • k: 结束某个进程,需要输入要终止的进程 ID。
  • f: 显示或隐藏需要显示的字段,可以选择要显示的列,如 PID、CPU、MEM 等。
  • r: 修改某个进程的优先级,需要输入要修改的进程 ID 和新的优先级值。

例如,以下命令将启动 top 命令并按照内存占用率进行排序:

1
top -o %MEM

如果想要显示更多的进程信息,可以使用 f 命令选择要显示的字段:

1
top -o %CPU

以上是 top 命令的一些基本用法和选项。需要注意的是,top 命令只能在交互式命令行环境下使用,如果需要在脚本中监控系统进程和资源使用情况,可以考虑使用其他工具,如 ps 命令等。

ps 列出当前系统进程

ps 命令用于列出当前系统中运行的进程信息,可以查看进程 ID、进程名称、占用 CPU 时间、内存等资源的情况,并且可以按照不同的指标进行排序。

以下是 ps 命令的基本语法:

1
ps [options]

默认情况下,ps 命令只会显示当前用户自己运行的进程信息。如果需要查看所有进程的信息,需要使用 -e 或者 -A 选项。例如,以下命令将列出当前系统中所有进程的信息并按照进程 ID 排序:

1
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-pid

其中,-e 选项表示要显示所有进程的信息,-o 选项指定要显示的字段,--sort 选项指定排序方式。上述命令将显示 PID、父进程 ID、进程名、CPU 使用率、内存使用率等信息,并按照进程 ID 从大到小进行排序。

下面是一些常用的选项:

  • -e: 显示所有进程的信息。
  • -A: 显示所有进程的信息,与 -e 选项类似。
  • -f: 显示完整的进程信息,包括进程的 UID、GID、PPID 等。
  • -u username: 显示指定用户的进程信息。
  • -p pidlist: 显示指定 PID 列表对应的进程信息。

例如,以下命令将显示当前用户运行的所有进程:

1
ps -u $USER

如果想要查看某个进程的详细信息,可以使用 -f 选项:

1
ps -ef | grep nginx

以上是 ps 命令的一些基本用法和选项。需要注意的是,在不同的操作系统中,ps 命令的参数和输出格式可能有所不同。

kill 结束某个进程

kill 命令用于终止指定进程或者发送信号给指定进程。可以使用 ps 命令查找要终止的进程的 PID,然后使用 kill 命令向该进程发送终止信号。

以下是 kill 命令的基本语法:

1
kill [options] pid ...

其中,pid 表示要终止的进程的 PID。多个 PID 可以用空格分隔。如果在命令行中不指定任何选项,则默认向进程发送 SIGTERM 信号,让其正常退出。

下面是一些常用的选项:

  • -l: 列出所有可用的信号名称。
  • -9: 强制终止进程,使用 SIGKILL 信号。
  • -s signal: 指定要发送的信号类型(使用信号名称或数字)。

例如,以下命令将向进程编号为 12345 发送 SIGTERM 信号,让其正常退出:

1
kill 12345

如果想要强制终止某个进程,可以使用 -9 选项:

1
kill -9 12345

如果想要发送其他类型的信号,可以使用 -s 选项,如向进程 12345 发送 SIGUSR1 信号:

1
kill -s SIGUSR1 12345

以上是 kill 命令的一些基本用法和选项。需要注意的是,强制终止进程可能会导致数据丢失或者出现其他问题,应该尽量避免使用 -9 选项。

tar 打包或解压缩文件

tar(tape archive)命令用于在 Linux 中创建和解压归档文件,可以将多个文件或目录打包成一个文件,并且可以使用不同的压缩算法进行压缩。 tar 命令经常用于备份数据以及在多台服务器之间传输文件。

以下是 tar 命令的基本语法:

1
tar [options] [archive_name] [files/dirs]

其中,archive_name 表示要创建的归档文件的名称,files/dirs 则表示要添加到归档文件中的文件或目录列表。如果没有指定归档文件名称,则默认会将归档文件输出到标准输出。如果同时指定了归档文件名称和文件列表,则 tar 命令将把这些文件添加到归档文件中。

下面是一些常用的选项:

  • -c: 创建新的归档文件。
  • -x: 从归档文件中提取文件。
  • -v: 显示详细信息,包括要添加或提取的文件列表。
  • -f file: 指定归档文件的名称。
  • -z: 对归档文件进行 gzip 压缩。
  • -j: 对归档文件进行 bzip2 压缩。
  • -C dir: 指定要操作的目录。

例如,以下命令将创建名为 myarchive.tar 的归档文件,并将目录 mydir 中的所有文件添加到该归档文件中:

1
tar -cvf myarchive.tar mydir/

如果想要将归档文件解压到当前目录下,可以使用以下命令:

1
tar -xvf myarchive.tar

如果想要将归档文件进行 bzip2 压缩,并且指定要操作的目录为 /home,可以使用以下命令:

1
tar -cjvf home.tar.bz2 -C / home/

以上是 tar 命令的一些基本用法和选项。需要注意的是,在不同的操作系统中,tar 命令的参数和输出格式可能有所不同。

vim

Vim(Vi IMproved) 是一个高级的文本编辑器,是 Unix 和类 Unix 系统中最受欢迎的编辑器之一。它可以处理多种文件类型,包括纯文本、代码等,并且支持多种操作模式和自定义配置,可以提高编辑效率。

以下是 Vim 的一些基本概念和使用方法:

  1. 操作模式:Vim 有三种操作模式,分别是命令模式(Command mode)、插入模式(Insert mode)和视觉模式(Visual mode)。命令模式用于执行命令、移动光标等操作;插入模式用于输入文本;视觉模式用于选择文本。
  2. 命令:在命令模式下,可以使用各种命令进行操作,如移动光标、删除文本、复制粘贴等。常用命令包括 h/j/k/l 分别表示左/下/上/右方向键;i/a/o 分别表示插入、在光标后插入、在行尾插入;dd 表示删除整行;yy 表示复制整行;p 表示将复制的内容粘贴到当前位置。
  3. 配置文件:Vim 使用 .vimrc 文件来存储用户自定义设置和插件配置。可以通过修改该文件来实现自定义配置,如设置显示行号、设置缩进等。
  4. 插件:Vim 支持多种插件,可以通过安装插件来扩展其功能。一些常用的插件包括 NERDTree(文件浏览器)、vim-airline(状态栏增强)、YouCompleteMe(自动补全)等。

以下是 Vim 的一些使用方法:

  1. 打开文件:使用 vim 命令加上要打开的文件名称即可打开,如 vim test.txt
  2. 切换模式:在命令模式下按下 i/a/o 进入插入模式,在插入模式下按下 Esc 进入命令模式,在命令模式下按下 v 进入视觉模式。
  3. 保存文件:在命令模式下按下 :w 即可保存文件,若要保存并退出可以按下 :wq。
  4. 查找和替换:在命令模式下按下 / 进入查找模式,输入要查找的内容后按下 Enter;在命令模式下按下 :s/old/new/g 进行替换,其中 old 表示要被替换的文本,new 表示替换成的文本,g 表示全局匹配。
  5. 多窗口操作:在命令模式下按下 :sp 可以在当前窗口中水平分割一个新窗口,按下 :vsp 可以在当前窗口中垂直分割一个新窗口,使用 Ctrl+w 进行窗口切换。

以上是 Vim 的一些基本概念和使用方法。需要注意的是,由于 Vim 具有较高的学习曲线,初学者可能需要花费一些时间来适应其操作方式。

This post is licensed under CC BY 4.0 by the author.