Bash 非常有用的快捷键
- Ctrl-U 删除光标到行首的所有字符
- Ctrl-K 删除光标到行尾的所有字符
- Ctrl-H backspace,删除光标前边的字符
- Ctrl-R 搜索最近执行的命令
September 30, 2019
September 29, 2019
Spring Boot
是由Pivotal团队提供的全新框架,它的出现使创建独立的、基于生产级Spring
的应用程序变得很容易,您可以“just run”这些应用程序。
Spring Boot
的核心思想就是约定大于配置,一切自动完成,大多数Spring
引导应用程序只需要很少的配置。采用Spring Boot
可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。
Spring
应用程序Tomcat
、Jetty
或Undertow
(不需要部署WAR
文件)starter
依赖项,以简化构建配置Spring
和第三方库XML
配置September 29, 2019
Shellinabox
是个基于浏览器的中断模拟器,内置的Web服务器,代理 SSH 的登陆端口内容, 通过 websocket
的内容将内容在浏览器中实现命令行交互.
在大多数发行版中, Shellinabox
已经集成到系统默认仓库中,使用对应的包管理器即可安装.
yum install openssl shellinabox
apt install openssl shellinabox
默认情况下, Shellinabox
的服务绑定在 localhost:4200
, 处于安全原因,默认情况下, 并没有将服务暴露内网,需要根据环境的安全情况,设置对应的发布地址.
September 27, 2019
Ubuntu 17/18 版本默认已经预装 Python 3.6
, 系统安装完成之后将直接可用, 而旧版的 Ubuntu
, 比如 14/16 默认预装的均不是最新的 Python 3.6
版本, 如果希望通过 apt
包管理器在旧版系统上安装 Python 3.6
, 需要添加特殊的软件源才可以. 当然你也可以通过 3.6 版本的 Python
源码来安装, 后续我们抽空再介绍一次, 如何通过源码安装 Python 3.6
.
默认情况下, Ubuntu 14.04
和 Ubuntu 16.04
默认安装的是 Python 2.7
和 Python 3.5
版本,要安装最新的 Python 3.6
版本, 需要添加 deadsnakes
PPA
软件源.
# add-apt-repository ppa:deadsnakes/ppa
# apt update
# apt install python3.6
而在 Ubuntu 16.10
和 Ubuntu 17.04
版本上直接从仓库源安装即可
# apt update
# apt install python3.6
September 27, 2019
RedHat Enterprise Linux 8
上 Python 环境默认是不预装的, 因此, 用户需要根据自己需要选择安装 Python 3
还是 Python 2
.官方源中默认对 Python 3.6
有全面的支持. 接下来我们看看如何安装需要的 Python
版本.
注: 大多情况下, yum 包管理器是需要依赖 Python
和 一些基础包, 早期的发行版是将系统依赖的 Python
和 用户应用软件 公用 Python 环境, 这样就容易造成系统和用户环境对 Python
环境的冲突. 从 RedHat Enterprise Linux 8
将系统 Python 环境独立出来作为 Platform-Python
, 即系统平台 Python
环境, 用户将不能使用该 Python
环境, 仅有系统功能使用, 有官方统一维护. 当然, 用户可以编写一些系统使用的 Python
程序有 Platform-Python
使用.
RedHat Enterprise Linux 8
开始启用新的包管理工具 dnf
, 我们使用 dnf
来安装 python3
dnf install python3
因为官方支持的 3.6 版本, 因此随同 python3
的安装, 也将同时将 pip
和 setuptools
等依赖将一并安装好.
September 27, 2019
LinkedList
是list
和Deque
接口的双链列表实现。它实现所有可选的列表操作,并允许所有元素(包括null
)。
下面你可以找到LinkedList
最重要的属性:
ListIterator
迭代器是快速失败的(这意味着在迭代器创建之后,如果列表被修改,将抛出ConcurrentModificationException
)尽管LinkedList
未同步,但我们可以通过调用Collections.SynchronizedList
方法检索他的同步版本,如:
List list = Collections.synchronizedList(new LinkedList(...));
September 26, 2019
在本文中,我们将研究Java集合框架中的ArrayList
类。我们将讨论它的属性、常用用例以及它的优缺点。
ArrayList
包含在Java核心库中,因此不需要任何其他库。为了使用它,只需添加以下import
语句:
import java.util.ArrayList;
List
表示一个有序的值序列,其中某些值可以重复。
ArrayList
是构建在数组之上的列表实现之一,它能够在添加/删除元素时动态地增长和收缩。元素的索引可以很容易地从零开始访问。该实现具有以下特性:
September 25, 2019
在本教程中,我们将研究java.util.Arrays
,一个实用工具类,我们可以使用Arrays
创建、比较、排序、搜索、流和转换数组。
我们来看看创建数组的一些方法:copyOf
、copyOfRange
和fill
。
要使用copyOfRange
,我们需要原始数组和要复制的起始索引(包括)和结束索引(排除):
String[] intro = new String[] { "once", "upon", "a", "time" };
String[] abridgement = Arrays.copyOfRange(storyIntro, 0, 3);
assertArrayEquals(new String[] { "once", "upon", "a" }, abridgement);
assertFalse(Arrays.equals(intro, abridgement));
September 24, 2019
在本教程中,我们将深入研究Java语言中的一个核心概念——数组。
我们先看看什么是数组,然后再看看如何使用它们;
List
或Streams
首先,我们了解什么是数组?
根据Java文档,数组是包含固定数量的相同类型的值。数组的元素被索引,这意味着我们可以用数字(索引)访问它们。
我们可以将数组视为单元格的编号列表,每个单元格都是一个包含值的变量。在Java中,编号从0开始。
有基本类型数组和对象类型数组。这意味着我们可以使用int
、float
、boolean
等类型的数组,也可以使用String
、Object
和自定义类型的数组。
September 24, 2019