Linux简介,安装,基础指令

  在真实的企业环境中大家使用的是linux作为生产环境的服务器。而很多时候我们的代码写出来后都是运行在linux服务器下面的。 甚至一些大并发和高技术点的软件环境,都需要好的linux环境配合。 因此,学习linux搭建linux环境,操作linux操作系统对于能力的提高和找到高薪的工作有非常重要的作用。

linux的重要作用

  用linux的好处在于,高效率,稳定的系统,没有病毒,流氓软件,Linux下最受欢迎的产品都能很显著地降低时间成本。譬如Git,VIM,Emacs,Shell。

  Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

  Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

  java高手一般都在linux系统下工作。

linux展史

 创始

  Linus Torvalds被称作Linux之父,著名的电脑程序员、黑客。Linux内核的发明人及该计划的合作者。他利用个人时间及器材创造出了这套当今全球最流行的操作系统内核之一,现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。 Linux是一个诞生于网络、成长于网络且成熟于网络的奇特的操作系统。1991年,当时还是芬兰大学生的Linus Torvalds萌发了开发一个自由的Unix操作系统的想法,当年,Linux就诞生了,为了不让这个羽毛未丰的操作系统夭折,Linus Torvalds将自已的作品Linux通过Internet发布。从此一大批知名的、不知名的电脑黑客、编程人员加入到开发过程中来,一场声势浩大的运动应运而生,Linux逐渐成长起来。 Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利。然而这种纯粹的自由软件的理想对于Linux的普及和发展是不利的,于是Linux开始转向GPL,成为GNU阵营中的主要一员。 Linux凭借优秀的设计、不凡的性能,加上IBM、Intel、CA、CORE、Oracle等国际知名企业的大力支持,市场份额逐步扩大,逐渐成为主流操作系统之一。

Unix

  Unix操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一Unix规范的Unix系统才能使用Unix这个名称,否则只能称为类Unix(Unix-like)。

GNU

  GNU是自由软件之父Richard Stallman在1984年组织开发的一个完全基于自由软件的软件体系,与此相应的有一分通用公共许可证(General Public License,简称GPL)。Linux以及与他有关的大量软件是在GPL的推动下开发和发布的。 自由软件之父 - Richard Stallman 像一个神态庄严的传教士一样喋喋不休地到处传播自由软件的福音,阐述他创立GNU的梦想:“自由的思想,而不是免费的午餐”。这位自由软件的“顶级神甫”为自己的梦想付出了大半生的努力,他不但自己创作了许多自由软件,如:GCC、和GDB,在他的倡导下,目前人们熟悉的一些软件如BIND、Perl、Apache、TCP/IP等都成了自由软件的经典之作。 如果说Richard Stallman创立并推动了自由软件的发展,那么,Linus Torvalds毫不犹豫奉献给GNU的Linux,则把自由软件的发展带入到一个全新的境界。

BSD

  386BSD因为法律问题直到1992年还不能发布,NetBSD和FreeBSD是386BSD的后裔,比Linux早。Linus Torvalds说,当时如果有自由的基于386的Unix-like操作系统,他就可能不会创造Linux。尽管无法预料这给以后的软件业究竟造成了什么样的影响(如果没有这个法律纠纷,很有可能没有今天的革命性的Linux),但有一点可以肯定,Linux更加丰富了这块土壤。

Minix

  Minix是一种基于微内核架构的类Unix计算机操作系统,由Andrew S. Tanenbaum发明。Minix最初发布于1987年,开放全部源代码给大学教学和研究工作。2000年重新改为BSD授权,成为自由和开放源码软件。 因为AT&T的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将Unix源代码私有化,在大学中不再能使用Unix源代码。教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与Unix兼容的操作系统,以避免版权上的争议。他以小型Unix(mini-Unix)之意,将它称为Minix。 Minix没有任何代码抄袭Unix,所以它们之间并没有任何继承关系,Minix作为当时有史以来的第一个开源的操作系统放到网上以后,短期之内得到了飞速发展,大量的人进行下载学习。 由于Minix是教授一人所写,所以存在一些漏洞。这时候有使用者发现漏洞存在,想着去下载一些补丁或者自己写一些补丁来修补这些漏洞,修补之后发现效果不错,然后就建议教授利用这些补丁完善下Minix,结果呢,教授比较固执,意思是说:为了维持Minix的纯洁性,不需要任何外来代码。也就是说,根本不打算做商业发行,所以Minux保持了其最原始的风范。

