网站搜索

Linux 新用户必须了解的 20 个终端命令


那么,您是否计划从 Windows 切换到 Linux 或者最近已切换到 Linux?哎呀!我在问什么?不然你为什么会在这里?

根据我作为新人的早期经验,Linux 命令和终端相当令人生畏。我对这些命令感到担忧,并想知道我需要记住和记住它们到什么程度才能熟练并充分发挥 Linux 的功能。

毫无疑问,在线文档、Linux 书籍、手册页和用户社区提供了重要的帮助。

然而,我坚信应该有一篇文章以易于学习和理解的语言介绍基本的 Linux 命令。

这些动机激励我掌握 Linux 并使其变得更加用户友好。这篇文章是朝着这一目标迈出的一步。”

1.ls命令

命令“ls”代表“列出目录内容”,用于显示命令所在文件夹的内容,无论它们是文件还是子文件夹被执行。

ls

ls -l”命令以详细的长列表格式列出文件夹的内容。

ls -l

ls -a”命令列出文件夹的内容,包括以 '.' 开头的隐藏文件。

ls -a

在 Linux 中,以 '.' 开头的文件名被视为隐藏。在 Linux 中,每个文件、文件夹、设备或命令都被视为一个文件。

ls -l 命令的结果是:

  • 文件类型 – 第一个字符代表文件类型('-' 表示常规文件,'d' 表示目录, 'l' 表示符号链接等)。
  • 权限 – 接下来的九个字符代表所有者、组和其他人的文件权限。这些字符可以包括表示读取权限的 'r'、表示写入权限的 'w' 以及表示执行权限的 'x'
  • 链接数量 – 指示指向文件或目录的硬链接数量。
  • 所有者和组 – 指定与文件或目录关联的用户(所有者)和组。
  • 文件大小 – 显示文件大小(以字节为单位)。
  • 修改时间 – 显示上次修改文件或目录的日期和时间。
  • 文件或目录名称 – 文件或目录的实际名称。

有关更多“ls”命令示例,请阅读我们的系列文章:

2.lsblk命令

“lsblk”命令是“列出块设备”的缩写,它在标准输出上以树状格式按分配的名称(不包括 RAM)显示块设备。

lsblk

lsblk -l”命令以“列表”结构而不是树状方式列出块设备。

lsblk -l

lsblk 是一种非常有用且简单的方法来识别您刚刚插入的新 USB 设备的名称,特别是当您必须在终端中使用磁盘或块时。

3.md5sum命令

md5sum”代表“计算”和检查 MD5 消息摘要“。 MD5 校验和(通常称为“哈希值”)用于匹配或验证可能因文件传输错误、磁盘错误或非恶意干扰而更改的文件的完整性。

md5sum teamviewer_linux.deb 

47790ed345a7b7970fc1f2ac50c97002  teamviewer_linux.deb

用户可以将生成的md5sum与官方提供的md5sum进行比较。 MD5sum 被认为不如 sha1sum 安全,我们将在稍后讨论。

4.dd命令

dd 命令代表“转换并复制文件”,可用于转换和复制文件。最常见的是,它用于将 ISO 文件(或任何其他文件)复制到 USB 设备(或其他位置),使其适合创建可启动 USB 记忆棒。

dd if=debian.iso of=/dev/sdb1 bs=512M; sync

注意:在上面的例子中,USB设备应该是sdb1(您应该使用命令lsblk验证它,否则您将覆盖您的磁盘和操作系统),使用盘名非常谨慎!

dd命令的执行时间从几秒到几分钟不等,具体取决于文件的大小和类型以及U盘的读写速度。

5. uname命令

uname 命令代表(Unix Name),并打印有关机器名称、操作系统和内核版本的详细信息。

uname -a

Linux TecMint 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC 
Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

uname -a 命令的结果是:

  • Linux”:机器的内核名称。
  • howtoing”:机器的节点名称。
  • 6.2.0-39-generic”:内核版本。
  • 22.04.1-Ubuntu SMP”:操作系统发行版本。
  • x86_64”:处理器的架构。
  • GNU/Linux”:操作系统名称。

6.历史命令

History命令代表历史(事件)记录,它打印终端中执行的一长串命令的历史记录。

history

注意:按“Ctrl + R” 可以搜索以前执行过的命令,从而可以使用自动完成功能来完成命令。

