1. Linux系统介绍.
  1. 什么是操作系统

首先,操作系统是一个软件,控制计算机整体运行的系统软件.可以管理计算机的硬件与软件资源.提供用户使用计算机的接口;提供了软件运行的环境.常用的操作系统有window操作系统,unix操作系统(苹果电脑的操作系统是mac,属于unix操作系统),还有就是linux操作系统,其中linux是unix发展而来的,所以使用上unix与linux基本上是相同的。而作为一个软件工程师,我们需要重点学习linux操作系统,因为服务器使用的操作系统,绝大多数都是安装的linux或者unix操作系统。

  1. linux和unix发展简史

linux系统是由unix系统演变过来的,所以下面我们要从unix系统开始介绍,下面我们按照时间轴大致了解一下linuxunix的发展史:

  1. 20世纪60年代,MIT(麻省理工学院)开发了分时操作系统(Compatible Time-Shareing System CTSS),实现了多个终端共用一个主机进行运算工作。这时比较先进的主机也只能提供30台左右的终端机而已。
  2. 1965年前后,Bell(贝尔实验室)、MIT(麻省理工学院)和GE(通用电气公司)的Multics系统,Multics项目的目的是想让大型主机可以同时提供300台以上的终端机连接使用的目标。不过,到1969年前后,由于项目进度落后,资金短缺,虽然该项目再继续研究,但是Bell还是退出了该项目的研究工作。
  3. 1969年,Ken Thompson的小型File Server System,Ken Thompson是Mulitcs项目中Bell的一员,他根据Multics系统加入一些自己的想法利用汇编语言开发了这个系统,名为Unics。
  4. 1973年,Unix正式诞生,美国人Ken Thompson和Dennis Ritchie共同用C语言实现了UNIX操作系统,由于Ken Thompson开发的系统太好用了,所以这俩兄弟就用C高级语言重新写了Unics内核,最后发行出UNIX版本。
  5. 1977年,产生了UNIX的重要分支----BSD(Berkeley Software Destribution),加州伯克利大学的Bill Joy在获得Unix内核后,着手修改适合自己机器的版本,将其命名为BSD,它是后来可以安装在X86机器上FreeBSD的前身,同时Bill Joy是SUN公司的创办者。
  6. 1979年,由于UNIX良好的移植性和强大的性能,很多公司开始了UNIX操作系统的开发,AT&T的Bell的System V,IBM的AIX等,在早期没有支持个人计算机的UNIX操作系统的出现,起初,UNIX系统主要用于服务器和大型工作站,后来AT&T看UNIX这么流行,推出了System V第七版UNIX,可以在个人计算机上安装和运行。但是,它声明了版权,特别提到“不可对学生提供源码”。
  7. 1984年,谭宁邦教授的x86架构的Minix操作系统的诞生。
  8. 1984年,人工智能实验室(AI LAB)的Richard Mathew Stallman(RMS)创建GNU(GNU=GNU's Not UNIX)项目以及FSF(Free Software Foundation)基金会。Stallman是个很牛叉的黑客,他所在的AI LAB也是个很出名的黑客集中地,当时黑客圈对于软件的着眼点几乎都在分享,所以并没有专利方面的困扰,这对Stallman产生了很深远的影响,GNU的核心思想就是“free share open",为了避免GNU所开发的自由软件被其他人所利用成为专利软件,所以Stallman委托律师草拟了有名的GPL(general public license)通用公共许证。
  9. 1991年,芬兰的赫尔辛基大学的Linus Torvalds利用gcc,bash等工具写了一个小小的内核程序,这便是linux的雏形。后来他利用网上热心的朋友们对内核不断修改完善,最终有了现在的linux操作系统内核。
    1. linux和unix发展现状

我相信大家使用最多的还是window系统,它使用起来确实是非常方便,特别是它的图形界面,window系统在个人电脑(也称之为CP机)的市场占有率超过了90%,苹果公司也开发了一个操作系统,叫做Mac,市场占有率大约是5左右。其它的占用大约%5.

windows系统基本上站在pc机操作系统的绝对领导地位。这家公司的财富富可敌国,老板是比尔盖茨,连续多年是全球首富。Window系统最早的版本就是他主导开发的。80年代的时候,比尔盖茨开发了dos系统(非图像界面的操作系统),用户只能通过命令来操作电脑(即没有鼠标,也没有图像),在你的电脑上点击开始->运行,之后输入cmd,之后就会出现一个操作界面,如下图:

这就是世界首富比尔盖茨最早开发的系统,当时比尔盖茨拿着这个软件到IBM去应聘,被IBM的高管拒绝了,说是这个软件开发的不好.

Window操作系统在PC市场上是霸主地位,除了苹果的操作系统mac在一些细分市场上可以抗衡一下之外,基本上没有真正的竞争对手了,但是在服务器市场上,即服务器操作系统市场上window是绝对的弱势,市场份额5%左右,主要有如下几个原因:

  1. window操作系统是收费的,而linux是免费的
  2. linux更稳定
  3. window操作系统的代码是完全封闭的,而linux的代码是完全公开的,你可以定制、裁剪适合自己公司的操作系统。
  4. window安装插件很不方便。
  5. 相对来说,linux系统更安全, 数据不容易泄漏,用户权限管理设计的更合理。

linux最大的缺点是,使用起来不像window那么方便,你只要点点鼠标都可以搞定,而linux系统的操作,绝大多少情况下,是采用命令的模式,所以必须要专业学习。

  1. Linux文件系统

文件系统是操作系统的一个子系统,或者说是操作系统的一个子功能,通过文件系统就可以很好的管理电脑上的磁盘空间,磁盘空间一般是用来存储文件的,大家应该知道,在window系统下面,是采用分区来管理磁盘空间的,每个磁盘分区,也称之为盘符,比如c盘、d盘、e盘等等。比如你要创建一个文件或者保存一个文件到磁盘,你必须选要选择存放在某个盘符下面,所以,window操作系统下面,文件结构如下:

上图就简单的展现了一下c盘下的文件结构和D盘的文件结构。文件系统是采用目录、和文件两个要素来管理磁盘上的数据的,从上到下采用的是树型结构。所谓树形结构有如下特点:

  1. 有唯一一个跟节点,上图的c盘、d盘都是跟节点,跟节点位于整个结构的最上层,所以对于window的文件系统来说,有几个盘符,就有一颗树目录,而c盘、d盘也称之为根目录,即最上面一层的目录。
  2. 树由两个要素构成,一个是节点,另外一个就是叶节点。节点下面可以存放节点和叶节点,而叶节点就表示一个分支的结尾。

,其实上图中盘符也是目录。正因为有了目录,所以我们才可以对存放的文件进行归类。如下目录结构图:

上图中文件结构中,最后一层是文件,把不同的文件归类到了不同的目录下面,文件一旦归类了,就方便我们今后查找,所以,大家一定要养成文件归类的系统,特别是在工作中,对于一个软件系统来说,它会有很多的文件,不同的文件的功能是完全不同的,那么就需要存放在不同的目录下面。

我们简单的分析了一下window的文件目录结构,那么在linux操作系统下是否也是这样的呢,非常相似,唯一不同的是,linux没有盘符的概念,即没有c盘、d盘…..。它只有一个跟目录,即“/”。所以linux操作系统的目录结构如下:

上面我们讲过了,window有多个根目录(一个盘符就表示一个根目录),如果这样理解的花,linux看似跟简单一些。

在linux系统的绝对目录下面,有很多目录,下面我们分别简单介绍一下:

/

根目录.所有文件和目录的源头

bin

普通用户工具或命令

boot

系统启动相关文件

dev

设备文件

etc

系统配置

home

普通用户家目录 /home/username

lib

库文件

Root

root用户家目录

sbin

系统用户工具或命令

tmp

临时或共享文件或数据

usr

类似于windows中的windows和program files目录

var

变化的数据.比如系统日志

  1. Shell命令.

linux的操作系统不像window操作系统那样可以通过图形界面来操作电脑上的数据,在linux系统下,绝大多少情况下是使用命令的模式来操作数据的,虽然有些厂家的linux操作系统也支持图形界面操作,但总体来说,使用效果不是非常好,特别是你习惯了window的操作,就会感觉非常不适应。

所以大家必须要学会在命令模式下使用linux操作系统,所谓命令模式,就是你必须通过键盘输入命令才能操作电脑, 这种命令就叫shell命令。大家可以把shell理解为一个软件,这个软件提供了很多功能,通过这些功能可以直接操控电脑,一个功能大家可以认为是一个命令,即你输入一个命令,就可以完成一个指定的功能。

现在,shell命令成为了一种规范,除了unix系统、linux系统之外,很多其它的操作系统都支持shell命令(比如嵌入式系统vxworks),即你学会使用了shell命令,基本上所有的操作系统都会使用了(window操作系统不支持shell命令)。

  1. shell命令学习原则

第一条:要精通基本的shell命令,或者说,我们要熟练使用基本的一些shell命令,下面我们就会学习基本的shell命令:

第二条: 由于shell命令特别多,我们完全没有必要所有的shell命令都去学习,够用就可以了

第三条: 除了自学一些shell命令之外,大家还要留心身边的人或者同事,他们所使用的shell命令,如果发现比较好用,你就可以请教一下,然后自己做好笔记, 我希望这个笔记可以一直伴随着你,而且这个必须是电子档的,因为方便你以后检索。

第四条: 你需要实现一个什么操作,但又不知道用什么命令怎么办,大家可以通过百度搜索一下。比如我要创建一个文件,不知道用什么命令,那么你就可以在百度上搜索“linux 创建文件命令”,比如我不知道怎样使用touch命令,那么你就可以在百度上搜索“linux touch命令的使用方法”

  1. Linux命令基础知识

在正式操作命令之前,我们需要大致的了解一下命令的结构,一个命令由三部分组成,分别是命令名、选项、参数,说明如下:

组成部分

详细说明

命令名

唯一标识一个命令.一般小写

选项

指定命令要实现的功能

参数

指定命名要处理的对象或数据

在输入命令操作时,注意如下事项:

  1. 命令名,选项,参数三者之间用空格分隔
  2. 严格区分大小写
  3. 为了区分选项与参数,一般选项前带有一个”-“或”--”
  4. 多个选项顺序,多个参数顺序不重要
  5. 多个选项之间,多个参数之间用空格分隔
  6. 多个选项可以合并,只保留第一个
  7. 选项之间不需要空格

接下来,我们正式开始学习shell命令。

    1. 文件管理命令
  1. pwd命令

功能:显示当前所在的目录

用法:输入命令“pwd ”,接着在下一行就会显示当前文件所在的目录

  1. ls命令

功能:显示当前目录下的所有文件和目录,ls是英文单词list的缩写

用法1输入命令“ls ”,接着在下一行就会显示当前目录下所有的文件和目录。

用法2输入命令“ls -1”,注意ls与-1之间有一个空格,另外后面那个l不是1,2,3的1,而是字母l(大写L),这个命令会详细展现当前目录下所有文件的权限、大小、创建日期等等一些信息,如下图:

下面我们来相信分析一下这个信息,

第一行total,表示当前目录下所有文件的占用磁盘空间,不包括子目录,注意占用磁盘空间并不表示文件的大小,但可以这样说,占用磁盘空间的大小,会比所有文件的大小要大。因为操作系统把磁盘空间划分为n多个块来管理的,一般可能是4k为一个块,并且一个文件至少占用一个块,在linux下把所有的东西都当成文件来管理的,包括目录也当成文件的,所以目录也占用一个块。我们接下来分析total下面的几行,他们都是文件的属性。

第一列:即上图的红色下滑线部分,表示文件的类型和权限,说明如下:

Linux的文件有四个权限属性:

可读(用字母r:read);

可写(用字母w:write);

可执行(用字母x:execute);

没有对应权限(用字符-);

但是这里有十个格子(上图红线部分)。第一个小格是特殊表示格,表示目录或文件等等,如d表示目录,如果是-表示文件(我们暂时就认为是普通文件),其余剩下的从第2个开始共9个格子就以每3格为一个单位。表示三种用户对文件操作的权限,因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是,第2个到第4个表示文件的所有者应该有的权限,  第5个到第7个表示文件的所有者所在组应该有的权限,第5个到第7个表示其它用户对文件的操作权限,如上图test是一个目录,可以表示如下

rwx(文件所有者)r-x(所有者所在组的其他成员)r-x(其它用户)  
第二列,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。  
第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。  
第四列,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。  
第五列,表示文件大小。文件大小用byte来表示。  

第六列,表示创建日期。以“月,日,时间”的格式表示,如Seq 3 01:49表示9月3日早上01:49分。  
第七列,表示文件名。我们可以用命令“ls –a”显示隐藏的文件名。

用法3输入命令“ls /root”,之后就会再下一行显示绝对目录/root下的所有文件和目录,当然了,如果你要详细显示的话,可以输入命令“ls /root -l”

补充:上面我们说了,d表示文件类型是目录,linux系统下,还有如下文件类型:

在linux操作系统中,系统所有的资源(包括内存、磁盘、网卡、键盘、usb接口等等)都是通过文件的形式展现的,你要操作这些资源,可直接通过文件进行。

  1. file命令文件类型查看命令

功能:查看文件的类型

用法:输入命令“file  test”,接着在下一行就显示test文件的类型,如下操作:

  1. cd命令

功能:进入某个目录

用法:输入命令“cd 目录名 ”,这个目录名可以是相对目录名,也可以是绝对目录名,什么是绝对目录名,在window中,加上盘符的就是绝对目录名,如C:\zd_zszq\T0002 ,在linux系统下没有盘符的概念,目录最前面有‘/’的就是绝对目录,如“/home/top”,那什么是相对目录呢,比如你当前目录是/root, 那么在此目录下面有A目录和B目录,如你想进入A目录,那么你直接输入命令“cd  A”就可以了,那么A就是相对于你当前目前下面的一个目录,你也可以输入绝对目录进入A目录,命令为“cd  /root/A”

用法1输入命令“cd  test”,进入当前目录下面的test目录

用法2输入命令“cd  /root/test”,通过绝对目录进入/root/test目录

用法3输入命令 “cd ..  ”,回到当前目录的上一级目录

用法4输入命令 “cd”,回到进入终端时候的默认目录

  1. touch命令

功能:创建一个文件

用法:输入命令“touch 文件名 ”,然后大家再用ls命令查看一下当前目录下面是否多了一个文件,在linux文件系统中,是没有文件后缀名的,而window是有的,window系统下会根据文件的后缀名,调用不同应用程序来打开,比如word文件,名称的后缀都是.doc,当你双击此文件的时候,那么就调用word程序来打开这个文件,在linux系统下,也可以加上后缀,但linux系统会把后缀名也当做文件名。

  1. mkdir命令

功能:创建一个目录

用法1“mkdir 目录名”,如输入命令“mkdir test”,就创建了一个test目录;

用法2“mkdir  -p  xx/yy/zz”,此命令的功能是在当前目录下面创建xx目录,然后在xx目录下面创建yy目录,然后在yy目录下面创建zz目录;所以选项-p的功能是创建具有层次结构的目录

  1. tree命令

功能:展示某个目录的结构

用法:“tree  xx”,那么接下来就会展示当前目录下xx的目录结构。比如如下命令,先用mkdir创建目录,然后使用tree展示目录结构:

  1. cp命令

功能:拷贝一个文件 或者拷贝一个目录

用法:命令格式“cp 参数 源文件 目标文件”

  1. 输入命令“cp -rf yyy /home/.”,此命令是把当前文件yyy,拷贝到绝对目录“/home/”下面,大家注意了,在字符/home/后面还有一个点,这个点就表示拷贝后不更改文件原来的名字。如果你想更改文件名为test,则可以更改命令为“cp -rf yyy /home/test”,参数-rf,表示如果yyy是一个目录,那么包括它的子目录一起进行拷贝。当然,我们也可以在文件yyy上添加此文件的目录,变成绝对目录的拷贝,命令更为为

“cp -rf /home/seade/yyy /home/.”,注意yyy后面是有一个空格的,cp的常用选项有:

选项

功能

-r

递归复制文件.当复制的对象中包含文件夹时必须使用此选项

-i

与用户交互.当复制的文件名有冲突时提示用户是否覆盖:

enter 或 n:不覆盖

y:覆盖

-f

强行复制,无论目标是否存在

  1. alias命令

功能:命令别名,此命令可以查看明白别名,和设置命令别名,大家可能会比较奇怪,此命令有什么作用了,什么是命令别名呢,比如,使用cp命令的时候会使用一些选项比如-ri,是否可以让cp命令默认就加上-ri呢,当然可以,这个时候就你可以重新设置cp命令的别名了;如下用法:

用法1输入命令“alias” 接下来一行就会显示所有命令别名,即此命令的功能是显示所有命令别名

用法2输入命令“alias cp” 接下来一行就会显示cp命令的别名,即此命令的功能是显示某个命令的别名

用法3输入命令“unalias cp”此命令的功能是取消cp命令的别名

用法4输入命令 “alias cp='cp -i'”此命令的功能是设置cp命令的别名为cp -i,即你可以为一个命令设置别名。

特别注意:上述我们使用了命令cp为例,你也可以自己设置一些其它命令的别名,但最好不要随便设置,因为一旦设置之后,你也容易忘记,还是采用默认的比较好。除非是你自己特制的命令。

  1. mv

功能:移动一个文件,或者剪切文件

命令格式:命令格式“mv 源文件或者目录 新标文件或者目录”.

用法1:输入命令“mv test test1”,表示把当前目录下的test文件移动到test1,你也可以理解为把文件test更改为文件名test1,如果源test是文件,那么移动后还是文件,如果源test是目录,那么移动后还是目录,test之前可以加上绝对目录

用法2输入命令“mv aaa server/.”,表示把当前目录下的aaa文件或者目录移动到server目录下面。

选项

功能

-i

与用户交互.当复制的文件名有冲突时提示用户是否覆盖:

enter 或 n:不覆盖

y:覆盖

-f

强行复制,无论目标是否存在

  1. rm命令

功能: 删除一个文件或者目录,注意,一旦删除,一般不可恢复了,在linux操作系统下,没有垃圾恢复机制,所以千万要特别小心此命令

用法:命令格式“rm 参数 目标文件或者目录”,如命令

  1. 输入命令“rm -rf yyy”,表示删除当前目录下yyy文件或者yyy目录。
  2. 输入命令“rm -rf *”,表示删除当前目录下所有文件
  3. 输入命令“rm -rf te*”,表示删除当前目录下所有以te开头的文件或者目录

选项

功能

-i

与用户交互.当复制的文件名有冲突时提示用户是否覆盖:

enter 或 n:不覆盖

y:覆盖

-r

递归删除文件.当删除对象中包含文件夹时必须使用此选项

-f

强行复制,无论目标是否存在

-rf

强制删除指定的所有文件.(使用时要特别小心,一但删除无法恢复)

  1. ln

功能:创建链接文件,链接文件分两种,一种是软链接(也称之为符号链接)、一种是硬链接。

  1. 符号链接/软链接

类似于windows中的快捷方式.可以快速访问某个文件或目录. 也相当于给文件取多个名字.通过每一个文件名都可以快速访问该文件(而无需加上路径),当源文件被删除时,符号链接就会失效.

.使用模式:

ln ‐s src_file link_file_name

比如我想在当前目录下面为目录/root/aaa 创建一个快捷访问名aa1

使用如下命令:

“ln -s /root/aaa  aa1”

之后你输入ll命令(ls  -l的简写)查看是否成功,如下操作:

上图红线部分就表示aa1是文件/root/aaa的链接。

  1. 硬链接。

相当于给文件取多个名字.通过每一个文件名都可以访问文件.

当源文件被删除时链接文件不会失效.

ln [‐d] src_file link_file_name

需要注意的是:不允许对目录做硬链接

上述链接创建之后,如果你想删除,像普通文件删除即可。

  1. cat命令

功能:在屏幕上显示文件的内容,或者说查看文件内容

用法1输入命令“cat 文件名”,接着就会在电脑屏幕上显示文件的内容,

用法2输入命令“cat 文件1  文件2”,多个文件一起查看

  1. more命令

功能:在屏幕上显示文件的内容,或者说查看文件内容,更能类似cat,但它可以分页显示文件内容。

用法1输入命令“more 文件1 文件2”,

当一个文件一页不能全部显示时,接着可以采用如下命令进行翻页:

命令

功能

空格或者f

下一页

b

上一页

Enter(回车键)

逐行向下滚动

q

退出

  1. less命令

功能:分页显示,搜索文本

命令格式:less 文件1 文件2

less的使用方法与more一样,但它还提供了搜索功能

当一个文件一页不能全部显示时,接着可以采用如下命令进行翻页:

命令

功能

空格或者f

下一页

b

上一页

Enter(回车键)或者j

逐行向下滚动

k

逐行向上滚动

q

退出

查找功能:

命令

功能

/keyword

正向查找

n 下一个匹配项

N 上一个匹配项

?keyword

反向查找

n 下一个匹配项

N 上一个匹配项

  1. head命令

功能:显示文本前N行内容

用法1:输入命令“head  文件名”,查看文件, 默认显示前10行

用法2:输入命令“head  -20 文件名”,查看文件, 显示前20行

  1. tail命令

功能:显示文本尾部N行内容

用法1:输入命令“tail  文件名”,查看文件, 默认显示前10行

用法2:输入命令“tail  -20 文件名”,查看文件, 显示前20行

当文本文件处于监控状态时,文件的内容发生改变时(一般指内容增加),我们可以实时看到这种变化,而不需要反复打开关闭文件查看.命令格式如下:

tail ‐f 文件名       使文本文件进入监控状态,这个时候,如果有程序或者其它用户向此文件末尾增加了内容,那么就会实时的显示出来。

ctrl + c              退出监控

  1. mount

功能:挂载命令,通过这个命令我们可以把window系统文件挂载到另外一个linux系统里面(如我们开发用的虚拟机系统下面)

用法:首先我们需要在window下面共享一个文件夹(比如文件夹的名字是xuexi),然后在linux系统上(虚拟机)创建一个文件夹(如/home/huhl/test),与window的文件夹进行挂载,用如下命令:

“mount  -t cifs //192.168.0.100/xuexi /home/huhl/test -o user=administrator,password=0913”

注意,上面的命令字符xuexi后面是有一个空格的,192.168.0.100是windows系统的ip地址,另外user是window系统的用户名,password是windows的密码

如果上述命令执行成功,是没有任何打印信息的,如果失败,是有相关提示信息的。假设上述命令成功了,那么window系统的xuexi文件夹就与linux系统的/home/huhl/test对应起来了,你可以在这两个目录上增加或者删除文件,另外一边都会同步更新的。你还可以在linux系统上直接输入命令“mount“,查看linux系统挂载了哪些目录,你也可以找到刚才挂载的信息。如果你不想挂载了,比如上面我们挂载成功了,之后我又不想挂载了,可以输入如下命令”umount /home/huhl/test” ,如果没有任何提示信息,这样就取消挂载成功了。

  1. 文件权限
  1. chmod命令

功能:修改文件或目录的权限,chmod是change file or directory's mode的缩写

用法:“chmod权限值 文件名”,如输入命令“chmod 777 yyy”,注意他们之间有一个空格的,之后我们用ls –l展示看看yyy文件的权限,如下图

大家看到没有,文件yyy的权限变成了rwxrwxrwx,这是最大权限,几每个用户对此文件都具有可读、可写、可执行的权限了,大家肯定会疑惑了,为什么777能把这个文件变成了最大权限呢,上面分析了权限对应了三种用户(所有者、所有者所在组的其他用户、其它用户),每个用户都用三个字符来表示,第一个字符表示读的权限,用r表示,如果是字符“-”,则表示不具备读权限,第二个字符用写权限,用w表示,如果是字符“-”,表示不具备写权限,第三个字符表示可执行权限,这三个用一个二进制值表示就是111,表示都具有所有权限,如果是101,则表示不具备写权限,如果是001,表示只具备可执行权限,把这个二进制转换为一个十进制数字,如二进制111,就是十进制7,所以上图的7就是这么来的,大家应该知道了是怎么一回事了吧,如果大家现在还不知道二进制,没有关系,只要知道777是给文件最大的权限就可以了。

  1. chown命令

功能:修改文件或目录的拥有者(用户与用户组),chown是change file or directory's owner的缩写。

用法1“chown -R username 文件名”,更改文件的用户

用法2“chown -R .groupname 文件名” ,更改文件的用户组

用法3:“chown -R username.groupname 文件名” , 更改文件的用户和用户组

常用选项有:

选项

功能

-R

递归修改文件拥有者

    1. 文件搜索
  1. which命令

功能:在$PATH指定的目录集中根据文件名查找二进制文件的路径.那我怎么知道$PATH包括哪些目录呢,使用命令“echo $PATH”即可查看。

用法:“which grep”,在$PATH查找文件是grep的文件

  1. whereis命令

功能:在系统指定的目录中根据文件名查找二进制文件的路径,源文件文件与帮助文件路径

用法:whereis 文件名,比如你输入命令“whereis grep”,接下来就会显示:

grep: /bin/grep   /usr/share/man/man1/grep.1.gz   /usr/share/man/man1p/grep.1p.gz

此命令一般是用来查找软件或者命令所在的文件路径。

  1. find命令

功能:在当前目录下(包括它的子目录)查找某个文件

用法:

  1. 输入命令“find . -name test”,在当前目录下查找所有文件名是test的文件,注意find后面有一个空格,之后还有一个点,之后又跟一个空格,之后再是字符“-”
  2. 输入命令“find . -name *st”,在当前目录下查找所有文件名中最后包含字符“st”的文件

输入命令“find . -type f -exec grep -l "abcdef" {} \;” 在当前目录下的所有文件中查找包含内容 abcdef的所有文件,大家不要去记这样的命令,只要在你的笔记中就可以了。

  1. grep命令

功能:根据关键字搜索文本内容。

用法:grep 'keyword' 文件名,比如你想搜索当前目录test目录下(包括a目录的子目录)搜索含有字符abc的文件。使用命令“grep -r 'abc' test”

常用选项:

选项

功能

-i

忽略大小写.ignorecase

-n

显示行编号.number

-c

统计满足条件行数.count

-w

精确匹配单词.word

-A N

显示匹配行后N行.after

-r

递归搜索文本内容.一般用于文件夹

  1. 文件编辑

什么是文件编辑呢,就是往文件里面添加数据,更改文件里面的内容,在window系统下面有很多公交,比如记事本、world、画图等等。而在linux系统下,用的最多的是vi/vim,它只能编辑文本文件。

  1. vi命令

功能:修改文件的内容

用法:输入命令“vi 文件名”,之后就把会文件的内容在屏幕上显示出来,如果文件名不存在,那么就会创建一个空白文件,但这个时候你不能向文件里面写东西,你只能查看,即开始的时候,你进入的是命令模式,你可以用键盘“向上键”或者“向下键”查看文件不同的位置信息。如你想修改或者写入数据,那么你需要按下字母“i”,之后,你就可以进入编辑模式了,然后你就可以从键盘上输入东西到文件里面了,输入完成之后,你需要按下键盘“esc”键,即退出vi编辑模式,又回到了vi命令模式, 在查看模式下,你可以输入三个字符“:wq”,即保存并且退出vi命令。W表示保存,q表示退出。如果你没有修改文件的内容,那么你就不需要保存了,即输入两个字符“:q”就可以退出了。这样就退出了vi,重新回到了linux命令的操作界面了。

下面我们在来介绍一下vi命令的其它一些命令:

第一,查找:比如我们想查找文件哪些地方包含了某些字符,先进入命令模式,收入字符“/”然后再输入你要查找的字符,然后按下回车,之后光标就会停留在查找的第一个上面,然后你肯定希望查找下一个,你只要输入字符 “n“就可以了。此种方式是从上往下找,我们也可以从下往上找,把上面的字符”/“更改为字符”?“就可以了。

第二,替换:从样先进入命令模式输入如下命令,

:s/vivian/sky       表示替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/  替换第 n 行开始到最后一行中每一行第一个 vivian 为 sky,n如果等于0或者1都表示从第一行开始。

:n,$s/vivian/sky/g   替换第 n 行开始到最后一行中所有的vivian 为 sky

特别注意,替换完成后,要记得保存,即用命令”:wq”退出vi

另外,如果你想显示文件的行号,那么可以在命令模式下输入如下命令:

set nu

如果要关闭行号:

set nonu

    1. 用户管理命令
  1.  Useradd命令

功能:为操作系统创建一个用户

用法:useradd top,此命令就是创建一个top用户,此命令必须在有root用户权限的用户下面才能使用,输入此命令后,系统为你在/home目录下面创建一个top目录。之后,为了安全起见,我们需要为此用户创建一个秘密,输入命令“passwd top”,之后系统会提示你要去你输入密码,比如输入abc123,按回车,然后系统会让你再输入一遍密码确认,你再此输入abc123.回车,这样就可以了。注意,输入密码的时候是暗纹的,即你输入字符的时候在屏幕上没有任何的打印。现在你可以用top用户名登陆linux系统了,登陆成功后,默认进入/home/top目录。另外,为了安全,大家以后尽量使用非root用户名来登陆虚拟机系统,因为root用户权限太大了,万一你不小心删除了系统文件,那么以后系统就无法启动了。另外要特别注意,在linux系统下删除文件,是没有办法恢复的,所以在linux系统下,使用删除文件命令要特别小心。(可能后续的linux版本会把此功能加上去)。

  1. passwd命令

功能:设置用户密码

用法:passwd username,此命令为用户sername创建一个密码,如果此用户之前就已经有了密码,那么再输入新密码之前,要输入老密码,这样就可以防止其他人随便修改你的密码。

  1. userdel命令

功能:删除用户

用法1userdel username , 仅删除用户配置信息

用法2userdel ‐r username , 删除用户配置与数据

  1. groupadd命令

功能:创建用户组

用法:groupadd groupname , 此命令就增加了一个用户组,之后你可以把某个用户添加到这个组,使用如下命令:

useradd ‐g groupname username

  1. groupdel命令

功能:删除用户组

用法:groupdel groupname , 此命令就删除了一个用户组。

    1. 系统管理命令
  1. ps命令

功能:查看进程状态,ps是process status的缩写

用法1你可以输入命令ps ‐ef”查看linux系统上所有运行的软件信息, 查看所有进程

用法2你可以输入命令“ps ‐ef | grep 'keyword'”,其中keyword 是你想查找的软件名称。即你可以通过此命令查找你想要查找的软件运行信息

  1. 管道

管道不是命令,是一种功能,可以通过管道将多个命令组合起来使用,完成复杂功能.比如:上一个命令的输出作为下一个命令的输入,使用方式如下:
cmd1 | cmd2 | .... | cmdn

上面的命令格式,的功能就是:上一个命令的输出作为下一个命令的输入.

用法1你可以输入命令“ps aux” 查看进程对系统资源占有率(CPU与内存),显示的信息中(第一行信息)分别表示如下意思,

PID 进程标识符

%CPU :CPU占有率

%MEM :内存占有率

COMMAND 程序名

用法2你可以输入命令“ps aux | grep 'keyword'”,查看特定进程对系统资源的占有情况其中keyword 是你想查找的软件名称。即你可以通过此命令查找你想要查找的软件运行信息(CPU与内存)。

.

  1. top命令

功能:对系统资源进行监控.

用法1你可以输入命令top”,之后就会显示主要进程占用系统资源的信息,默认3秒刷新一次。

查看linux系统上所有运行的软件信息, 查看所有进程

用法2你可以输入命令top -d 5”,之后就会显示主要进程占用系统资源的信息,并且5秒刷新一次。

下面我们来简单分析一下top命令所显示的信息:

上图中画了四行红线,我们分别来分析一下它们表示什么意思:

第一行:tasks

73 total:表示一共有73行任务(进程)在执行;

1 running :表示有一个任务正在执行

72 running:表示有72个任务处于睡眠状态

0 stop :表示有0个任务处于停止状态

0 zombie:表示有0个任务处于僵尸状态,注意如果存在僵死状态,说任务出现了问题。

第二行:cpu(s)

此行显示计算机中物理cpu的使用情况,分别表示如下:

us, user: 运行(未调整优先级的) 用户进程的CPU时间

sy,system: 运行内核进程的CPU时间

ni,niced:运行已调整优先级的用户进程的CPU时间

wa,IO wait: 用于等待IO完成的CPU时间

hi:处理硬件中断的CPU时间

si: 处理软件中断的CPU时间

st:这个虚拟机被hypervisor偷去的CPU时间

第三行:Mem

此行显示计算机中物理内存的使用情况分别表示如下:

Total:全部可用内存

Used:已使用内存

Free:空闲内存、

Buffer:缓冲内存

第四行:Swap

swap中文就是交换分区的意思,即内存与磁盘交换区。类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况,Swap后面的字段说明如下:

        “2040212k total”:交换区总量
        “0k used”:使用的交换区总量
        “2040212k free”:空闲交换区总量
        “429100k cached”:缓冲的交换区总量

如果used值比较大,说明你的系统内存不够用了,这样你的软件就可能会运行的比较慢。需要增加系统内容。

  1. kill命令

功能:结束进程,可以通过此命令来杀死某个进程,或者强制性关闭某个进程。

使用方法如下:

kill ‐2 pid1 pid2 ... pidn

kill ‐15 pid1 pid2 ... pidn

kill ‐9 pid1 pid2 ... pidn

其中的数字分别表示如下:

2) SIGINT # 中断进程 ctrl + c

