0%

Linux从入门到精通

带着枷锁的舞者,枷锁一定是其成功的工具

课程设计:

1.初识Linux

1.1 操作系统概述

​ 计算机由硬件和软件组成,操作系统属于软件,主要作用就是协助用户调度硬件工作,充当用户和计算机硬件的桥梁,常见的操作系统有MacOS,Linux,Windows(PC端),安卓,iponeOS,HarmonyOS(移动端).

1.2 Linux内核

​ Linux是服务器操作系统领域的核心系统。

​ Linux系统=Linux系统内核+系统级应用程序

​ 内核提供系统最核心的功能:调度 CPU,内存,文件系统,网络通讯,IO等。

​ 系统级应用程序:供用户快速上手操作系统的出厂自带程序。

​ Linux发行版:提供了内核+系统及应用程序的完成封装,市面上Centos,ubuntu是常使用的。

1.3 了解虚拟机

​ 如何获得可用的Linux操作系统环境—借助虚拟机。

​ 虚拟机:通过虚拟化的软件得到虚拟化的硬件,然后给虚拟的硬件安装真实的操作系统(centos7),得到一台没有实体的完整电脑。

1.4 如何构建虚拟机环境

​ 通过虚拟化的软件(VMware)来提供虚拟硬件的能力,然后在硬件上安装操作系统。

​ VMware WorkStation安装和配置

​ 1.软件安装:无脑下一步

​ 2.检测网络适配器

​ 通用的更改适配器打开方式: win+R输入ncpa.cpl,查看VM1和VM8是否存在,如果不存在建议删除VM,重启后重新安装。

1.5 在VMware上安装Linux虚拟机(Windows)-图形化

​ 下载DVD-1810.iso

1
https://vault.centos.org/7.6.1810/isos/x86_64/

​ 打开VM,点击创建新的虚拟机-打开向导-典型-安装程序光盘映像文件浏览选择刚下载好的文件-配置账户名,用户名,密码-更改虚拟 机的名称和位置(可选)-40GB-自定义硬件(可选)-勾选后点击完成。

​ 漫长的等待………………………

​ 输入用户名和密码,就可以体验Linux系统了

1.6 远程连接Linux系统

​ Linux系统中多数情况下使用的命令行,因为Linux系统图形化界面不好用,不稳定。

​ 使用第三方软件(finalShell)操作Linux的必要性:在VM中操作Linux命令行不太方便,内容的复制粘贴,文件的上传下载跨越VM都不太方便

1
https://dl.hostbuf.com/finalshell3/finalshell_windows_x64.exe

​ Linux桌面进入命令行:桌面右键点击:open in terminal

​ 查询Linux系统的IP地址:当前登陆用户~下输入ifconfig,ens3里的inet就是IP地址

​ 打开FinalShell—左上角文件夹—白色+号—ssh连接(Linux)—主机:linux的IP地址—双击连接管理器的链接—接受并保存—连接成功。

注意:Linux虚拟机如果重启,有可能IP地址发生改变,如果改变需要在FinalShell中修该连接的地址。

​ 固定IP地址的方法:

1.7 使用WSL获得Ubuntu系统环境(拓展)

​ WSL是Window10系统的新特性,可以以非常轻量化的方式,得到Linux系统环境,这种环境是完全直连我们计算机硬件的,并不需要通过虚拟机去虚拟硬件,不会影响Window系统本身的运行。

​ WSL的部署:win键-右键-应用和功能-程序和功能-启用或关闭Windows功能-勾选适用于Linux的Windows子系统-立即重启自动。

​ 安装WSL的操作系统:搜索Miscrosoft Store-搜索ubuntu—下载第一个-获取安装-打开-设置用户名和密码。

​ 安装Windows Terminal软件:Ubuntu自带的终端窗口不太好用,可以直接在应用商店下载Terminal,

1.8 虚拟机快照的制作和还原(Windows)

​ 功能:为了避免由于系统损坏重装Linux操作系统的麻烦,可以通过快照功能将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。

​ 制作:(确保虚拟机关机)右键虚拟机-快照-快照管理器-拍摄快照

