Linux 指南/备忘单/教程(命令、目录等)

2025-05-25

Linux 指南/备忘单/教程(命令、目录等)

这是一篇 Linux 指南,可能会遗漏一些内容,但我会尽力将所有重要内容都添加到这篇文章中。这篇文章可能有点长,请耐心等待。

请注意,我仅提供了需要理解命令的示例,因为我希望您尝试一下,以便更好地理解它。最后,我将分享一些网站,可以让您快速在浏览器中尝试命令。

目录


命令语法

此命令语法对于您在 Linux 中使用的每个命令都是相同的。

command [-argument] [-argument] [--argument] [file]
示例:
ls列出当前目录中的文件
ls -l以“长”格式列出文件
ls -l--color 同上,但输出为彩色
catfilename 显示文件内容
cat -nfilename 显示文件内容,带有行 nu


自学钓鱼

从这个开始的目的 - 每次忘记某些命令时都不需要参考某些内容,因为 Linux 中有很多命令,因此有时很容易忘记。

(Manual)命令man将用于此目的。要获取 man 命令的帮助,请在查看手册页时输入字母 h。以下是简明版本

Enter - 向下移动一行。Space
- 向下移动一页。g
- 移至页面顶部。G
- 移至页面底部。q
- 退出。

例如 现在你对此有了想法,让我们继续。
替代文本


管道

Linux 有大量的小实用程序。程序员很聪明,不是吗?因此,作为一名程序员,你需要高效地利用所有这些实用程序。

管道符|用于将两个或多个命令串联在一起。第一个命令的输出将被推送到下一个命令;如果存在第二个管道符,则第二个命令的输出将被推送到下一个命令,依此类推。
我们来看一个例子。



[kedar@www.masswerk.at:2]$ ls -l ~ | grep '^.....w'
drwxrwxr-x 3 kedar users 4096 Jan 21 04:12 dropbox


Enter fullscreen mode Exit fullscreen mode

这将识别您的主目录中该组具有写入权限的所有文件。


重定向

很多时候,你会希望将命令的输出保存到文件中,而不是将其显示在屏幕上。假设创建一个文件,其中包含目录中所有 .py 文件的列表。

