Java零基础——Linux篇

1.【熟悉】认识Linux

1.1 什么是操作系统

在这里插入图片描述

1.2 现实生活中的操作系统

1.2.1 Win10
1.2.2 Mac
1.2.3 Android(Linux)
1.2.4 iOS(Unix)

1.3 操作系统的发展史

1.3.1 Unix
1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑

为了解决数量不够用的问题

1965年左后由贝尔实验室、麻省理工学院 以及 通用电气共同发起了Multics项目,想让大型主机支持300台终端

1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究

1969年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行”游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间 编写出了 Unix操作系统的原型

1970年,美国贝尔实验室的 Ken Thompson,以 BCPL语言 为基础,设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。

因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语言的基础上准备研究一个更好的语言

肯·汤普逊(左)和丹尼斯·里奇(右)

1972年,美国贝尔实验室的 Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言

1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统

1.3.2 Minix
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。

1.3.3 Linux
因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范); 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件;

1.3.4 操作系统的发展
在这里插入图片描述在这里插入图片描述

1.3.5 Minix没有火起来的原因
Minix的创始人说,MINIX 3没有统治世界是源于他在1992年犯下的一个错误,当时他认为BSD必然会一统天下,因为它是一个更稳定和更成熟的系统,其它操作系统难以与之竞争。因此他的MINIX的重心集中在教育上。四名BSD开发者已经成立了一家公司销售BSD系统,他们甚至还有一个有趣的电话号码1-800-ITS-UNIX。然而他们正因为这个电话号码而惹火上身。美国电话电报公司因电话号码而提起诉讼。官司打了三年才解决。在此期间,BSD陷于停滞,而Linux则借此一飞冲天。他的错误在于没有意识官司竟然持续了如此长的时间,以及BSD会因此受到削弱。如果美国电话电报公司没有起诉,Linux永远不会流行起来,BSD将统治世界。

2.【熟悉】Linux版本说明及应用领域

2.1 Linux内核及发行版介绍

2.1.1 Linux内核版本
内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。

Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:

Ø 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。

Ø 开发版:由于要试验各种解决方案,所以变化很快。

内核源码网址:http://www.kernel.org 所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。

2.1.2 Linux发行版本
Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。

排名

2016

2015

1

Linux Mint

Linux Mint

2

Debian

Debian

3

Ubuntu

Ubuntu

4

openSUSE

openSUSE

5

redhat

Fedora

6

Fedora

Mageia

7

Manjaro

Manjaro

8

Mageia

CentOS

9

CentOS

Arch

10

Arch

Elementary

2.1.3 Fedora

2.1.4 Redhat

2.1.5 Ubuntu

2.2 应用领域
2.2.1 个人桌面领域的应用
此领域是传统linux应用最薄弱的环节,传统linux由于界面简单、操作复杂、应用软件少的缺点,一直被windows所压制,但近些年来随着ubuntu、fedora等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,linux在个人桌面领域的占有率在逐渐的提高

典型代表:ubuntu、fedora、suse linux

在Ubuntu中玩QQ

2.2.2 服务器领域
https://www.netcraft.com/

查看要当前主流网站使用的服务器的网上【踩点器】

linux在服务器领域的应用是其重要分支

linux免费、稳定、高效等特点在这里得到了很好的体现,但早期因为维护、运行等原因同样受到了很大的限制,但近些年来linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛

典型代表:

Red Hat公司的AS系列

完全开源的debian系列

suse EnterPrise 11系列等

2.2.3 嵌入式领域
近些年来linux在嵌入式领域的应用得到了飞速的提高

linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高

主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、等都是其应用领域,得到了摩托罗拉、三星、NEC、Google等公司的大力推广

3.【掌握】VMware的安装

3.1 VMware前言

因为我们一般都是用的windows系统,但是想用到linux时就必须先安装一个虚拟机(在这安装的是VMWare WorkStation Pro),然后再到虚拟机里面安装一个linux操作系统镜像,这样就可以使用linux操作系统了。

VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。VMware Workstation允许操作系统(OS)和应用程序(Application)在一台虚拟机内部运行。虚拟机是独立运行主机操作系统的离散环境。在 VMware Workstation 中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机,这一切不会影响你的主机操作和任何操作系统或者其它正在运行的应用程序。

1.1 下载
链接:https://pan.baidu.com/s/1EHF_XMfVe8G2-YfyVkaDLw 密码:b6mq
在这里插入图片描述

下载完成之后

1.2 安装
①双击安装

②安装首页面点击下一步

③接收协议下一步

④选择安装路径【路径自行选择】下一步

⑤去掉检查 下一步

⑥选择创建桌面图标

⑦安装

⑧安装执行中

⑨安装完成

⑩点击许可证输入密钥5A02H-AU243-TZJ49-GTC7K-3C61N
在这里插入图片描述

安装完成之后,我们可以在桌面看到该软件的图标

双击它,就可以进入该软件主界面,则代表该软件安装完成

4.【掌握】在VMware上创建虚拟机

4.1 前言

