https://mp.weixin.qq.com/s?__biz=MzU3NTgyODQ1Nw==&mid=2247499293&idx=2&sn=1353b78d6ad01d075c07a37ea0300d12&chksm=fd1f869bca680f8d5437a2e772902abb7da035b68023edca1409bed067b6594073b3f7daf0f9&mpshare=1&scene=1&srcid=1129emz0SWno61uRzkz8HjOO&sharer_sharetime=1606663666274&sharer_shareid=39c93303000269676cd11856ce587548&key=763e61b68ceb2541f7c089006d8f1c03f872b2e30127d238dfc620f28d0bcf7b547df429a9aa8bde6b3ff94187e266ef97b0ffcdf1ebb4df7c10e8e79af28eb545007577e82dc6ee49044d1a14f584b32639496652c7beb6843571897e7237317ecfe9a67b4e054fae8d1e54f77c50ce527ecd5c14ecee836809ee589c0893b3&ascene=1&uin=MTU4ODY4NzIyMQ%3D%3D&devicetype=Windows+10+x64&version=63000039&lang=zh_CN&exportkey=ATPbe2kI7cnYTqHzrrYTD7s%3D&pass_ticket=HDRr%2FCe%2BJY6Zrr6BM5bgIxPbUhfPTLhYQSHN5H6kxJ6ymspux77K3Dx82r4Qy7%2Fb&wx_header=0

终端的必备工具包

Linux包含了大量命令,但是我们在这里选择了其中的35个最重要的命令。学习这些命令,您将更加熟悉Linux命令提示符。

下面的列表按字母顺序显示。命令在列表中的位置并不代表它的有用性或简单性。有关命令用法的更多说明,请参阅其手册页。当然man命令在我们的列表中,它是manual的缩写。

1、alias(别名)

使用alias命令可以给命令或命令序列指定自己的名称。然后,您可以输入您的简称,然后Shell将为您执行命令或命令序列。

linuxmi@linuxmi:~/www.linuxmi.com$ alias cls=clear

这将设置一个名为cls的别名。这将是的另一个名称clear。当您键入cls时,它将像您键入clear一样清除屏幕。你的别名减少了一些按键。

别名可能比这个简单的示例复杂得多。这里有一个名为pf(用于进程查找)的别名,它只是稍微复杂一点。请注意在命令序列周围使用了引号。如果命令序列中有空格,这是必需的。这个别名使用ps命令列出正在运行的进程,然后将它们通过grep命令传输。grep命令在ps的输出中查找与命令行参数$1匹配的条目。

linuxmi@linuxmi:~/www.linuxmi.com$ alias pf="ps -e | grep $1"

如果您想要发现shutter进程的进程ID (PID)——或者想要知道shutter是否在运行——您可以像这样使用别名。输入pf,空格,以及你感兴趣的进程名

称:linuxmi@linuxmi:~/www.linuxmi.com$ pf nginx

当终端关闭后,命令行上定义的别名也消失了。要使您的别名永久可用,请将其添加到.bash_aliases主目录中的文件中。

2、cat

cat命令(“concatenate”的缩写)将文件的内容列出到终端窗口。这比在编辑器中打开文件要快,而且您不可能意外地修改文件。要读取.bash_log_out文件的内容,在主目录是当前工作目录的情况下,键入以下命令:

linuxmi@linuxmi:~$ cat .bash_logout

如果文件的行数超过终端窗口中的行数,那么文本拉到的速度会快得让您无法阅读。您可以将来自cat的输出通过less管道传输,以使流程更易于管理。使用less,您可以使用向上和向下箭头键、PgUp和PgDn键以及主键和结束键在文件中向前和向后滚动。键入q退出less。

linuxmi@linuxmi:~$ cat .bashrc | less

3、cd

cd命令将更改当前目录。它将您带到文件系统中的新位置。

如果要切换到当前目录内的目录,则只需键入cd和另一个目录的名称即可。