15) SIGTERM # 终止进程,正常结束进程

9) SIGKILL # 杀死进程,强制结束进程

  1. uname命令

功能:查看操作系统信息。

使用方法如下:

uname ‐a    查看所有信息

uname ‐r   查看内核版本

uname ‐i     ix86或者i386 表示操作系统是32位的

_64 表示操作系统是64位的

  1. su命令

功能:切换用户。

使用方法如下:

su username    沿用被切换用户旧的环境变量

su ‐ username  启用切换后用户新的环境变量

    1. 磁盘管理命令
  1. df命令

功能:查看各个分区的空间,大家可能会提问,前面不是说过,linux系统下面没有盘符和分区的概念吗?答案是这样的,之前是为了大家更简单的理解,在linux系统下,目录管理不是采用分区的概念,而是一个目录名,这个目录名会挂载在linux系统的某个目录下面,称为linux系统目录下面的一个子目录。下面我们再通过具体的用法再进行详细的分析。

用法1输入命令“df -h”,表示查看各个分区的磁盘空间使用情况,-h表示以方便阅读方式显示。显示结果如下:

上图中,filesystem一列表示的是文件系统,一个分区就表示一个文件系统,在window系统下使用盘符(比如c盘、d盘),而在linux系统下是使用文件目录管理的,在linux系统下面,磁盘、网口、包括内存等等都被认为是一个设备,而所有的资源(设备也是资源)采用文件管理,所以计算机内部的磁盘空间采用/dev/sda这样的方式管理各个分区。比如