因为WM只是一个软件。这个软件可以从计算机中虚拟多个操作系统出来。所以如果想要使用,那么必须要创建虚拟机,再到虚拟机上安装操作系统之后才能使用,因为我们是学习,所以只创建虚拟机,下一节内容里面来详细说明在VM的虚拟机里面安装操作系统的步骤。

接上一章节,我们安装完了VM之后打开主页面是这样的

4.2 虚拟机创建【不安装系统哦】

接下来我们创建一个虚拟机,注意每个步骤的说明【重点】

4.2.1 点击下面的创建虚拟机
在这里插入图片描述

4.2.2 虚拟机向导选择典型安装

4.2.3 操作系统选择

注意。

在这里我们选择稍后安装操作系统

这里相当于只是创建一个没有操作系统的虚拟电脑

当然,可以在创建虚拟电脑的同时安装操作系统

如果本机电脑有光驱,选择第一个什么光盘安装【现在很多电脑没有光区了没有光驱可以选择电脑里面某一个下载好的操作系统的安装包

因为我们这里只是讲VM的使用,所以我们不安装操作系统

4.2.4 选择虚拟机的操作系统
因为我们要安装的是CentOS.它属于Linux里面的一个社区版本【不要钱的】
在这里插入图片描述

4.2.5 给虚拟机命名和选择虚拟机的存盘地址
在这里插入图片描述

4.2.6 选择虚拟机磁盘大小
在这里插入图片描述

注意:

这里选择大小可以根据自己的需求来,如虚拟机到时候要安装tomcat和mysql等软件。至少要给这个软件留足空间哦

至于是否拆分文件,默认到行了

4.2.7 下一步

4.2.8 完成

左边的是虚拟机选项

右边的是未启动的虚拟机

4.3 虚拟机设置

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

从以上我们可以看到,可以设置

4.3.1 内存
至少628M

4.3.2 处理器
根据自己电脑的特点来【电脑是双核的可以选择2,学习的时候选择1就可以了】

4.3.3 硬盘
默认就行了

4.3.4 CD/DVD
不用设置

4.3.5 网络适配器【重点掌握】
设置状态:因为现在还没有安装操作系统,安装操作系统之后注意把已连接勾上

    网络连接形式

    1,桥接模式:默认使用vmnet0的虚拟网卡使用当有电脑路由器的分配的IP地址,也就是使用这种模式之后虚拟器就相当于当前局域网的一个真正的电脑了

    2,NAT模式:使用vmnet8的虚拟网卡,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配

 3,仅主机模式:静态ip设置(桥接类似,网段,掩码,网关什么的都做响应的修改)。主机模式下:虚拟机与主机单独组网,好处在于安全,其他网络是无法访问的。

在这里插入图片描述

4.3.6 其它的可以不用设置了

4.4 VM提供的其它好用的功能

4.4.1 编辑—>虚拟网络编辑器
在这里插入图片描述

vmnet0桥接模式使用

    注意点:如果电脑既使用有网线,也使用了无线网络,也会桥接的时候注意选择一下网卡

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

4.4.2 虚拟机快照功能
作用:可以保存当前虚拟机的某个状态,如果出现问题,可以恢复到当前的快照里来

 也就是相当于备份系统的某个点,后面可以还原到这个点来,懂了吗?

在这里插入图片描述

5.【掌握】在VMware安装CentOS

5.1 CentOS下载地址

https://www.centos.org/download/

DVD ISO:此镜像类型为普通光盘安装版,可离线安装到计算机硬盘上,包含大量的常用软件,一般选择这种镜像类型即可。

Everything ISO:这个镜像涵盖了上种镜像的内容,并对其进行补充,集成了所有软件。

Minimal ISO:这个版本为精简版的镜像,可以安装一个基本的CentOS系统,包含了可启动系统基本所需的最小安装包。

5.2 安装

1,打开VM,打开选择中刚才创建的虚拟主机–>编辑虚拟机
在这里插入图片描述
在这里插入图片描述

2,启动虚拟机
在这里插入图片描述

跳过 skip

下一步选择语言

下一步,选择键盘

下一步,选择存储器【默认就行】

下一步,格式化磁盘

因为新装系统,所有要格式化,大小就是创建虚拟机时分配的20G的内存大小

在这里插入图片描述

下一步,设置计算机名【推荐不更改】

centos7上配置自动连接
在这里插入图片描述

下一步,选择时区
在这里插入图片描述

设置密码
![在这里插入图片描述](https://img-blog.csdnimg.cn/b402fcf174e64eaaaee05e7f26fbead5.png

因为学习,所以设置的密码简单

选择安装类型
在这里插入图片描述

把修改写入磁盘

选择最小的桌面版本
在这里插入图片描述
在这里插入图片描述

安装中

安装完成

重新引导—>进入系统—>加载中哦

欢迎页面

前进—同意许可

创建用户
在这里插入图片描述

设置时间
在这里插入图片描述

登陆
在这里插入图片描述

当然,也可以使用管理员登陆 root +密码

接下来就可以进入系统主页面了,这是一个最简单的+桌面的系统

但是在开发中,我们安装的一般都是没有桌面的系统,也就是在安装时选择系统的时候选择以下的设置
在这里插入图片描述

安装完成之后
在这里插入图片描述

6.【掌握】安装XFTP和XShell

6.1 安装

在这里插入图片描述

6.2 连接

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

7.【熟悉】文件和目录

7.1 Windows和Linux文件系统区别

在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符:
在这里插入图片描述

每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:
在这里插入图片描述

在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):
在这里插入图片描述