​ 还原:测试快照-转到-是

2.Linux基础命令

2.1 Linux的目录结构

​ Linux没有盘符这个概念,只有一个根目录/,所以文件都在它下面,在Linux系统中,路径直接的层级关系用 / 表示(/usr/local/hello.txt)。

2.2 Linux的命令

​ 命令的通用格式: command [options] [parameter]

2.2.1 ls 列出内容

ls : list简写,列出当前工作目录下/home的内容(文件+文件夹)。

         ls /root:查看指定目录/root里面的内容。

-options:

         ls -a :查看(.)隐藏和非隐藏的文件(白色)和文件夹(蓝色),all

​ ls -l :list简写,列表显示,以列表形势显示指定目录下的文件和文件夹(简写ll)。

​ ls -h :显示大小,带单位(必须与-l结合使用 ls -l -h)

2.22 cd 切换目录

​ cd : change directory,切换目录**

         cd .. :返回上一级目录

         cd - :在临近的2个目录间切换

         cd . : 返回登陆者的当前目录

         cd / :切换到根目录

​ cd或cd ~: 到达家目录

         cd:切换到当前登陆用户的家目录,如果是itcast用户登陆的,就回到/home/itcast,如果 是root用户登陆的就回到/root
2.23 pwd

​ pwd(print work directory)显示当前所在的工作目录的绝对路径

2.24 相对/绝对路径

​ 绝对路径:从根目录/开始。

         相对路径:从当前目录开始,不需要以/开头。
2.25 mkdir

mkdir: make directory,创建文件夹

            mkdir test1:没有层级的创建文件夹test1,当前目录下创建。

​ mkdir [-p ] aaa/bbb/ccc/ddd:有层级的创建文件夹,绝对路径创建(-p先检查后创建文件夹)。

2.26 touch

touch: 创建空文件

         touch a.txt #在当前目录创建a.txt文件

         touch /root/a.txt #在/root目录创建a.txt文件
2.27 cat

​ cat Linux路径

cat : 查看 整个文件内容

​ cat a.txt :查看文件全部内容

2.28 more

​ more Linux路径

more :查看文件部分内容

         enter:多查一行数据

         空 格 : 查看新的一屏幕数据,翻页

​ q:退出查看

2.29 cp copy , 复制粘贴

​ 语法:cp [-r] 参数1 参数2

针对文件

​ cp a.txt b.txt

            a.txt 内容存在 b.txt 文件存在内容不存在—复制a内容到b里。

​ a.txt 内容存在 b.txt 文件存在内容不存在—复制a内容到b里。

​ 【无论有没有创建后一个空文件,都会把前一个文件的内容复制过去】

​ a.txt 内容存在 b.txt内容存在———将a的内容覆盖到b里。

​ (覆盖:把b杯子先清空,然后把a被子里的水倒入b中,不同于追加)。

针对文件夹

​ 【 当test2文件夹存在:将test1整个复制一份到test2目录中】

​ cp test1 test2 -r

​ 当test2文件夹和内容不存在:将test1下面的内容复制一份,写到test2目录下。

​ test1内容存在 test2内容存在. —-将test1目录整体复制到test2目录中

针对文件文件夹

​ cp a.txt test2 :复制a.txt并写入到 test2 目录中

scp命令是cp命令的升级版,即:ssh cp,通过SSH协议完成文件的复制

其主要功能就是:在不同的LInux服务器之间,通过SSH协议互相传输文件,只要知晓服务器的账户和密码(密钥),即可通过SCP互传文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#scp语法
scp [-r] 参数1 参数2
-r选项用于复制文件夹使用,如果复制文件夹,必须使用-r
参数1:本机路径或远程目标路径
参数2:远程目标路径或本机路径

scp -r /export/server/jdk root@node02:/export/server
# 将本机上的jdk文件夹,以root的身份复制到node2的/export/server/内同SSH登陆一样,账户名可以省略(使用本机当前的同名账户登陆)

scp -r node2:/export/server/jdk /export/server
# 将远程node2的jdk文件夹,复制到本机的/export/server内