/dev/sda1  表示第一个分区

/dev/sda2  表示第二个分区

其中host表示是其它主机的分区,我们可以把其它主机的一个目录挂载到linux服务器上。

上图第二列(Size)表示分区总的磁盘空间

上图第三列(Used)表示已经使用的磁盘空间

上图第四列(Avail)表示有效的磁盘空间,即还有多少可用

上图第五列(Use%)使用率

上图第五列(mounted on)表示这个磁盘分期挂载在某个目录下使用,比如sda1这个磁盘分区,它就是挂载在/boot这个目录下面的,那么/boot这个目录的空间都是使用了sda1这个磁盘分区里面的。

有人就要问了,那为什么要划分这么多磁盘空间呢?

那是因为一旦某个磁盘分期出现了问题,那么我们可以格式化这个磁盘分区,而不影响其它磁盘分区上的数据,这样做更安全。

用法2输入命令“df -k”,表示查看各个分区的磁盘空间使用情况,-k表示磁盘空间以1024个字节为单位。也可以以兆为单位“df -m”

  1. du命令

功能:查看文件或者目录所使用的磁盘空间

用法:

输入命令“du -sh *”,表示列出当前目录下文件和目录所占用的空间

    1. 网络管理命令
  1. ping命令

功能:测试两个网络系统之间连通性

