57.Linux

node

Linux教程

linux是操作系统。一般来讲,我们的应用程序完成开发之后, 是会把它部署到服务器上的。

windows系统的稳定性不高,linux操作系统的稳定性比windows高。目前来说,国内选择使用linux操作系统来做应用服务器的操作系统。

linux是基于unix的,开放源代码。任何个人或者公司都可以修改linux内核的源代码,实现或者增强自己想要功能。

unix之父:丹尼斯.里奇,肯.汤姆逊

linux之父:林纳斯.托瓦兹

linux是一个性能稳定的多用户网络操作系统。

目前市面上比较知名的发行版:redhat、ubuntu、debian、centos等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MccdSaQF-1640589170422)(linux内核.jpg)]

比较windowslinux
操作界面界面形式统一,快捷键几乎相同。图形界面风格依发布版本不同而不同,可能互不兼容的。
驱动程序驱动程序丰富,版本更新频繁。由志愿者开发,由linux核心开发小组发布,由于linux开源,硬件厂商基于版权考虑并未提供驱动程序。
使用使用比较简单,容易入门。如果是图形界面,使用简单。但如果是文字界面,需要专门的学习才可以使用。
学习易学难精。难入门,入门后想学精,比较容易。
软件商业软件多,且需要购买相应授权。大部分软件可以自由获取,同样功能的软件选择范围小。

Linux安装

安装虚拟机和linux。

虚拟机:vmware

linux:centos7

安装步骤

安装VMware后,在VMware中选择创建虚拟机,选择自定义安装(典型安装有可能失败)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-szr88BDJ-1640589170422)(centos_install_1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5e6ZuBMb-1640589170423)(centos_install_2.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-un35Logq-1640589170423)(centos_install_3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8nEGrAZl-1640589170424)(centos_install_4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HdNqAQs8-1640589170424)(centos_install_5.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k0oesN2K-1640589170425)(centos_install_6.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zKRNhBly-1640589170425)(centos_install_7.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTr7dAFU-1640589170426)(centos_install_8.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jv1nnMpL-1640589170426)(centos_install_9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oCIV5gT2-1640589170426)(centos_install_10.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZik1rDC-1640589170427)(centos_install_11.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7V9vDM7F-1640589170427)(centos_install_12.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Qg8Xw7u-1640589170428)(centos_install_13.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FEmio6qc-1640589170428)(centos_install_14.png)]

centos7启用网卡步骤:

  • cd /etc/sysconfig/network-scripts
  • vi ifcfg-ens33
  • 按i或insert键进入编辑模式
  • 将onboot=no改为onboot=yes
  • 按esc退出编辑模式
  • 输入:wq保存退出
  • 使用systemctl restart network重启网卡
  • 使用ip addr命令查看ip地址

系统目录和分区

目录介绍

bin:

binary的缩写,这个目录存放的是经常使用的命令。

boot:

存放的是启动linux时使用的一些核心文件。

dev:

是device(设备)缩写,存放linux外部设备。

etc

存放所有系统管理的配置文件和子目录。

home

用户的主目录,在linux中,每个用户都会有一个自己的目录,一般该目录名以用户的账号命名。用户对自己的home目录有完全操作权限。

lib:

存放着系统最基本的动态连接共享库,作用类似于windows中的dll文件。

lost+found:

一般来说,该目录都是空的。当系统非法关机时,这里就存放了一些文件。

media:

存放的是一些外接设备。linux系统会自动识别U盘和光驱等设备,当识别后,会将这些设备存放到media目录中。

mnt:

系统提供该目录用于让用户临时挂载别的文件系统,把光驱挂载在mnt目录,我们可以进该目录查看光驱内容。

opt

给主机额外安装软件所摆放的目录。

proc:

这是一个虚拟的目录,它是系统内存的映射。

使用以下命令可以屏蔽主机的ping命令,让别人无法ping你的机器
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

root

系统管理员目录,也称作超级权限者的用户主目录。

sbin:

super user,存放的是系统管理员使用的系统管理程序。

selinux:

redhat/centos所特有的目录,类似于windows的防火墙,是一个安全机制。

srv:

存放着一些服务启动后的需要提取的数据。

sys:

该目录下安装了linux2.6内核中新出现的一个文件系统sysfs。

tmp:

存放临时文件。

usr:

这是一个非常重要的目录,用户的很多应用程序和文件都放在该目录下,类似于windows系统中program files目录。一般会在usr/local下新建一个tmp,再把所有压缩包上传到tmp目录中,当外部资源使用完成后,可以直接删除该目录。

var

这是一个非常重要的目录,存放着一些不断扩充着的东西。我们习惯于将那些经常被修改的目录放到该目录下,包括各种日志文件。