Linux

  在后来的几年内,由于计算机硬件工业的强力运作,以Intel主导的x86系统架构的个人计算机大行其道,所以个人计算机算是相当流行的一个机器了。但在此时,人们使用的大多还是DOS操作系统。此时,芬兰赫尔辛基大学有个叫Linus Torvalds的学生做了件不寻常的事情。当时他正好有一台386的计算机,由于并不喜欢自己电脑上的DOS系统,所以就想:既然Minix这么棒、这么稳定,那我何不将它移植到个人计算机 (好在由于Stallman提倡的Open Source理念,他得以接触到一些Source Code,而经由这样的一个想法,O(∩_∩)O~他就很有心的读取了Unix核心,并且去除较为繁复的核心程序,将它改写成可以适用于一般个人计算机的x86系统上面)。 到了1991年,他终于将0.02版的原始码hobby放到网络上面供大家下载,由于hobby受到大家的肯定,相当多的朋友一起投入这个工作中。终于在1994年,将第一个完整的核心Version 1.0释出,并且造成目前的大流行。。。由于Linux kernel的发展是由虚拟团队所达成的,大家都是透过网络取得Linux的核心原始码,经由自己精心改造后再回传给Linux社群,进而一步一步的发展完成完整的Linux系统,至于Linus Torvalds是这个集团中的发起者。由于这个群策群力的缘故,Linus Torvalds将Linux定为同样造福大家的GNU授权模式! Linux是Linus Torvalds受到Minix的影响而作成的。但在设计哲学上,Linux则和Minix大相迳庭。Minix在内核设计上采用微内核的原则,但Linux则和原始的Unix相同都采用宏内核的概念。在Linux发展之初,双方还于1992年在新闻组上有过一场精彩的理念争论。Minix的作者和支持者认为Linux的单内核构造是“向七十年代的大倒退”,而Linux的支持者认为Minix本身没有实用性。

版本和对应软件的选择

Linux内核版本

  Linux内核使用三种不同的版本编号方式。 用于1.0版本之前(包括1.0)。第一个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。 用于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号。只有在内核发生很大变化时(历史上只发生过两次,1994年的1.0、1996年的2.0),A才变化。可以通过数字B来判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版。C代表一些bug修复,安全更新,新特性和驱动的次数。 以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。 从2004年2.6.0版本开始,使用一种“time-based”的方式。3.0版本之前,是一种“A.B.C.D”的格式。这些年里,前两个数字A.B即“2.6”保持不变,C随着新版本的发布而增加,D代表一些bug修复、安全更新、添加新特性和驱动的次数。3.0版本之后是“A.B.C”格式,B随着新版本的发布而增加,C代表一些bug修复、安全更新、新特性和驱动的次数。 第三种方式中不再使用偶数代表稳定版,奇数代表开发版这样的命名方式。举个例子:3.7.0代表的不是开发版,而是稳定版!