linuxmi@linuxmi:~$ cd www.linuxmi.com

如果要切换到文件系统目录树中其他位置的目录,请使用前导/表示目录路径。

linuxmi@linuxmi:~/www.linuxmi.com$ cd /usr/local/bin

要快速返回您的主目录,请使用 ~(波浪号)字符作为目录名。

linuxmi@linuxmi:/usr/local/bin$ cd

另一个技巧:可以使用双点符号..表示当前目录的父目录。您可以键入以下命令进入目录:cd ..

假设您在目录中。父目录中还有其他目录,以及您当前所在的目录。要更改为其他目录之一,可以使用..符号缩短输入的内容。

cd ../games

4、chmod(修改文件权限)

chmod命令设置文件或文件夹上的文件权限标志。这些标志定义了谁可以读取、写入或执行文件。当您使用-l (long format)选项列出文件时,您将看到一个类似于这样的字符串

drwxrwxr-x

具体见Linux修改权限命令chmod用法示例:https://www.linuxmi.com/linux-chmod.html

5、chownchown命令允许您更改文件的所有者和组所有者。使用ls -l列出我们的example.txt文件,我们可以在文件描述中看到dave dave。第一个指示文件所有者的名称,在本例中是用户linuxmi。第二个条目显示组所有者的名字也是linuxmi。每个用户都有一个在创建用户时创建的默认组。该用户是该组的唯一成员。这表明该文件不与任何其他用户组共享。

可以使用chown更改文件的所有者或组,或同时更改文件的所有者或组。必须提供所有者和组的名称,中间用:字符分隔。您将需要使用sudo。要保留linuxmi作为文件的所有者,但设置linux为组所有者,使用以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo chown linuxmi:linux linuxmi.py

要将所有者和组所有者都更改为linux,可以使用以下命令;

linuxmi@linuxmi:~/www.linuxmi.com$ sudo chown linux:linux linuxmi.py

要更改文件,使linuxmi再次成为文件所有者和组所有者,使用以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo chown linuxmi:linuxmi linuxmi.py

6、curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

具体见 Linux curl 命令进阶:https://www.linuxmi.com/linux-curl-mingling.html

7. df

df命令显示计算机安装的文件系统上的大小、使用空间和可用空间。

两个最有用的选项是-h(human readable【通俗易懂的】)和-x(排除)选项。通俗易懂的选项以Mb或Gb而不是字节显示大小。排除选项允许您告诉df贴现您不感兴趣的文件系统。例如,使用snap命令安装应用程序时创建的squashfs伪文件系统。

linuxmi@linuxmi:~/www.linuxmi.com$ df -h -x squashfs

8、diff

diff命令比较两个文本文件并显示它们之间的差异。有许多选项可以根据您的需求定制显示。

-y (side by side)选项并排显示行差。w(宽度)选项允许您指定用于避免绕行的最大行宽。在本例中,这两个文件称为alpha1.txt和alpha2.txt。--suppress-common-lines 防止diff列出匹配的行,从而使您能够关注具有差异的行。

diff -y -W 70 linuxmi.py linux.py --suppress-common-lines

9、echo

echo命令向终端窗口输出一串文本。

下面的命令将在终端窗口上打印“Linux迷www.linuxmi.com与您分享关于开源的新鲜事”。

linuxmi@linuxmi:~/www.linuxmi.com$ echo Linux迷www.linuxmi.com与您分享关于开源的新鲜事

echo命令可以显示环境变量的值,例如,$USER、$HOME和$PATH环境变量。它们包含用户名、用户的主目录以及用户在命令行上键入内容时搜索匹配命令的路径。linuxmi@linuxmi:~/www.linuxmi.com$ echo $USER