常用命令
ls

显示当前目录下所有子目录及文件。

常用参数:

-a:显示隐藏文件和隐藏目录。在linux中,目录或文件名以.开头是隐藏文件或隐藏目录。

-l:显示文件或目录的详细信息。ll命令与ls -l等效。

linux的命令中,参数个数可以是0到多个。

cd

进入某个目录。

cd 路径

路径:相对路径和绝对路径。

.    当前目录
..   上一级目录

相对路径不能以/开头,因为以/开头是绝对路径的表示方式。

相对路径从当前目录开始查找,绝对路径从根目录开始查找。

mkdir

创建空目录。

-p:在创建过程中,如果路径中的某一级目录缺失,会自动进行创建。

如果不使用-p参数,创建时如果路径中缺失了某一级目录,创建失败。

touch

创建空文件。

vi

进行文件编辑。

vi:类似于普通文本编辑。

vim:类似于高级文档编辑器,自带颜色。

文件编辑的步骤:

1、进入文件编辑界面时,按insert或i进入可编辑状态;

2、编辑文件内容结束后,按esc退出可编辑状态;

3、退出文件编辑(有3种方式可退出)

没有对文件进行任何修改时,可以使用:q退出

对文件进行了修改,但不想保存该修改时,可使用:q!强制退出

对文件进行了修改,并要保存修改后的状态,可使用:wq保存退出

使用vi/vim进行文件编辑时,如果该文件不存在,会自动创建空文件以供使用。

cat

查看文件内容。

cat 文件1 文件2 >> 文件3:将文件1和文件2的内容联合起来放入到文件3中。
head [-n]

查看文件的前n行内容。如果不加参数n,默认查看前10行内容。

tail [-n]

查看文件的后n行内容。如果不加参数n,默认查看后10行内容。

tail [-f]

动态查看文件的后n行内容。

less

分页查看文件内容。j ->向上 k->向下

ctrl+c

不是复制的意思,而是中断某个正在进行的操作。

echo

输出内容并向文件中添加。

echo '内容' >> 文件名称
cp [-r]

复制文件或目录。

复制文件:

cp 要复制的文件 想要粘贴的路径/粘贴后文件的名称

注意:复制文件完成在粘贴时,可以修改文件名称(这不是对原文件进行重命名操作,是复制文件)

复制目录:

cp -r 要复制的目录 想要粘贴的路径/粘贴后目录的名称
mv

移动文件或目录。mv命令移动目录时,不需要-r参数。

可使用该命令完成目录或文件的重命名。

rm [-rf]

删除文件或目录。

删除文件:

rm 文件名

-f:直接执行删除操作,用户无需再次确认是否删除。

-r:操作的是目录时,需要使用此参数。

注意:删除操作需谨慎,不要直接进行删除操作,如果要删除,应该先备份再删除。

ip addr

查看IP。

clear

清屏。

df

查看磁盘可用空间及空间节点信息。

free

查看内存

reboot

重启虚拟机。

shutdown/halt

关机。

shutdown -h 时间(分钟)    多久之后关机
halt     直接关机
ln [-s]

创建软链接,类似于windows系统中创建快捷方式。

不跟参数是创建硬链接

tar

解压。

tar -zxvf 文件名

压缩

tar -zcvf 文件名 被压缩文件

常用参数:zxvf

z:先解压gzip格式文件

x:解包

v:显示解压详细信息

f:使用文件,紧跟f参数后一定是空格加文件,也就是说,f是tar命令的最后一个参数

c : 建立压缩档案

find

find 路径 方式 表达式

-name

find 路径 -name “java”

? 一个字符

* 任意多个字符

[] 任何一个 [H|d]* 以 H或者d开头的文件

  • [a-z] 小写字符
  • [A-Z] 大写字母
  • [a-Z] 大小写字母
  • [0-9]数字
find . -name "[a|A].*"
find / -name "boot.*"

-type

find 路径 -type 文件类型符号

  1. f:普通文件,如文本文件,可执行文件
  2. d:目录
  3. l:软链接文件
  4. c:字符设备,如终端,磁带机等
  5. b:块设备,如光盘,硬盘等
ps

查看进程

ps -ef | grep tomcat | grep -v grep    查看tomcat进程号,排除grep自身产生的进程号
kill

杀死进程

kill -9 进程编号
service(systemctl)

系统服务

 service   服务名    start|stop|restart|status
 
 systemctl  服务名  start | stop | restart |status(查看状态)

跟权限相关的命令

linux中的用户:所有者(u-user),所属组(g-group),其他用户(o-other)

所有者是文件或者目录的创建者。

- — — —

