一、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官网
大家可以在官网查看一些信息,以及下载一些内核文件之类的。
1.4发行版本
Debian运行起来极其稳定,这使得它非常适合用于服务器。
Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。
红帽企业级Linux,这是第一款面向商业市场的Linux发行版。
CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。
等等…
我们通常买云服务器的时候用的就是CentOS版本的。
1.5对操作系统和Linux操作系统的理解
为什么要有操作系统?
原因是:单纯的硬件计算机操作起来效率特别低下,难度特别高。
那什么是操作系统和Linux操作系统?
一句话什么是操作系统和Linux操作系统 :对下要管理好底层的软硬件资源对上要给用户提供一个良好的,稳定的,高效的运行环境
二、工具和环境配置
2.1XShell工具
我们之后写Linux代码通常都不是打开网页去登录我们买的云服务器,通常都是打开xshell这个工具,远程登录我们的云服务器。所以,XShell 是一个远程终端软件。
2.2下载官网
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思维导图