About neohope

一直在努力,还没想过要放弃...

Linux常用命令10Vim常用操作

0.基本操作
0.1多行复制
0.1.1、复制方法一
A、将光标移动到要复制的起始行
B、如果复制1行,则按下yy,如果是复制n行,则按下nyy
C、光标移动到粘贴地点,按下p

0.1.2、复制方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no co target_line_no

0.1.3、复制方法三(方法二+标签)
A、将光标移动到要复制的起始行,输入ma
B、将光标移动到要复制的结束行,输入mb
C、将光标移动到要复制的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b co ‘c

0.1.4、剪切方法一
A、将光标移动到要剪切的起始行
B、如果剪切1行,则按下dd,如果是剪切n行,则按下ndd
C、光标移动到粘贴地点,按下p

0.1.5、剪切方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no m target_line_no

0.1.6、剪切方法三(方法二+标签)
A、将光标移动到要剪切的起始行,输入ma
B、将光标移动到要剪切的结束行,输入mb
C、将光标移动到要剪切的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b m ‘c

1.正则表达式
1.1.行首、行尾及空格
1.1.1 符号具体含义

^表示行首
$表示行尾
\s表示空格

1.1.2 应用举例

在全局范围内删除开始空格
:%s/^\s\+/

删除末尾空格
:%s/\s\+$/

删除空行
:g/^$/d

删除空白行
:g/^\s\+$/d

删除-开始的行
:g/^-/d

2.Table与空格互转
2.1、空格转TAB

:set ts=8
:set expandtab
:%retab!

2.2、TAB转空格

:set ts=8
:set noexpandtab
:%retab!

3.删除重复行
3.1、方法一

先排序
:sort
然后删除的重复项的后面一项
:g/\%(^\1$\n\)\@<=\(.*\)$/d

3.2、方法二

先排序
:sort
然后删除重复项的前面一项
:g/^\(.*\)$\n\1$/d

3.3、方法三

先排序
:sort
然后将所有重复记录替换为第一条
:%s/^\(.*\)\(\n\1\)\+$/\1/

4.奇偶行
4.1、删除奇数行

%s/\(^.*$\)\n\(^.*$\)/\1

4.2、删除偶数行

%s/\(^.*$\)\n\(^.*$\)/\2

4.3、奇偶行合并,以tab分隔

%s/\(^.*$\)\n\(^.*$\)/\1\t\2

或

%s/\n\(.*\n\)/\t\1

5.生成行号
5.1、方法1

:r !seq 1 100

5.2、方法2

:let n=0 | g/^/s//\=n/|let n+=1 

6、每行首字母大写

%s/^\([a-z]\)/\U\1/

7.将行调整为固定宽度

:s/\v(.{80})/\1\r/g

CMD常用命令01%1的用法两则

1.新建个bat文件
然后在里面写上:
attrib +h +s %1
然后把任意文件或文件夹拖放到上面,
就可以把其设成系统+隐藏属性了。

2.新建鼠标右键菜单
名称:用记事本打开
命令:notepad %1
这样就能随时用记事本打开文件了。

还有,不仅%1呢,%2,%3都可以的,
比如一次想把很多文件设成隐藏属性时,
一起拖拽到文件图标上就好了,自己试试吧。

attrib +h +s %1
attrib +h +s %2
attrib +h +s %3
attrib +h +s %4
attrib +h +s %5
attrib +h +s %6
attrib +h +s %7
attrib +h +s %8
attrib +h +s %9

Linux常用命令09tar压缩解压文件

1、压缩文件

#只归档不压缩
tar –cf OUT_FILE_NAME.tar PATH_TO_FOLDER
#归档后用gzip压缩
tar –czf OUT_FILE_NAME.tar.gz PATH_TO_FOLDER
#归档后用bzip2压缩
tar –cjf OUT_FILE_NAME.tar.bz2 PATH_TO_FOLDER
#归档后用compress压缩
tar –cZf OUT_FILE_NAME.tar.Z PATH_TO_FOLDER

2、解压文件

#解压tar
tar –xvf IN_FILE_NAME.tar
#解压tar.gz
tar -xzvf IN_FILE_NAME.tar.gz
#解压tar.bz2
tar -xjvf IN_FILE_NAME.tar.bz2
#解压tar.Z
tar -xZvf IN_FILE_NAME.tar.Z

【转载】Kafka:面向日志处理的分布式消息系统(Kafka: A Distributed Messaging System for Log Processing)

Kafka:面向日志处理的分布式消息系统

Kafka: A Distributed Messaging System for Log Processing

贡献:提出基于日志的分布式消息队列模型,统一了日志收集与流式数据传输的架构。,如今已成为工业界消息队列的事实标准,支撑了几乎所有实时数据处理场景。

Jay Kreps Neha Narkhede Jun Rao
LinkedIn Corp.

摘要

日志处理已成为消费级互联网公司数据管道中的核心组成部分。本文介绍了Kafka——一款我们为采集与传输高容量日志数据、实现低延迟交付而开发的分布式消息系统。该系统融合了现有日志聚合系统与消息系统的设计思想,同时适用于离线与在线消息消费场景。我们在Kafka中做出了诸多非常规但具备实用性的设计选择,以实现系统的高效性与可扩展性。实验结果表明,与两款主流消息系统相比,Kafka具备更优异的性能表现。目前Kafka已在生产环境中投入使用一段时间,每日可处理数百GB的新增数据。

