Linux的历史背景和基本指令

Posted 披星戴月的贾维斯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的历史背景和基本指令相关的知识,希望对你有一定的参考价值。

    众所周知,Linux和大家所熟悉的Windows一样,也是一款操作系统,不同的更多是在于Windows是闭源的,而Linux是开源的现代生活中的比如飞机的控制系统、银行的系统、手机的系统等等,都和Linux操作系统相关,所以Linux的重要性几乎令人难是置信,没有 Linux的世界可能将会截然不同。总之,学好Linux这个操作系统的重要性是不言而喻的!现在就和我一起学习Linux的历史背景和基本命令吧!!!


                                    我们都会在各自喜欢的事情里,变得可爱!

文章目录

提示:以下是本篇文章正文内容,下面案例可供参考


一、Linux的背景

1.1发展史

你可能要问Linux从哪里来?它是怎么发展的?在这里简要介绍Linux的发展史。要说Linux,还得从UNIX说起。

UNIX发展的历史

  • 1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。
  • 1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UINX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。
  • 1972年,贝尔实验室开始发放商业版本,并且给不同的用户授权使用这个系统,使用者之一是加州大学伯克莱分校的计算机系。伯克莱给系统增加了许多新的特点,后来成为了标准。
  • 1975年伯克莱由下属部门BSD发行了自己的UNIX版本。UNIX的BSD版本成为AT&T贝尔实验室版本的主要竞争者,而其它的独立开发出的UNIX版本也开始萌生。
  • 1980年微软公司开发了叫做Xenix的UNIX PC版本。AT&T发行了第一个商业版本。名叫System Ⅲ,后来被成为对商用软件产品良好支持的System Ⅴ所替代。
  • 1991年,UNIX综合实验室综合了System V Release3,SUN OS和Xenix的所有特点,发行了System V Release 4。为了与System V Release 4 竞争,一些其它公司,如IBM和惠普Open Software Foundation(OSF)去产生自己的UNIX标准版本,继而出现了两个标准商业版本OSF版本和System Release 4。

Linux发展历史

-1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fi)上提供过这个版本的的源代码。

  • Torvalds于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne Again Shell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语言。Torvalds绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。
  • Linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布。

1.2开源的故事

    之前我们讲到为什么Linux操作系统在我们生活中有这么广泛的引用,很大部分原因就是因为Linux是开源的操纵系统,支持全世界的工程师们去修改,去提高Linux操作系统的稳定性。接下来我们讲讲Linux开源的故事。

  • Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。
  • Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。
    1.3官网
        Linux官网
        大家可以在官网查看一些信息,以及下载一些内核文件之类的。
    1.4发行版本
  • Debian运行起来极其稳定,这使得它非常适合用于服务器。
  • Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。
  • 红帽企业级Linux,这是第一款面向商业市场的Linux发行版。
  • CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。
    等等…

我们通常买云服务器的时候用的就是CentOS版本的。

1.5对操作系统和Linux操作系统的理解
    为什么要有操作系统?

    原因是:单纯的硬件计算机操作起来效率特别低下,难度特别高。

    那什么是操作系统和Linux操作系统?

    一句话什么是操作系统和Linux操作系统 :对下要管理好底层的软硬件资源对上要给用户提供一个良好的,稳定的,高效的运行环境


二、工具和环境配置

2.1XShell工具
    我们之后写Linux代码通常都不是打开网页去登录我们买的云服务器,通常都是打开xshell这个工具,远程登录我们的云服务器。所以,XShell 是一个远程终端软件。
2.2下载官网
XShell下载官网

2.3xshell的配置和连接云服务器
    这里我们用我之前配置xshell的时候看的一篇博客分享给大家。这位博主写的确实很好!
【Linux】使用腾讯云搭建CentOS的Linux编程学习环境,实现多用户使用同一个云服务器


三、Linux的基本指令

1. ls指令

语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

首先,ls指令有很多,比如:

  • ls + -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • ls + -l 列出文件的详细信息。
  • ls + -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件.
  • ls + -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
    等等…

ls - a 和 ls -l 是最常用的
代码示例:

[root@VM-12-13-centos lesson]# ls //只显示文件名
code  test.c
[root@VM-12-13-centos lesson]# ls -l//显示文件的更多属性
total 4
drwxr-xr-x 2 root root 4096 Oct 22 15:17 code
-rw-r--r-- 1 root root    0 Oct 22 15:16 test.c

[root@VM-12-13-centos lesson]# ls -al
total 12
drwxr-xr-x  3 root root 4096 Oct 22 15:46 .		(. 是隐藏文件)
dr-xr-x---. 9 root root 4096 Oct 22 15:15 ..
-rw-r--r--  1 root root    0 Oct 22 15:46 .cannotsee.txt
drwxr-xr-x  2 root root 4096 Oct 22 15:17 code
-rw-r--r--  1 root root    0 Oct 22 15:16 test.c

2. pwd指令

语法: pwd
功能:显示用户当前所在的目录

代码示例:

[root@VM-12-13-centos ~]# pwd
/root

3. cd指令

语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。

一般是和pwd可以配合使用

文件和目录的树形结构

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

pwd指令和cd指令配合使用代码示例:

[root@VM-12-13-centos lesson]# cd ..
[root@VM-12-13-centos ~]# ll
total 8
drwxr-xr-x 2 root root 4096 Oct 22 15:15 2
drwxr-xr-x 3 root root 4096 Oct 22 15:46 lesson
[root@VM-12-13-centos ~]# pwd
/root
[root@VM-12-13-centos ~]# cd ..
[root@VM-12-13-centos /]# pwd
/
[root@VM-12-13-centos /]# //回退到/的时候就不能再回退了, /也叫根目录

cd - :是回去上一个目录,可加可减
cd …/是去上一个目录,只能往根目录走

4. touch指令

语法: touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

touch这个命令创建文件非常重要,因为有一句话“Linux下,一切皆文件“, 如果我们连文件怎么创建都不知道,那还怎么在Linux下写代码?

touch对应的指令有很多,比如:

-a 或–time=atime或–time=access或–time=use只更改存取时间。
-d 使用指定的日期时间,而非现在的时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-m 或–time=mtime或–time=modify 只更改变动时间。
…等等

代码示例:

[root@VM-12-13-centos lesson]# touch file.txt
[root@VM-12-13-centos lesson]# ls
code  file.txt  test.c

5.mkdir指令

语法:mkdir [选项] lesson目录…
功能:在当前目录下创建一个名为 “lesson”的目录

常用选项:-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
(递归创建多个目录)
利用上面我们学到的几个简单命令,我们已经可以写一些简单的Linux代码了。
代码示例:

[jjx@VM-12-13-centos ~]$ pwd      //显示当前路径
/home/jjx
[jjx@VM-12-13-centos ~]$ ll -s      //查看当前路径下的文件或者目录
total 16
4 drwxr-xr-x 2 jjx root 4096 Oct 31 18:10 lesson1
4 drwxr-xr-x 2 jjx root 4096 Nov  1 16:19 lesson11_01
4 drwxr-xr-x 2 jjx root 4096 Nov  3 17:33 lesson11_02
4 drwxr-xr-x 2 jjx root 4096 Nov  5 17:28 lesson11_03
[jjx@VM-12-13-centos ~]$ mkdir lesson11_07      ///创建lesson11_07这个目录
[jjx@VM-12-13-centos ~]$ ll -s
total 20
4 drwxr-xr-x 2 jjx root 4096 Oct 31 18:10 lesson1
4 drwxr-xr-x 2 jjx root 4096 Nov  1 16:19 lesson11_01
4 drwxr-xr-x 2 jjx root 4096 Nov  3 17:33 lesson11_02
4 drwxr-xr-x 2 jjx root 4096 Nov  5 17:28 lesson11_03
4 drwxr-xr-x 2 jjx root 4096 Nov  7 20:54 lesson11_07
[jjx@VM-12-13-centos ~]$ cd lesson11_07
[jjx@VM-12-13-centos lesson11_07]$ cd lesson11_07
-bash: cd: lesson11_07: No such file or directory
[jjx@VM-12-13-centos lesson11_07]$ pwd
/home/jjx/lesson11_07
[jjx@VM-12-13-centos lesson11_07]$ ll -s
total 0
[jjx@VM-12-13-centos lesson11_07]$ touch file.txt      //创建file.txt这个文件
[jjx@VM-12-13-centos lesson11_07]$ ll -s
total 0
0 -rw-r--r-- 1 jjx root 0 Nov  7 20:54 file.txt

