前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初探Linux

初探Linux

原创
作者头像
鱼丸葱面
修改2020-11-30 14:27:52
4840
修改2020-11-30 14:27:52
举报
文章被收录于专栏:ShadowLinuxer

操作系统

操作系统(Operating System,OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。

谈到操作系统就需要谈到Unix,UNIX系统是一个分时系统,在60年代末,Kenneth Thompson和Dennis Ritchie都曾参加过交互方式分时系统Multics的设计,由于中途贝尔实验室退出了Multics项目。Ken后来为满足他的游戏star travel需要,在此基础上,K.Thompson于1969年在小型计算机上开发UNIX系统,后于1970年投入运行。1971-1972 年,K的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑。

随后出现了各种版本的 UNIX 系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。

肯•汤普森和丹尼斯•里奇因在计算机领域做出的杰出贡献,于 1983 年获得了计算机科学的最高奖——图灵奖。

Linux往事

Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统(其实在很大程度上Minix影响了linux)。第 1 版本于 1991 年 9 月发布,当时仅有 10000 行代码,linus当时主要是实现了内核的编写,后续linus将linux内核代码放到ftp上告知大家版本信息,慢慢有许多人加入到linux维护,慢慢将linux完善。当然也有人认为,尽管Linux的设计思想受到了MINIX的很大影响,但是这种影响并不是技术上的,更多的是理念上的,Linux并没有使用UNIX的一行代码,是Linux完全从头构建的操作系统。因此,Linux不是UNIX的衍生版,它是一个全新的操作系统。

Linux 在设计之初,就是基于 Intel x86 系列 CPU 架构计算机的,它是一个基于 POSIX 的多用户、多任务并且支持多线程和多 CPU 的操作系统,它是由世界各地成千上万的程序员设计和开发实现的,当初开发 Linux 系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类 Unix 操作系统兼容产品。

在过去的 20 年里,Linux 系统主要被应用于服务器端、嵌入式开发和 PC 桌面 3 大领域,其中服务器端领域是重中之重。例如,我们熟知的大型、超大型互联网企业(百度、腾讯、Sina、阿里等)都在使用 Linux 系统作为其服务器端的程序运行平台,全球及国内排名前 1000 的 90% 以上的网站使用的主流系统都是 Linux 系统。

GNU计划

软件产业在70年代成就了两位针锋相对的领袖人物,来自哈佛大学的比尔·盖茨和Richard M.Stallman。前者宣布了Copyright(版权)时代的到来,并构建了微软帝国的辉煌;后者于1984年创立自由软件体系GNU,拟定普遍公用版权协议(GeneralPublicLicense,简称GPL),今天Linux的成功就得益于GPL协议。

所有GPL协议下的自由软件都遵循着Richard M. Stallman的"Copyleft"(非版权)原则:即自由软件允许用户自由拷贝、修改和销售,但是对其源代码的任何修改都必须向所有用户公开。

GNU计划和自由软件基金会FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似UNIX 并且是自由软件的完整操作系统:GNU系统(GNU 是"GNU’s Not Unix"的递归缩写)。

各种使用Linux作为核心的GNU 操作系统正在被广泛的使用。虽然这些系统通常被称作"Linux",但是Stallman 认为,严格地说,它们应该被称为GNU/Linux系统。

到上世纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境。这是Linux 能够诞生的基础之一,以至于目前许多人都将Linux 操作系统称为“GNU/Linux”操作系统。

Linux 其实就是一个操作系统最底层的核心及其提供的核心工具。他是 GNU GPL 授权模式,所以,任何人均可取得原始码与可执行这个核心程序,并且可以修改。此外,因为Linux 参考POSIX 设计规范,于是兼容于Unix 操作系统,故亦可称之为类Unix。

Linux哲学思想

  • 万物皆文件,无论是硬件设备、还是通讯接口都当做文件处理,这样可以设计统一的访问控制操作接口,同时也可进一步提高内核控制源码的精简程度
  • 小型,单一用途的程序,一个程序完成一个功能,避免程序复杂化提高运行效率。
  • 链接程序,共同完成复杂的任务,可以将不同程序链接一起使用实现复杂功能任务处理,类似搭积木。
  • 避免令人困惑的用户界面,linux通常使用cli界面,相对单一资源消耗小,排错科通过命令行修改系统配置,一切简洁明了。
  • 配置数据存储在文本中,以文本方式管理配置信息,易于阅读编辑。

Linux常见发行版本

在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。

Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

Linux 的发行版本可以大体分为两类:

商业公司维护的发行版本,以著名的 Red Hat 为代表;

社区组织维护的发行版本,以 Debian 为代表。

常见Linux发行版本:

  • Debian

Debian是包括Ubuntu在内许多发行版本的上游。Debian是社区类Linux的典范,迄今为止最遵循GNU规范的Linux系统。Debian分为三个版本分支:stable,testing,unstable。unstable为最新测试版本,包含最新的软件包,但是有相对较多bug,不是很稳定适合桌面用户;testing版本是经过unstable测试过相对较为稳定同时也支持新技术。stable一般用于服务器,软件包比较稳定安全;testingDebian最具特色的是apt-get/dpkg包管理方式。RedHat的Yum也是模仿Debian的APT方式,在二进制文件发行方式中,APT应该是最好的了。

  • Ubuntu

Ubuntu 基于知名的 Debian Linux 发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的 Linux 发行版本,而且 Ubuntu 的所有发行版本都免费提供。其界面友好,容易上手,是最适合做桌面系统的Linux发行版本。

  • RedHat

Red Hat(红帽公司)创建于 1993 年,是目前世界上资深的 Linux 厂商,也是最获认可的 Linux 品牌。

Red Hat 公司的产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)多用于活动,演示和实验,对最终用户免费、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)

  • SUSE Linux