#scp命令的高级用法
cd /export/server
scp -r jdk node2:'pwd'/ #将本机当前路径jdk文件案件,复制到node2服务器的同名路径下
scp -r jdk node2:$PWD ##将本机当前路径jdk文件案件,复制到node2服务器的同名路径下
2.30 mv移动文件或者文件夹

​ mv:文件,目录的移动和重命名

mv: move用于文件,目录的移动和重命名(剪切粘贴,重命名和移动功能)

​ mv a.txt b.txt : 当b.txt存在和不存在都是重命名,a的内容覆盖b的内容(a的名字变成b的名字),即b变成了a的内容(覆 盖:把b杯子先清空,然后把a被子里的水倒入b中,不同于追加)。

​ mv test1 test2 : 当test2存在:将test1整个文件夹移动到test2目录下

​ 当test2不存在:重命名

​ mv a.txt test1 :移动文件到指定目录test1下面

2.31 rm 用于文件和文件夹的删除

rm: remove的缩写,默认删除文件(-),可以删除文件夹(d)

​ rm a.txt : 删除文件会提示,输入以y开头都会被删除,其他都不会被删除。

​ -r: 递归,先进入最里的一层,然后从里向外删除

​ rm -r test1:删除文件夹 test1,但是会提示。

​ -f: force,强制

​ rm a.txt -f : 强制删除文件 a.txt, 并且不提示。

​ rm -rf test1 : 强制删除文件夹 test1不提示

2.32 which和find查找命令

​ which:通过which命令,查看所使用的一系列命令的程序文件放在那里(which cd)。

​ find:

​ 【按文件名查找文件语法】:find 起始路径 -name “被查找文件名”

​ 可以搭配通配符*进行模糊搜索

​ 【按文件大小查找文件语法】:find 起始路径 -size | -n[KMG]

​ 示例:查找小于10KB的文件:find / -size -10k

​ 查找大于100MB的文件:find / -size +100M

2.33 grep ,wc和管道|

​ grep关键字过滤:通过grep命令,从文件中通过关键字过滤文件行

​ 语法:grep [-n] 关键字 关键路径

​ -n,可选项,表示在结果中显示匹配的行的行号

​ grep -ir hadoop /root:不区分大小写。

​ wc:通过wc命令统计文件的行数,单词数量等

​ 语法:wc [-c -m -l -w ] 文件路径(输入)

​ -c:统计bytes数量

​ -m:统计字符数量

​ -l:统计行数

​ -w:统计单词数量

​ 管道符|:将管道符左边命令的结果,作为右边命令的输入

​ 管道符可以嵌套。

2.34 echo,tail和重定向符

​ echo:在命令行输出指定内容,类似编程语言的print

​ 语法:echo “输出的内容”/输出的内容

​ 反引号’ ‘:被它包围的内容会被作为命令去执行而不是普通字符。

​ 重定向符:

​ >:将左侧命令的结果,覆盖写入到符号右侧指定的文件中

​ >>:将左侧命令的结果,追加写入符号右侧指定的文件中

​ tail:可以查看文件尾部内容,跟踪文件的最新更改(从后向前看)

​ 语法:tail [-f -num] Linux路径

​ Linux路径,表示被跟踪的文件路径

​ -f:表示持续跟踪,程序一直运行(ctrl+c终止运行)

​ -num:表示,查看尾部多少行,不填写默认10行(-5)

2.35 vi编辑器

​ 命令模式:vi a.txt回车进入命令模式。

​ 编辑模式: 输入i,o,O,a,s都可以从命令模式进入编辑模式,输入esc进入命令模式。

​ 保持退出: 输入:进入末行模式,再输入wq保存退出。

2.Linux权限管控

3.1 认知root用户

​ 在Linux系统中,root(超级管理员)拥有系统的最大操作权限,而普通用户在许多地方的权限是受限的。

​ 普通用户的权限,一般在器HOME目录内是不受限的,一旦出了HOME目录,大多数地方,普通用户仅有只读和执行的 权限,无修改权限。