7.2 Linux系统目录结构

linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面
在这里插入图片描述

7.3 Linux 目录说明

/bin: (binaries)存放系统命令的目录,所有用户都可以执行。

/sbin: (super user binaries) 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令,有些命令可以允许普通用户查看。(root)

/usr/bin:存放系统命令的目录,所有用户可以执行。这些命令和系统启动无关,单用户模式下不能执行

/usr/sbin:存放根文件系统不必要的系统管理命令,超级用户可执行

/root: 存放root用户的相关文件,root用户的家目录。宿主目录 超级用户

/home:用户缺省宿主目录eg:/home/spark/home/pengpeng

/tmp:(temporary)存放临时文件

/etc:(etcetera)系统配置文件

/usr:(unix software resource)系统软件共享资源目录,存放所有命令、库、手册页等

/proc:虚拟文件系统,数据保存在内存中,存放当前进程信息

/boot:系统启动目录

/dev:(devices)存放设备文件

/sys :虚拟文件系统,数据保存在内存中,主要保存于内存相关信息

/lib:存放系统程序运行所需的共享库

/lost+found:存放一些系统出错的检查结果。

/var:(variable)动态数据保存位置,包含经常发生变动的文件,如邮件、日志文件、计划任务等

/mnt:(mount)挂载目录。临时文件系统的安装点,默认挂载光驱和软驱的目录

/media:挂载目录。 挂载媒体设备,如软盘和光盘

/misc:挂载目录。 挂载NFS服务

/opt: 第三方安装的软件保存位置。 习惯放在/usr/local/目录下

/srv : 服务数据目录

7.4 用户目录

位于/home/user,称之为用户工作目录或家目录,表示方式:

/home/user

~

7.5 相对路径和绝对路径

7.5.1 绝对路径
从/目录开始描述的路径为绝对路径,如:

cd /home

ls /usr

7.5.2 相对路径
从当前位置开始描述的路径为相对路径,如:

cd …/…/

ls abc/def

7.5.3 .和…
每个目录下都有.和…

. 表示当前目录

… 表示上一级目录,即父目录

根目录下的.和…都表示当前目录

7.6 文件权限

文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。

在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

7.6.1 访问用户
通过设定权限可以从以下三种访问方式限制访问权限:

只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。

允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。

允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

7.6.2 访问权限
· 用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

· 读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

· 写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

· 可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

· 注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

7.6.3 示例说明

第1个字母代表文件的类型:“d” 代表文件夹、“-” 代表普通文件、“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道文件、“l” 代表软链接文件。 后 9 个字母分别代表三组权限:文件所有者、用户者、其他用户拥有的权限。

每一个用户都有它自身的读、写和执行权限。

Ø 第一组权限控制访问自己的文件权限,即所有者权限。

Ø 第二组权限控制用户组访问其中一个用户的文件的权限。

Ø 第三组权限控制其他所有用户访问一个用户的文件的权限。

这三组权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

8.【掌握】Linux命令概述

8.1 常用基本命令

· 很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。

· Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。

· 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux。

· Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令。

8.2 命令使用方法

Linux命令格式: ls -a /root/hello

command  [-options]  [parameter1]  …

说明:

command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个

例:
在这里插入图片描述

8.3 查看帮助文档

8.3.1 --help
一般是linux命令自带的帮助信息

如:ls --help

查看命令的语法规则: man 命令名称

8.4 自动补全

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令

9.【掌握】Linux命令-文件管理

9.1 查看文件信息:ls

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“…”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。

语法说明

命令名称:ls

命令英文原意:list

命令所在路径:/bin/ls

执行权限:所有用户

功能描述:显示目录文件

语法:ls 选项[-ald] [文件或目录]

-a  显示指定目录下所有子目录与文件,包括隐藏文件

-l  以列表方式显示文件的详细信息

-h  配合 -l 以人性化的方式显示文件大小

-d  可以查看当前目录的属性

案例

ls -a 显示当前目录下的所有文件包含隐藏文件

ls -al 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息

ls -alh 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息和大小

ls -dl 查看当前文件夹的属性

与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。

通配符

含义

文件代表文件名中所有字符

ls te*

查找以te开头的文件

ls *html

查找结尾为html的文件

代表文件名中任意一个字符

ls ?.c

只找第一个字符任意,后缀为.c的文件

ls a.?

只找只有3个字符,前2字符为a.,最后一个字符任意的文件

[]