linuxmi
linuxmi@linuxmi:~/www.linuxmi.com$ echo $HOME
/home/linuxmi
linuxmi@linuxmi:~/www.linuxmi.com$ echo $PATH下面的命令将导致发出哔哔声。e(转义代码)选项将转义的字符解释为“bell”字符。

linuxmi@linuxmi:~/www.linuxmi.com$ echo -e "\a"

echo命令在shell脚本中也是非常宝贵的。脚本可以使用此命令生成可见的输出,以指示脚本执行时的进度或结果。

10、exitexit命令将关闭一个终端窗口,结束shell脚本的执行,或者使您退出SSH远程访问会话。

linuxmi@linuxmi:~/www.linuxmi.com$ exit

11、find

Linux中的Find(查找)命令是在Linux系统中最重要并且更有用的命令之一。Find命令主要用于指定匹配文件条件的参数查找或者定位文件和目录的列表。Find命令能够被使用基于各种各样的条件,例如permissions(权限),users(用户),groups(组),file type(文件类型),date(日期),size(大小)等等其它可能的条件。

具体见Linux find 命令使用简述:https://www.linuxmi.com/linux-find-mingling-shiyong.html

12、finger

finger命令提供一个关于用户的简短信息转储,包括用户最后一次登录的时间、用户的主目录和用户帐户的全名。

13、free

free命令提供计算机内存使用情况的摘要。它对主随机访问内存(RAM)和交换内存都这样做。-h(人)选项用于提供人类友好的数字和单位。如果没有这个选项,图形将以字节表示。linuxmi@linuxmi:~/www.linuxmi.com$ free -h

14、grep

grep实用程序搜索包含搜索模式的行。在查看alias命令时,我们使用grep搜索另一个程序ps的输出。grep命令还可以搜索文件的内容。这里我们在当前目录的所有文本文件中搜索单词“le”。

linuxmi@linuxmi:~/www.linuxmi.com$ grep le *.py

输出将列出文件的名称并显示与之匹配的行。高亮显示匹配的文本。

更多详情见 Linux grep 命令高级用法实例:https://www.linuxmi.com/linux-grep-mingling-gaoji.html

15、groups

groups命令告诉您用户属于哪个组。linuxmi@linuxmi:~/www.linuxmi.com$ groups linuxmi
linuxmi : linuxmi adm cdrom sudo dip plugdev kvm lpadmin lxd sambashare libvirt
linuxmi@linuxmi:~/www.linuxmi.com$ groups linux
linux : linux

16、gzip

gzip命令压缩文件。默认情况下,它删除原始文件并留下压缩版本。要同时保留原始版本和压缩版本,可以使用-k (keep)选项。

linuxmi@linuxmi:~/www.linuxmi.com$ gzip -k linux.py

17、head

head命令给出一个文件的前10行清单。如果希望看到更少或更多的行,可以使用-n (number)选项。在本例中,我们使用head,其缺省值为10行。然后重复该命令,只请求5行代码。

linuxmi@linuxmi:~/www.linuxmi.com$ head linuxmi.com.cpp

linuxmi@linuxmi:~/www.linuxmi.com$ head -n 5 linuxmi.com.cpp

18、history(历史)

history命令列出您以前在命令行上发出的命令。您可以通过键入感叹号来重复历史记录中的任何命令!以及历史列表中的命令编号。

linuxmi@linuxmi:~/www.linuxmi.com$ history

linuxmi@linuxmi:~/www.linuxmi.com$ !840

输入两个感叹号重复前面的命令。

linuxmi@linuxmi:~/www.linuxmi.com$ !!

19、kill

kill命令允许您从命令行终止进程。您可以通过提供要终止的进程的进程ID (PID)来实现这一点。不要随意杀死进程。您需要有一个很好的理由这样做。在本例中,我们将假装快门程序已经锁定。

为了找到shutter的PID,我们将使用上面关于alias命令一节中的ps和grep技巧。我们可以搜索shutter进程,得到它的PID如下:

linuxmi@linuxmi:~/www.linuxmi.com$ ps -e | grep shutter
14205 ? 00:00:02 shutter

一旦我们确定了本例中的PID-14205,我们可以按如下方式杀死它:
linuxmi@linuxmi:~/www.linuxmi.com$ kill 14205
linuxmi@linuxmi:~/www.linuxmi.com$ ps -e | grep shutter

20、less

less命令允许您在不打开编辑器的情况下查看文件。它使用起来更快,而且您不会无意中修改文件。使用更少的键,您可以使用向上和向下箭头键、PgUp和PgDn键以及主键和结束键在文件中向前和向后滚动。按Q键退出less。

要查看文件,请将其名称提供给less,如下所示:

linuxmi@linuxmi:~/www.linuxmi.com$ less linuxmi.com.cpp

您还可以将其他命令的输出传输到less中。要查看ls的整个硬盘驱动器清单的输出,请使用以下命令:

使用/在文件中向前搜索和使用?向后搜索。

21、ls

这可能是大多数Linux用户遇到的第一个命令。它列出了您指定目录中的文件和文件夹。默认情况下,ls查找当前目录。对于ls,您可以使用许多选项,我们强烈建议您查看它的手册页。这里给出了一些常见的例子。

列出当前目录下的文件和文件夹:

ls

使用-l (long)选项列出当前目录下的文件和文件夹的详细列表:

ls -l

具体详情见 Linux常用命令 ls 入门基础知识 https://www.linuxmi.com/linux-ls-rm.html

22、man

man命令以less显示命令的“man页面”。手册页是该命令的用户手册。因为man使用less来显示man页面,所以您可以使用less的搜索功能。

例如,要查看chown的手册页,可以使用以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ man chown

使用向上和向下箭头或PgUp和PgDn键来滚动文档。按q退出手册页或按h请求帮助。

23、mkdir

mkdir命令允许您在文件系统中创建新的目录。您必须向mkdir提供新目录的名称。如果新目录不在当前目录中,则必须提供新目录的路径。

要在当前目录中创建名为“ubuntu”和"centos"的新目录,请使用以下两个命令:

linuxmi@linuxmi:~/www.linuxmi.com$ mkdir ubuntu

要在“ubuntu”目录中创建一个名为“2020”的新目录,可以使用以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ mkdir ubuntu/2020

如果您要创建一个目录,但是它的父目录不存在,那么您可以使用-p(父目录)选项让mkdir也创建所有必需的父目录。在下面的命令中,我们将在“centos”目录中的“linux”目录中创建“33”目录。“linux”目录不存在,但是我们可以让mkdir一次创建所有指定的目录:

linuxmi@linuxmi:~/www.linuxmi.com$ mkdir -p centos/linux/33

还创建了“linux”目录。

24、mv

mv命令允许您将文件和目录从一个目录移动到另一个目录。它还允许您重命名文件。要移动文件,您必须告诉mv文件的位置以及您希望它移动到的位置。

在本例中,我们将从主目录中移动一个名为atop.wrapper的文件,并将其放在当前目录中。

linuxmi@linuxmi:~/www.linuxmi.com$ mv ~/code.png .

要重命名该文件,您可以将其“mv”到具有新名称的新文件中。

linuxmi@linuxmi:~/www.linuxmi.com$ mv code.png linuxmi.png

文件移动和重命名操作可以在一个步骤中实现:

linuxmi@linuxmi:~/www.linuxmi.com$ mv /linux/code.png ./linuxmi.png

25、passwd

passwd命令允许您更改用户的密码。只需键入passwd来更改您自己的密码。

您还可以更改另一个用户帐户的密码,但必须使用sudo。您将被要求输入两次新密码。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo passwd linux

26、pingping命令允许您验证与另一个网络设备是否具有网络连接。它通常用于帮助解决网络问题。要使用ping,请提供另一个设备的IP地址或机器名称。linuxmi@linuxmi:~/www.linuxmi.com$ ping 23.185.0.3

