第一章、 Linux简介
Linux 是一个免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 性能稳定的网络操作系统。
linux的内核最初是由一个芬兰的大学生因为个人兴趣爱好而编写的,
这个大学生的名字叫林纳斯·托瓦兹(Linus Torvalds)
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。其中这个CentOS是一个企业级的发行版,特别适合对稳定性,可靠性和功能要求较高用户
tips : 本篇笔记基于 vmware虚拟机 + CentOS 7 记录
并且本篇笔记会以较为简略的方式记录,为的是快速入门
第二章. 拥有一台属于自己的linux服务器
2.1、vmware虚拟机安装
vmware虚拟机下载
text通过百度网盘分享的文件:VMware-workstation-full-17.5.0-2258... 链接:https://pan.baidu.com/s/1TCLrM_0aZKnyXK3f9baCsg?pwd=4u9r 提取码:4u9r --来自百度网盘超级会员V6的分享
VMware Workstation 17 Pro许可证密钥(Linux/Mac通用)
text4A4RR-813DK-M81A9-4U35H-06KND NZ4RR-FTK5H-H81C1-Q30QH-1V2LA 4C21U-2KK9Q-M8130-4V2QH-CF810 MC60H-DWHD5-H80U9-6V85M-8280D JU090-6039P-08409-8J0QH-2YR7F 4Y09U-AJK97-089Z0-A3054-83KLA
2.2 在vmware上新建一台基于CentOS7系统的虚拟机
CentOS7 镜像下载
text通过百度网盘分享的文件:CentOS-7-x86_64-DVD-1804.rar 链接:https://pan.baidu.com/s/1Y_6ESOhEaJGE7mZYP929FQ?pwd=yobt 提取码:yobt --来自百度网盘超级会员V6的分享

选择好 CentOS 7 的版本

关键点,别按照默认的安装到了C盘了!!!!

选择一手双核

可以稍微选多点,是动态分配的

剧透:桥接网络相当于虚拟出一条网线插到你本地电脑的网卡里


.vmdk后缀就是那个虚拟的磁盘,可以稍微记一下
补充 :
.vmx后缀是你的虚拟机,你在vmware需要打开虚拟机时选择这个后缀的文件

没用的虚拟硬件可以移除...

手动选择下载好的CentOS镜像

配置好后打开虚拟机就是这个界面,可以鼠标点进去用方向键 + ENTER键选择安装

满足学习需求只要个终端就好,还不需要那些图形化的界面

设置root密码和用户名,建议设简单点!!随便敲一个字母或数字都行

像这样登入就是完成了安装工作了!!🎉🎉
2.3、vmware虚拟机的三种网络模式的介绍
VMnet0虚拟交换机:Bridged桥接模式
特点:
a. 默认使用VMnet0, 不提供DHCP服务 ( DHCP 服务是指由服务器控制的一段IP地址范围,当客户机登录服务器时会自动获取服务器分配的IP地址与子网掩码 )
b. 虚拟机与外部主机需要在同一个网段上,与局域网的其它机器没有区别。
c. 可以与局域网内其它主机通信,可以与外部网络通信
d. 容易与局域网其他主机引起ip地址冲突VMnet1虚拟交换机:Host-Only仅主机模式
特点:
a. 默认使用VMnet1,提供DHCP服务
b. 虚拟机可以和物理主机互相访问,但虚拟机无法访问外部网络VMnet8虚拟交换机:NAT模式
特点:
a. 默认使用VMnet8,提供DHCP服务
b. 虚拟机可以和物理主机互相访问,可访问外部网络
c. 局域网内其它机器访问不了2.4、linux-centos7的网络设置
简介:如何使得CentOS7上外网
- Bridged 桥接模式
- 重启主机的命令:
reboot - 重启网卡的命令:
systemctl restart network.service - 查看 ip 地址的命令 :
ip addr ping命令可以检测网络是否畅通:ping ip地址- 结束
ping命令 :Ctrl + c - tips : 按住
ctrl + l可以清屏 ,和clear命令一个效果 - 可以访问外网
- 容易与局域网的其他机器 ip 地址冲突
- 重启主机的命令:
- Host-Only 仅主机模式
- 一般情况下不能访问外网
- 不会与局域网的其他机器 ip 地址冲突
- NAT 模式
- 可以访问外网(与上面一样命令检查网络连接)
- 不会与局域网的其它机器 ip 地址冲突
- 总结:
为了提供不同的测试环境,有的需要虚拟机与局域网内的其它机器环境隔离,
有的不需要,所以就整出这么多花样2.5、linux 远程连接工具使用
获取远程连接工具:
通过网盘分享的文件:SecureCRT.rar
链接: https://pan.baidu.com/s/1HoPEKrPjuGB7YTs21pqkZA?pwd=y7jd
提取码: y7jd
--来自百度网盘超级会员v6的分享使用前保证网络畅通
使用
ip addr查看 ip 是多少再远程连接安装上传下载功能lrzsz服务:
yum -y install lrzsz(确认服务器可以联外网)上传:执行
rz命令下载:
sz文件名
2.6、虚拟机的快速克隆与快照恢复
克隆虚拟机会以比较快的方式 “ 复制粘贴 ” 一台一模一样的虚拟机
克隆后 :
systemctl restart network.service命令执行会报错,原因是 MAC地址不正确tips : 按住键盘的 tap 键 可以对命令进行补全
网卡路径 :
/etc/sysconfig/network-scripts/ifcfg-eno16777728- ps : 前面都是一样的,但是后面数字部分会不一样,需要按 tap 键补全
使用
vi工具进行编辑网卡信息 :vi /etc/sysconfig/network-scripts/ifcfg-eno16777728- ps : 按住键盘的
i进入编辑模式,按住键盘左上角的esc键 退出编辑模式, 再输入:wq!进行保存
- ps : 按住键盘的
快照 :相当于备份当前时间节点的机器状态( 防止后面操作误删重要文件 )
第三章、Linux命令基础