四、总结+思维导图

4.1思维导图

4.2小结

    本文总共六千多字,介绍了Linux这款操作系统的历史,带大家了解了为什么Linux操作系统为什么这么重要,以及xshell这款好用的远程登录云服务器的app,也介绍了几个Linux的基本命令,希望大家读后能够有所收获!

Linux基本指令(上)

@toc

写在前面

好久没有写博客了,学校快要期末考试了,这个是在零碎的时间的拼凑出来了的。闲言少序,在了解了Linux的历史背景后,我们需要开始初步开始学习如何使用Linux系统.


操作系统

我们需要花上一点时间,看看操作系统是什么东西.

由于我们操作硬件效率太过低下,难度也特别高,所以我们发明的操作系统.我们都知道C语言存在printf函数,我们可以通过这个函数在显示器上打印东西,而显示器是硬件,也就是说<font color = red>软件可以修改硬件</font>,我们来看看计算的组成.

  • 最底层 : 硬件 包括键盘 显示器 网卡 显卡
  • 驱动软件层 向下有各种硬件的驱动软件,调度硬件 ,向上提供各种接口
  • 狭义上这一层是操作系统 包含 进程管理 ,文件管理 ,内存管理 ,驱动管理
  • 用户层 包含图形化界面,各种库,应用程序

上面的是很官方的东西,我们用一个例子来举例.我们需要用银行的例子来举例,这也是蛋哥举得.

首先存在一个银行,里面有桌椅板凳和存钱的设备,这些就是硬件,另外存在不同的工作人员来使用这些硬件,他们就是驱动层,银行肯定是有业务的,所以存在业务管理人员负责调度这些驱动人员完成相应的工作.;我们作为用户就是使用手机电脑或者现场办理这些业务,那么手机和电脑就是相应的用户层,其中可能会存在黄牛,他们属于第三方的库,这就是一套银行系统.其中业务管理人员就是我们学的操作系统.

  • 对下 管理底下的软硬件资源
  • 对上 给用户提供一个良好的,稳定的,高效的用户环境

Linux操作系统

既然现实生活中也存在很多种银行,操作系统也是如此,Linux就是其中一款操作系统.

常见指令

为什么要学习指令

我们到底要不要学习指令呢?对于非专业人员不需要掌握,对于我们而言,学习操作系统我们一定需要了解指令.这是肯定的.指令先于鼠标出现,早期的计算机就是为了数据计算,需要键盘输入数据.人们从打字机那里来演变出了键盘,出现了键盘后,所有的操作系统都支持指令操作,知道乔布斯发现了图形化界面的操作系统.指令离OS最近,指令学习可以让我们掌握OS.

指令的选项

几乎所有的指令都会带选选项的,所谓的选项是对这个指令进一步的补充,就比如指令是一个导航搜索的地址,选项就是把这个地址进一步精确的多少米的范围.选项与选项之间是可以共同使用的,这个后面我们用到的时候在谈.

ls 指令

也就是说 在2022_06_03文件夹中包含一个code文件夹和一个file.txt文本文件,ls就可以把它们显出出来.

常用的选项

我们的选项有很多,这里我们先列出一些常用的选项.

  • -l 列出文件的详细信息
  • -a 列出目录下的所有文件,包括以 . 开头的==隐含文件==

通过这个选项我们可以看出该文件是文件夹,还是一个普通文件.

  • 文件夹 也就是子目录 用drwxrwxr-x 表示
  • 普通文件 用-rw-rw-r-- 表示

还可以看到该文件的大小,以及创建时间,可以说是很详细了.

-a可以看到该目录下所有的文件,包含隐藏文件,所谓的隐藏文件,就是不想让别人看到的文件,文件名前面带一个==.==

在Windows环境下,也存在隐藏文件.

