从 Windows 系统 到 Linux 系统之旅 All In One
从 Windows 系统 到 Linux 系统之旅 All In One
Windows 到 Linux 之旅: 第 1 部分 Linux 思想
不同之处与相似之处
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。我们首先来认识 Linux 和 Windows 之间的不同之处与相似之处,并学会不要总是通过重新引导系统来解决问题。
您已经开始从 Windows 转向 Linux,这可能是您自己的决定,也可能是“不得已而为之”。无论出于何种原因,您原来非常熟悉的工作方式和工具可能都将变得完全不同。不但如此,您可能还需要培训别人如何去轻松地管理 Linux。管理绝不是循规蹈矩,成功地管理计算环境是一项创造性的工作。实现这一转变就如同一个熟练的油画家转而去从事雕塑一样。
开放的标准使得 Linux 也要遵循 Windows 管理的基本模式,这对用户来说的确是好消息。虽然两者的一些术语并不相同,工具也有一些区别,但是根本的原理是一样的。更好的消息是,当您习惯 Linux 的工作方式后,您将具有更大的工具集来控制和维护您的环境。Linux 的强大之处在于它的稳定性和灵活性。一旦您领悟了 Linux 的思想,您将可以完成更多的任务,使更多的任务自动化,更多地以远程方式完成任务。
Linux 与 Windows 有一些类似
在讨论 Linux 与 Windows 有多大不同之前,让我们先来看看这两者有哪些相似之处。
用户和组
Linux 和 Windows 都是多用户操作系统。都可以由许多不同的用户来使用,为每个用户提供单独的环境和资源。基于用户身份来控制安全性。都可以以组成员的方式来控制资源的访问权限,这样在用户数目较大时可以不必为每一个帐号设置权限。
用户和组可以集中管理,让多个服务器共享相同的用户和身份验证数据。
文件系统
Linux 和 Windows 都支持多种文件系统。文件资源可以通过 NetBIOS、FTP 或者其他协议与其他客户机共享。可以很灵活地对各个独立的文件系统进行组织,由管理员来决定它们在何处可以以何种方式被访问。
端口和设备
两种操作系统都支持各种物理设备端口,比如并口、串口和 USB 接口。支持各种控制器,比如 IDE 和 SCSI 控制器。Linux 还支持很多“刚刚上市”的标准硬件。
网络
Linux 和 Windows 都支持多种网络协议,比如 TCP/IP、NetBIOS 和 IPX。都支持多种类型的网络适配器。都具备通过网络共享资源的能力,比如共享文件和打印。都可以提供网络服务能力,比如 DHCP 和 DNS。
服务
Linux 和 Windows 都提供服务。所谓服务,指的是那些在后台运行的应用程序,可以为系统和远程调用该服务的计算机提供一些功能。在系统引导的时候可以单独控制并自动启动这些程序。(注意:Linux 中沿用了 Unix 的习惯,称这种应用程序为 daemon,)
Linux 与 Windows 的不同
虽然有一些类似之处 ,但 Windows 和 Linux 的工作方式还是存在一些根本的区别。这些区别只有在您对两者都很熟悉以后才能体会到,但它们却是 Linux 思想的核心。
Linux 的应用目标是网络而不是打印
Windows 最初出现的时候,这个世界还是一个纸张的世界。Windows 的伟大成就之一在于您的工作成果可以方便地看到并打印出来。这样一个开端影响了 Windows 的后期发展。
同样,Linux 也受到了其起源的影响。Linux 的设计定位于网络操作系统。它的设计灵感来自于 Unix 操作系统,因此它的命令的设计比较简单,或者说是比较简洁。由于纯文本可以非常好地跨网络工作,所以 Linux 配置文件和数据都以文本为基础。
对那些熟悉图形环境的人来说,Linux 服务器初看可能比较原始。但是 Linux 开发更多关注的是它的内在功能而不是表面上的东西。即使是在纯文本的环境中,Linux 同样拥有非常先进的网络、脚本和安全能力。执行一些任务所需的某些表面上看起来比较奇怪的步骤是令人费解的,除非您认识到 Linux 是期望在网络上与其他 Linux 系统协同执行这些任务。Linux 的自动执行能力也很强,只需要设计批处理文件就可以让系统自动完成非常详细的任务。Linux 的这种能力来自于其基于文本的本质。
可选的 GUI
Linux 有图形组件。Linux 支持高端的图形适配器和显示器,完全胜任图形相关的工作。现在,许多数字效果艺术家在 Linux 工作站上来进行他们的设计工作,而以前这些工作需要使用 IRIX 系统来完成。但是,图形环境并没有集成到 Linux 中,而是运行于系统之上的单独一层。这意味着您可以只运行 GUI,或者在需要时才运行 GUI。如果您的系统主要任务是提供 Web 应用,那么您可以停掉图形界面,而将其所用的内存和 CPU 资源用于您的服务。如果您需要在 GUI 环境下做一些工作,可以再打开它,工作完成后再将其关闭。
Linux 有图形化的管理工具,以及日常办公的工具,比如电子邮件、网络浏览器和文档处理工具等。不过,在 Linux 中,图形化的管理工具通常是控制台 (命令行) 工具的扩展。也就是说,用图形化工具能完成的所有工作,用控制台命令同样可以完成。同样,使用图形化工具并不妨碍您对配置文件进行手工修改。其实际意义可能并不是特别显而易见,但是,如果在图形化管理工具中所做的任何工作都可以以命令行的方式完成,这就表示那些工作也可以由一个脚本来实现。脚本化的命令可以成为自动执行的任务。Linux 同时支持这两种方式,并不要求您只用文本或者只用 GUI。您可以根据您的需要选择最好的方法。
Linux 中的配置文件是人类可读的文本文件,这与过去的 Windows 中的 INI 文件类似,但与 Windows 的注册表机制在思路上有本质的区别。每一个应用程序都有其自己的配置文件,而且通常不与其他的配置文件放在一起。不过,大部分的配置文件都存放于一个目录树 (/etc) 下的单个地方,所以看起来它们在逻辑上是在一起。文本文件的配置方式使得不通过特殊的系统工具就可以完成配置文件的备份、检查和编辑工作。
文件名扩展
Linux 不使用文件名扩展来识别文件的类型。相反,Linux 根据文件的头内容来识别其类型。为了提高人类可读性您仍可以使用文件名扩展,但这对 Linux 系统来说没有任何作用。不过,有一些应用程序,比如 Web 服务器,可能使用命名约定来识别文件类型,但这只是特定的应用程序的要求而不是 Linux 系统本身的要求。
Linux 通过文件访问权限来判断文件是否为可执行文件。任何一个文件都可以赋予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。这样做有利于安全。保存到系统上的可执行的文件不能自动执行,这样就可以防止许多脚本病毒。
重新引导是最后的手段
如果您使用 Windows 已经很长时间了,您可能已经习惯出于各种原因(从软件安装到纠正服务故障)而重新引导系统。在 Linux 思想中您的这一习惯需要改变。Linux 在本质上更遵循“牛顿运动定律”。一旦开始运行,它将保持运行状态,直到受到外来因素的影响,比如硬件的故障。实际上,Linux 系统的设计使得应用程序不会导致内核的崩溃,因此不必经常重新引导(与 Windows 系统的设计相对而言)。所以除了 Linux 内核之外,其他软件的安装、启动、停止和重新配置都不用重新引导系统。
如果您确实重新引导了 Linux 系统,问题很可能得不到解决,而且还会使问题更加恶化。学习并掌握 Linux 服务和运行级别是成功解决问题的关键。学习 Linux 最困难的就是克服重新引导系统的习惯。
另外,您可以远程地完成 Linux 中的很多工作。只要有一些基本的网络服务在运行,您就可以进入到那个系统。而且,如果系统中一个特定的服务出现了问题,您可以在进行故障诊断的同时让其他服务继续运行。当您在一个系统上同时运行多个服务的时候,这种管理方式非常重要。
命令区分大小写
所有的 Linux 命令和选项都区分大小写。例如, -R 与 -r不同,会去做不同的事情。控制台命令几乎都是小写的。我们将在“ 第 2 部分. 控制台速成班”中对命令进行更详细的介绍。
我应如何定位 Linux?
从管理 Windows 到管理 Linux 的转变是很麻烦的。不过,作为一个 Windows 管理员,您有自己的优势。您对计算的工作方式的理解依然可用。能否成为一个成功的 Linux 管理员将取决于您对两者区别的认识以及操作习惯的调整。
Linux 相对于 Windows 的许多变化都是有益的。空闲的 GUI 的开销被归还给服务。任务可以脚本化并可以自动执行。配置文件基于文本并且人类可读。在大多数情况下不必重新引导系统。实际上,您应该抑制重新引导系统的冲动。
参考资料
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文.
- From DOS/Windows to Linux HOWTO为那些具有 DOS 或 Windows 背景的人提供了一些快速上手的资料。
- 要开始在 Linux 上使用 IBM 的软件产品, 为您的 Linux 应用开发加油提速将为您提供最好的参考资料。您可以找到关于 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多种应用软件的安装提示和参考资料。您还可以登录获得免费的 Linux Software Evaluation Kit,里面有试用软件和培训资料。
- 到 developerWorks的 从这里开始学习 Linux页面继续学习 Linux 基本概念。
- Linux Documentation Project是一个 Linux 文档仓库,它所收集的文档包括单独的软件、HOWTO 文档、FAQ,等等。
- Linux Online!提供了无偏见的 Linux 新闻和信息。
- O'Reilly Network是 Linux 技术书籍的极好资源。
- Linux at IBM站点提供了软件、链接、端到端的 Linux 解决方案、 用户参考、IBM Alliances/Linux 产品伙伴和 IBM 开源产品。 特别的,请参阅 Linux at IBM 页面上的 Learning Linux和 Linux Education资料。
- IBM 提供 Linux 专业认证服务以及 UNIX 和 Linux 硬件和各种软件系统 (包括 IBM 产品) 的 专业认证。
- IBM Partnerworld为 IBM 的商务伙伴提供市场和销售支持。
- Linux lens是 IBM 商务伙伴快速接触 Linux 的门户。
- 在 developerWorksLinux 专区可以找到更多 为 Linux 开发者准备的参考资料。
Windows 到 Linux 之旅: 第 2 部分. 控制台速成班
Linux 控制台快速指南
IBM 电子商务架构师 Chris Walden 将通过他在 developerWorks 上发表的九篇系列文章来指导您如何在 Linux 环境中运用您的 Windows 操作技巧。本部分将介绍各种不同的 shell 和一些最基本的 Linux 命令。
Linux 中的所有管理任务都可以在控制台中完成。许多情况下,使用控制台比使用图形化的程序更快捷,而且还可能实现额外的功能。不仅如此,所有的控制台任务都可以写到脚本中,这样就可以自动执行。为了真正地驾驭您的 Linux 环境,您将希望掌握如何在控制台中工作。如果您曾经使用过 DOS/Windows,本文将引导您开始使用 Linux 控制台。
进入控制台
如果您的系统引导进入文本模式(为了降低服务开销,服务器通常是这样配置的),那么您在以文本形式登录后就已经在控制台中了。在典型的 Linux 系统中,通过组合键 Ctrl + Alt + (F1 - F6) 您可以切换到另外的控制台。每一个控制台是系统中一个完全独立的会话,不同的用户可以同时使用。
这一多控制台的特点与 Windows 中的多桌面不同。在 Linux 中,每一个控制台可以分别由完全不同的用户来控制。例如,您可能在控制台 1 中以 root身份登录,而在控制台 2 中以 joeuser 身份登录。两个控制台在各自的用户空间中运行不同的程序。与此类似,不同的用户可以远程登录到同一个 Windows 系统中。就这一点来说,Linux 更像是主机而不是简单的服务器或工作站。
如果您是在图形模式下,那么您可以打开一个 终端 (terminal)以进入控制台窗口。通常在桌面的任务条上会有终端的按钮。您也可以从上下文菜单(在桌面上单击右键)打开终端 。
命令
在控制台中可以使用的命令很多。其中有一些实际上只在编写脚本时才会用到。这里介绍一些您最可能用到的命令。不要忘记,所有的命令和选项都区分大小写。 -R 与 -r不同,会去执行不同的操作。控制台命令几乎全都是小写的。
cd
使用我们所熟悉的 cd
命令可以在目录间切换。一定注意的是在 Linux 中用的是正斜杠 (/),而不是您所熟悉的反斜杠 (\)。反斜杠也用到了,但只是用来说明命令需要换行继续,这样可以提高比较长的命令的可读性。
lsls
命令用于列出一个目录下的所有文件。可以使用许多不同的开关更改列表的表示形式:
列出文件
ls -l | 以长格式列出文件,包括文件大小、日期和时间、属性 |
---|---|
ls -t |
对文件以时间排序 |
ls -S |
对文件以大小排序 |
ls -r |
与一个排序开关组合起来使用,逆序排列。 ls -t 将最新的文件显示在列表的顶部。 ls -t 将最新的文件显示在底部。 |
ls -h |
易读格式。使用 k、M、G 等来标识文件的大小,而不是以字节为单位。 |
ls -a |
显示目录中所有的文件,包括隐藏文件 |
cp
使用 cp
命令来复制文件。这个命令与 DOS 下的 copy
命令基本一样。基本的开关如下:
复制文件
cp -R | 递归地复制文件;当需要复制整个目录时会用到 |
---|---|
cp -f |
强制复制并覆盖已有的文件,不询问用户 |
cp -l |
链接文件,而不是复制;见下面的说明 |
mv
使用 mv
命令来移动和重命名文件。这个命令的工作方式基本上与 DOS 中的 move
命令一样,不过它可以移动整个目录结构及所有文件。
cat
使用 cat
命令来查看文件的内容。它相当于 DOS 中的 type
命令。它将把文件的内容转储到另一个文件、屏幕或者其他命令。 cat
是concatenate 的简写,还可以将一系列的文件合并为一个大文件。
more
使用命令 more
可以以分页的方式查看文件。它基本上与 DOS 中的 more
命令相同。
lessless
命令也是用来查看文件,但是它支持上下滚屏以及在文档中进行文本搜索。
vi
有一些人可能会说 vi
表示“virtually impossible”。它是 Unix 中的一个历史悠久的文本编辑器。 vi
并不真正直观,但是现在几乎所有的类 Unix 环境中都有 vi
。对于 Linux 中安装的版本有一个内置的教程,一旦您熟悉了 vi
,只需几次击键就可以完成不可思议的任务。说实话,没有任何编辑器能够取代 vi 来编辑密码和配置文件。
man
使用 man
命令来查看命令的文档。man 是 manual 的缩写。几乎每一个命令都有相应的文档。要深入了解 man
,请输入以下命令:
man man
infoinfo
命令与 man
命令类似,不过它提供了超链接文本,可以更方便地浏览文档。
哪个 shell?
DOS/Windows 与 Linux 的最重要的区别之一是 Linux 的命令 shell 是与操作系统相分离的一层。不同的 shell 环境影响您具备不同的功能,比如可编辑的命令行和历史命令回查等。shell 还决定了脚本中函数的语法。在 DOS/Windows 中,编写脚本程序只有一种情况,那就是使用效率低下的 .BAT 文件。它的确可以完成很多功能,但除了完成那些基本的任务,复杂些的任务就需要脚本编写者具有极强的创造性。在 Linux 中,脚本中可以有循环,不仅可以执行基本的条件语句,很多在编程语言中才有的功能它都具备。如果您擅长编写 .BAT 文件,那么 shell 脚本更会使您大展才华。
默认的 shell 是每个用户帐号的一个参数。Linux 中典型的默认 shell 是 /bin/bash,不过也可以用其他的 shell。每个 shell 的 man
文档实际上都非常好,都对各种 shell 及其使用进行了详细的说明。仅仅阅读下面的解释是不够的,应该从下面列出的 shell 中选择一个,去查看它的 man 文档。
bash
bash shell 是 Bourne shell 的一个免费版本,它是最早的 Unix shell,包括许多附加的特点。Bash 有可编辑的命令行,可以回查历史命令,支持 tab 键补齐以使用户避免输入长的文件名。
csh
C shell 使用的是“类C”语法,借鉴了 Bourne shell 的许多特点,只是内部 shell 命令集有所不同。
ksh
Korn shell 的语法与 Bourne shell 相同,同时具备了 C shell 的易用特点。许多安装脚本都使用 ksh
,即使您不把它作为您的主 shell,您也应该在系统中安装它。
tcsh
TC shell 是 C shell 的一个增强版本,与 C shell 完全兼容。
zsh
Z shell 是 Korn shell 的一个增强版本,具备 bash shell 的许多特色。
给我做链接,这样就更安全!
Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在 Linux 中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本。有两种类型的链接:硬链接和符号链接。
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
符号链接是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位置。
两种链接都可以通过命令 ln <source> <target>
来创建。 ln
默认创建的是硬链接。使用 -s
开关可以创建符号链接。
# Create a hard link from MyFile in the current
# directory to /YourDir/MyFile
$ ln MyFile /YourDir
# Create a symbolic (soft) link from MyFile in
# the current directory to /YourDir/YourFile
$ ln -s MyFile /YourDir/Yourfile
在上面的例子中,MyFile、/YourDir/MyFile 和 /YourDir/Yourfile 会被看成是同一个文件。
走出您的 shell
对 Linux 管理来说,必须学习在控制台环境下工作。虽然有一些工具可以让您避免使用控制台,但是您会受到那些工具的很多限制。进入控制台很简单,使用 man
和 info
命令访问命令文档也很方便。
参考资料
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文.
- 阅读 Windows 到 Linux 之旅系列文章的其他部分( developerWorks, 2003 年 11 月)。
- 遵循教程“ vi 入门 -- 巧表单方法” ( developerWorks ),来开始使用 vi 编辑器。
- “ 针对 Linux 开发新手的基本任务” ( developerWorks, 2001 年 7 月) 深入浅出地介绍了如何在 Linux 下工作,涉及的主题包括打开 shell 窗口、添加用户和组,以及挂载和缷载 CD-ROM。
- “ “ 为 Windows 用户准备的简明 Linux 词汇表”是不错的参考资料。
- 在 GNU Manuals Online网页上您可以找到很多在线帮助网页。
- From DOS/Windows to Linux HOWTO为那些具有 DOS 或 Windows 背景的人提供了一些快速上手的资料。
- AllCommands.com 是一个与众不同的站点,帮助您从各种操作系统的引用和交叉引用命令。
- 教程“ LPI certification 101 exam prep, Part 1: Linux fundamentals”介绍了 bash、标准 Linux 命令,等等。
- 通过“ Bash 实例”系列文章更深入地学习 shell 脚本 ( developerWorks )。
- 虽然是为 AIX 用户所写的,但是 System User's Guide: Operating System and Devices - Shells 参考与书籍的章节,包括 AIX Commands Reference - man Command中的许多内容同样适用于 Linux。
- 要开始在 Linux 上使用 IBM 的软件产品, 为您的 Linux 应用开发加油提速 将为您提供最好的参考资料。您可以找到关于 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多种应用软件的安装提示和参考资料。您还可以登录获得免费的 Linux Software Evaluation Kit,里面有试用软件和培训资料。
- 通过 developerWorks 上的 从这里开始学习 Linux一文继续学习 Linux 基本概念。
- 在 developerWorks Linux 专区可以找到更多 为 Linux 开发者准备的参考资料。
(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
refs
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/5096132.html
未经授权禁止转载,违者必究!