Linux 简述

文章目录

  • 1. 背景
  • 2. Linux 环境搭建
    • 2.1 环境搭建方式
    • 2.2 使用云服务器
    • 2.3 使用终端软件连接到 Linux
  • 3. Linux 常用命令
    • 3.1 ls
    • 3.2 cd
    • 3.3 pwd
    • 3.4 touch
    • 3.5 cat
    • 3.6 echo
    • 3.7 vim
    • 3.8 mkdir
    • 3.9 rm
    • 3.10 mv
    • 3.11 cp
    • 3.12 grep
    • 3.13 ps
    • 3.14 netstat
  • 4. 搭建 Java 部署环境
    • 4.1 jdk
    • 4.2 tomcat
    • 4.3 mysql
  • 5. 部署 Web 项目到 Linux
    • 5.1 数据库建表
    • 5.2 构建项目并打包
    • 5.3 拷贝到 Tomcat 中
    • 5.4 验证

1. 背景

Linux 是市场份额 相当大的操作系统

最开始诞生于 1991,前身是 Unix
贝尔实验室开发了 Unix 操作系统

Unix 火了之后,衍生出很多的分支
其中有一只为 “Minix”,由荷兰的Andrew S. Tanenbaum 教授开发
MINIX 含义为 “小型的UNIX”,源代码开放给大学教学和研究工作

1991 年, 还在读大学的 芬兰人 Linus Benedict Torvalds (1969年12月28日出生, 当时 22 岁) 基于Minix 的启发,开发出了 Linux 的第一个版本

经过这么多年的发展,Linux 已经成为 世界第一大操作系统

2. Linux 环境搭建

2.1 环境搭建方式

主要有四种:

  1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].
  2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]
  3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [暂时不推荐].
  4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器. [墙裂推荐]

2.2 使用云服务器

以腾讯云为例:
打开云服务器
在这里插入图片描述

这个环节我们最重要的是得到三个信息:

  1. 服务器的外网 IP (114.132.49.148)
  2. 服务器的管理员账户 (为 root 或者 ubuntu)
  3. 管理员账户密码(在腾讯云网站上设置的)

2.3 使用终端软件连接到 Linux

这里我们使用的是 XShel

在这里插入图片描述
ubuntu:是用户名
VM-8-2-ubuntu:是主机名

3. Linux 常用命令

ctrl + l 可以清屏
在这里插入图片描述

3.1 ls

ls:list 列出当前目录下都有哪些内容(文件/目录)

直接输入 ls,是查看当前目录的情况

  • ls /
    加上 / 意思就是看看 / 这个目录下的情况
    (/ 称为“根目录”,就是 Windows 上的此电脑,Linux 是没有盘符的)
    在这里插入图片描述
    这些就是 / 目录下包含的内容
    这些都是系统自带的文件和目录

  • ls -l /
    后面是 小写 L 不要写成 大写的 i 或者数字1
    按照列表的方式显示(最常见的功能)
    在这里插入图片描述
    也可以简化成 ll /
    在这里插入图片描述

前面的第一列是文件的权限(当前用户,是否刻度可写可执行)
权限字符串的第一个字母,表示了文件的类型
-普通文件(显示成白色)
d 目录文件(文件夹)(显示成蓝色)
l 连接文件(快捷方式)(显示成浅蓝色)

第二列就是表示文件的拥有者是谁
此处的文件是 root 所拥有的

第三列是文件的大小

第四列是修改时间

3.2 cd

cd:change directory 修改(当前)目录
将当前工作目录改变到指定的目录下

  • cd /
    来到根目录,就相当于点击“此电脑”
    在这里插入图片描述
    第二行的 / 的位置显示的就是你当前所在的目录
    ~ 也称为“home 目录”“用户主目录”
    这个就是用户登录是,默认进入的目录
    在这里插入图片描述
    使用 cd 等命令,需要加上路径的时候,可以使用 tab 来补全路径
    (需要当前输入的内容,是唯一的选项)
    (有多个匹配的目录名字/文件名字,可以按两下 tab 就能列出所有可以补全的选项)

