Linux 文件处理工具(find)
find
用于查找文件或者目录, 同时 find
还有部分增强功能, 用于对查找到的内容进行处理.
按名字查找所有 html
文件
find . -name "*.html"
按大小查找文件
查找 大于 9M 的文件
find . -size +9M
查找小于9k的小文件
find . -size -9k
find
用于查找文件或者目录, 同时 find
还有部分增强功能, 用于对查找到的内容进行处理.
html
文件find . -name "*.html"
查找 大于 9M 的文件
find . -size +9M
查找小于9k的小文件
find . -size -9k
当您想要生成一个唯一的事务id或作为一个随机临时密码生成器,用户首次在网站上注册或创建防止自动输入的验证码时,通常需要生成随机的字符序列。
Java提供了许多不同的方法来编写随机字符串生成器应用程序,下面介绍几种方式。
UUID是由一组32位数的16进制数字所构成,故UUID理论上的总数为1632=2128,约等于3.4 x 1038。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。
java.util.UUID 类可用于生成UUID, 它的static randomUUID方法返回一个32个字符的字符串。
import java.util.UUID;
public class RandomStringGenerator {
public static void main(String[] args) {
String randomString = usingUUID();
System.out.println("Random string is: " + randomString);
System.out.println("Random string of 8 characters is: "
+ randomString.substring(0, 8));
}
static String usingUUID() {
UUID randomUUID = UUID.randomUUID();
return randomUUID.toString().replaceAll("-", "");
}
}
注意randomUUID方法生成的字符串包含“-”。上面的示例通过使用空字符串替换了。
以上程序输出为:
Random string is: 923ed6ec4d04452eaf258ec8a4391a0f
Random string of 8 characters is: 923ed6ec
在这个快速教程中,我们将展示如何在Maven中设置Java版本。
在继续之前,我们可以检查Maven的默认JDK版本。运行mvn -v命令将显示Maven运行的Java版本。
$ mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /opt/apache-maven-3.6.1
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
我们可以在编译器插件中指定所需的Java版本。
在我们使用 Linux
的过程中, 我们经常需要对文本进行处理,需要一些强有力的工具, 来提升我们的效率.接下来介绍下 grep
/cat
/awk
/uniq
这些常用命令的使用.
grep
grep
是我们用的非常多的命令, 查询日志, 查找关键内容等等.
查询包含 xyz
的行
grep 'xyz' myFile
在当前目录下所有html文件中查询包含 xyz
的行
grep 'xyz' *html
构建软件项目通常包括以下任务:下载依赖项、在类路径上放置额外的JAR、将源代码编译成二进制代码、运行测试、将编译后的代码打包成可部署的构件(如JAR、WAR和ZIP文件),并将这些构件部署到应用服务器或仓库。
Apache Maven将这些任务自动化,在手工构建软件并将编译和打包代码的工作与代码构建工作分离开来的同时,将人类出错的风险降到最低。
在本教程中,我们将探索这个功能强大的工具,它使用用XML编写的中心信息—项目对象模型(Project Object Model, POM)—来描述、构建和管理Java软件项目。
Maven的主要特性:
root@server:~# uname -a
Linux server 4.4.0-157-generic #185-Ubuntu SMP Tue Jul 23 09:17:01 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
root@server:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
当然你同样可以使用 lsb_release
命令来查看上述信息
这里汇总了下Linux环境下常用的Linux命令,多数命令几乎每天都会用到, 本文汇总的所有命令是基于 Ubuntu
发行版, 但是多数命令在大多数Linux上皆可使用, 包括Unix, 甚至Mac OSX.
命令 | 描述 |
---|---|
ls | 查看当前目录下的所有文件和目录 |
ls -al | 类似 ls , 以列表形式显示当前目录下的所有文件和目录, 包括隐藏文件 |
ls -al & grep string | 查询匹配string的文件和目录 |
cd directory_path | 切换到 directory_path |
cd | 切换到用户根目录 $HOME |
cd .. | 切换到上级目录 |
pwd | 查看当前所在目录路径 |
上述命令多数都支持根上目录路径或者文件路径, 比如 ls /usr/local/bin
, 其他更多命令参数,参看下 man page
, 比如 man ls
.
Lombok是一个库,它简化了许多繁琐的任务,并减少了Java源代码的冗长。当然,我们通常希望能够在IDE中使用库,这需要额外的设置。在本教程中,我们将讨论如何在两种最流行的Java ide (IntelliJ IDEA和Eclipse)中配置它。
Lombok通过APT使用注释处理,因此,当编译器调用它时,库根据原始文件中的注释生成新的源文件。
不过,默认情况下不启用注释处理。
因此,我们要做的第一件事是在项目中启用注释处理。
打开 Preferences -> Build, Execution, Deployment -> Compiler -> Annotation Processors 勾选以下:
* Enable annotation processing
* Obtain processors from project classpath
解压 [eclipse-jee-luna-SR2-win32-x86_64.zip] 到 D:\tools\ 目录
使用类似vscode的文本编辑器编辑 D:\tools\eclipse\eclipse.ini
文件
设置内存大小为2G, 对应的设置如下:
-Xms2048m
-Xmx2048m
Dynomite是NetFlix对亚马逊分布式引擎Dynamo的一个开源通用实现,它不仅支持基于内存K/V数据库,
还支持持久化的MySQL、BerkeleyDb、LevelDb等数据库,并具有简单、高效、支持跨数据中心的数据复制功能等优点。
Dynomite的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。目前,Dynomite已经实现了对Redis和Memcached的支持。
从源代码构建Dynomite并启用调试日志,禁用assertions:
$ git clone git@github.com:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes // 开发环境需要,生产环境不需要
$ make
$ src/dynomite -h