​ 切换用户的命令语法:su [-] [用户名] (su:switch User)

​ - 符号是可选的,表示是否在切换用户后加载环境变量,建议带上

​ 用户名:表示要切换的用户,用户名也可以省略,省略表示切换到root。

​ 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d。

​ 不建议长期使用root用户,避免错误操作带来的系统损伤,可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:sudo 其他命令

​ 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权

​ 但是并不是所以的用户,抖音权力使用sudo,我们需要为普通用户配置sudo认证。

为普通用户配置sudo认证

​ 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

​ 在文件的最后添加

1
2
3
itheima   ALL=(ALL)         NOPASSWD: ALL
#其中最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码
#no pass word

​ 最后通过wq保存

​ 切换回普通用户

1
2
3
4
[itheima@localhost  ~]$ sudo  ls  /root
anaconda-ks.cfg original -ks.cfg
[itheima@localhost ~]$ sudo mkdir /test
#执行的命令均以root运行

3.2 用户 用户组

​ Linux系统中可以配置多个用户,也可以配置多个 用户组,并且用户可以加入多个用户组中。

用户组管理

1
2
3
4
5
#以下命令需root用户执行
##创建用户组
groupadd 用户组名
##删除用户组
groupdel 用户组名

用户管理

1
2
3
4
5
6
7
8
9
10
11
12
13
#以下命令需root用户执行
##创建用户
useradd [-g -d] 用户名
-g:指定用户的组,不指定-g会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
-d:指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
##删除用户
userdel [-r] 用户名
-r:删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
##查看用户所属组
id [用户名]
用户名:被查看的用户,如果不提供则查看自身
##修改用户所属组
usermod -aG 用户组 用户名,将指定用户加入指定用户组

​ getent: 查看当前系统中有哪些用户(语法:getent passwd)

​ 查看当前系统中有那些用户组(语法:getent group)

3.3 查看权限管控信息

r w x 针对文件 针对文件夹
r 可以查看文件内容 可以查看文件夹内容,如ls命令
w 可以修改此文件 可以在文件夹内创建删除改名等操作
x 可以将文件作为程序执行 可以更改工作目录到此文件夹,即cd进入

3.4 修改权限控制chmod

​ 使用chmod命令,修改文件,文件夹的权限信息。

​ 注意,只有文件,文件夹的所属用户或者root用户可以修改

​ 语法:chmod [-R] 权限 文件或文件夹

​ -R:对文件夹内的全部内容应用统一的操作

​ 示例:

1
2
3
chmod u=rwx,g=rx,o=x hello.txt #将文件权限修改为:rwx r-x --x
#其中:u表示user所属用户权限,g表示group组权限,o表示other其他权限
chmod -R u=rwx,g=rx,o=x test #将文件夹test以及文件夹内前部内容权限设置 为:rwxr-x--x

​ 权限的数字符号:数字的细节如下:r记为5,w记为2,x记为1

​ 0:无任何权限,即—-

​ 1:仅有x权限,即—x

​ 2: 仅有w权限,即-w-

​ 3: 有w和x权限,即-wx

​ 4: 仅有r权限, 即r—

​ 5: 仅有r和x权限,即r-x

​ 6: 仅有r和w权限,即rw-

​ 7: 有全部权限,即rwx

3.5 修改权限控制chown

​ 3.51 掌握使用chown修改所属用户,用户组

​ 普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行。

​ 语法:chown [-R] [用户] [ : ] [用户组] 文件或文件夹。

​ -R:同chmod,对文件夹内部内容应用相同规则

​ 用户:修改所属用户

​ 选项:用户组,修改所属用户组

​ :用于分隔用户和用户组

示例:

1
2
3
4
chown root hello.txt,将hello.txt所属用户修改为root
chown :root hello.txt,将hello.txt所属用户组修改为root
chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

4.Linux实用操作

4.1 Linux实用小技巧

​ ctrl+c:强制停止

​ ctrl+d:退出账户的登陆或者退出某些特定程序的专属页面。

​ history:历史命令搜索

​ ctrl+a,命令跳到开头

​ ctrl+e,命令跳到结尾