前面已经成功安装了 Linux - centos 7 , 接下来就是进入Linux 命令行的世界。
Linux命令格式
| 命令 | 条件/参数 | 对象/文件/目录 | ||
|---|---|---|---|---|
| marry | 空格 | -car -house -money | 空格 | good girl |
| marry | 空格 | -money | 空格 | girl |
| rm | 空格 | -f | 空格 | /tem/irai.txt |
- 一般情况下 , 【参数】 是可选的 , 一些情况下 【文件或路径】也是可选的
- 同一个命令跟上不同的参数执行不同的功能
- 执行 linux 命令,添加参数的目的是让命令更加贴切实际工作的需要
- linux 命令与参数之间,普遍应该用 一个或多个空格分隔
Linux命令行

命令提示符
普通用户 irai 登录 $
超级用户 root 登录 #
irai / root 表示当前登录的用户可以调用命令来查看
whoami:我是谁, 显示当前登录的用户hostname:显示当前机器的主机名pwd:显示当前的工作目录的绝对路径
OS目录分隔符
- window 命令行目录分隔符

- Linux 命令行目录分隔符

- Linux 首先是建立一个根 “ / ” 文件系统 , 所有的目录也都是由根目录衍生出来的。
- 而 window不一样,window 有各种盘符 C盘 , D盘 , E盘 ....

