小总结

linux命令模式如下:

$ command  [-options]  parameter1  parameter2 ...

    指令                选项        参数(1)     参数(2)
1、日期时间:
date +%Y/%m/%d(展示当前年月日)
date +%H:%M(展示当前时间)
2、日历:
cal [year](列出某年12个月份的日历)
cal [month] [year](列出某年某月的日历)
3、计算器:
bc 敲quit+回车来结束
4、/ 是根节点,~ 是代位符(个人目录地址/home/username)

5、命令补全提示

Tab键

6、结束当前执行

ctrl+c

7、翻页:

shift+PageUP

shift+PageDown

8、求助说明

--help

9、以root执行命令
sudo command...(前面加sudo)
password:你当前的密码(会要求你输入你当前的密码)
10、修改root密码
sudo passwd
password:你当前的密码
Enter new UNIX password:这个是root的密码 

Retype new UNIX password:重复root的密码 

11、切换root

su root
password:所切换到的用户的密码
12、拥有执行的权限:

chmod a+x filename

13、执行

.  :代表当前的目录,也可以使用 ./ 來表示;
.. :代表上一层目录,也可以 ../ 來代表。
 ./command 
由于指令的执行并非在正规的执行目录(/bin, /usr/bin等为正规),『./』代表『本目录』的意思,所以『./run.sh』代表『执行本目录下, 名为run.sh的文件』

14、查看当前所在目录

pwd

15、文件创建删除相关

mkdir 创建单层文件夹

mkdir -p 可以多层创建文件夹
rmdir 删除单层文件夹
rmdir -p 可以删除多层文件夹
rm 删除文件(下层为空的文件)
rm -r 暴力删除文件(下层不为空的所有文件)
cp复制
mv移动
16、查看文件
cat file(加载全部)
more file(一页一页往下加载)(空白键往下翻页,enter键往下翻行,/键往下搜索关键字,?键往上搜索关键字,q键离开)
less file(支持往上往下加载)(空白键往下翻页,enter键往下翻行,/键往下搜索关键字,?键往上搜索关键字,q键离开,pageup/pagedown翻页,上下箭头翻行)

17、查看变量

which java

whereis java
18、find 目录(查找下面的所有文件)

19、压缩解压

gzip gunzip

.tar 打包归档文件,不压缩
.zip 打包归档文件,压缩

.gz  打包文件,压缩

tar 解压文件到指定目录:tar -zxvf /home/zjx/aa.tar.gz -C /home/zjx/pf
tar [-cxtzjvfpPN] 文件与目录....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看tarfile 里面的文件!
特别注意,在参数的下达中,c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有gzip 的属性?亦即是否需要用gzip 压缩?
-j :是否同时具有bzip2 的属性?亦即是否需要用bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在f 之后要立即接文件名喔!不要再加参数!

20、创建文件:
vi file(创建文件并进入文件编辑状态)

touch file(只创建,不编辑)

21、安装vim

ubuntu默认没有安装vim 

使用sudo apt-get update && sudo apt-get install vim安装即可。root用户则不需要加sudo

22、vi相关

基本上 vi 共分為三种模式,分別是『一般指令模式』、『编辑模式』与『指令列命令模式』。
『一般指令模式』:上下左右移动,复制粘贴,删除:常用:x向后删除一个字元(del),X向前删除一个字元,dd刪除游标所在的那一整列,u还原前一個动作。/向下搜索,?向上搜索,G移至最后一列,gg移至第一列。
『编辑模式』:o,O,r,R,a,A,i,I进入,esc键离开,i游标处进入,o游标处的上下列进入,r游标处开始替换,a游标所在列头尾进入
『指令列命令模式』:,/,?来完成。:w写入,:w!强制写入,:q离开,:q!强制离开不保存,:wq写入并离开,:wq!强制写入并离开,!带强制的意思
/向下搜索,?向上搜索,:%(每一行,不加%则只是替换游标所在行)s/替换前/替换后/g(所有,不加g则只是替换第一个)

23、定义变量

declare -i sum=1+2

echo $sum或echo ${sum}
-i定义整形变量,-x定义环境变量,-r定义只读变量
+i取消整形变量,+x取消环境变量,+r取消只读变量(-加属性,+去属性)
24、定义数组
var[1]=str
echo ${var[1]}(需加{})
25、source 文件,使之生效,读入环境。

26、export 变量,导出到环境变量。

27、netstat -nap | grep PID

28、lsof -i :端口号

tail -f filename实时查看日志。

less G查看最后,gg查看最前 /向下查找 ?向上查找 b/n往上往下 q离开

if [  ]

then

fi

vi,echo,touch,cp,mv创建文件

chmod 777 filename (User、Group、及Other的权限。)

r=4(读),w=2(写),x=1(执行)

若要rwx属性则4+2+1=7;

若要rw-属性则4+2=6;

若要r-x属性则4+1=5。

实现一个简单定时器

/usr/test/test.sh

#! /bin/bash

echo "123" >> /usr/test/test.txt

 

crontab -e 打开定时器任务编辑器

* * * * * /usr/test/test.sh

分钟 小时 日 月 星期 命令 */带数字(每)

crontab -r 删除定时器

启动zookeeper客户端,create 子节点

服务端new serversocket 指定端口 ,进入阻塞accept

客户端 new socket指定服务器地址和端口,建立通道流

心跳机制,客户端和服务器端定时互发信息。检测对方是否还活着

长连接:服务器发送完数据不断开连接,除非超过定义的最长时限

zookeeper集群:广播模式(同步)和恢复模式(选举leader);心跳机制\

服务的注册和发现

