Linux 指南/备忘单/教程(命令、目录等)
这是一篇 Linux 指南,可能会遗漏一些内容,但我会尽力将所有重要内容都添加到这篇文章中。这篇文章可能有点长,请耐心等待。
请注意,我仅提供了需要理解命令的示例,因为我希望您尝试一下,以便更好地理解它。最后,我将分享一些网站,可以让您快速在浏览器中尝试命令。
目录
- 命令语法
- 自学钓鱼
- 管道
- 重定向
- 基本Linux命令
- 创建或删除目录
- 使用目录
- 数据排序
- 在文件中搜索
- 删除文件
- 压缩文件
- 目录结构
- 寻找事物
- 信息命令
- 文件和目录权限
- 编辑文件
- 调度
- 让一切变得更容易的快捷方式
- 在浏览器中练习
命令语法
此命令语法对于您在 Linux 中使用的每个命令都是相同的。
command [-argument] [-argument] [--argument] [file]
示例:ls
列出当前目录中的文件ls -l
以“长”格式列出文件ls -l
--color 同上,但输出为彩色cat
filename 显示文件内容cat -n
filename 显示文件内容,带有行 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
这将识别您的主目录中该组具有写入权限的所有文件。
重定向
很多时候,你会希望将命令的输出保存到文件中,而不是将其显示在屏幕上。假设创建一个文件,其中包含目录中所有 .py 文件的列表。
ls -l /home/vic/pyproc/*.py > pyfiles.txt
(或者)ls -l /home/vic/pyproc/*.py >> pyfiles.txt
记住
>
写>>
用于追加
这与管道非常匹配。
基本Linux命令
以下是一些基本但必要的命令。请记住,命令区分大小写。括号中的内容也区分大小写。
ls
- 列出目录内容。您将使用 ls 显示有关文件和目录的信息。cd [dir]
- 将当前目录更改为 dir。如果执行 cd 命令时未指定目录,则 cd 会将当前目录更改为你的主目录。这是你在系统中导航的方式。pwd
(打印工作目录)- 显示当前工作目录名称。如果您不知道当前所在目录,pwd 会告诉您。cat [file]
- 连接并显示文件。这是您运行来查看文件内容的命令。echo [argument]
- 在屏幕上显示参数。man
command - 显示 command 的在线手册。输入 q 可退出查看手册页。man 命令提供的文档通常称为“手册页”。exit
、logout
、 或Ctrl-d
- 退出 shell 或当前会话。clear
- 清除屏幕。which [command name]
- 如果你想知道命令的确切位置,你可以使用which
命令$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 中,我们使用符号。
.
这个目录。..
父目录。/
目录分隔符。目录以正斜杠结尾,这通常被假定
目录分隔符是可选的,即相同。$ 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
[kedar@www.masswerk.at:2]$ sort file.txt
Output :
a
c
d
h
n
r
s
让我们看一些排序选项
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
- 解压缩文件。gzcat
或zcat
- 连接并打印压缩文件。您可以使用 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
↑
目录结构
了解目录结构将有助于您在系统上搜索组件。它可以帮助您回答以下问题:
- 程序文件位于哪里?
- 那么配置文件怎么样?
- 还有一些应用程序的日志文件?
目录 | 描述 |
---|---|
/ | 文件系统的无名基座。所有其他目录、文件、驱动器和设备都附加到此根目录。通常(但不正确)将其称为“斜杠”或“/”目录。“/”只是目录分隔符,而不是目录本身。 |
/垃圾桶 | 基本命令二进制文件(程序)存储在这里(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 和组 IDdf
报告文件系统磁盘空间使用情况(我记得是“磁盘可用空间”)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如果我的帖子或分享的资源对您有所帮助,请考虑请我喝杯咖啡。这不仅能帮我支付学费,还能鼓励我与大家分享精彩实用的东西。