第一讲:
第二讲:linux学习方向
1.Linux运维工程师;Linux嵌入式开发工程师;在Linux下做各种程序开发
第三讲:Linux应用领域(了解)
1.个人桌面领域的应用:此领域是Linux最薄弱,操作复杂,应用软件少
2.服务器领域:该领域最强
3.嵌入式领域:运行稳定,对网络的良好性支持,低成本
第四讲:Linux高手进阶之路
1.Linux是一个开源,免费的操作系统
基础篇:
第五讲:Linux入门
1.Linux介绍:
*Linux怎么读
*Linux是一款操作系统,免费,开源,安全,高效,稳定,处理高并发强悍,现在很多企业级的项目都部署到Linux,unix服务器运行。
*Linux的主要发行版
*目前主要的操作系统有:windows,android,车载系统,Linux等
第六讲:Linux和unix的关系
第七讲:Linux和Windows比较
第八讲:VM和Linux(CentOS)系统安装
1.基本说明:学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习
*先安装virtual machine ,vm12
*在安装Linux(CentOS 6.8)
*原理示意图 VM和CentOS的关系
2.VM的安装步骤
*去BIOS里修改设置开启虚拟化设备支持
第九讲:CentOS安装的步骤
1.创建虚拟机
*开始安装系统(CentOS)
第十讲:
1.CentOS的终端使用和联网
*终端的使用,点击鼠标的右键,即可选择打开终端
2.可以配置网络,可以上网
*点击上面右侧的:两个计算机图标,选择启动etho,即可上网
第十一讲:安装vmtools
1.介绍:vmtools安装后,可以让我们在windows下更好的管理vm虚拟机
*可以直接粘贴命令在windows和CentOS系统之间
*可以设置windows和CentOS的共享文件夹
2.步骤:
*进入centos
*点击 VM 菜单的-> install vmware tools
*centos 会出现一个VM的安装包
*点击右键解压,得到一个安装文件
*进入该 VM 解压的目录,该文件在 /root/桌面/vmware-tools-distrib/下安装 ./vmware-install.pl
*全部使用默认设置即可
*需要reboot重新启动即可生效
-----------------------------------------------------
*设置共享文件夹:
*菜单-> vm -> setting,如图设置即可(注意:设置选项为always enable)
*windows和 centos 可共享d:/ share 目录
*在centos 的/mnt/hgfs/下
第十二讲:linux的目录结构
1.linux的文件系统采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后再次目录下再创建其他目录。
2.深刻理解linux树状文件目录是非常重要的,这里给大家说明下,在linux世界里,一切皆文件
*/bin 是Binary的缩写,这个目录存放着最经常使用的指令
*/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
*/home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
*/root 该目录为系统管理员,也称作超级权限者的用户目录。
*/lib 系统开机所需要最基本的动态链接共享库,其作用类似于Window里的Dll 文件,几乎所有的应用程序都需要用到这些共享库。
*/lost+found 这个目录一边情况下是空的,当系统非法关机后,这里就存放了一些文件。
*/etc 所有的系统管理所需要的配置文件和子目录
*/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows 下的program files目录。
*/boot 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
*/proc 这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息。
*/srv service缩写,该目录存放一些服务启动之后需要提取的数据。
*/sys 这是linux2.6 内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfx。
*/tmp 这个目录是用来存放一些临时文件的。
*/dev 类似于windows 的设备管理器,把所有的硬件用文件的形式存储。
*/media Linux系统会自动识别一些设备,例如U盘,光驱等等,当时别后,Linux会把识别的设备挂载到这个目录下。
*/mnt 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容。
*/opt 这是给主机额外安装软件所摆放的目录,入安装ORACLE数据库就可以放到该目录下,默认为空。
*/usr/local 这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序。
*/ var 这个目录中存放着不断扩充着的东西,习惯将经常修改的目录放到这个目录下。包括各种日志文件。
*/selinux selinux是一种安全子系统,他能控制程序只能访问特定文件。
3.总结
*linux的目录中有且只有一个根目录
*linux的各个目录存放的内容是规划好的,不用乱放文件。
*linux是以文件的形式管理我们的设备,因此Linux系统中,一切皆为文件
*linux的文件目录下存放什么内容,必须有认识。
*学习后,脑海中应该有一个目录树
实操篇
第十三讲:远程登录Linux系统
1.为什么需要远程登录Linux
*linux服务器是开发小组共享的。
*正式上线的项目是运行在公网的。
*因此程序员需要远程登录到centos 进行项目管理或者开发
*远程登录客户端主要有 Xshell ,Xftp
2.Linux-Xshell5 安装
*特别说明:如果希望安装好XShell 5 就可以远程访问Linux系统的话,前提要Linux启动了SSHD服务,该服务会监听22号端口。
第十四讲:远程登录Linux-Xftp(安装使用XFTP5)
1.是一个基于windows平台的功能强大的SFTP,FTP文件传输软件。使用了XFTP以后,windows用户能够安全的在UNIX/Linux和windows pc之间传输文件。
3.连接到Linux成功的界面
3.用哪个用户登录,就会自动切换到对应的那个用户的目录下
第十五讲:vi和Vim编辑器
1.所有的Linux系统都会内建vi文本编译器
2.Vim具有程序编辑能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完,编译及错误跳转等1方便编程的功能特别丰富,在程序员中被广泛使用。
3.vi和vim三种常见模式
*正常模式
*插入模式(编辑模式)
*命令行模式
4.快速入门案例(编写HelloWOrld.java)
*按ll查看本目录下所有文件 vim Hello.java:打开java文件 :wq :保存退出 :q 不保存退出 :q!强制退出
粘贴按 p ;复制,粘贴要在一般模式下执行
删除也是在一般模式下
7>:先到一般模式下,输入去哪一行的数字,再输入Shift+g(按键) 即20 Shift +g
第十六讲:开机,重启和用户登录注销
1.关机&重启命令:
*shutdown :shutdown –h now:表示立即关机 shutdown –h 1 :表示一分钟后关机 shutdown –r now 立即重启
*halt 就是直接使用,效果等价于关机
*reboot 重启系统
*sync 把内存的数据同步到磁盘上
注意细节:当我们关机后者重启时,都应该先执行sync指令,把内存的数据写入磁盘,防止数据丢失。
2.用户登录和注销:
*登录时尽量少用root账号登录,因为他是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再用”su - 用户名”命令来切换系统管理员身份。
*在提示符下输入logout即可注销用户
注意细节:
**logout注销指令在图形运行级别无效,在运行级别3下有效。
**运行级别这个概念,后面给大家介绍
第十七讲:用户管理:
1.基本介绍
2.基本介绍
*Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
*Linux的用户需要至少属于一个组,也可以属于多个组
3.添加用户
useradd 用户名
细节说明:
**当创建成功后,会自动的创建和用户同名的家目录
**也可以通过useradd –d 指定目录 新的用户名,给新创建的用户指定目录。
4.指定/修改密码
passwd 用户名
第十八讲:
5.删除用户:
userdel 用户名
*删除用户,但是要保留家目录
*删除用户以及用户主目录
*注意:在删除用户时,我们一般不会将家目录删除。
第十九讲:查询用户信息
1.查询用户信息指令
*基本语法:
id 用户名
*应用实例
案例一:请查询root信息
*细节说明
当用户不存在时,返回无此用户
2.切换用户:
*介绍:
在操作Linux中,如果当前用户的权限不够,可以通过 su – 指令,切换到高权限用户,比如root
*基本语法:
su -切换用户名
*细节说明:
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
当需要返回到原来用户时,使用exit 指令。
3.查看当前用户/登录
*基本语法:
whoami //who am i
*用户组
介绍:类似于角色,系统可以对有共性的多个用户进行统一管理。
*新增组:指令:groupadd 组名
第二十讲:用户组
1. 新增组:指令:groupadd 组名
*增加用户时直接加上组:useradd -g 用户组 用户名
2. 删除组:
*指令:groupdel 组名
3.修改用户的组
*指令 usermod -g 用户组 用户名
第二十一讲:用户和组的相关的文件
1./etc/passwd 文件
*用户(user)的配置文件,记录用户的各种信息
*每行的含义:用户名:口令:用户标识号:注释性描述:主目录:登录Shell
2. /etc/shadow 文件
*口令配置文件
*每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3. /etc/group 文件
*组(group)的配置文件,记录Linux包含的组的信息
*每行含义:组名:口令:组标识号:组内用户列表
第二十二讲:实用指令
1.指定运行级别:
*0:关机
*1:单用户级别(找回丢失密码有用)
*2:多用户无网络服务
*3:多用户有网络(用的最多)
*4:保留级别
*5:图形界面级别
*6:重启
2.切换到指定运行级别的指令
*基本语法:init [0,1,2,3,5,6]
*实例:通过init来切换不同的运行级别,比如5->3 ,然后关机
3.如何找回root密码,如果我们不小心,忘记了root密码,怎么找回。
*进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码,就可以登录
4.vim /etc/inittab 可以更改默认运行级别
第二十三讲:实用指令---帮助指令
1.帮助指令:
*当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解指令的使用方法。
*man
**基本用法: man [命令或者配置文件](功能描述,获取帮助信息)
**应用实例:查看ls命令的帮助信息:
*help指令
**基本命令 (功能描述,获取shell内置命令的帮助信息)
**应用案例 查看cd命令的帮助信息
第二十四讲:文件目录类
1.pwd指令:
*基本用法:pwd (功能描述:显示当前工作目录的绝对路径)
2.ls指令
*基本语法:ls [选项] [目录或是文件]
-a: 显示当前目录所有的文件和目录,包括隐藏的
-l : 以列表的方式显示信息
3.cd 指令
*基本指令:cd [参数] (功能描述,切换到指定的目录)
*常用参数:
**cd ~ 或者cd . 回到自己的家目录
**cd.. 回到当前目录的上一级
第二十五讲:文件目录类
1.mkdir指令 (make directory)
*mkdir指令用于创建目录:
*基本用法:mkdir [选项] 要创建的目录
*常用选项
-p :创建多级目录
*应用实例:
**案例1:创建一个目录 /home/dog
**案例2:创建多级目录 /home/animal/tiger
2.rmdir指令
*rmdir指令删除空目录
*基本语法: rmdir [选项] 要删除的空目录
*应用实例:删除一个目录 /home/dog
*使用细节: rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm –rf 要删除的目录
第二十六讲:文件目录类:
1.touch指令
*touch指令创建空文件
*基本语法: touch 文件名称
*应用实例:创建一个空文件 hello.txt
2.cp指令
*cp指令拷贝文件到指定目录
*基本语法:cp[ 选项] source dest
*常用选项:- r 递归复制整个文件夹
*应用实例:
**将/home/aaa.txt 拷贝到 /home/bbb 目录下
**递归复制整个文件夹,
**将home目录下的test文件夹复制到zwj文件夹下
*使用细节:强制覆盖不提示的方法: \cp
第二十七讲:
1.rm指令
*rm指令移除文件或目录
*基本语法: rm [选项] 要删除的文件或目录
*常用选项
-r:递归删除整个文件夹
-f :强制删除不提示
*应用实例:
**案例1:将/home/aaa.txt删除
**案例2:递归删除整个文件夹 /home/bbb
*使用细节:强制删除不提示的方法,带上-f参数即可
2.mv指令
*mv移动文件与目录或重命名
*基本语法:mv oldNameFile newNameFile (功能描述,重命名)
mv/temp/movefile/targetFolder
*应用实例:
**将/home/aaa.txt文件 重新命名为pig.txt
**将当前目录下的pig.txt文件移动到 /root
第二十八讲:
1.cat 指令
*cat查看文件内容,以只读方式打开
*基本用法:cat [选项] 要查看的文件
*常用选项 : -n 显示行号
*应用实例
**案例一: /etc/profile 文件内容,并显示行号
*使用细节:cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上, 管道命令 |more
2.more指令
*more指令是一个基于VI编译器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键。
*基本语法
more 要查看的文件
-------操作 功能说明
空白键 代表向下翻一页
Enter 代表向下翻一行
q 代表立即离开more,不再显示该文件内容
ctrl+f 向下滚动一屏
Ctrl+B 返回上一屏
n 输出当前行号
f 输出文件名和当前行号
3.less指令
*less指令用来分屏查看文件内容,它的功能与more指令相似1,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
*基本语法:less 要查看的文件
*应用实例: 案例:蚕蛹less查看一个大文件文件 /opt/金庸-射雕英雄传txt精校版.txt
*-----操作 功能说明
空白键 向下翻动一页
pagedown 向下翻动一页
pageup 向上翻动一页
/子串 向下搜寻[子串]的功能 n:向下查找 N:向上查找
?子串 向上搜寻[子串]的功能 n:向上查找 N:向下查找
q 离开less这个程序
第二十九讲:
1. >指令 和 >>指令
*>输出重定向和>>追加
*基本语法:
**ls –l>文件 (功能描述:列表的内容写入文件a.txt 中(覆盖写))
将ls –l显示的内容写入到 文件中,若文件不存在,创建文件,存在则直接覆盖
**ls-al>>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
**cat文件1>文件2 (功能描述:将文件1的内容覆盖到文件2)
**echo “内容”>>文件
*实例
**将/home目录下的文件列表写入到/home/Info.txt中
**将当前日历信息 追加到/home/mycal文件中[提示cal]
第三十讲:
1.echo指令
*echo输出内容到控制台
*基本语法:echo [选项] [输出内容]
应用实例:
**使用echo输出环境变量
**使用echo指令输出Hello,world!
2.head指令
*head指令用于显示文件的开头部分,默认情况下head指令显示文件的前十行内容
*基本语法:head 文件 (功能描述:查看文件头十行内容)
head –n 5 文件 (功能描述:查看文件头·5行,5可以是任意行数)
*应用案例:查看/etc/profile的前面12行代码
3.tail 指令
*tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
*基本语法:
**tail 文件 (功能描述:查看文件后十行内容)
**tail –n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数)
**tail –f 文件 (功能描述:实时追踪该文档的所有更新)
*应用实例
**查看/etc/profile 最后5行的代码
**实时监控mydate.txt ,看看到文件变化时,是否看到,实时的追加日期
第三十一讲:
1.ln指令
*软链接也叫符号链接(快捷方式),类似于windows的快捷方式,主要存放了链接其他文件的路径
*基本语法: ln –s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
*应用实例:
**在/home目录下创建一个软链接linkToRoot,连接到/root目录
**删除软链接linkToRoot
*细节说明:当我们使用pwd指令查看目录时,仍然看到的是软链接所在的目录。
2.history 指令
*查看已经执行过历史命令,也可以执行历史指令
*基本用法:history (功能描述:查看已经执行过历史指令)
*应用实例
**显示所有的历史指令
**显示最近使用过的10个指令
**执行力是编号为206的历史指令
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三十二讲:时间日期类
1.date 指令-显示当前日期
*基本用法:
**date (功能描述:显示当前时间)
**date+%Y (功能描述:显示当前年份)
**date+%m (功能描述:显示当前月份)
**date+%d (功能描述:显示当前是哪一天)
**date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒)
*应用实例:
**显示当前时间信息
**显示当前时间年月日
**显示当前时间年月日,时分秒
2.date指令-设置日期
*基本语法:date –s 字符串时间
*应用实例:
设置系统当期时间,比如设置成2020-11-11 11:22:22
3.cal指令
*查看日历指令
*基本语法:cal [选项] (功能描述:不加选项,显示本月日历)
*应用实例:
**显示当前日历
**显示2020年日历
------------------------------------------------------------------------------------------------------------------------------------------------------
第三十三讲:搜索查找类
1.find指令
*find指令将从指定目录下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
*基本语法:find [搜索范围] [选项]
*选项说明
选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件
*应用案例
**按文件名,根据名称查找 /home目录下的hello.txt文件
**按拥有者:查找 /opt目录下,用户名为nobody的文件
**查找整个linux系统下大于20m的文件(+n 大于 –n小于 n 等于)
2.grep:指令和管道符号
*grep过滤查找,管道符,”|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
*基本语法:grep [选项] 查找内容 源文件
*常用选项
选项 功能
-n 显示匹配行及行号
-I 忽略字母大小写
*应用实例:请在hello.txt文件中,查找”yes”所在行,并且显示行号
3.locate指令
*locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
*基本语法:locate 搜索文件
*特别说明:
**由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
*应用实例:请使用locate指令快速定位hello.txt文件
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三十四讲:压缩和解压类
1.gzip/guzip指令
*gzip用于压缩软件,gunzip用于解压的
*基本语法:
**gzip 文件 (功能描述:压缩文件,正能将文件压缩为*.zg文件)
**gunzip 文件 (功能描述:解压缩文件命令)
*应用案例
**gzip压缩,将/home下的hello.txt文件进行压缩
**gunzip压缩,将/home.txt.gz文件进行解压缩
2.zip/unzip指令
*zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用的
*基本用法
**zip [选项] xxx.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
**unzip [选项] xxx.zip (功能描述:解压缩文件)
*zip常用选项
**-r :递归压缩,即压缩目录
*unzip常用选项:
**-d<目录> :指定压缩后文件的存放目录
*应用实例:
**将/home下的所有文件进行压缩成mypackage.zip
**将 mypackage.zip 解压成/opt/tmp 目录下
3.tar指令
*tar指令是打包指令,最后打包后的文件是*.tar.gz的文件。
*基本语法:tar [选项] xxx.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
*选项说明:
选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
*应用实例:
**压缩多个文件,将/home/al.txt和/home/a2.txt压缩成a.tar.gz
**将/home 的文件夹压缩成 myhome.tar.gz
**将a.tar.gz 解压到当前目录
**将myhome.tar.gz解压到/opt目录下
第三十五讲:组管理和权限管理(重难点):
1.Linux组基本介绍
*在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者,所在组,其他组的概念。
*所有者
*所在组
*其他组
*改变用户所在的组
*
2.文件/目录所有者
*一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
*查看文件的所有者
**指令 ls –ahl
**应用实例:创建一个组 police,再创建一个用户 tom,然后使用 tom来创建一个文件,看看情况如何。
*修改文件所有者
**指令:chown 用户名 文件名
**应用案例:使用root创建一个文件aple.txt,然后将其所有者修改成tom
3.文件/ 目录所在组
*当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
*查看文件/目录所在组
**基本指令:ls –ahl
**应用实例:
*修改文件所在的组
**基本指令:chgrp 组名 文件名
**应用实例:使用root用户创建orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到police组。
4.其他组
*除文件的所有者和所有组的用户外,系统的其他用户都是文件的其他组
5.改变用户所在组
*在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
*改变用户所在的组:
usermod –g 组名 用户名
usermod –d 目录名 用户名 改变该用户登录的初始目录
*应用实例:创建一个土匪组(bandit),讲tom这个用户从原来所在的police组,修改到bandit组。
第三十六讲:权限的基本介绍
1.权限的基本介绍
*ls –l中显示的内容如下
*0~9位说明:
第0位确定文件类型(d,-,l,c,b) [ - 普通文件 d 目录文件 l 软链接 c字符设备(键盘,鼠标等) b 快文件(硬盘等)]
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。-User
第4-6位确定所属组(同用户组的)拥有该文件的权限,-Group
第7-9位确定其他用户拥有该文件的权限 –Other
2.rwx权限详解
*rwx作用到文件
**[r]代表可读(read) :可以读取,查看
**[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件。
**[x]代表可执行(execute):可以被执行
*rwx作用到目录
**[r]代表可读(read):可以读取,ls查看目录内容
**[w]代表可写(write):可以修改,目录内创建+删除+重命名目录
**[x]代表可执行(execute):可以进入该目录
3.文件及目录权限实际案例
*
第三十七讲:
1.修改权限 –chmod
*基本说明:通过chmod 指令,可以修改文件或者目录的权限。
*第一种方式:+,-,=变更权限
u:所有者 g:所在组 o:其他人 a:所有人(u,g,o的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
*案例演示
给abc文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限
给abc文件的所有者除去执行的权限,增加组写的权限
给abc文件的所有用户添加读的权限
*第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名 相当于 chmod 751 文件目录名
*案例演示:将/home /abc.txt 文件的权限修改成rwxr-xr-x,使用数字的方式实现。
2.修改文件所有者-chown
*基本介绍
**chown newowner file (改变文件的所有者)
**chown [-R] newowner:newgroup file (改变用户的所有者和所有组)
-R 如果是目录,则使其下所有子文件或目录递归生效
*案例演示
**请将 /home/abc.txt文件的所有者修改成tom
**请将/home/kkk目录下所有的文件和目录的所有者都修改成tom
3.修盖文件所在组 –chgrp
*基本介绍:chgrp [-R] newgroup file (改变文件的所有组)
*案例演示 (与2类似)
**请将/home/abc.txt文件的所在组修改成shaolin(少林)
**请将/home/kkk目录下所有的文件和目录的所在组都修改成shaolin(少林)
第三十八讲:
练习题
第三十九讲:定时任务调度
1.crond任务调度
*crontab进行 定时任务的设置。
*概述:
**任务调度:是指系统在某个时间执行的特定的命令或程序。
**任务调度分类:
系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。
个别用户工作:个别用户可能希望执行某些程序,比如mysql数据库的备份。
*基本语法:crontab [选项]
*常用选项
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
service crond restart 重启任务调度
*快速入门
**设置任务调度文件:/etc/crontab
**设置个人任务调度。执行crontab –e 命令
**接着输入任务到调度文件
如:*/**** ls –l /etc/>>/tmp/to.txt 意思说每小时的每分钟执行ls-l/etc/>tmp/to.txt命令
*参数细节说明
**5个占位符的说明
项目 含义 范围
第一个”*” 一小时当中的第几分钟 0-59
第二个”*” 一天当中的第几小时 0-23
第三个参数 一月当中的第几天 1-31
第四个参数 一年当中第几月 1-12
第五个参数 一周当中的星期几 0-7(0和7都代表星期日)
**特殊符号的说明
特殊符号 含义
* 代表任何时间。比如第一个”*”就代表一个小时中每分钟都执行一次的意思
, 代表不连续的事件。比如”0 8,12,16 * * *”就代表在每天的8点整,12点整,16点整都执行一次。
- 代表连续的时间范围。比如”0 5 * * 1-6” 命令,代表在周一到周六的凌晨5点执行命令。
*/n 代表每隔多久执行一次。比如”*/10 * * * *”命令,代表每隔10分钟就执行一遍命令。
第四十讲:
**任务调度的实例:
每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
先编写一个文件, /home/mytask1.sh :date >>/home/mytask1
给mytask1.sh一个可执行权限
crontab -e
*/1 * * * * /home /mytask1.sh
每隔一分钟,将当前日期和日历都追加到 /home/mycal文件中
每天凌晨2:00将mysql数据库testdb,备份到文件中。
Linux 磁盘分区和挂载:
第四十一讲:分区基础知识
1.分区的方式:
*mbr分区
**最多支持四个主分区
**系统只能安装在主分区
**扩展分区要占一个主分区
**MBR最大只支持2TB,但拥有最好的兼容性
*gtp分区:
**支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
**最大支持18EB的大容量(EB=1024PB,PB=1024T)
**windows7 64位以后支持gtp
第四十二讲:Linux分区
1.原理介绍:
*Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
*Linux采用了一种叫”载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
2.硬盘说明:
*Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
*对于IDE硬盘,驱动器标识符为”hdx~”,其中”hd”表明分区所在设备的类型,这里是指IDE硬盘了。”x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),”~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
*对于SCSI硬盘标识为”sdx~”,SCSI硬盘是用”sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
*查看所有设备挂在情况:命令:lsbll或者 lsblk -f
3.挂载的经典案例:
*说明:下面我们以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区,挂载,卸载的概念。
*如何增加一块硬盘
**虚拟机添加硬盘
**分区
**格式化
**挂载
第四十三讲:磁盘情况查询
1.查询系统整体磁盘使用情况
*基本语法:df -h
*应用实例:查询系统整体磁盘使用情况
2.查询指定目录的磁盘占用情况
*基本用法 du –h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
*应用实例:查询 /opt 目录的磁盘占用情况,深度为一
3.磁盘情况-工作实用指令
*统计/home 文件夹下文件的个数
*统计/ home 文件夹下目录的个数
*统计/home 文件夹下文件的个数,包含子文件夹里的
*统计文件夹下目录的个数,包括子文件夹里的
*以树状显示目录结构
网络配置
第四十四讲:
1.Linux网络配置原理图
*目前我们的网络配置采用的是NAT
2.查看网络IP和网关
*查看虚拟网络编辑器
*修改ip地址
*查看网关:
第四十五讲:
1.Linux网络环境配置
2.第一种方法(自动获取)
*说明:登陆后,通过界面的来设置自动获取ip
*特点:Linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样。导致不适合作服务器
第四十六讲:
2第二种方式(指定固定的ip)
*说明
**直接修改配置文件来指定ip,并可以连接到外网(推荐),编辑vi /etc/sysconfig/network-scripts/ifcfg-eth0
**要求:将ip地址配置的静态的,ip地址为192.168.184.130
进程管理
第四十七讲:
1.基本介绍:
*在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
*每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
*每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
*一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
2.显示系统执行的进程
*基本介绍
**ps命令是用来查看目前系统中,有那些正在执行,以及它们执行的状况。可以不加任何参数。
字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消耗CPU的时间
CMD 正在执行的命令或进程名
*参数
ps –a :显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
ps –aux
3.显示系统执行的进程
*基本格式:ps -ef | grep xxx
-e显示所有进程。 -f全格式
*PID:进程ID PPID:父进程ID
c:cpu用于计算执行优先级的因子。数值越大,表明进程是cpu密集型运算,执行优先级会降低,数值越低,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:cpu时间
CMD:启动进程所用的命令和参数
第四十五讲:
1.Linux网络环境配置
2.第一种方法(自动获取)
*说明:登陆后,通过界面的来设置自动获取ip
*特点:Linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样。导致不适合作服务器
第四十六讲:
2第二种方式(指定固定的ip)
*说明
**直接修改配置文件来指定ip,并可以连接到外网(推荐),编辑vi /etc/sysconfig/network-scripts/ifcfg-eth0
**要求:将ip地址配置的静态的,ip地址为192.168.184.130
进程管理
第四十七讲:
1.基本介绍:
*在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
*每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
*每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
*一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
2.显示系统执行的进程
*基本介绍
**ps命令是用来查看目前系统中,有那些正在执行,以及它们执行的状况。可以不加任何参数。
字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消耗CPU的时间
CMD 正在执行的命令或进程名
*参数
ps –a :显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
ps –aux
3.显示系统执行的进程
*基本格式:ps -ef | grep xxx
-e显示所有进程。 -f全格式
*PID:进程ID PPID:父进程ID
c:cpu用于计算执行优先级的因子。数值越大,表明进程是cpu密集型运算,执行优先级会降低,数值越低,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:cpu时间
CMD:启动进程所用的命令和参数
第四十八讲:
1..终止进程Kill和Killall
*介绍:若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成1此项任务。
*基本语法:
**kill [选项] 进程号 (功能描述:通过进程号杀死进程)
**killall 进程名称 (功能描述:通过进程名称杀死进程,野支持通配符,这在系统因负载过大而变得很慢时很有用)
*常用选项:
**-9:表示强迫进程立即停止
最佳实践:
**踢掉某个非法登录用户
**终止远程登录服务sshd,在适当时候再次重启sshd服务。
**终止多个gedit编辑器
**强制杀死一个终端
2.查看进程树
*基本语法:pstree [选项], 可以更加直观的来看进程信息
*常用选项:
-p: 显示系统的PID
-u:显示进程的所属用户
*应用实例:
请你树状的形式显示进程的pid
请你树状的形式进程的用户id
第五十讲:
1.进程管理-服务管理
*介绍:服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求。比如(mysql,sshd防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。
*service管理指令:
*service 服务名 start | stop | restart |reload | status
启动 停止 重启 重载 状态
*systemctl
*使用案例:查看当前防火墙的状况,关闭防火墙和重启防火墙。
*细节讨论
**关闭或启用防火墙后,立即生效。 [telnet 测试 某个端口即可]
**这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
**如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令。
*查看服务名
**使用setup->系统服务 就可以看到
**/etc/init.d/ 服务名称
*服务的运行级别(runlevel):
**查看或者修改默认级别:vi/etc/inittab
linux系统有7中运行级别(runlevel):常用级别是3和5
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(有NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登录哦后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关机并重启,默认级别不能设为6,否则不能正常启动
**开机的流程说明:
开机—>BIOS—>/bootàinit进程à运行级别à运行级对应的服务
*chkconfig指令
*介绍:通过chkconfig命令可以给各个运行级别设置自启动/关闭
*基本语法 chkconfig --list|grep xxx
*chkconfig 服务名 --list
*chkconfig --level 5 服务名 on /off :修改某个服务在某个级别下开启或者关闭
*chkconfig重新设置服务后自启动或关闭,需要重启机器reboot才能生效。
第五十一讲:
1.动态监控进程
*介绍:top与ps命令很相似,它们都用来显示执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。
*基本语法:top [选项]
*选项说明:
选项 功能
-d 秒数 指定top命令每隔几秒更新,默认是3秒,在top命令的交互模式当中可以执行的命令。
-l 使top不显示任何闲置或者僵死进程
-p 通过指定监控程序ID来仅仅监控某个程序的状态。
*交互操作说明
操作 功能
P 以CPU使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出top
2.监控网络情况netstat
*查看系统网络情况netstat
**基本语法 netstat [选项]
**选项说明:
-an 按一定顺序排列输出
-p 显示哪个进程在调用
**应用案例:请查看服务名为sshd的服务的信息
*检测主机链接命令 ping:
**是一种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断,网线是否脱落或网卡故障。
ping 对方ip地址
第五十二讲:
1.rpm包的管理:
*介绍:一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
2.rpm包的简单查询指令
查询已安装的rpm列表 rpm -qa | grep xx
*rpm –q 软件包名:查询软件包是否安装
rpm –q firefox
*rpm –qi 软件包名:查询软件包信息
rpm -qi file
*rpm –ql 软件包名:查询软件包中的文件在哪里
rpm –ql firefox
*rpm –qf 文件全路径名 查询文件所属的软件包
rpm –qf /etc/passwd
rpm –qf /root/install.log
3.卸载rpm包
*基本语法:rpm –e rpm包的名称
*应用案例:删除firefox软件包
*细节套路
**如果其他软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
**如果我们就是要卸载某个rpm包,可以增加参数 –-nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
4.安装rpm包:
*基本语法:rpm –ivh rpm包全路径名称
*参数说明:
i=install 安装 v=verbose 提示 h=hash 进度条
*应用实例
演示卸载和安装firefox浏览器
步骤先找到firefox的安装rpm包,你需要挂在上我们安装centos的iso文件,然后到/media/下去找rpm找。
第五十三讲:
1.yum
*介绍:Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
*yum的基本指令
**查询yum服务器是否有需要安装的软件 yum list | grep xx软件列表
**软件指定的yum包 yum install xxx (下载安装)
*yum应用实例:请使用yum的方式来安装firefox