用法1你可以输入命令ping  ip”, 注意,这里的ip指的是一个服务器或者一个电脑上的ip地址

用法2你可以输入命令ping  domain”, 主意domain是一个网址,比如www.baidu.com

在实际的工作中,我们一般采用ping这个命令测试两台电脑网络上是否互通,比如我输入命令:ping 192.168.21.1,如下图:

如果输入命令之后,出现上图的信息,说明你的电脑与192.168.21.1电脑设备在网络上是互通的。我们在输入另外一个命令:ping 192.168.21.112,如下图:

如果输入ping命令之后,出现上图打印信息,说明你的电脑与192.168.21.112的电脑设备在网络上是不互通的,即这两台电脑是不互联的,两台电脑如果不互联,可能由下面的原因:

  1. 网线没有插好
  2. 网络ip地址没有配置好
  3. 交换机可能出现故障
  4. 电脑上的其它配置数据影响了网络互通。

其中绝大部分原因可能是网络ip地址没有配置好。

  1. ifconfig命令

功能:网络配置和查询网络配置数据

用法1输入命令“ifconfig”,表示查看当前所有网口ip地址信息,如下图

eth0: 上图左边eth0,服务器的第一个网口,一般来说一个服务器会有很多的网口或者网卡,如eth0、eth1、eth2、eth3,以此类推。

