一、课程内容
二、Linux应用领域
一、Linux使用在哪些地方
- Linux最强应用:服务器
三、Linux概述
三、Linux和Unix的关系
五、VM和Linux的安装
- 基本说明
- 学习Linux需要一个环境,我们需要创建一个虚拟机,然后再虚拟机上安装一个Centos系统来学习
- 先安装virtual machine 15.5
- 再安装Linux(CentOS 7.6/centOS8.1)
- 原理示意图(画)
- vmware15.5下载
官方地址: https://www.vmware.com/cn.html
其它地址: https://www.nocmd.com/windows/740.html
- VM安装步骤
- 去BIOS里修改设置开启虚拟化设备支持(F2,F10)
- 安装虚拟机软件(VM15.5)
- 在BOIS开启CPU虚拟化支持启动BIOS的虚拟化设置 | 开启CPU虚拟化支持-百度经验
- 再安装
六、centOS7.6安装
- Centos下载地址
- CentOS-7-x86_64-DVD-1810.iso CentOS 7.6 DVD版4G(目前主流的生产环境)http://mirrors.163.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
- CentOS 8.1 DVD版 8G(未来的主流.)https://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/
- CentOS安装的步骤
- 创建虚拟机【演示】
- 开始安装系统(CentOS7.6)的步骤【演示】提示生成复杂代码:https://suijimimashengcheng.51240.com/
- CentOS安装难点-网络链接方式理解【示意图】
七、网络连接的三种方式
- 桥接模式:虚拟系统可以和外部系统通讯,但容易造成IP冲突,因为例子中192.168.0网段的ip总共就255个,如果都用192.168.0的网段,一旦数量过多,就容易造成重复
- 张三的虚拟系统Linux的网关设置成192.168.0可以和李四和王五通信
- NAT模式:网络地址转化模式,虚拟地址可以和外部系统通讯,不造成IP冲突
- 王五的主机使用NAT模式,此时虚拟网络Linux设置为192.168.100.88,此时王五主机上会生成一个对应的虚拟的网卡,范围也是192.168.100;例如此时是192.168.100.99
- 此时王五主机所产生的虚拟网卡192.168.100.99和虚拟系统Linux192.168.100.88是互通的
- 虚拟系统Linux192.168.100.88通过王五主机的ip192.168.0.50的代理找到外部教室网络
- NAT是网络地址转换,相当于给你虚拟机虚拟一个ip,然后在需要访问外部的时候,自动转换成你母机ip去访问外部
- 主机模式 :独立的系统
八、虚拟机克隆
如果已经安装了一台Linux操作系统,还想要更多,无需重新安装,只需要克隆即可
- 方式一:直接拷贝一份安装好的虚拟机文件
- 方式二:使用vmware的克隆操作;注意:克隆时,需要先关闭Linux系统
- 右键虚拟机--管理--克隆
- 选克隆自:虚拟机当前状态
- 选创建完整克隆
九、虚拟机快照
如果你在使用虚拟机系统的时候(比如Linux),你想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理
- 应用实例
- 安装好系统以后,先做一个快照A
- 进入到系统后,创建一个文件夹,再保存一个快照B
- 回到系统刚刚安装好的状态,即 快照A
- 试试看,是否还能再次回到快照B
- 右键虚拟机--快照--拍摄快照--给快照命名和添加备注
- 再桌面上新建一个文件夹--任意命名
- 依次做三次快照操作
- 右键虚拟机--选择快照管理--点击要回到的某一次,再点击右下角的转到,就可回到第一次快照的地方
- 现在回到状态B,z在状态B创建一个hello3文件夹,且拍一个快照,命名为快照D,就说是下图的情况
十、虚拟机迁移和删除
虚拟机安装好了,本质就是文件(放在文件夹内的),因此虚拟系统的潜移很方便,可以把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外位置使用,删除也很简单,用vmware进行移除,再点击菜单-->从磁盘删除即可,或者直接手动删除虚拟系统对应的文件夹即可,
演示:把前面克隆的系统进行迁移和删除
- 先在vnware处右键选择移除,但只是移除了目录
- 再到文件目录处右键选择删除,才是真正的移除
十一、vmtools
一、安装vmtools
- 介绍
- vmtools安装后,可以让我们在windows下更好的管理vm虚拟机
- 可以设置windows和centos的共享文件
- 示例
- 主机下的D盘(举例)中有一个共享文件夹
- 主机和虚拟系统Linux可以对共享文件夹中进行读写删除操作
- 在虚拟系统Linux向共享文件夹中的文件写了一份数据,主机也可以马上看到共享文件夹中的文件变化
- 安装vmtools的步骤
- 进入centos
- 先右键光驱弹出
- 左上角点击vm菜单的 虚拟机 ->重新安装 vmware tools(桌面会出现一个WMware Tools光盘,如果没有,右键取消安装,再重新安装)
- centos会出现一个vm的光盘,右键光盘打开;看到xx.tar.gz,
- 右键复制 xx.tar.gz,打开桌面主文件夹-->选择其他位置-->点击计算机-->选择opt文件夹-->在opt文件夹内粘贴xx.tar.gz
- 在桌面空白处右键-->打开终端
- 拷贝到 /opt
- 在终端中 cd /opt 进入opt目录
- ls 查看目录下的文件
- 解压文件 tar -zxvf xx.tar.gz(输入VM按Tab键可自动补全)
- 使用解压命令 tar,得到一个安装文件
- ls查看解压目录
- 进入该vm解压的目录, /opt目录下
- cd vmware-tools-distrib键入解压目录
- ls查看安装文件
- 安装 ./vmware-install.pl
- 全部使用默认设置回车即可,就可以安装成功,下图说明安装成功
- 注意:安装vmtools需要有gcc
- 检查是否安装了gcc的操作 在终端敲 gcc -v,安装了的话会有相关的版本提示
二、设置共享文件夹
- 基本介绍
- 为了方便,可以设置一个共享文件夹,比如在D盘D:/myshare
- 具体步骤
- 先在D盘的某个位置创建一个共享文件夹myshare,在文件夹内部创建一个文件hello.txt并写入相关内容
- 左上角菜单-->虚拟机-->设置-->选项-->选择共享文件夹
- 选择总是启用-->选择共享文件夹的路径-->启用此路径--点击完成
- windows和centos可共享 D:/share目录可以读写文件了
- 共享文件在centos-->主文件夹-->其他位置-->计算机-->mnt文件夹-->hgfs文件夹-->mySHare文件夹
- 注意事项
- windows和centos就可以共享文件了,而且读写是同步的,但是在实际开发过程中,文件的上传下载是需要使用远程的方式完成的
- 远程方式登录,后面具体再讲解
十二、Linux的目录结构
- 基本介绍
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/";然后在此目录下再创建其他的目录
- 深刻理解linux树状文件目录是非常重要的
- 一句经典的话:在Linux的世界里,一切皆文件
- 在win操作系统中,下面有CDE盘,这些盘都可以自主命名,且盘下面还有子目录文件
- 在Linux操作系统中,只有一个根目录"/" ,在根目录下有很多的子目录这些子目录的名字是规定好的,不能乱写
十三、目录结构详解
- 具体 的目录结构(不用背,知道即可)
- /bin 【常用】(usr/bin,/usr/local/bin),
- 是Binary的缩写,这个目录存放着最经常使用的目录
- /sbin (/usr/sbin、/usr/local/sbin),
- s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
- /home【常用】
- 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般目录名是以用户的账号命名,
- 例如创建的huomu账号,在home目录下就会有个huomu的文件夹
- 打开终端-->输入指令 useradd jack-->在home目录下创建一个为jack的文件夹(创建一个用户为jack)
- userdel -r jack --> 删除jack文件夹(删除jack用户)
- /root 【常用】
- 该目录为系统管理员,也称为超级权限者的用户主目录
- /lib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
- /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- /lost+found一般是隐藏起来的,需要在终端 cd / --> ls 查看才能看到/lost+found
- /etc【常用】
- 所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf
- /usr 【常用】
- 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于与windows下的program files目录
- /boot【常用】
- 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /proc 【不能动】
- 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
- /srv 【不能动】
- service缩写,该目录存放一些服务启动之后需要提取的数据
- /sys 【不能动】
- 这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核新出现的一个文件系统sysfs
- /tmp
- 这个目录是用来存放一些临时文件的
- /dev
- 类似于windows的设备管理器,把所有的硬件用文件的形式存储
- /media【常用】
- Linux系统会自动识别一些设备,例如U盘、光驱灯,当识别后,linux会把识别的设备挂载到这个目录下
- /mnt【常用】
- 系统提供该目录是为了让用户临时挂在别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了
- /opt
- 这是给主机额外安装软件所摆放的目录,如安装ORACLE数据库就可放到该目录下,默认为空
- /usr/local 【常用】
- 这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序
- /var 【常用】
- 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
- /selinux [security-enhanced linux]
- SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式。可自行设置
十四、远程登陆到Linux服务器
说明:公司开发的时候,具体的应用场景是这样的
- linux服务器是开发小组共享
- 正式上线的项目运行在公网
- 因此程序员需要远程登录到Linux进行项目管理或开发
- 画出简单的网络拓示意图(帮助理解)
- 远程登录客户端有Xshell6, Xftp6,我们学习使用Xshell和Xfpt6,其他远程工具大同小异
一、Xshell介绍
说明:Xshell是目前最好的远程登录到Linux操作的软件,流畅的速度并完美的解决了中文乱码的问题,是目前程序员首选的软件
- Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNET协议
Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的
二、下载安装和配置
下载free-for-home-school版本
地址: https://www.netsarang.com/en/free-for-home-school/
- 在centos中右键打开终端。输入命令ifconfig查看ip(上图中的公网ip)
- 在命令提示符中ping一下保证能ping通这个网络
- 打开Xshell远程登陆公网,右键打开Xshell-->新建-->在主机中填入公网的ip地址-->确定
- 点击连接
- 一次性接受(每次都要输入用户名和密码,这里推荐使用),接受并保存(只需要输入一次,工作中推荐使用)
十五、远程文件传输
- 介绍
是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xfpt以后,windows用户能安全的在UNIX/Linux和Windows PC之间传输文件
- 安装完成xftp后
- 点击打开xfpt-->点击新建-->主机填公网ip-->确定
- 点击确定-->点击连接
- 可以实现windows到linux的文件互传
十六、vim快速入门
Linux 系统会内置 vi 文本编辑器
Vim 具有程序编辑的能力,可以看作是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计,代码补完,编译以及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
一、vi和vim常用的三种模式
- 正常模式
- 以vim打开一个档案就直接进入一般模式了(这是默认的模式),在这个模式中,你可以使用【上下左右】按键来移动光标,你也可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据
- 插入模式
- 按下i,I,o,O。a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可
- 命令行模式
- 插入模式切换至命令行模式 :先按esc 表示退出,再输入冒号 : 即可
- 在这个模式中,可以提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等的动作,则是在此模式中完成的
- 练习:使用 vim 开发一个 Hello.java 程序,保存步骤说明和演示
- vim Hello.java -->使用vim工具创建一个Hello.java程序
- 输入 i 进入编辑模式,底下会出现插入的字样
- 在 编辑模式中,写完程序
- 需要保存,则需要从插入模式进入命令行模式,
- 插入模式进入命令行模式:先按esc 表示退出再输入 : 即可
- 先按 esc ,再输入 : wq ; w 代表写入;q 代表退出;回车
- ls 查看;目录下就有 Hello.java 文件
- 如果想修改文件,再输入 vim Hello.java ,重新进入编辑界面
十七、vim 快捷键
看看vi和vim各个模式的切换图
一、快捷键的使用练习
- 拷贝当前行 :yy
- 拷贝当前行向下的5行 : 5yy,并粘贴(输入p)
- 注意:拷贝的动作在一般模式下进行!
- 光标定的位置就是当前行的yy位置
- 删除当前行: dd
- 删除当前行向下的5行:5dd
- 注意:删除的动作在一般模式下进行!
- 光标定的位置就说当前行的dd位置
- 在文件中查找某一个单词[命令行下/关键字,回车 查找,输入 n 就是查找下一个]
- 一般模式输入 : 或者 / ; 进入命令行模式
- 输入 / 查找的字符(不晓得为啥 : 查找的字符在这没用),例如 /hello;然后回车查找,会有绿颜色光标,按n就是查找下一个
-
设置文件的行号,取消文件的行号[命令行下 :set nu 和 :set nonu ]
-
例如 vim /etc/profile文件进入该文件,由于文件比较大,文件内容比较多,在一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]
-
在一个文件中输入"hello“,然后又撤销这个动作 u
-
例如 vim /etc/profile文件进入该文件,在一般模式下,将光标移动到,输入20,再输入 shift+g
-
先 vim /etc/profile文件进入该文件
-
再 :set nu 列出行号,现在是在命令行模式,再按 ESC 回到一般模式
-
输入行号 20 ,再输入shift + g
-
完成定位
-
- 更多的请看整理文档
十七、vim 内容整理
- 快捷键图
十八、关机重启
一、关机&重启命令
- 基本介绍
- shutdown -h now 立刻进行关机
- shudown -h 1 ”hello,1分钟后会关机了
- shutdown -r now 现在重新启动计算机
- halt 关机,作用和上面一样
- reboot 现在重新启动计算机
- sync 把内存的数据同步到磁盘
- 注意细节
- 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
- 目前的 shutdown/reboot/halt等命令均已经在关机前进行了 sync,
- 在Xshell中执行关机指令和在Linux中执行关机指令都可行
- 在linux中执行关机指令
- 右键打开终端
- 输入 shutdown -h now
- 再打开虚拟机,右键打开终端,输入reboot;重启设备
- 标准的做法 是先执行 sync ;再执行关机或者重启操作
二十、登陆和注销
- 基本介绍
- 登陆时尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再用 “ su - 用户名" 命令来切换成系统管理员身份。
- 进行普通用户账号登录Xshell,
- cd / root 切换到 root 目录下,显示权限不够
- 通过 su - root 登录 root 账号, 输入密码, 再通过 cd /root/ 进入 root 目录
- 在提示符下输入 lgout 即可注销账户
- 在用户是 root 的情况下,输入 logout ;会退回到用户是 huomu 的时候
- 再执行一次 logout ,就会退出登录
- 注意:在centOS中的终端中输入 logout 没有用,只会提示 exit 退出 ,而输入 exit 也只是退出终端
- 使用细节
- logout 注销指令在图形运行级别无效,在 运行级别3 下有效
- 运行级别这个概念,后面在介绍
二十一、用户管理1
基本介绍
Linux系统十一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统
添加用户
- 基本语法
- useradd 用户名
- 应用案例
- 案例1:添加一个用户 millan
- 默认该用户的家目录在 /home/milan
- 当用 millan 登录会自动切换到该目录下面
- 细节说明
- 当创建用户成功后,会自动地创建和用户同名的家目录
- 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
- 创建一个用户 在指定 home 目录下,用户名为 test king
指定/修改密码
- 基本语法
- passwd 用户名
- 应用案例
- 给 milan 指定密码
- 注意:指令 pwd 显示当前在哪个目录下
删除用户
- 基本语法
- userdel 用户名
- 应用案例
- 删除用户 milan ,但是保留家目录:userdel 用户名
- 删除了 milan ,但是通过 ls 查看, milan 的家目录还是在的
-
- 虽然 milan 的家目录还在,但此时再通过 milan 的用户名和密码登录,就不行了
- 删除用户 huomu 以及用户 huomu 的主目录 :userdel -r 用户名
- 删除了 huomu ,通过 ls 查看, huomu 的家目录也没了
- 注意:这个操作一定要慎重
- 细节说明
- 删除之前用 su - root 切换成权限最高的用户进行删除
- 最好是不要在普通用户已经登陆的情况下对用户进行删除,而是退出直接登录权限最高的账户进来进行删除
- 是否保留家目录的讨论
- 一般情况下,最好建议保留家目录,使用 userdel 用户名 进行删除保留家目录即可