Linux发行

  Linux主要作为Linux发行版(通常被称为”distro”)的一部分而使用。这些发行版由个人、松散组织的团队、以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。 一个典型的Linux发行版包括:Linux内核、一些GNU程序库和工具、命令行shell、图形界面的X Window系统和相应的桌面环境,如:KDE或GNOME,并包含数千种从办公套件、编译器、文本编辑器到科学工具的应用软件。 由于发展的Linux公司实在太多了,例如著名的Red Hat、OpenLinux、Mandrake 、Debian、SuSE等。所以很多人都很担心,如此一来每个 distribution(安装套件)是否都不相同呢?这就不需要担心了,由于各个distribution都是架构在Linux Kernel下来发展属于自己公司风格的distribution,因此大家都遵守Linux Standard Base ( LSB 的规范,也就是说,各个distribution其实都差不多,用到的都是Linux Kernel,只是各个distribution里面所使用的各套件可能并不完全相同而已)。

 Linux系统特点

  • 开放性
  • 多用户、多任务、良好的用户界面、丰富的网络功能、可靠的系统安全性,良好的可移植性,出色的性能和稳定性、标准兼容性

Linux版本选择

CentOS(community enterprise operating System)

  • 主流:目前的Linux操作系统主要应用于生产环境,主流企业级Linux系统仍旧是RedHat或者CentOS
  • 免费:RedHat 和CentOS差别不大,基于Red Hat Linux 提供的可自由使用源代码的企业CentOS是一个级Linux发行版本
  • 更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务

相关工具

  虚拟机:可以下载vmware作为虚拟机

  版本:centost7.x 64位

  连接工具:xshell、putty、secureCRT

  传输工具:Sftp类的winScp

安装

  虚拟机安装:https://www.cnblogs.com/adan-chiu/p/12587077.html

  CentOS操作系统安装:

享受Linux的世界

  shell

  壳, 解释器,交互终端。

  操作系统提供与用户交互的界面端口。去完成命令的解析与执行。

  没有安装桌面的情况下,通过shell完成交互!

虚拟电脑联网方式

快速使用

  在虚拟电脑关机的情况下,设置联网方式为:host-only

  重启虚拟电脑

  查看获取的IP,进行通信。windows: ipconfig  centos :ifconfig

  测试互ping。

如果不能成,可能的原因就是 防火墙!

前提:安装centOS时,选择了网络自动连接。

VMware,连接到网络的方式

NAT:网络地址转换

  最快速的虚拟电脑联网方式。借助于实体电脑(windows),进行网络地址的映射转换完成上网。

结果:

  虚拟电脑可以上外网(实体电脑可以上)

  虚拟电脑与实体电脑之间不能通信。除非配置路由映射。

桥接

  通过网桥连接。最典型的联网方式。需要桥接可以联网的网卡上。

结果:

  虚拟电脑,就是局域网内的一台普通电脑。

  网内的所有电脑包括实体与虚拟电脑都可以正常通信!

  问题:桥接通信需要在linux中配置网络。(除非,局域网交换机存在DHCP(自动分配IP功能))

host-only,仅主机

  仅仅可以与主机通信。虚拟电脑仅仅可以与实体电脑通信。

结果:

  虚拟电脑和安装虚拟电脑的实体电脑通信。

  不能与其他局域网的实体(虚拟)电脑通信。

  还可以与同处一台实体电脑的虚拟电脑进行通信。

我们选择 仅主机host-only

  该网络连接,负责与虚拟电脑中:例如 eth0,虚拟电脑中CentOS中的网络连接(网卡)进行通信。如图所示:

 

连接

在开机前,先选择 host-only的方式进行通信

重新开机

  此时,我们所选的host-only会自动帮助我们分配 56段的IP地址:

例如:192.168.56.101

ssh客户端

常见的windows上的ssh客户端软件:

  secureCRT的软件,安装略。

录结

Linux常用指令

  指令:linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

  指令格式

  指令主体 [选项] [操作对象]

  其中选项 和操作对象是可选的,[]表示可选

  比如:

  ls -lah /usr

  注:所有的指令都可以使用 --help选项获取该指令的用法

pwd:打印当前工作路径,全称:print working directory

语法

  pwd [--help][--version]

参数说明:

  • --help 在线帮助。
  • --version 显示版本信息。

实例

查看当前所在目录:

 

ls(list)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法

 ls [-选项] [路径]

参数 :

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -h 以比较友好的形式显示文件大小
  • -t 将文件依建立时间之先后次序列出

