Linux、Linux常用命令、Linux软件安装、Linux项目部署

一. 概述

linux 是一套免费使用和自由传播的操作系统

1. 系统安装

(1) Linux系统分为内核版和发行版

① 内核版:由Linux核心团队开发、维护、免费、开源、负责控制硬件(无法直接使用)

② 发行版:基于Linux内核版进行扩展、由各个Linux厂商开发、维护、有收费版本和免费版本

(2) Linux系统的安装方式

① 物理机安装:直接将操作系统安装到服务器硬件上

② 虚拟机安装:通过虚拟机软件安装

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统(如 VmWare WorkStation、VirtualBox、VMLite WorkStation)

(3) VmWare WorkStation安装

官网:VMware by Broadcom - Cloud Computing for the Enterprise

官网下载巨慢,没下载成功,随缘吧,从别处找了个安装包

通过网盘分享的文件:虚拟机 链接: https://pan.baidu.com/s/1GRieNRDKDeJMmM8OWDRR0g?pwd=ndep 提取码: ndep

(4) 虚拟机网络配置

安装完毕之后,需要配置网络,才可以在Windows系统上连接虚拟机上的Linux系统

(5) 挂在镜像

2. 远程连接

(1) 常用的SSH(Secure Shell,安全外壳协议)远程连接工具:Putty、SecureCRT、Xshell、FinalShell等

(2) FinalShell 下载与安装FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.6.3,更新日期2025.5.21 - FinalShell官网https://www.hostbuf.com/t/988.html

3. 目录介绍

(1) Linux系统中的目录特点: / 是所有目录的顶点;目录结构像一颗倒挂的树

二. Linux常用命令

Linux 命令格式: command [-options] [parameter]

① command:命令名

② [-optiobs] : 选项,可以用来对命令进行控制,也可以省略(可选)

③ [parameter]:参数,可以是零个、一个或多个(可选)

使用技巧:

① Tab 键自动补全

② 连续两次Tab键,给出操作提示

③ 使用上下箭头快速调出使用过的命令

④ 使用clear命令或Ctrl+l 快捷键实现清屏

1. 目录操作命令

(1) ls 命令

① 作用: 显示指定目录下的内容

② 语法: ls [-al] [dir]

③ 选项:

-a 显示所有文件及目录( . 开头的隐藏目录也会列出)

-l 除文件名外,同时将文件类型(d 表示目录, - 表示文件)、权限、拥有者、文件大小等详细信息列出 (由于我们使用 ls 命令时经常需要加入-l 选项,所以Linux为ls -l 命令提供了一种简写方式 : ll)

(2) cd 命令

① 作用: 用于切换当前工作目录,即进入指定目录

② 语法: cd [dirName]

③ 说明:

. 表示目前所在的目录

.. 表示目前目录位置的上级目录

~ 表示用户的home目录(当前用户目录)

(3) mkdir 命令

① 作用: 创建目录

② 语法: mkdir [-p] dirName

③ 说明:

-p:确保目录名称存在,不存在则创建,通过此选项可以实现多层目录同时创建

(3) rm 命令

① 作用: 删除文件或者目录

② 语法: rm [-rf] name

③ 说明:

-r: 将目录及目录中所有文件(目录)逐一删除(递归删除)

-f: 无需确认,直接删除

2. 文件操作命令

(1) cat 命令

① 作用: 用于显示文件的所有内容 (适用于一些小文件)

② 语法: cat [-n] fileName

③ 说明:

-n:由1开始对所有输出的行数编号

(2) more 命令

① 作用: 以分页的形式显示文件内容 (适用比较大的文件)

② 语法: more fileName

③ 操作说明

回车键 向下滚动一行

空格键 向下滚动一屏

b 返回上一屏

q 或Ctrl+c 退出more

(3) head 命令

① 作用: 查看文件开头的内容

② 语法:head [-n] fileName

③ 说明: -n 输出文件开头的n行内容

(4) tail 命令

① 作用: 查看文件末尾的内容

② 语法: tail [-nf] fileName

③ 说明:

-n 输出文件末尾的 n 行内容

-f 动态读取文件末尾内容,通常用于日志文件的内容输出

3. 拷贝移动命令

(1) cp 命令

① 作用:用于复制文件或目录

② 语法: cp [-r] source dest

③ 选项: -r:如果复制的目录需要使用此选项,此时将复制该目录下所有的子目录和文件

(2) mv 命令

① 作用:为文件或目录重命名 、或将文件或目录移动到其他位置(第二个参数是已存在的目录执行移动)

② 语法: mv source dest

4. 打包压缩命令

(1) tar 命令

① 作用:对文件进行打包、解包、压缩、解压

② 语法:tar [-zcxvf] fileName [files]

③ 说明:

包文件后缀为.tar表示只是完成了打包,并没有压缩

包文件后缀为.tar.gz表示打包的同时还进行了压缩