第四章、Linux 基础命令&操作
4.1、常用必备基础命令(一)
1、cd命令
功能说明:切换目录。
举 例:cd /usr/local/; cd ..; cd -
2、ls命令
功能说明:列出目录内容。
举 例:ls -ltr ; ls -lrt /home/
3、pwd命令
功能说明:查询所在目录。
举 例: pwd
4、cat命令
功能说明:查看小文件内容。
举 例:cat -n 123.txt
5、more命令
功能说明:查看大文件内容,回车向下走一行,空格向下走一页
举 例:more System.map-3.10.0-123.el7.x86_64
6、head命令
功能说明:查看文件的前面N行。
举 例:head -20 System.map-3.10.0-123.el7.x86_64
7、tail命令
功能说明:查看文件的后面N行。
举 例:tail -f access.log ;tail -20 access.log
8、touch命令
功能说明:创建一个空文件。
举 例:touch 123.txt
9、mkdir命令
功能说明:创建目录。
举 例:mkdir -p /tmp/XD/XD/class
10、rmdir命令
功能说明:删除目录。
举 例:rmdir /tmp/XD/XD/class
11、 cp命令
功能说明:拷贝文件。
举 例:cp 123.txt class/ ; cp -a 123.txt class/789.txt
12、 mv命令
功能说明:移动或更名现有的文件或目录。
举 例:mv 123.txt 345.php ;mv 789.txt /home/987.php
13、rm命令
功能说明:删除文件或目录。
举 例:rm 987.php ;rm -rf 456.txt
14、 diff命令
功能说明:对比文件差异。
举 例:diff 123.txt 456.txt
15、ssh命令
功能说明:远程安全登录方式。
举 例:ssh 192.168.226.131
16、exit命令
功能说明:退出命令。
举 例:
17、id命令
功能说明:查看用户。
举 例:id root
18、uname命令
功能说明:查询主机信息。
举 例:uname -a
19、ping命令
功能说明:查看网络是否通。
举 例:ping 192.168.226.131
20、echo命令
功能说明:标准输出命令。
举 例:echo "this is echo 命令"
21、man命令 (ls --help)
功能说明:查看帮助文档
举 例:man ls
22、help命令
功能说明:查看内部命令帮助
举 例:help if4.2、常用必备基础命令(二)
1、clear命令
功能说明:清屏。
举 例:clear ; ctrl + l
2、who命令
功能说明:当前在本地系统上的所有用户的信息
举 例:whoami ; who
3、uptime命令
功能说明:查询系统信息
举 例:
load average: 0.00, 0.01, 0.05 1分钟的负载,5分钟的负载,15分钟的负载
4、w命令
功能说明:查询系统信息
举 例:w
5、free命令
功能说明:查看系统内存
举 例:free -h ; free -m
6、wc命令
功能说明:统计行。
举 例:wc -l 123.txt
7、grep命令
功能说明:查找文件里符合条件的字符串。
举 例:grep '119.4.253.206' 123.txt | wc -l
-n:输出行数 grep -n '80.82.70.187' 123.txt
-w:精确匹配 grep -w '113.66.107.198' 123.txt
-i:忽略大小写 grep -i 'IP:113.66.107.198' 123.txt
-v:反向选择 grep -v '113.66.107.198' 123.txt
8、 find命令
功能说明:查询文件。
举 例:find / -name -type f 123.txt
9、uniq命令
功能说明:对排序好的内容进行统计
举 例:uniq -c 123.txt | sort -n
10、sort命令
功能说明:对内容进行排序
举 例:uniq -c 123.txt | sort -n
11、df命令
功能说明:文件系统的磁盘使用情况统计。
举 例:df -h
12、netstat
功能说明:查看网络端口的使用情况
举 例:netstat -tunlp | grep nginx
-t :显示tcp端口
-u :显示UDP端口
-n :指明拒绝显示别名
-l :指明listen ( 监听 ) 的
-p :指明显示建立相关连接的程序名
安装netstat命令: yum -y install net-tools
13、hostname命令
功能说明:查看主机名
举 例:hostname
14、ps命令
功能说明:显示所有进程信息。 ps 与grep 常用组合用法,查找特定进程
举 例:ps -ef | grep nginx
ps -aux | grep nginx
15、kill命令
功能说明:杀进程
举 例: kill -9 top
16、top命令
功能说明:监控Linux系统状况,比如cpu、内存的使用
举 例:按住键盘q退出
17、du命令
功能说明:统计大小
举 例:du -sh ; du -sm *
18、firewall-cmd命令
功能说明:查看防火墙的状态
举 例:firewall-cmd --state
centos 7 关闭防火墙:systemctl stop firewalld.service
19、echo命令
功能说明:判断上一条命令是否正确 or 输出内容到屏幕上
举 例:echo $? ; echo hello world
20、cal命令
功能说明:查看日历
举 例:cal 20084.3、什么是输入/输出/错误重定向
- 什么是输入重定向?
通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去- 什么是输出重定向?
通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,
而不是将要输出的文件信息输出到控制台(显示屏)- 什么是错误重定向?
通俗的讲,错误重定向就是把错误的信息写入到一个文件中去- linux 中一切皆文件
文件描述符:
posix名称 文件描述符 用途
/dev/stdin 0 标准输入
/dev/stdout 1 标准输出
/dev/stderr 2 标准错误输出- 输入重定向:
<- eg : wc -l < 123.txt
输出重定向:
txt> # 代表覆盖写入 >> # 代表追加写入- eg :
cat >> 123.txtcat > 123.txtls -lrt > 123.txtecho '123455' > 123.txt
- eg :
错误重定向:
eg :
llll 2> 123.txtllll 2> /dev/nullps :
/dev/null是个 “ 无底洞 ” ,可以当成 “ 回收站 ” 一样用ps :
ls > 123.txt等价于ls 1> 123.txt也就是默认1(标准输入)是省略的
几个符号:
&# 代表等同于的意思ls -lrt /boot /test 1>/root/123.txt 2>&1
解释:
ls -lrt /boot /test的内容,标准输入重定向到123.txt,错误输入
2>等同于 1&1一样重定向到123.txt&># 代表分正确还是错误的意思ls -lrt /boot /text &>123.txt
解释:不管正确输入还是错误输入都重定向到
123.txt|# 管道符;# 代表的是可以执行多条命令cat /etc/passwd | grep root ; ls -lrt
解释:cat 查看一下
/etc/passwd得到的内容通过管道 然后 grep 筛选出有root的内容同时执行
ls -lrt列出当前工作目录的内容 参数为-lrt&&#and逻辑の短路运算- 前面的命令执行成功的话,后面的才可以执行成功;
- 前面的命令执行失败的话,后面的不可以执行
||#or逻辑の短路运算- 前面的命令执行成功的话,后面的不可以执行
- 前面的命令执行失败的话,后面的可以执行
4.4、linux下的目录分类与作用介绍

