一、课程大纲:
基础篇
1、Linux入门 2、VM和Linux的安装 3、Linux目录结构
实际操作篇
1、远程登录(XShell XFtp) 2、Vi和Vim编辑器 3、开机、重启和用户登录注销
4、实用指令 5、定时任务调整 6、 磁盘分区、挂载
7、RPM和YUM 8、网络配置 9、用户管理
2021高级篇
1、日志管理 2、定制自己的Linux 3、Linux内核源码&内核升级
4、Linux备份与恢复
5、Linux可视化管理webmain和bt运维工具
6、Linux入侵检测&权限划分&系统优化
7、Linux面试题
二、Linux目录结构:
1、/bin 【常用】(/usr/bin、/usr/local/bin)
是Binary的缩写,这个目录存放着经常使用的一些命令。
2、/sbin (/usr/sbin、/usr/local/sbin)
s就是Super User的意思, 这里存放的是系统管理员使用的系统管理程序。
3、/home 【常用】
存放普通用户的主目录,在Linux中每一个用户都有一个自己的目录,一般该目录是以用户的账号命名
4、/root 【常用】
该目录为系统管理员,也称作超级权限者的用户主目录
5、/lib
系统开机所需要的最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
6、/lost+found
这个目录一般是空的,当系统非法关机后,这里就存放了一些文件
7、/etc 【常用】
所以的系统管理所需要的配置文件和子目录,比如安装mysql数据库:my.conf
8、/usr 【常用】
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录
9、/boot 【常用】
存放的启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
10、/proc 【不能动】
这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息
11、/srv 【不能动】
service的缩写,该目录存放一些服务启动之后需要提取的数据
12、/sys 【不能动】
该目录下安装了2.6内核中新出现的一个文件系统sysfs
13、/tmp
这个目录用来存放一些临时文件
14、/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储
15、/media 【常用】
Linux系统会自动识别一些设备,例如U盘、光驱等,当挂载后,linux会把识别的设备挂载到这个目录下
16、/mnt 【常用】
系统提供该目录是为了让用户临时挂载别的文件系统,可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看内容
17、/opt
这是给主机额外安装软件所存放的目录。如安装ORCALE数据库就可放到该目录下
18、/usr/local 【常用】
这是给另一个主机额外安装软件所安装的目录
19、/var 【常用】
这个目录存放着不断扩充的东西,习惯将经常被修改的目录存放到这个目录下。包括各种日志文件
三、Vi和Vim编辑器
1.vi和vim常用三种模式
(1)正常模式:以vim打开一个文档就直接进入一般模式。这个模式中,可以【上下左右】移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理文件数据。
(2)插入模式:按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般按i即可。
(3)命令行模式:点击esc后,再输入:,在这个模式中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。
2.vi和vim快捷键
(1)拷贝当前行 yy,拷贝当前行向下的5行 5yy,并粘贴(输入p)
(2)删除当前行dd,删除当前行向下的5行 5dd
(3)在文件中查找某个单词【命令行下输入/关键字,回车 查找,输入n就是查找下一个】
(4)设置文件的行号,取消文件的行号【命令行下 :set nu 和 :set nonu】
(5)编辑 /etc/profile文件,在一般模式下,使用快捷键到该文档的最末行【G】和最首行【gg】
(6)在一个文件中输入"hello",在一般模式下,然后撤销这个动作【u】
(7)编辑 /etc/profile文件,在一般模式下,并将光标移动到,输入20,再输入shift+g
![](https://img-blog.csdnimg.cn/img_convert/3fe9e164f1b68277545c49cce75fdc0b.png)
四、开机、重启和用户登录注销
1.关机&重启命令
(1)shutdown -h now
立即进行关机
(2)shutdown -h 1
一分钟后关机
(3)shoudown -r now
现在立即重启
(4)halt
关机
(5)reboot
重新启动计算机
(6)sync
把内存的数据同步到磁盘
2.用户登录和注销
(1)登录少用root账号登录,因为它是系统管理员,最大权限,避免操作失误。可以利用普通用户登录,登录后再用" su -用户名"命令来切换管理员权限
(2)命令提示符下输入 logout 即可注销用户。logout注销指令在图形运行级别无效。
五、用户管理
1.添加用户: useradd 用户名
创建目录成功后,会自动创建和用户同名的家目录
可以通过useradd -d 指定目录 用户名,给新创建的用户指定家目录
2.指定/修改密码: passwd 用户名
显示当前用户所在目录:pwd
3.删除用户:userdel 用户名
删除用户并删除家目录:userdel -r 用户名
4.查询用户信息指令:id 用户名
5.查看当前用户/登录用户:who am i
6.用户组:类似于角色,系统可以对有共性/权限的多个用户进行统一管理、
(1)新增用户组指令:groupadd 组名
(2)删除用户组指令:groupdel 组名
(3)增加一个用户直接指定组:useradd -g 用户名 组名
(4)将一个用户移动到指定组:usermod -g 用户名 组名
7.用户和组相关文件
(1)/etc/passwd 文件:用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识符:组标识号:注释性描述:主目录:登录shell
(2)/etc/shadow 文件:口令的配置文件
每行的含义:登录名:加密口令:最后修改时间:最小间隔时间:最大间隔时间:警告时间:不活动时间:失效时间:标志
(3)/etc/group 文件:组(group)的配置文件,记录Linux包含的组的信息
每行的含义:组名:口令:组标识符:组内用户列表
六、实用指令
1.指定运行级别
运行级别说明:常用运行级别是 3 和 5,也可以指定默认运行级别
0:关机
1:单用户(找回丢失密码)
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统·未使用保留给用户
5:图形界面
6:系统重启
命令:init[0123456],通过init来切换不同的运行级别。
2.找回root密码
设置运行级别,linux运行后,直接进入到命令行终端(3)
3.帮助指令
(1)man 获得帮助信息
基本语法:man [命令或配置文件] (功能描述:获得帮助信息)
(2)help命令
基本语法:help命令(功能描述:获得shell内置命令得帮助信息)
4.文件目录类
(1)pwd指令
基本语法:pwd(功能描述:显示当前工作目录的绝对路径)
(2)ls指令
基本语法:ls [选项] [目录或是文件]
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示文件所有信息
(3)cd指令
基本语法:cd [参数] (功能描述:切换到指定目录)
cd ~或者cd:回到自己的家目录,比如root,cd~到/root
cd .. 回到当前目录的上一级目录
(4)mkdir指令
基本语法:mkdir [选项] [要创建的目录] (功能描述:创建目录)
常用选项:
-p:创建多级目录,例 mkdir -p /home/animal/tiger
(5)rmdir指令
基本语法:rmdir [选项] [要删除的空目录] (功能描述:删除空目录)
使用细节:rmdir只能删除空目录,目录下有内容时无法删除。
提示:删除非空目录,使用 rm -rf [要删除的目录]
-r:将目录以及以下所以内容及目录逐一删除
-f:删除时无须逐一确认,直接删除(谨慎使用)
(6)touch指令
基本语法:touch [文件名称](功能描述:创建空文件)
(7)cp指令
基本语法:cp [选项] [source](原目录或文件) [dest](新目录)
常用选项:
-r:递归复制整个文件夹
-a:保留链接、文本属性,并复制目录下所有内容
-d:复制时保留链接,链接相当于windows中的快捷方式。
-l :不复制文件,只是生成链接文件
-f:覆盖已经存在的目标而不给出提示
-p:除复制文件的内容外 ,还把修改时间和访问权限也复制到新文件中。
(8)rm指令
基本语法:rm [选项] [要删除的文件或目录](功能描述:移除文件或目录)
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示
(9)mv指令
基本语法:
mv [oldNameFile] [newNameFile](功能描述:重命名)
mv [目录或文件] [新目录](功能描述:移动文件)
(10)cat指令
基本语法:cat [选项] [要查看的文件]
常用选项:
-n:显示行号
-b:和n相似,空白行不编号
-s:当遇到连续两行以上的空白行,代换为一行的空白行
使用细节:
cat只能浏览文件,不能修改文件,为了方便,一般会带上管道命令:| more
cat -n /ect/profile | more [进行交互]
(11)more指令
基本语法:more [要查看的文件]
操作说明:
![](https://img-blog.csdnimg.cn/img_convert/2ac1114278a73ae71308fd070f8e0812.png)
(12)less指令
基本语法:less [要查看的文件]
操作说明:
![](https://img-blog.csdnimg.cn/img_convert/f0774aa47e1963cac200f1bd09863117.png)
(13)echo指令
基本语法:echo [选项] [输出内容](功能描述:输出内容到控制台)
(14)head指令
基本语法:head [文件](功能描述:查看文件头10行内容)
常用选项:-n 5 (功能描述:查看文件头5行内容,5可以任意数)
(15)tail指令
基本语法:tail [选项] [文件](功能描述:查看文件尾10行内容)
常用选项:
-n 5:查看文件尾5行内容,5可以任意数
-f:实时追踪该文档的所有更新
(16)>指令和>>指令
>:输出重定向(如果没有这个文件,则创建)
>>:追加(如果没有这个文件,则创建)
基本语法:
ls -l > 文件:列表的内容写入文件中(覆盖)
cat 文件1 > 文件2:将文件1的内容覆盖到文件2
echo "内容" >> 文件:追加
(17)ln指令
基本语法:ln -s [原文件或目录] [软链接名](功能描述:给原文件创建一个软链接,类似于windows里的快捷方式)
(18)history指令
基本语法:history(功能描述:查看已经执行过的历史命令)
常用选项:
10:显示最近使用过的10条指令,10可以任意数
!10:执行历史编号为10的指令
5.时间日期类
(1)date指令
基本语法:
date:显示当前时间
date+%Y:显示当前年份
date+%m:显示当前月份
date+%d:显示当前哪一天
date "+&Y-%m-%d %H:%M:%S":显示年月日时分秒
设置日期:date -s [字符串时间],例如:date -s "2021-09-07 20:00:00"设置为系统当前时间
(2)cal指令
基本语法:
cal [选项](功能描述:不加选项,显示本月日历)
cal 2021:显示2021年的日历
常用选项:
-b:对非空输出行编号
-n:对输出的所有行编号
(3)find指令
基本语法:find [搜索范围] [选项]
选项说明:
![](https://img-blog.csdnimg.cn/img_convert/d4967fa190709ac6b2aa95ebfd4ff683.png)
find /home -name hello.txt:根据名称查找/home目录下的hello.txt文件
find /opt -user root:查找/opt目录下,用户名为root的文件
find / -size +200M:查找整个linux系统下大于200M的文件(+n大于,-n小于,n等于,单位有k,M,G)
(4)locate指令
快速定位文件路径,基于数据库进行查询,第一次运行钱,必须使用 updatedb 指令创建数据库。
(5)查看磁盘使用情况:
df -h:显示剩余磁盘空间
du -h [目录名]:显示目录下的文件大小
6.grep指令和管道符号 |
基本语法:grep [选项] 查找内容 源文件(grep过滤查找,管道符号"|":表示讲前一个命令得处理结果输出传递给后面的命令处理)
常用选项:
-n:显示匹配行及行号
-v:不含包匹配行
-i:忽略字母大小写
应用实例:
"^a":搜寻以a开头的行
"ke$":搜寻以ke结束的行
查找"yes"所在行,并且显示行号
cat /home/hello.txt | grep "yes"
grep -n "yes" /home/hello.txt
7.压缩和解压类
(1)gzip和gunzip指令
基本语法:gzip 文件(只能压缩成*.gz文件),gunzip文件(解压缩文件)
(2)zip和unzip指令
基本语法:
zip [选项] [压缩后的文件名.zip] [压缩的原文件]
unzip [选项] 压缩文件名
常用选项:
zip
-r:递归压缩,即压缩目录
unzip
-d:指定解压后文件存放的目录
应用实例:
zip -r myhome.zip /home/:将home目录及其包含的文件和子文件夹都压缩
unzip -d /opt/tmp /home/myhome.zip:将myhome.zip解压到/opt/tmp目录下
(3)tar指令
基本语法:tar [选项] [XXX.tra.gz] [打包的内容](功能描述:打包目录,压缩后的文件格式tar.gz)
选项说明:
![](https://img-blog.csdnimg.cn/img_convert/3fcabca8b51cde806803179af2ad6a8a.png)
-j:将z选项换成j选项,指定以biz2格式压缩文件
应用实例:
压缩多个文件,将/home/pig.txt 和 /home/cat/txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
将/home的文件夹,压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将 pc.tar.gz 解压到/opt/tmp目录下
tar -zxvf pc.tar.gz -C /opt/tmp
3)以biz2方式将 pc.tar.gz 解压到/opt/tmp目录下
tar -jxvf pc.tar.gz -C /opt/tmp
七、组管理和权限管理
1.Linux组基本介绍
(1)所有者
(2)所在组
(3)其它组
(4)改变用户所在的组
2.文件/目录 所有者
(1)查看文件的所有者:ls -ahl(标红列)
drwxr-xr-x. 2rootroot 4096 9月 8 10:59 公共
(2)修改文件的所有者:chown [用户名] [文件名]
3.组的创建
基本指令:groupadd [组名]
应用实例:
创建一个用户,并将其放入某个指定组:useradd -g [组名] [用户名]
4.文件/目录所在组
(1)查看文件/目录所在组:ls -ahl(标红列)
drwxr-xr-x. 2 root root 4096 9月 8 10:59 公共
(2)修改文件/目录所在组:chgrp [组名] [文件名]
5.其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其他组
6.改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,可以用root的管理权限可以改变某个用户所在的组
(1)改变用户所在组
usermod -g [新组名] [用户名]
usermod -d [目录名] [用户名] 注:改变该用户登录的初始目录,用户需要有进入到新目录的权限
7.权限的基本介绍
ls -l 中显示的内容:drwxr-xr-x. 2 root root 4096 9月 8 10:59 公共
(1)drwxr-xr-x:0-9位说明
第0位确定文件类型(-,d,l,c,b):
-:普通文件
l :链接,相当于windows的快捷方式
d:目录,相当一windows的文件夹
c:字符设备文件,例如鼠标、键盘
b:块设备,例如硬盘
第1-3位确定所有者(该文件的所有者)拥有该文件的权限 --User
第4-6位确定所属组(同用户组的)拥有该文件的权限 --Group
第7-9位确定其他用户拥有该文件的权限 --Other
(2)2:文件:硬链接数 或 目录:子目录数
(3)root:用户
(4)root:组
(5)4096:文件大小(字节),如果是文件夹,显示4096字节
(6)9月 8 10:59:最后修改日期
(7)公共:文件名
8.rwx权限详解
(1)rwx作用到文件:
r:代表可读(read),可以读取,查看
w:代表可写(write),可以修改,但是不代表可以删除文件,删除一个文件需要对该文件的目录有写权限
x:代表可执行(execute,可以被执行)
(2)rwx作用到目录:
r:代表可读,可以读取,ls查看目录内容
w:代表可写,可以修改,对目录内创建+删除+重命名目录
x:代表可执行,可以cd进入该目录
9.修改权限-chmod
(1)第一种方式:+、-、=变更权限
u:所有者,g:所有组,o:其他人,a:所有人(u、g、o的总和)
应用实例:
给abc文件的所有者读写权限,给所在组读执行权限,给其他组读执行权限
chmod u=rwx,g=rx,o=rx abc
(2)第二种权限:通过数字变更权限
r=4,w=2,x=1
chmod u=rwx,g=rx,o=x 文件目录名 相当于 chomd 751 文件/目录名
10.修改文件所有者-chown
chown [newowner] [文件/目录]:改变所有者
chown [newowner]:[newgroup] [文件/目录] 改变所有者和所在组
常用选项:
-R:递归修改目录下的所有文件和目录
11.修改文件/目录所在组-chgrp
chgrp [newgroup] [文件/目录]:改变所在组