在这里插入图片描述
上述操作,就进入到了一个很深的目录中

3.3 pwd

使用 pwd 可以查看到当前所处的路径的绝对路径
在这里插入图片描述
在Linux 的命令中,但凡涉及到 目录 相关的操作,都是可以支持 绝对路径 和 相对路径的
Linux 上,绝对路径,是以 / 开头的
相对路径,以 . 或者 … 开头的(有的时候 . 可以省略)
在这里插入图片描述
在这里插入图片描述

3.4 touch

touch:创建一个新的文件
在这里插入图片描述

3.5 cat

cat:查看文件内容(把文件内容打印到控制台上)
在这里插入图片描述
由于目前没有内容,所以显示空

输入一个命令,没有任何提示
此时就是“成功”
如果失败,就会告诉你一些报错信息

3.6 echo

echo:打印内容到控制台上
在这里插入图片描述
此处这里的 > 就是“重定向”
在这里插入图片描述
但是重新写入之后,只会存在这一次写入的内容
在这里插入图片描述
使用 >> 就可以保存上一次的

但是这里的 echo + 重定向,只能写一些简单的字符串内容
如果你的需要写的内容很多,就不太方便了,也不方便修改

3.7 vim

vim:这个是 Linux 上自带的一个文本编辑器,使用 vim 就可以更灵活的对文件进行编辑了

虽然和 记事本 的定位差不多,实际上 vim 的使用要复杂很多


  1. 打开文件
    vim 文件名

在这里插入图片描述


  1. 编辑内容
    vim 包含很多快捷键, 快捷键的画风和其他的软件截然不同
    其他很多软件,快捷键都要搭配 ctrl alt 之类的组合键完成

vim 更期望输入单个按键, 就能起到快捷键的效果
vim 引入了“模式"概念

启动 vim 之后,默认处于 normal mode (普通模式),键盘按键,都是快捷键, 而不是输入文本
要想输入文本, 就需要进入 inset mode (插入模式)
进入插入模式的方法, 有很多,最简单的就是 i
在这里插入图片描述


  1. 保存退出

在 xshell 中,按 ctrl + s 是冻结屏幕的意思
有的时候,服务器打印的日志太快了,滚动太快看不清,就可以冻结屏幕
ctrl + q 就能接触冻结

先按 esc,回到普通模式
再按 : 进入命令模式
在这里插入图片描述
此时输入的内推,就是vim 的命令

w:保存
q:退出

3.8 mkdir

mkdir:make directory 创建目录

加 -p 可以创建多级目录
在这里插入图片描述

3.9 rm

rm:remove 删除文件/目录

在这里插入图片描述
有的系统上(centos)输入 rm 删除,会有一个提示,是否确认要删除,输入 y 就是删除,n 就是不删除
在这里插入图片描述
删除目录,不仅仅是删除目录本身,还要删除目录包含的其他目录和文件
需要使用 rm -r 来删除,-r 表示“递归”
在这里插入图片描述
在这里插入图片描述
有的系统上,删除的事后,也会和上面一样,提示你是否要真的删除
如果是删除目录的话,递归过程比较麻烦,每个目录都会提示你要进行确认
就可以使用 rm -rf 的方式直接删除
f 表示“强制删除”不需要进行确认