ls -l /home/vic/pyproc/*.py > pyfiles.txt
(或者)
ls -l /home/vic/pyproc/*.py >> pyfiles.txt

记住

  1. >
  2. >>用于追加

这与管道非常匹配。


基本Linux命令

以下是一些基本但必要的命令。请记住,命令区分大小写。括号中的内容也区分大小写。

  1. ls- 列出目录内容。您将使用 ls 显示有关文件和目录的信息。
  2. cd [dir]- 将当前目录更改为 dir。如果执行 cd 命令时未指定目录,则 cd 会将当前目录更改为你的主目录。这是你在系统中导航的方式。
  3. pwd(打印工作目录)- 显示当前工作目录名称。如果您不知道当前所在目录,pwd 会告诉您。
  4. cat [file]- 连接并显示文件。这是您运行来查看文件内容的命令。
  5. echo [argument]- 在屏幕上显示参数。
  6. mancommand - 显示 command 的在线手册。输入 q 可退出查看手册页。man 命令提供的文档通常称为“手册页”。
  7. exitlogout、 或Ctrl-d- 退出 shell 或当前会话。
  8. clear- 清除屏幕。
  9. which [command name]- 如果你想知道命令的确切位置,你可以使用which命令
  10. $PATH- PATH 环境变量包含可执行命令的目录列表。您可以使用它,因为[kedar@www.masswerk.at:2]$ echo $PATH您得到的结果如下/bin /sbin /usr/bin ~

创建或删除目录

目录是提供树状结构的简单文件夹。

  • mkdir- 创建目录
    mkdir [-p] directory- 创建目录。使用 -p(父级)
    选项创建中间目录。

  • rmdir- 删除目录
    rmdir [-p] directory- 删除目录。使用 -p
    (父目录)选项可删除所有指定的目录。rmdir 仅
    删除空目录。要删除目录及其内容,
    请使用 rm。

  • rm -rf directory-r递归删除目录以及
    该目录结构中的所有文件和目录。请谨慎使用。使用命令行时,没有“回收站”可以快速恢复文件。一旦删除,文件就消失了。


使用目录

通常我们使用名称来访问目录。在 Linux 中,我们使用符号。

  1. .这个目录。
  2. ..父目录。
  3. /目录分隔符。目录以正斜杠结尾,这通常被假定

目录分隔符是可选的,即相同。
$ cd /bin/abc
$ cd /bin/abc/

您可以查看下面的示例以更好地理解它

替代文本

请注意,这cd .不会执行任何操作,因为它只是当前目录。


数据排序

最简单的形式是按字母顺序对文本行进行排序。SORT 命令用于对文件进行排序,按特定顺序排列记录。默认情况下,sort 命令会假设文件内容为 ASCII 码。使用 sort 命令中的选项,它也可以按数字顺序排序。

假设我们有一个包含字母的文件



[kedar@www.masswerk.at:2]$ cat > file.txt
a
c
s
r
n
d
h


Enter fullscreen mode Exit fullscreen mode


[kedar@www.masswerk.at:2]$ sort file.txt

Output :
a
c
d
h
n
r
s


Enter fullscreen mode Exit fullscreen mode

让我们看一些排序选项

  • sort -k F file- 按键排序。-k 后面的 F 是字段编号。
  • sort -r file- 按相反顺序排序。
  • sort -u file- 对文件中的文本进行排序,删除重复的行。
  • sort -n file- 按数字排序

在文件中搜索

grep 在每个文件中搜索 PATTERNS。PATTERNS 是一个或多个以换行符分隔的模式,grep 会打印与模式匹配的每一行。通常,在 shell 命令中使用 grep 时,PATTERNS 应该用引号引起来。

示例:
grep “nfs” /etc/services
这将在文件“/etc/services”中查找包含字符串“nfs”的任何行,并仅显示这些行。

还有一些选择

  • c:这仅打印与模式匹配的行数
  • h:显示匹配的行,但不显示文件名。
  • i:忽略匹配的情况
  • l:仅显示文件名列表。
  • n:显示匹配的行及其行号。
  • v:打印出所有不符合模式的行
  • e exp:使用此选项指定表达式。可以多次使用。
  • f 文件:从文件中获取模式,每行一个。
  • E:将模式视为扩展正则表达式(ERE)
  • w:匹配整个单词
  • o:仅打印匹配行的匹配部分,每个部分位于单独的输出行上。

删除文件

好吧,有时你必须摆脱一些文件,你可以使用rm命令来处理这些结构。

让我们看看经常使用的选项

  • rm -r directory- 递归删除目录及其内容
    。如果要使用 rm 命令删除目录,则必须
    提供 -r 参数。

  • rm -f file- 强制删除,无需确认。
    搜索模式可用于一次性删除多个文件。建议在 执行 rm 命令
    之前,先用 ls 命令仔细检查要删除的文件。

快速余数 - 我们只查看经常使用的选项,还有其他几个选项您也可以使用man命令找到。

压缩文件

我们都知道什么是压缩文件(如果不知道,请在评论区留言或谷歌搜索)。所以,我们直接深入研究命令吧。

  • gzip file- 压缩文件。生成的压缩文件名为 file.gz。
  • gunzip file- 解压缩文件。
  • gzcatzcat- 连接并打印压缩文件。您可以使用 du 命令显示文件占用的空间大小。
  • bzip2 file- bzip2 使用 Burrows-Wheeler 块排序文本压缩算法和哈夫曼编码来压缩文件。其压缩效果通常比 bzip 命令(基于 LZ77/LZ78 的压缩器)更好。只要有可能,每个文件都会被替换为扩展名为 .bz2 的文件。
  • zip .zip-file file-to-compress- zip 是 Unix/Linux 的压缩和文件打包实用程序。每个文件都存储在单独的 .zip 文件(.zip-filename)中,扩展名为 .zip。
  • du- 估计文件使用情况。
  • du-k——以千字节为单位显示大小。
  • du-h——显示
  • bzip2 -d .bz2-file或者bunzip2 {.bz2-file}- 解压缩使用 bzip2 命令创建的文件。
  • unzip .zip-file- 提取 ZIP 档案中的压缩文件。是时候看一个简单的例子了。


$ gzip data
$ du -k data.gz
$ du -k data
15360 data
$ zip mydata.zip mydata.doc
$ zip data.zip .doc
$ bzip2 mydata.doc
$ bzip2 .jpg

Enter fullscreen mode Exit fullscreen mode





目录结构

了解目录结构将有助于您在系统上搜索组件。它可以帮助您回答以下问题:

  • 程序文件位于哪里?
  • 那么配置文件怎么样?
  • 还有一些应用程序的日志文件?
目录 描述
/ 文件系统的无名基座。所有其他目录、文件、驱动器和设备都附加到此根目录。通常(但不正确)将其称为“斜杠”或“/”目录。“/”只是目录分隔符,而不是目录本身。
/垃圾桶 基本命令二进制文件(程序)存储在这里(bash、ls、mount、tar 等)
/启动 引导加载程序的静态文件。
/dev 设备文件。在 Linux 中,硬件设备的访问方式与其他文件一样,它们保存在此目录下。
/ETC 主机特定的系统配置文件。
/家 用户个人主目录的位置(例如 /home/Susan)。
/lib 必备的共享库和内核模块。
/proc 进程信息伪文件系统。内核数据结构的接口。
/根 根(超级用户)主目录。
/sbin 基本系统二进制文件(fdisk、fsck、init 等)。
/tmp 临时文件。所有用户均有权在此处放置临时文件。
/usr 大多数可共享、只读数据(程序、库、文档等)的基本目录。
/usr/bin 大多数用户程序都保存在这里(cc、find、du 等)。
/usr/include 用于编译 C 程序的头文件。
/usr/lib 大多数二进制程序的库。
/usr/本地 “本地”安装的文件。此目录仅在文件存储在网络上的环境中才真正重要。本地安装的文件位于 /usr/local/bin、/usr/local/lib 等目录中。也常用于从源代码安装的软件包,或发行版中未正式发布的软件。
/usr/sbin 非重要系统二进制文件(lpd、useradd 等)
/usr/共享 与架构无关的数据(图标、背景、文档、terminfo、手册页等)。
/usr/src 程序源代码。例如 Linux 内核、源 RPM 包等。
/usr/X11R6 X Window 系统。
/var 可变数据:邮件和打印机线轴、日志文件、锁定文件等。
/选择 可选或第三方软件。

好了,以上就是一些 Linux 系统中常见的目录。现在我们来看看一些应用程序的目录结构。

下面是安装在 /usr/local 中的名为 apache 的应用程序的示例目录结构。

目录 描述
在/usr/local/apache/bin中 应用程序的二进制文件和其他可执行程序。
在/usr/local/apache/etc 应用程序的配置文件。
在/usr/local/apache/lib中 应用程序库。
/usr/local/apache/日志 应用程序日志文件。

如果安装在/opt

目录 描述
/opt/apache/bin 应用程序的二进制文件和其他可执行程序。
/opt/apache/etc 应用程序的配置文件。
/opt/apache/lib 应用程序库。
/opt/apache/日志 应用程序日志文件


寻找事物

以下命令将用于在系统中查找文件。ls如果您已经知道文件的大概位置,则这对于查找文件很有用,但有时您需要更强大的工具,例如:

  • which:显示路径中找到的 Shell 命令的完整路径。例如,如果您想确切知道“grep”命令在文件系统中的位置,可以输入“which grep”。输出应该类似于:/bin/grep

  • whereis:查找命令的程序、源代码和手册页(如果所有信息都可用)。例如,要查找“ls”及其手册页的位置,请输入:“whereis ls”。输出将类似于:
    ls: /bin/ls /usr/share/man/man1/ls.1.gz

  • locate这是在文件系统中任何位置搜索文件的快捷方法。例如,你可以输入以下命令查找所有包含名称“Mozilla”的文件和目录:locate Mozilla

  • find:这是一个非常强大的命令,但有时使用起来有些棘手。它可以用来搜索符合特定模式的文件,以及许多其他类型的搜索。一个简单的示例是:
    find. -name \*mp3
    此示例开始在当前目录“.”及其所有子目录中搜索名称末尾带有“mp3”的文件。

信息命令

如果您想了解当前用户或系统的一些信息,这些命令会很有帮助。您可能不会每天都使用这些命令,但它们很有用。

  • ps列出当前正在运行的进程(程序)。
  • w显示谁登录了以及他们在做什么。
  • id打印你的用户 ID 和组 ID
  • df报告文件系统磁盘空间使用情况(我记得是“磁盘可用空间”)
  • du特定目录中的磁盘使用情况。“du -s”提供当前目录的摘要。
  • top以全屏 GUI 显示 CPU 进程。这是实时查看计算机活动的绝佳方式。输入“Q”退出。
  • free显示系统中可用和已用内存的数量。
  • cat /proc/cpuinfo显示有关您的 CPU 的信息。
  • cat /proc/meminfo显示有关当前内存使用情况的大量信息。
  • uname -a将系统信息打印到屏幕上(内核版本、机器类型等)

文件和目录权限

无论是什么系统或程序,授权都是必需的。它是向用户或组提供访问权限的一种方式。如果您想快速检查当前工作目录中的文件权限,只需使用命令ls -l。运行此命令后,您将在结果中看到类似这样的内容-rw-r--r--,这些就是权限。

权限字符串中的第一个字符显示文件类型。文件类型有三种

  • -常规文件
  • d目录
  • l符号链接

你可以看看下面的图片,你可以从中了解很多。

替代文本

让我们看看文件和目录的 r、w、x 是什么

允许 文件含义 目录含义
允许读取文件。 允许读取目录中的文件名。
允许修改文件。 允许修改目录内的条目。
执行 允许执行文件。 允许访问目录中条目的内容和元数据。

现在您已经了解了权限,让我们看看如何使用chmod命令来操作它们

数字方式

八进制 二进制 细绳 描述
0 000 --- 没有权限
1 001 --x 仅执行
2 010 -w- 只写
3 011 -wx 写入并执行(2 + 1)
4 100 r-- 只读
5 101 处方 读取并执行(4 + 1)
6 110 读写- 阅读和写作(4 + 2)
7 111 读写 读、写、执行(4+2+1)

让我们看一下例子

chmod 754 myfile

7 为所有者,5 为团体,4 为其他。

象征性的 读写 处方 r--
二进制 111 101 100
十进制 7 5 4

符号模式

在数字模式下,您可以更改所有 3 个所有者的权限;而在符号模式下,您可以修改特定所有者的权限。它使用数学符号来修改文件权限。

操作员 描述
+
-
=

各业主代表如下:

用户 外延
用户/所有者
团体
其他
一个 全部

让我们看一个例子

[kedar@www.masswerk.at:2]$ chmod o=rwx myfile:设置其他用户的权限

[kedar@www.masswerk.at:2]$ chmod g+x myfile:给组添加执行权限

同样地,

[kedar@www.masswerk.at:2]$ chmod u-r myfile:删除用户的读取权限


编辑文件

vi 是 Linux 中使用最广泛的编辑器。当然,也有一些其他编辑器,例如 nano,但它的功能更强大。因此,我们先不讨论所有编辑器,而是讨论最常用的那个。
由于这些编辑器的操作并不直观,因此学习起来有一定的难度。熟练掌握它们需要投入一些时间
。现在就开始吧。

  • vi [file]- 编辑文件。
  • vim [file]- 与 vi 相同,但具有更多功能。
  • view [file]- 以只读模式启动 vim。当你想查看文件但不做任何修改时,请使用 view。

Vim 代表“Vi IMproved”。它与 vi 中的命令兼容。vim 的一些附加功能包括语法高亮、通过网络编辑文件以及多级撤销/重做。在许多 Linux 发行版中,当您调用 vi 时,实际上是在运行 vim。了解 vi 的一个好处是,vi 或类似 vim 的 vi 变体始终在系统中可用。

vi 拥有多种模式,例如插入模式、命令模式和行模式。vi 启动后,您将进入命令模式。要随时返回命令模式,请按 Esc 键。在命令模式下输入的字母不会发送到文件,而是会被解释为命令。命令模式允许您在文件中导航、执行搜索、删除文本、复制文本和粘贴文本。

一些常用的导航键绑定。

  • k——最多一行。
  • j——向下一行。
  • h——向左移动一个字符。
  • l——向右一个字符。
  • w——向右一个单词。
  • b——向左移动一个单词。
  • ^——转到行首。
  • $——转到行尾

其中还有很多,你可以查看哈佛的文献。

插入模式

要进入插入模式,请按以下某个键。

  • i——在光标位置插入。
  • I——插入到行首。
  • a——附加在光标位置之后。
  • A - 附加到行尾。进入插入模式后,输入所需文本。完成后,按 Esc 返回命令模式

线路模式

要进入行模式,您必须从命令模式开始,然后输入
冒号 (:)。如果您处于插入模式,请输入 Esc 返回
命令模式,然后输入冒号返回行模式。以下是一些
您需要了解的最常用的行模式命令。

  • :w——写入(保存)文件。
  • :w! - 即使未设置写入权限,也强制保存文件。该命令仅适用于您拥有的文件。
  • :q - 退出。此命令仅在文件未进行任何修改时有效。
  • :q!——退出而不保存对文件所做的更改。
  • :wq! - 写入并退出。修改文件后,此命令确保文件被保存并关闭 vi。
  • :x — 与 :wq 相同。
  • :n - 将光标定位到第 n 行。例如,:5 表示将光标定位到文件的第五行。
  • :$——将光标​​定位在文件的最后一行


调度

如果您需要按计划重复执行任务,可以使用该cron服务。cron 服务每分钟都会检查是否有任何计划任务需要运行,如果有,则运行这些任务。cron 任务通常用于自动化流程或执行例行维护。您可以使用 crontab 命令来安排 cron 任务。

  • cron - 基于时间的作业调度服务。此服务通常在系统启动时启动。
  • crontab——一个用于创建、读取、更新和删除您的工作计划的程序。

要编辑或创建 crontab 文件,请在 Linux shell 提示符下键入以下命令:
$ crontab -e

Cron 会检查所有 crontab 的修改时间,并重新加载已更改的文件。因此,每次修改 crontab 文件时,无需重新启动 cron。

让我们看一个例子

1 2 3 4 5 /path/to/command arg1 arg2- 运行带有参数的命令

(或者)

1 2 3 4 5 /root/backup.sh- 运行脚本

在哪里,

  • 1:分钟(0-59)
  • 2:小时(0-23)
  • 3:天 (0-31)
  • 4:月份(0-12 [12 == 十二月])
  • 5:星期几(0-7 [7 或 0 == 星期日])
  • /path/to/command – 要调度的脚本或命令名称

格式为

* * * * * 要执行的命令
- - - - -
| | | | |
| | | | ----- 星期几 (0 - 7)(星期日 = 0 或 7)
| | | ------- 月份 (1 - 12)
| | --------- 日期 (1 - 31)
| ----------- 小时 (0 - 23)
------------- 分钟 (0 - 59)

你可以在corn guru中玩一下

达斯德夫斯


让一切变得更容易的快捷方式

当您开始更频繁地使用 Linux 时,您会感激这些可以节省大量打字时间的快捷方式。

捷径 描述
向上/向下箭头键 滚动浏览最近输入的命令。你可以滚动回之前的命令,按下 ENTER 键,然后执行该命令,而无需重新输入。
“历史”命令 显示您的完整命令历史记录。
TAB 补全 如果您输入了 Shell 能够识别的部分命令或文件名,按下 TAB 键即可自动补全。尝试输入您常用的 Linux 命令的前几个字符,然后按几次 TAB 键,看看会发生什么。
使用“!”完成最近的命令 试试这个:输入“!”,然后输入最近执行的命令的前几个字母,最后按回车键!例如,输入:find /usr/bin -type f -name m\*……然后输入:!fi
使用 CTRL-R 搜索命令历史记录 按下 CTRL-R 组合键,然后输入最近执行的命令的任意部分。它会帮你搜索命令,找到所需命令后,只需按 ENTER 键即可。
使用 ShiftPageUp 和 Page Down 滚动屏幕 通过终端来回滚动。


在浏览器中练习

我在 Windows 上一直使用Masswerk
替代文本

您可以在这里找到更多


想要了解此类内容的更多更新,您可以在Twitter上关注我,如果您觉得我在评论中遗漏了什么,请告诉我,我会考虑的,因为这也会对其他人有所帮助。

祝你有美好的一天,

快乐学习。

如果我的帖子或分享的资源对您有所帮助,请考虑请我喝杯咖啡。这不仅能帮我支付学费,还能鼓励我与大家分享精彩实用的东西。

文章来源:https://dev.to/kedark/the-linux-guide-cheatsheet-commands-directories-etc-39k0
PREV
使用 IntersectionObserver 在 Javascript 中实现滚动动画
NEXT
网络免费插图资源 - 让您的下一个项目更酷!😎 新年快乐!!