视频教程:https://www.bilibili.com/video/BV1kq4y1Z7Df?p=16&spm_id_from=pageDriver
[TCP/IP] : https://blog.csdn.net/qq_38410730/article/details/80980749
## 网络的连接模式:
桥接模式: 为虚拟机分配一个IP地址,等同于局域网中的一台主机,与原主机地位相同,可相互访问。(缺点:容易出现IP冲突)
网络地址转化(NAT): 通过宿主机器所在网络进行访问,(无法与局域网中的其它主机交流。)
## 配置网络虚拟信息
error: vi /etc/sysconfig/network-scripts/ifcfg-ens33 no such file or directory(vi后存在空格)
vi为Linux中的内置文本编辑器,用法为 "vi filename" ,此时键盘上的按键并非作为字符输入,而是作为命令。
键盘方向键移动光标,“i”切换到编辑模式,“ESC”返回到命令行模式,直接输入“:wq”保存并退出。
vi命令详解: https://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html
网络配置结果
IPADDR = 192.168.174.100
NETMASK = 255.255.255.0
GATEWAY = 192.168.174.2
DNS1 = 114.114.114.114
![](https://img2020.cnblogs.com/blog/1797318/202109/1797318-20210916203413825-1963167102.png)
`systemctl restrat network.service` 重启网络服务以刷新。
`systemctl stop firewalld` 本次服务内关闭防火墙功能
`systemctl disable firewalld` 禁用防火墙
`systemctl status firewalld` 查看防火墙状态
## 解除软件安装限制
`vi etc/selinux/config`将其中的SELINUX的值改为disabled
## 关闭虚拟机
`poweroff`或者`shutdown -h now`
或者点击VMware的菜单界面选择挂起或关机(挂起会保存当前状态)
## 拍摄虚拟机快照以及克隆虚拟机
快照:对当前虚拟机的状态进行保存备份,可以选择转到快照从而将虚拟机回复到快照拍摄时的状态。(只能在虚拟机关闭的状态下使用)
再VMware菜单界面右键选择虚拟机,选在快照中的快照管理器拍摄快照或者转到原有的快照。
克隆分为链接克隆和完整克隆,链接克隆只克隆更改的部分。
## Linux命令
命令与参数中间需要空格隔开,且命令需要区分大小写。
type 'command' : 查看命令的类型
help 'command' : 查看内置命令的帮助文档
man 'command' : 查看外部命令的帮助文档
### 系统指令
whereis : 查询命令文件所在位置
file : 查询文件类型
who : 查询当前在线用户
whoami : 查看当前登录的账户(我是谁)
pwd : 查看当前所在文件位置(我在哪)
uname -a : 查看Linux内核信息
echo : 打印语句(类似print)
clear : 清屏
history : 显示历史命令清单(键盘上下键显示的内容)
-c : 清空历史命令
### 特殊符号
. : 用于文件名表示该文件为隐藏文件;也可指向当前目录
.. :指向上一层目录
$ : 变量符号($name 表明name为变量,实际使用时为name变量所指的真实值)
* :通配符
~ :当前用户的家目录(root用户的家目录为系统根目录,其余用户为/home/用户名)
/ :整个Linux系统的根目录
- :作用于命令的参数前,当参数是缩写时为'-',当参数是英文单词时为'--'
### Linux中的二级目录
bin : 一般用于存放可执行文件
sbin : 管理人员可用的执行文件或命令
boot : 引导分区
dev : 设备信息
etc : 配置文件
home : 普通用户的家目录
lib : 执行文件所需的类的库 lib64
mnt : 挂载时常用目录
opt : 默认软件安装目录
proc : 进程信息
root : root用户的家目录
run : 存放系统运行时的常用变量
srv : 系统启动时所需要提取的数据
sys : 系统的内核信息
tmp : 存放临时文件(关机重启后可能被删除)
var : 存放临时文件(与tmp类似,但重启后仍然存在),通常存放各种日志文件
usr : 用户共享区域
### 文件操作命令
cd : 改变当前工作目录(cd filename 相对路径 cd/filename 绝对路径)
ls : 显示出指定文件夹下的所有文件
ll : 相当于 ls -l ,显示文件详细信息。
`-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc`
'-'开头为文件,'d'开头为文件夹,'l'开头为链接(即快捷方式)
r表示可读,w表示可写,x表示可执行,没3个字符为一组。
rw-表示可读可写不可执行,代表所有者u的权限
r--表示只可读,代表所属组g(组为具有相同权限的用户分类)的权限;
r--表示其余分组的权限。
第一个root表示该文件的所有者u,第二个root表示该文件的所属组g(这里表示跟root同属一个组的用户)
176单位为byte,表示文件大小。 Dec 29 2013 为文件最后修改日期。 .bashrc表示文件名,且该文件为隐藏文件
mkdir : 创建文件夹。
-p 同时创建多级文件(mkdir -p aaa/bbb/ccc 同时创建三个文件夹)
rm : 删除文件,默认情况下不删除文件夹。
(-d 删除空的文件夹, -r 删除文件夹以及文件夹中的所有文件,-f 无视询问同时强行删除)
rmdir : 删除空的文件夹
cp filename target_file : 复制文件到目标目录里。
-r 逐级复制文件夹中的文件
mv : 移动文件,用法与cp类似;对文件重命名 mv old_name new_name
touch filename : 如果filename不存在则创建一个文件
stat : 查看文件属性
ln : 创建文件链接,与源文件属于同一个文件(硬链接,可用于防止误删) ln source_file link_name
-s : 软链接,与源文件不是同一个文件
cat : 将文件内容从头到尾完整的展示
tac : 将文件内容从尾到头展示
more : 将文件内容一页一页的展示
输入键盘上的'h' 即help,显示翻页操作; 'q'推出; 'b'上一页; 回车键下一行;空格键下一页
head -numb : 显示文件前几行内容,numb为所需要显示的行数
tail -numb : 与head作用相反
tail -f filename : 监听文件的数据变化,得到文件末尾新增加的数据。(监听文件的inode,当文件被删除后停止)
tail -F filename : 功能同上。(监听文件名,文件被删除后若重新创建一个相同文件名的文件,监听仍然继续)
head -numb1 | tail -numb2 : 文件中前numb1行的倒数numb2行
find dir -name target : 在dir中查找target
### vi
vi filename : 打开文件
vi +numb filename : 打开文件并定位到numb行。若numb为空(vi + filename)定位到最后一行
vi +/str filename : 打开文件并定位到第一个str处,按'n'跳转到下一个str(str为所要查找的字符串)
总共有三种模式:
编辑模式:键盘上的每个按键都属于一个命令。
(':'切换到命令行模式;切换到输入模式:'i'光标前方插入;'a'光标后方插入;'I'行首插入;'A'行未插入;'o'下一行插入;'O'上一行插入)
输入模式:可以在文件中进行输入或修改。
命令行(末行)模式:直接对文件输入特定命令
#### 常用编辑模式指令:
'numb' + gg : 跳转到第numb行
G : 跳转到最后一样
'numb' + dd : 从光标开始删除numb行
w : 跳转到下一个单词
'numb' + dw : 删除光标后的单词
'numb' + yy : 从光标处开始复制numb行
'numb' + yw : 复制numb个单词
p : 粘贴
'numb' + x :剪切
'numb' + r : 替代
u : 撤销(类似于ctrl + z)
. : 回退(类似于ctrl + y)
hjkl : 上下左右移动光标
ZZ : 保存并推出
#### 常用命令行模式命令
:q : 退出
:q! 强制退出且不保存
:w : 保存
:wq : 保存并推出
:set nu : 显示行号
:set nonu : 关闭行号
:/ + 'str' : 查找str所在位置
:s/str1/str2(/g) : 将光标当前行的str1替换成str2(末尾有/g则整行全部的str1替换,没有则只替换第一个)
:g/str1/s//str2/g : 将全部的str1替换成str2(s后存在两个/)
### 系统间的数据传输
#### Linux与Windows
rz : 选择将windows上的文件上传到linux
sz + filename : 将Linux的文件传输到windows
#### Linux与Linux
scp (-r) 源文件名 目标ip地址:存放路径 : 将文件从一个Linux传到另一个Linux上(-r 为传输文件夹)
### 查看存储空间信息
df -h : 查看系统存储空间使用情况
du -h --max-depth=1 + filename : 查看文件内存大小(max-depth为深度,即该文件的子文件深度)
### 文件压缩与解压缩
#### tar格式
tar -zxvf filename : 解压(通常文件名结尾为tar.gz)
zx:解压 v:过程 f:文件
tar -zcf 新文件名 源文件名 :压缩,
#### zip格式
zip -r 新文件名 源文件 : 压缩
unzip 文件名 : 解压
### 网络相关命令
ifconfig : 查看当前网卡配置信息
netstat : 查看当前网络状态信息
-anp : 端口信息 -r 核心路由表
ping + 'ipaddr' : 查看与ipaddr是否联通
telnet + 'ipaddr' + 端口号 : 查看与端口是否联通
### 时间同步
date -s + 'time' : 设置Linxue系统时间
ntpdate + 'IPaddr' : 将该Linux系统的时间与'IPaddr'的时间同步。'IPaddr'服务器需要打开ntp服务: service ntpd start
ntpdate cn.ntp.org.cn : 自动同步国内常用服务器时间
### 用户管理
useradd + 'username' : 添加新用户(只能由管理员操作)
passwd + 'username' : 为username用户设置密码
userdel -r + 'username' : 删除用户
su + 'username' : 切换账户(exit退出并返回)
创建的用户根目录均在 /home/用户名
可以查看 /home 文件夹下的文件数目查看已注册的用户
groupadd + 'group_name' : 创建组
groupdel + 'group_name' : 删除组
groups + 'username': 查看用户所在组
### 用户权限管理
chown + 'user' + 'file' : 将file的拥有者更改为user
chmod + 'mode' + 'file' : 更改文件权限
'mode' : [ugoa][+ - =][rwxXst]
### 管道
| : 将前方获得的数据交给后方操作
cat file | grep 'str' : 将file文件中的内容传输给管道后方,并筛选处出其中含有str的数据项
### 重定向
> : 将输出的数据重定向(覆盖)
>> : (追加)
1 : 正确输出,可省略。无视错误输出。 位于 > 前方
2 : 错误输出。无视正确输出。
ll /opt/asd 2 >> test
2>&1 : 无论正确或错误输出。位于最后方。
数据黑洞 /dev/null
### 进程信息
ps -ef : 显示进程信息(UID为用户ID,PID为进程ID,PPID为父进程ID)
ps -ef | grep 'str'
ps -aux : 显示进程所有信息
top : 显示服务器内存使用情况
kill -9 'PID' : 结束进程
### 后台进程
& : 在命令的最后加上 & 即可将该进程改编成后台进程。
nohup : 在命令开头添加nohup,将后台进程设置为无法被挂起。
jobs : 查看当前正在运行的后台进程。
ctrl z :将一个正在前台运行的进程转换为后台进程。
fg %'jobnum' : 将后台进程转化为前台进程
bg %'jobnum' :将挂起的后台进程继续运行
kill %'jobnum' : 杀死后台进程
ctrl c : 关闭前台进程
jobnum为jobs输出的后台进程序号
### 安装指令
yum install 'software' -y : 安装软件(部分情况需要更换yum源)
yum search 'software' : 查询软件或指令所需安装包
yum info 'software' : 查询软件信息
### 文件分割
cut -d'char' -f1,2,3 'filename' : 对filename中的数据以'char'进行分割(''不可省略),取第1,2,3列
sort -t 'char' -k1 'filename' : 对filename中的数据以'char'进行分割,并按照第一列进行排序
-r : 逆序 -n : 按照数字大小排序(默认为字符串排序)
wc 'filename' : 对文件中的字符进行统计(返回行数、单词数、字符数 即line word char)word以空格最为区分
### 文件内容查找
grep + 'str' + 'filename' : 查找文件中包含str的项(filename可以不止一个)
| grep 'str' : 在管道中的运用
## shell语言
shell语言是Linux中的一种命令语言,也是程序设计语言,便于用户与内核交流。通常默认为sh
| #! /bin/bash 指定解释该脚本文件的shell程序,#!为shabang
脚本文件通常为.sh格式
### 执行脚本
1、直接输入脚本文件的路径(绝对路径或相对路径)
2、sh + 'filename' (执行脚本文件时会新开一个进程,需要注意环境变量的使用范围)
3、source + 'filename' (并不会新开一个进程)
export 'var' : 变量var能够传递给子进程使用
### 变量
x = "abcd" ""可以省略
readonly x 将x设置为只读变量,无法对其进行更改
unset x 删除变量 x
echo ${x} 输出abcd,$为调用变量本身的值
echo $x 等价于上式,将{}省略
### 字符串
str1 = "hello word" 双引号或单引号都可以,包含空格的字符串必须用引号。
str2 = "hello $str1" 输出hello hello word (双引号能够将其中的变量进行替换)
str3 = 'hello $str1' 输出hello $str1
echo ${#str1} 输出字符串长度
### 数组
仅支持一维数组,数组大小并无限制,超出后也没有错误提示
array={var1 var2 var3 ...} 括号来表示数组,数组元素之间用空格隔开(数组元素若为字符串,需要引号)
x=${array[i]} 获取数组中的一个元素,i超过数组长度时返回空值。
${array[@]} 获取数组中的所有元素
${#array[@]} 获取数组的长度
### 注释
单行注释 : #
多行注释 : :<<str ... str (其中str为任意字符或字符串,通常为EOF,中间的内容均会被省略)
### 参数传递
./test.sh var1 var2 ... 直接在执行文件后输入需要传入文件的参数
在文件中使用 $0 $1 $2 $3 ...调用参数,其中 $0 为文件名
特殊参数(实际两个符号间并无空格):
$ # : 传递参数的长度
$ * : 以一个字符串的形式显示所有传入的参数
$ $ : 脚本运行时的进程ID
$ ? : 显示最后命令的退出状态,0表示没有错误
$ 0 : 文件名
### 运算符