- 表示文件的类型,是目录还是文件,还是其他类型的。

第一个—表示所有者u,第二个—表示所属组,第三个—表示其他用户。

‘r’:读权限

‘w’:写权限

‘x’:执行权限

‘-’:没有权限

chmod

授权。

+表示增加权限

-表示减少权限

=表示指定权限

在实际应用中,权限使用数字进行描述。

使用3个数字(0-7)来描述目录或文件的当前权限。 chmod 000 tmp chmod 777 tmp

第一个数字表示所有者的权限;

第二个数字表示所属组的权限;

第三个数据表示其他用户的权限。

‘r’:4

‘w’:2

‘x’:1

‘-’:0

授权时,目录和文件是有区别的。

对文件而言:

r表示可以对文件进行读取:cat\head\tail\tailf

w表示可以对文件进行修改:vi/vim

x表示当前文件可以被执行,一般来说,只有scripts(脚本)和command(命令)是可以执行的。

对目录而言:

r表示可以访问当前目录:cd

w表示可以对当前目录中的子目录或文件进行创建和删除操作。touch\mkdir\rm

chmod 指定的权限 指定的目录或文件
chmod [[u|g|o][+|-|=][r|w|x|-] | 3个0-7的数字] 指定的目录或文件
含义为将指定的目录或文件的权限修改为指定的权限。注意:只有目录或文件的所有者和root用户可执行此操作。
chown

修改文件或目录的所有者。

chown 指定的用户 指定的目录或文件
含义为将指定的目录或文件的所有者修改为指定的用户。注意:只有root用户可执行此操作。
groupadd

创建一个新的用户组。

chgrp

修改文件或目录所属的用户组。

chgrp 指定的用户组 指定的目录或文件
含义为将指定的目录或文件的所属用户组修改为指定的用户组。注意:只有root用户可执行此操作。
useradd

创建新用户。

useradd 用户名
passwd

修改用户密码。

passwd 用户
id

查看用户信息。

id 用户
whoami

查看当前用户。

su

切换用户。root切换到其他,不需要输入密码。其他切换root,需要输入密码。

su 用户名

常用辅助工具

xshell:建立本地与服务器之间的远程连接,从而可以开发人员在本地对远程服务器进行操作。

xftp:文件上传。

安装软件源
yum -y install epel-release

yum -y install 软件名
常用的如下:
vim 文档编辑
wget 远程下载
curl 客户端(client)的URL工具,用来请求 Web 服务器
lrzsz 在linux中可以代替ftp的上传和下载 使用rz命令可实现上传,只适合传输小文件,大文件应使用专业工具实现

安装JDK

步骤1:

下载资源:一定保证本地版本和远程服务器版本保持一致。jdk-11.0.6_linux-x64_bin.tar.gz

下载时应注意:下linux版本的,后缀以.tar.gz结束的。

步骤2:

文件上传。/usr/local/tmp

步骤3:

解压。

[root@localhost tmp]# tar -zxvf jdk-11.0.6_linux-x64_bin.tar.gz 

步骤4:

剪切至/usr/local/jdk。

[root@localhost tmp]# mv jdk-11.0.6 ../jdk

步骤5:

配置环境变量。

[root@localhost local]# vim /etc/profile.d/自定义.sh

增加以下内容:
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
如果javac和java命令不能使用,则需要手动配置CLASSPATH。可用则无需配置。
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

系统级环境变量可以在/etc/profile.d/下面去自定义.sh文件,profile会自动加载

步骤6:

导入环境变量。

[root@localhost local]# source /etc/profile

步骤7:

测试: java -version, javac

yum安装mysql、jdk

一键安装,会将所有该软件需要的依赖也同步进行安装。强烈推荐!!!

#语法
yum -y install 软件名    安装软件:-y表示安装过程中所有询问都为yes 
yum remove 软件名        删除已安装软件
yum update {软件}        更新当前软件版本,如果有新版本的话
yum info {软件}          查看软件信息
yum list 软件名          查询可供安装的软件
yum search 软件名        查询可供安装的软件

yum安装jdk1.8(openjdk)

# 安装前先检查系统中是否已安装jdk,如有,应先删除
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
# 如检测到,可使得以下命令删除原有的jdk
rpm -qa | grep java | xargs rpm -e --nodeps
# 查看可供安装的1.8版本
yum list java-1.8*
# 安装jdk
yum -y install java-1.8.0-openjdk*
# 验证
java -version

注意:使用yum安装openjdk,无需配置环境变量。

yum安装mysql5.7

