image.png

1.1 UNIX/Linux简介

UNIX系统的体系结构如图所示
image.png
内核:一组软件的集合,用来控制计算机硬件资源,提供程序运行环境。
系统调用:获取内核服务的接口。
Shell:一个特殊的应用程序,是用户和内核之间交互的界面。
库函数:构建在系统调用之上,获取一些功能的接口。
应用软件:用户使用的应用程序,基于Shell、系统调用或库函数实现。

关于linux的版本有两种不同的叫法,一种是内核版本,一种是发行版本
内核不是一套完整的操作系统,指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。

Linux内核使用三种不同的版本编号方式:
第一种方式是1.0版本之前,由0.01开始,依次为0.02,0.03,0.10 ·····················1.0.
第二种方式适用于1.0版本到2.6版本,数字由三部分“A,B,C”组成,A代表主版本号,B代表次主版本号,C代表较小的末版本号。只有内核发生较大变化时,A才会变化;可通过数字B判断linux系统是否稳定,偶数的B代表稳定版,奇数的B代表开发版
第三种方式不再使用偶数代表稳定版本,奇数代表开发版本的命名方式。
image.png
发行版本实际上是由一些组织或厂家将linux内核再加上外围实用程序组成的一个大软件包。

linux特点:

  • 开放性:遵循国际标准所开发的软件和硬件,都能彼此兼容。
  • 多用户:系统资源可以被不同用户各自使用,每个用户对自己的资源都有特定的权限,互不影响。
  • 多任务:计算机同时执行多个程序,而且各个程序的运行相互独立。linux系统调度每一个进程,使其平等的访问微处理器。
  • 良好的用户界面:linux为用户提供两种系统界面:用户界面和系统调用。

linux传统用户界面为基于文本的命令行界面即shell,用户可以通过shell程序与内核实现交互。shell同时还具有很强的程序设计能力,可以用它编制程序;图形用户界面则使用鼠标,菜单,窗口,滚动条等工具。
系统调用则是包围在内核外层的界面,在编程时可直接使用linux系统提供的系统调用。

  • 设备独立性:操作系统将所有的外部设备统一当作文件看待,只要安装好设备驱动程序,任何用户都可以像使用文件一样操纵和使用这些设备。
  • 丰富的网络功能
  • 可靠的系统安全
  • 良好的可移植性

    1.2 库函数和系统调用

    操作系统提供应用程序要求的服务,并为这些服务提供入口点,程序便由此向内核请求服务。各种版本的UNIX都提供定义明确、数量有限、可以直接进入内核的入口点,这些入口点称为系统调用
    系统调用是紧贴内核的一层,系统调用是程序获得内核服务的接口
    从用户角度,系统调用和库函数之间区别不大,都是以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束后得到指定的返回值。
    从实现的角度,差别明显:

  • 库函数是在系统调用上层的函数,虽然这些函数可能会调用一个或多个内核的系统调用,但是它们并不是内核的入口点。例如:printf函数会调用write系统调用以输入一个字符串,但strcpy(复制一字符串)并不使用任何系统调用。

  • 在linux下,每个系统调用由两部分组成:

核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,运行在核心态。
接口函数:是提供给应用程序的API,以库函数的形式存在于linux的库lib.a中,以汇编语言书写,主要功能是把系统调用号、入口参考地址传给相应的核心函数,使用户态下运行的应用程序陷入核心态

总之,系统调用和库函数在形式上说是一样的,都是C语言函数形式存在,但系统调用比库函数更底层。尽管从用户角度完成的功能相同,但是从实现的角度看差别很大。
linux系统中使用的外部命令本质上是可执行文件,这些可执行文件是使用系统调用或者库函数编写的程序经过编译生成的。
image.png
image.png

1.3 linux常用命令

1.3.1 用户和用户组命令

1. useradd命令

eg:useradd NewUser
新建用户账户,只有超级用户可使用此命令。
当不使用任何选项时,系统将在/home目录新建与用户同名的子目录作为该用户的主目录,并新建一个与用户同名的组作为该用户的主要组。
使用useradd命令新建用户账户,将在/etc/passwd文件和/etc/shadow文件中增加新用户的记录。如果新建同名的组,还将在/etc/group文件和/etc/gshadow文件中增加记录。

2.passwd命令

image.png

3.userdel命令

eg:userdel -r NewUser :系统不仅删除此用户账号,还将用户的主目录也一并删除。不使用“-r”选项,就仅删除此用户账号。
如果新建该用户时创建了同名的组,而该组当前没有其他用户,那么在删除用户的同时也将一并删除这个组。如果这个用户还有进程在进行,必须在终止该用户所有的进程后才能删除该用户。

4.groupadd命令

eg:groupadd NewUsers
新建组,只有超级用户才能使用此命令。

5.groupdel命令

image.png

1.3.2 文件和目录命令

1.mkdir命令

eg:mkdir -p directory/list -p:目录树,一次创建多级目录
创建目录。

2.mv指令

eg:mv neu neusoft mv neusoft ../ mv 源文件或目录 目的文件或目录
移动或重命名文件或目录。
-b: 若存在同名文件,则覆盖之前先备份原来的文件。
-f: 强制覆盖同名文件

./ :当前目录
../ :父级目录
/ :根目录

3.cp命令

eg:cp 源文件或目录 目的文件或目录
image.png

4.rm命令
image.png
rmdir命令只能删除空目录。

5.chmod命令

修改文件的访问权限。
eg:image.png
数字模式为一组3位的数字,例如,rwx中,r代表文件所有者权限,w代表文件所属组用户权限,x代表其他用户权限。
image.png
功能模式可由以下三部分组成:
image.png
image.png
image.png
image.png
ls -l:除了列出文件名之外,将文件的所有信息全部列出来。

6.chgrp命令

修改文件所属的组。
eg:chgrp 组 文件
image.png

7. chown命令

改变文件的所有者,也可以一并改变文件的所属组。
eg: chown 文件所有者/组 文件
image.png

1.3.3 进程命令

1. ps命令

显示进程的状态,无选项时,显示当前用户在当前终端启动的进程。
image.png
image.png
image.png
image.png

2.kill命令

终止正在运行的进程或作业,超级用户可终止所有的进程,普通用户只能终止自己启动的进程。
eg: kill 进程号 kill %作业号

选项 : -9:当无选项的kill命令不能终止进程时,可强行终止指定进程。

1.3.4 获取帮助信息

使用man命令来显示联机帮助手册的条目。
image.png
eg: man 2 mkdir

1.4 通过ssh终端登陆linux系统