/:根目录,一般根目录下只存放目录,不要存放文件,也不要修改,或者删除目录下的内容/mnt:测试目录/root:root用户的家目录/home:普通用户的家目录/tmp:临时目录(比如文件上传时)/var:存放经常修改的数据,比如程序运行的日志文件/boot:存放的启动 Linux 时使用的内核文件,包括连接文件以及镜像文件/etc:系统默认放置配置文件的地方/bin:所有用户都能执行的程序/sbin:只有root才能执行的程序/usr:用户自己的软件都可以放到这儿来/dev:存放硬件设备的地方(/dev/cdrom)/media:挂载光盘使用的挂载光盘:
mount /dev/cdrom /media
- 卸载光盘:
umount /dev/cdrom
绝对路径:说白了就是完整的路径
相对路径:相对于当前位置路径 ./ 代表的是当前目录的意思 ../ 代表的是上一级目录的意思
4.5、虚拟机中Centos7与外部物理机的时间同步
- 卸载光盘的时候可能会遇到目标正忙:
[root@localhost media]# umount /dev/cdrom
umount: /media: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))- 解决方法:
- 首先确认联网状态
yum install -y psmiscfuser -mv /mediafuser -kv /media
- date 命令
date "+%Y-%m-%d %H:%M:%S"date -s "2020-10-1 22:00:00"date -d yesterday "+%Y-%m-%d %H:%M:%S"date "+%w"
- 安装
VMwareTools- 第一步打开虚拟机,安装 VMwareTools 使工具软件包下载到光盘
- 挂载光盘到 linux 系统
cp VMwareTools-10.2.0-7259539.tar.gz /root/umount /dev/cdromtar -xf VMwareTools-10.2.0-7259539.tar.gzcd vmware-tools-distribyum -y install perl-Data-Dumper./vmware-install.pl- 一路按住键盘的回车键,选用默认
echo $?验证是否安装成功,返回 0 就是成功- 验证里面虚拟机的时间是否与外部物理机的时间同步
4.6、linux 高手编辑神器 vi 的使用
- vi 的基本概念:(三种模式)
- 命令模式
- 插入模式
- 底行模式
进入插入模式:按住键盘的 i 或者 o 或者 a
进入命令模式:按住键盘的左上角 esc 键
进入底行模式:前提是得在命令模式,输入 : 进入- 在命令行模式中的操作:
$ #移动到这一行的行尾
gg #移动到文档第一行行首
G #移动到文档最后一行行首
x #删除内容,删除一个字符
dd #删除游标所在的那一整行
u #复原原来的操作
v #选中范围按y即复制
p #粘贴- 在底行模式中的操作:
n # n为数字。光标移动到第n 行
/ # 寻找内容
# 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
%s/word1/word2/g
# n1 与 n2 为数字。
# 在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2
n1,n2s/word1/word2/g
set nu #显示行号
set nonu #取消行号
q! #强制离开不保存
wq #离开并保存
wq! #强制离开并保存
!ls #暂时离开4.7、linux的用户管理与组管理
- Linux 是一个多用户、多任务的操作系统
- Linux 用户的分类 :
- 超级用户 root :
- 拥有至高无上的权限
- UID : 0
- 普通用户:
- 权限有一定的限制,可以登录系统。
- 一般可以执行
/user/local/bin或者/bin或者/usr/bin或者自己家目录的命令 - UID : 500 - 60000 ( centos 6 ) UID : 1000 - 60000 ( centos7 )
- 系统用户(伪用户):
- 一般不会登录系统,一般情况是用来维护某个服务程序
- UID : 1 - 499 ( centos6 ) ; UID : 1 - 1000 ( centos7 )
- 超级用户 root :
- 关于用户的相关配置文件
- 账号信息:
/etc/passwd - 密码信息:
/etc/shadow
- 账号信息:
| test | :x | :1000 | :1000 | :xxxx | :/home/test | :/bin/bash |
|---|---|---|---|---|---|---|
| 用户 | 密码占位符 | UID | GID | 用户描述 | 用户家目录 | 登录后使用的shell解释器 |
ps:
/sbin/nologin # 是不可登录的
/bin/bash # 是可以登录的- 添加用户命令:
useradd-u# 指定用户UID-d# 指定用户主目录-g# 指定用户所属组-r# 指定用户是系统用户-s# 用户登录shell解释器-M# 不创建主目录
eg:
创建一个用户XD,指定UID为1010,指定家目录为/home/XD
指定所属组为root组,指定登录shell为/bin/bash
命令 : useradd -u 1010 -d /home/XD -g root -s /bin/bash XD- 登录用户时出现以下信息如何解决:
如下:
bash-4.2$
bash-4.2$
解决:复制相关信息到家目录
cp -r /etc/skel/.bash* /home/XD/- 删除用户命令:
userdel-r# 连同家目录一块删除
- 添加用户组命令:
groupadd - 删除用户组命令:
groupdel - 修改用户的信息命令:
usermod-u# 指定用户UID-d# 指定用户主目录-g# 指定用户所属组
- 设置用户密码命令 :
passwd- passwd XD
- echo "123456" | passwd --stdin XD
4.8、linux文件属性与权限操作
- 查看文件的属性:
ls -lrti
135088935 -rw-------. 1 root root 1778 Oct 1 2020 yum.log
第一列:i节点;i节点可以理解文件id,一个i节点号可以对应多个文件,一个文件只能对应一个i节点号
第二列:文件的类型与权限
- #代表的是文件;d#代表是目录; l #软链接文件 ;b #代表块设备;c #代表的是硬件设备(键盘)
r:表示读权限 ;w:表示写权限;x:表示执行权限
4:表示读权限 ;2:表示写权限;1:表示执行权限
rw-------: (分为三列)
rw- --- ---,第一列为所属者(u)的权限,第二列为所属组(g)的权限,第三列为其它(o)的权限
第三列:有多少文件名链接到这个节点
第四列:文件的所有者
第五列:文件的所有组
第六列:容量大小,单位默认为B
第八列:创建或最近修改的时间
第九列:文件名- 链接
软连接:ln -s
eg:ln -s /home/XD/yum.log /usr/local/
inode 跟源文件不一样,源文件一旦删除,软链接将找不到源文件
硬链接:ln
eg:ln /home/XD/yum.log /usr/local/XD/
inode 与源文件一模一样,源文件删除,硬链接还可以继续使用。常用于防止重要文件被误删- 修改文件的权限命令
chmod:-R# 递归的意思chmod -R 777 /home/XD/*
eg:
chmod u+x,g+w,o+w boot.log
chmod u-x,g-w,o-w boot.log
chmod 777 boot.log- 修改文件的所有者跟所属组命令
chown:-R# 递归的意思
eg: 更改文件目录XD 的所属者为root用户 跟 所属组为XD组
chown -R root:XD XD4.9、linux的文件归档与解压缩
文件归档:
文件归档也称之为打包,指的是一个文件或者多个文件或者目录的一个集合,
这个集合储存在一个文件中。归档文件是没有进行压缩的,
所以占用的空间是所有文件或者目录的总和。工作中经常与压缩结合在一起使用
- 文件压缩:节约磁盘空间,加快文件的传输速率
解压缩命令:gzip ; xz
gzip: 不能压缩目录,只能压缩文件,压缩速度最快,但是压缩比例比较低。扩展名:.gz- 不保留源文件压缩:
gzip 123.txt - 保留源文件压缩:
gzip -c 345.txt > 345.txt.gz - 保留源文件的解压:
gunzip -c 345.txt.gz > 234.txt - 不保留源文件的解压:
gunzip -d 345.txt.gz
- 不保留源文件压缩:
xz: 可以压缩目录和文件,压缩速度比较慢,但是压缩比例最高。扩展名:.xz- 不保留源文件压缩:
xz 123.txt - 保留源文件压缩:
xz -c 345.txt > 345.txt.gz - 不保留源文件的解压:
unxz 345.txt.xz - 保留源文件的解压:
unxz -d -k 123.txt.xz
- 不保留源文件压缩:
- 归档与压缩命令
tar:-c# 创建新文件-f# 指定文件格式-v# 显示详细过程- eg (only 归档) :
tar -cf vmware.tar vmware-tools-distribtar -cvf vmware-tools.tar vmware-tools-distrib
-z# 以 gzip 方式归档压缩tar -zcvf vmware-tools.tar.gz vmware-tools-distrib
-J# 以 xz 方式归档压缩tar -Jcvf vmware-tools.tar.xz vmware-tools-distribtar -Jcvf /home/XD/vmware-tools.tar.xz vmware-tools-distrib
-x# 解档解压操作tar -xf vmware-tools.tar.xz
-C# 指定解压路径