ping命令将一直运行,直到您使用Ctrl+C停止它为止。

要要求ping运行特定的ping尝试次数,使用-c (count)选项。

linuxmi@linuxmi:~/www.linuxmi.com$ ping -c 5 23.185.0.3

27、ps

ps命令列出了正在运行的进程。使用不带任何选项的ps将导致它列出当前shell中运行的进程。

linuxmi@linuxmi:~/www.linuxmi.com$ ps

要查看与特定用户相关的所有进程,请使用-u (user)选项。这可能是一个很长的列表,因此为了方便,可以通过更少的管道。

linuxmi@linuxmi:~/www.linuxmi.com$ ps -u linuxmi | less

要查看每个正在运行的进程,请使用-e(每个进程)选项:

linuxmi@linuxmi:~/www.linuxmi.com$ ps -e | less

28、pwd

pwd命令打印根/目录中的工作目录(当前目录),这非常简单。

linuxmi@linuxmi:~/www.linuxmi.com$ pwd

29、shutdown

shutdown命令允许您关闭或重新启动Linux系统。

使用不带参数的关机将在一分钟内关闭您的计算机。

linuxmi@linuxmi:~/www.linuxmi.com$ shutdown

 要立即关闭,使用now参数。

linuxmi@linuxmi:~/www.linuxmi.com$ shutdown now

您还可以安排关闭,并通知任何登录的用户等待关闭。要让shutdown命令知道何时关闭它,需要为它提供一个时间。这可以是从现在开始的一段时间,比如+90,或者一个精确的时间,比如23:00。您提供的任何文本消息都将广播给登录的用户。

linuxmi@linuxmi:~/www.linuxmi.com$ shutdown 23:00 电脑将于今晚23:00关闭,保存您 的工作并在那之前注销!

要取消关闭,使用-c(取消)选项。在这里,我们计划从现在开始关闭15分钟,然后我们改变了主意。

linuxmi@linuxmi:~/www.linuxmi.com$ shutdown +15 Shutting down in 15 minutes

!linuxmi@linuxmi:~/www.linuxmi.com$ shutdown -c

30、SSH

使用ssh命令连接到远程Linux计算机并登录到您的帐户。要建立连接,您必须提供您的用户名和远程计算机的IP地址或域名。在本例中,用户linux正在192.168.150.135登录计算机。一旦连接建立,就会要求输入密码。

linuxmi@linuxmi:~/www.linuxmi.com$ ssh linux@192.168.150.135

用户名和密码被验证并接受,然后就登录了。

31、sudo

在执行需要root或超级用户权限的操作(例如更改另一个用户的密码)时,需要使用sudo命令。

sudo passwd linuxmi

32、tail

tail命令给出一个文件的最后10行清单。如果希望看到更少或更多的行,可以使用-n (number)选项。在本例中,我们使用了tail,其缺省值为10行。然后重复该命令,只请求最后5行代码。

tail linuxmi.com.cpp

tail -n 5 linuxmi.com.cpp

33、toptop命令显示与Linux机器相关的实时数据。屏幕的顶部是状态摘要。

第一行显示了时间和计算机已经运行了多长时间,有多少用户登录到它,以及过去1、5和15分钟的平均负载。

第二行显示了任务的数量及其状态:正在运行、已停止、休眠和僵死状态。 

34、uname

您可以使用uname命令获得有关您正在使用的Linux计算机的一些系统信息。

使用-a (all)选项查看所有内容。

使用-s(内核名称)选项可以查看内核的类型。

使用-r(内核发布)选项来查看内核发布。

使用-v(内核版本)选项可以查看内核版本。

35、显示本用户信息使用whoami查找您以谁的身份登录,或者谁登录到无人操作的Linux终端。

这是你的工具箱