(reverse-i-search)`if': ifconfig

更多history命令示例,请参考我们的系列文章:

7. sudo命令

sudo”(超级用户 do)命令允许允许的用户以超级用户或其他用户的身份执行命令,如 sudoers 列表中的安全策略所指定。

sudo apt update

注意sudo允许用户借用超级用户权限,而类似的命令“su”允许用户以超级用户身份登录。 Sudosu 更安全。

不建议在日常正常使用中使用sudosu,因为如果不小心做错了什么,可能会导致严重的错误,这就是为什么一个非常好的原因。 Linux社区中流行的一句话是:

“To err is human, but to really foul up everything, you need a root password.”

更多sudo命令示例,请参考我们的系列文章:

8. mkdir 命令

make目录)创建一个带有名称路径的新目录。但如果目录已存在,则会返回错误消息“无法创建文件夹,文件夹已存在”

mkdir 命令(make directory)用于创建具有指定路径的新目录。但是,如果该目录已经存在,它将返回一条错误消息,指出“无法创建文件夹,文件夹已存在”。

mkdir tecmint

只能在用户具有写入权限的文件夹内创建目录。

9.触摸命令

touch 命令代表“将每个文件的访问和修改时间更新为当前时间”。“touch”命令仅在文件不存在时创建该文件。如果文件已经存在,它将更新时间戳,但不会更新文件的内容。

touch tecmintfile

`touch` 命令可用于在用户具有写入权限的目录中创建文件,前提是该文件尚不存在。

10.chmod命令

chmod”命令代表“更改文件模式位”,它更改每个指定文件、文件夹、脚本等,根据指定的模式。

文件(文件夹或任何东西,但为了简单起见,我们将使用文件)存在 3 类型的权限。

Read (r)=4
Write(w)=2
Execute(x)=1

因此,如果您只想授予文件的读取权限,则会为其分配值“4”,对于仅写入权限,将分配值“2”,对于仅执行权限,应指定值“1”。对于读写权限 4+2=‘6’ 将被授予,依此类推。

现在需要为3种用户和用户组设置权限。首先是所有者,然后是用户群体,最后是世界。

rwxr-x--x   abc.sh

这里root的权限是rwx执行)。它所属的用户组是r-x(仅读取执行,没有写入权限),对于世界来说是–x (仅执行)。

更改其权限并向所有者、组和世界提供读取写入执行权限。

chmod 777 abc.sh

对这三者只有权限。

chmod 666 abc.sh

读取写入执行所有者,并且只对执行和世界

chmod 711 abc.sh

chmod 是最重要的命令之一,事实证明它对系统管理员和用户都有益。在多用户环境或服务器上,此命令是必不可少的,因为错误设置权限可能会导致文件无法访问或授予个人未经授权的访问权限。

11. chown命令

chown 命令代表“更改文件所有者和组”,用于更改文件或目录的所有者和/或组。

下面是 chown 命令典型使用方式的示例。

chown newowner:newgroup filename

例如,如果您要将名为“example.txt”的文件的所有者更改为名为“howtoing”的用户和名为“users ”的组“,命令是:

chown tecmint:users example.txt

12.apt命令

在基于 Debian 的发行版(例如 Ubuntu 和 Linux Mint)上,apt 命令代表(高级软件包工具),用于从命令行在系统上安装、升级和管理软件包。

sudo apt search wget
sudo apt install wget
sudo apt update

与 yum 或 dnf 命令相比,apt 命令被认为更先进、更智能。

13. tar 命令

tar 命令是一个磁带存档,可用于创建多种文件格式的存档及其提取。

tar -zxvf abc.tar.gz (Remember 'z' for .tar.gz)
tar -jxvf abc.tar.bz2 (Remember 'j' for .tar.bz2)
tar -cvf archieve.tar.gz(.bz2) /path/to/folder/abc

注意:“tar.gz”表示 gzip 压缩。 ‘tar.bz2’ 使用 bzip 进行压缩,bzip 使用更好但更慢的压缩方法。

14. 校准命令

cal”(日历)用于显示当前月份或任何一年中提前或过去的任何其他月份的日历。

cal 

显示1835年的二月日历,该日期已经过去。

cal 02 1835

显示 21457 月 的日历,该日历将提前

cal 07 2145

注意:您不需要将日历调回 50 年,也不需要执行复杂的数学计算来确定您的出生日期或即将到来的生日的日期。

15. 日期命令

date命令用于显示当前日期和时间。它还可用于设置系统日期和时间。

显示当前日期和时间。

date

以“YYYY-MM-DD”格式显示当前日期。

date +"%Y-%m-%d"

设置系统日期和时间。

sudo date MMDDhhmm[[CC]YY][.ss]

上述命令允许您设置系统日期和时间。将 MM、DD、hh、mm、CC、YY 和 ss 分别替换为所需的月、日、小时、分钟、世纪、年和秒值。

注意date命令在脚本编写中非常有用,特别是对于基于时间和日期的操作。此外,使用终端更改日期和时间可以让您感觉自己像一个真正的极客! (当然,您需要具有root权限才能执行此操作,因为它涉及系统范围的更改)。

16.cat命令

cat 命令代表(串联),这意味着(连接)两个或多个纯文件和/或在标准输出上打印文件的内容。

显示文件的内容。

cat filename

连接多个文件意味着以下命令连接file1file2的内容并将结果显示在终端中。

cat file1 file2

a.txtb.txtc.txtd.txt 的内容将被合并并附加到 abcd.txt 文件的末尾。

cat a.txt b.txt c.txt d.txt >> abcd.txt

猫abcd.txt

注意:“>>”和“>”称为附加符号。它们用于将输出附加到文件而不是标准输出。

>”符号将删除已存在的文件并创建一个新文件,因此出于安全原因,建议使用“>>”,它将写入输出而无需覆盖或删除文件。

在继续之前,我必须让您了解通配符(在大多数电视节目中,您都会知道通配符条目)通配符是一种 shell 功能,它使命令行比任何 GUI 文件更强大经理。

你看,如果你想在图形文件管理器中选择一大组文件,你通常必须用鼠标选择它们。这看起来很简单,但在某些情况下,可能会非常令人沮丧。

例如,假设您有一个包含大量各种文件和子目录的目录,并且您决定将所有包含单词“Linux”的 HTML 文件移动到其目录中间的某个位置。名称,从那个大目录到另一个目录。

有什么简单的方法可以做到这一点?如果该目录包含大量不同名称的 HTML 文件,那么您的任务就一点也不简单!

在 Linux 命令行中,执行该任务就像只移动一个 HTML 文件一样简单,并且由于 shell 通配符的存在,它变得如此简单。这些是特殊字符,允许您选择与某些字符模式匹配的文件名。

这可以帮助您通过键入几个字符来选择甚至一大组文件,并且在大多数情况下,它比使用鼠标选择文件更容易。

以下是最常用的通配符列表:

Wildcard			Matches
   *			zero or more characters
   ?			exactly one character
[abcde]			exactly one character listed
 [a-e]			exactly one character in the given range
[!abcde]		any character that is not listed
 [!a-e]			any character that is not in the given range
{debian,linux}		exactly one entire word in the options given

! 被称为不是符号,与 '!' 附加的字符串相反的是 true。

17. cp命令

cp 命令代表(复制),它将文件从一个位置复制到另一个位置。

cp /home/user/Downloads abc.tar.gz /home/user/Desktop

注意cp是shell脚本中最常用的命令之一,它可以与通配符一起使用(在上面的块中描述),用于定制和所需的文件复制。

18. mv 命令

mv 命令将文件从一个位置移动到另一个位置。

mv /home/user/Downloads abc.tar.gz /home/user/Desktop

注意mv命令可以与通配符一起使用。 mv 应谨慎使用,因为移动系统/未经授权的文件可能会导致安全性以及系统崩溃。

19.pwd命令

pwd 命令(打印工作目录)从终端打印当前工作目录以及完整路径名。

pwd 

/home/user/Desktop

注意pwd命令在脚本编写中不会经常使用,但对于刚接触 Linux 时迷失在终端中的新手来说,它绝对是一个救星。 (Linux 通常称为 nuxnix)。

20. cd 命令

最后,常用的 cd 命令代表(更改目录),它更改工作目录以从终端本身执行、复制、移动写入、读取等。

cd /home/user/Desktop
pwd

/home/user/Desktop

注意:当从终端在目录之间切换时,cd 命令可以发挥作用。 “cd ~” 会将工作目录更改为用户的主目录,如果用户发现自己在终端中迷路,这将非常有用。 “cd ..”会将工作目录更改为当前工作目录的父目录。

结论

这些命令无疑会提高您对 Linux 的使用舒适度。然而,这还不是结论。很快,我将介绍对“中级用户”有价值的其他命令。您将观察到您的用户级别状态得到提升,从新手升级为中级用户。

在下一篇文章中,我将提出“Kill”、“ps”和“grep”等命令。