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)

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

                8. 查看开放的端口(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 中配置反向代理服务器及路径重写规则

 #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

Read more

Flutter 三方库 r_tree 的鸿蒙化适配指南 - 实现极速空间检索与二 freel-dimensional 数据处理的鸿蒙架构实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 r_tree 的鸿蒙化适配指南 - 实现极速空间检索与二 freel-dimensional 数据处理的鸿蒙架构实战 在鸿蒙系统中的地图测绘、大屏可视化以及涉及大量点击坐标检测的复杂场景下,如何在庞大的点位数据中完成毫秒级的空间检索?r_tree 做为工业级的空间索引结构,为 Flutter for OpenHarmony 提供了一套成熟的高效搜索方案。本文将带您深入实战其鸿蒙化适配细节。 前言 什么是 R-tree?它是一种用于处理多维数据的平衡树索引结构,类似于 B-tree。在鸿蒙设备上,当我们需要从数万个电子围栏(Geo-fence)中实时判断当前位置位于哪个区域,或者在高密度的工业看板图中精确捕捉用户的每一个点击操作时,普通的遍历循环将导致严重的 UI 掉帧。r_tree 则是解决这一性能瓶颈的绝佳利器。 一、原理分析 / 概念介绍 1.1 空间索引模型 R-tree

By Ne0inhk

AI大模型实用(一)SpringAI接入deepseek示例

一、SpringAI接入deepseek所需环境 * JDK17+(JDK8无法支持) * SpringBoot 3.x * maven 3.6+ 官网地址 https://docs.spring.io/spring-ai/reference/api/chatclient.html SpringAI接入deepseek方式有很多。 下面演示SpringAI原生方式接入deepseek. 注:Spring AI调用Ollama+DeepSeek 二、pom依赖 1、 SpringBoot修改版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <

By Ne0inhk
Rust异步编程的错误处理艺术

Rust异步编程的错误处理艺术

Rust异步编程的错误处理艺术 一、异步错误的本质与分类 1.1 异步错误与同步错误的区别 💡在Rust同步编程中,错误通常是通过Result<T, E>类型返回的,Err变体包含了错误信息,程序会阻塞线程直到操作完成。而在异步编程中,操作的结果是一个Future<Output = Result<T, E>>,程序会暂停任务直到操作完成,Err变体可能是IO错误、超时错误、取消错误等异步场景特有的错误。 同步错误示例: usestd::fs::File;usestd::io::Read;// 同步读取文件,阻塞线程fnread_file_sync()->Result<String,std::io::Error>{letmut

By Ne0inhk
微服务学习笔记(2)——SpringCloud Nacos

微服务学习笔记(2)——SpringCloud Nacos

🔥我的主页:九转苍翎⭐️个人专栏:《Java SE 》《Java集合框架系统精讲》《MySQL高手之路:从基础到高阶 》《计算机网络 》《Java工程师核心能力体系构建》《RabbitMQ理论与实践》天行健,君子以自强不息。 0.前言 * SpringBoot版本:3.2.5 * SpringCloud版本:2023.0.3 * SpringCloud Alibaba版本:2023.0.1.0 * nacos版本:2.2.3(已免费上传至我的资源) * 项目源码:spring-cloud-blog 1.概述 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置和管理平台。在 Spring Cloud 体系中,

By Ne0inhk