# 创建一个虚拟机

  • 最多分配主机 cpu * 内核的总个数,不能超过,cpu 和内核可以在任务管理器里面的资源监视器查看

  • 软件选择里面选择 gnome 桌面,勾选开发工具,兼容性程序库,传统 X windows 系统的兼容性

  • 进行分区,包含 /boot,/swap,/ 根分区,选择标准文件,ext4

  • 网络和主机名,以太网打开,主机名可以选择修改,也可以不进行修改

  • 视频里面的把安全政策 (security poliy) 关闭了

  • 设置密码,也可以设置一个权限比较低的用户

  • 网络连接的三种模式

    • 桥接模式:虚拟系统可以和外部系统通讯,但是容易造成 IP 冲突

    • NAT 模式:网络地址转换模式,虚拟系统可以和外部系统通讯,而且不会造成 IP 冲突,nat 模式,可以从虚拟机访问外部网络,但是外部网络无法访问到虚拟机

    • 主机模式:不和外部发生联系,是独立的系统

  • 安装 vmtools 工具,可以使 Linux 虚拟机访问 Windows 系统里面的文件,在虚拟机窗口安装工具

# Linux 目类详解

  • /bin 是 Binary 的缩写,这个目录存放着最经常使用的命令

  • /sbin s 是 super 的缩写,这里存放是系统管理员使用的系统管理程序

  • /home 存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名

  • /root 该目录为系统管理员,也称作超级权限者的用户的主目录

  • /lib 系统开机所需要的最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库

  • /etc 所有系统管理所需要配置文件和子目录 my.conf

  • /usr 这是一个非常重要的目类,用户的很多应用程序和文件都放在这个目录下,类似于 Windows 下的 program files 目录

  • /boot 存放的是启动 Linuxs 时使用的一些核心文件,包括一些连接文件和镜像文件

  • /dev 类似于 Windows 的设备管理器,把所有的硬件用文件的形式存储

  • /media Linux 系统会自动识别一些设备,例如 u 盘,光驱等等,当识别后,Linux 会把内容挂载到这个目录下

  • /mnt 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部存储挂载到 /mnt/ 上,然后进入该目录就可以查看里面的内容了

  • /opt 这是给主机额外安装软件所存放的目录

  • /usr/local 这是另一个给主机安装软件所在的目录,一般是通过编译源码方式安装的程序

  • /var 这个目录存放着不断扩充着的东西,习惯将经常被修改的目录放到这个目录下,包括各种日志文件

# vim 的三种模式

  • 正常模式:以 vim 打开一个档案就直接进入正常模式 (这是默认的模式),在这个模式中可以删除,复制粘贴等等

  • 插入模式:按下 i,I,o,O,a,A,r,R 等任何一个字母才会进入编辑模式,一般来说按 i 即可

  • 命令行模式:在这个模式中,可以提供你相关指令,完成读取,存盘,替换,离开 vim 等等