lo: 上图左边lo,表示环回接口,也叫本地默认ip地址信息,就算没有网口或者网口,这个信息也是会存在的,现在大家暂时不理解它没有关系,就当它不存在好了。

我们接着来分析一下eth0右边的信息,我们现在只要知道ip地址对应哪个信息就可以了,它对应的信息是inet addr后面的信息,即192.168.1.113,这个就是本机的ip地址。后面的mask是子网掩码,一般都是255.255.255.0.

用法2如果你想更改这个网口的ip地址,比如ip地址更改为192.168.1.118,那么输入如下命令“ifconfig eth0 192.168.1.118 netmask 255.255.255.0”,之后回车就可以了。然后你又输入命令ifconfig命令查看一下,看看是否更改成功了。但是这样的更改,下次系统启动之后,又没有了,如果你想更改永久有效,那么就需要更改网口的配置文件了,文件地址是

/etc/sysconfig/network-scrips/ifcfg-eth0,注意文件名后面的eth0,就表示是网口0的配置文件。用vi命令,只要把文件的内容更改如下就可以了。

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

HWADDR=00:0E:7F:AF:3F:C2

IPADDR=192.168.1.118

NETMASK=255.255.255.0

NETWORK=192.168.1.0

ONBOOT=yes

我们来解释一下上面的信息表示什么意思:

DEVICE表示设备名,在linux系统下,如硬盘、网卡、USB等等都叫设备,也叫外设,并且都需要有一个名字,这里我们的设备名字是eth0

BOOTPROTO,表示ip地址的类型,这里的值static表示静态的意思,表示一旦配置好之后,就不会变动了,另外一种是动态ip地址,比如你在电信局牵了一根网线,那么它给你分配的就是动态ip地址,那么你就需要在你的电脑系统上配置动态ip。否则无法上网的。

BROADCAST广播地址,一般只要把ip地址的最后一位配置为255就可以了。

HWADDR表示mac地址,这个地址是全球唯一的,每个网卡都有一个这样的地址,我们只要输入命令“ifconfig”,然后找到对应的HWaddr信息就可以了,在文件里把这个值更换一下就可以了。

NETMASK就是刚才上面提到的,一般配置为255.255.255.0就可以了

NETWORK 把此值的ip地址值配置为0,就可以了。

ONBOOT 表示系统启动的时候,是否启动该设备,我们当然希望系统启动的时候,此网口要启动了,所以配置为yes

上面配置文件更改完成后,我们可以是配置文件立即生效,输入如下命令:

“/etc/init.d/network restart “,然后回车(注意restart之前有一个空格的),这样你的配置文件里面的信息就会生效,可以用命令”ifconfig”检验一下。

  1. netstat命令

功能:netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

具体用法如下:

用法1查找所有端口信息:输入命令“netstat ‐anp”

用法2查找所有端口信息中与22有关的信息(比如ip地址包含22,端口号的数字包含22等等),输入命令“netstat ‐anp | grep :22”

上面两种用法中,输出的结果类似如下:

第一行表示输出的信息名称,分别表示如下:

Proto: 通信协议

Local Address: 本机IP与Port

Foreign Address: 远程主机IP与Port

PID/Program name: 本机程序进程标识符与程序名

