在撰写本文时,Linux在台式机上的全球市场份额为2.68%,但超过90%的云基础设施和托管服务都在该操作系统中运行。仅出于这个原因,熟悉流行的Linux命令就至关重要。
根据2020年StackOverflow调查,Linux是专业开发人员使用最多的操作系统,拥有令人印象深刻的55.9%的市场份额。这不仅仅是巧合。Linux是免费的、开源的,比竞争对手具有更好的安全性,并且拥有强大的命令行,使开发人员和高级用户更加高效。
无论您是经验丰富的系统管理员还是Linux新手,都可以利用本指南。
- 什么是Linux命令?
- 最常用的Linux命令
- Linux命令备忘单
什么是Linux命令?
Linux命令是在命令行上运行的程序或实用程序。命令行是一个界面,它接受文本行并将其处理为计算机的指令。
任何图形用户界面(GUI)都只是命令行程序的抽象。例如,当您通过单击“X”关闭窗口时,该操作后面会运行一个命令。
标志(flag)是我们可以向您运行的命令传递选项的一种方式。大多数Linux命令都有一个帮助页面,我们可以使用-h
标记调用该页面。大多数情况下,标志是可选的。
argument或parameter是我们给命令的输入,以便它可以正常运行。在大多数情况下,参数是一个文件路径,但它可以是您在终端中键入的任何内容。
可以使用连字符 (-
) 和双连字符 (--
)调用标志,而参数的执行取决于将它们传递给函数的顺序。
最常用的Linux命令
在开始使用最常用的Linux命令之前,请确保启动终端(terminal)。在大多数Linux发行版中,您可以使用Ctrl + Alt + T来执行此操作。如果这不起作用,请在应用程序面板中搜索“terminal”
Linux终端模拟器。
现在,让我们一起来了解40个最常用的Linux命令。其中许多选项可以串到它们,所以请务必查看命令手册.
1. ls
命令
ls
可能是每个Linux用户在其终端中键入的第一个命令。它允许您列出您想要的目录的内容(默认情况下是当前目录),包括文件和其他嵌套目录。
ls
它有很多选择,所以最好使用 --help
来获得一些帮助。此标志返回所有可以与 ls一起使用的flags参数。
例如,要着色 ls
命令的输出,您可以使用以下命令:
ls --color=auto
ls着色命令
现在 ls
命令输出已着色,您可以欣赏目录和文件之间的区别。
但是,用彩色标志打字是低效的:这就是我们使用命令 ls
alias
的原因。
2.alias
命令
alias
命令允许您在shell会话中定义临时别名。创建别名时,您指示shell用一系列命令替换单词。
例如,要设置 ls
为颜色而不每次键入标志 --color
,您将使用:
alias ls="ls --color=auto"
正如你所看到的,alias
命令需要一个关键值对参数:alias NAME="VALUE"
.请注意,该值必须是使用引号。
如果你想列出你的shell会话中所有的别名,你可不使用argument运行命令alias
。
alias
alias命令。
3.unalias
命令
顾名思义,unalias
命令旨在从已定义的别名中删除alias
。要删除以前的ls
别名,可以使用:
unalias ls
4. pwd
命令
pwd
命令代表“打印工作目录”,它输出您所在目录的绝对路径。例如,如果您的用户名是“john”,并且您位于文档目录中,则其绝对路径将是 /home/john/Documents
.
要使用它,只需在终端中键入pwd
:
pwd # My result: /home/wbolt/Documents/linux-commands
5. cd
命令
cd
命令与ls
都非常流行。它指的是“更改目录”,顾名思义,它会将您切换到您试图访问的目录。
例如,如果您在Documents目录中,并且试图访问其名为Videos的子文件夹之一,则可以通过键入以下内容来输入:
cd Videos
您还可以提供文件夹的绝对路径:
cd /home/wbolt/Documents/Videos
在使用cd
命令时,有一些技巧可以为您节省大量时间:
1. 进入home文件夹
cd
2. 向上移动一个级别
cd ..
3. 返回上一个目录
cd -
6. cp
命令
直接在Linux终端上复制文件和文件夹非常容易,有时它可以取代传统的文件管理器。
要使用cp
命令,只需将其与源文件和目标文件一起键入即可:
cp file_to_copy.txt new_file.txt
还可以使用递归标志复制整个目录:
cp -r dir_to_copy/ new_copy_dir/
请记住,在Linux中,文件夹以正斜杠 (/
)结尾。
7. rm
命令
既然您已经知道了如何复制文件,那么了解如何删除它们将很有帮助。
您可以使用rm
命令删除文件和目录。但在使用时要小心,因为用这种方法恢复删除的文件非常困难(但并非不可能)。
要删除常规文件,请键入:
rm file_to_copy.txt
如果要删除空目录,可以使用递归(-r
)标志:
rm -r dir_to_remove/
另一方面,要删除包含内容的目录,需要使用force(-f)和recursive标志:
rm -rf dir_with_content_to_remove/
警告:误用这两个标志,你可能会抹掉一整天的工作!
8. mv
命令
您可以使用mv
命令在文件系统中移动(或重命名)文件和目录。
若要使用此命令,请将其名称与源文件和目标文件一起键入:
mv source_file destination_folder/ mv command_list.txt commands/
要使用绝对路径,请使用:
mv /home/wbolt/BestMoviesOfAllTime ./
…where ./
是您当前所在的目录。
您还可以使用mv
重命名文件,同时将其保留在同一目录中:
mv old_file.txt new_named_file.txt
9.mkdir
命令
要在shell中创建文件夹,可以使用mkdir
命令。只需指定新文件夹的名称,确保它不存在,然后就可以开始了。
例如,要创建一个保存所有图像的目录,只需键入:
mkdir images/
要使用简单命令创建子目录,请使用parent(-p
)标志:
mkdir -p movies/2004/
10.man
命令
另一个重要的Linux命令是man
。它显示任何其他命令的手册页面(只要有)。
要查看mkdir
命令的手册页,请键入:
man mkdir
您甚至可以查看 man
命令手册页面:
man man
man命令手册页面。
11.touch
命令
touch
命令允许您更新指定文件的访问和修改时间。
例如,我有一个旧文件,上次修改是在4月12日:
旧日期。
要将其修改日期更改为当前时间,我们需要使用-m
标志:
touch -m old_file
现在日期与今天的日期相符(开始编写本文时的日期为8月8日)。
新日期
尽管如此,大多数情况下,您不会使用touch
来修改文件日期,而是创建新的空文件:
touch new_file_name
12. chmod
命令
chmod
命令允许您快速更改文件的模式(权限)。它有很多可用的选项。
文件的基本权限包括:
- r (只读)
- w (写入)
- x (执行)
chmod
最常见的用例之一是使文件可由用户执行。为此,请键入chmod
和标志+x
,然后键入要修改其权限的文件:
chmod +x script
您可以使用它使脚本可执行,从而允许您使用./
符号直接运行它们。
13. ./
命令
也许 ./
符号本身不是命令,但在这个列表中值得一提。它允许shell直接从终端运行可执行文件,并在系统中安装任何解释器。不再双击图形文件管理器中的文件!
例如,使用此命令,您可以运行Python脚本或仅以.run格式提供的程序,如XAMPP。运行可执行文件时,请确保它具有可执行(x)权限,您可以使用chmod
命令修改该权限。
下面是一个简单的Python脚本,以及如何使用 ./
符号运行它:
#! /usr/bin/python3 # filename: script for i in range(20): print(f"This is a cool script {i}")
下面是我们如何将脚本转换为可执行文件并运行它:
chmod +x script ./script
14. exit
命令
exit
命令完全按照其名称执行:使用它,您可以结束shell会话,并且在大多数情况下,可以自动关闭正在使用的终端:
exit
15. sudo
命令
此命令代表“超级用户do”,它允许您在运行特定命令时充当超级用户或根用户。这就是Linux如何保护自己,防止用户意外修改机器的文件系统或安装不合适的软件包。
Sudo通常用于安装软件或编辑用户主目录以外的文件:
sudo apt install gimp sudo cd /root/
在运行您键入的命令之前,它会要求您输入管理员密码。
16. shutdown
命令
正如您可能猜到的,shutdown
命令允许您关闭机器电源。但是,它也可以用来停止和重新启动它。
要立即关闭计算机电源(默认为一分钟),请键入:
shutdown now
您还可以计划以24小时格式关闭系统:
shutdown 20:40
要取消以前的shutdown
调用,可以使用-c
标志:
shutdown -c
17. htop
命令
htop
是一种交互式流程查看器,可让您直接从终端管理计算机的资源。在大多数情况下,默认情况下它并没有安装,所以请确保在下载页面上阅读更多关于它的信息。
htop
“htop” 交互界面.
18. unzip
命令
unzip
命令允许您从终端提取.zip文件的内容。同样,默认情况下可能不会安装此软件包,因此请确保使用package管理器安装它。
下面命令行,指正在解压一个包含图像的.zip文件:
unzip images.zip
19.apt
, yum
, pacman
命令
无论您使用的是哪个Linux发行版,您都可能使用package管理器来安装、更新和删除您每天使用的软件。
您可以通过命令行访问这些package管理器,并根据您的计算机运行的发行版使用其中一个或另一个package管理器。
以下示例将安装GIMP,这是一种通常在大多数package管理器中可用的免费开源软件:
1. Debian-based (Ubuntu, Linux Mint)
sudo apt install gimp
2. Red Hat-based (Fedora, CentOS)
sudo yum install gimp
3. Arch-based (Manjaro, Arco Linux)
sudo pacman -S gimp
20. echo
命令
echo
命令在终端中显示定义的文本-就这么简单:
echo "Cool message"
echo命令
它的主要用途是在这些消息中打印环境变量:
echo "Hey $USER" # Hey wbolt
21. cat
命令
cat
是“concatenate”的缩写,用于直接从终端创建、查看和连接文件。它主要用于在不打开图形文本编辑器的情况下预览文件:
cat long_text_file.txt
cat命令.
22. ps
命令
使用ps
,您可以查看当前shell会话正在运行的进程。它打印有关正在运行的程序的有用信息,如进程ID、TTY(电传打字机)、时间和命令名。
ps
ps命令.
如果您想要更具交互性的内容,可以使用htop
。
23. kill
命令
当一个程序没有响应,并且你不能用任何方法关闭它时,这是很烦人的。幸运的是,kill
命令解决了这类问题。
简单地说,kill
向终止它的进程发送一个TERM或kill信号。
您可以通过输入PID(进程ID)或程序的二进制名称来终止进程:
kill 533494 kill firefox
使用此命令时要小心-使用kill
时,可能会意外删除您正在执行的工作。
24. ping
命令
ping
是用于测试网络连接的最流行的网络终端工具。ping
有很多选项,但在大多数情况下,您将使用它来请求域或IP地址:
ping google.com ping 8.8.8.8
25. vim
命令
vim
是一个免费的开源终端文本编辑器,从90年代开始使用。它允许您使用高效的键绑定编辑纯文本文件。
有些人认为使用困难——退出VIM是最常见的StackOverflow问题之一,但一旦习惯了,它就成为命令行中最好的盟友。
要启动Vim,只需键入:
vim
vim文本编辑器.
26. history
命令
如果你正在努力记住一个命令,history
就会派上用场。此命令显示一个枚举列表,其中包含您过去使用过的命令:
history
history命令.
27. passwd
命令
passwd
允许您更改用户帐户的密码。首先,它会提示您输入当前密码,然后要求您输入新密码并确认。
它类似于您在其他地方看到的任何其他密码更改,但在本例中,它直接在您的终端中:
passwd
passwd命令
使用时要小心-一不小心可能会混肴用户密码!
28. which
命令
which
命令输出shell命令的完整路径。如果它不能识别给定的命令,它将抛出一个错误。
例如,我们可以使用它来检查Python和Brave web浏览器的二进制路径:
which python # /usr/bin/python which brave # /usr/bin/brave
29. shred
命令
如果您希望文件几乎无法恢复,shred
可以帮助您完成此任务。此命令会重复覆盖文件的内容,因此,给定的文件极难恢复。
下面是一个内容很少的文件:
粉碎文件.
现在,让我们通过键入shred
命令来完成工作:
shred file_to_shred.txt
覆盖内容.
如果要立即删除文件,可以使用-u
标志:
shred -u file_to_shred.txt
30. less
命令
less
(与more相反)是一个允许您前后检查文件的程序:
less large_text_file.txt
less命令.
less
的优点在于它在其界面中包含了更多和vim
命令。如果您需要比cat
更具交互性的东西,less
是一个不错的选择。
31. tail
命令
与cat
类似,tail
打印文件内容时有一个主要警告:它只输出最后几行。默认情况下,它打印最后10行,但您可以使用-n
修改该数字。
例如,要打印大型文本文件的最后几行,可以使用:
tail long.txt
tail命令.
要仅查看最后四行,请执行以下操作:
tail -n 4 long.txt
tail命令尾四行.
32. head
命令
这是对tail
命令的补充。head
输出文本文件的前10行,但您可以使用-n
标志设置要显示的任意行数:
head long.txt head -n 5 long.txt
head命令.
33. grep
命令
Grep是处理文本文件的最强大的工具之一。它搜索与正则表达式匹配的行并打印它们:
grep "linux" long.txt
grep命令.
您可以使用-c
标志计算与给定条件匹配的次数:
grep -c "linux" long.txt # 2
34. whoami
命令
该命令(who am I的缩写)显示当前使用的whoami
用户名:
whoami # wbolt
使用echo
和环境变量$USER可以得到相同的结果:
echo $USER # wbolt
35. whatis
命令
whatis
打印任何其他命令的单行说明,使其成为有用的参考:
whatis python # python (1) - an interpreted, interactive, object-oriented programming language whatis whatis # whatis (1) - display one-line manual page descriptions
36. wc
命令
Wc代表“字数计数”,顾名思义,它返回文本文件中的字数:
wc long.txt # 37 207 1000 long.txt
让我们分析一下此命令的输出:
- 37行
- 207字
- 1000字节大小
- 文件名(long.txt)
如果只需要字数,请使用-w
标志:
wc -w long.txt 207 long.txt
37.uname
命令
uname
(Unix name的缩写)打印可操作的系统信息,当您知道当前的Linux版本时,这些信息很方便。
大多数情况下,您将使用-a
(–all)标志,因为默认输出没有那么有用:
uname # Linux uname -a # Linux wboltmanjaro 5.4.138-1-MANJARO #1 SMP PREEMPT Thu Aug 5 12:15:21 UTC 2021 x86_64 GNU/Linux
38.neofetch
命令
Neofetch是一个CLI(命令行界面)工具,它在Linux发行版的ASCII徽标旁边显示有关系统的信息,如内核版本、shell和硬件:
neofetch
neofetch命令
在大多数计算机中,此命令在默认情况下不可用,因此请确保首先使用package管理器安装它。
39.find
命令
find
命令根据regex表达式在目录层次结构中搜索文件。要使用它,请遵循以下语法:
find [flags] [path] -name [expression]
要在当前目录中搜索名为long.txt的文件,请输入以下命令行:
find ./ -name "long.txt" # ./long.txt
要搜索以.py (Python) 扩展名结尾的文件,可以使用以下命令行:
find ./ -type f -name "*.py" ./get_keys.py ./github_automation.py ./binarysearch.py
40. wget
命令
wget
(World Wide Web get)是从互联网检索内容的实用工具。它拥有最大的flags之一。
以下是您如何从GitHub获取一个Python文件:
wget https://raw.githubusercontent.com/DaniDiazTech/Object-Oriented-Programming-in-Python/main/object_oriented_programming/cookies.py
Linux命令备忘单
每当您想要快速参考时,只需查看下表:
.hl-code code{background-color: #eee; border-color: #ccc; font-size: 1em;}
命令 | 用法 |
---|---|
ls |
列出目录的内容 |
alias |
定义或显示别名 |
unalias |
删除别名定义 |
pwd |
打印工作目录 |
cd |
更改目录 |
cp |
复制文件和目录 |
rm |
删除文件和目录 |
mv |
移动(重命名)文件和目录 |
mkdir |
创建目录 |
man |
显示其他命令的手册页面 |
touch |
创建空文件 |
chmod |
更改文件权限 |
./ |
运行可执行文件 |
exit |
退出当前shell会话 |
sudo |
以超级用户身份执行命令 |
shutdown |
关闭您的机器 |
htop |
显示进程和资源信息 |
unzip |
解压zip文件 |
apt ,yum ,pacman
|
包管理器 |
echo |
显示文本行 |
cat |
打印文件内容 |
ps |
报告shell进程状态 |
kill |
终止程序 |
ping |
测试网络连接 |
vim |
高效文本编辑 |
history |
显示以前的命令列表 |
passwd |
更改用户密码 |
which |
返回程序的完整二进制路径 |
shred |
覆盖文件以隐藏其内容 |
less |
以交互式检查文件 |
tail |
显示文件的最后几行 |
head |
显示文件的第一行 |
grep |
打印与给定条件匹配行 |
whoami |
输出用户名 |
whatis |
显示单行说明 |
wc |
字数文件 |
uname |
显示操作系统信息 |
neofetch |
显示操作系统和硬件信息 |
find |
搜索遵循模式的文件 |
wget |
从互联网检索文件 |
小结
学习Linux可能需要一些时间,但是一旦你掌握了它的一些工具,它就成了你最好的盟友,你不会后悔选择它作为你的日常司机。
Linux的一个显著之处在于,即使您是经验丰富的用户,您也永远不会停止学习使用它提高工作效率。
有更多有用的Linux命令。如果我们遗漏了一些东西,请在下面的评论中分享您最喜爱的Linux 命令!