
Linux 用户必须知道的 10 个 Bash 命令
大多数 Linux 用户都知道终端是计算机上最强大的工具之一。不要被它看起来像一个平平无奇的文本编辑器所迷惑。Linux 终端,运行着如 Bash 或 Zsh 这样的 shell,以其他任何方式都无法比拟的方式直接访问操作系统。以下是每个 Linux 和 POSIX 用户需要知道的 10 个最重要的终端命令。
1. ls
ls
命令列出文件和文件夹(也称为*目录*)。当您第一次打开终端时,输入 ls
通常可以帮助您定位。一旦您看到主文件夹中熟悉的目录列表,您就可以很好地了解您在计算机上的位置,并可以导航到您想去的位置。
2. cd
cd
命令代表 “change directory”(更改目录)或 “current directory”(当前目录)。它是终端中双击桌面上的文件夹图标的等效操作。cd
命令将您带到一个新位置,或者换句话说,它将您的当前工作目录更改为您指定的位置。
例如,要将 Downloads
文件夹设为当前目录
$ cd ~/Downloads
该命令中的波浪号 (~
) 是 “my home”(我的家目录)的简写,因此该命令专门转到位于您的主目录内的 Downloads
文件夹。当有多个同名目录位于不同位置时,这可能很重要。
一旦您到达目的地,通常(虽然不是必需的)运行 ls
,这是此列表中的第一个命令,以查看当前位置有哪些文件和文件夹。
如果您在文件系统中迷路了,只需要回到熟悉的地方,您可以直接输入 cd
,您就会回到舒适的主目录。
3. file
在基于文本的界面中,文件和文件夹看起来彼此之间并没有太大的不同。使用 file
命令区分它们
$ file Readme
Readme: ASCII text
$ file Downloads
Downloads: directory
4. mv
当您需要移动或重命名文件时,可以使用 mv
命令。mv
命令需要两个参数。从逻辑上讲,您必须提供要移动的事物的位置以及要将其移动到的位置。例如,假设您要将名为 IMG_20230910.JPG
的文件移动到您的 Pictures
文件夹中
$ mv IMG_20230910.JPG Pictures
要将该文件移动到 Pictures
中并使用更好的名称
$ mv IMG_20230910.JPG Pictures/vacation_20230910.jpg
您不必远距离移动文件即可获得新名称。就地重命名文件是可以接受的
$ mv IMG_20230910.JPG vacation_20230910.jpg
$ ls
vacation_20230910.jpg
[...]
当您完成文件并且不再需要它时,可以使用 mv
命令将其移动到系统的垃圾箱文件夹中。您的垃圾箱是您主目录中的一个隐藏目录
$ mv file.txt ~/.local/share/Trash/files
5. ln
您可以链接文件或文件夹以进行快速访问。这有时被称为在其他操作系统上创建 “快捷方式” 或 “别名”。当您在 Linux 上创建*符号*链接时,您会创建一个看起来像文件或文件夹的指针,但实际上仅指向驱动器上的某个位置。
例如,系统垃圾箱的路径非常长:~/.local/share/Trash/files
,因此您可能会发现创建一个指向它的链接很方便。ln
命令需要两个参数:已存在的位置和您要创建的链接的名称。在这种情况下,它还需要 --symbolic
选项,以确保您的指针只是一个指针,而不是您链接的数据的克隆。
$ ln --symbolic ~/.local/share/Trash/files ~/.Trash
现在,您可以使用 mv
命令,仅使用此命令即可将文件移动到垃圾箱文件夹
$ mv file.txt ~/.Trash
您可以创建指向驱动器上常用位置的链接以进行快速访问,也可以创建指向您需要在各个位置访问但又不想重复复制的文件的链接。
6. cp
复制就像移动,只是原始文件保留。假设您想将文件复制到 Documents
文件夹中,但您仍然希望在 Downloads
中保留副本
$ cp README.md ~/Documents
$ ls
README.md
[...]
$ ls ~/Documents
README.md
[...]
6. find
您可以使用 cd
和 ls
浏览文件系统来查找文件,也可以使用 find
命令并让它为您完成工作。顾名思义,find
命令旨在通过几种不同的过滤器和限定符来查找文件。find
命令也是启动批处理作业的绝佳界面,它是那些看起来简单但实际上充满潜力的 “强大” 命令之一。
不过现在,仅介绍基础知识。find
的第一个参数必须是您要搜索的位置。这可以是 ~
代表您的整个主目录,也可以是特定位置。这里需要权衡。如果您限制 find
要搜索的位置,搜索速度会更快,因为 find
需要查找的项目更少。另一方面,如果您真的不知道文件在哪里,那么最好让 find
搜索所有位置。
您可以使用 type
选项限制 find
查找的内容。有很多可用的缩写,但最常见的两个是 f
代表文件,d
代表目录。
最后,您必须提供您希望 find
搜索的内容。这由 name
或 iname
选项定义,第一个是文件名,第二个是忽略字母大小写的文件名。您还可以使用通配符 *
来代表任何和所有字符。
例如,要在您的 Downloads
文件夹中搜索文件名中包含字符串 linux
的文件
$ find ~/Downloads -type f -iname "*linux*"
这是另一个示例。此命令在您的主目录中搜索文件名以字符串 “My” 开头的目录
$ find ~ -type d -name "My*"
7. sudo
根据设计,您没有权限更改自己主目录之外的文件。此限制已使许多用户免于意外移动或更改重要的系统文件。但是,有时您有影响系统环境的合理理由。只要您是具有管理权限的用户,就可以使用 sudo
命令来提示您输入密码。
8. nano
特别是当您对机器执行管理任务时,有时在终端中直接更改重要的配置文件会更快更方便。在台式机或笔记本电脑上,没有什么可以阻止您像往常一样在您选择的文本编辑器中打开文件,但是如果您登录到 “无头” 服务器或 Raspberry Pi,那么您可能没有该选项。
nano
文本编辑器在您的终端中运行,因此您可以打开文件、编辑它们并保存更改,而无需更改窗口。键盘快捷键与您习惯的不同(不是 Ctrl+S 保存,而是 Ctrl+O “写出”),但它们都列在 nano
界面的底部。学习从终端内编辑文本对于在远程系统上工作至关重要,而 nano
是对此过程的绝佳介绍。
9. curl
curl
命令是您终端的非交互式 Web 浏览器。它是非交互式的,因为与图形 Web 浏览器不同,您不会打开它并随意浏览 Internet。相反,您确定一个特定的页面或资源,然后 curl
获取它。
例如,假设您需要下载 example.com
的索引页
$ curl example.com
默认情况下,curl
将所有数据写入您的终端屏幕。您可以使用 --output
选项将数据发送到文件
$ curl example.com/sample.zip --output sample.zip
10. info 或 man
info
和 man
命令旨在帮助您了解几乎任何命令可用的选项。键入 info
,后跟您要了解信息的命令,以查看该命令的文档。如果您的系统没有 info
命令,您可以使用 man
(“manual” 的缩写)代替,但我发现 info
的优势在于有时会比通常简洁的手册页透露更多关于命令的信息。
奖励:&
与号 (&
) 实际上不是一个命令,但它是一个重要的元字符,经常被遗忘。一旦您开始在终端中工作,您可能会发现为了方便和快捷而从终端启动应用程序。但是,当您从终端启动图形应用程序时,您的终端提示符会被应用程序占用,只要它正在运行。
当您使用 &
符号终止命令时,该进程将被发送到 “后台”,并且您的终端提示符将恢复到您。
$ libreoffice &
$
更多需要学习的命令
Linux 和 POSIX 系统上还有很多其他命令需要学习。实际上,典型的 POSIX 系统可能至少有数百个,但大多数都有数千个。根据您在计算机上执行的操作,您会找到自己常用命令的集合,因此开始探索可用的命令并尝试一些新命令。一旦您找到了一些您最喜欢的命令,请考虑撰写文章在此处 OpenSource.net 上分享!
照片由 Todd Quackenbush 拍摄于 Unsplash
1 条评论
评论已关闭。