[”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。

[abc]

匹配a、b、c中的任意一个

[a-f]

匹配从a到f范围内的的任意一个字符

ls [a-f]*

找到从a到f范围内的的任意一个字符开头的文件

ls a-f

查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用

\

如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。

ls *a

查找文件名为*a的文件

9.2 切换工作目录: cd

在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感

语法说明

命令名称:cd

命令英文原意:change directory

命令所在路径:shell内置命令

执行权限:所有用户

语法:cd [目录]

功能描述:切换目录

    cd /   进入用户的主目录。

    cd  test 进入当前目录下的test目录 【这个是相对目录】

    cd /root/test 进入root目录下的test目录  【这个是绝对目录】

    cd ~ 切换到当前用户的主目录(/home/用户目录)

    cd . 切换到当前目录

    cd .. 切换到上级目录

    cd - 可进入上次所在的目录

9.3 清屏:clear

clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。

9.4 显示当前路径:pwd

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

语法说明

命令名称:pwd

命令英文原意:print working directory

命令所在路径:/bin/pwd

执行权限:所有用户

语法:pwd

功能描述:显示当前所在的工作目录

范例:pwd

9.5 创建目录:mkdir -p

通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。

需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

语法说明

命令名称:mkdir

命令英文原意:make directories

命令所在路径:/bin/mkdir

执行权限:所有用户

语法:mkdir [目录名]

功能描述:创建新目录

参数说明  -p  如果上层目录不存在,则会创建上层目录

范例:

    mkdir  test  在当前目录下创建一个test的目录

    mkdir  /root/test 在root目录下创建一个test目录

    mkdir  /root/test1/test2/test3 创建目录 这里会报错,因为test1,test2目录不存在 解决办法是  mkdir -p  /root/test1/test2/test3

    mkdir  /root/test4  /root/test4  同时创建两个目录

    mkdir  test6  test7 在当前目录下创建两个目录

    mkdir 'pargam files'创建一个有空格的目录【不推荐使用】

9.6 创建文件:touch

通过touch命令可以创建一个新空文件

语法说明

命令名称:touch

命令所在路径:/bin/touch

执行权限:所有用户

语法:touch [文件名]

功能描述:创建空文件

范例:

    touch test 在当前目录下创建一个test的文件

    touch /root/test在root下创建一个test的空文件

    touch test1 test2 在当前目录下创建两个空文件

    touch 'test1 test2'在当前目录下创建一个有空格的文件[不推荐使用]

9.7 拷贝文件:cp

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

常用选项说明:
在这里插入图片描述

命令名称:cp

命令英文原意:copy

命令所在路径:/bin/cp

执行权限:所有用户

语法:cp -R [源文件或目录] [目的目录]

-R 复制目录

功能描述:复制文件或目录 ,默认的cp只能复制文件,不能是目录 如果是目录要使用-r

案例

    cp -r /root/mywork  /root/helloworld  把mywork复制到helloworld里面

    cp - /root/install.log  /root/helloworld 把install.log文件复制到helloworld里面

    cp -rvif /root/install.log  /root/helloworld 把install.log文件复制到helloworld里面 并显示进度

9.8 移动[重命名]文件:mv

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

命令名称:mv

命令英文原意:move

命令所在路径:/bin/mv

执行权限:所有用户

语法:mv [源文件或目录] [目的目录]

功能描述:移动文件、更名

案例

    mv /root/install.log /root/mywork/install.log  把install.log移动到mywork里面

    mv /root/install.log /root/ins.log 把install.log改成ins.log

9.9 删除文件:rm -rf

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

常用参数及含义如下表所示:
在这里插入图片描述

命令名称:rm

命令英文原意:remove

命令所在路径:/bin/rm

执行权限:所有用户

语法:rm -r [文件或目录]

案例

    rm test1 删除test1文件

    rm -r test1 删test1文件或者test1文件夹里面的所有内容会提示

    rm -rf test1删除test1文件或者文件夹不提示

    rm -rf /root/mywork 删除root下面的mywork文件或者文件夹不提示

    rm -rf / 删除所有的操作系统文件 【千万不要使用】

9.10 查看或合并文件:cat/more/less

cat 命令用于连接文件并打印到标准输出设备上。

常用参数及含义如下表所示:

参数

含义

-n

显示文件里数据的行号

命令名称:cat

命令英文原意:concatenate and display files

命令所在路径:/bin/cat

执行权限:所有用户

语法:cat [文件名]

功能描述:显示文件内容

范例:

    cat  install.log 查看当前目录下的install.log文件

    cat  /root/install.log 查看绝度目录下的文件

    cat  test1.txt test2.txt >>test3.txt 把test1.txt test2.txt里面的内容追加到test3里面

    cat test1.txt test2.txt > test3.txt 先清空test3.txt再把test1.txt test2.txt里面的内容追加到test3里面

    >   >>的区别是前者先清空再追加  后者直接追加

9.11 建立链接文件:ln

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

软链接:软链接不占用磁盘空间,源文件删除则软链接失效。

硬链接:硬链接只能链接普通文件,不能链接目录,会同步更新。

使用格式: link

ln 源文件 链接文件

ln -s 源文件 链接文件

如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

语法说明

命令名称:ln

命令英文原意:link

命令所在路径:/bin/ln

执行权限:所有用户

语法:ln -s [源文件] [目标文件]

-s 创建软链接

功能描述:产生链接文件

案例

    ln /etc/issue  /root/etc/issue.bak.hard  硬链接

            |--如果删除了issue文件 issue.bak.hard可以使用

    可以使用命令echo 'hello world' >> /etc/issue去修改issue文件

        看看issue.bak.hard里面内容是否更新了

    ln -s /etc/issue /root/etc/issue.soft  软链接

            |--如果删除了etc/issue文件,那么issue.soft就失效了

    ls -ilh可以查看文件的硬盘地址,可以看到硬链接的地址的原文件的地址一样

    这也就是为什么能同步更新的原因了

9.12 命令文件搜索命令:which

作用:显示系统命令所有目录

语法说明

命令名称:which

命令所在路径:/usr/bin/which

执行权限:所有用户

语法:which [命令名称]

功能描述:显示系统命令所在目录\

范例: which ls 可以查看命令所在的目录

9.13 文件搜索命令:find

作用:查找文件

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:
在这里插入图片描述

命令名称:find

命令所在路径:/usr/bin/find

执行权限:所有用户

语法:find [搜索路径] [搜寻关键字]

功能描述:查找文件或目录

$ find  /etc  -name  init 在目录/etc中查找文件init

$ find  /  -size  +204800 在根目录下查找大于100MB的文件

$ find  /  -user  sam 在根目录下查找所有者为sam的文件

$ find  /etc  -ctime  -1 在/etc下查找24小时内被修改过属性的文件和目录

$ find  /etc -size  +163840 -a -size  -204800  在/etc下查找大于80MB小于100MB      的文件

$ find /etc -name inittab -exec ls -l {} \; 在/etc下查找inittab文件并显示其详细信息

9.14 查看linux下是否安装某些软件

rpm -qa | grep 关键字

9.15 卸载软件

rpm -e --nodeps 被卸载的软件名

9.16 文件搜索命令:grep

搜索文件里面的内容的命令

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

grep [-选项] ‘搜索内容串’文件名

在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。

常用选项说明:

选项

含义

-v

显示不包含匹配文本的所有行(相当于求反)

-n

显示匹配行及行号

-i

忽略大小写

命令名称:grep

命令所在路径:/bin/grep

执行权限:所有用户

语法:grep [指定字串] [源文件

功能描述:在文件中搜寻字串匹配的行并输出

范例:# grep ftp /etc/services

9.17 归档管理:tar

压缩: tar -czvf 压缩后的名字.tar.gz 被压缩的文件

解压: tar -zxvf xxx.tar.gz

计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式 tar [参数] 打包文件名 文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:
在这里插入图片描述

Tar -zvxf

命令名称:tar

命令所在路径:/bin/tar

执行权限:所有用户

语法:tar 选项[cvf] [目录]

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩

功能描述:打包目录

压缩后文件格式:.tar.gz

案例

    tar -zcvf test.tar.gz test  把test文件或文件夹压缩成test.tar.gz

    tar -zxvf test.tar.gz 解压test.tar.gz

    tar -zxvf xxx.tar.gz -C ./dir1 #解压到指定目录

把test文件夹打包成test.tar.gz
在这里插入图片描述

解压到当前目录
在这里插入图片描述

解压到指定目录
在这里插入图片描述

10.【掌握】Linux命令-用户、权限管理

10.1 概述

1,用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。

2,在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。

3,Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。

4,在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。

5,在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。

10.2 查看当前用户:whoami

whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。

由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。

10.3 退出登录账户: exit

如果是图形界面,退出当前终端;

如果是使用ssh远程登录,退出登陆账户;

如果是切换后的登陆用户,退出则返回上一个登陆账号。

10.4 添加用户账号:useradd

在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。

useradd命令的使用格式如下: useradd [参数] 新建用户账号
在这里插入图片描述

相关说明:

Ø Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);

Ø 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;

Ø 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;

Ø 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
在这里插入图片描述

10.5 设置用户密码:passwd

在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
在这里插入图片描述

10.6 删除用户:userdel

命令

含义

userdel abc(用户名)

删除abc用户,但不会自动删除用户的主目录

userdel -r abc(用户名)

删除用户,同时删除用户的主目录

10.7 切换用户:su

可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
在这里插入图片描述

10.8 查看有哪些用户组

cat /etc/group

10.9 添加、删除组账号:groupadd、groupdel

groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
在这里插入图片描述

10.10 查看用户在哪些组

在这里插入图片描述

10.11 修改用户所在组:usermod

使用方法:usermod -g 用户组 用户名
在这里插入图片描述

10.12 修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法与数字法。

字母法:chmod u/g/o/a +/-/= rwx 文件

chmod 修改文件权限有两种使用格式:字母法与数字法。

字母法:chmod u/g/o/a +/-/= rwx 文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数字法:
r—4

w—2

x—1
在这里插入图片描述

10.13 修改文件所有者:chown

chown bigbird:bigbird 1.txt
在这里插入图片描述

10.14 修改文件所属组:chgrp

在这里插入图片描述

练习:

创建文件:/home/tomcat/111.txt

  1. txt的拥有者为:bigbird,组为bigbird

权限为: 拥有者具有读写执行权限,组里具有读写、其他人没有任何权限

创建账号:aaa、bbb,让aaa、bbb加入bigbird组,读取下111.txt文件

将bbb的组改为bbb组,再让bbb账号读取111.txt

【掌握】Linux命令-系统管理

10.15 查看当前日历:cal

cal命令用于查看当前日历,-y显示整年日历:

10.16 显示或设置时间:date

设置时间格式(需要管理员权限):

date [MMDDhhmm[[CC]YY][.ss]] +format

CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。

显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’):

