Other

3.3 常用Linux命令

1.pwd命令 pwd命令用于显示用户当前所处的工作目录   2.cd命令 cd命令用于切换当前的工作路径,英文全称为“change directory”,语法格式为“cd [参数] [目录]”。 除了常见的切换目录方式,还可以使用“cd -”命令返回到上一次所处的目录,使用“cd..”命令进入上级目录,以及使用“cd~”命令切换到当前用户的家目录,抑或使用“cd~username”命令切换到其他用户的家目录   3.ls命令 ls命令用于显示目录中的文件信息,使用ls命令的-a参数可以看到全部文件(包括隐藏文件),使用-l参数可以查看文件的属性、大小等详细信息。将这两个参数整合之后,再执行ls命令即可查看当前目录中的所有文件并输出这些文件的属性信息: .开头的是隐藏文件   如果想要查看目录属性信息,则需要额外添加一个-d参数。例如,可使用如下命令查看/etc目录的权限与属性信息:   4.tree命令 tree命令用于以树状图的形式列出目录内容及结构  5.find命令 find命令用于按照指定条件来查找文件所对应的位置,语法格式为“find [查找范围] 寻找条件”。   6.locate命令 locate命令用于按照名称快速搜索文件所对应的位置   7.whereis命令 whereis命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置,语法格式为“whereis命令名称”。 简单来说,whereis命令也是基于updatedb命令所生成的索引库文件进行搜索,它与locate命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所在的位置。   8.which命令 which命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为“which命令名称”。 which命令是在PATH变量所指定的路径中,按照指定条件搜索命令所在的路径。也就是说,如果我们既不关心同名文件(find与locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径  

Java学习笔记16

scanner进阶使用 小数运用 package scenner;​import java.util.Scanner;​public class Demo04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = 0; float f =0.0f; System.out.println(请输入整数:); //如果...那么.. if (scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println(整数数据:+i); }else{ System.out.println(输入的不是整数数据:); } System.out.println(请输入小数:); //如果...那么.. if (scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println(小数数据:+f); }else{ System.out.println(输入的不是小数数据:); } scanner.close(); }}请输入整数:10整数数据:10请输入小数:1.1小数数据:1.1​Process finished with exit code 0​ 求和求平均数 package scenner;​import java.util.Scanner;​public class Demo05 { //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果。 public static void main(String[] args) { Scanner scanner = new Scanner(System.

Redis 04 List

在 Redis 里面,可以把 List 当成栈、队列、阻塞队列使用。 list 实际是一个链表,左右都可以插入值。 如果 key 不存在,创建新的链表。 如果移除了所有元素,空链表也代表不存在。 在两边插入或者改动值,效率最高;操作中间元素,效率相对低一些。 插入 从左插入 lpush 将一个值或者多个值,插入列表的头部,即从左插入。 127.0.0.1:6379> lpush list one # 从左插入一个值 (integer) 1 127.0.0.1:6379> lpush list two three # 从左插入多个值 (integer) 3 127.0.0.1:6379> lrange list 0 -1 # -1 即表示查询所有元素 1) three 2) two 3) one 127.0.0.1:6379> lrange list 0 1 # 查询指定下标范围元素 1) three 2) two 先进的排在后面,后进的排在前面。 从右插入 rpush 将一个值或者多个值,插入列表的尾部,即从右插入。 127.0.0.1:6379> rpush list four # 从右插入一个值 (integer) 4 127.

动态规划:P5569 [SDOI2008] 石子合并 GarsiaWachs算法

P5569 [SDOI2008] 石子合并      这题就是P1775石子合并的数据加强版,我们那题采用的是区间DP,时间复杂度为O(n3) (4*1e4)的三次方=1.6*1e13,显然超时。这里就必须用一个算法,叫做GarsiaWachs算法,可以降低时间复杂度至n2甚至nlogn.  GarsiaWachs算法:他的做法就是对于一个序列a,先int ans=0,然后从左到右找到a[k-1]<a[k+1],将a[k]和a[k-1]合并成一个新的元素a[temp],从a[k-1]向左寻找,找到第一个比他大的,插入在他后面,ans+=a[temp],注意要把a[-1]和a[终点]定义为无穷大,方便寻找插入。然后再重复这个操作,直到序列中没有a[k-1]<a[k+1].原理我也不会推导,只知道这么个结论。  这是我的代码:利用stl来操作,但是要开O2优化,否则只有70分,T3个点。 1 //GarsiaWachs 2 //开O2 3 #include<iostream> 4 #include<cmath> 5 #include<algorithm> 6 #include<vector> 7 #include<climits>//INT_MAX的头文件 8 using namespace std; 9 int read() 10 { 11 int f = 1; 12 int ans = 0; 13 char c = getchar(); 14 if (c > '9' || c < '0') 15 { 16 f = -1; 17 c = getchar(); 18 } 19 while (c >= '0' && c <= '9') 20 { 21 ans = (ans << 1) + (ans << 3) + (c - '0'); 22 c = getchar(); 23 } 24 return f * ans; 25 } 26 int main() 27 { 28 int n; 29 n = read(); 30 vector<int>v; 31 v.

Linux 手工释放Linux Cache Memory

手工释放Linux Cache Memory 为了加速操作和减少磁盘I/O,内核通常会尽可能多地缓存内存,这部分内存就是Cache Memory(缓存内存)。根据设计,包含缓存数据的页面可以按需重新用于其他用途(例如,应用程序)。 缓存内存在程序运行结束后不会自动释放。这可能会导致程序频繁读写文件后可用物理内存变得很少,必要时(比如内存确实不够用),需要主动释放缓存内存。 注意:一般情况下,是不推荐主动释放缓存内存的,除非你有非常明确的需求,比如测试程序缓存内存的使用情况,因为对同一应用程序来说,缓存内存是可用的。 释放缓存内容 可以通过修改系统控制文件/proc/sys/vm/drop_caches释放缓存内存。 1、释放pagecache(页面缓存) echo 1 > /proc/sys/vm/drop_caches 2、释放reclaimable slab objects (includes dentries and inodes)(可回收slab对象(包括dentry,inode)) echo 2 > /proc/sys/vm/drop_caches 3、释放slab对象和pagecache echo 3 > /proc/sys/vm/drop_caches 这是一种非破坏性操作(non-destructive operation),不会释放任何脏对象。如果要增加此操作释放的对象数量,可以在写入/proc/sys/vm/drop_cache之前运行sync。这将最大限度地减少系统上脏对象的数量,并创建更多待删除的候选对象。 需要注意的是/proc/sys/vm/drop_caches 不是用于控制,各种内核缓存(inodes,dentries,pagecache等等)增长的方法。当系统其它地方需要内存时,Linux内核会自动回收这些对象。 使用该文件可能引发性能问题。因为它会删除缓存对象,可能需要消耗大量的I/O和CPU才能重新创建被删除的对象,尤其是这些对象被大量使用的情况下。因此,不建议在测试或调试环境之外使用。 实践测试 # free -m total used free shared buff/cache available Mem: 7794 2373 1478 431 3942 4691 Swap: 3967 0 3967 # echo 1 > /proc/sys/vm/drop_caches # free -m total used free shared buff/cache available Mem: 7794 2373 2600 431 2821 4705 Swap: 3967 0 3967 # echo 2 > /proc/sys/vm/drop_caches # free -m total used free shared buff/cache available Mem: 7794 1635 5527 431 631 5495 Swap: 3967 0 3967 # echo 3 > /proc/sys/vm/drop_caches # free -m total used free shared buff/cache available Mem: 7794 1635 5529 431 630 5496 Swap: 3967 0 3967 参考连接 https://www.

linux

Linux常规操作 1.目录:查看【ls】;进入【cd】;快捷键{向上【cd..】;后退【cd-】;回到home【cd~】;进入根目录【cd/】}  查看目录结构【tree】;新建目录{多级mkdir -p;例如:mkdir -p one/two/three}  复制【cp -r+原目录+目标目录】;删除【rm -r】; 2.文件:新建【touch】;复制【cp+文件名+目录】;删除【rm】;移动/重命名【mv】;查看【cat】;  编辑{vim/sublime/gedit/其他}

# shell脚本(2)正则表达式

一、基础正则表达式 # 元字符 ^行首定位符 [root@init-02 ~]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [root@init-02 ~]# grep ^root /etc/passwd root:x:0:0:root:/root:/bin/bash $行尾定位符 love$ .匹配任意单个字符 [root@init-02 ~]# grep abc 1.txt abc [root@init-02 ~]# grep adc 1.txt adc [root@init-02 ~]# grep a.c 1.txt abc adc *匹配前导符0到多次 [root@init-02 ~]# cat 1.txt a ab abc abcd abcde abcdef ggg hhh iii [root@init-02 ~]# grep abc* 1.txt ab abc abcd abcde abcdef [root@init-02 ~]# grep abcd* 1.txt abc abcd abcde abcdef .

|NO.Z.00008|——————————|Deployment|——|Hadoop&OLAP数据库管理系统.v08|---------------------------------|ClickH

[BigDataHadoop:Hadoop&OLAP数据库管理系统.V08] [Deployment.OLAP数据库管理系统][|ClickHouse:ClickHouse链接JDBC|]一、JDBC### --- ClickHouse链接JDBC ~~~ 允许CH通过 JDBC 连接到外部数据库。 ~~~ 要实现JDBC连接,CH需要使用以后台进程运行的程序 clickhouse-jdbc-bridge。 ~~~ 该引擎支持 Nullable 数据类型。### --- 建表语法 CREATE TABLE [IF NOT EXISTS] [db.]table_name ( columns list... ) ENGINE = JDBC(dbms_uri, external_database, external_table)### --- 引擎参数 ~~~ dbms_uri — 外部DBMS的uri. ~~~ 格式jdbc:://:/?user=&password=. MySQL示例: jdbc:mysql://localhost:3306/?user=root&password=root. ~~~ external_database — 外部DBMS的数据库名. ~~~ external_table — external_database中的外部表名.二、ClickHouse链接JDBC示例### --- 在mysql下建表并加载数据 ~~~ # 通过mysql控制台客户端来创建表 ~~~ # Creating a table in MySQL server by connecting directly with it’s console client: mysql> create database clickhouse; mysql> CREATE TABLE `clickhouse`.

|NO.Z.00007|——————————|Deployment|——|Hadoop&OLAP数据库管理系统.v07|---------------------------------|ClickH

[BigDataHadoop:Hadoop&OLAP数据库管理系统.V07] [Deployment.OLAP数据库管理系统][|ClickHouse:ClickHouse链接kafka|]一、ClickHouse链接Kafka### --- ClickHouse链接Kafka:此引擎与 Apache Kafka 结合使用。 ~~~ # Kafka 特性: ~~~ 发布或者订阅数据流。 ~~~ 容错存储机制。 ~~~ 处理流数据。### --- 链接语法格式 ~~~ # 老版格式: Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format [, kafka_row_delimiter, kafka_schema, kafka_num_consumers])~~~ # 新版格式: Kafka SETTINGS kafka_broker_list = 'hadoop01:9092', kafka_topic_list = 'topic1,topic2', kafka_group_name = 'group1', kafka_format = 'JSONEachRow', kafka_row_delimiter = '\n', kafka_schema = '', kafka_num_consumers = 2~~~ # 必要参数: ~~~ kafka_broker_list – 以逗号分隔的 brokers 列表 (localhost:9092)。 ~~~ kafka_topic_list – topic 列表 (my_topic)。 ~~~ kafka_group_name – Kafka 消费组名称 (group1)。 ~~~ 如果不希望消息在集群中重复,请在每个分片中使用相同的组名。 ~~~ kafka_format – 消息体格式。使用与 SQL 部分的 FORMAT 函数相同表示方法, ~~~ 例如 JSONEachRow。了解详细信息,请参考 Formats 部分。~~~ # 可选参数: ~~~ kafka_row_delimiter - 每个消息体(记录)之间的分隔符。 ~~~ kafka_schema – 如果解析格式需要一个 schema 时,此参数必填。 ~~~ 例如,普罗托船长 需要 schema 文件路径以及根对象 schema.

3.2 常用Linux命令

1.ifconfig命令 ifconfig命令用于获取网卡配置与网络状态等信息,英文全称为“interface config”,语法格式为“ifconfig [参数] [网络设备]” 使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量  Linux还有另一个常用的查看网卡的命令 ip addr简写ip a  2.uname命令 uname命令用于查看系统内核版本与系统架构等信uname -a (Linux查看版本当前操作系统内核信息) cat /proc/version (Linux查看当前操作系统版本信息) cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息) cat /proc/cpuinfo和lscpu (Linux查看cpu相关信息,包括型号、主频、内核信息等) getconf LONG_BIT和uname -m (查看系统位数) 3.uptime命令 uptime命令用于查看系统的负载信息 显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况  4.free命令 free命令用于显示当前系统中内存的使用量信息  5.who命令 who命令用于查看当前登入主机的用户终端信息  6.last命令 last命令用于调取主机的被访记录  7.ping命令 ping命令用于测试主机之间的网络连通性,语法格式为“ping [参数] 主机地址”  -I 后面既可以指定网卡名称也可以指定IP  8.tracepath命令 tracepath命令用于显示数据包到达目的主机时途中经过的所有路由信息,语法格式为“tracepath [参数] 域名”。 tracepath,traceroute,mtr都可以查看路由信息,常用mtr -nz  Linux 下 traceroute 默认发送的时 udp 协议 request 包,很多路由节点上会丢弃该部分数据包不做响应;windows 下 tracert、mtr 以及 Linux 下 mtr 默认发送的是是 icmp 协议 request 包,测试网络时更有参考价值