# 1 下载mysql57
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 2 安装rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
# 3 安装mysql
yum -y install mysql-community-server
# 4 启动mysql服务
systemctl start  mysqld.service
systemctl status mysqld.service
# 5 获取mysql安装时生成的随机密码
grep "password" /var/log/mysqld.log
# 6 登录mysql,注意:如果密码中有特殊字符,需要在特殊字符前加\进行转译
mysql -uroot -p密码
# 7 在修改密码前,关闭mysql密码验证规范,避免过于简单的密码设置失败
set global validate_password_policy=0;
set global validate_password_length=1;
# 8 设置密码,修改用户以提供远程访问
set password for 'root'@'localhost' = 'root';
rename user 'root'@'localhost' to 'root'@'%';
# 9 放行3306端口
firewall-cmd --add-port=3306/tcp --zone=public --permanent
firewall-cmd --reload
#10 防止自动更新,删除下载的mysql源
#yum -y remove mysql57-community-release-el7-10.noarch

部署Springboot项目

  1. 再windows上面通过maven打包自己的项目,再打包之前需要设置你的项目的主函数类的地址

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.woniu.TaskDemoApplication</mainClass>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    如果该项目引入你自己的其他maven项目(非web)包,需要先把引入的项目安装到仓库且不要设置boot的编译插件

    mvn package -DskipTests
    
  2. 打包完成之后把项目的target文件里面的xxxx.jar传到linux操作系统里面

  3. 通过命令来再后端运行项目

    nohup java -jar xxxx.jar &

    &符号代表再后台运行

    nohup代表执行日志输出的文件

    可以通过查看nohup文件来看项目的运行日志

  4. 项目运行起来之后是以进程的方式存在的,可以通过查看进程来观察项目是否启动

    ps -aux | grep “项目名关键字” 查看进程

    如果要关闭项目可以通过kill命令杀死进程来进行关闭

    kill -9 进程号

前段项目部署

  1. 安装NodeJs

    1、在官网http://nodejs.cn/download/下载linux版本的二进制压缩包,传送到linux操作系统

    2、在linux操作系统里面解压该包

    ​ tar -xvf node-v16.9.1-linux-x64.tar.xz

    3、解压之后进行环境变量的配置,类似java安装

    ​ 在/etc/profile.d目录下面创建一个node.sh文件,进行配置

    ​ export NODE_HOME=/usr/local/node-v16.9.1-linux-x64
    ​ export PATH= P A T H : PATH: PATH:NODE_HOME/bin

    ​ 让配置生效 source /etc/profile

  2. 通过npm安装淘宝镜像以及vue-cli(跟windows一样)

  3. 在windows上面打包前段项目传送到linux

  4. 由于windows打包的是zip格式的文件,linux不能使用tar去解压,所以要安装解压zip的命令

    yum -y install unzip

  5. 通过unzip解压项目

    unzip xxxx.zip

  6. 解压之后可以直接通过cnpm run serve来进行执行,如果有文件权限问题可以去设置项目文件的执行权限

    node-project/node-test/node_modules/.bin/vue-cli-service该文件就需要设置X权限

    进入到项目的node-project/node-test/node_modules/.bin目录

    执行chmod 744 vue-cli-service

  7. 后端去运行项目

    nohup cnpm run serve &

    如果前段项目是通过window来进行访问,这样的前段链接后端的地址就不应该是localhost,需要在ajax上面设置linux的ip地址

注意:当我们启动了前段以及后端项目之后需要在防火墙上面放行端口,或则关闭防火墙

.tar.xz

3、解压之后进行环境变量的配置,类似java安装

​ 在/etc/profile.d目录下面创建一个node.sh文件,进行配置

​ export NODE_HOME=/usr/local/node-v16.9.1-linux-x64
​ export PATH= P A T H : PATH: PATH:NODE_HOME/bin

​ 让配置生效 source /etc/profile

  1. 通过npm安装淘宝镜像以及vue-cli(跟windows一样)

  2. 在windows上面打包前段项目传送到linux

  3. 由于windows打包的是zip格式的文件,linux不能使用tar去解压,所以要安装解压zip的命令

    yum -y install unzip

  4. 通过unzip解压项目

    unzip xxxx.zip

  5. 解压之后可以直接通过cnpm run serve来进行执行,如果有文件权限问题可以去设置项目文件的执行权限

    node-project/node-test/node_modules/.bin/vue-cli-service该文件就需要设置X权限

    进入到项目的node-project/node-test/node_modules/.bin目录

    执行chmod 744 vue-cli-service

  6. 后端去运行项目

    nohup cnpm run serve &

    如果前段项目是通过window来进行访问,这样的前段链接后端的地址就不应该是localhost,需要在ajax上面设置linux的ip地址

注意:当我们启动了前段以及后端项目之后需要在防火墙上面放行端口,或则关闭防火墙

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值