format格式

含义

%Y,%y

%m

%d

%H

%M

%S

10.17 查看进程信息:ps

进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。

ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:

选项

含义

-a

显示终端上的所有进程,包括其他用户的进程

-u

显示进程的详细状态

-x

显示没有控制终端的进程

-w

显示加宽,以便显示更多的信息

-r

只显示正在运行的进程
在这里插入图片描述

ps -au:静态查询所有进程

ps -ef | grep 程序关键字

1、ps 命令用于查看当前正在运行的进程。

grep 是搜索

例如: ps -ef | grep java

表示查看所有进程里 CMD 是 java 的进程信息

2、ps -aux | grep java

-aux 显示所有状态

10.18 动态显示进程【了解】:top

top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。

在top命令执行后,可以按下按键得到对显示的结果进行排序:

按键

含义

M

根据内存使用量来排序

P

根据CPU占有率来排序

T

根据进程运行时间的长短来排序

U

可以根据后面输入的用户名来筛选进程

K

可以根据后面输入的PID来杀死进程。

q

退出

h

获得帮助

10.19 终止进程:kill

kill命令指定进程号的进程,需要配合 ps 使用。

使用格式:

kill [-signal] pid

信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。

kill 9133 :9133 为应用程序所对应的进程号
在这里插入图片描述
在这里插入图片描述