实例

列出根目录(/)下的所有目录:

将 /home目录下所有目录及文件详细资料列出,显示其大小 :

 

cd 切换目录(change directory)

语法

 cd [dirName]
  • dirName:要切换的目标目录。
绝对路径:
    先切换到/目录,然后在/目录中找子目录。在任意目录都可以随意切换
相对路径:
    在当前目录中寻找子目录
    当前路径: ./,也可以不写
    上一级目录: ../
家目录的快捷符号: ~

实例

跳到 /usr/bin/ :

跳到自己的 home 目录 :

 

跳到目前目录的上上两层 : cd ../../

mkdir(make directory):创建目录

语法

  mkdir [-p] dirName

参数 :

  • -p父目录不存在先创建父目录
  • --v显示版本信息

rmdir(remove directory):删除空目录

touch若文件不存在,系统会建立一个新的文件。

语法

touch fileName

cp命令主要用于复制文件或目录。

语法

cp [options] source dest

cp [options] source... directory

参数说明

  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法

mv [options] source dest
mv [options] source... directory

参数说明

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

实例

将文件 aaa 更名为 bbb :

将/usr/student下的所有文件和目录移到当前目录下,命令行为:

 rm命令用于删除一个文件或者目录。

语法

rm [options] name...

参数

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

实例

删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y  
# rm  homework  
rm: 无法删除目录"homework": 是一个目录  
# rm  -r  homework  
rm:是否删除 目录 "homework"? y 
如不想要确认提示,添加-f选项

删除当前目录下的所有文件及目录,命令行为:

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

系统备份:

  1.快照(还原点):开机环境中

  2.克隆(完整备份):创建一个全新的虚拟机,该虚拟机状态和当前虚拟机一致(关机状态)

cat 命令用于连接文件并打印到标准输出设备上。

语法格式

cat [-选项] [--help] [--version] fileName

参数:

  -n --number:由 1 开始对所有输出的行数编号。

  -b --number-nonblank:和 -n 相似,只不过对于空白行不编号。

  -s --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

  -E --show-ends : 在每行结束处显示 $。

输出重定向

       将终端显示结果输出到指定文件中

       >:覆盖指定文件内容

       >>:在指定文件中追加内容

实例

       cat demo.txt > fire.txt

       cat demo.txt >> fire.txt

如何关机

  其实,在Linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

  Linux和windows不同,在 Linux 底下,由于每个程序(或者说是服务)都是在一定背景下执行的,因此,在你看不到的屏幕背后其实可能有相当多人同时在你的主机上面工作,例如浏览网页啦、传送信件啦以 FTP 传送档案啦等等的,如果你直接按下电源开关来关机时,则其它人的数据可能就此中断!那可就伤脑筋了!此外,最大的问题是,若不正常关机,则可能造成文件系统的毁损(因为来不及将数据回写到档案中,所以有些服务的档案会有问题!)。

  如果你要关机,必须要保证当前系统中没有其他用户在线。可以下达 who 这个指令,而如果要看网络的联机状态,可以下达 netstat -a 这个指令,而要看背景执行的程序可以执行 ps -aux 这个指令。使用这些指令可以让你稍微了解主机目前的使用状态!(这些命令在以后的章节中会提及,现在只要了解即可!)

sync 将数据由内存同步到硬盘中。

shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:

shutdown -h 10  这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。

shutdown -h now 立马关机

shutdown -h 20:25 系统会在今天20:25关机

shutdown -h +10 十分钟后关机

shutdown -r now 系统立马重启

shutdown -r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown -r now

halt 关闭系统,等同于shutdown -h now 和 poweroff

  最后总结一下,不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。关机的命令有 shutdown -h now, halt, poweroff 和 init 0 , 重启系统的命令有 shutdown -r now, reboot, init 6

posted @ 2021-04-08 20:43  Tiger-Adan  阅读(1542)  评论(1编辑  收藏  举报