# 文件目录指令

  • pwd 查看当前所在目录

  • ls -a 列出所有文件,包含隐藏文件 (以点符号开头的文件是隐藏文件)

  • ls -l 是列出文件的详细信息,以一行一行的列出来

  • cd ~ 回到自己的家目录,比如你是 root, 就会直接到 /root 目录

  • cd .. 返回到上级目录

  • / 是根目录,下面分为 root 和 home 两个分支

  • mkdir [选项] 要创建的目录,常用选项 -p 创建多级目录

  • rmdir 删除空目录,使用细节:rmdir 删除的是空目录,如有目录下有东西是无法删除的,需要使用 rm -rf 进行删除要删除的目录

  • touch 指令创建空文件

  • cp 文件 指定目录 ,如果是拷贝整个文件夹,用 cp -r 文件 指定目录

  • rm 指令删除文件或者目录,基本语法 rm [选项] 要删除的文件或者目录,常用选项:-r 递归删除整个文件夹,-f 强制删除且不提示

  • mv 指令 mv 移动文件与目录或重命名,位于同一个目录就是重命名,不同目录就是移动

  • cat 查看文件内容,-n 会显示行号

  • more 指令是一个基于 vi 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more 指令常见快捷键如下
    image

  • less 用于大文件,分页查看

  • echo 输入内容到控制台

  • /> 指令 和 >> 指令 > 输出重定向 >> 追加

  • ln 指令,软链接也称符号链接,类似于 Windows 里面的快捷方式,主要存放链接其他文件的路径

  • history,查看已经执行过的历史命令,也可以执行历史命令

  • date 显示当前时间 date "日期相应的格式" date -s 设置时间

  • find 查找文件,可以按用户名,按文件格式,按大小

  • grep 指令和管道符号 |,grep 过滤查找,管道符 "|", 表示将前一个命令的处理结果输出传递给后面的命令处理

  • gzip 用来压缩文件,gunzip 用于解压文件

  • zip/unzip 压缩解压文件夹 zip -r 是压缩文件夹

  • tar 指令 是打包指令,最后打包的文件格式为.tar.gz 的文件

    • tar [选项] XXX.tar.gz 打包的内容

    • 选项说明: -c 产生.tar 打包文件

    • -v 显示详细信息

    • -f 指定压缩后的文件名

    • -z 打包同时压缩

    • -x 解压.tar 文件

    • tar -zcvf xx.tar.gz/home/../.. 压缩文件的指令

    • tar -zxvf xx.tar.gz 解压文件到当前目录

    • tar -zxvf xx.tar.gz -C /.... 解压文件到指定目录

# Linux 组基本介绍

在 Linux 中的每个用户必须属于一个组,不能独立于组外,在 Linux 中每个文件都有所有者,所在组和其他组的概念

  • ls -ahl 查看文件的所有者

  • 修改文件所有者 chown 用户名 文件名

  • 组的创建 groupadd 组名

  • 创建一个用户 fox,并放入到 monster 组中 useradd -g monster fox

  • 修改文件所在组 chgroup 组名 文件名

  • 改变用户所在组,再添加用户时,可以指定将该用户添加到哪个组,也可以用 root 管理权限可以改变某个用户所在的组 usermod -g 新组名 用户名

# 权限的基本介绍

ls -l 中显示的内容如下
- rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明

  1. 第 0 位 (-) 确定文件类型 (d,-,l,c,b)
  • - 代表是普通的文件

  • l 是链接,相当于 Windows 的快捷方式

  • d 是目录,相当于 Windows 的文件夹

  • c 是字符设备文件,例如鼠标,键盘

  • b 是块设备,比如硬盘

  1. 第 1-3 位 (rwx) 确定所有者 (该文件所有者) 拥有该文件的权限 ---User

  2. 第 4-6 位 (rw-) 确定所属组 (同用户组) 拥有该文件的权限 ---Group

  3. 第 7-9 (r--) 位确定其他用户拥有该文件的权限 ---Other

  4. rwx 作用到文件

    • 其中 [r] 代表可读 (read),可以读取,查看
    • [w] 代表可写,可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
    • [x] 代表可执行 (execute),可以被执行
  5. rwx 作用到目录

    • [r] 代表可读 (read),可以读取,ls 查看目录内容
    • [w] 代表可写 (write),可以修改,对目录内创建 + 删除 + 重命名目录
    • [x] 代表可执行 (execute),可以进入该目录,比如 cd
  6. 修改权限 chmod

    • 第一种方式:+,-,= 变更权限 u 所拥有者,g 所拥有组 o 其他人 a 所有人
      • chmod u=rwx,g=rx,o=x 文件 / 目录

# crond 任务调度

crond 进行定时任务的设置,任务调度是指系统在某个时间执行的特定的命令或者程序

任务调度分类:系统工作或者个别用户工作

基本语法:crontab [选项]

常用选项:-e 编辑 crontab 定时任务 -l 查询 crontab 定时任务 -r 删除当前用户所有的 crontab 定时任务
具体应用
定时任务的时间表达式,五个占位符
占位符