10.20 关机重启:reboot、shutdown、init

在这里插入图片描述

10.21 查看或配置网卡信息

如果,我们只是敲:ifconfig[7.0以下的版本],它会显示所有网卡的信息:

Ip addr[7.0及以上的版本使用]
在这里插入图片描述

10.22 测试远程主机连通性:ping

在这里插入图片描述

10.23 防火墙管理

10.23.1 6.X版本的使用
查看防火墙状态:

[root@centos6 ~]# service iptables status

iptables:未运行防火墙。

开启防火墙:

[root@centos6 ~]# service iptables start

关闭防火墙:

[root@centos6 ~]# service iptables stop

10.23.2 7.X版本的使用
查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop/start/restart firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

11.【掌握】Linux网络命令

11.1 Wget 只下载

在这里插入图片描述

11.2 Yum 【下载并安装】

Yum -y install vim 安装vim编辑器

yum search jdk 搜索

12.【掌握】VIM的使用

12.1 Vim/Vi 简介

Vim/Vi是一个功能强大的全屏幕文本编辑器,

是Linux/UNIX上最常用的文本编辑器,

它的作用是建立、编辑、显示文本文件。

Vim/Vi 没有菜单,只有命令

12.2 Vim/Vi 工作模式

在这里插入图片描述

12.3 插入命令

在这里插入图片描述

12.4 定位命令

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

12.5 删除命令

在这里插入图片描述

12.6 复制和剪切命令

在这里插入图片描述

12.7 替换和取消命令

在这里插入图片描述

12.8 搜索和替换命令

在这里插入图片描述

12.9 保存和退出命令

在这里插入图片描述

13.【掌握】安装JDK

13.1 下载

13.2 使用xftp传入linux

13.3 解压

mkdir /usr/local/java

tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java

13.4 配置环境变量

vim /etc/profile 在最后插入下面要配置的内容
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

rpm -qa | grep java 查看安装的jdk版本

rpm -e --nodeps 被卸载的软件名

JAVA_HOME=/usr/local/java/jdk1.8.0_181

PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

export JAVA_HOME PATH

13.5 刷新环境变量

source /etc/profile

13.6 测试

Java -version
在这里插入图片描述

14.【掌握】安装Tomcat

14.1 下载

14.2 解压

mkdir /usr/local/tomcat

tar -zxvf apache-tomcat-8.5.43.tar.gz -C /usr/local/tomcat/

cd /usr/local/tomcat

mv apache-tomcat-8.5.43/ tomcat1

14.3 启动

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

14.4 访问

http://192.168.72.145:8080/

15.【掌握】安装mysql5.7

15.1 下载

https://dev.mysql.com/downloads/mysql/5.7.html#downloads
**
加粗样式

15.2 解压到/usr/local/mysql【必须是这个目录】

#解压

tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

#重命名

mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql

#复制解压后的mysql目录

cp -r mysql /usr/local

15.3 安装数据库

15.3.1 进入安装mysql软件目录:
执行命令 cd /usr/local/mysql/

15.3.2 创建数据仓库目录

# mkdir /data/mysql

15.3.3 新建mysql用户、组及目录
—新建一个msyql组