学习Linux就像学习其他东西一样。在熟悉这些命令之前,您需要进行一些实践。一旦你掌握了这些命令,你就会在熟练掌握这些命令的道路上走得很好。

您应该知道的35个绝对重要的Linux命令的更多相关文章

  1. 每个极客都应该知道的Linux技巧

    每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...

  2. 一定要知道的,那些Linux操作命令

    一定要知道的,那些Linux基本操作命令(一) 目录 1.文件和目录操作命令 2.用户和用户组操作命令 3.vim编辑器操作命令 4.打包和解压操作命令 5.系统操作命令 为什么要学习linux? 1 ...

  3. Android 程序员必须知道的 53 个知识点

    1. android 单实例运行方法 我们都知道 Android 平台没有任务管理器,而内部 App 维护者一个 Activity history stack 来实现窗口显示和销毁,对于常规从快捷方式 ...

  4. 嵌入式程序员应知道的0x10个C语言Tips

    [1].[代码] [C/C++]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  5. 关于C#你应该知道的2000件事

    原文 关于C#你应该知道的2000件事 下面列出了迄今为止你应该了解的关于C#博客的2000件事的所有帖子. 帖子总数= 1,219 大会 #11 -检查IL使用程序Ildasm.exe d #179 ...

  6. 关于WPF你应该知道的2000件事

    原文 关于WPF你应该知道的2000件事 以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子. 帖子总数= 1,201 动画 #7 - 基于属性的动画 #686 - 使用动画制作图像脉 ...

  7. (0)开始 Raspberry Pi 项目前需要知道的 10 件事

    https://www.digikey.cn/zh/articles/techzone/2017/feb/10-things-to-know-before-starting-a-raspberry-p ...

  8. 程序员必须要知道的Hadoop的一些事实

    程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...

  9. 【转载】在IT界取得成功应该知道的10件事

     在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...

随机推荐

  1. 【力扣】有序矩阵中第K小的元素

    给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素.请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素. 示例: matrix = [ [ 1, 5, ...

  2. Apifox(1)比postman更优秀的接口自动化测试平台

    Apifox介绍 Apifox 是 API 文档.API 调试.API Mock.API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter.通过一套系 ...

  3. 关于og4j漏洞修复解决方案及源码编译

    最近log4j爆出重大漏洞,程序员要赶紧修复了!文末提供已经编译好的jar包. 建议最好修复到log4j-2.15.0-rc2版本,临时解决方案还是存在jndi漏洞. 打开log4j官网https:/ ...

  4. iOS开发——密码存储之keychain的使用

    iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式.每个ios程序都有一个独立的keychain存储.从ios 3.0开始,跨程序分享keychain变得可行. 下 ...

  5. [BUUCTF]PWN——[V&N2020 公开赛]simpleHeap

    [V&N2020 公开赛]simpleHeap 附件 步骤: 例行检查,64位,保护全开 根据题目可知是一道堆,直接用64位ida打开 我修改了这些函数的名称,这样方便看程序 add,我们可以 ...

  6. [BUUCTF]PWN——[BJDCTF 2nd]secret

    [BJDCTF 2nd]secret 附件 步骤: 例行检查,64位程序,开启了canary和nx 本地试运行一下,看看程序大概的情况,好像是一个什么游戏 64位ida载入,检索程序里的字符串,发现了 ...

  7. xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持

    Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...

  8. Linux下c++之常见错误代码errno(退而结网法)

    1.关于 还在到处找 errno对应的含义? 自己动手,很方便可找到其明确的含义 2. 动手 2.1 创建 c++源文件,输入下面的代码: #pragma once #include <iost ...

  9. c++之sigslot库

    关于 本文演示环境: win10 + VS2017 1. demo #include <iostream> #include "sigslot.h" using nam ...

  10. 【LeetCode】453. Minimum Moves to Equal Array Elements 解题报告(Java & Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:模拟过程 方法二:求和-n*最小值 方法三: ...