最基本最常用的 Linux 命令

来自 Windows 世界的新 Linux 转换程序可能会发现使用命令行有些令人生畏。但是,它并不难使用。开始使用命令行所需的只是学习一些基本命令。

尽管大多数 Linux 发行版都是用户友好的,并且带有易于使用的图形界面,但是了解如何使用命令行可能非常有用。命令行使您可以更好地控制系统,并访问图形界面不可用的功能。

在本文中,我们将介绍 Linux 系统管理员每天使用的一些最常见的 Linux 命令。

获取有关命令的信息

通常不需要记住命令选项,这可能会浪费时间。通常,如果您不经常使用该命令,则很容易忘记它的选项。

大多数命令都有一个 --help 选项,可打印一条有关如何使用该命令的简短消息并退出:

command_name --help

man 命令

几乎所有 Linux 命令都与手册页一起分发。手册或手册页是一种文档形式,解释了命令的作用,如何运行命令的示例以及命令接受的参数。

man 命令用于显示给定命令的手册页。

man command_name

例如,要打开 cd 的手册页,请输入:

man cd

要翻阅网页,使用 ArrowPage UpPage Down 键。您也可以 Enter 按键一次移动一行,按一次该 Space 栏可移动到下一个屏幕, b 按键可以返回一个屏幕。要退出手册页,请 q 按键。

浏览文件系统

在 Linux 中,每个文件和目录都在根目录下,该根目录是目录树中的第一个或最顶层目录。根目录由单个前导斜杠引用 /

在操作文件时导航文件系统时,可以使用资源的绝对路径或相对路径。

绝对路径或完整路径从系统 / 开始,而相对路径从当前目录开始。

当前工作目录 (pwd 命令)

当前工作目录是用户当前所在的目录。每次与命令提示符进行交互时,您都在一个目录中工作。

使用 pwd 命令找出您当前所在的目录:

pwd

该命令显示您当前工作目录的路径:

/home/buzheng

更改目录 (cd 命令)

cd(“ change directory ”) 命令是用来改变在 Linux 等当前工作目录类 Unix 操作系统。

不带任何参数使用时, cd 将带您到主目录:

cd

要更改目录,可以使用其绝对或相对路径名。

假设该目录 Downloads 存在于您运行命令的目录中,则可以使用目录的相对路径导航到该目录:

cd Downloads

您还可以使用目录的绝对路径导航到目录:

cd /home/bu zheng/Downloads

两个点 (..) ,表示父目录,或者换句话说,在当前目录的上级目录。

假设您当前在 /usr/local/share 目录中,要切换到 /usr/local 目录(从当前目录上一级),请输入:

cd ../

要向上移动两个级别,请使用:

cd ../../

要改回上一个工作目录,请使用破折号 (-) 作为参数:

cd -

如果要更改为的目录名称中带有空格,则应在路径两边加上引号或使用反斜杠 () 字符来转义空格:

cd Dir\ name\ with\ space

处理文件和目录

列出目录内容 (ls 命令)

ls 命令用于列出有关目录中文件和目录的信息。

当不使用任何选项和参数时, ls 以字母顺序显示当前工作目录中所有文件名称的列表:

ls

要列出特定目录中的文件,请将路径传递到目录作为参数:

ls /usr

ls 命令的默认输出仅显示文件和目录的名称。使用 -l 来打印长列表格式的文件:

ls -l /etc/hosts

输出包括文件类型,权限,硬链接数,所有者,组,大小,日期和文件名:

-rw-r--r-- 1 root root 337 Oct  4 11:31 /etc/hosts

ls 命令默认情况下不列出隐藏文件。隐藏文件是任何以句点 (.) 开头的文件。

要显示所有文件,包括隐藏文件,请使用以下 -a 选项:

ls -a ~/

显示文件内容 (cat 命令)

cat 命令用于打印一个或多个文件的内容,并通过将一个文件的内容附加到另一个文件的末尾来合并(连接)文件。

要在屏幕上显示文件的内容,请将文件名作为 cat 的参数传递给:

cat /etc/hosts

创建文件 (touch 命令)

touch 命令用于更新现有文件和目录上的时间戳,以及创建新的空文件。

创建文件,请指定文件名作为参数:

