Linux命令行
现在,大多数计算机用户只是熟悉图形用户界面(GUI),并且认为命令行界面(CLI)是一种很古老的,很难使用的东西.其实不然,一个良好的命令行界面可是让我们更加充分,高效的利用计算机,正如鲁迅先生说的(嗯,不记得是谁说的就说是鲁迅),“图形用户界面让简单的任务更容易完成,而命令行界面使完成复杂的任务成为可能”.
为什么使用命令行
事实上,很多人选择Linux(而不是其他的系统,比如说 Windows 10)是因为其可以使“完成复杂的任务成为可能”的强大的命令行界面.举个栗子,你在Windows下移动一个文件是怎么操作的呢?先右键点击文件,剪切,然后通过点击文件夹图标进入到目标文件夹,右键,粘贴.而在命令行界面下,只需输入以下命令,回车就可以了:
mv file dictionary
假如你在一个文件夹下面放了很多文件,有图片(.png),视频(.mp4)和各种文档(.doc,.xlsx,.pdf等),现在你想把所有的视频整理一下放到一个文件夹下面,怎么做呢?在图形界面下,你需要先右键,新建文件夹,输入文件夹名,然后按住键盘上的CTRL,再用鼠标依次点击所有的视频文件(也可以框选),然后右键剪切,点击进入新建的文件夹,右键粘贴.同样的,这个稍微复杂(复杂度取决于具体文件种类以及数量的多少)点的操作在命令行界面下只需2步:
mkdir dictionary
mv *.mp4 dictionary
当然,命令行的优势远不止如此,而且他的知识量很大,不容易掌握,Linux操作系统有数以千计的命令可供用户操作.不像其他一些计算机技能,一段时间后可能被淘汰了(所以不要再纠结于哪门语言最好,哪个框架最流行了),命令行只是却不会落伍,你今天所学到的,在十年以后,都会有用处.现在大家都说计算机软件行业知识更新太快,一项技术自己还没学会就已经过时了,其实我觉得有两件东西是不容易过时的,一是操作系统相关知识,二是数学知识,它们都通过了时间的检验.
如何使用Linux命令行
1.Git Bash
如果你有一台Windows电脑,又不想太麻烦,可以装个Git Bash体验一下.为什么装了这个之后就可以在Windows下执行Linux命令了呢?以下源自知乎回答:
简单说:因为这些工具在 Windows 中实现了 Linux 的功能。
Windows 和 Linux 提供给应用程序的功能接口是不一样的,所以这些应用不能直接在 Windows 中运行。要让这些程序运行,有两种办法,一个是修改程序的代码,让它在 Windows 中使用 Windows 的接口。另一个是在 Windows 中实现 Linux 的接口。
而实际上程序太多,一个个去改代码并不方便,所以就选择第二种方法。
因為 git for Windows 自帶了個 mingw 啊。git 要正常運行需要這個最小的 mingw 環境而已。
其它問題看起來都是 mingw 的問題了,比如為什麼不能執行 Linux 的 elf ,因為這是 mingw 不是 wsl 。
Git for Windows自带了Linux下一些命令行工具的Windows版,注意它们都是被编译成Win32应用程序的,本质上还是Win32环境,所以实际上还是只能运行Win32可执行文件。
而Win10提供的WSL相当于一个Linux“模拟器”(原理不完全一致),可以直接运行Linux二进制文件
链接:https://www.zhihu.com/question/65055974/answer/227486573
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
具体操作可以参考这篇文章:
体验Git Bash,在windows下的Linux命令行.
同类工具还有Cmder,cygwin64
2.MacOS
这个简单,只要买个Mac电脑就行了.Mac的终端虽然比不上Linux,但是也够用了.
3.虚拟机or双系统
虚拟机可以使用vmware,具体使用方法自行百度.
安装双系统的话,Ubuntu官网就有制作启动盘的教程,后面怎么启动,怎么安装也请自行百度吧.?
什么是shell
-
首先说一下"终端"的概念
大家都知道,最初的计算机由于价格昂贵,因此,一台计算机一般是由多个人同时使用的。在这种情况下一台计算机需要连接上许多套键盘和显示器来供多个人 使用。在以前专门有这种可以连上一台电脑的设备,只有显示器和键盘,还有简单的处理电路,本身不具有处理计算机信息的能力,他是负责连接到一台正常的计算 机上(通常是通过串口) ,然后登陆计算机,并对该计算机进行操作。当然,那时候的计算机操作系统都是多任务多用户的操作系统。这样一台只有显示器和键盘能够通过串口连接到计算机 的设备就叫做终端。而控制台又是什么回事呢? 学机电的人应该知道,一台机床,或者数控设备的控制箱,通常会被称为控制台,顾名思义,控制台就是一个直接控制设备的台面(一个面板,上面有很多控制按钮)。在计算机里,把那套直接连接在电脑上的键盘和显示器就叫做控制台。请注意它和终端的区别,终端是通过串口连接上的,不是计算机本身就有的设备,而控制台是 计算机本身就有的设备,一个计算机只有一个控制台。计算机启动的时候,所有的信息都会显示到控制台上,而不会显示到终端上。也就是说,控制台是计算机的基 本设备,而终端是附加设备。 当然,由于控制台也有终端一样的功能,控制台有时候也被模糊的统称为终端。计算机操作系统中,与终端不相关的信息,比如内核消息,后台服务消息,都可以显示到控制台上,但不会显示到终端上。以上是控制台和终端的历史遗留区别。现在由于计算机硬件越来越便宜,通常都是一个人独占一台计算机超做,不再连接以前那种真正意义上的“终端设备了”,因此,终端和控制台的概念也慢慢演化了。终端和控制台由硬件的概念,演化成了软件的概念。 现在说的终端,比如linux中的虚拟终端,都是软件的概念,他用计算机的软件来模拟以前硬件的方式。比如在linux中,你用 alt+f1 ~ f6 可以切换六个虚拟终端,就好比是以前多人公用的计算机中的六个终端设备,这就是为什么这个叫“虚拟终端”的原因。 -
然后是shell
shell是一个抽象概念,shell的一切操作都在计算机内部,负责处理人机交互,执行脚本等,是操作系统能正常运行的重要组成部分,在命令终端里可以使用shell.而bash,ash,zsh,tcsh等是shell这个抽象概念的一种具体的实现,都是一个程序,都能生成一个进程对象。如果想换shell的程序,可以修改/etc/passwd,把里面的/bin/bash换成你想要的shell,或者用chsh命令来切换.
shell与终端的关系:shell把一些信息适当的输送到终端设备,同时还接收来自终端设备的输入。一般每个shell进程都会有一个终端关联,也可以没有。