我们来看看该选项的用法

一般情况下,我们知道这两个选项已经就够用了,下面还有一些不常用的选项.

  • -d 将目录像文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录(绝对地址)
  • -i 输出文件的 i 节点的索引信息
  • -k 以 k 字节的形式表示文件的大小 ,配合 -l使用
  • -n 用数字的 UID,GID 代替名称 (UID,GID先不用了解)
  • -F 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别)

. 和 ..

  • . 表示 是当前目录
  • .. 表示是上级目录

touch & mkdir 指令

这是两个指令,作用都是为了创建东西,它们相应的选项也是存在的,但是这里我先不和大家分享,只看它们最基本的功能.

我们看看它们的区别

  • touch 创建文本文件,例如.txt文件
  • mkdir 创建一个文件夹,类似Windows下的新建文件夹

我们先来看看它们的现象.

touch指令

可以创建文本文件,可以一个,可以多个,创建多个的时候,文件之间隔一个空格就可以了.

空文件占据硬盘的资源吗

这是一个常识问题,是占据硬盘资源的,我们在C语言中学过文件指针,它是文件属性之一,这些信息是保存在硬盘当中的,也就是说文件 = 文件内容 + 文件属性.

mkdir 指令

mkdir是创建文件夹的,我们一看就可以明白了.这个指令和touch一样,也可以一次创建多个文件夹,这种我们先不谈,我们要说说另外一种,创建一段路径


rmdir & rm 指令

既然我们已经学了创建指令了,那么删除指令这里我们先提前说了吧.

rmdir

rmdir删除的是文件夹我们先来看看效果.

但是我们有时会遇到这种情况,文件夹里面存在文件,单纯的使用rmdir就不能删除了,所以这个指令我们不常用,下面的rm会解决这个问题的,这才是我们的最爱.

rm

rm是删除普通文件的,我们这里先来看看它的作用.

rm -r

我们可以通过rm -r来删除存在文件的目录,-r是递归的意思.

rm -f

这个指令大家可能还用不到,这里提前说说,有的文件需要很高的权限,我们删除的时候计算机会问"你确定删除这个文件吗?",我们这个选项使用后,他就不会出现了,-f 中f是force的意思.我么就不演示了.


pwd 指令

pwd 这个指令就只有一个作用,查看当前所在的目录,这个很简单.

相对路径&绝对路径

大家都知道什么是绝对路径,就是我们可以通过他给的线索一定可以找到目标.所谓的相对路径是需要一个参考物的,相对路径也是如此,我们是以当前文件所处的地址为参考对象.

我们需要谈谈目录,目录是具有唯一性的,在Linux下,它们是由树形结构组成的.

  • 相对路径 以当前文件为参考对象
  • 绝对路经 从根目录出发,pwd查出的就是绝对路径

cd指令

我们在Windows环境下如何进入文件夹中,又是如何回到上级目录呢?我们可以通过点击鼠标来进行.

但是在Linux中,我们通过cd指令来操作,来看看把.

使用相对路径

我们可以cd时用相对路径,这样进入的就是该目录下的文件夹.

使用绝对路径

我们已经学过了pwd指令了,如果我们想要一次性跳到我们想要的目录下,可以使用绝对路径.我们看看

cd 回到上级目录

我们如何在Linux中回到上级目录呢?前面我们谈到了==..==表示是上级目录的意思,这样我们可以通过通过下面的指令来进行

这里有一个问题,如果我们一直回到上级目录,会发生什么情况?我们会看到下面的情况.

我们会一直停留在一个目录下面,这也是可以理解的,我们在windows中也会出现这种情况,是我们已经到最开始的,目录了.

cd常见的快捷方式

我们这里只和大家分享两种快捷方式,一个是直接到家目录,另外一个是回到上次所在的目录.

cd ~

cd -

以上是关于Linux的历史背景和基本指令的主要内容,如果未能解决你的问题,请参考以下文章

Linux的历史背景和基本指令

Linux/Unix/Cygwin 常用命令

Linux发展历史

Linux菜鸟起飞之路Linux基本常识

Linux工作原理2常用基本命令和目录层次结构

Linux基本指令(上)