此处的 rm 其实是一个危险操作!!
一旦删除,数据就没了!!
删除的时候,一定要确保,你删的这个东西确实是不再使用了

  • rm -rf /
    删除此电脑,会把你整个硬盘的数据都给删除掉
    在这里插入图片描述
    在 Linux 中是可以定义变量的
    在这里插入图片描述
    删除 rm $workdir/*
    也是一个通配符
    意思就是要删除指定目录小所有内容
    预期是想删除 /tmp/

    但是一旦代码出现一些以外,导致 workdir 这个变量的定义语句没有被执行到
    没有定义的变量,通过 $ 变量名的方式访问
    不会报错,而是直接返回空字符串 “”
    这样 就等价成了 rm -rf /

3.10 mv

mv:move 移动(剪切,粘贴)
mv 要移动的源 移动的目标

在这里插入图片描述
在这里插入图片描述

也可以移动目录(把目录内部包含的所以内容都进行移动)
在这里插入图片描述
使用 mv 还可以针对文件/目录进行重命名

在这里插入图片描述
在本路径就是重命名的操作了
在这里插入图片描述

3.11 cp

cp:copy 复制(复制,粘贴)
cp 要复制的源 要复制的目标
在这里插入图片描述
也可以拷贝普通文件,也可以拷贝目录
拷贝目录的时候,和 rm 类似,都是要加上 -r 选项,表示要递归的拷贝目录里的内容
在这里插入图片描述
在这里插入图片描述

3.12 grep

grep:字符串匹配/查找

比如,想查找某个文件中是否包含某个关键字,这个关键字在第几行,都可以使用 grep 来查看
在这里插入图片描述
加上 -n 选项,就可以显示行号
在这里插入图片描述
grep 不仅仅可以在文件中查找还能搭配其他的命令,完成更复杂的查找操作

3.13 ps

ps:process show 显示进程
显示当前系统上都有哪些进程
在这里插入图片描述
这样只能看到当前会话(终端)对应的进程,非常不安全

很多时候 ps 都会搭配 grep 来使用
比如,查看 mysql 进程的进程 pid
在这里插入图片描述
在这里插入图片描述

| 叫做管道
(把前一个命令的输出,作为有一个命令的输入)

3.14 netstat

netstat:查看网络信息

可以用来查看某个某个端口是否被某个进程使用
也可以查询某个进程使用了哪个端口

主要关注 tcp udp 涉及到的网络信息
在这里插入图片描述

4. 搭建 Java 部署环境

基于 包管理器 进行安装
Linux 会把一些软件包,放到对应的服务器上通过包管理器这样的程序,来把这些软件包给下载安装
ubuntu 系统,包管理器 apt
centos 系统,包管理器 yum

4.1 jdk

这里需要确保是处于 root 用户下(如果不是管理员,需要使用 sudo su 切换到管理员)

  1. 使用 apt 命令查看服务器上有哪些安装包
    apt list | grep jdk
    在这里插入图片描述
  2. 使用 apt 安装软件包
    apt install 软件包名字

在 Linux 命令行中,复制 ctrl + insert,粘贴 shift + insert(Windows 也支持)
在这里插入图片描述

4.2 tomcat

在这里插入图片描述
由于我们使用的是 tomcat 8.5,搭配的是 servlet 3.1
只能手动安装了

由于 tomcat 就是 基于 java 来实现的,java 是跨平台的


  1. 只需要把之前 Windows 上的 tomcat 上传到 Linux 上即可

把要上传的压缩包,往 xshell 上一拖, 就过去了1) 一次只能拖一个文件(打成压缩包)
2)要想能拖上去需要先安装 lrzsz 这样的软件包
ubunt uapt install Irzsz
centos yum install Irzsz
sz 把linux 上的文件传到 Windows
rz 把 windows 上的文件传到 linux 上


  1. 对 zip 压缩包进行解压缩
    ubuntu apt install unzip
    centos yum install unzip

在这里插入图片描述
上面的 .bat 是 Windows 上使用的
下面的 .sh 是 Linux 上使用的


  1. 修改 .sh 文件的可执行权限,让这些 .sh 都可执行

先 cd 到 bin 目录中
chmod +x *.sh
x 表示可执行
*.sh 表示给所有的 .sh 文件都进行修改

执行完这个操作,顺利完成没报错 说明就成功了
此时这些 .sh 文件都 变绿了

在这里插入图片描述


  1. 启动 tomcat

还是 cd 到 bin 目录小
sh startup.sh
在这里插入图片描述


  1. 验证启动是否成功

使用ps查看java进程有没有
使用 netstat 查看 8080 是香被绑定
访问 tomcat 的欢页面
在这里插入图片描述

4.3 mysql

直接通过 apt 来安装 / yum 安装
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这样就成功了
使用 ctrl + d 可以退出控制台

5. 部署 Web 项目到 Linux

5.1 数据库建表

把数据库/数据表都在云服务器上创建好

当把程序放到云服务器上执行,程序访问的就是云服务器上的数据库了
需要确保数据库里面有数据(有表,有库)

把之前代码中的 db.sql 中的内容 复制到 云服务器中的 mysql 客户端中
在这里插入图片描述

5.2 构建项目并打包

打包之前,还需要确认一下 mysql 相关的配置是否需要修改
在这里插入图片描述
把密码置空就可以了
在这里插入图片描述
在这里插入图片描述

5.3 拷贝到 Tomcat 中

将 war 包拷贝到 Tomcat 的 webapps 目录中在这里插入图片描述

在这里插入图片描述
tomcat 对自动针对 war 包进行解压缩
解压缩成功,基本上就是部署成功了

5.4 验证

在浏览器上访问项目的链接
在这里插入图片描述

如果出现错误,在 tomcat 中查找
在这里插入图片描述
etc 目录大部分就是放各种程序的配置文件的
在这里插入图片描述
设置一下密码就可以了
ALTER user ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘’;
在这里插入图片描述

这样就可以访问了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/235458.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发表《Optics Express》玻色量子联合天津大学实现5比特全光量子随机数发生器

2023年11月,北京玻色量子科技有限公司(以下简称“玻色量子”)联合天津大学在学术期刊《Optics Express》上发表了以“5-bit all-optical quantum random number generator based on a time-multiplexed optical parametric oscillator”&…

使用 gitee+sphinx+readthedocs 搭建个人博客

给大家安利如何快速搭建个人博客网站! 前言 这是我本地运行的一个使用sphinx构建的博客服务,这些文章,都是用markdown写的。 一直有个想法,就是把自己写的这些文件,搞成一个博客网站,放到网上&#xff0c…

Qt中QGraphicsView总体架构学习

前沿 前段时间学习了下如何在QGraphicsView架构中绘制刻度尺,主要是与OnPainter中进行比较的,那么今天就来详细讲解下我对QGraphicsView框架的认知吧~ 最近一段时间想学习下,如果我有不正确的,欢迎留言探讨哟~ QGraphicsView架…

kubeSphere DevOps自定义容器环境JDK11

kubeSphere DevOps自定义容器环境JDK11 🍂前言🍂增加JDK11容器环境🍁检查是否成功 🍂不生效的原因排查🍁按步骤执行如下命令 🍂前言 kubeSphere 版本v3.1.1 遇到问题:kubeSphere默认支持容器只有JDK8,目前…

自监督深度学习技术

一、定义 自监督学习(SSL)是机器学习的一种范式,用于处理未标记数据以获取有用的表示,以帮助下游学习任务。SSL方法最显著的特点是它们不需要人类标注的标签,这意味着它的训练完全基于由未标记的数据样本组成的数据集…

【架构】API接口安全防护救命的11招

前言 如何保证接口的安全性? 根据多年的工作经验,给大家介绍一下保证接口安全的一些小技巧,希望对你会有所帮助。 1 参数校验 保证接口安全的第一步,也是最重要的一步,需要对接口的请求参数做校验。 如果我们把接口请求参数的校验做好了,真的可以拦截大部分的无效请求…

深度学习|交叉熵

文章目录 什么是交叉熵如何构造信息量的函数关于 C 1 C_1 C1​参数的选择关于 C 2 C_2 C2​参数的选择 一个系统的熵如何比较两个系统的熵交叉熵在神经网络中的应用参考 什么是交叉熵 熵是用来衡量一个系统的混乱程度,混乱程度也其实代表着整个系统内部的不确定性。…

在微信公众号上怎么实现拼团功能

拼团魅力:微信公众号上的拼团功能如何助力营销 一、引言 在这个数字化时代,微信公众号成为了企业与消费者互动的重要平台。而拼团功能作为微信营销的一大利器,为企业带来了巨大的商业价值。那么,如何在微信公众号上实现拼团功能&…

极盾故事|某车企敏感数据风险监测平台,揭开48个高风险账号的神秘面纱

极盾科技助力某汽车科技公司,构建敏感数据实时风险监测平台,通过用户行为和实体分析系统(UEBA),打通数据和安全桥梁,实现敏感数据流动风险行为监控,半年内共计检测78万条内部员工的应用日志&…

AlexNet论文精读

1:该论文解决了什么问题? 图像分类问题 2:该论文的创新点? 使用了大的深的卷积神经网络进行图像分类;采用了两块GPU进行分布式训练;采用了Relu进行训练加速;采用局部归一化提高模型泛化能力;…

docker 容器添加指定网络地址

docker 容器添加指定网络地址 在搭建halo博客时,准备让 halo、mysql8.1、nginx 三个容器在同一个网段中,并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下: nginx …

Qt/C++摄像头采集/二维码解析/同时采集多路/图片传输/分辨率帧率可调/自动重连

一、前言 本地摄像头的采集可以有多种方式,一般本地摄像头会通过USB的方式连接,在嵌入式上可能大部分是CMOS之类的软带的接口,这些都统称本地摄像头,和网络摄像头最大区别就是一个是通过网络来通信,一个是直接本地通信…

Camunda Rest API

客户端像调用本地方法一样调用引擎中的接口。 https://docs.camunda.org/manual/7.17/reference/rest/ 一&#xff1a;pom.xml <dependency><groupId>org.camunda.community.rest</groupId><artifactId>camunda-platform-7-rest-client-spring-boot-…

通义千问Qwen-72B-Chat基于PAI的低代码微调部署实践

作者&#xff1a;熊兮、求伯、一耘 引言 通义千问-72B&#xff08;Qwen-72B&#xff09;是阿里云研发的通义千问大模型系列的720亿参数规模模型。Qwen-72B的预训练数据类型多样、覆盖广泛&#xff0c;包括大量网络文本、专业书籍、代码等。Qwen-72B-Chat是在Qwen-72B的基础上…

一起玩儿物联网人工智能小车(ESP32)——24. 变量与函数(二)

摘要&#xff1a;本文介绍变量和函数的基本知识 在前面一篇中了解了变量&#xff0c;接着就来了解一下函数。函数是程序中的一个关键概念&#xff0c;它可以简化程序的编写&#xff0c;使代码更加模块化、可复用&#xff0c;提高程序的可读性。其实在之前已经多次遇到函数了&am…

Android AAudio

文章目录 基本概念启用流程基本流程HAL层对接数据流计时模型调试 基本概念 AAudio 是 Android 8.0 版本中引入的一种音频 API。 AAudio 提供了一个低延迟数据路径。在 EXCLUSIVE 模式下&#xff0c;使用该功能可将客户端应用代码直接写入与 ALSA 驱动程序共享的内存映射缓冲区…

Thingsbaord采用redis缓存(自用)

在CentOS系统上&#xff0c;您可以通过以下步骤使用yum安装Redis&#xff1a; 添加EPEL仓库&#xff1a; 首先&#xff0c;需要添加EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;仓库&#xff0c;因为Redis可能不在默认的CentOS仓库中。使用以下命令添加EP…

iOS 应用上架指南:资料填写及提交审核

摘要 本文提供了iOS新站上架资料填写及提交审核的详细指南&#xff0c;包括创建应用、资料填写-综合、资料填写-IOS App和提交审核等步骤。通过本指南&#xff0c;您将了解到如何填写正确的资料&#xff0c;并顺利通过苹果公司的审核。 引言 在开发iOS应用后&#xff0c;将其…

在IntelliJ IDEA上使用通义灵码(TONGYI Lingma)

参考链接&#xff1a; 通义灵码产品介绍_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心 【IDEA如何使用通义灵码&#xff1f;】_idea 通义灵码-CSDN博客 1. 简介 1.1 定义 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提…

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使用…