④ 选项

-z:z代表gzip,通过gzip命令处理文件,可以对文件压缩或者解压

-c:c代表create,即创建新的包文件

-x:x代表extract,实现从包文件中还原文件【与-c互斥】

-v:v代表verbose,显示命令的执行过程

-f:f代表file,用于指定包文件的名称

|--------------------------------------|--------------------------------------------|
| tar -cvf wyyzs.tar wyyzs | 将wyyzs目录下所有文件打包,打包后的文件名为wyyzs.tar |
| tar -zcvf wyyzs.tar.gz wyyzs | 将wyyzs目录下所有文件打包并压缩,打包后的文件名为wyyzs.tar.gz |
| tar -xvf wyyzs.tar | 将wyyzs.tar文件进行解包,并将解包后的文件放在当前目录 |
| tar -zxvf wyyzs.tar.gz | 将wyyzs.tar.gz文件进行解压,并将解压后的文件放在当前目录 |
| tar -zxvf wyyzs.tar.gz -C /use/local | 将 wyyzs.tar.gz文件进行解压,解压后的文件放在/use/local目录中 |

5. 文本编辑命令

(1) vi / vim 命令

① 作用:vi 命令是Linux系统提供的一个文本编辑功能,可以对问价内容进行编辑,类似于Windows中的记事本

② 语法: vi fileName

③ 说明

vim 是从vi 发展来的功能更强大的文本编辑工具,在编辑文件时可以对文本内容进行着色(更常用)

要使用vim命令,需要自己安装,可以通过 yum install vim 命令安装

(2) vim 命令

① 作用:对文件内容进行编辑,vim其实就是一个文本编辑器

② 语法:vim fileName

|-----------|-------------------------|
| 命令模式指令 | 说明 |
| gg | 定位到文本内容的第一行 |
| G | 定位到文本内容的最后一行 |
| dd | 删除光标所在行的数据 |
| ndd | 删除当前光标所在行及之后n行的数据 |
| u | 撤销操作 |
| i 或 a 或 o | 进入插入模式(三个指令进入后光标所处位置不同) |

|-----------|--------|
| 底行模式命令 | 说明 |
| :wq | 保存并退出 |
| :q! | 不保存退出 |
| :set nu | 显示行号 |
| :set nonu | 取消显示行号 |
| :n | 定位到第n行 |

6. 查找命令

(1) find 命令

① 作用:在指定目录下查找文件

② 语法:find dirName -option fileName ( -option 最常用为-name 根据文件名查找)

③ 例如

find . -name "*.txt" 在当前目录及其子目录下查找.txt结尾的文件

find . -name "*yylj.txt" 在当前目录及其子目录下查找名称为yylj.txt文件

find /wyyzs -name ".txt" 在/wyyzs目录及其子目录下查找.txt结尾的文件

(2) grep 命令

① 作用:从指定文件中查找指定的文本内容

② 语法: grep [-inAB] word fileName

③ 选项

-i: 检索的关键字忽略(ignore) 大小写

-n: 显示关键字所在的行号

-A:输出关键字所在行及之后(After)的几行记录

-B:输出关键字所在行及之前(Before)的几行记录

④ 例如

grep hello HelloWord.java 查找HelloWord.java文件中 hello字符串的位置

grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置

三. Linux软件安装

  1. 二进制发布包安装:软件已经针对具体平台编译打包发布,修改配置即可

  2. rpm安装:软件已经安装redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题

  3. yum安装:一种在线安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题

  4. 源码编译安装:软件以源码工程的形式发布,需要自己编辑打包

1. 安装JDK

(1) 下载Linux版本的jdk

Java Downloads | Oracle 中国

(2) 使用FinalShell自带的上传工具将jdk的二进制发布包上传的Linux

(3) 解压安装包 (tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local)

(4) 配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入以下配置

① export JAVA_HOME=/usr/local/jdk-21.0.9

② export PATH=JAVA_HOME/bin:PATH

(5) 重新加载profile文件,使更改的配置立即生效,命令为 source /etc/profile

(6) 检查安装是否成功,命令为 java -version

2. 安装MySQL

(1) 下载Linux 版本的安装包

MySQL :: Download MySQL Community Server

(2) 卸载Linux系统中自带的mysql/mariadb安装包,否则MySQL将按照失败

① 查找:rpm -qa | grep mariadb

② 卸载:rpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64(查找出来的安装包)

(3) 上传下载的MySQL安装包

(4) 解压安装包

tar -zxvf jdk-21_linux-x64_bin.tar.gz -C 路径

(5) 配置环境变量(编辑/etc/profile,追加内容)

① export MYSQL_HOME=/usr/local/mysql

② export PATH=MYSQL_HOME/bin:PATH

(6) 注册MySQL为系统服务

① cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

② chkconfig --add mysql

(7) 初始化数据库

① 创建用户组 组名为mysql:

groupadd mysql

② 创建一个系统用户 mysql,并归属于用户组mysql:

useradd -r -g mysql -s /bin/false mysql

③ 初始化mysql:

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完毕后,日志中会输出MySQL的root用户的临时密码,一定要记住

(8) 启动服务登录MySQL

① systemctl start mysql

② mysql -uroot -p

(9) 配置MySQL的root用户的密码,授权远程访问

① 修改临时密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

② 授权任何服务器上都可以访问root用户,访问密码为1234:

CREATE USER 'root'@'%' IDENTIFIED BY '1234';

③ 分配权限,可以访问所有数据库中所有表:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

④ 刷新权限

FLUSH PRIVILEGES;

3. Linux防火墙

  1. 查看防火墙状态(systemctl status firewalld 或 firewall-cmd --state)

  2. 关闭防火墙(systemctl stop firewalld)

  3. 开启防火墙(systemctl start firewalld)

  4. 永久关闭防火墙(systemctl disable firewalld) (默认开机自启)

  5. 开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)

6.关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)

  1. 立即生效(firewall-cmd --reload)

  2. 查看开放的端口(firewall-cmd --zone=public --list-ports)

注意:

1、systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
2、firewall-cmd是Linux中专门用于控制防火墙的命令
3、为了保证系统安全,生产服务器的防火墙不建议关闭

4. 安装Ngjnx

(1) 下载nginx安装包
nginx: downloadhttps://nginx.org/en/download.html

(2) 安装nginx运行时需要的依赖:

yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

( 3) 上传nginx的资源包

(4) 解压资源包

(5) 进入解压后的目录,执行命令:

./configure --prefix=/usr/local/nginx

(6) 执行编译nginx的指令: make

(7) 执行安装nginx的指令,安装到上述指定的 /usr/local/nginx 目录: make install

(8) 进入nginx安装目录/usr/local/nginx, 启动nginx服务: sbin/nginx

四. Linux项目部署

1. 前端项目部署

(1) 将前端打包好的静态资源,上传到ngins的html目录中

打包步骤:请看博主的 Vue-打包部署 文章

(2) 配置nginx的配置文件,在 conf/nginx.conf 中配置反向代理服务器及路径重写规则

html 复制代码
#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        client_max_body_size 10m;

        location / {
           root   html;
           index  index.html index.htm;
           try_files $uri $uri/ /index.html;
        }
        
       location ^~ /api/ {
          rewrite ^/api/(.*)$ /$1 break;
           #根据自己的实际地址配置;
          proxy_pass http://localhost:8080;
       }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
           root   html;
        }
   }
}

(3) 在nginx的安装目录中,执行 sbin 目录下的nginx命令启动nginx服务:

sbin/nginx (nginx未启动时执行) 或 sbin/nginx -s reload (nginx已启动时执行)

2. 后端项目部署

(1) 执行maven的父工程中的package生命周期,对项目进行打包【打包之前,先连接上服务器数据库,先测试通过】

(2) 在linux服务器的/usr/local目录下,创建一个目录,将jar包上传到新建的目录下

(3) 运行jar包: java -jar xxxxxx.jar

(4) 上述执行运行jar包后,会占用前台端口,窗口关闭服务也就停了,可以使用nohup指令,后天运行服务,执行指令:

nohup java -jar xxxxxxx.jar &> tilas.log & (后台(&)运行java服务将运行日志重定向(&>)到tilas.log 文件中)

(5) 查看进程: ps -ef | grep xxxx

Linux中的特殊符号:

| : 管道符。将前面命令的输出,作为后面命令的输入。如 ps -ef | grep java

> 与 >> : 重定向符号,将前面的文本内容,输出到后面的文件中(>:覆盖重定向, >> 追加重定向)。 如 echo 'hahahahah' > 1.log

相关推荐
Flash.kkl4 小时前
Linux——进程信号
运维·服务器
苏宸啊5 小时前
Linux权限
linux·运维·服务器
Gofarlic_oms15 小时前
Windchill用户登录与模块访问失败问题排查与许可证诊断
大数据·运维·网络·数据库·人工智能
我是小疯子665 小时前
Python变量赋值陷阱:浅拷贝VS深拷贝
java·服务器·数据库
xqhoj5 小时前
Linux——make、makefile
linux·运维·服务器
文亭湖畔程序猿6 小时前
Debian 12 日常命令 & nano 快捷键速查表
运维·debian
张童瑶6 小时前
Linux 在线安装编译Python3.11
linux·运维·python3.11
ziqibit6 小时前
debian Live with Persistence 持久化U盘的debian系统
运维·debian
Shi_haoliu6 小时前
SolidTime 在 Rocky Linux 9.5 上的完整部署流程
linux·运维·nginx·postgresql·vue·php·laravel
lifejump6 小时前
Pikachu | XXE
服务器·web安全·网络安全·安全性测试