SuSE Linux 以 Slackware Linux 为基础,原来是德国的 SuSE Linux AG 公司发布的 Linux 版本,1994 年发行了第一版,早期只有商业版本,2004 年被 Novell 公司收购后,成立了 OpenSUSE 社区,推出了自己的社区版本 OpenSUSE。

版本名称

网 址

特 点

软件包管理器

Debian Linux

www.debian.org

开放的开发模式,且易于进行软件包升级

apt

CentOS

www.centos.org

CentOS 是一种对 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,由于 Linux 是开发源代码的操作系统,并不排斥样基于源代码的再分发,CentOS 就是将商业的 Linux 操作系统 RHEL 进行源代码再编译后分发,并在 RHEL 的基础上修正了不少已知的漏洞

rpm

SUSE Linux

www.suse.com

专业的操作系统,易用的 YaST 软件包管理系统

YaST(rpm),第三方 apt (rpm)软件库(repository)

Ubuntu

www.ubuntu.com

优秀已用的桌面环境,基于 Debian 构建

apt

CentOS安装

目前国内使用CentOS企业越来越多,几乎和RHEL一样,完全免费,也可作为学习测试环境时的优选。下面就以CentOS7示例进行安装。

通过VMware来进行CentOS安装,对硬盘200G大概规划: /100G /boot1G /data50G 内存2G swap4G

在VMware中选择自定义方式选择安装
在VMware中选择自定义方式选择安装
根据安装的系统选择,这里使用CentOS764位
根据安装的系统选择,这里使用CentOS764位
存放安装文件目录选择最好提前规划好文件夹
存放安装文件目录选择最好提前规划好文件夹
使用给推荐设置即可
使用给推荐设置即可
硬盘模拟200G
硬盘模拟200G
根据个人喜好将网络更改
根据个人喜好将网络更改
启动安装
启动安装
默认语言选择英语
默认语言选择英语
初次安装选择带有图形界面GUI
初次安装选择带有图形界面GUI
将系统选在硬盘安装
将系统选在硬盘安装
选择标准分区
选择标准分区
根据规划将挂载点创建
根据规划将挂载点创建
根据规划将挂载点创建
根据规划将挂载点创建
修改主机名
修改主机名
开始安装
开始安装
安装完成后重启进入,接受协议点击Done,至此系统安装基本完成。
安装完成后重启进入,接受协议点击Done,至此系统安装基本完成。
重启后进入系统界面,根据之前设置的用户名进行登录
重启后进入系统界面,根据之前设置的用户名进行登录

Linux交互接口

linux系统提供两种交互窗口:

  • GUI图形终端接口,例如GNOME、KDE
  • CLI命令行接口,就是常见的命令行界面,shell程序

Shell简介

Shell是Linux系统的用户界面,提供了用户与内核交互操作的接口。用户通过shell输入命令送入内核执行,也称为命令解释器,是一种高级程序设计语言。Shell种类又分为多个不同的shell,bash是GNU计划中重要的工具软件之一,也是linux的标准shell,与sh兼容。CentOS默认使用的就是bash shell。

常见的shell有:

  • sh:Steve Bourne
  • bash:Bourne-Again Shell,GPL,CentOSteve和Ubuntu默认使用
  • tcsh
  • ksh:Korn Shell,AIX默认shell
  • zsh:MacOS默认shell

#如何查看当前shell类型?

代码语言:text
复制
[root@centos7 ~]# echo $SHELL
/bin/bash

#查看当前系统支持的shell类型

代码语言:text
复制
[root@centos7 ~]# cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

#查看当前提示符格式

代码语言:text
复制
[root@centos7 ~]# echo $PS1
[\u@\h \W]\$

\u表示当前用户

\h表示主机命简称即主机的第一个名字

\W表示当前工作目录即用basename命令取得工作目录的名称

$表示提示符(普通用户显示为$,root用户显示为# )

另外其他符号表示如下:

\H表示完整的主机名

\w表示完整的工作目标,用户的家目录为~

\t表示24小时时间格式为时:分:秒

\T表示12小时时间格式为时:分:秒

\A表示24小时时间格式为时:分

\!表示命令历史数

\#表示开机命令历史数

\d表示日期,格式为星期 月 日

\v表示BASH的版本信息

这样我们就可以参数对我们的环境变量提示进行样式调整,例如将当前用户环境变量调整前景色为青色,字体为粗体,及当前时间。

代码语言:text
复制
[root@centos7 ~]#PS1="\[\e[1;36m\][\t \e[1;36m\u@\h \W]\\$\[\e[0m\]"
[08:06:46 root@centos7 ~]#
示例
示例

上面通过在shell中执行命令实现了各种功能,命令是如何执行实现的呢?后面会对Linux命令的执行过程及使用基础进行陈述。

Do one thing at a time,and do well.

一次只做一件事做到最好。 2020年11月28日

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作系统
  • Linux往事
  • GNU计划
  • Linux哲学思想
  • Linux常见发行版本
  • CentOS安装
  • Linux交互接口
  • Shell简介
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档