groupadd mysql

useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql

—新建msyql用户禁止登录shell

15.3.4 改变目录属有者
cd /usr/local/mysql

pwd

chown -R mysql .

chgrp -R mysql .

数据库目录

chown -R mysql /data/mysql

15.3.5 配置参数
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
在这里插入图片描述

此处需要注意记录生成的临时密码,如上文结尾处的:webQplfJS3_Q

安装

bin/mysql_ssl_rsa_setup --datadir=/data/mysql
在这里插入图片描述

15.3.6 修改系统配置文件

#cd /usr/local/mysql/support-files

# cp my-default.cnf /etc/my.cnf    这里没有话就跳过  去查看这个地址有没有my.cnf文件。如果就把权限改了  chmod 777 my.cnf

# cp mysql.server /etc/init.d/mysql

# vim /etc/init.d/mysql

15.3.7 启动mysql

# /etc/init.d/mysql start

如果无法启动执行下面命令

chmod 777 /etc/my.cnf

再执行/etc/init.d/mysql start

15.3.8 登陆并改密码
–登陆 的bin目录下执行

# mysql  -u root -p

–如果出现:-bash: mysql: command not found

–就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行
在这里插入图片描述
在这里插入图片描述

set password=password(‘123456’)

–设置root账户的host地址(修改了才可以远程连接)

mysql>grant all privileges on . to ‘root’@‘%’ identified by ‘123456’;

mysql>flush privileges;

–查看表

mysql> use mysql;

mysql> select host,user from user;

15.3.9 添加系统路径【为设置开机启动提供】

# vim /etc/profile

添加:

export PATH=/usr/local/mysql/bin:$PATH

# source /etc/profile

15.3.10 配置mysql自动启动

``

# chmod 755 /etc/init.d/mysql

# chkconfig --add mysql

# chkconfig --level 345 mysql on

15.4 navcat连接远程的mysq

``

l

在这里插入图片描述

说明当前的mysql没有远程登陆的权限

–设置root账户的host地址(修改了才可以远程连接)

mysql -u root -p

mysql>grant all privileges on . to ‘root’@‘%’ identified by ‘123456’;

mysql>flush privileges;
在这里插入图片描述
在这里插入图片描述

15.5 把数据库导入linux里面的mysql

16.【掌握】发布项目到Tomcat运行

16.1 war项目

16.1.1 打包
在这里插入图片描述

16.1.2 把war包放到tomcat里面
16.1.3 启动tomcat
./bin/startup.sh
在这里插入图片描述

17.【掌握】云服务器使用

Window(navicat、浏览器)--------------->VM(linux:jdk、tomcat、mysql)/云服务器

17.1 阿里云

17.1.1 网站
https://www.aliyun.com/?utm_content=se_1003074876

17.1.2 登陆
17.1.3 进入控制台
https://homenew.console.aliyun.com/

17.1.4 进入控制台
在这里插入图片描述

17.1.5 端口开放
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

17.2 京东云

https://console.jdcloud.com/overview

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

11月24日星期五今日早报简报微语报早读

11月24日星期五,农历十月十二,早报微语早读。 1、第十批在韩中国人民志愿军烈士遗骸迎回仪式在沈阳举行; 2、港媒:乱港分子林卓廷等7人被裁定暴动罪表证成立; 3、深圳:欠缴路边临停车费不再纳入个人征信…

智能医疗越发周到!新的机器人系统评估中风后的活动能力

原创 | 文 BFT机器人 中风是在医疗界上最难的解决的病例之一,全球每年有超过1500万人中风,四分之三的中风患者的手臂和手部会出现损伤、虚弱和瘫痪。 许多中风患者日常生活是依靠他们强壮的手臂来完成的,从拿一些小东西到梳头,即…

提供开箱即用的一站式数据库云平台,「 沃趣科技」完成数千万B+轮战略融资

近日,36氪获悉,国内数据库基础设施厂商沃趣科技完成数千万B轮战略融资,本轮融资由翌马投资(恒生电子产业基金)领投,金蚂投资跟投,融资金额将用于研发投入及市场拓展。 沃趣科技成立于2012年&am…

vulnhub4

靶机地址: https://download.vulnhub.com/admx/AdmX_new.7z 信息收集 fscan 扫一下 ┌──(kali㉿kali)-[~/Desktop/Tools/fscan] └─$ ./fscan_amd64 -h 192.168.120.138 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ …

SpringBoot整合SpringSecurity+jwt+knife4生成api接口(从零开始简单易懂)

一、准备工作 ①&#xff1a;创建一个新项目 1.事先创建好一些包 ②&#xff1a;引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency>&…

Whatweb简单使用

目录 简介 安装 debian/ubtuntu redhat/centos 特性 使用 常用参数如下&#xff1a; whatweb -v whatweb --version whatweb -i 1.txt whatweb -v www.baidu.com 扫描等级 whatweb -a 4 www.baidu.com 扫描网段 whatweb --no-errors -t 255 192.168.71.0/24 导出…

Word怎么看字数?简单教程分享!