Continue reading 【转载】Kafka:面向日志处理的分布式消息系统(Kafka: A Distributed Messaging System for Log Processing)→

VBS枚举硬盘信息

1、GetHDInfo.vbs
这个脚本,是Google后找到的,虽然是VBS,但比网上绝大多数的代码,靠谱的多得多

'---------------------------------------------------
'Get the properties of all partitions on all drives, 
'including USB drives.
'Core code from the Scripting Guy
'7.1.2012 FNL
'---------------------------------------------------
Set oWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set cDiskDrives = oWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")

For Each oDrive In cDiskDrives
	WScript.echo "Disk #" & oDrive.Index & "(" & oDrive.InterfaceType & "): " _
		& oDrive.Caption & ", Size=" & Format(oDrive.Size, False) & " MBytes"
	WScript.echo "Part.  Drive          F/S   Size(MBytes)  Free(MBytes)  Active  Primary"
	WScript.echo String(71, "-")

	'WScript.Echo "ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & Replace(oDrive.DeviceID, "\", "\\") & """} WHERE AssocClass = " & "Win32_DiskDriveToDiskPartition"

	Set cPartitions = oWMIService.ExecQuery("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" _
		& Replace(oDrive.DeviceID, "\", "\\") & """} WHERE AssocClass = " & "Win32_DiskDriveToDiskPartition")
 
	For Each oPartition In cPartitions
		aPartition = Split(oPartition.DeviceID)
		Set cLogicalDisks = oWMIService.ExecQuery _
	 		("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & oPartition.DeviceID _
			& """} WHERE AssocClass = Win32_LogicalDiskToPartition")
 		if oPartition.Bootable         then sActive  = "Yes" Else sActive  = "No "
 		if oPartition.PrimaryPartition then sPrimary = "Yes" Else sPrimary = "No "
		For Each oLogicalDisk In cLogicalDisks
			For Each oVolume In cLogicalDisks
				sLabel = Left(oVolume.VolumeName & Space(12), 12)
			Next
			With oLogicalDisk
				sSpacer = Space(8 - Len(.FileSystem))
	 	   		WScript.Echo " " & aPartition(3) & "    " & .DeviceID & " " & sLabel _
				& .FileSystem & sSpacer & Format(.Size, True) & "       " _
				& Format(.FreeSpace, True) & "     " & sActive & "     " & sPrimary
			End With
		Next
	Next
	WScript.Echo
Next

Function Format(n, bPad)
	n = FormatNumber(n/1000000, 0, -1, 0, -1)
	if bPad then Format = Space(7-Len(n)) & n Else Format = n
End Function

2、运行

@REM do not use wscript GetHDInfo.vbs
@cscript GetHDInfo.vbs

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Disk #1(IDE): Hitachi HTS545032B9A302 ATA Device, Size=320,070 MBytes
Part.  Drive          F/S   Size(MBytes)  Free(MBytes)  Active  Primary
-----------------------------------------------------------------------
 #1    D: WinAPP      NTFS    319,862       182,455     No      Yes

Disk #0(IDE): Samsung SSD 850 EVO 500GB ATA Device, Size=500,105 MBytes
Part.  Drive          F/S   Size(MBytes)  Free(MBytes)  Active  Primary
-----------------------------------------------------------------------
 #1    E: MacSSD      HFS     256,114        89,747     No      Yes
 #3    C: BOOTCAMP    NTFS    242,999        45,934     Yes     Yes

Press any key to continue . . .

Linux常用命令08cp命令强制覆盖文件

最近,用cp命令拷贝文件夹时,发现即使用了-f选项,覆盖文件夹时,仍然要一个文件一个文件的确认,吐血啊。

后来发现,我调用的cp命令其实是一个别名,用alias命令就可以看到了。

alias cp=’cp -i’

额,系统为了安全,默认强制大家在覆盖前,逐个进行确认。知道了原因,那解决问题就简单了。

方法一、用管道,对每个提醒直接进行确认

yes|cp -fr src dest

方法二、取消别名

unaslias cp 

方法三、强制使用cp命令,而不是使用别名

\cp -fr src dest 

Linux常用命令05scp上传及下载文件

1、从服务器上下载文件

scp username@servername:/remote_path/remote_filename /local_path

2、上传本地文件到服务器

scp /local_path/local_filename username@servername:/remote_path   

3、从服务器下载整个目录

scp -r username@servername:/remote_path/remote_foldername /local_path

4、上传目录到服务器

scp -r /local_path/local_foldername username@servername:/remote_path

Linux常用命令04网络基本操作

1、APT安装及卸载软件

#查看已安装的软件
dpkg -l | grep ssh

#查找软件
apt-cache search ssh

#安装软件
sudo apt-get install ssh

#卸载软件
sudo apt-get remove ssh
#或者
sudo dpkg -r ssh

#purge软件
sudo apt-get remove --purge ssh
sudo dpkg -P ssh

2、重启网络(方法一)

ifconfig eth0 down
ifconfig eth0 up

3、重启网络(方法二)

/etc/init.d/networking restart

4、刷新机器名

/etc/init.d/hostname.sh start

5、刷新环境变量

source /etc/profile

6、查看本地网络状态

ip addr
netstat -na
#UDP类型的端口
netstat -nupl
#TCP类型的端口
netstat -ntpl

7、测试远程网络状态

ping ip_addr
telnet ip_addr port
traceroute ip_addr