一般来说,大家只要知道上述两种使用方法就可以了,下面罗列了一些其它的用法。

用法3查看每个网口的MTU,以及其它网络接口上的一些其它信息

使用命令:netstat -in

用法4查看系统ip路由信息

使用命令:netstat -rn

从第一行我们知道如下信息:

所有目标ip地址是192.168.21.*的数据,将从网卡eth0出去,并且送到网关是0.0.0.0(表示默认路由),在实际的工作环境中,gateway应该会是一个具体的ip地址的,上图没有,是因为我们的服务器只是一个虚拟机。默认路由的定义:

默认路由器是相对于固定路由而言的。对路由器来讲,每一个需要路由的IP地址,他需要知道下一站的路径,这个路径就是下一站路由了。
当路由器找不到准确的下一站路径的时候,也就是说路由器不能找到需要路由的IP地址的下一站在哪里,这时他会选择默认路由,把数据包转发过去,再让默认的下一站去处理数据转发。每个可以正常联网的路由器都必须有默认路由存在,否则路由器没有识别路由的IP地址,路由器将会丢弃,导致无法访问。

用法5查看所有被占用的端口

命令:netstat -tlnp

用法6精确查找某个端口是否被占用,比如查看端口8000是否被占用。

命令:netstat -tlnp|grep 8000

如下图:

最后一列“6311/tcp_server”,是8000端口被一个叫做tcp_server的进程所占用,此进程的进程号是6311,所以上面的命令可以精确查找某个端口被某个进程所占用。

  1. 备份压缩命令

在工作和生活中使用电脑文件的时候,我们经常需要把文件进行压缩进行存储,压缩的好处了是可以使得文件占用磁盘空间更小,提高磁盘的利用率,另外方便传输,因为压缩后占用空间就会小,这样传输就会更快。另外压缩还支持设置密码,这样文件就更安全。

在window系统下面,常用的压缩格式:*.rar *.zip *.7Z;

而在linux系统下常用的压缩格式:*.zip *.gz *.bz2;

下面我们分别介绍一下在linux系统上支持的压缩和解压缩命令。

  1. zip命令

功能:把某个文件或者某个目录进行压缩

用法:比如我想把test目录下面所有的文件进行压缩,压缩包的名字是ttt,输入命令如下:

“zip -r ttt.zip test”,输入命令之后,就会在本目录下面生成一个ttt.zip的文件

  1. unzip

功能:把以zip方式压缩的文件进行解压缩

用法:比如我想把ttt.zip文件进行解压缩,输入命令如下:

“unzip ttt.zip”,输入命令之后,就会把ttt.zip解压缩到本目录下面

  1. tar命令

功能:打包与压缩文件.注意是两个功能,打包就是简单的把多个文件放在一个文件里面,但并不进行压缩。

用法1我想把test目录下面的所有文件进行打包,打包后的文件名是ttt,你可以输入命令:“tar -cvf ttt.tar test”

用法2查看包内容,比如你想查看某个包的内容是什么,输入如下命令:

“tar -tvf ttt.tar”

注意,查看包内容,并不解包。只是打印输出一下包里面的文件名称。

用法3解包,比如你想解开某个包文件的内容,输入如下命令:

“tar -xvf ttt.tar”

注意,查看包内容与解包不同,解包之后,会生成解包之后的文件内容。你可以把解包之后的文件存放到指定的目录下面,命令如下:

“tar -xvf ttt.tar -C /root/aaa/”

用法4压缩,比如我想把test目录下面所有的文件进行压缩,压缩包的名字是test

.tar.gz,输入如下命令:

“tar -czvf test.tar.gz test”

上面的命令就会调用程序gzip压缩文件。你也可以调用bzip2压缩文件,如下命令

“tar -cjvf test.tar.bz2 test”

用法4:解压缩

命令如下:“tar -xzvf test.tar.gz”,此命令会调用gzip解压

命令如下:“tar -xjvf test.tar.bz2”,此命令会调用bzip2解压

  1. 程序安装命令

在window系统现在,安装程序的文件名的后缀都是*.exe.如果是红帽linux系统,那么就是*.rpm

  1. rpm命令

功能:安装、卸载、查找 安装包

用法1安装包,比如你要安装包test.rpm,输入命令“rpm ‐ivh test.rpm”,比如你要安装包test.rpm。

用法2卸载包,比如你要卸载安装包test.rpm,输入命令“rpm ‐e test.rpm”,比如你要安装包test.rpm。

用法2:查找是否安装了某个包,比如你要查找是否已经安装了包test.rpm,输入命令“rpm ‐qa | grep test.rpm”,比如你要安装包test.rpm。

  1. vi命令

功能:修改文件的内容

用法:输入命令“vi 文件名”,之后就把会文件的内容在屏幕上显示出来,如果文件名不存在,那么就会创建一个空白文件,但这个时候你不能向文件里面写东西,你只能查看,即开始的时候,你进入的是命令模式,你可以用键盘“向上键”或者“向下键”查看文件不同的位置信息。如你想修改或者写入数据,那么你需要按下字母“i”,之后,你就可以进入编辑模式了,然后你就可以从键盘上输入东西到文件里面了,输入完成之后,你需要按下键盘“esc”键,即退出vi编辑模式,又回到了vi命令模式, 在查看模式下,你可以输入三个字符“:wq”,即保存并且退出vi命令。W表示保存,q表示退出。如果你没有修改文件的内容,那么你就不需要保存了,即输入两个字符“:q”就可以退出了。这样就退出了vi,重新回到了linux命令的操作界面了。

下面我们在来介绍一下vi命令的其它一些命令:

第一,查找:比如我们想查找文件哪些地方包含了某些字符,先进入命令模式,收入字符“/”然后再输入你要查找的字符,然后按下回车,之后光标就会停留在查找的第一个上面,然后你肯定希望查找下一个,你只要输入字符 “n“就可以了。此种方式是从上往下找,我们也可以从下往上找,把上面的字符”/“更改为字符”?“就可以了。

第二,替换:从样先进入命令模式输入如下命令,

:s/vivian/sky       表示替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/  替换第 n 行开始到最后一行中每一行第一个 vivian 为 sky,n如果等于0或者1都表示从第一行开始。

:n,$s/vivian/sky/g   替换第 n 行开始到最后一行中所有的vivian 为 sky

特别注意,替换完成后,要记得保存,即用命令”:wq”退出vi

  1. mkdir

功能:创建一个目录

用法:“mkdir 目录名”,如输入命令“mkdir test”,就创建了一个test目录,

  1. find

功能:在当前目录下(包括它的子目录)查找某个文件

用法:

  1. 输入命令“find . -name test”,在当前目录下查找所有文件名是test的文件,注意find后面有一个空格,之后还有一个点,之后又跟一个空格,之后再是字符“-”
  2. 输入命令“find . -name *st”,在当前目录下查找所有文件名中最后包含字符“st”的文件
  3. 输入命令“find . -type f -exec grep -l "abcdef" {} \;” 在当前目录下的所有文件中查找包含内容 abcdef的所有文件,大家不要去记这样的命令,只要在你的笔记中就可以了。
  1. 服务器使用工具