“我在写文章时&#xff0c;总是想看看写了多少字。但是我发现我的Word无法看到字数。在Word中应该怎么查看字数呢&#xff1f;请帮帮我&#xff01;” Word是一个广泛使用的文档编辑工具。在我们编辑文章时&#xff0c;如果想查看写了多少字&#xff0c;也是可以轻松完成的。 …

黑马点评笔记 redis实现优惠卷秒杀

文章目录 难题全局唯一IDRedis实现全局唯一Id 超卖问题问题解决方案乐观锁问题 一人一单 难题 要解决优惠卷秒杀的问题我们要考虑到三个个问题&#xff0c;全局唯一ID&#xff0c;超卖问题&#xff0c;一人一单。 全局唯一ID 用户抢购时&#xff0c;就会生成订单并保存到同一…

LeetCode.283移动零(双指针)

LeetCode.283移动零 1.问题描述2.解题思路3.代码 1.问题描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1…

便携式水污染物监测设备的招标参数有哪些

便携式多参数水质检测仪参数特点&#xff1a; 便携式多参数水质检测仪参数特点&#xff1a; 便携式多参数水质快速测定仪&#xff0c;根据国家检测标准&#xff08;G B &#xff09; 及环境部检测标准(H J &#xff09;研发生产&#xff0c;本仪器具有检测快速、操作简单、测试…

PHP预约上门回收废品系统的代码披露

PHP预约上门回收废品系统的代码披露 <?phpnamespace app\admin\controller;class Code {public function getTopDomainhuo(){error_reporting(0);$host $_SERVER["HTTP_HOST"];$matchstr "[^\\.]\\.(?:(" . $host . ")|\\w{2}|((" . $ho…

解决LocalDateTime传输前端为时间的数组

问题出现如下&#xff1a; 问题出现原因&#xff1a; 默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。 解决方法&#xff1a; 我在全文搜索处理方法总结如下&#xff1a; 1.前端自定义函数来书写 ,cols: [[ //表头{…

【黑马甄选离线数仓day03_数仓设计和维度域开发】

1. 数仓基本概念 1- 什么是数据仓库呢? 存储数据的仓库, 主要用于存储过去历史发生过的数据,面向主题, 对数据进行统计分析的操作, 从而能够对未来提供决策支持 2- 数据仓库最大的特点是什么呢? 数据仓库既不生产数据, 也不消耗数据, 数据来源于各个数据源 3- 数据仓库的四…

知行之桥EDI系统HTTP签名验证

本文简要概述如何在知行之桥EDI系统中使用 HTTP 签名身份验证&#xff0c;并将使用 CyberSource 作为该集成的示例。 API 概述 首字母缩略词 API 代表“应用程序编程接口”。这听起来可能很复杂&#xff0c;但真正归结为 API 是一种允许两个不同实体相互通信的软件。自开发以…

Android WorldWind加载shapefile格式文件形成三维效果

目录 1 前言2 实现思路3 绘制Polygons4 读取shapefile文件5 加载立体模型6 问题1 前言 在项目中有时会加载shapefile格式的数据,要形成三维立体效果。但是查看worldwind NASA官网,在worldwind android的使用教程中并没用加载shapefile格式的教程,然后源码中也没有开发加载s…

Grails 启动

Grails系列 Grails项目启动 文章目录 Grails系列Grails一、项目创建二、可能的问题1.依赖下载2.项目导入到idea失败3.项目导入到idea后运行报错 Grails Grails是一款基于Groovy语言的Web应用程序框架&#xff0c;它使用了许多流行的开源技术&#xff0c;如Spring Framework、…

synchronized的轻量级锁居然不会自旋?

《Java并发编程的艺术》中说到「如果失败&#xff0c;表示其他线程竞争锁&#xff0c;当前线程便尝试使用自旋来获取锁」&#xff0c;并且下文所配的流程图中明确表示自旋失败后才会升级为重量级锁&#xff0c;但《深入理解Java虚拟机》又说「如果出现两条以上的线程争用同一个…

Python潮流周刊#1:如何系统地自学Python?

这里记录每周值得分享的 Python 及通用技术内容&#xff0c;部分内容为英文&#xff0c;已在小标题注明。&#xff08;本期标题取自其中一则分享&#xff0c;不代表全部内容都是该主题&#xff0c;特此声明。&#xff09; 文章&教程 1、编程语言的错误处理模式 文章讨论…

HR8825 STEP/DIR 微步进电机驱动芯片

HR8825是一种内置步进表的集成微步进电机驱动器&#xff0c;为打印机、扫描仪和其它自动化设备提供处理方案。HR8825提供一种带有裸L焊盘的TSSOP-28封装&#xff0c;能改进散热性能&#xff0c;且是无铅产品&#xff0c;引脚框采用100&#xff05;无锡电镀。 内部的同步整流控制…

计算机毕业设计项目选题推荐(免费领源码)java+springboot+mysql 城市房屋租赁管理系统01855

摘 要 本论文主要论述了如何使用springboot 城市房屋租赁管理系统 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构JAVA技术&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述城市房屋租赁管理系统的当前背景以及…