​ ctrl+键盘左键,向左跳一个单词

​ ctrl+键盘右键,向右跳一个单词

​ ctrl+l:可以清空终端内容,或者clear命令得到同样得效果

4.2 软件安装

​ 1.掌握使用yum为Centos系统安装软件

​ yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。

1
2
3
4
5
6
语法 yum [-y]  [install | remove | search] 软件名称
# -y,自动确认,无需手动确认安装或卸载过程
# install:安装
# remove:卸载
# search:搜索
yum命令需要联网和root权限

​ 安装wget程序(从网络上下载程序)

1
2
3
4
5
6
#通过yum命令安装wget程序
yum -y install wget
#通过yum命令卸载wget程序
yum -y remove wget
#通过yum命令搜索是否wget程序
yum -y search wget

​ 2.掌握使用apt为Ubuntu安装软件

1
2
3
4
5
6
7
语法:apt [-y] [install | remove | search] 软件名称
#通过yum命令安装wget程序
apt -y install wget
#通过yum命令卸载wget程序
apt -y remove wget
#通过yum命令搜索是否wget程序
apt -y search wget

4.3 systemctl命令

Linux系统很多软件均支持使用systemctl命令控制,能够被systemctl管理的软件,一般也称为:服务

系统内置的服务有:

​ NetworkManager,主网络服务

​ network:副网络服务

​ firewalld:防火墙服务

​ sshd,ssh服务(FinalShell远程登陆Linux使用的就算这个服务)

1
语法:systemctl start | stop | status | enable | disable 服务名

部分第三方软件安装后也可以用systemctl进行控制

1
2
yum install -y ntp,安装ntp软件
#可以通过ntpd服务器,配合systemctl进行控制
1
2
yum install -y heepd,安装apache服务器软件
#可以通过httpd服务器名,配合systemctl进行控制

4.4 软连接

​ 使用ln命令创建软链接,类似Windows系统中的快捷方式们可以将文件,文件夹链接到其它位置

​ 语法: ln -s 参数1 参数2 (-s选项 ,创建软连接;参数1,被链接的文件或文件夹;参数2,要链接的目的地)

​ 实例:ln -s /etc/yum.conf ~/yum.conf

​ ln -s /etc/yum ~/yum

4.5 日期和时区

​ date命令:可以在命令行中查看系统时间

​ 语法:date [-d] [+格式化字符串]

​ -d按照给定的字符串显示日期,一般用于日期计算

1
2
3
[root@node1 ~]# date
2024年 09月 22日 星期日 10:16:00 CST
#不符合中国人阅读日期的习惯
1
2
3
4
[root@node1 ~]# date +%Y-%m-%d
2024-09-22
[root@node1 ~]# date +"%Y-%m-%d %H:%M:%S"
2024-09-22 10:22:25

​ date命令进行日期加减

1
2
[root@node1 ~]# date -d "+1 day" +%Y-%m-%d
2024-09-23 #显示加一天(+,-,day,month,year)

​ 修改Linux时区:

​ 修改时区需要使用root权限,修改时区为东八区

1
2
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1
2
3
4
[root@node1 ~]# rm -rf /etc/localtime
[root@node1 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@node1 ~]# date
2024年 09月 22日 星期日 11:23:43 CST

​ ntp程序:自动校准系统时间

​ 安装ntp:yum -y install ntp

​ 启动并设置开机自启:

​ systemctl start ntpd

​ systemctl enable ntpd

​ 当ntpd启动后会定期的帮助我们联网校准系统时间

​ 也可以手动校准(需要root权限):ntpdate -u ntp.aliyun.com

​ 通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准

4.6 IP地址&主机名

​ IP地址:每台联网的电脑都会有一个地址,可以通过ifconfig,查看本机的。

​ 主机名:每一台电脑除了对外联络地址(IP地址)以外,还可以有自己的主机名

​ hostnamectl set-hostname 新的主机名:修改主机名

​ 域名解析:

​ 配置主机名和ip的映射关系:

​ 以管理员身份打开记事本,打开找到hosts,编写保持映射关系。

