1、操作系统内核(kernel):操作系统本质是一组程序,用于管理计算机所有的活动以及驱动系统中的所有硬件。
2、操作系统的内核直接参考硬件规格写成,因此同一个操作系统不能再不一样的硬件架构下运行。
3、应用程序的开发都是参考操作系统提供的开发接口,所以应用程序只能在该操作系统上运行。
(1)系统调用接口:进一步利用硬件资源,便于同内核通信,有利于开发人员。
(2)程序管理:合理的利用cpu资源,即cpu调度机制。
(3)内存管理:控制系统的内存,提供虚拟内存功能,当内存不足时可以提供内存交换功能。
(4)文件系统管理:数据的输入和输出等,文件格式支持等。
(5)设备驱动:硬件厂商参考系统的提供的开发接口开发驱动程序。
1、Linux是一个内核,Linux+softwares+tools才是可安装的系统,称之为Linux distribution(Linux发行版),Linux主要应用环境包括网络服务器、工作站计算机、嵌入式系统和桌面计算机等。
2、套件管理方式分为两种:
(1)一种Debian的dpkg模式;第二种:Red hat的RPM模式;可以先学习RPM模式的Linux发行版,例如:red hat、suse等。再学习比较更为严谨的版本:Debian等。练习使用的centOS版本。
4、先学习Linux最基础的架构:文件结构、命令模式与脚本(shell and shell script)、软件管理方式和资源与账号等,便于之后的学习和理解。
1、首先学习Linux的安装与命令
2、Linux操作系统的基础技能:用户/用户组的概念、权限概念、程序的定义等。
3、必须学会Vi文本编辑器,所有的unix like系统上都有vi。
注意:linux下所有组件或者设备都是文件,因此一定要熟练掌握VI文本编辑操作。
4、Shell和shell脚本学习:正则表达式、管道命令、数据流重定向等。
5、必须学会软件管理员,自己会在Linux上安装软件。
6、网络基础的建立:IP概念、路由器概念等。
7、推荐学习网站,酷学园:study-area.org/network/network.htm
1、Linux自身的文件数据:/user/share/doc
1、命令界面转换为图形界面:输入命令startx或者init 5即可;图形界面切换到命令行界面:输入init 3即可;如果没有反应或者不行,直接重启即可(万能解决方法)。
(1)linux默认提供6个终端来让用户登录,切换方式使用Ctrl+Alt+F1-F6;Ctrl+Alt+F7是图形界面桌面。
2、命令行界面解释:
3、Linux命令、选项、参数用空格分隔,注意不论几个空格shell都视为一个空格。
4、tab命令:具有命令补全和文件补齐功能,使用方法:在命令后点击两次tab键,是命令补全功能;在一串命令的第二个命令以后使用,为文件补齐功能。
1、文件属性信息:文件属性信息组成包括:权限(前十一位) 连接数 所有者 用户组 文件大小 修改日期 文件名
(3)第三部分表示所属用户:root表示用户;
(4)第四部分表示所属用户组:root表示用户组;
(5)第五部分表示:文件大小,单位字节;
(6)第六部分表示:文件最后的修改日期;
(7)第七部分表示:文件名称。
2、文件类型
(2)一般文件的标识符为-,主要包括:纯文本文件、二进制文件(可执行文件)、数据格式文件(特定格式的文件)。
(3)连接文件的标识符为l,类似windows下的快捷方式。
(4.1)块(block)设备文件:就是一些存储数据,已提供系统随机访问的接口设备,如硬盘、软盘等,标识符为b。
(4.2)字符设备文件(character):是一些串行端口的接口设备,例如键盘鼠标,标识符为c。
(5)管道(FIFO,pipe)是一种特殊的文件类型,主要用来解决多个程序同时访问一个文件所造成的错误问题,标识符为p。类似于进程,解决并发问题。
注意:linux的可执行文件和windows的可执行文件的区别:只要权限中有x,就表示该文件可以执行,但是能不能执行成功,需要看文件中的内容。
3、修改文件属性与权限
注意:组中的用户格式:组.用户名。
(3)chmod:改变文件权限。
注意:不指定用户,相当于三种用户都添加该权限。例如:chmod +x t1.sh
(3)/var:与系统运行过程有关。主要存放缓存、登录文件及某些软件运行所产生的文件。
(2)/opt(第三方软件)
(3) /etc (配置文件)
(4)/boot (开机和内核文件)
(5)/var/mail (邮件)
(6)/var/spool/news (新闻组)
(7)/var/run(程序相关文件)
(8)/var/lock(程序相关)。
1、所有linux版本都有一套文本编辑器就是vi,其中,vim是高级版的vi。可以视vim为一种程序编辑器。
注意:Vi+文件名:即可进入vi的一般模式;无论文件存在与否。
2、vi分为3中模式:一般模式、编辑模式、命令行模式。
(1)一般模式:可以移动光标,删除字符或删除整行,复制或粘贴文件数据。
(2)编辑模式:一般模式通过按下“i,l,o,a,r”即可进入编辑模式;点击ESC,返回一般模式。注意:编辑模式可以插入或替换文件数据。
(3)命令行模式:输入“: / ?”可以进入命令行模式,进行读取、保存文件等其他额外功能;点击ESC,返回一般模式。其中“ / ?”可用于查找内容。
注意:用法如下:/word:表示向下查找word;?word:表示向上查找word。
3、vi常用命令
(1)vim或者vi编辑文档显示行号:进入命令模式,然后输入命令 set number 或 set nu。
(2)将光标移动到指定行,可以在命令模式下输入“:n”即可移动到指定行。
(3)删除所有文本内容,在命令模式 下输入“dG”即可。
(4)复制全部内容,在命令模式下输入“ggyG”即可。
(5)nyy中的n代表要复制的是光标后的几行内容,如果我把n改成2,那么我复制的就是光标后的2行的内容。
(6)ndd表示删除光标以下n行。
(7)gg:表示光标移动到文章开头;G:表示移动到文件结尾;
(8)vi编辑文本内容,在一般模式下按v可进入可视化命令,进行字符选择;大写V表示直接从光标处选到该行最后;Ctrl+v表示可视化块命令,进行字符块选择;
注意:在可视化模式下,可配合上下左右键进行选择;同时,Ctrl+v可视化块命令下可以查看缩进是否一致。
4、vi光标移动命令
注意:gg:表示光标移动到文章开头;G:表示移动到文件结尾;
移动到光标所在行行首:1) Home键; 2) 数字0; 3) 符号^;
移动到光标所在行行尾:1) End键; 2) 符号$
5、vi复制命令
6、vi编辑命令
注意:touch 文件名:如果文件不存在,新建文件。
1、查阅文件内容命令:cat,使用格式:cat [-AbEnTv] 文件;
注意:-n表示打印行号,连同空白行也会有行号。注意:dev/null:在类 Unix 系统中,/dev/null 称空设备,是一个特殊的设备文件。清空文件内容命令:cat /dev/null > /etc/test.txt。
2、添加行号显示文件内容命令:nl,使用格式:nl 文件名;
3、文件描述符:对于linux内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程等返回一个文件描述符。按照惯例,unix系统shell把文件描述符0与进程的标准输入关联,文件描述符1与标准输出关联,文件描述符2与标准错误关联。
4、重定向命令:
(1)输出重定向命令:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)。
注意:其中>表示:以覆盖的方法将数据输出到指定的文件或设备上;>>表示:以累加的方法将数据输出到指定的文件或设备上。
(2)输入重定向命令:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备的输入。
注意:locate是从数据库查询文件,因此一些新建的文件会查询不到,需要更新数据库之后才可以。更新数据库命令:updatedb;
(1)时间参数说明:参数说明:时间参数共有三个:-atime、-ctime、-mtime;
-mtime n :n为数字,意义为在n天之前的一天之内被更改过的文件;
-mtime +n:列出在n天之前(不包含n天本身)被更改过的文件名;
-mtime -n:列出在n天之内(含n天本身)被更改过的文件名;
(2)与用户或用户组名有关的参数(用于查找用户的文件)
-uid n:n为数字,这个数字为用户的账号id,即UID。
-gid n:n为数字,这个数字是用户组名的id,即gid;
-user name:name为用户账号的名称;
-group name:name为用户组名。
-nouser:寻找文件的所有者不存在/etc/passwd的文件。(适用于某用户被删除,查找他创建的文件)。
-nogroup:寻找文件的所有用户组不存在于/etc/group中的文件。
(3)与文件权限及名称有关的参数
-name filename:查找文件名为filename的文件;
-size [+-]size:查找文件大小比size大或小的文件,c:代表byte。K代表1024bytes;
-perm mode:查找权限刚好等于mode的文件,例如:4755;
-perm -mode:查找文件权限必须全部包含mode的权限的文件。
-perm +mode:查找文件权限包含任一mode的权限的文件。
(4)其他操作命令
-exec command:command为其他命令,-exec后面可再接其他的命令来处理查找到的结果。例如:find / -perm +7000 -exec ls -l {}\;
参数说明:h为以GB、MB、KB等格式自行显示。例如:df -h
一块新的硬盘插到计算机上是没有办法直接使用的,要先对硬盘分区格式化,完成挂载之后才能使用。
1、使用MBR分区表的硬盘最多只能划分4个主分区磁盘,如果分区的硬盘容量超过2TB了,则需要使用GPT分区表类型,是一种新的硬盘分区标准;MBR的意思是主引导记录,它有自己的启动器,也就是启动代码,GPT是一个正逐渐取代MBR的新标准,它由UEFI辅住而形成的。
(1)UEFI,全称Unified Extensible Firmware Interface,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口,旨在代替BIOS(基本输入/输出系统)。
(2)fdisk 命令最大只能划分 2T 大小的磁盘,超过 2T 大小的磁盘需要使用 parted 命令。
2、MBR分区方式:主分区最多只能有4个,或者3个主分区和1个扩展分区;在扩展分区上我们可以创建多个逻辑分区,分区编号:主分区1-4 ,逻辑分区数量不限。
(1)扩展分区可以是0个,最多是1个;真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中。
(2)主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上
(3)扩展分区不能使用的,它只是做为逻辑分区的容器存在的;我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中;创建了扩展分区之后,还需要在扩展分区上创建逻辑分区,硬盘才能使用。
(4)如果你用的是GPT的分区方式,那么它没有限制主分区个数。
查看磁盘分区:fdisk;使用格式:fdisk [-l] 设备名称,q表示退出fdisk;w表示操作生效。
1、查看是否有硬盘没有分区:fdisk -l;
2、对未分区的硬盘分区:fdisk 设备名称;例如:fdisk /dev/sdc;
(1)输入m,可以查看有哪些命令操作;
(2)输入p,可以查看硬盘当前分区情况;
(3)输入n,表示新建一个分区;再输入p,表示创建一个主分区;在输入主分区的编号:1-4;再设置主分区的大小:主分区扇区的开始位置默认从1开始,主分区的结束位置。
注意:其他主分区创建方法一样,可以只创建主分区即可。如果要创建扩展分区,一定要在扩展分区上创建逻辑分区才能使用。
(4)输入p,查看已经创建好的分区;
(5)输入w,对创建好的分区进行写入保存。
3、分区创建好之后,需要对分区进行格式化,即指定硬盘的文件系统类型。
注意:因为每种操作系统所设定的文件属性/权限并不相同, 为了存放这些文件所需的数据,因此就需要将分区槽进行格式化,以成为操作系统能够利用的『文件系统格式(filesystem)]。
(1)磁盘格式化命令:mkfs,使用格式:mkfs [-t 文件系统格式] 设备文件名 等价于mkfs.文件系统格式名 设备文件名。
(2)常用的文件系统,其中包括ext、ext2、ext3、ext4、JFS、XFS、ReiserFS等
4、磁盘格式化之后需要挂载才能正常使用。
(3)可以通过磁盘可用命令查看是否成功:df 。
5、卸载分区命令:umount 设备文件名;例如:umount /dev/sdc1。
注意:分区卸载了,其实还可以挂载,而且数据还会在的。可以使用fdisk命令对分区进行删除。
6、删除分区:fdisk 设备文件名;操作和创建分区类似。
2、为什么要区分这两个概念呢?这源于 Linux 中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。tar包文件的命令通常都是以.tar结尾的。
(2)解压缩命令:tar -jxvf filename.tar.bz2
Dump的备份若针对文件系统时,可进行0-9的level差异备份,其中level0是完整备份。
注意:dump 命令使用“备份级别”来实现增量备份,它支持 0~9 共 10 个备份级别。其中,0 级别指的就是完全备份,1~9 级别都是增量备份级别。
1、进程管理的作用:(1)判断服务器健康状态;(2)查看系统中所有进程;(3)杀死没用的进程。
2、进程查看命令:ps
3、查看系统健康状态:top
注意:ps 命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,为此,Linux 提供了 top 命令。top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。
(1)top前5行说明:主要关注:load average(平均负载,即系统前1分钟,5分钟,15分钟的平均负载),CPU的空闲率,内存的空闲率,swap的空闲率。
(2)top输出内容含义:
4、杀死进程命令:kill -信号 进程端口;杀死指定进程。
注意:常用的信号,如下:
(1)-1:SIGHUP,表示该信号让进程立即关闭,然后重新读取配置文件之后重启,即表示平滑重启;
(2)-9:SIGKILL,表示用来立即结束程序的运行,即强制关闭
5、killall [选项][信号] 进程名:表示按照进程名杀死进程即批量杀死进程;
(1)选项:-i:表示交互式,询问是否要杀死某个进程;
(2)-I:忽略进程名的大小写。