当前位置:首页 > > strongerHuang
[导读]你知道哪个操作系统是世界上最受欢迎的操作系统吗?是Linux!它一般运行于服务器和超级计算机上,我们日常访问网站背后的数百万台服务器很有可能运行着的操作系统就是Linux。在本文中,我们将学习Linux是什么以及它来自何处,常用的Linux知识以及想要在这个令人兴奋的平台上畅游所需的命令。


关注+星标公众号,不错过精彩内容

作者 | arvin
来源 | CSDN(ID:CSDNnews)

你知道哪个操作系统是世界上最受欢迎的操作系统吗?是Linux!它一般运行于服务器和超级计算机上,我们日常访问网站背后的数百万台服务器很有可能运行着的操作系统就是Linux。在本文中,我们将学习Linux是什么以及它来自何处,常用的Linux知识以及想要在这个令人兴奋的平台上畅游所需的命令。


1

什么是Linux?

就像Windows或Apple的mac OS一样,Linux也是一个操作系统。操作系统是管理计算机中不同设备和应用程序软件的集合。举例来说,其中的部分软件负责着关闭、启动计算机,有些软件提供与键盘和鼠标等设备交互界面等功能。

学习使用Linux系统是熟悉命令行的绝佳机会,命令行是与计算机进行通信的最明确的方式。此外,当你尝试不同的项目时,你将会学习软件仓库,程序包管理,文件权限,用户管理等更多信息。如果你有使用npm和GitHub的经验,那么程序包管理和软件仓库可能是你已经熟悉的概念。


2

为什么Linux如此流行?

Linux在企业计算,大数据和科学(联想下超级计算机)世界中独树一帜。主要原因如下
  • Linux是免费的。你不需要为使用Linux而付费,你可以自由查看,编辑和分发源代码。当你购买装有Windows或macOS的计算机时,这些操作系统的费用其实已包含在价格中。

  • Linux是灵活的。Linux被用于许多不同类型的计算机中,包括智能烤面包机和冰箱,其他物联网设备,互联网路由器,Android智能手机等,简直不胜枚举。你现在可以立即在笔记本电脑或台式机上安装Linux,而无需进行任何设置即可启动和运行!这种灵活性之所以成为可能,是因为Linux操作系统被设计为既可以简单地完成一项工作又能使用功能更完善的工具来完成工作。你可以组装一个适用于你的设备并针对你的需求进行过优化的Linux版本。


3

Unix哲学

Linux是一个“类Unix”操作系统,这意味着它的大部分功能派生自Unix操作系统,并且通常遵循Unix的设计原则。理想的Unix程序是简单,模块化和可扩展的。Unix程序确实能很好地完成一些任务,并且被设计为可以与其他程序很好地协同工作,而不必依赖太多其他程序。该系统通过利用程序的协作而变得强大,而不是因为程序本身超级强大。

关于Linux,我最喜欢的一点是一切都是文件。你在终端中运行的命令和程序被抽象成文件。用来快速打开自己喜欢的应用程序的桌面图标也被抽象成文件。系统检查应用程序更新的代码库如何处理?当然也是写在文件里。所有可能导致混乱的都可以用文件解决。Linux就是这么透明、富有动力和优雅。你可以想象一下,你可以随心设置自己的Linux安装程序,同时拥有对系统的完全控制权,只要你想要的,完全甩掉你不想要的,这非常酷炫!

这些原则如实地说明了Linux的灵活性。怪不得它被用于许多应用中。


4

一切都是文件,文件是一切的最终归宿