​ 虚拟机配置固定IP

​ 为什么需要固定IP ?

​ 以前使用的Linux操作系统通过DHCP服务获取的IP地址会频繁变更,不利于远程操作和私人本地的虚拟机IP地址和主机名映射。

​ 1.在VMware Workstation中配置IP地址网关和网段(IP地址的范围)

​ 2.在Linux系统中手动修改配置文件,固定IP

1
https://www.bilibili.com/video/BV1n84y1i7td?p=35&spm_id_from=pageDriver&vd_source=d8733037a2c6216f5b8db97d9c49da5f

4.7 网络传输

4.7.1 下载和网络请求

使用ping命令,检查指定的网络服务器是否是可联通的

语法:ping [-c num] ip或主机名

wget命令:非交互式的文件下载器,可以在命令行内下载网络文件

语法:wget [-b] url

-b:可选,后台下载,会将日志写入到当前工作目录的wget-log文件

curl命令:类似于浏览器打开网页(发起网络请求&下载文件[-O])

4.7.2 端口

物理端口:

虚拟端口:计算机内程序间的相互查找就需要端口来解决,IP地址只能锁定计算机。

查看端口占用情况

语法 :nmap 被查看的IP地址端口的占用情况,

1
2
3
4
5
6
7
8
9
10
11
[root@node1 ~]# yum install nmap #安装nmap
[root@node1 ~]# nmap 127.0.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2024-09-22 20:04 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind

netstat命令:查看指定端口的占用情况

语法:netstat -anp | grep 端口号,安装netstat: yum -y install net-tools

4.8 进程管理

​ 操作系统中运行的程序会被一个独立的进程ID标记,就算进程。

查看进程:ps [-e -f]

​ -e:显示出全部的进程

​ -f:以完全格式化的形式展示信息

​ 一般来说ps -ef 列出全部进程的去全部信息,可以配合管道符,gerp过滤一下。

关闭进程:kill [-9] 进程ID,-9表示强制关闭,不使用-9只是发送关闭信号,不保证关闭。

4.9 主机状态

​ 查看系统资源占用:

​ 可以通过top命令查看CPU,内存使用情况,类时Windows的任务管理器。

​ 语法:直接输入top即可,按ctrl+c/q退出。

磁盘监控:使用df命令,可以查看硬盘的使用情况

​ 语法:df [-h] -h,以更加人性的单位显示

​ 使用iostat查看CPU,磁盘的相关信息;语法:iostat [-x] [num1] [num2] ,-x可以显示更多信息,num1秒刷新一次刷新num2次。

网络监控:sar命令查看网络的相关统计

​ 语法: sar -n DEV num1 num2 ,-n代表查看网络,DEV表示查看网络接口,num同上。

4.10 环境变量

环境变量PATH:

​ 在Linux系统中执行env命令即可查到环境变量。

​ 无论在哪一个目录都能准确的执行/usr/bin/cd这个程序,就是因为PATH记录了系统执行任何命令的搜索路径

1
2
[root@node1 ~]# env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

$符号:被用于取”变量”的值

​ 环境变量记录中的信息,除了给操作系统自己使用外,如果我们想要取用,可以通过$符号来取,具体语法:$环境变量名

通过echo语句输出:

1
2
[root@node1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

当和其他内容混合在一起,通过{}来标注取得变量是谁

1
2
[root@node1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

自行设置环境变量:

​ 临时设置:语法:export 变量名=变量值

​ 永久生效:针对当前用户生效,配置在当前用户得:~/.bashrc文件中

​ 针对所有用户生效,配置在系统得:/etc/profile文件中

​ 并通过语法:source 配置文件,进行立刻生效,或重新登陆FinalShell生效。

自定义环境变量PATH:

​ 环境变量PATH这个项目里面记录了系统执行命令得搜索路径,这些搜索路径我们可以自行添加到PATH中去

​ 测试:在当前HOME目录内创建文件夹,myenv,在文件夹内创建文件mkhaha

​ 通过vim编辑器,在mkhaha文件内填入:echo hahaha

​ 完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行

​ 文件想要执行需要程序执行权限X: chmod 755

​ 执行文件: ./mkhahaha

​ 修改PATH的值

​ 临时修改PATH:export PATH = $PATH:/home/itheima/myenv,再次执行mkhaha,无论到哪里都能执行。

​ 或将export PATH=$PATH :/home/itheima/mkenv填入用户环境变量文件或系统环境变量文件中去。

4.11 Linux文件的上传和下载

​ 1.掌握通过FinalShell在Linux系统中进行上传和下载

​ 2.掌握rz,sz命令

​ 除了通过FinalShell的下方窗体进行文件的传输以外,还可以通过rz,sz命令进行文件传输。

​ rz,sz命令需要安装,可以通过:yum -y install lrzsz,即可安装。

​ rz命令,进行上传,语法:直接输入rz即可,弹出框

​ sz命令,进行下载,语法:sz 要下载的文件

​ 文件会自动下载到桌面的fsdownload文件夹中。

4.12 压缩和解压

​ 1.掌握使用tar命令压缩或解压tar或gzip文件

​ .tar:简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装。

​ .gz:也常见为.tar.gz,.gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积。

​ 针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作

​ 语法:tar [-c -v -x -f -z -C] 参数1 参数2 ….参数N

​ -c,创建压缩文件,用于压缩模式

​ -v,显示压缩,解压过程,用于查看进度

​ -x,解压模式

​ -f,要创建的文件,或要解压的文件,-f选项必须在所以选项中位置处于最后一个

​ -z,gzip模式,不使用-z就算普通的tarball格式(建议放开头)

​ -C,选择解压的目的地,用于解压模式 (单独使用,和解压所需的其他参数分开)

​ 常见压缩组合:

​ tar -cvf test.tar 1.txt 2.txt 3.txt:将1.txt 2.txt 3.txt压缩到test.tar文件内

​ tar -zcvf test.tar.gz 1.txt 2.txt 3.txt:将 1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式。

​ 常见解压组合:

​ tar -xvf test.tar :解压test.tar,将文件压缩至当前目录

​ tar -xvf test.tar -C /home/itheima :解压test.tar,将文件压缩至指定目录

​ tar -zxvf test.tar.gz -C /home/itheima:以GZip模式解压test.tar.gz,将文件解压至指定目录

​ 2.掌握使用zip,unzip,命令压缩或解压zip文件

​ 可以使用zip命令,压缩文件为zip压缩包

​ 语法:zip [-r] 参数1,参数2……参数N

​ -r,被压缩的包含文件夹的时候需要使用到-r

​ 示例:

​ zip test.zip a.txt b.txt c.txt:将a.txt b.txt c.txt压缩到test.zip文件内

​ zip -r test.zip test itheima a.txt:将test,itheima两个文件夹和a.txt文件,压缩到test.zip文件内

​ 可以使用unzip命令,可以方便的解压zip压缩包

​ 语法:unzip [-d] 参数

​ -d,指定要解压去的位置,同tar的-C选项

​ 参数,被解压的zip压缩包文件

​ 示例:

​ unzip test.zip,将test.zip解压到当前目录。

​ unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内。

5.实战软件部署

5.1 MySQL数据库管理系统安装部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
MySQL5.7版本在Centos系统安装

1.配置yum仓库
#安装操作需要root权限
# 1.更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 2.安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
2.yum安装Mysql
yum -y install mysql-community-server
3.安装完成后,启动MySql并配置开机自启动
systemctl start mysqld #启动
systemctl enable mysqld #开机自启动
##MySql安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理
4.主要配置管理员用户root的密码以及配置允许远程登陆的权限
获取MySQL的初始密码:cat /var/log/mysqld.log | grep "temporary password"
登陆MySQL数据库系统:mysql -uroot -p
修改root用户密码:(在mysql控制台内执行)ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' --密码需要大于8位,有大写字母,特殊字符,不能是连续的简单语句。
配置root的简单密码:
set global validate_password_policy=LOW;#密码安全级别低
set global validate_password_length=6;#密码长度最低6位即可
ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';#非正式使用,仅限学习时
配置root的远程登陆[拓展]:
#授权root远程登陆
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;
#IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
#密码表示给远程登陆独立设置密码,和本地登陆的密码可以不同
#刷新权限,生效
flush privileges;
5.退出MySql控制台页面
exit
6.检查端口
#MySQL默认绑定了3306端口,可以通过端口占用检查Mysql的网络状态
netstat -anp | grep 3306
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
MySQL8.0版本在Centos系统安装
1.配置yum仓库
#安装操作需要root权限
# 1.更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 2.安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
2.yum安装Mysql
yum -y install mysql-community-server
3.安装完成后,启动MySql并配置开机自启动
systemctl start mysqld #启动
systemctl enable mysqld #开机自启动
systemctl status mysqld #查看允许状态
##MySql安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理
允许root远程登陆,并设置远程登陆密码
#第一次设置root远程登陆,并设置远程登陆密码
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#后续修改密码使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

1
2
3
4
5
6
7
8
9
10
11
12
MySQL5.7版本在Ubuntu(WSL环境)系统安装

#安装操作需要root权限
1.通过 sudo su -,切换到root用户;或者再每一个命令前,加上sudo,用来零时提升权限
安装--下载apt
1.下载apt仓库文件,wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
2.配置apt仓库 dpkg -i mysql-apt-config_0.8.12-1_all.deb 弹出框中选择:ubuntu bianic
3.更新apt仓库的信息
#首先导入仓库的密钥信息
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
#更新仓库信息
apt update

1
2
3
4
5
6
7
8
9
10
11
12
13
MySQL8.0版本在Ubuntu(WSL环境)系统安装(不全)
#安装操作需要root权限
1.通过 sudo su -,切换到root用户;或者再每一个命令前,加上sudo,用来零时提升权限
安装
1.如果已经安装过MySql5.7版本,需要卸载仓库信息
#卸载5.7版本
apt remove -y mysql-client=5.7* mysql-community-server=5.7*
#卸载5.7的仓库信息
dpkg -l | grep mysql | awk '{print $2}' | xargs dpkg -P
2.更新apt仓库信息
apt update
3.安装mysql
apt install -y mysql-server

​ Tomcat安装部署

​ Tomcat是一个WEB应用程序的托管平台,可以让用户编写WEB应用程序,被Tomcat所托管,并提供网站服务。即让用户开发的WEB应用程序,变成可以被访问的网页。

安装:

​ 1.安装JDK环境

​ 下载JDK软件

​ 2.解压安装Tomcat

6.脚本&自动化

7.项目实战

8.云平台技术

9.问题汇总和解决方案

9.1 解决切换用户出现bash-4.2$问题

问题描述:linux中创建了一个xhh用户,然后使用su命令切换用户后,终端提示符显示成“bash-4.2$”而不是[root@localhost xhh]#,导致ll等命令无法执行。

1
2
[root@localhost /] su itheima
bash -4.2$

原因分析:没有在home目录下创建对应的目录导致。

解决方案:使用root用户登录,再home目录中创建用户对应的文件夹,mkdir /home/user,这里的user是用户的名字,然后执行如下两个命令:

​ 执行成功后,再次使用su命令切换用户,发现一切正常。

9.2 使用yum命令时的问题(Cannot find a valid baseurl for repo: base/7/x86_64)

1
2
3
4
5
# 第一步
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# 第二步
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
# 鸣谢:https://blog.csdn.net/kitesxian/article/details/142356833

9.3 Linux解压并部署Tomcat

1
2
3
4
5
6
[tomcat@node1 ~]$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
--2024-09-23 18:59:24-- https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 404 Not Found
2024-09-23 18:59:24 错误 404:Not Found。

上官网复制连接放进去,试试保准行。

9.4 登录rabbitMQ管理界面时浏览器显示要求进行身份验证,与此站点连接不安全解决办法

鸣谢:登录rabbitMQ管理界面时浏览器显示要求进行身份验证,与此站点连接不安全解决办法_登录以访问此站点 要求进行身份验证-CSDN博客