# at 定时任务

  • 基本介绍
  1. at 命令是一次性定时计划任务,at 的守护进程 atd 会以后台模式运行,检查作业队列来运行。
  2. 默认情况下,atd 守护进程每 60s 检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
  3. at 命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
  4. 在使用 at 命令的时候,一定要保证 atd 进程的启动,可以使用相关指令来查看,ps -ef | grep atd // 可以检测 atd 是否在后台运行
  • at 命令格式
    at [选项] [时间] Ctrl + D 结束 at 命令的输入
    at命令选项
    atq 命令来查看系统中有没有执行的工作任务
    atrm 删除已经设置好的任务 atrm [编号]

# 磁盘的添加挂载

# 如何增加一块磁盘

  • 虚拟机添加硬盘
    • lsblk 查看硬盘情况
    • lsblk -f 查看挂载点,分区 id
      添加硬盘
  • 分区
    • 分区命令 fdisk /dev/sdb,开始对 /sdb 分区 m 显示命令列表,p 显示磁盘分区 同 fdisk -l,n 是新增分区,d 是删除分区,w 写入并且退出
    • 说明:开始分区后输入 n,新增分区,然后选择 p,分区类型为主分区。两次回车默认剩余全部空间,最后输入 w 写入分区并退出,若不保存退出输入 q
  • 格式化磁盘
    • 命令:mkfs -t ext4 /dev/sdb1,其中 ext4 是分区类型
  • 挂载
    • 创建要挂载的目录
    • mount [分区目录] [挂载目录]
    • 卸载挂载 umount [分区目录]/ 挂载目录
    • 注意:用命令行挂载,重启后会失效
  • 设置可以自动挂载
    • 永久挂载:通过修改 /etc/fstab 实现挂载
    • 添加完成后,执行 mount -a 即可生效

# 磁盘情况查询

  • df -h 查看磁盘分区使用情况
  • 查询指定目录磁盘占用情况
    • du -h 查询指定目录磁盘占用情况,默认为当前目录
    • -s 指定目录占用大小汇总
    • -h 带计量单位
    • -a 含文件
    • --max-depth=1 子目录深度
    • -c 列出明细的同时,增加汇总值

# Linux 网络配置原理

# NAT 网络配置

添加硬盘

# 查看虚拟网络编辑器和修改 IP 地址

  • 查看 Windows 环境中的 VMnet8 网络配置:ipconfig
  • 查看 Linux 网络配置:ifconfig

# linux 网络环境配置

  • 第一种方式 (自动获取):登陆后,通过节目来设置自动获取 ip,特点:Linux 每次启动后会自动获取 IP,缺点:每次自动获取的 ip 地址可能不一样
  • 第二种方式 (指定 ip):直接修改配置文件来指定 IP,并且可以连接到外网
    • 编辑 vim /etc/sysconfig/network-scripts/ifcfg-ens33,要求:将 ip 地址配置为静态的
      默认网络设置
      修改之后网络设置

注意:图片里面的应为 GATEWAY,不是 GATEWAT 坑了自己一把 (lll¬ω¬)

修改虚拟网卡

# 设置主机名和 hosts 映射

# 设置 hosts 映射

  • Windows: 在 C 盘下的一个目录文件里面指定即可,案例: 192.168.200.130 linuxLearn
  • Linux: 在 /etc/hosts 文件指定,案例: 192.168.200.1 xxx

# 主机名解析过程分析 (Hosts、DNS)

  1. Hosts 是什么
    一个文本文件,用来记录 IP 和 Hostname (主机名) 的映射关系
  2. DNS 是什么
    • DNS,是 Domain Name System 的缩写,翻译过来就是域名系统
    • 是互联网上作为域名和 IP 地址相互映射的一个分布式数据库

# 显示系统执行的进程

# 基本介绍

ps 命令是用来查看系统中,有哪些正在执行,以及他们的执行状况,可以不加任何参数

  • ps -a 显示当前终端的所有进程信息
  • ps -u 以用户的格式显示进程信息
  • ps -x 显示后台进程运行的参数
    进程详解
  • ps -ef 是以全格式显示当前所有的进程
  • -e 显示所有进程 -f 全格式
    参数解释

# 终止进程 kill 和 killall

kill [选项] 进程号 :通过进程号杀死进程
kill all 进程名称 : 通过进程名称杀死进程,支持通配符,这在系统因负载过大而变得很慢时很有用
kill -9 进程号 :表示强迫进程立即停止
pstree 以树状的形式显示进程号

