Linux从入门到精通
1Linux系统介绍
1.1.1 Linux系统简介-UNIX发展历史和发行版本
1.1.2 Linux系统简介-Linux发展历史和发行版本
1.2 Linux系统简介-开源软件简介
1.3 Linux系统简介-Linux应用领域
1.4 Linux系统简介-Linux学习方法
2安装虚拟机
2.1 Linux系统安装-VMware虚拟机安装与使用
2.2 Linux系统安装-系统分区
2.3 Linux系统安装-Linux系统安装
2.4 Linux系统安装-远程登录管理工具
3给初学者建议
3.1 给初学者的建议-注意事项
3.2 给初学者的建议-服务器管理和维护建议
4Linux常用文件操作命令
4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls
4.1.2 Linux常用命令-文件处理命令-目录处理命令
4.1.3 Linux常用命令-文件处理命令-文件处理命令
4.1.4 Linux常用命令-文件处理命令-链接命令
4.2.1 Linux常用命令-权限管理命令-权限管理命令chmod
4.2.2 Linux常用命令-权限管理命令-其他权限管理命令
4.3.1 Linux常用命令-文件搜索命令-文件搜索命令find
4.3.2 Linux常用命令-文件搜索命令-其他文件搜索命令
4.4
4.5 Linux常用命令-文件搜索命令-用户管理命令
4.6 Linux常用命令-文件搜索命令-压缩解压命令
4.7 Linux常用命令-网络命令
4.8 Linux常用命令-关机重启命令
5vim文本编辑器
5.1 文本编辑器Vim-Vim常用操作
5.2 文本编辑器Vim-Vim使用技巧
6软件包管理
6.1 软件包管理-简介
6.2.1 软件包管理-rpm命令管理-包命名与依赖性
6.2.2 软件包管理-rpm命令管理-安装升级与卸载
6.2.3 软件包管理-rpm命令管理-查询
6.2.4 软件包管理-rpm命令管理-校验和文件提取
6.3.1 软件包管理-RPM包管理-yum在线管理-IP地址配置和网络yum源
6.3.2 RPM包管理-yum在线管理-yum命令
6.3.3 RPM包管理-yum在线管理-光盘yum源
6.4.1 软件包管理-源码包管理-源码包与RPM包的区别
6.4.2 软件包管理-源码包管理-源码包安装过程
6.5 软件包管理-脚本安装包
7用户管理
7.1.1 用户和用户组管理-用户配置文件-用户信息文件
7.1.2 用户和用户组管理-用户配置文件-影子文件
7.1.3 用户和用户组管理-用户配置文件-组信息文件
7.2 用户和用户组管理-用户管理相关文件
7.3.1 用户和用户组管理-用户管理命令-useradd
7.3.2 用户和用户组管理-用户管理命令-passwd
7.3.3 用户和用户组管理-用户管理命令-usermod和chage
7.3.4 用户和用户组管理-用户管理命令-userdel和su
7.4 用户和用户组管理-用户组管理命令
8权限管理
8.1.1 权限管理-ACL权限-简介与开启
8.1.2 权限管理-ACL权限-查看与设定
8.1.3 权限管理-ACL权限-最大有效权限与删除
8.1.4 权限管理-ACL权限-默认与递归ACL权限
8.2.1 权限管理-文件特殊权限-SetUID
8.2.2 权限管理-文件特殊权限-SetGID
8.2.3 权限管理-文件特殊权限-Sticky BIT
8.3 权限管理-chattr权限
8.4 权限管理-sudo权限
9文件系统
9.1 文件系统管理-回顾分区和文件系统
9.2.1 文件系统管理-文件系统常用命令-df、du、fsck、dumpe2fs
9.2.2 文件系统管理-文件系统常用命令-挂载命令
9.2.3 文件系统管理-文件系统常用命令-挂载光盘与U盘
9.2.4 文件系统管理-文件系统常用命令-支持NTFS文件系统
9.3.1 文件系统管理-fdisk分区-分区过程
9.3.2 文件系统管理-fdisk分区-自动挂载与fstab文件修复
10shell基础编程1
10.1 Shell基础-概述
10.2 Shell基础-脚本执行方式
10.3.1 Shell基础-Bash基本功能-历史命令与补全
10.3.2 Shell基础-Bash基本功能-别名与快捷键
10.3.3 Shell基础-Bash基本功能-输入输出重定向
10.3.4 Shell基础-Bash基本功能-多命令顺序执行与管道符
10.3.5 Shell基础-Bash基本功能-通配符和其他特殊符号
10.4.1 Shell基础-Bash变量-用户自定义变量
10.4.2 Shell基础-Bash变量-环境变量
10.4.3 Shell基础-Bash变量-位置参数变量
10.4.4 Shell基础-Bash变量-预定义变量
10.5.1 Shell基础-Bash变量-数值运算与运算符
10.5.2 Shell基础-Bash变量-变量测试与内容替换
10.6.1 Shell基础-环境变量配置文件-简介
10.6.2 Shell基础-环境变量配置文件-作用
10.6.3 Shell基础-环境变量配置文件-其他配置文件和登录信息
11shell基础编程2
11.1 Shell编程-正则表达式
11.2.1 Shell编程-字符截取命令-cut命令
11.2.2 Shell编程-字符截取命令-printf命令
11.2.3 Shell编程-字符截取命令-awk命令
11.2.4 Shell编程-字符截取命令-sed命令
11.3 Shell编程-字符处理命令
11.4 Shell编程-条件判断
11.5.1 Shell编程-流程控制-if语句
11.5.2 Shell编程-流程控制-case语句
11.5.3 Shell编程-流程控制-for循环
11.5.4 Shell编程-流程控制-while循环与until循环
12Linux服务管理
12.1 Linux服务管理-服务分类
12.2.1 Linux服务管理-RPM服务的管理-独立服务管理
12.2.2 Linux服务管理-RPM服务的管理-基于xinetd服务管理
12.3 Linux服务管理-源码包服务的管理
12.4 Linux服务管理-服务管理总结
13Linux系统管理
13.1.1 Linux系统管理-进程管理-进程查看
13.1.2 Linux系统管理-进程管理-终止进程
13.2 Linux系统管理-工作管理
13.3 Linux系统管理-系统资源查看
13.4 Linux系统管理-系统定时任务
14Linux日志管理
14.1 日志管理-简介
14.2 日志管理-rsyslogd服务
14.3 日志管理-日志轮替
15Linux启动管理
15.1.1 启动管理-启动流程-运行级别
15.1.2 启动管理-启动流程-启动过程
15.2.1 启动管理-启动引导程序-Grub配置文件
16备份与恢复
16.1 备份与恢复-概述
16.2 备份与恢复-备份命令
1Linux系统介绍
1.1.1 Linux系统简介-UNIX发展历史和发行版本
1.1.2 Linux系统简介-Linux发展历史和发行版本
Linux系统诞生与1991年,由芬兰大学生李纳斯(Linux Torvalds)和后来陆续加入的众多爱好者共同开发完成。
Linux是开源软件,源代码开放的UNIX。
2012年颁发了诺贝尔终身成就奖给李纳斯。
Linux内核官网:www.kernel.org
内核版本说明:2.6.18
最新的内核版本:3.11.10
拿到了内核,每个厂商再在其上面进行开发。
两个大的分支:
最主要的区别是软件安装的方式不同。
如何选择:
fedora:red hat公司的实验版
centos:社区版本 新浪、搜狐都采用centos作为它的服务版本
suse:在欧洲用的多
ubuntu:桌面端,但实际部署使用的量并不是很多
knoppix:无需安装
1.2 Linux系统简介-开源软件简介
商业软件:收费、不开放源代码
对个人来说,linux比windows确实少,但是对于专用软件,linux有很多。
羽毛:apache最主要的服务器的软件。
mysql、mongoDB
open-source
比如公司需要使用服务器,硬件就得花很多钱,若是软件也要用收费的那么成本会翻倍。
1.3 Linux系统简介-Linux应用领域
扫描和踩点,信息采集网站,如果你想知道你常用的网站是用的什么服务器,可以在这个网站上查:
安卓手机的底层就是Linux。
ssh服务器软件
1.4 Linux系统简介-Linux学习方法
为什么选择命令行?
考虑稳定和安全,而且使用Linux的都是工程师。运行桌面图形界面的话,会占用服务器。
2安装虚拟机
2.1 Linux系统安装-VMware虚拟机安装与使用
使用VMware Workstation8.0.4
在官网下载,压缩后安装
新建虚拟机
标准
若选择安装盘镜像文件,那么就不会参与进linux的安装过程,所以我们先只把虚拟机建好,但是先别安装操作系统。
虚拟机创建完成。
以下是虚拟机的硬件设置
内存调整,给虚拟机分的内存不要超过真实电脑的一半。
CD/DVD(IDE)
相当于把光盘放到了光驱。
两个神奇的功能:创建快照、克隆功能
2.2 Linux系统安装-系统分区
没有磁盘分区的话,数据读取效率就会低下。
4是扩展分区,只能用来管理逻辑分区5,6。
数据块一个的默认大小是4kb。
每个文件都有一个编号(i节点号,iNode),找数据的时候。
把大硬盘分成小硬盘,分成小硬盘后还不能直接使用,我还要格式化,格式化最主要的目的是写入文件系统,写入文件系统主要是做两个工作,一个是把硬盘分成一个一个小的数据块,同时建立一个inode列表,当我查找文件时,是通过i结点号来找到这个文件的条款,从而知道这个文件是保存在了哪几个数据块当中,从而打开这几个数据块,拿出数据块拼凑成完整的数据,这就是格式化的作用。
windows中我们进行了分区、进行了格式化,我们只需要给硬盘分配盘符,就可以直接使用。因为windowsw中有完整的图形界面,我们能看到每个文件在哪放着。分区、格式化、分配盘符就可以直接使用。
但linux不行,linux大硬盘分成小硬盘,分完区后格式化,格式化后要想给它分配盘符之前,我还要给每一个分区起一个设备名,或者给每一个分区设置一个硬件名。这涉及到linux重要的一个特征,在linux中所有的硬件概念都是文件,如上面的表格所示。
/:根目录(相当于windows中我的电脑)
dev:硬件文件
hd:硬盘 第一块是hd-a 第二块是hd-b
linux中我总得让系统知道要给那个分区分配盘符吧,这时候我们就*需要给每一个分区或者硬件设备起一个设备文件名。linux分区、格式化、为分区建立设备文件名、分配盘符,使用。这个设备文件名是固定的,系统自动监测的,我们要做的就是能够看懂,看懂上表。
硬盘有了以上的设备名,我们还要给分区设置设备文件名。即直接在硬盘文件名后加上分区号,数字1234.
1就代表这个硬盘中的第一个分区。
几个接口主要的区别就是存储速率。
IDE硬盘接口:最古老 133mb/s
SCSI硬盘接口:更昂贵,200MB/s,主要用在服务器上
SATA串行硬盘接口:现在大部分都是采用这种,500MB/S。无论是服务器还是个人机。
所以我们现在 虚拟机模拟的也是sda。
sda1,sda2,sda3…
sdb1,sdb2,sdb5…
即1,2,3,4这四个号只能给扩展分区用,而不能给逻辑分区用。就算我一个硬盘中没有分够4块扩展分区,逻辑分区也不能占用1,2,3,4这个四个分区号。所以不管你怎么分,5都是逻辑分区的第一个号。
这些都是系统自动识别的。
有了分区后,还得给它分配盘符,即挂载。把给分区分配盘符的过程叫做挂载。盘符叫做挂载点。
分区、格式化、给每个分区起一个设备名、写入挂载点,这样每一个分区就可以使用了。
windows中拿c,d,e,f作为盘符,linux拿空的目录名称作为盘符。理论上任何一个目录都可以作为盘符,有些目录不可以,后面讲。
linux中必须作为分区的,有两个目录:根分区、swap分区。
根分区:如果不给根分区的话,我们剩余的很多东西都没有地方可以写了所以根必须分区。
交换分区:其实相当于虚拟内存,即我们的内存不够的话,可以拿它来使用。不超过2GB,因为终究是虚拟内存,再大不会给内存带来更好的提升,而是会占用我们的磁盘空间。
如果不给这个两个分区,Linux无法安装。
推荐boot分区,任何一个系统想要正常使用,都必须留有空余空间,我所有的数据都放在根分区下,这个时候万一我把根分区写满了,linux就有可能写不起来,所以boot就是保存启动时候的分区,启动后不会往里面写入任何东西。
windows:c,d,e,f是并列的
linux:根分区是可以单独有一个目录的,可以给根分区下的某一个子目录单独拿出来,给它指定独立的磁盘空间。
如果到根目录的etc目录下,那么写入的是根分区下的磁盘空间。
但是若是到boot下,则是boot对应的磁盘空间下。
但是若是到home下,则是home对应的磁盘空间下。
从linux系统上看,boot目录、home目录都是根目录下的子目录。
从硬盘上看,可以每一个子目录都有自己独立的硬盘空间。
挂载点必须是目录,而且是空目录。
2.3 Linux系统安装-Linux系统安装
现在的安装非常的简单漂亮
启动虚拟机:左侧可以进行硬件调整,分配大内存虚拟机可以启动的更流畅
用虚拟机模拟的光驱来iso镜像,去centos官网上下载,第一张光盘1G,第二张也是好几个g。
打开电源。挂起相当于暂停,比重启快。
需要我们用F2键,F2键按得键就是vmware启动的界面,非常短暂,电脑性能越好界面时间越短。
按F2键进入的是BIOS
真实计算机上,主板上面有一个操作系统,cmousebios,用来进行计算机的基本设置。
计算机默认是通过硬盘启动的,但是现在虚拟机是空的,硬盘里面任何数据都没有,所以这个时候通过硬盘启动它只会报一个错误,找不到操作系统,我们现在要做的事情是通过光盘启动,只有通过光盘启动才能进入操作页面,如何把硬盘启动改为光盘启动,鼠标点进去操作的是虚拟机,如何把鼠标从虚拟机里切出来呢,按ctrl+alt。在BIOS中,按照BOOT,谁靠上谁的启动顺序优先,把光标移到光驱上,按加号,
要退出后,若要选择退出不保存,也可以,这是因为虚拟机非常智能,当我第一次启动没有任何操作系统时,它就会自动调整启动顺序,即光盘启动,当我们安装完成后,它自动又会调整成硬盘启动。但是真实机是没有这样的情况的,所以真实机必须先第一次安装调整成光驱启动,当我装完之后,还需要把启动顺序改回来,把硬盘调到前面,如果不改回来,那么每一次启动都是通过光盘启动,都得重新安装操作系统。
虚拟机可以省略这样的步骤,即不进去BIOS界面设置。
这样的话,就会看到linux的光盘启动界面,
这五个选项的作用:
选择第一种
发现了光盘,问你是否需要检测一遍光盘,不要,因为光盘使我们下载好的。
开始检测显卡和内存,进入安装界面,全屏(ctrl+_alt+enter)
简体中文界面安装
用默认主机名
选择时区:上海
现在sda硬盘空间的20G都是空闲的,这时候我们就去创建分区
根分区、swap交换分区、boot分区
有三种标准分区、RAID分区、LVM分区(后两种是高级系统的内容)
选择标准分区:
选择挂载点、你也可以不选,自己起一个目录名,但是这就不是必须要分的了,所以我们这里先选择/boot分区
为什么不先分根分区呢,是因为最后剩余下来的都是根分区,所以这里我们留到最后
先分的就是分区1,如下:我们先分了根分区,它就是sd1,然后我们去分了boot分区,这时候boot分区自动跳成了sd1,根分区跳成了sd2。原因很简单,boot分区是系统启动的一定要放在第一个分区。
现在我们重新开始分:
先分boot分区,分2G
然后分swap分区,在挂载点上找不到,去文件系统类型那里去找
swap分区没有盘符,是因为swap分区不是给用户用的,是由linux操作系统直接调用的,所以它根本不需要盘符。
大小应该为内存的两倍,不应该超过2g
分home目录,做一个文件服务器的话,这样文件上传下载的目录就在这个文件夹下。根据个人使用习惯
最后创建根分区,使用全部可用空间
根分区本来应该是sda4,但是为什么变成sda5了呢?
当你分第四个分区时,linux系统很难确定你是否还会分更多的分区,所以会默认会把第四个分区变成扩展分区,把你的这个分区变为第一个逻辑分区。
这就分完了。
格式化是为了写入文件系统,不格式化的硬盘是无法使用的。选择格式化。
问你将引导程序安装在哪个位置?现在我们选择默认
接下来问你要安装哪些软件
根据你服务器的作用不同来安装不同的软件。个人用户选择桌面,图形界面更方便。服务器的话,使用最小化安装,可以腾出空间为服务器服务。
选basic server
选择自定义后,会出现更细节的
选择中文支持,否知之后还需要自己安装中文字体非常麻烦
选择重新引导来重启操作系统,如果在真实机中,需要我们再去把启动顺序改为硬盘启动,否则的话还会看到安装界面。
进入linux图形界面。服务器上要求的话稳定和安全,所以没有图形界面。
localhost:root
password:刚刚安装过程中设置的密码(linux不会显示密码*)
初始登录位置,管理员的初始登录位置就是/root目录。每个用户都有/root/用户名这样的初始登录目录。
kickstart:同时安装好几千台服务器,无人之手安装,依赖一个提前装好的可以依赖。
2.4 Linux系统安装-远程登录管理工具
window中可以不装虚拟机/Linux,就可以登录管理你的服务器
远程工具,首先网得联通
打开虚拟机,设置
默认有三种方式加一个自定义
桥接、NAT、Host-only、自定义
桥接:说明你的虚拟机是利用你的真实网卡用电脑的网卡连接。
我的电脑有两个网卡,一个本地的有线连接,一个本地的无线连接
出现两块虚拟网卡。
不仅可以和你的电脑进行通信,局域网中同一的网段的其它计算机也可以进行通信。
坏处:需要占用你网段的一个ip,在教室会出现ip地址冲突。
NAT:与虚拟出来的VMnet8
Host-only:VMnet1只能和自己的自己计算机通信,但是不会占用ip地址
现在演示Host-only,真实机与虚拟机通信。VMnet1
VMnet1的网络属性,会虚拟出一个与自己的真实机相同的网段ip地址。
ifconfig(interface网卡,查询当前的网卡信息
设置网卡,描述网卡的文件名就是eth0…eth1,与vmnet1中的网段一样
拿windows的虚拟终端去ping一下
现在网络联通了,就可以直接拿远程工具来连接了
现在演示一下用网线的情况下如何设置:
使用桥接
需要确定自己的widows的网卡
ifconfig只是临时生效,关闭电脑再开就失效了,以后会将如何永久生效设置,现在只是一种简易的改变ip地址的方法。
有时候会出现选择桥接、网段也一样,但是不连通的问题,那么我们去看看虚拟机中的网络编辑器
现在我们去看看如何远程操作:
远程连接工具非常多
典型的widows软件,安装就好
username用root或者你创建的普通用户
起始界面与linux起始界面一样
这里我们的连接就正常生效了
现在就算是你的服务器在美国在上海,你在北京也能连接上。
其他远程工具推荐:
下载安装
新建
左边是windows右边是linux
图形远程控制:xmanager
3给初学者建议
3.1 给初学者的建议-注意事项
1.Linux严格区分大小写
命令、文件名称都区分
2.所有内容以文件形式保存,包括硬件
硬盘文件是/dev/sd[a-p]
光盘文件/dev/sr0等
网卡
windows中设备管理器来管理硬件
3.Linux没有扩展名
并不是隐藏了,它就是没有后缀
linux靠文件权限来区分文件类型。但是有的也有,为了使用方便才有的。
所以windows的程序不能直接在linux中安装与运行
4.Linux所有存储设备都必须挂载之后才能用(手工分配盘符)
包括硬盘、U盘和光盘
3.2 给初学者的建议-服务器管理和维护建议
bin:binary二进制文件
sbin文件只有root才能用
boot目录保存内核和系统文件
dev保存设备硬件文件
etc保存默认配置文件
home每个用户的家目录,eg./home/user1 二级目录
root目录,管理员一级目录
sys存放内核文件,不要往里面写东西
var目录,保存日志邮件数据库等
2.服务器事项:远程服务器不允许关机,只能重启;重启之前应该先关闭程序
不要在服务器访问高峰运行高负载命令
远程配置防火墙时不要把自己提出服务器
指定合理的密码规范并定期更新
合理分配权限
定期备份重要数据和日志