你需要知道的 10 个基本 Linux 命令
无论您是希望扩展 Linux 技能的 Windows 系统管理员、Linux 新手,还是想在 IT 领域找份工作的人,这篇关于一些常用 Linux 命令的介绍都适合您。这 10 个命令是 Linux 系统管理员经常使用的命令 - 事实上,他们每天至少使用其中的 8 个。而且无论您使用 Linux 多长时间,您都会使用这些命令。一些 MS-DOS 用户会认出其中的一些,而且毫不奇怪,它们在两个操作系统中具有相同的功能。
ls
列出目录内容
list ( ls
) 命令相当于 DOSDIR
命令,因为它列出了文件和目录。如果您ls
在提示符 ( $
) 下简单地键入,您将看到当前目录中的所有非隐藏文件,这是您首次登录 Linux 系统时的主目录。该ls
命令不会在新系统上的主目录中显示太多内容,因此让我们探索一个包含大量文件和目录的目录:/etc
。/etc
( et-see ) 目录是 Linux 系统配置文件所在的位置。
$ ls /etc
屏幕上出现大量文件(超过 200 个)。您已成功列出/etc
目录的内容,但实际上可以用几种不同的方式列出文件。上面我提到了非隐藏文件。在您的主目录中,也就是您现在所在的位置,您可能有隐藏文件。Linux 中的隐藏文件以句点 ( .
) 开头。例如,您可能.bash_profile
在那里有一个文件。要查看它,请使用以下ls
命令。
$ ls -a
现在您会看到几个以句点开头的文件。-a
开关(或称为选项)会显示所有文件,甚至隐藏文件。
man
显示手册页
Linux has an extensive set of online documentation for your reference. They're referred to as manual pages, as in read the manual. The abbreviated command for referencing this documentation is,
man <command>
一整屏的信息就会出现在你面前。
浏览手册页很容易。使用Enter键一次前进一行,使用 ' b
' 键返回,使用空格键前进全屏页面,使用 ' q
' 键退出手册页。例如,查看命令的手册页ls
。
$ man ls
cat
连接文件
该cat
命令作为基本命令非常重要,因为它有两个非常重要的功能:连接(合并)文件(顾名思义)和将文件内容打印到屏幕上。打印文件内容是此命令最常用的功能。如果要查看文件的内容,请使用以下格式:
$ cat <filename>
passwd
例如,您可以键入以下内容以在屏幕上显示系统文件的内容:
$ cat /etc/passwd
为了使用cat
其文件连接功能,该命令的一般形式为:
$ cat file1 file2 > file1file2
例如,将grocerylist.txt
和的内容重定向todo_list.txt
到文件中Saturday.txt
:
$ cat grocerylist.txt todo_list.txt > Saturday.txt
您可以使用 将任意数量的文件连接成一个文件cat
。
[ 免费下载:高级 Linux 命令备忘单。]
touch
更改文件时间戳
该touch
命令是另一个具有双重用途的命令。其指定用途是更新文件的时间戳。如果您使用长格式列出目录的内容:
$ ls -l
该命令的输出显示权限、所有权、大小、创建或上次访问的日期/时间以及文件名:
-rw-rw-r--. 1 khess khess 175 Jul 23 19:19 all.txt
-rw-rw-r--. 1 khess khess 61 Jul 23 19:17 new.txt
-rw-rw-r--. 1 khess khess 114 Jul 23 19:09 students.txt
用于touch
更新最后访问的时间戳:
$ touch new.txt
$ ls -l
-rw-rw-r--. 1 khess khess 175 Jul 23 19:19 all.txt
-rw-rw-r--. 1 khess khess 61 Jul 26 11:28 new.txt
-rw-rw-r--. 1 khess khess 114 Jul 23 19:09 students.txt
使用touch
更新上次访问时间实际上是此命令的不常用用法。它的常见用途touch
是创建一个空文件作为占位符。某些程序需要文件存在才能正常运行,这是启动此类过程的一种方法。否则,此用法提供了一种快速创建文件的方法,而无需打开文本编辑器然后保存空文件:
$ touch today.txt
$ ls -l
-rw-rw-r--. 1 khess khess 175 Jul 23 19:19 all.txt
-rw-rw-r--. 1 khess khess 61 Jul 26 11:28 new.txt
-rw-rw-r--. 1 khess khess 114 Jul 23 19:09 students.txt
-rw-rw-r--. 1 khess khess 0 Jul 26 11:53 today.txt
您已创建了一个新的空文件today.txt
。
pwd
打印工作目录
该pwd
命令是 Linux 系统的指南针,它可以告诉您您所在的位置。它除了向您提供这些信息之外没有其他功能。尝试以下操作,您将看到您位于主目录中,其格式如下/home/<username>
:$ pwd
/home/khess
如果您迷路了,或者只是想知道您在文件系统中的位置,这个命令会告诉您。Linux 用户在更改或删除文件之前经常使用它来确保文件的当前位置。
该pwd
命令始终显示您所在位置的完整路径,即使您距离根(/
)目录有多个深度目录,这就是我看到的/home/khess
而不是khess
或的原因/khess
。
cd
更改目录
与该命令密切相关的pwd
是该cd
命令。更改目录是 Linux 系统上的常见活动。如前所述,首次登录时,您将进入主目录。Linux 系统上的每个用户都有一个主目录。普通用户帐户在目录下有个人目录/home
。您的主目录位于 下/home/<username>
。要查看所有用户的主目录,cd
请转到/home
目录。
$ cd /home
$ ls
您在此处看到的内容取决于您的系统。如果您是个人系统上的唯一用户,那么您将只能看到您的主目录。生产系统上可能有数百个用户帐户。无论您在系统的哪个位置,返回主目录的快捷方式是键入cd
不带参数或目录路径的命令:
$ cd
因此,如果您在系统中“迷路”并需要重新定位,请输入cd
,然后您将被安全地放入主目录中。您可以在命令cd
后提供其完整路径,从而进入系统上的几乎任何目录cd
:
$ cd /usr/bin
要将目录更改为当前目录上方的目录,请使用双句点(点)参数:
$ cd ..
现在您已进入/usr
目录。请记住,您可以通过发出以下命令来“证明”您的位置pwd
:
$ pwd
/usr
有时您不需要cd
进入特定目录。如果您提供要查看的文件的完整路径,则可以从当前位置读取文件。例如,您不需要cd
进入/usr/bin
目录即可发出pwd
命令。您可以从当前位置发出命令,因为它在您的路径中。
路径是另一篇文章中更高级的主题,但请注意,您不需要cd
做所有事情。当cd
您出于某种原因在特定目录中工作时,才需要这样做。否则,您可以从主目录中执行需要执行的操作。您将在下一节中了解为什么更改目录可能是一件坏事。
rm
删除文件和目录
该rm
命令用于删除文件和目录。Linux 与 DOS/Windows 不同的一个特点是它不具有对话功能,这意味着当您删除文件或目录时,您不会(默认情况下)收到诸如“您确定吗?”之类的消息。这不是 Linux 的做法。我稍后会在本节中向您介绍一种针对该行为的推荐解决方法。
现在,让我们today.txt
使用以下命令删除您之前创建的文件touch
:
$ rm today.txt
您是否注意到没有收到任何问题或提示?Linux 假设您在按下Enter键之前就知道自己要做什么。这有点令人不安,不是吗?询问 Linux 系统管理员在他们的某个会话中是否有任何文件丢失过。我敢打赌肯定的回答,我不是赌徒。您可以通过-i
在命令后放置一个开关(选项)来解决某些命令的这种非交互式行为。尝试以下示例:
$ touch newfile.txt
$ rm -i newfile.txt
rm: remove regular empty file 'newfile.txt'?
使-i
之具有rm
交互性。回答 ay
则文件消失。回答 ann
则文件保留。为了安全起见,您始终可以使用 开关-i
。rm
这样做不会造成任何伤害或丢脸,将来您会庆幸自己这样做了。
cp
复制文件和目录
复制文件和目录是 Linux 系统管理员的一项常见任务。它的用法没有什么秘密,只需发出复制 ( cp
) 命令、文件或目录源以及目标即可。要将文件复制file.txt
到/opt/files
目录,请使用:
$ cp file.txt /opt/files
要复制整个目录及其所有内容(包括子目录),请使用-R
(Recurse) 选项。将主目录中的数据目录复制到/opt/files
。您可以使用 或-r
来-R
递归复制文件:
$ cp -R data /opt/files
该cp
命令很少见,因为操作的大小写选项都相同。当然,复制文件时可以使用通配符,以模式过滤文件:
$ cp *.txt /opt/files
mkdir
创建目录
如果您是一个有条理的人,您会想要创建目录来满足将文件和数据正确排列到不同分区(目录)中的需求。创建目录很容易。发出命令,mkdir
然后输入要创建的目录名称:
$ mkdir data
如果您更有条理,并且已经做了一些规划,那么您可以使用一个命令创建整个目录层次结构。您想要创建一个数据目录,其中包含用于文档、表单、测试和传出内容的子目录。既然您可以一次完成所有操作,为什么还要发出多个命令呢:
$ mkdir -p data/documents/forms/tests/outgoing
该-p
选项告诉系统您正在创建父目录和子目录。使用该ls
命令检查您的工作。您还可以一次创建同一级别的多个目录。
$ mkdir docs spreadsheets email old
使用该ls
命令来确保该mkdir
命令执行了您想要的操作。
ps
列出当前正在运行的进程
您需要了解的 10 个基本 Linux 命令中的最后一个是ps
。此命令显示当前正在运行的进程。如果您发出该ps
命令,您将只会看到您自己的进程:
$ ps
PID TTY TIME CMD
7505 pts/0 00:00:00 bash
18119 pts/0 00:00:00 ps
如果您没有运行任何程序,那么此输出就没什么意思了。查看系统范围内的运行情况会更有趣。您可以通过向 中添加一些选项来实现此目的ps
。最有价值的选项是-e
和-f
,分别用于 every (all) 和 full 格式。要从命令中获取最多的信息,请将这两个选项组合到以下命令中。我已将我系统的ps
输出的前几行包含在内:ps -ef
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jul23 ? 00:00:25 /usr/lib/systemd/systemd --system --deserialize 20
root 2 0 0 Jul23 ? 00:00:00 [kthreadd]
root 3 2 0 Jul23 ? 00:00:00 [rcu_gp]
root 4 2 0 Jul23 ? 00:00:00 [rcu_par_gp]
root 6 2 0 Jul23 ? 00:00:00 [kworker/0:0H-kblockd]
root 8 2 0 Jul23 ? 00:00:00 [mm_percpu_wq]
这些字段很容易理解,在解决性能问题时很有用:
场地 | 描述 |
---|---|
碳 | CPU 使用率。 |
命令 | 带有路径的命令或进程名称。 |
PID | 进程 ID。 |
局部局部性病变 | 父进程 ID:父进程是产生该进程的进程。 |
时间 | 该过程的开始时间。 |
时间 | 该进程的 CPU 时间。 |
终端电话 | 生成该进程的用户终端。系统进程将显示“?”。 |
唯一标识 | 进程所有者的用户 ID。 |
您还可以与该命令一起使用其他选项ps
,似乎每个人都有自己的偏好,但最受欢迎的两个选项是:ps -ef
和ps aux
。它们都为您提供了大量的流程信息。
以上就是您需要了解的 10 条基本 Linux 命令。没有哪条命令比其他命令更重要。它们都很重要,而且都很有用。我之所以选择这些命令,是因为无论您是新手还是 Linux 出现之前的黑暗时代的资深系统管理员,这 10 条命令都是每个人都经常使用的。
如果您对 DOS 和 Linux 命令的比较感兴趣,请查看: 常见 DOS 和 Linux 命令的比较。
[想要试用 Red Hat Enterprise Linux? 立即免费下载。]