那么...Linux?
介绍
你知道 Linux 是世界上最流行的操作系统吗?没错!它适用于服务器和超级计算机。数百万台托管我们访问的网站的服务器很可能运行着某个版本的 Linux。在本文中,我们将了解 Linux 是什么、它从何而来,以及开始使用这个激动人心的平台所需的词汇和命令。
什么是 Linux?
Linux 是一个操作系统,就像 Windows 或苹果的 mac OS 一样。操作系统是管理计算机中各种设备和应用程序的软件集合。这些软件负责诸如关闭计算机、启动计算机以及为程序提供与键盘和鼠标等设备交互的界面等操作。
学习使用 Linux 系统是熟悉命令行(与机器通信的最直接方式)的绝佳机会。此外,随着你尝试不同的项目,你将开始学习仓库、包管理、文件权限、用户管理等等。如果你有使用 npm 和 GitHub 的经验,那么包管理和仓库这些概念你可能已经很熟悉了。
Linux 为何如此受欢迎?
Linux 在企业计算、大数据和科学(比如超级计算机!)领域脱颖而出。为什么?
- Linux 是免费的。它以多种方式免费,您无需付费即可使用 Linux,并且可以自由查看、编辑和分发源代码。当您购买搭载 Windows 或 macOS 的计算机时,创建和维护这些操作系统的成本已包含在价格中。
- Linux 非常灵活。Linux 广泛应用于各种类型的计算机。例如智能烤面包机和冰箱、其他物联网设备、互联网路由器、安卓智能手机等等,不胜枚举。您现在就可以在笔记本电脑或台式机上安装 Linux,只需进行少量设置即可运行!更多内容见文末。这种灵活性之所以能够实现,是因为 Linux 操作系统的设计理念是将众多不同的工具整合在一起,这些工具可以高效地完成一项任务。您可以自行拼凑一个适合您的设备并针对您的需求进行优化的Linux 版本。
Unix 哲学
Linux 是一个“类 Unix”操作系统,这意味着它的大部分功能源自 Unix 操作系统,并且通常遵循 Unix 的设计原则。理想的 Unix 程序应该简洁、模块化且可扩展。Unix 程序能够出色地完成一些任务,并且能够与其他程序良好协作,而无需依赖太多其他程序。该系统的强大源于组成它的程序之间的协作,而非程序本身的强大。
我最喜欢 Linux 的地方在于,系统中的一切都以文件的 形式存在。你在终端中运行的那些命令和程序?文件。桌面上那些可以快速打开常用应用的图标?文件。系统检查应用程序更新的仓库呢?都写在一个文件中!所有这些都可以随意操作。透明!强大!简直太棒了。想象一下,有一天,你可以安装自己的 Linux,里面装着你想要的一切,没有你不需要的,同时还能完全掌控你的系统……很酷,不是吗?
这些原则确实体现了Linux的灵活性。难怪它被如此多的应用程序所采用!
一切都是文件,这里就是它们居住的地方
我想向您展示 Linux 安装中典型的系统树,或者说文件系统层次结构。在我的另一篇文章中了解更多关于树状数据结构的内容!如果您在自己的 Linux 系统中继续学习,请注意,您的目录可能更多或更少。如果您想详细了解这些目录(文件夹),请man hier
在 Linux 终端中运行并继续阅读!我个人会随身携带我常用的搜索引擎,以便查找许多我不认识的单词。
/
这是根目录(文件夹),树的根(是的,数据结构😄)
/bin
包含系统启动所需的二进制文件、可执行程序
/boot
包含机器启动时所需的内核和文件
/dev
包含设备节点、与机器连接的物理设备一起使用的指令/接口
/etc
包含系统范围的配置文件(发音为etsy)。大型软件包(例如gtk
、python
和 )X11
也在此处存储配置文件。
/home
包含系统用户的目录(每个用户的下载、图片等)
/lib
包含启动机器所需的核心程序共享的库
/lost+found
包含系统崩溃期间或由于驱动器错误而丢失的数据
/media
包含 USB、CD 和 DVD 等媒体设备的挂载点。
/mnt
是临时文件系统的挂载点(例如,您可能用来构建安装的文件系统)
/opt
包含程序的附加包。在我的电脑上,Google Chrome 和 Minecraft 启动器将文件保存在这里。
/proc
包含与内核和正在运行的进程相关的文件
/tmp
包含在执行程序时可能创建的临时文件
/usr
包含一个辅助的只读系统树,用于与某些程序共享或挂载到其他 Linux 系统。上述许多目录都包含此处的其他文件。
/var
包含大小随时间变化的文件,如日志和备份
如果您经常使用 Linux,有时您会发现需要编辑或写入一些奇怪的目录中的文件。我希望了解这些名称通常的含义能对您有所帮助!
命令行基础知识
我之前说过“与 Linux 机器通信最直接的方式是命令行”,我是认真的。让我们学习一些基本的命令行或终端命令,它们能让你开始熟悉你的系统。如果你目前使用图形用户界面进行开发,你可能会发现从终端执行操作更快捷、更安全(差不多)。
在你和终端之间有一个叫做 shell 的程序。shell 是一个解释文本命令并将其发送到操作系统执行的程序。最常见的 shell 程序是Bash,它包含在大多数 Linux 安装中。对于 macOS 用户,Apple 最近将 shell 程序切换为zsh。macOS 实际上也是一个类 Unix 操作系统。你也可以更改你的 shell!
终端命令的结构
我不会在这篇文章中分享太多命令,篇幅已经够长了,而且学习模式更重要。通常,终端命令遵循非常相似且可预测的结构:
program_name [--optional flags] [optional arguments]
标志可以位于参数之后,通常缩写为一个字母加一个短划线,例如-f
。标志是改变程序行为方式的选项。-h
或者--help
是常用标志,用于告诉程序您想要查看哪些标志可用。
参数通常是文件,但也可以是字符串和数字。
您可以从系统中的任意目录调用程序,也可以使用系统中任意目录中的文件作为参数。之所以可以这样做,是因为文件命名可以使用相对路径或绝对路径。相对路径是相对于当前目录的,您可以使用 来引用当前目录.
。绝对路径从系统根目录开始/
,逐个目录命名,直到找到所需的文件。
导航
-
pwd
打印您当前所在的目录(打印工作目录) -
cd
将目录更改为您指定的参数。如果您未提供任何参数,则默认情况下将带您到您的用户目录。您可以在路径中使用~
..
和来引用该目录,..
前者代表当前目录,后者代表父目录,它们也是有效的参数。 -
ls
列出您指定参数目录中的文件,默认情况下为.
。该-a
标志对于查看隐藏文件非常有用。例如,您可以通过以 开头的文件名称来隐藏文件.
,.gitignore
以减少混乱。
ls -a ~/Documents
文件操作
mv
将文件或目录移动到指定的目录。
mv fun-letter.text ~/Documents/letters/
您还可以使用mv
重命名文件和目录:
mv fun-letter.txt hilarious-letter.txt
就像用新名字将它移到自己身上一样!
-
cp
在指定目录中复制文件。使用-r
标志复制目录,并且可以使用 重命名文件和目录,cp
就像我们使用 操作一样mv
。 -
mkdir
创建新目录,其名称作为参数。您还可以使用该标志在尚不存在的目录中创建目录-p
。
mkdir -p code/web-stuff/html notes
touch
创建新文件,其名称就是您的参数。
您很快就会发现自己想要做更复杂的事情,因此请阅读有关这些命令的更多信息并保留一份备忘单😉。
Linux 的日常使用
我不会说 2020 年会成为 Linux 桌面时代的元年,但我要说的是,现在有很多 Linux 发行版开箱即用,安装方法也很简单。如果您被 Shell 的强大功能所吸引,担心使用其他操作系统时会泄露隐私,或者您只是喜欢进行一些黑客攻击,那么 Linux 或许就是您的理想之选。作为开发者,Linux 也是一个很棒的平台,因为它在设计时就考虑到了其他开发者的需求。像 Ubuntu、Linux Mint 和 Fedora 这样的 Linux 发行版可以让您快速上手。这些“发行版”都拥有庞大的社区,社区里有很多乐于助人的人。请务必记住备份所有重要文件!
感谢阅读!欢迎大家评论和反馈 :)
文章来源:https://dev.to/emtes/so-linux-3i9k