egrep -v "^#|^$" zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataLogDir=/opt/zookeeper/logs
dataDir=/opt/zookeeper/data
clientPort=2181
autopurge.snapRetainCount=500
autopurge.purgeInterval=24
server.1= 192.168.1.148:2888:3888
server.2= 192.168.1.149:2888:3888
server.3= 192.168.1.150:2888:3888

tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。

initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。

当已经超过10个心跳的时间(也就是tickTime)长度后 zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20秒。

syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。

dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里;

clientPort这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求;

server.A=B:C:D中的A是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader服务器交换信息的端口,D是在leader挂掉时专门用来进行选举leader所用的端口。

除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下。

这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A),在zoo.cfg文件中配置的dataDir路径中创建myid文件。

leader,follower

Zookeeper集群搭建

dubbo:分布式RPC远程调用服务框架,基于Spring的自定义Schema标签模式扩展定义服务接口: (该接口需单独打包,在服务提供方和消费方共享)

在服务提供方实现接口:(对服务消费方隐藏实现),用Spring配置声明暴露服务,并启动(ClassPathXmlApplicationContext)

消费方通过Spring配置引用远程服务,加载Spring配置,并调用远程服务。

透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。

dubbo工程

线程t1 join(优先执行)

join的意思是使得放弃当前线程的执行,并返回对应的线程,程序在main线程中调用t1线程的join方法,则main线程放弃cpu控制权,并返回t1线程继续执行直到线程t1执行完毕

线程计算器CountDownLatch

latch.countDown();(线程执行完成,执行减一)

latch.await();

AtomicInteger线程安全的加减操作接口

ThreadLocal线程本地变量

1

2

3

4

5

6

7

8

9

10

11

12

13

14

private static final ThreadLocal threadSession = new ThreadLocal();

  

public static Session getSession() throws InfrastructureException {

    Session s = (Session) threadSession.get();

    try {

        if (s == null) {

            s = getSessionFactory().openSession();

            threadSession.set(s);

        }

    catch (HibernateException ex) {

        throw new InfrastructureException(ex);

    }

    return s;

}

当很多线程需要多次使用同一个对象,并且需要该对象具有相同初始化值的时候最适合使用ThreadLocal。ThreadLocal以空间换时间,synchronization同步则以时间换空间

ActiveMQ

activeMQ入门教程

activeMQ工程

netty异步事件处理框架

基于NIO(no-blocking io)非阻塞IO,多路复用。

传统io,一个请求开一个socket开一个线程处理业务逻辑。其他线程阻塞。

nio,channel通道(change nol),buffer进行数据传输,缓存流,selector选择器。请求进通道,注册进selector,select监听通道进行处理。一个通道处理完成才开一个线程处理。而不是每个请求来就开一个线程。

集群session共享

Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享

Windows下使用Nginx搭建集群及Session共存

修改tomcat server.xml 和应用web.xml

nginx 设置ip_hash,保证一个ip地址永远访问一台web服务器

spring-session实现分布式集群session的共享

Redis集群搭建与简单使用

MongoDB分布式文件存储的数据库

mongodb入门教程

js即可操作

使用redis实现分布式锁,防止表单重复提交

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

//可以抽取出常量

        String lockUniquePrefix = "lock";

 

        Jedis jedis = getJedis();        //1. 获取锁

        // key:"lock"+方法名,value:时间戳

        //NX -- Only set the key if it does not already exist.

        String key = lockUniquePrefix + Thread.currentThread().getStackTrace()[1].getMethodName();

        Integer userId = 222;

        String conventionK = requestSafeThreadParamDto.getCid();        //不同的两个用户同时提交订单,是允许并发的,这种情况不应该使用锁机制来限制,

        //所以我们使用分布式锁限制的只是 两次请求信息完全相同的两次请求,

        //造成这种两次完全相同的请求的原因,可能是网络卡顿导致用户重复点击,或者nginx 的重发

        String hashSource = WebServletUtil.buildHashSource(request, userId, conventionK);        //对请求信息 做hash

        long crc32Long = EncryptionUtil.getHash(hashSource);        //"OK":成功;null:失败

        String result = jedis.set(key + crc32Long, "aa""NX""EX"/*seconds*/1000);

        Const.pool.returnResource(jedis);        boolean success = "OK".equals(result);

        System.out.println("success :" + success);

        System.out.println("result :" + result);        try {            if (success) {                //2. 执行具体业务逻辑

                //...

            }

        catch (Exception e) {

            e.printStackTrace();

        finally {            //3. 业务逻辑执行完成之后,释放锁

            if (null != del && del) {

                jedis = getJedis();

                jedis.del(key);

                Const.pool.returnResource(jedis);

            }

        }//        return new BaseResponseDto(true).setValue(result).toJson();

        return BaseResponseDto.put2("result", result).put("success", success).toJson();

使用redis实现分布式锁

国密sm2.zip

 执行fdisk -l即可看到加载的硬盘。parted -l则可以看到该硬盘还不可用。执行mkfs -t ext4 /dev/sdc格式化硬盘,mount /dev/sdc /opt将硬盘挂载到/opt,lsblk即可看到硬盘已经挂载成功

创建文件夹opt/files,执行yum install cifs-utils -y或apt-get install cifs-utils安装cifs工具,执行mount -t cifs -o username=administrator,password='',uid=0,gid=0 网络地址/fileSource/opt/files,将window主机下的D:\fileSource文件夹挂载到/opt/files

df -h

apache-jmeter-3.3的简单压力测试使用方法

https://www.cnblogs.com/ios9/p/7644951.html

maven install打jar包,META-INF下的MANIFEST.MF定义入口main函数

Program arguments和VM arguments,方法参数和运行时系统变量(system.getproperty)

java -jar -Dxxx=xxx xxx.jar xxx xxx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz_cl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值