31 个基本但必不可少的 Ubuntu 命令
每个 Ubuntu 用户都会发现对他们的 Linux 之旅很有帮助的基本 Linux 命令的广泛列表。
什么是基本 Ubuntu 命令?
经常有读者多次问过我这个问题,我都尽量避免回答。
为什么?我不知道Ubuntu命令吗?没有。不是这个原因。这是因为很难对它们进行分类。对我来说重要的东西对你来说可能并不重要。
但我想这适用于我们门户网站上推荐的应用程序的所有内容和每个此类列表。
这就是为什么我最终屈服并创建了这个基本但必需的 Linux 命令列表,它应该对作为 Ubuntu 用户的你有所帮助。这更关注桌面 Ubuntu 用户,但如果你使用 Ubuntu 作为服务器,他们也应该为你提供帮助。 Debian 和其他 Linux 发行版用户也应该会发现它很有帮助。
基本 Ubuntu 命令
我在这里列出的每个命令都有多个选项和多种用途。如果我尝试给出每个命令的最常见示例,它很快就会变成一本超过 10,000 字的笔记本。
我不会详细介绍这些命令。我将列出每个命令的用途及其基本语法。您可以从链接的教程中阅读有关使用这些命令的更多信息。
在开始关注列表之前推荐阅读:
Linux中路径的概念
文件权限的概念
了解终端术语
另一件事。我在这里使用术语文件夹多于目录。
文件夹在Linux中被称为目录,清教徒可能不喜欢这样。不过,我相信对于初学者来说更容易掌握。
1.ls命令:列出文件夹内容
这是 Linux 新用户首先学习的几个命令之一。此命令可让您查看当前文件夹中有哪些文件和文件夹。
ls
您可以使用长列表选项 ls -l 查看文件大小、权限、修改时间等详细信息。如果需要,您可以对这些选项进行排序和控制。
ls -l
相关阅读:ls命令示例
2.cd命令:更改目录
默认情况下,您从主目录开始。您经常需要更改目录并移动到另一个目录。
例如,您下载了 deb 文件或脚本。现在你想运行它。您可以通过提供完整路径从当前工作目录执行此操作,但切换到该位置会使事情变得更容易。
cd 命令代表更改目录; 这样,您就可以更改您的位置并移动到另一个目录。
此时,我强烈建议您阅读 Linux 中路径的概念,以便在 Linux 命令行中浏览目录时更容易理解。
推荐阅读:cd 命令示例
3. cat命令:读取文本文件
如果您想快速查看 Linux 中文本文件的内容,可以使用 cat 命令。它在屏幕上显示内容。
cat filename
您还可以使用 cat 命令创建新文件或向现有文件添加更多文本。
推荐阅读:cat 命令示例
4. less命令:读取大文本文件
cat 命令足以查看小文本文件。但如果你有一个包含数百行的巨大文本文件,我不建议使用 cat。它会让你的屏幕充满所有的文本,你会很难理解。
这就是 less 命令发挥作用的地方。当您使用 less 打开文件时,它会以页面形式打开文件。您可以向上/向下滚动、查找文本等等。
阅读完文件后,您可以按 Q 键退出 less 视图。您会注意到屏幕上没有显示任何内容。你的屏幕很干净。
建议阅读:less 命令示例
5. touch命令:创建新文件
在 Linux 终端中创建新文件的方法有多种。您在上面看到的 cat 命令也可以创建新文件。
不过,我更喜欢使用触摸命令来实现此目的。
touch new_file_name
如果将其与现有文件一起使用,它们的时间戳将被修改。
另请阅读:触摸命令示例
6. mkdir 命令:创建新文件夹
虽然没有用于创建新文件的特定命令,但有一个专用命令用于创建新文件夹(或目录,我们在 Linux 中称之为目录)。
mkdir new_dir
在此处探索更多:mkdir 命令示例
7. cp命令:复制文件和文件夹
在命令行中复制文件和文件夹也是您会遇到的常见任务之一。 cp 命令(copy 的缩写)就是用于此目的。
想象一下您必须修改配置文件。明智的做法是使用其他名称复制该文件。这样,您将获得该文件的备份。
cp existing_file.txt existing_file.back
您也可以使用相同的 cp 命令来复制目录。为此,您必须指定递归选项-r
:
cp -r dir another_location
您还可以阅读:cp命令示例
8. mv 命令:剪切粘贴或重命名文件和文件夹
mv 命令代表“移动”。当您将文件复制到另一个位置时,它仍保留在原来的位置。
mv 命令将文件和文件夹移动到其他位置。您可以将其视为剪切粘贴操作。
mv file.txt /another/location
您也可以使用 mv 命令重命名该文件。
mv file.txt new_file.txt
相同的 mv 命令还可以移动或重命名文件夹,而无需任何特殊选项。
推荐阅读:mv 命令示例
9. rm命令:删除文件和文件夹
您可以使用 rm(remove 的缩写)命令来删除 Linux 终端中的文件。
rm filename
在命令行中删除文件后没有撤消选项。这就是为什么您在删除文件时应该非常小心。如果您担心删除错误的文件,请使用带有选项 -i 的交互模式,这会给您一个额外的提示以确认操作。
rm -i filename
通过递归选项 -r,您还可以使用相同的 rm 命令来删除文件夹。
推荐阅读:rm 命令示例
10.nano:编辑文件
迟早,您将需要更改文件的内容。想象一下,您必须更改 SSH、grub 或某些其他应用程序的配置文件。
有用于此目的的基于命令行的文本编辑器。 Ubuntu 预装了 Nano 编辑器,相对 Vim、Emacs 等来说更容易使用。
如果您对差异感到好奇 差异,请阅读我们的 Nano 与 Vim 比较文章。
更易于使用并不意味着与基于 GUI 的文本编辑器一样舒适。您必须使用键盘快捷键来移动、更改、保存和退出文件。
要使用 nano 打开新的未命名文件,请使用:
nano
要在 Nano 中编辑现有文件,请使用:
nano filename
在这两种情况下,您都应该看到这样的界面。
要保存(或放弃更改)并退出编辑器界面,请使用 Ctrl+x 键。
请参阅我之前创建的 Nano 初学者指南以适应它。
11.clear:清除终端屏幕
Nano 感觉很复杂,对吧?让我分享一个简单的命令。
清除命令清除终端。就是这样。
clear
为什么你需要这样做?好吧,如果你的终端屏幕上充斥着随机的东西,而你想做一些新的事情。清洁终端就像清洁电路板或在笔记本中打开新页面一样。
12. ps:查看并处理进程
ps 命令用于处理系统上运行的进程。每个进程都有一个称为 PID 的关联 ID,它可用于各种目的,例如终止进程。
abhishek@linux:~$ ps
PID TTY TIME CMD
15358 ? 00:00:00 bash
15404 ? 00:00:00 ps
这里,
PID:进程ID
TTY:控制与进程相关的终端(现在不太重要)
TIME:CPU 总使用时间
CMD:运行进程的命令名称
但一个系统不可能只运行 2-3 个进程,不是吗?要查看所有用户运行的所有进程,请使用:
ps aux
这将提供大量流程列表以及有关它们的更多详细信息。如果您运行此命令,现在将是使用 clear 命令的绝佳时机。
推荐阅读:ps 命令示例
13.顶部:系统监视器
ps 命令为您提供所有正在运行的进程,而 top 命令为您提供进程和系统资源消耗的实时视图。
top
将其视为 Linux 中任务管理器的终端变体。使用 top 命令你会看到很多有趣的细节。
我主要使用 top 命令来检查哪个进程占用了太多 CPU 或 RAM。如果您有兴趣尝试,还有更好的顶级替代品。
要停止正在运行的 top 命令,请使用 Ctrl+C 键盘快捷键。
推荐阅读:有效地使用 top 命令作为任务管理器
14. lsblk:列出磁盘和分区
lsblk 命令列出系统上的所有块设备。用非常简单(并且在技术上不完全准确)的术语来说,它显示磁盘和分区。
root@learnubuntu:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 79.9M 1 loop /snap/lxd/22923
loop1 7:1 0 103M 1 loop /snap/lxd/23541
loop2 7:2 0 63.2M 1 loop /snap/core20/1623
loop3 7:3 0 48M 1 loop /snap/snapd/17336
loop4 7:4 0 48M 1 loop /snap/snapd/17029
loop6 7:6 0 63.2M 1 loop /snap/core20/1634
vda 252:0 0 25G 0 disk
├─vda1 252:1 0 24.9G 0 part /
├─vda14 252:14 0 4M 0 part
└─vda15 252:15 0 106M 0 part /boot/efi
vdb 252:16 0 466K 1 disk
root@learnubuntu:~#
15. fdisk:列出和管理磁盘和分区
另一个类似但更好的命令是fdisk命令。它允许您操作磁盘分区。这意味着您可以使用此命令创建新分区并删除现有分区并调整其大小。
您还可以使用它列出系统上的所有块设备,包括循环设备。
sudo fdisk -l
如果您有许多分区、磁盘和循环设备(由快照应用程序创建),则输出可能会很大。我在这里显示输出的相关部分:
Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0B7C796D-51CD-4DD4-962A-7D94B31690E2
Device Start End Sectors Size Type
/dev/vda1 227328 52428766 52201439 24.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M EFI System
16. find:搜索文件
即使作为桌面用户,您也会遇到需要在 Linux 命令行中搜索文件的情况。
find 命令是用于此目的的一个广泛且通用的命令。它有五十多个选项,您可能永远不需要全部。
下面是 find 命令的示例,它将为您提供当前目录中所有以 .txt 扩展名结尾的文件。
find . -type f -name "*.txt"
其他常见的示例包括按大小、修改时间等查找文件。您可以将 find 与 exec 或 xargs 结合使用,对 find 命令的结果采取操作。例如,您可以查找所有 .txt 文件并选择删除它们。
另请阅读:查找命令示例
17. grep:在文件内容中搜索
find 命令根据文件名和类型搜索文件。如果要根据文件内容进行搜索,可以使用 grep 命令。
因此,您不需要查找所有以 .txt 结尾的文件,而是使用 grep 查找包含文本“foss”的所有文件。
grep -ri search_term
想要更多?以下是 grep 命令的一些更实用的示例。方便的 grep 备忘单应该可以帮助您。
18.kill:终止进程
暴力不是答案……而是解决方案。
只是在开玩笑!
如果您有一个行为不当的进程占用了太多系统资源,您可以找到它,然后使用kill命令终止它。
sudo kill -9 process_ID_or_Name
正如您在上面的命令中看到的,您需要知道进程 ID (PID) 或名称才能终止它。您可以使用 ps 或 top 命令来获取 PID 或确切的进程名称。
ps aux | grep -i “name of your desired program”
您注意到 grep 命令的使用了吗?您已经在使用此列表中提到的命令。
我不了解你的情况,但当我寻找要终止的流氓进程时,我感觉就像《飓风营救》中的连姆·内森 (Liam Nesson) 一样。
19.history:回顾一下你过去运行过哪些命令
那么,您几天前使用了特定的 Linux 命令。您需要重新运行它,但您无法正确回忆它。
您可以按向上和向下箭头键。
对于许多 Linux 用户来说,这是一个熟悉的场景;这就是历史命令的用处。
在 Ubuntu 中,您的 shell 会保存您运行的命令的历史记录。在终端中输入历史记录,您应该会看到过去运行的命令的历史记录。
您可以选择使用其编号来运行历史记录中的条目,如下所示:
!number
但即使历史记录也可能很大,所以(再次)使用 grep 命令来过滤您的搜索词。
abhishek@linux:~$ history | grep aux
1915 ps aux
1952 ps aux | grep -i spotify
1955 ps -aux | grep -i calculator
1957 ps -aux | grep -i calculator
1959 ps -aux | grep -i calculator
1970 history | grep aux
还有另一种方法可以访问命令历史记录并进行搜索。按Ctrl+R,然后输入搜索词。
推荐阅读:历史命令示例
20. chmod:更改文件权限
我强烈建议您在这个阶段阅读有关 Linux 文件权限的内容。这将帮助您更好地理解事情,而不是盲目地运行 chmod 命令。
chmod(更改模式)命令用于更改文件的权限。
此命令最常见的用途是当您想要使文件可执行时。有 shell 脚本吗?使其可执行,如下所示:
chmod u+x file executable
更多用例使 chmod 成为 Ubuntu 用户必须了解的命令。
有趣的事实:It's FOSS的母公司是chmod777 Media Tech。 chmod 777 命令将所有权限授予所有用户。这代表了我们的座右铭:“让每个人都能获得知识”。
21.lshw:获取硬件详细信息
Linux 中有大量命令行工具可以获取硬件详细信息和其他系统信息。
Ubuntu 上可能预装的是 lshw(列表硬件的缩写)。
现在,默认情况下,它会显示大量输出,其中包含有关所有硬件组件的详细信息,相信我,这并不容易理解。
lshw
您可能会感受到这里使用 grep 的诱惑,但没有必要这样做。 lshw 的输出分为几类,您可以使用它来显示一类硬件的详细信息。
想了解您的网络适配器的制造商吗?用这个:
lshw -C network
22. sudo:以root权限运行命令
您一定已经注意到,我使用 sudo 作为之前讨论的一些命令的前缀。
默认情况下,在 Ubuntu 中,sudo 的配置方式允许您(默认管理员用户)以 root 权限运行任何命令。
系统会要求您输入密码,这是您的用户帐户密码。输入密码后,屏幕上不会显示任何内容。新用户对此感到困惑,但这是 UNIX/Linux 中的预期行为。您输入密码并按 Enter 键。
有关 Ubuntu 中 root 用户的更多信息,请参见此处。
23. apt:安装、删除和管理.deb包
apt 命令用于在 Ubuntu 中管理软件包。您必须将其与 sudo 一起使用,因为这些是管理任务。
要安装包,请使用:
sudo apt install package_name
要删除已安装的软件,请使用:
sudo apt remove package_name
要一次性使用所有可升级包更新您的 Ubuntu 系统:
sudo apt update && sudo apt upgrade
apt update 和 Upgrade 之间的区别在于,更新会刷新软件包缓存,而升级实际上会安装更新。
apt 命令还有更多内容。您可以阅读这个详细的 apt 命令指南。
24. add-apt-repository:添加和删除 PPA
好吧!这个产品不像十年前那么受欢迎。您仍然会到处遇到 add-apt-repository 命令。它用于管理系统的 PPA(非官方的、用户生成的存储库)。
在网上学习教程时,您可能会遇到由三行组成的安装说明:
sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt update
sudo apt install lighttable-installer
第一个命令是添加 PPA(外部存储库)。您已经熟悉以下两个,它们用于更新包缓存并安装您刚刚添加的 PPA 存储库提供的软件。
要删除 PPA,您应该首先删除从中安装的软件,然后将其删除,如下所示:
sudo add-apt-repository -r ppa:dr-akulavich/lighttable
我有关于 PPA 的完整指南,了解有关此主题的更多详细信息。
25. snap:安装、删除和管理snap包
到目前为止,您已经了解了 apt 软件包及其管理。不过,Ubuntu 也使用并积极推荐使用其 snap 打包格式。
学习一些基本的 snap 命令将帮助您有效地管理这些包。
要查找包,请使用:
snap find search_term
要安装包,请使用:
sudo snap install package_name
列出已安装的快照应用程序:
snap list
要删除已安装的 Snap 应用程序,请使用:
sudo snap remove package_name
26. ip:查看IP地址等信息
ip 命令可让您检查您的 IP 地址。您还可以查看和操作路由、网络设备等。
ip a
27. ping:检查远程系统是否可达
Ping 是您应该了解的另一个 Linux 网络命令。要检查远程系统是否可用,请将其 IP 地址提供给 ping 命令:
ping ip_address
您还可以使用它来检查网站是否已关闭,尽管现在它不是很准确。
使用 Ctrl+C 停止正在运行的 ping 命令。
推荐阅读:ping 命令示例
28. ssh:连接到远程系统
我对将 ssh 添加到必须了解的 Linux 命令列表中持怀疑态度。许多桌面用户可能不需要它。 SSH 用于从终端连接到其他 Linux 系统。
ssh user@ip_address_of_remote_system
当然,您需要知道远程系统的用户和密码。
如果您有云服务器或家庭设置,其中其他 Linux 系统可用,您可以使用它从主系统连接到它们。
29. scp:在远程系统之间复制文件
由于我将 ssh 包含在列表中,因此包含通过 SSH 连接在远程系统之间传输文件的内容是公平的。
scp 命令的工作方式几乎与您之前看到的 cp 命令类似。
下面的示例将文件从远程系统上用户的主目录复制到本地登录系统的当前目录。
scp username@ip_address:/home/username/filename .
推荐阅读:scp 命令示例
30.exit:关闭终端
基本 Linux 命令列表即将结束。那么我们来谈谈退出终端。这很简单。只需输入:
exit
如果您正在使用其他用户或 shell,您将从该用户或 shell 中注销。
您还可以使用Ctrl+D键退出终端。
31. shutdown:关闭或重新启动系统
好吧。如果您还没有退出终端,请让我分享最后一个命令。
从命令行关闭系统怎么样?
为此,请使用 shutdown 命令:
shutdown
上述命令安排在一分钟内关闭。您可以使用以下命令立即关闭它:
shutdown -now
您也可以使用相同的关闭命令来重新启动 Ubuntu 系统:
shutdown -r now
额外提示:man:详细了解命令
再来一张,这是最后一张,我保证。所有 Linux 系统都附带命令手册。它称为联机帮助页,您可以使用以下命令访问已安装命令的手册页:
man command_name
对于新用户来说,理解联机帮助页可能会很困难,但它却非常方便。它为您提供命令选项的通用语法和描述。
当您不确定如何使用某个命令时,请尝试先检查其手册页,然后再在互联网上搜索它。
总是有更多……
这大约只有 30 个命令。这还不到 Linux 命令的 20%。我没有介绍很多网络命令。我什至没有使用用户管理命令。
我写这篇文章时考虑的是普通的 Ubuntu 桌面用户。这些是您更有可能使用的命令类型。从长远来看,对它们有一些了解会很有帮助。
除此之外,学习永无止境。即使是经验最丰富的 Linux 用户也会不断发现和学习新东西。
考虑到你有兴趣学习Linux命令,我推荐一些好的Linux书籍和资源。
Linux 的工作原理:不仅解释命令,还解释 Linux 的工作原理
William Shots 的《Linux 命令行》:可合法免费下载 PDF 格式
Daniel J Barrett 的 Linux Pocket Guide:Linux 命令分类并通过小示例进行简要解释
快速学习 Linux:完全专注于 Linux 命令,并提供适当的示例和示例练习
除此之外,您还可以从 Linux Journey 和 Linux Handbook 等网站进行学习。
我知道这是一篇很长的文章,但这甚至不是冰山一角。总是有更多东西需要学习,但如果您不了解所有 Linux 命令,您也不必感到痛苦。
没有人知道一切。
现在轮到你了。您觉得这个 Ubuntu 命令列表有帮助吗?
如果您必须向其中添加更多命令,它们会是什么?评论部分都是你的。