接下来,我将向你展示Linux中的典型系统树或文件系统层次结构。你可以在我的其他文章中(https://dev.to/emtes/learning-data-structures-trees-2p5g)阅读有关树状数据结构的更多信息。如果你要在自己的Linux系统上进行操作,你的目录可能跟我的不完全一样,可能具有更多或更少的目录。如果你想详细了解这些目录(文件夹),请在Linux终端中敲入man hier并运行该命令来阅读手册。我个人的习惯是,将喜欢的搜索引擎放在附近,以随时查找我不知道含义的新名称。

/ 这是根目录(文件夹),文件系统树(数据结构)的根
/bin 包含二进制文件,系统启动需要的可执行程序
/boot 包含机器启动时所需的内核和文件
/dev包含设备节点,与连接到计算机的物理设备一起使用的指令/接口
/etc包含系统范围的配置文件(发音为etsy),大型软件包(如gtk,python,X11)一般也在此处存储配置文件。
/home 包含系统用户的目录(每个用户的下载,图片等)
/lib 包含启动计算机的核心程序所必需的共享库
/lost+found 包含由于系统崩溃或驱动器错误而放错位置的数据
/media 包含用于USB,CD和DVD等媒体设备的安装点
/mnt 是临时文件系统的挂载点(例如用来安装系统的内容)
/opt包含程序的其他程序包。在我的机器中,Google Chrome和Minecraft Launcher将文件保存在此处。
/proc 包含与内核和正在运行的进程有关的文件
/tmp 包含在执行程序时可能创建的临时文件
/usr包含一个次要的只读系统树,用于与某些程序共享或用于安装在其他Linux系统上。上面存在许多目录也存在这里,并包含一些其他文件
/var 包含随时间变化其大小发生变化的文件,例如日志和备份
如果你经常使用Linux,可能偶尔会觉得需要在某个奇怪的目录中编辑或写入文件。我希望当你知道这些目录名称的通常含义后可以对你有所帮助!


5

命令行基础

之前我说过“与Linux机器通信的最明确的方法是命令行”,我是认真的。接下来,让我们开始学习一些基本的命令行或终端命令,这些命令将使你开始熟悉系统。如果你当前使用图形用户界面进行开发,当你熟悉命令行后,你可能会发现从终端执行操作会更加快捷和安全。

你和终端之间有一个名为shell(可以理解为操作系统内核外围的壳)的程序。Shell是解释文本命令并将其发送到操作系统以执行的程序。最常见的shell程序是Bash,大多数Linux发行版中都包含该程序。对于macOS用户来说,Apple最近将macOS的Shell程序切换为zsh。macOS实际上也是一个类似Unix的操作系统。当然你也可以随意更改shell!


6

终端命令的结构


因为文章已经论述的够多了,所以我不会在这篇文章中分享太多命令,要注意的是学习模式更为重要。通常,终端命令遵循非常相似且可预测的结构:

program_name [--optional flags] [optional arguments]

标志(flag)可以出现在参数之后,并且通常缩短到一个字母和一个破折号,例如-f。标志是更改程序行为方式的选项。比如-h或者--help是常用的帮助性质的标志,程序收到该标志后会提供给你哪些标志可供使用的信息。

参数通常是文件,但也可以是字符串和数字。

你可以从系统中任何目录调用程序,也可以将系统中任何目录的文件用作参数。你可以这么做的原因是你可以在Linux中使用相对或绝对路径来命名文件。相对路径是相对于当前目录的,你可以使用.表示当前目录(下文会详述)。绝对路径从系统根目录/开始,你需要指明每一级的目录以获取所需的文件。


7

命令索引


  • pwd 打印你当前所在的目录(print working directory,即打印工作目录)

  • cd将目录更改为你指定的参数(changes directory)。如果不提供任何参数,则默认进入用户目录,你也可以在路径中使用~进行跳转。.和.. 分别代表当前目录和父目录,并且也是cd命令的有效的参数。

  • ls列出指定参数目录中的文件(list),默认参数为当前目录,即.。该-a标志可以非常方便地查看隐藏文件。在linux中,你可以通过以.开头的文件名称来隐藏文件以减少混乱,示例如.gitignore。

    
ls -a ~/Documents

8

文件操作
  • mv 将文件或目录移动到你指定的目录(move)。
    
mv fun-letter.text ~/Documents/letters/
你还可以使用mv重命名文件和目录:
    
mv fun-letter.txt hilarious-letter.txt
其含义就是将其移动到名为新名称的位置
  • cp在指定目录中复制文件(copy)。使用-r标志递归复制目录,就像使用mv重命名文件一样,你可以使用类似的方法来重命名文件和目录。
  • mkdir创建新目录,其中新目录名称作为参数。你还可以使用-p标志在尚不存在的目录下建立新目录。
    
mkdir -p code/web-stuff/html notes
  • touch 创建新文件,其中文件名称作为参数。
你很快就会发现自己想要做更复杂的事情,因此请阅读这些命令的更多信息并保留备忘单。

8

日常使用的Linux

我不会说2020年将是Linux在台式机世界的元年,但我要分享的是,有许多Linux发行版已经能够做到开箱即用,我们可以使用非常简单的方法进行安装。如果你被Shell的功能所吸引,或者担心使用其他操作系统带来的隐私泄露风险,或者只是喜欢黑客攻击等技术,那么Linux很适合你。作为开发人员,这也是一个很棒的平台,因为它是在考虑其他开发人员的情况下制作的。Linux发行版(例如Ubuntu,Linux Mint和Fedora)可以快速启动并运行。这些发行版背后有着庞大的社区支持,社区成员很愿意帮助他人。我最后想提醒的是,记住备份所有重要的文件!

------------ END ------------


推荐阅读:

SEGGER的三款RTOS有什么特点?

Keil MDK如何将变量存储在指定内存地址

几款优秀的支持C、C++等多种语言的在线编译器


关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注


点击“ 阅读原文 ”查看更多分享,欢迎点分享、收藏、点赞、在看。

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

逻辑分析、高效能运算核心、灵活自动化烧录、先进通讯协议

关键字: 嵌入式 自动化 RS-485 接口

覆盖 TI MCU、MPU 和无线连接解决方案的统一、生产就绪平台,消除迁移障碍,并缩短全球 Zephyr 开发者的上市时间 上海2026年10月14日 /美通社/ --...

关键字: RTOS 嵌入式 TI 开发者

在物联网终端、无线传感节点、便携采集设备与无人值守嵌入式控制系统中,电池续航是决定产品实用性与运维成本的核心指标。多数低功耗嵌入式设计过度依赖软件休眠、数字时钟裁剪等数字节能手段,却忽略了模拟电路长期静态漏电、有源器件偏...

关键字: 嵌入式 控制系统 低功耗

随着物联网设备向微型化、多频段、低成本、快迭代方向快速发展,嵌入式天线设计已成为硬件开发的核心瓶颈。传统板载天线、陶瓷天线、FPC天线方案,普遍存在设计周期长、PCB布局限制多、频段适配性差、量产一致性低等问题,极大拖慢...

关键字: 天线 物联网 嵌入式

随着汽车向电动化、智能化、网联化高速迭代,车载嵌入式系统的功能复杂度、控制精度与可靠性要求大幅提升。传统车用嵌入式系统多采用“纯数字MCU+外置模拟芯片”的分立架构,存在线路繁琐、信号损耗大、响应延迟高、故障率偏高等问题...

关键字: 嵌入式 汽车电子 模拟芯片

随着生活节奏不断加快,一次采购更多食材、提前规划家庭饮食,逐渐成为不少消费者的日常习惯。尤其对于追求高品质生活的家庭而言,冰箱不仅需要拥有充足的储存空间,更需要在长时间储存过程中尽可能保持食材原有的口感与状态。然而,传统...

关键字: 十字门冰箱 净化系统 嵌入式

触觉行业论坛(HIF)制定的规范为可编程触觉提供了通用框架;Vector Haptics API控制、实时音频转触觉及双通道驱动,则为产品团队提供了紧凑的集成路径

关键字: 可编程触觉 处理器 嵌入式

我一直对谷歌助手在我们说“好,谷歌”或“嘿,Siri”时立即开始录音的机制感到着迷。这种启发促使我探索如何将唤醒词检测技术应用于嵌入式设备。在这个项目中,我也意识到在树莓派等小型板载计算机(SBC)上运行时需要进行必要的...

关键字: 嵌入式 树莓派 计算机 INMP441

在万物互联的数字化浪潮中,物联网技术打破了传统设备的信息孤岛,而嵌入式视觉作为设备感知物理世界的核心载体,正依托物联网架构完成颠覆性变革。不同于传统机器视觉依赖云端处理、固定场景作业的局限,物联网驱动下的嵌入式视觉,实现...

关键字: 物联网 嵌入式 视觉
关闭