一、什么是Linux?
Linux是一款操作系统 - Windows、Mac、Unix、Dos、Android、IOS.....
思考:大家都在用Windows操作系统,为什么要学Linux?
内核?发行版?
二、Linux的安装
2.1 Linux虚拟机的安装
什么是虚拟机(VM)?
2.1.1 Linux虚拟机安装的步骤
2.1.2 Centos7的引导步骤
2.2 云服务器的使用(阿里云、腾讯云)
阿里云的试用网址:
阿里云免费试用 - 阿里云
腾讯云的试用网址:
云产品免费体验馆_云产品免费试用_个人云产品试用-腾讯云
阿里云的活动页:
金秋十月,注册抽好礼
腾讯云的活动页:
上云精选_云服务器秒杀_开发者上云推荐-腾讯云
2.3 远程连接Linux系统
什么是远程连接Linux?
通常我们需要借助一些远程连接工具,通过ssh协议连接到Linux系统上,通过远程连接工具操作Linux系统
1)获取Linux服务器的IP地址
2)操作Xshell远程连接工具(SSH)
思考:为什么需要远程连接操作Linux?
PS、VMware的常见问题
解决方式:
1、百度你的机型的BIOS系统的进入方式
2、重启你的笔记本,进入BIOS系统
3、选择开启VT虚拟机化功能 - Enable
4、F10 保存重启
三、Linux的相关命令
Linux文件系统的结构
/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
/bin:bin 就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。
/etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。
/root:Linux超级权限用户root的家目录。
/lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
/usr(unix shared resources):这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具
/usr/local:这里主要存放那些手动安装的软件
/var (variable)用于存放运行时需要改变数据的文件
/boot:Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。
/cdrom:这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom
/dev:dev 是设备(device)的英文缩写。用于存放设备文件
/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。
3.1 基本命令
xxxx --help
进入命令的帮助界面
ifconfig
查看系统的网卡相关信息
su xxxx
切换当前系统的账户(root账户可以直接切换到其他账户,其他账户切换到root账户需要密码)
pwd
打印当前的所处路径
cd 相对路径/绝对路径
进入指定的文件夹(目录)
~表示Home路径
..表示上一级目录
.表示当前目录
ls & ll
打印当前目录下的所有文件和子目录
clear
清空命令行
3.2 文件夹的相关操作
mkdir xxx
创建文件夹(目录)
-p 表示可以级联创建
mv xx/a xx/b
将a文件夹移动(剪切)到b文件夹下
cp xx/a xx/b
将a复制到b文件夹下
默认只能copy文件,如果要copy文件夹需要参数:-r
rm
删除文件或者文件夹
-r:代表可以级联删除文件夹
-f:无需询问直接强制删除
3.3 文件的相关操作
vim xxx
创建并且编辑文件
:wq
在编辑页面中保存当前的修改并且退出
:q!
在编辑页面中放弃当前的修改并且强制退出
i - 当前光标前输入 I - 行首输入
a - 当前光标后输入 A - 行末输入
o - 下一行输入 O - 上一行输入
:set number
显示行号
gg
跳转到首行
G
跳转到末行
:n
跳转到第n行
u(在基本模式下输入)
撤销操作
ctrl+r(在基本模式下输入)
反撤销操作
y[n]y(在基本模式下输入)
复制当前光标下的n行
p(在基本模式下输入)
粘贴
d[n]d(在基本模式下输入)
删除当前光标下的n行
x(在基本模式下输入)
删除当前光标的值
cat xxx
查看文件内容
more xxx
逐步展示文件内容 (回车/空格 往后查看)
tail xxx
从尾部查看文件内容
tail -f 通常用来查看日志文件
/ 关键字
文件内查询
n - 往下找 shift+n - 往上找
:n,$s/旧内容/新内容/g
文件替换
3.4 文件压缩和解压缩
tar -zcf 压缩包的名字.tar.gz 待压缩的文件....
压缩文件
tar -zxf 压缩包的名字.tar.gz
解压压缩包
3.5 用户&用户组的基本命令
groupadd xxx
创建一个用户组
groupmod -n 新组名 旧组名
修改组的名称
groupdel 组名
删除组
groups
展示当前用户所在组
useradd [参数] xxx
添加用户
-g 指定组
-G 指定多个组
-u 指定id
-p 指定密码(密文)
usermod 旧用户名
修改用户名
userdel 用户名
删除用户
passwd 用户名
设置/修改用户密码(明文)
3.6 权限的相关命令
3.6.1 介绍文件描述符
x-xxx-xxx-xxx
1位:文件类型(一切皆为文件)
- 普通文件(可执行文件、配置文件...)
- l 链接文件
- d 目录
2位~4位:所属用户对这个文件(文件夹)的操作权限
5位~7位:所属用户的同组用户对这个文件(文件夹)的操作权限
8位~10位:非同组用户对这个文件(文件夹)的操作权限
rwx
r: 可读
w:可写
x:可执行
3.6.2 Linux的授权方式
字符授权:
chmod (u/g/o)(+/-/=)(r/w/x) 文件/文件夹
数字授权:
chmod nnn 文件/文件夹
r - 4
w - 2
x - 1
-R 递归授权
注意:root用户需要当前权限描述符中任意部分包含该权限,就可以操作该文件
3.7 其他命令
ping
尝试给目标地址发送数据包,检查响应数据包
df df -h
查看磁盘使用信息
free
查看内存的使用情况
poweroff
关机
reboot
重启
netstat -natp
查看服务器的网络通讯信息
uname -a
查看内核版本
四、虚拟机的网络配置
ip地址
当前机器在网络上的一个唯一标识
形式:xxx.xxx.xxx.xx (点分字节)
本质:int值 - 32位整型 byte
子网掩码
检测ip网段的工具
网关
帮助你上网的设备
dns服务器
域名解析服务器
VMware虚拟机的网络模型
桥接模式 - 虚拟机直接和宿主机共享网卡(虚拟机会变成宿主机的真实网段)
Nat模式 - 虚拟机和宿主机之间通过虚拟网卡形成了一个小型的局域网
设置虚拟机的静态ip
打开网卡的配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-网卡名称
编写内容:
.....
BOOTPROTO=static
.....
IPADDR=192.168.195.188
NETMASK=255.255.255.0
GATEWAY=192.168.195.2
DNS1=192.168.195.2
五、Linux中的进程和服务
什么是服务?
服务就是运行在后台的进程
相关命令
ps -aux | grep xxx - 查看当前服务器正在运行的进程 - (瞬时状态)
top - 类似window任务管理器 - (持续状态)
kill -9 xxx - 根据pid结束相应的进程
setup - 查看系统服务
systemctl start/stop/restart/loader/status 服务名称 - 开启/结束/重启/重新加载相应的服务/查看状态
systemctl enable/disable 服务名称 - 设置/关闭服务的开机自启
Linux中的防火墙
/usr/lib/firewalld/services/ssh.xml - 添加需要访问的端口
六、Linux的软件安装(RPM和YUM安装)
6.1 RPM安装
rpm全称为RedHat Package Manager(RedHat软件包管理工具),是一种软件包的打包及安装工具,
能够使用与大部分Linux发行版中
rpm的相关命令
rpm -qa | grep xxxx - 查看当前系统是否安装某软件
rpm -qi xxxx - 查看软件的安装详情
rpm -ivh xxxxx - 安装指定的rpm包
rpm -e [--nodeps] xxxxxx - 卸载指定的rpm包(强制卸载)
6.2 YUM安装
yum是一个软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,
而且可以自动处理依赖性关系,并且一次性安装所有依赖的软件包
yum的相关命令
yum list | grep xxx - 查询当前yum源上是否存在相关软件
yum install -y xxxx - 安装软件
yum remove -y xxx - 卸载软件
6.3 软件的安装
1)jdk安装
源码安装:
1、上传压缩包,并且解压
tar -zxf jdk-8u171-linux-x64.tar.gz
2、解压文件夹改名
mv jdk1.8.0_171/ jdk8
3、配置环境变量
vim /etc/profile
编写如下内容:
export JAVA_HOME=/usr/local/software/jdk8
export PATH=$PATH:$JAVA_HOME/bin
保存退出后,设置环境变量立马生效
source /etc/profile
rpm包安装:
rpm -ivh jdk-8u191-linux-x64.rpm
2)tomcat
1、解压压缩包
tar -zxf apache-tomcat-8.5.34.tar.gz
2、启动tomcat
cd tomcat8/bin
启动tomcat
./startup.sh
3)mysql
yum安装mysql
1、确保当前系统没有安装过mysql
rpm -qa | grep mysql
2、检查yum源上的mysql版本
yum list | grep mysql
3、下载更换yum源
下载源rpm安装包
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
安装rpm
rpm -ivh mysql57-community-release-el6-8.noarch.rpm
配置mysql源信息
vim /etc/yum.repos.d/mysql-community.repo
修改33行,将6改成7
33 baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
4、进行yum安装
yum install -y mysql-community-server.x86_64
5、启动mysql服务
systemctl start mysqld
6、查看MySQL生成的随机密码
grep 'password' /var/log/mysqld.log |head -n 1
7、登录mysql修改密码
mysql -uroot -p
登录之后第一次修改密码
set password=password('ROOTroot123_');
8、开放MySQL的远程访问
创建远程访问用户:
create user 'root'@'%' identified by 'root';
授权当前用户:
grant all privileges on *.* to 'root'@'%';
9、配置MySQL库的默认编码集
vim /etc/my.cnf
添加内容:
[mysqld]
character-set-server=utf8