一、准备环境
VMware Workstation Pro
模拟一台或者多台计算机
centos 7
操作系统
二、操作系统基础
1、操作系统类别
个人版:界面优美,一般都是用图形界面,操作方式鼠标
+
键盘
服务器:界面单一,一般都是字符界面,操作方式通过命令实现
操作系统
windows
个人:
windows xp win 7 win 8 win10 dos..
服务器:
windows server 2003
、
2008
、
2012
linux --
开源 免费
centos
:国内服务器主流操作系统
centos 5
centos 6
centos 7
目前用的最多的是此版本
centos 8
最新的
ubuntu
:主要用于智能设备的研发
Redhat
:
安卓
unix
mac
ios
PC
和服务器的区别
性能
个人电脑:
内存:
8-32G
磁盘:
1T 5400
转
/
分钟
7200
转
/
分钟 对频繁读写支持不是特别友好
服务器电脑:
内存:
64G 128G 256G - 2T
磁盘:没有上限,
1W-1.5W
、支持频繁读写删除等操作
设备有冗余
CPU
、网卡、内存
2、虚拟机
两个概念
物理机
虚拟机
创建虚拟机的软件
VMware
virtual box
(
orale
)
三、安装虚拟机
1、安装vmware
双击安装程序
exe
输入序列号
2、创建硬件
四、centos入门
登陆系统
1、关于用户
管理员用户:
root
普通用户:自定义的,非
root
用户
2、找所有的文件
图形界面
3、提示符
做为
linux
操作系统,主要是靠命令来实现我们所需要的功能,都是在
终端
中执行命令
[aaaa@localhost ~]$
:表示普通用户
[root@localhost ~]#
:表示
root
用户(即管理员用户)
提示符构成
[root@localhost ~] #[ 用户名 @ 计算机名 当前所在的目录 ] 用户身份
4、简单命令
所有的操作用
root
用户执行
命令1
:清屏命令
clear
快捷键:
ctrl+l
命令2
:查看当前所在目录
pwd [print work directory]
可以显示完整的路径
命令3
:切换工作目录到其他位置
cd
格式: cd 目标位置(目录)
补充:我们需要知道的根目录下常用文件 根的表示方式是
/
根下有
/tmp /home /etc /mnt
案例
1
:切换到
/home
下
cd /home
案例2:切换到/tmp下
案例3:切换到tmp下的ppp目录下的test目录
注意:
Linux中,开头的那个/成为根,也叫做根目录
linux中,所有的文件都是从/开始的
cd命令不加目标路径,自动回到当前用户的家目录下
cd - :返回上一次工作目录
cd ..:回到当前路径下的上一层目录
命令4:
touch
创建文件的命令
touch
格式:
touch
文件名
案例
1:
在
/home
下创建一个名为
a1.txt
的文件
案例
2
:在
/tmp
下创建一个文件
ccc
案例3:在/tmp/ppp/test创建一个叫做a2.doc
五、Linux基础
1、Linux目录结构
windows
windows
是一个多根系统
一个磁盘分区就是一个根,
windows
可以有多个分区,也就是有多个根
存储文件的时候,文件就是存在某一个根之下
linux
linux
是单根系统,只有一个根目录
只有一个可存储文件的路径
根的表示方式
/
多根系统和单根系统的区别
2、linux的根目录下的重要目录
home
etc
bin
sbin
tmp
media
mnt
boot
usr
var
dev
lib
root
/
目录下的主要目录
/etc
目录
etc
下存储的是
linux
中的各种配置文件
例如网卡配置文件
/etc/sysconfifig/network-scripts/ifcfg-ensXX
/bin
目录
这个目录下存放的是
Linux
可执行程序
/sbin
目录
存放的也是
linux
可执行程序
/var
目录
存储的是那些常发生改变的文件
例如日志文件
/var/log/message
/tmp
目录
存放的是临时文件
这个目录下所有的文件,如果
30
天内没有被访问过,那么文件会自动删除
/home
目录
普通用户存储文件的家目录,也就是普通用户的主目录
【普通用户只能在自己的家目录下创建
/
编辑文件】
/root
目录
这个目录是管理员用户的家目录(主目录)
Linux
路径的表示方式
/
目录名
/
目录名称
/
文件名
第一个
/
叫做根,第二个
/
叫做路径分隔符 ,第三个
/
叫做 路径分隔符
3、简单命令
1) pwd命令
作用:显示当前所在的工作目录
2)cd命令你
作用:切换目录
3)ls命令
作用:查看目录下有哪些文件
格式:
ls [
选项
] [
路径
]
路径:
在执行命令的时候,如果不指定路径,则查看的是当前工作目录下的文件;如果指定路径,则查看的是指
定路径下的文件。
选项:
-l
:显示文件的属性
-a
:显示所有的文件,包括隐藏文件(
Linux
默认是不显示隐藏文件的,隐藏文件是以
.
开头的文件)
案例:
# 查看当前路径下的文件[root@localhost ~] # lsanaconda-ks.cfg initial-setup-ks.cfg# 查看 /etc 下有哪些文件# 方法一[root@localhost ~] # ls /etc# 方法二[root@localhost ~] # cd /etc/[root@localhost etc] # ls# 查看 / 下有哪些文件[root@localhost etc] # ls /# 查看当前目录下文件的属性[root@localhost ~] # ls -l# 查看当前目录下所有文件的详细信息[root@localhost ~] # ls -al# 查看 /tmp 目录下所有文件的详细信息[root@localhost ~] # ls -al /tmp
补充:
drwx------. 2 root root 20 6 月 1 01 :44 .esd-0-rw-r--r-- . 1 root root 0 6 月 1 00 :59 ccc-rw------- . 1 root root 0 5 月 31 23 :32 yum.logd 开头的文件表示目录文件- 开头的文件表示一般文件linux 当中文件的后缀主要是给人看得,对于 linux 而言有没有后缀无所谓文件的属性只和创建文件的命令有关系
4)touch命令
作用:创建一个空白的文件
5)mkdir命令
作用:用来创建一个目录文件 【创建一个文件夹】
格式:
mkdir
【选项】 目录名
linux
当中文件的后缀主要是给人看得,对于
linux
而言有没有后缀无所谓
文件的属性只和创建文件的命令有关系
二、
mkdir
【选项】
/
路径
/
目录名
选项:
-p
:在父目录不存在的情况下,先创建父目录,然后依次创建子目录
# 在当前目录下创建一个目录叫做 book1[root@localhost ~] # mkdir book1# 在当前目录下创建 abc/cba 的目录文件[root@localhost ~] # mkdir -p abc/cba# 创建一组目录 aa/bb/cc/dd方法一:[root@localhost ~] # mkdir -p aa/bb/cc/dd方法二:# 一层一层创建
6)cp命令(copy)
作用:复制文件和目录
格式:
格式
1
:
cp [
选项
]
源文件 目标位置 复制到新的位置后,名字不变
格式
2
:
cp [
选项
]
源文件 目标位置
/
新名字 复制到新的位置后,有个新的名字
选项:
-r
:用于复制目录【必须用
-r
,才能复制目录】
-a
:在复制过程中,保持文件的属性不变
例子:
# 将 /etc/passwd 复制到 /home 下[root@localhost ~] # cp /etc/passwd /home/# 将 /etc/passwd 复制到根目录下[root@localhost ~] # cp /etc/passwd /# 将 /etc/passwd 复制到 /home 下,改名为 qq[root@localhost ~] # cp /etc/passwd /home/qq# 将 /home 下面的 qq 复制到 /tmp 下,同时改名为 ww ,保持文件属性不变[root@localhost ~] # cp -a /home/qq /tmp/ww# 将 /root 下的 aa 目录复制到 /tmp 下[root@localhost ~] # cp -r aa /tmp
7)mv命令
作用:用来移动文件和目录
格式:
格式
1 mv
【选项】 源文件 目标位置 移动到新的位置后,名字不变
格式
2 mv
源文件 目标位置
/
新文件名 移动到新的位置后,名字改变
例子
# 在 /home 新建一个文件 1.txt 将其移动到 /tmp 下[root@localhost home] # mv /home/1.txt /tmp/# 将 /tmp 下的 1.txt 改名为 2.txt[root@localhost home] # mv /tmp/1.txt /tmp/2.txt# 原地改名[root@localhost tmp] # mv 2.txt 1.txt# 将 /tmp 下的 1.txt ,移动到 /home 下改名为 a.txt[root@localhost tmp] # mv 1.txt /home/a.txt
8)rm命令
作用:删除文件
格式
1
、
rm [
选项
]
文件名
2
、
rm [
选项
]
目标位置
/
文件名
选项
-f:
强制执行删除操作【不会给出
y/n
提示】
-r
:用于删除目录文件
例子
# 删除 /home 下的 a.txt[root@localhost tmp] # rm /home/a.txt# 删除 /tmp 下的目录 aa[root@localhost tmp] # rm -r aa# 强制删除 /tmp 下的目录 aa ,不需要人机交互[root@localhost tmp] # rm -r -f aa##########################################################如果指定路径的话,则删除指定路径下的文件如果不指定路径,则删除当前路径下的文件[root@localhost ~] # rm -rf aa[root@localhost ~] # rm -rf /home/aa
9)通配符
通配符:具有特殊含义的符号
主要有两个
* 星号表示任意多个字符【 0 个, 1 个,多个】?代表任意一个字符
例子:
# 查询以 a 开头中间有一个任意字符,以 4 结尾的文件[root@localhost ~] # ls a?4# 查询以 a 开头中间有多个任意字符,以 4 结尾的文件[root@localhost ~] # ls a*4# 查询包含 a 的文件[root@localhost ~] # *a*# 删除以 a 开头,后面有两个字符的文件[root@localhost ~] # rm a??
10)cat命令
作用:读取文件的内容【适合读取行数比较少的文件】
格式:
cat
路径
/
文件
案例:
# 查看 /home 下的 passwd 文件[root@localhost ~] # cat /home/passwd
11)head命令
作用:查看文件的前若干行,默认是查看
10
行
格式:
head
【选项】 路径
/
文件
选项:
-n [num] :
指定查看行数
案例
# 查看 /home/passwd 文件的前 1 行[root@localhost ~] # head -n 1 /home/passwd# 查看 /home/passwd 文件[root@localhost ~] # head /home/passwd
12)tail命令
作用:查看文件的最后若干行,默认是查看最后
10
行
格式:
tail
【选项】 路径
/
文件
选项:
-n #:
指定查看多少行
13)more命令
作用:实现分屏查看大文件
格式:
more
路径
/
文件
操作:
回车:显示下一行
空格:显示下一屏
b
:显示上一屏
/
目标字符:在文件中搜索内容
n
:继续向后搜索下一个关键词【关键词可以高亮显示】
q
:退出查看
14)less命令
作用
:
实现分屏查看文件
格式:
less
路径
/
文件名
操作
回车:显示下一行
空格:显示下一屏
/
目标字符:在文件中搜索内容
n
:继续向后搜索下一个关键词【关键词可以高亮显示】
q
:退出查看
15)wc命令
作用:用于统计文件中有多少行、多少个单词、多少个字符
格式:
wc
【选项】 路径
/
文件名
选项:
-l
统计一个文件的行数
-w
:统计文件的单词数
-c
:统计文件的字符数
案例:
# 统计 /home/passwd 文件,统计文件有多少行[root@localhost ~] # wc -l /home/passwd# 统计文件的单词数[root@localhost ~] # wc -w /home/passwd# 统计文件的字符数[root@localhost ~] # wc -c /home/passwd# 查看文件有多少行 多少个单词 多少个字符[root@localhost ~] # wc /home/passwd44 行 90 单词 2304 字符 /home/passwd / 路径 / 文件名
16)man命令
作用:查看命令的帮助信息
格式:
man
命令名称
4.vi/vim编辑器
什么是
vi
linux
中一个重要的文本编辑软件
vi
是一种模式化的文本编辑工具
vim
是
vi
编辑工具的加强版,
vi
的所有功能都能在
vim
中实现
vi
的工作模式
模式
1
:编辑模式
它是打开文件后的默认模式
编辑模式不能再文件中写入或者删除内容
模式
2
:输入模式
它是可以在文件中写入、修改、删除内容
模式
3
:末行模式
它是可以执行各种命令、例如保存退出、不保存退出、显示行号
模式转换
编辑模式
--->
输入模式 【i】
输入模式
--->
编辑模式 【
esc
】
编辑模式
--->
末行模式 【
shift+
;】
末行模式
--->
编辑模式 【
esc
】
vi
的格式
vi
路径
/
文件名
如果文件是存在的,则直接打开
如果文件是不存在的、则直接创建一个新的空白文件
编辑模式下的操作
yy
:复制光标所在的行
dd
:删除
/
剪切光标所在的行【如果不进行粘贴则直接是删除效果】
p
:粘贴
/str
:在文件中所有指定的内容
n
:继续向后进行搜索
末行模式下的操作
w
:保存
q
:退出
q!
: 强制退出【不保存直接退出】
wq
:保存退出
wq!:
强制保存退出
set nu
:显示行号
set nonu
:不显示行号
关于文件异常关闭的问题
崩溃缓存文件,这个用于实现将没来得及保存的文件的内容恢复出来
只要有崩溃缓存文件,每次打开的时候都会进行检查,解决办法,删除崩溃缓存文件即可
5、配置网络
【实现宿主机和虚拟主机通信】
一、将
vmware
虚拟机的网卡链接到
vmnet8
上
二、修改
vmnet8
地址
ip
地址格式:
用点进行分割
由
4
部分构成
每个部分都是
0-255
之间的数字
子网掩码
作用:判断两个
IP
是否属于同一个网段
两个
IP
在同一个网段,他们之间就可以通信
规划:为了让虚拟机和宿主机之间进行通信,我们规划地址,
ip
地址
192.168.33.XX
子网掩码
255.255.255.0
配置
vmnet8
网卡
二、配置虚拟机网络信息
linux
主机网卡配置文件
位置:
/etc/sysconfifig/network-scripts/ifcfg-ensXX
一般情况下都是
ifcfg-ens33
TYPE = Ethernet # 不用改,默认表示以太网BOOTPROTO = static # 修改成 static ,指定网卡的 ip 地址获取方式。 dhcp 表示自动获取, static 表示手动NAME = ens33 # 网卡名称ONBOOT = yes # 开机是否自动启动网卡 改成 yes# 以上内容更改完成后,需要手动添加的内容IPADDR = 10 .10.100.10NETMASK = 255 .255.255.0
三、重启网卡服务
修改了网卡配置文件后,必须重启网卡服务,修改才会生效
[root@localhost ~]# systemctl restart network
检查网卡是否配置成功
#1 、查看 Linux 是否有 IP 地址[root@localhost ~] # ifconfig ens33#2 、测试到物理机是否能通信[root@localhost ~] # ping 10.10.100.1
四、使用远程连接工具连接
centos7
远程连接工具
xhell
putty
securityCRT
1
)安装
xshell
略
2
)远程连接服务器使用
xshell
略
五、总结
1
)给物理机的
vmnet8
设置一个
ip
地址
2
)给虚拟机设置一个
ip
地址,并将网卡链接到
vmnet8
上
3)
使用工具连接
centos
常见的问题
物理机开了防火墙
两个
ip
地址不在同一个网段
六、正则表达式
1、简介
正则表达式就是一组具有特殊含义的符号
例如:
* . ^ $
正则和通配符区别
通配符主要作用于文件名来使用,例如查找文件名以
a
开头的文件,
a*
正则主要是针对文件的内容来使用,例如查找文件以
a
或
b
开头的行,需要使用的是正则表达式
a*
2
、
grep
命令
作用:从文件中查找满足条件的行
格式:
grep
【选项】 条件 路径
/
文件名
案例:
测试文件hello worldi am xxxxi from chinaa is boyc and dzddddabbbb# 查找包含字母 a 的行[root@localhost ~] # grep "a" a.txt# 查找以 a 开头的行[root@localhost ~] # grep "^a" a.txt
3、正则符号
案例:
# 查找 f 和 m 之间有两个字符的行[root@localhost ~] # grep "f..m" a.txt# 查找以 a 开头 b 结尾, a 和 b 中间有任意多个字符的行[root@localhost ~] # grep "a.*b" a.txt# 查找 /home/passwd 文件中以 root 开头的行[root@localhost home] # grep "^root" /home/passwd# 过滤以 bash 结尾的行[root@localhost home] # grep "bash$" passwd
七、通配符
1
、管道符
符号
|
作用:实现将两个或者多个命令链接起来,然后将前面命令的执行结果传递给后面的命令
【对前面命令的执行结果进行二次处理】
案例:
# 查看 etc 下所有的文件[root@localhost ~] # ls -al /etc/# 统计 /etc 下一共有多少个文件[root@localhost ~] # ls -al /etc/ | wc -l