在工作中,服务器是放在机房里面的,一般来说,机房的维护人员把系统安装好之后,你就可以使用了,你肯定不是直接跑到机房去使用的,你可以直接通过一个软件工具通过网络连接服务器,就可以使用了。

在工作中,常使用两种软件工具:

第一种:SecureCRT

第二种:Xshell 5

现在第二种工具使用的人越来越多了。

  1. 什么是系统内核.

系统是跑在什么系统下面的,内核版本是多少。

linux内核至目前为止,已经发布了很多版本,最新的版本是4.8.11,大家可以登陆网址:https://www.kernel.org/   下载最新的linux内核版本。一般来说,linux2.6版本之后,就比较可靠,功能也非常强大了。所以在面试的时候,你可以说,你们公司产品是基于linux内核3.2版本开发的。至于为什么选择这个版本,具体原因我也不是很清楚,因为我来公司就已经是这样了,领导应该会有自己的一些考虑。

是什么是外壳,对于一个操作系统来说,比如微软开发的window操作系统,此操作系统内核和外壳都是微软公司自己负责开发的,所以谈不上内核和外壳,而像linux这样的操作系统,是分内核和外壳的,因为它们是不同的公司负责开发的。内核部分是最主要的,由于linux是开源的,任何公司、组织、个人都可以更改linux内核的代码,或者提出建议,之后你可以向管理linux内核代码的组织去申请,申请通过了,才能更改代码,之后这个组织就会统一发布新的版本,之后全球的人就可以免费下载了,这是linux内核管理的方法。

很多公司在linux内核进行了外部的开发,因为linux内部不支持可视化的操作(像window那样直接通过鼠标点一点就可以启动某个软件,或者配置某个数据),所以很多公司采用linux内核开发了自己的操作系统。说白了,就是在内核之外增加了方便用户操作的代码,这样更方便用户使用。比如早些时候的红帽操作系统,中国自己开发的红旗操作系统,还有现在比较流行的ubuntu、centos等等,这些操作系统都是某个公司基于linux内核进行开发的操作系统,所以它们都叫做linux系统,所以有人也经常问,你所使用的linux操作系统的内核版本是多少。所以这些操作系统的生产厂家不会对linux内核做修改,要做也是做一些细微的修改。因为一旦修改太大了,就可能导致不兼容的问题。

小白学习shell命令---自学笔记相关推荐

  1. 小白学习 Linux 命令笔记

    Linux学习笔记 一. Linux远程登录 Secure CRT Xshell 二. 文件目录管理 文件和目录名区分大小写[file.File.FILE是三个不同的文件] 创建目录用:mkdir m ...

  2. 第三天学习--Shell命令脚本

    章节简述: 如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸多命令.快捷键.模式切换方法的理解.然后把前面章节中讲 ...

  3. 网络安全系统教程+渗透测试+学习路线(自学笔记)

    一.什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 "红队"."渗透测试" 等就是研究攻击技术,而"蓝队"." ...

  4. David Silver强化学习公开课自学笔记——Lec2马尔科夫决策过程

    本笔记摘自知乎博主旺财的搬砖历险记和叶强,仅用于自学 0.数学规范 大写字母表示随机变量:S,A,RS,A,RS,A,R等 小写字母表示具体的值:s,a,rs,a,rs,a,r等 空心字母表示统计运算 ...

  5. David Silver强化学习公开课自学笔记——Lec1强化学习简介

    本笔记摘自知乎博主旺财的搬砖历险记和叶强,仅用于自学 1.背景介绍 (1)背景 强化学习是多学科多领域交叉的产物,本质是解决决策问题,即学会自动决策,在各个领域体现不同,但都归结为人类如何且为什么能做 ...

  6. Linux下学习DB2命令的笔记

    本笔记接在上一篇 <<Linux下安装DB2 数据库步骤>>  http://blog.csdn.net/sunrier/article/details/7826233 ,学习 ...

  7. 小白学习Linux命令

    前几天一气之下怒删win10,装了最新版的ubuntu18.10.初步使用总结以下: 1.虽然Ubuntu的UI做的也还可以,也多了很多软件,最明显的就是自带了中文输入法,当年安装14版的时候还是下载 ...

  8. 小白学习老九君C++笔记(10) 使用类创建对象

    第一种实例化方式 栈内存中创建:类似声明变量 自定义类型名 对象名(参数列表): Student stu(); 相等 Student stu; 第二种实例化方式 在堆内存中创建:需要new关键字 St ...

  9. 运行shell命令并捕获输出

    我想编写一个函数,该函数将执行shell命令并以字符串形式返回其输出,无论它是错误消息还是成功消息. 我只想获得与命令行相同的结果. 能做到这一点的代码示例是什么? 例如: def run_comma ...

最新文章

  1. 使用EditPlus 删除文本文件中多余的空行 和 EditPlus 选择列
  2. Spring的Java配置
  3. BZOJ 1016--[JSOI2008]最小生成树计数(kruskal搜索)
  4. 理解计算机网络的拓扑结构,认识计算机网络拓扑结构
  5. 飞鸽传书2009的“真正价值”
  6. 尾气冒黑烟是什么问题_烟囱里冒得白烟、黑烟、黄烟有什么危害?
  7. Enum Helper
  8. 银行岗位的“香饽饽”—金融科技岗
  9. Go 为什么选择 Gopher 作为吉祥物?
  10. 十、线程(11 章)
  11. 计算机网络期末实验考试题目+总结(用的是CISCO软件~~)
  12. 最好的60个国外壁纸网站
  13. TensorRT(7):python版本使用入门
  14. 电脑u盘数据丢失怎么恢复 u盘数据无故丢失怎么恢复
  15. 计算机网络介质图片,存储介质是什么
  16. 2021年武汉大学MPA考研复试真题分享
  17. Python 爬虫 | 爬取股票概念数据
  18. 搭建K8S集群之node节点部署
  19. 浙大计算机考研分数线2016,2016年浙江大学考研复试分数线已经公布
  20. 金融企业如何通过直播营销来获客?

热门文章

  1. Mysql 设计超市经营管理系统,包括员工库存表(stock) 和 仓库表(warehouse)
  2. python3 爬虫实例_Python3爬虫三大案例实战分享-天善学院
  3. 高速公路无线信息发布系统
  4. nvs linux 驱动下载,nvs295显卡在Linux下的驱动安装
  5. mongo find()后加一个first()是什么意思?
  6. Unity(初识脚本)
  7. Explaindio Video Creator Platinum(简称EVC) 3.042 Windows中文白金版MG动画2D和3D动画解说动画手绘白板动画视频制作软件
  8. 超市的收款机的钱箱为什么每次都要弹开
  9. 独立站网红营销怎么做
  10. java中序列化的作用