文章目录
Linux基础
第一章
Linux概述 Linux是一种自由和开放源码的类UNIX 操作系统,存在着许多不同的Linux版本,但它们都使用了Linux 内核。
Linux 是在 1991 年由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启 发。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
1.1 Linux的特点
多用户
多任务
丰富的网络功能
可靠的系统安全
良好的可移植性
具有标准兼容性
良好的用户界面
出色的速度性能
开源
1.2 Linux和Window的区别
第二章 Linux安装
2.1 了解什么是虚拟化
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使 用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方 式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
2.2 windows安装VMware
-
官网下载VMware 15.X pro
https://www.vmware.com/cn.html
-
在BIOS中设置当前电脑支持虚拟化(部分机器需要设置)
- 安装VMware 没什么好说的,一路下一步就行,需要注意不要放入中文目录中。
2.3 掌握VMware网络配置
-
桥接模式
什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的 作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接 口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互 可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网 关与DNS需要与主机网卡一致。其网络结构如下图所示:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
-
NAT模式
刚刚我们说到,如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是 最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构 如下图所示
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连 接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。那么我们会觉得很奇怪,为什么需要虚拟 网卡VMware Network Adapter VMnet8呢?原来我们的VMware Network Adapter VMnet8虚拟 网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们可以加以验证。
如何配置NAT网络连接
1.打开VM设置虚拟机网络
2.在centos中配置地址信
3.关闭防火墙
systemctl stop firewalld.service
4.刷新网络
systemctl restart network
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔 开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的。
注意:在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这 两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原 默认设置”,可重新将虚拟网卡还原。
2.4 掌握VMware安装CentOS7
注意:此处我的ip地址是192.168.65.1
可设置为:192.168.65.3 255.255.255.0 192.168.65.2
2.5 设置Centos7的下载源
2.5.1 配置清华大学数据源
https://mirrors.cnnic.cn/
2.5.2 配置阿里云数据源
https://developer.aliyun.com/mirror/
2.6 安装SSH工具 XShell 6
2.6.1 安装XShell 6
2.6.2 连接远程Linux
2.7 MobaXterm的介绍和安装
1.MobaXterm 功能介绍
支持各种连接 SSH,X11,RDP,VNC,FTP,MOSH
支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…)
连接 SSH 终端后支持 SFTP 传输文件
各种丰富的插件(git/dig/aria2…) 可运行 Windows 或软件
2. MobaXterm 官网下载
- MobaXterm 分免费开源版和收费专业版: 下载官网免费开源版
3. MobaXterm 安装教程
3.1 推荐下载免安装版 (Portable edition)
3.2 双击运行 MobaXterm_Personal_22.1.exe
3.3 创建 SSH session 连接虚拟机
3.3.1 SSH配置注意事项
虚拟机用户名称设置错误
,SSH 登陆失败示例:
3.3.2 直接输入虚拟机密码登陆
3.3.3 SSH 登陆成功界面展示
左侧星号是一个标签栏,所有创建过的 session 会话都会标记在这里,下次打开时直接双击打开即可
3.3.4 工具栏 SFTP 功能介绍
3.4 创建串口 session
3.5 创建 telnet session
3.6 拖拽上传或下载文件
3.7 设置 MobaXterm 样式风格、右键粘贴
第三章 Linux的目录结构
第四章 Linux常用命令
命令的使用格式:命令 -选项 参数
如: ls -a /root
ls:对于目录,将列出该目录下所有的子目录与文件,对于文件,将列出文件名以及其他信息;
-a:列出目录下的所有文件,包括以“.”的隐藏文件;
/root:指定目录
4.1 文件与目录操作
4.2 查看文件内容
4.3 文本内容处理
4.4 查询操作
4.5 压缩和解压缩
注意:压缩和解压缩有多种形式来实现,没必要每个都记住,只需要使用上边命令就行
格式:tar [选项] [压缩路径+压缩名称] [压缩的文件或者目录]
选项:-z格式为gzip格式、-j格式为bzip2格式、-c压缩、-x解压缩、-v显示所有过程、-t查看内容、-f指
定压缩后的文件名称等
4.6 网络相关
systemctl restart network.service 重启网络
systemctl disable firewalld.service 禁用
4.7 其他命令
第五章 VI和VIM的使用
5.1 VI/VIM概述
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以 说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
5.2 VI/VIM的基本模式
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和 底线命令模式(Last line mode)。 这三种模式的作用分别是:
5.2.1 命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲键盘会被Vim识别为命令,而非输入字符。比如我们按下i,并不会输入字符,i被当作一 个命令。
以下是常用的几个命令:
i a o 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
- 切换到底线命令模式,以在最底一行输入命令。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
5.2.2 输入模式
在命令模式下按下i a o就进入了输入模式。
在输入模式中,可以使用以下按键
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
5.2.3 底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
wq 退出保存
q!强制退出
第六章 CentOS7安装软件
安装Java JDK
6.1 查看是否存在Java
java -version
6.2 删除Java JDK
6.3 官网上下载Linux Java JDK
6.4 通过ftp上传到Linux
6.5 解压到指定文件夹
##解压缩到当前文件夹
tar -zxvf jdk-8u281-linux-x64.tar.gz
##删除压缩包
rm -rf jdk-8u281-linux-x64.tar.gz
6.6 配置环境变量
vim /etc/profile
##文件最底部引入以下内容,注意具体路径
export JAVA_HOME=/dailyblue/soft/java/jdk1.8.0_281
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
6.7 刷新文件并测试
source /etc/profile
安装Tomcat
(同jdk步骤相似)
上传
解压
配置环境变量
export CATALINA_HOME=/opt/soft/tomcat/apache-tomcat-8.5.30
export CLASSPATH=.: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:CATALINA_HOME/lib
export PATH= P A T H : PATH: PATH:CATALINA_HOME/bin
刷新
安装Redis
安装依赖
因为redis是用C语言开发的,所以在安装之前需要确定是否安装gcc环境(gcc -v),如果没有安转可以 执行一下命令进行安装。
[root@localhost ~]# yum install -y gcc
下载Redis 7
1.官网下载 https://redis.io
2.get下载
[root@localhost ~]# wget https://download.redis.io/releases/redis-7.0.4.tar.gz
解压并编译安装
注意:需要在指定目录下编译安装
[root@localhost redis]# make MALLOC=libc
启动 (src目录下)
[root@localhost redis]# ./redis-server
连接(另开一个session,src目录下)
./redis-cli
centos安装redis - YixiuMonk - 博客园 (cnblogs.com)
设置redis.conf
redisz安装在linux下,要通过windows下的IDEA去访问它,必须解决三个问题。
- 网络是否畅通;
- Linux防火墙是否关闭;
- redis只允许本机(按照安装环境决定)访问,需要配置,才能访问。
1、去掉绑定的本机ip地址/关闭本机访问
2、关闭保护模式
3、保存并退出
4、以配置文件启动
安装MySQL
下载rpm文件
https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.28-1.el7.x86_64.rpmbundle.tar
上传解压
[root@localhost mysql]# tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
安装MySQL各个依赖
#1.安装common
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm --nodeps --force
#2.安装 libs
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm --nodeps --force
#3.安装client
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm --nodeps --force
#4.安装server
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm --nodeps --force
初始化
[root@localhost mysql]# mysqld --initialize;
授予相关权限
[root@localhost mysql]# chown mysql:mysql /var/lib/mysql -R;
启动
#启动
[root@localhost mysql]# systemctl start mysqld.service;
#检查状态
[root@localhost mysql]# systemctl status mysqld.service;
修改密码
获取初始密码
[root@localhost mysql]# cat /var/log/mysqld.log | grep password
登录
[root@localhost mysql]# mysql -u root -p
修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
远程访问(此处我的账户和密码都是root)
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'dailyblue'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
刷新
mysql> flush privileges;
第七章 用户和组
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另 一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
7.1 用户标志符UID与GID
我们登录Linux系统时通常运用用户名,但是Linux系统只识别一组号码,因此该号码与用户名之间存 在对应关系,记录在/etc/passwd文件中,称呼这组号码为UID即用户在系统中的唯一验证符号,同样的 用户组也有用户组名与用户组ID的对应关系也存放在/etc/group文件中,称为GID。
登录系统时系统会去查找这两个文件,只有找到相应的ID之后才会进入到记录密码的文 件/etc/shadow中去核对密码是否正确,进而确认是否可以进入系统。
7.1.1 详解用户配置文件/etc/passwd
7.1.2 详解账号密码文件/etc/shadow
7.1.3 详解用户组配置文件/etc/group
7.1.4 详解用户组密码文件/etc/gshadow
7.2 用户的增删改
7.2.1 用户的新增
7.2.2 用户的修改
7.2.3 用户的删除
#这个指令就比较简单,顾名思义就是删除用户的相关数据:用户账号/密码相关参数:
/etc/passwd,/etc/shadow;
用#户组相关参数:/etc/group,/etc/gshadow;用户个人文件数
#据:/home/username,/var/spool/mail/username…
#-r 删除账号时同时删除目录(remove)
userdel [-r] 用户名
7.3 用户组的增删改
基本组(私有组)——伴随着用户创建而创建 与用户同名(也可以自己设置) 但创建一个用户的时候必 有其组
附加组(公有组)——直接创建空组,可以添加已有的用户,给组设置权限,该组中所有用户都具备此 权限
7.3.1 用户组的添加
groupadd [-g] [-r] 用户名
-g:设置当前组编号;
-r:新建系统用户组,与/etc/login.defs内的GID_MIN有关,不建议使用
7.3.2 用户组的修改
groupmod [-g gid] [-n group_name] 用户组名
-g:修改既有的GID数字
-n:修改既有的组名;
例如:
#修改xiaozu1的组名是xiaozu2,新的GID是4444
groupmod -g 4444 -n xiaozu2 xiaozu1
7.3.3 用户组的删除
# 只有某个用户组不是用户的初始用户组时才能被删除,也就是说要删除某个用户组,必须确
认/etc/passwd内的账号没# 有任何人使用用户组作为初始用户组。
groupdel 用户组名
第八章 权限管理
以demo.tar.gz为例
[root@dailyblue test]# ls -l demo.tar.gz
-rw-r--r--. 1 root root 126 3月 10 16:20 demo.tar.gz
-开头代表普通文件(文件类型:d 目录,- 普通文件,l 链接文件)
文件所有者rw权限 具备读写权限
文件所属组r权限 具备读权限
其他用户r权限 具备读权限
所属用户root
所属组root
文件字节大小 126
创建时间 3月10日 16:20
文件名 demo.tar.gz
8.1 更改操作权限
chmod修改文件权限命令(change mode)
参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)
例如:chmod u+x /dailyblue/test/demo.tar.gz #给demo.tar.gz文件所属用户添加x权限
8.2 操作权限各项含义
操作对象可以是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+添加某个权限。
-取消某个权限。
=赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
8.3 chown命令
8.3.1 chown概述
更改某个文件或目录的属主和属组。
8.3.2 chown语法
chown [选项] 用户或组 文件
- R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
- v 显示chown命令所做的工作