# 服务 (service) 管理

# 介绍

服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如 (mysqld,sshd, 防火墙等),因此我们也称为守护进程

# service 管理指令

  1. service 服务名 [start|stop|restart|reload|status]
  2. 在 CentOS7.0 以后,很多服务不再使用 service,而是 systemctl
  3. service 指令管理的服务在 /etc/init.d 查看

# 服务的运行级别 (runlevel):

Linux 系统有七种运行级别:常用的级别 3 和 5

  • 运行级別 0: 系统停机状态。系统默认运行级别不能设为 0, 否则不能正常启动

  • 运行级别 1: 单用户工作状态,root 权限,用于系统维护,禁止远程登陆

  • 运行级别 2: 多用户状态 (没有 NFS), 不支持网络

  • 运行级别 3: 完全的多用户状态 (有 NFS), 无界面,登陆后进入控制台命令行模式

  • 运行级别 4: 系统未使用,保留

  • 运行级别 5:X11 控制台,登陆后进入图形 GUI 模式

  • 运行级別 6: 系统正常关闭并重启,默认运行级別不能设为 6, 否则不能正常启动

systemctl get-default 获取当前运行级别
systemctl set-default xxx 设置运行级别

# 开机流程

开机流程

# systemctl 管理指令

  • 基本语法:systemctl [start|stop|restart|status] 服务名

  • systemctl 指令管理的服务在 /usr/lib/systemd/ststem 查看

  • systemctl 设置服务的自启动状态

    • systemctl list-unit-files (查看服务开机启动状态,可以使用 grep 进行过滤)

    • systemctl enable 服务名 (设置服务开机启动)

    • systemctl disable 服务名 (关闭服务开机启动)

    • systemctl is-enabled 服务名 (查询某个服务是否是自启动的)

  • 使用案例:查看当前防火墙的状况,关闭防火墙和重启防火墙

    • 查看当前防火墙状况:systemctl status firewalled

    • 关闭 / 打开防火墙:systemctl stop/start firewalld

# firewall 相关指令

在真正的生产环境,往往需要将防火墙打开,但是如果我们把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯,此时需要打开指定端口

  • firewall 指令
    • netstat -anp 可以查看相关端口号和协议
    • 打开端口:firewall-cmd --permanent --add-port = 端口号 / 协议
    • 关闭端口:firewall-cmd --premanent --remove-port = 端口号 / 协议
    • 重新载入:firewall-cmd --reload
    • 查询端口是否开放:firewall-cmd --query-port = 端口 / 协议

# 监控网络状态

  • 查看系统网络情况 netstat

# rpm 包的管理

  • rpm -qa 查询所安装的所有 rpm 软件包
  • rpm -q 软件包名,查询软件包是否安装
  • rpm -qi 软件包名 查询软件包信息
  • rpm -ql 软件包名 查询软件包的文件
  • rpm -qf 文件全路径名 查询文件所属的软件包
  • rpm -e 软件名,删除软件
  • rpm -ivh (i=install 安装;v=verbose 提示;h=hash 进度条) RPM 包全路径名称

# yum

  • yum list 列出所有能安装的软件目录
  • yum install xxx 下载安装

# Shell

Shell 是一个命令行解释器,他为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统程序,用户可以用 Shell 来启动,挂起,停止甚至是编写一些程序

# Shell 脚本的执行方式

  • 脚本格式要求
    • 脚本以 #/bin/bash 开头
    • 脚本需要有可执行权限
  • 脚本常用的执行方式
    • 方式一:输入脚本的相对路径或者绝对路径,说明:首先要赋予 helloworld.sh 脚本 +x 权限,再执行脚本
    • 方式二:sh + 脚本,不用赋予脚本 +x 权限,直接执行即可

# Shell 变量

  • Shell 变量介绍
    • Linux Shell 中的变量分为:系统变量和用户自定义变量
    • 系统变量:HOME,HOME,PWD,$SHELL 等等
    • 显示当前 shell 中所有变量:set

# webmin 可视化工具

# 基本介绍

Webmin 是功能强大的基于 Web 的 Unix/Linux 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理操作。