我们在命令行下,有时候需要了解两个文件的异同,比如和配置文件的备份文件对比. Linuxdiff 工具将非常方便的来解决我们的需求.

二进制文件的对比

对于二进制文件的对比, diff 仅仅只是提示两个文件是否异同, 如果相同, 将不输出任何内容, 实验环境是 Ubuntu 18.04, 我们对比下 /bin/sh/bin/bash/bin/dash, Ubuntu 最新版本 /bin/sh 使用的是 /bin/dash, 而不是早前的 /bin/bash.

root@server:~# diff /bin/sh /bin/bash
/bin/sh and /bin/bash differ
root@server:~# diff /bin/sh /bin/dash

- 阅读剩余部分 -

反转字符串意味着按相反的顺序排列字符串的字符,也就是说,将最后一个字符放在第一位,将第二个最后一个字符放在第二位,以此类推。
本文将通过程序示例讨论在java中反转字符串的不同方法。

StringBuffer

java.lang.StringBuffer类有一个反转方法,该方法反转提供给它的字符串。

public class StringReverseDemo {
    public static void main(String[] args) {
        String str = "linuxcoming";
        // create an object of stringbuffer
        StringBuffer buffer = new StringBuffer(str);
        System.out.println("Original string: " + str);
        System.out.println("Reversed string: " + buffer.reverse());
   }
}

输出:

Original string: linuxcoming
Reversed string: gnimocxunil

- 阅读剩余部分 -

Redis持久化

Redis提供了不同级别的持久化方式:

  • RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
  • AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.
  • 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式.
  • 你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整.

最重要的事情是了解RDB和AOF持久化方式的不同,让我们以RDB持久化方式开始:

- 阅读剩余部分 -

当您想要生成一个唯一的事务id或作为一个随机临时密码生成器,用户首次在网站上注册或创建防止自动输入的验证码时,通常需要生成随机的字符序列。

Java提供了许多不同的方法来编写随机字符串生成器应用程序,下面介绍几种方式。

UUID

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"

使用Compiler插件

我们可以在编译器插件中指定所需的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

Maven的主要特性:

  • 遵循最佳实践的简单项目设置: Maven通过提供项目模板(命名原型),尽量避免配置
  • 依赖项管理: 它包括自动更新、下载和验证兼容性,以及报告依赖项闭包(也称为传递依赖项)
  • 项目依赖项和插件之间的隔离: Maven从依赖项仓库检索项目依赖项,而任何插件的依赖项都从插件仓库检索,从而在插件开始下载附加依赖项时减少冲突
  • 中央仓库系统: 可以从本地文件系统或公共仓库(如Maven central)加载项目依赖项

- 阅读剩余部分 -

查找Linux Kernel版本

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 命令来查看上述信息

- 阅读剩余部分 -