touch file.txt

如果文件已经存在, touch 则将文件的上次访问和修改时间更改为当前时间。

创建目录 (mkdir 命令)

在 Linux 中,您可以使用以下 mkdir 命令创建新目录(也称为文件夹)。

要创建目录,请将目录名称作为参数传递给命令:

mkdir /tmp/newdirectory

mkdir  可以使用一个或多个目录名称作为其参数。

当仅提供目录名而不提供完整路径时,它将在当前工作目录中创建。

要创建父目录,请使用以下 -p 选项:

mkdir -p Projects/buzheng.org/src/assets/images

上面的命令创建整个目录结构。

mkdir 使用 -p 选项调用时,仅当目录不存在时才创建目录。

创建符号链接 (ln 命令)

符号链接(或符号链接)是一种指向另一文件或目录的特殊文件类型。

要创建到给定文件的符号链接,请将 ln 命令与以下 -l 选项一起使用:文件名作为第一个参数,符号链接的名称作为第二个参数:

ln -s source_file symbolic_link

如果仅给定一个文件作为参数 ln ,则在当前工作目录中创建一个指向该文件的链接,其名称与其指向的文件相同。

删除文件和目录 (rm 命令)

要删除文件和目录,请使用 rm 命令。

默认情况下,不带任何选项执行时, rm 不会删除目录。它还不会提示用户是否要继续删除给定的文件。

要删除文件或符号链接,请使用 rm 命令,后跟文件名作为参数:

rm file.txt

rm  接受一个或多个文件或目录名称作为其参数。

-i 选项告诉 rm 您在删除每个给定文件之前提示用户:

rm -i file.txt
rm: remove regular empty file 'file.txt'? 

使用该 -d 选项删除一个或多个空目录:

rm -d dirname

要以递归方式删除非空目录及其中的所有文件,请使用 -r( 递归)选项:

rm -rf dirname

-f 选项告诉 rm 从不提示用户,并忽略不存在的文件和参数。

复制文件和目录 (cp 命令)

cp 命令允许您复制文件和目录。

要将文件复制到当前工作目录中,请使用源文件作为第一个参数,并使用新文件作为第二个参数:

cp file file_backup

要将文件复制到另一个目录,请指定目标目录的绝对或相对路径。如果仅将目录名称指定为目标,则复制的文件将具有与原始文件相同的名称。

cp file.txt /backup

默认情况下,如果目标文件存在,它将被覆盖。

要复制目录(包括其所有文件和子目录),请使用 -R-r 选项:

cp -R Pictures /opt/backup

移动和重命名文件和目录 (mv 命令)

mv 命令(移动的简称)用于将文件和目录从一个位置重命名并移动到另一个位置。

例如,要将文件移动到目录,可以运行:

mv file.txt /tmp

要重命名文件,您需要指定目标文件名:

mv file.txt file1.txt

移动目录的语法与移动文件时的语法相同。

要一次移动多个文件和目录,请指定目标目录作为最后一个参数:

mv file.tx1 file1.txt /tmp

安装和卸下软件包

软件包管理器是一种工具,可让您安装,更新,删除和管理发行版特定的软件包。

不同的 Linux 发行版具有不同的软件包管理器和软件包格式。

只有 root 用户或具有 sudo 特权的用户才能安装和删除软件包。

Ubuntu和 Debian(apt 命令)

Advanced Package Tool 或 APT 是基于 Debian 的发行版使用的软件包管理系统。

Debian 发行版中有几种命令行软件包管理工具, aptapt-get 它们是最常用的。

在首先安装新软件包之前,您需要更新 APT 软件包索引:

apt update

APT 索引是一个数据库,其中包含系统中启用的存储库中可用软件包的记录。

要将安装的软件包升级到最新版本,请运行:

apt upgrade

安装软件包就像运行一样简单:

apt install package_name

除去已安装的软件包,请输入:

apt remove package_name

CentOS和 Fedora(dnf 命令)

RPM 是 Red Hat Linux 及其衍生产品(如 CentOS 和 Fedora) 使用的功能强大的软件包管理系统。 RPM 也指 rpm 命令和 .rpm 文件格式。

要在基于 Red Hat 的发行版上安装新软件包,可以使用 yumdnf 命令:

dnf install package_name

从 CentOS 8 开始 dnf 替换了 yum 作为默认的软件包管理器。 dnf 向后兼容 yum

要将安装的软件包升级到最新版本,请键入:

dnf update

删除软件包很简单:

dnf remove package_name

文件所有权和权限

在 Linux 中,通过文件许可权,属性和所有权来管理对文件的访问。这样可以确保只有授权的用户和进程才能访问文件和目录。

在 Linux 中,每个文件都与一个所有者和一个组相关联,并为三种不同类别的用户分配了权限访问权限:

  • 文件所有者。
  • 小组成员。
  • 其他人。

有三种权限类型适用于每个类:

  • 读取权限。
  • 写入权限。
  • 执行权限。

此概念使您可以指定允许哪些用户读取文件,写入文件或执行文件。

要查看文件所有者和权限,请使用 ls -l 命令。

更改权限 (chmod 命令)

chmod 命令允许您更改文件权限。它以符号和数字两种模式工作。

使用数字方式时,可以设置所有者,组和所有其他用户的权限。每个写,读和执行权限都具有以下数字值:

  • r(读取 )= 4
  • w(读取 )= 2
  • x(读取 )= 1
  • 没有权限 = 0

特定用户类别的权限编号由该组的权限值的总和表示。

例如,要为文件的所有者提供读写权限,并且仅向组成员和所有其他用户授予读取权限,请运行:

chmod 644 filename

只有 root 用户,文件所有者或具有 sudo 特权的用户才能更改文件的权限。

要对给定目录下的所有文件和目录进行递归操作,请使用 chmod 命令带上 -R(-recursive) 选项:

chmod -R 755 dirname

递归更改文件的权限时,请格外小心。

更改所有权 (chown 命令)

chown 命令允许您更改给定文件,目录或符号链接的用户和组所有权。

要更改文件的所有者,请使用 chown 命令,后跟新所有者的用户名和目标文件:

chown username filename

要更改文件的所有者和组,请调用 chown 命令,然后是新的所有者和组,并用冒号 (:) 分隔,中间没有空格和目标文件:

chown username:groupname filename

使用 -R(--recursive) 选项以递归方式处理给定目录下的所有文件和目录:

chown -R username:groupname dirname

提升特权 (sudo 命令)

sudo 命令允许您以其他用户(默认情况下为 root 用户)运行程序。如果您在命令行上花费大量时间,sudo 是您将经常使用的命令之一。

使用 sudo 而不是以 root 身份登录更为安全,因为您可以将单个用户授予有限的管理特权,而无需他们知道 root 密码。

要使用 sudo ,只需在命令前添加前缀 sudo

sudo command

管理用户和组

Linux 是一个多用户系统,这意味着多个人可以同时与同一个系统进行交互。组用于组织和管理用户帐户。组的主要目的是为一组可以在组内用户之间共享的给定资源定义一组特权,例如读取,写入或执行权限。

创建用户 (useraddpasswd 命令)

useradd 命令允许您创建新用户。

要创建新的用户帐户,请使用以下 useradd 命令,然后输入用户名:

useradd newuser

创建用户后,通过运行以下 passwd 命令来设置用户密码:

useradd newuser

删除用户 (userdel 命令)

在 Linux 中,您可以使用以下 userdel 命令删除用户帐户。

要删除名为的用户帐户,请将用户名传递给 userdel 命令:

userdel newuser

使用 -r(–-remove) 选项删除用户的主目录和邮件:

userdel -r newuser

管理组 (groupaddgroupdel 命令)

要创建一个新组,请使用 groupadd 命令,后跟组名称:

groupadd mygroup

要删除组,请使用 groupdel 以组名作为参数的命令:

groupdel mygroup

将用户添加到组 (usermod 命令)

要将现有用户添加到组,请使用 usermod 命令,后跟 -G 选项和组名:

usermod -a -G sudo buzheng

结论

我们已经介绍了一些最常用的 Gnu/Linux 命令。

尽管您可以使用图形界面执行大多数开发和与系统相关的任务,但是命令行使您的工作效率更高,并可以在更短的时间内完成更多工作。

单击每个命令上的链接以获取有关命令选项和用法的更多信息。