作者|arvin
译者|Enmanuel,责编|屠敏
头图|CSDN下载自东方IC
出品|CSDN(ID:CSDNnews)
以下为译文:
你晓得那个操作系统是世界上最受欢迎的操作系统吗?是Linux!它通常运行于服务器和超级计算机上,我们日常访问网站背后的数百万台服务器很有可能运行着的操作系统就是Linux。在本文中,我们将学习Linux是哪些以及它来自何处,常用的Linux知识以及想要在这个令人激动的平台上畅游所需的命令。
哪些是Linux?
如同Windows或Apple的macOS一样,Linux也是一个操作系统。操作系统是管理计算机中不同设备和应用程序软件的集合。举例来说,其中的部份软件负责着关掉、启动计算机,有些软件提供与鼠标和键盘等设备交互界面等功能。
学习使用Linux系统是熟悉命令行的极佳机会,命令行是与计算机进行通讯的最明晰的形式。据悉,当你尝试不同的项目时,你将会学习软件库房,程序包管理,文件权限,用户管理等更多信息。假如你有使用npm和GitHub的经验linux修改权限,这么程序包管理和软件库房可能是你早已熟悉的概念。
为何Linux这么流行?
Linux在企业估算,大数据和科学(联想下超级计算机)世界中独树一帜。主要诱因如下
Unix哲学
Linux是一个“类Unix”操作系统,这意味着它的大部份功能派生自Unix操作系统,而且一般遵守Unix的设计原则。理想的Unix程序是简单,模块化和可扩充的。Unix程序确实能挺好地完成一些任务,但是被设计为可以与其他程序挺好地协同工作,而毋须依赖太多其他程序。该系统通过借助程序的协作而显得强悍,而不是由于程序本身超级强悍。
关于Linux,我最喜欢的一点是一切都是文件。你在终端中运行的命令和程序被具象成文件。拿来快速打开自己喜欢的应用程序的桌面图标也被具象成文件。系统检测应用程序更新的代码库怎么处理?其实也是写在文件里。所有可能造成混乱的都可以用文件解决。Linux就是那么透明、富有动力和高贵。你可以想像一下,你可以随心设置自己的Linux安装程序,同时拥有对系统的完全控制权,只要你想要的,完全摆脱你不想要的鸟哥的linux私房菜,这特别拉风!
这种原则如实地说明了Linux的灵活性。怪不得它被用于许多应用中。
一切都是文件,文件是一切的最终归宿
接出来,我将向你展示Linux中的典型系统树或文件系统层次结构。你可以在我的其他文章中()阅读有关树形数据结构的更多信息。假如你要在自己的Linux系统上进行操作,你的目录可能跟我的不完全一样,可能具有更多或更少的目录。假如你想详尽了解这种目录(文件夹),请在Linux终端中敲入manhier并运行该命令来阅读指南。我个人的习惯是,将喜欢的搜索引擎置于附近,以随时查找我不晓得涵义的新名称。
/这是根目录(文件夹),文件系统树(数据结构)的根
/bin包含二补码文件,系统启动须要的可执行程序
/boot包含机器启动时所需的内核和文件
/dev包含设备节点,与联接到计算机的化学设备一起使用的指令/插口
/etc包含系统范围的配置文件(发音为etsy),小型软件包(如gtk,python,X11)通常也在此处储存配置文件。
/home包含系统用户的目录(每位用户的下载,图片等)
/lib包含启动计算机的核心程序所必需的共享库
/lost+found包含因为系统崩溃或驱动器错误而放错位置的数据
/media包含用于USB,CD和DVD等媒体设备的安装点
/mnt是临时文件系统的挂载点(比如拿来安装系统的内容)
/opt包含程序的其他程序包。在我的机器中,GoogleChrome和MinecraftLauncher将文件保存在此处。
/proc包含与内核和正在运行的进程有关的文件
/tmp包含在执行程序时可能创建的临时文件
/usr包含一个次要的只读系统树,用于与个别程序共享或用于安装在其他Linux系统上。里面存在许多目录也存在这儿,并包含一些其他文件
/var包含随时间变化其大小发生变化的文件,比如日志和备份
假如你常常使用Linux,可能时常会认为须要在某个奇怪的目录中编辑或写入文件。我希望当你晓得这种目录名称的一般涵义后可以对你有所帮助!
命令行基础
之前我说过“与Linux机器通讯的最明晰的方式是命令行”,我是认真的。接出来,让我们开始学习一些基本的命令行或终端命令,这种命令将使你开始熟悉系统。假如你当前使用图形用户界面进行开发,当你熟悉命令行后,你可能会发觉从终端执行操作会更推动捷和安全。
你和终端之间有一个名为shell(可以理解为操作系统内核外围的壳)的程序。Shell是解释文本命令并将其发送到操作系统以执行的程序。最常见的shell程序是Bash,大多数Linux发行版中都包含该程序。对于macOS用户来说,Apple近来将macOS的Shell程序切换为zsh。macOS实际上也是一个类似Unix的操作系统。其实你也可以随便修改shell!
终端命令的结构
由于文章早已阐述的够多了,所以我不会在这篇文章中分享太多命令,要注意的是学习模式更为重要。一般,终端命令遵守十分相像且可预测的结构:
program_name[--optionalflags][optionalarguments]
标志(flag)可以出现在参数以后,但是一般减短到一个字母和一个冒号,比如-f。标志是修改程序行为方法的选项。诸如-h或则--help是常用的帮助性质的标志,程序收到该标志后会提供给你什么标志可供使用的信息。
参数一般是文件,但也可以是字符串和数字。
你可以从系统中任何目录调用程序,也可以将系统中任何目录的文件用作参数。你可以如此做的缘由是你可以在Linux中使用相对或绝对路径来命名文件。相对路径是相对于当前目录的,你可以使用.表示当前目录(下文会详谈)。绝对路径从系统根目录/开始,你须要指明每一级的目录以获取所需的文件。
命令索引
ls -a ~/Documents
文件操作
mv fun-letter.text ~/Documents/letters/
你还可以使用mv重命名文件和目录:
mv fun-letter.txt hilarious-letter.txt
其涵义就是将其联通到名为新名称的位置
mkdir -p code/web-stuff/html notes
你很快都会发觉自己想要做更复杂的事情linux 版本,因而请阅读这种命令的更多信息并保留备忘单。
日常使用的Linux
我不会说2020年将是Linux在台式机世界的元年,但我要分享的是,有许多Linux发行版早已才能做到开箱即用,我们可以使用特别简单的方式进行安装。假如你被Shell的功能所吸引,或则害怕使用其他操作系统带来的隐私泄漏风险,或则只是喜欢黑客功击等技术,这么Linux很适宜你。作为开发人员linux修改权限,这也是一个很棒的平台,由于它是在考虑其他开发人员的情况下制做的。Linux发行版(比如Ubuntu,LinuxMint和Fedora)可以快速启动并运行。这种发行版背后有着庞大的社区支持,社区成员很乐意帮助别人。我最后想提醒的是,记住备份所有重要的文件!
原文: