Win10系统关闭Cortana(小娜)的终级方法

十一月 15th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com/thread-17945-1-1.html http://www.myzhenai.com.cn/post/2337.html
关键字: Cortana(小娜) Cortana win10 Cortana
我的系统版本是: win10专业版 14393
自从更新了win10后,任务管理器里总是莫明其妙的自动出现两个Cortana(小娜)的进程,关闭了又出现, 我知道这个是win10的秘书功能,但是我用不到, 偏偏这个却又无法关闭, 查找了网络上的关闭方法, 都是教你在 设置\隐私\语音,黑迹书写和键入\停止收集有关我的信息\关闭

1、使用 Windows + R 快捷键打开「运行」— 执行 gpedit.msc 打开组策略编辑器。
2、导航到「计算机配置」—「管理模板」—「Windows 组件」—「搜索」。
3、在右侧面板中找到「允许使用 Cortana」条目,将其设置为「已禁用」即可。

1、使用 Windows + R 快捷键打开「运行」— 执行 regedit 打开注册表编辑器。
2、导航到如下路径:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\
3、新建一个名为 Windows Search 的项。
4、在Windows Search项下新建一个名为 AllowCortana 的 DWORD(32-位)值,并将其值设置为 0 即可。

但是我按照以上方法设置过一遍,却发现仍然没有效果,重启系统后进入系统,仍旧可以在任务管理器里看到两个Cortana(小娜)的进程. 在折腾的过程中, 我在任务管理器里的Cortana(小娜)的进程上右键转到文件位置的时候,发现它调用的不是一个程序,而是一个目录的位置, C:\Windows\SystemApps\Microsoft.Windows.Cortana_cw5n1h2txyewy 于是就想通过修改或删除这个目录是不是会有效果呢? 因为担心Cortana(小娜)会与系统索引搜索功能有关,所以就不删除,只是把这个目录改了一个名字, 结果问题解决了. 我把 Microsoft.Windows.Cortana_cw5n1h2txyewy 目录重命名为 back_Microsoft.Windows.Cortana_cw5n1h2txyewy 问题解决, 重命名过程中必须要终止Cortana(小娜)的进程和使用系统管理员权限.

Linux默认声音设备无法打开的解决方法

十月 22nd, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2326.html http://www.myzhenai.com/thread-17940-1-1.html
关键词: 默认声音设备无法打开 VMware无法自动检测声卡 设置默认声卡 Linux设置默认声卡
我有一台VMware虚拟机里的CentOS系统最近运行的时候总是会弹出提示 默认声音设备无法打开 总是要手动去连接声卡, VMware无法自动检测声卡了. 刚开始的时候我以为是CentOS的声卡驱动的问题, 因为我安装的是Alsa声卡,但是检测声卡驱动的时候是显示声卡驱动安装了的. 后来又以为是Vmware tools的问题, 于是重新安装了一遍VMware tools. 却发现还是没有解决问题, 于是不得不转换思路, 会不会是虚拟的声卡驱动有多个声卡呢? 所以才导致无法确定使用哪一个声卡是默认声卡而无法识别. 后面一步一步排查,还真是. 最后就是设置了默认声卡解决了问题.步骤如下

[RucLinux@localhost ~]$ cat /proc/asound/cards
 0 [AudioPCI       ]: ENS1371 - Ensoniq AudioPCI
                      Ensoniq AudioPCI ENS1371 at 0x2080, irq 16
[RucLinux@localhost ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AudioPCI [Ensoniq AudioPCI], device 1: ES1371/2 [ES1371 DAC1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
 [RucLinux@localhost ~]$ su root
密码:
[root@localhost RucLinux]# find / -name alsa.conf
/usr/share/alsa/alsa.conf
[root@localhost RucLinux]# vi /usr/share/alsa/alsa.conf
[root@localhost RucLinux]# vi /etc/asound.conf

先查看你的声卡,然后再编辑/etc/asound.conf这个文件,将你指定的声卡序列号添加在这个文件里, 你只需要修改以下这三行后面的数字即可以了. 即默认声卡为第几个,0即为第一,1即为第二,以此类推.

defaults.pcm.card 1
defaults.pcm.device 1
defaults.ctl.card 1

Linux(CentOS)下的Shockwave Flash shell一键更新脚本

九月 26th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2318.html http://www.myzhenai.com/thread-17933-1-1.html
关键字: Shockwave Flash一键更新脚本 Flash一键更新脚本
这个脚本其实是我自己用的, 我的系统里安装了FlashPlayer软件和火狐(firefox)浏览器里安装了Shockwave Flash插件,因为要一个一个来更新显得太麻烦,所以我自己写了这么一个小脚本来快速更新. 原理很简单, 从官方网站上下载FlashPlayer的最新版本到本地覆盖旧版本程序,然后通过flashplayer -v得到最新的版本号,再通过指定的官方下载链接将Shockwave Flash插件下载到本地并安装,在安装之前自动卸载旧版本的Shockwave Flash.

# !/bin/bash
wget http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_sa.i386.tar.gz /*下载最新版本文件*/
tar -xzvf flashplayer_11_sa.i386.tar.gz /*解压当前文件*/
mv -f flashplayer /usr/bin/ /*移动当前文件*/
rm -rf LGPL /*删除当前文件目录*/
rm -rf flashplayer_11_sa.i386.tar.gz /*删除下载的源文件*/
killall -9 firefox /*终止火狐浏览器进程*/
yum remove flash-plugin -y /*卸载旧版本的Shockwave Flash插件*/
h=`flashplayer -v|sed '/^$/!h;$!d;g'|sed 's/,/./g'` /*通过flashplayer -v得到当前最新版本的版本号*/
wget https://fpdownload.adobe.com/get/flashplayer/pdc/$h/flash-plugin-$h-release.i386.rpm /*下载最新版本的插件*/
rpm -ivh flash-plugin-$h-release.i386.rpm /*安装最新版本的插件*/
# !/bin/bash
wget http://fpdownload.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_sa.i386.tar.gz
tar -xzvf flashplayer_11_sa.i386.tar.gz
mv -f flashplayer /usr/bin/
rm -rf LGPL
rm -rf flashplayer_11_sa.i386.tar.gz
killall -9 firefox
yum remove flash-plugin -y
h=`flashplayer -v|sed '/^$/!h;$!d;g'|sed 's/,/./g'`
wget https://fpdownload.adobe.com/get/flashplayer/pdc/$h/flash-plugin-$h-release.i386.rpm
rpm -ivh flash-plugin-$h-release.i386.rpm
Linux(CentOS)下的Shockwave Flash shell一键更新脚本

Linux(CentOS)下的Shockwave Flash shell一键更新脚本

一个简单的检测网络Shell脚本

九月 9th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2309.html http://www.myzhenai.com/thread-17923-1-1.html
关键词: Shell判断变量是否为空 Shell判断参数是否为空 Shell检测网络 Shell ping Shell traceroute

Shell ping Shell traceroute

Shell ping Shell traceroute


Shell ping Shell traceroute

Shell ping Shell traceroute


其实这个Shell脚本就是简单的将ping和traceroute集合在一起. 因为我总是会忘记traceroute的拼法.

# !/bin/bash
##############################################################################################################################################
# This is the Network detection script tool
# Author: RucLinux 海南胡说 海南仙岛
# Website: www.myzhenai.com www.myzhenai.com.cn www.haikou-china.com jiayu.mybabya.com www.0898-shop.com
##############################################################################################################################################
if [ ! -n $1 ];then
echo "You did not enter a URL or IP"
else
p=`ping -c 5 $1`
echo -e "$p\n"
t=`traceroute $1`
echo -e "$t\n"
fi

Shell 自动删除指定字符窜后边的字符窜

九月 3rd, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2300.html http://www.myzhenai.com/thread-17920-1-1.html
关键词: Linux删除指定字符窜后边的字符窜 Shell删除指定字符窜后边的字符窜 sed删除指定字符窜后边的字符窜 sed删除右边的字符窜 sed删除左边的字符窜
对于shell编程的过程中我们都会遇到一个问题,如何替换或删除掉文件中指定字符窜后边或前边的一段字符, 如果使用正则的话是方便,但正则也没有办法做到针对不同的字符窜, 更何况是不懂正则的朋友,像我这样.
所以我换了个思路, 先取到需要替换或删除的字符窜,放到一个变量中,然后再用这个变量做为替换或删除的关键词去操作. 实现方法也很简单.
因为演示的文本里有敏感关键词,所以我只能是截图来演示了. 但代码我会详细解释.

Shell 自动删除指定字符窜后边的字符窜

Shell 自动删除指定字符窜后边的字符窜


Shell 自动删除指定字符窜后边的字符窜

Shell 自动删除指定字符窜后边的字符窜


Shell 自动删除指定字符窜后边的字符窜

Shell 自动删除指定字符窜后边的字符窜

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b") //这是获取整行内容,免得有分隔符或其他字符让读取的文本变成错行
sed -i '/[ltem_[0-9]]/d' database.ini
sed -i '/ItemCount/d' database.ini
sed -i '/TaskIndex/d' database.ini
sed -i '/Filename/d' database.ini
sed -i '/Path/d' database.ini
sed -i '/Percent/d' database.ini
sed -i '/Referer/d' database.ini
sed -i '/Rename/d' database.ini //以上这些都是替换掉包含指定关键词的整行.
sed -i '/^$/d' database.ini
sed -i '/^\s*$/d' database.ini //这两行是删除所有空白符或换行符或空格
sed -i 's/Link=//g' database.ini //删除所有指定字符
if  grep -q "|" database.ini ; then echo ""; else sed -i 's/$/&|/g' database.ini; fi //判断所有字符窜里是不是包含|这字符窜,如果有就不添加,如果没有就自动在每行后边添加这个字符,用作下边代码的分隔符.
for i in $(< database.ini) //进入循环
do
h=`echo $i|awk -F "?" '{ print $2 }'|awk -F "|" '{ print $1 }'` //取出指定字符窜右边的字符放到h变量中, 如果要取左边的字符,在上边的代码中将|添加在行首,然后将?和|这两个搜索关键字符互调,将$1和$2参数互换就可以了.
sed -i "s/?$h|//g" database.ini //删除?这个字符和变量里的字符窜和|这个字符.
done
IFS=$SAVEIFS

完整代码

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
sed -i '/[ltem_[0-9]]/d' database.ini
sed -i '/ItemCount/d' database.ini
sed -i '/TaskIndex/d' database.ini
sed -i '/Filename/d' database.ini
sed -i '/Path/d' database.ini
sed -i '/Percent/d' database.ini
sed -i '/Referer/d' database.ini
sed -i '/Rename/d' database.ini
sed -i '/^$/d' database.ini
sed -i '/^\s*$/d' database.ini
sed -i 's/Link=//g' database.ini
if  grep -q "|" database.ini ; then echo ""; else sed -i 's/$/&|/g' database.ini; fi
for i in $(< database.ini)
do
h=`echo $i|awk -F "?" '{ print $2 }'|awk -F "|" '{ print $1 }'`
sed -i "s/?$h|//g" database.ini
done
IFS=$SAVEIFS

WordPress自动封垃圾邮件IP的思路和实现方法

八月 21st, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2287.html http://www.myzhenai.com/thread-17912-1-1.html
关键词: wordpress垃圾回复 wordpress封ip iptables封IP wordpress自动封IP wordpress自动封发垃圾邮件的IP
众所周知,WordPress有一个自动拦截垃圾回复的插件Akismet 但是这个插件有一个不方便的地方就是它只是在垃圾回复发布了才进行拦截, 但是这个难免也会涉及到数据库写入和删除,这无疑会增加服务器的负担, 所以我的思路是调用Akismet拦截垃圾回复的IP地址,并且用Shell脚本把这些IP写入到iptables防火墙过滤名单里. 当再收到这些IP发来的请求时,系统会自动将它们丢弃,不会进入系统操作了. 实现起来很简单, 现在我们来说一说实现的步骤.
一: 将以下代码添加到 /wp-admin/includes/class-wp-comments-list-table.php 的指定位置里, 有两个地方,一个是自定义函数,一个是添加自定义函数.
参考: WordPress获取垃圾回复IP地址的方法 http://www.myzhenai.com.cn/post/1875.html http://www.myzhenai.com/thread-16324-1-1.html

/** chong zhe li kai chi */
function my_spam_ip(){
    $aip = get_comment_author_IP(); /** 得到ip地址 */
    $txt = file_get_contents("/var/wwwroot/spam.log"); /** 对比ip地址是否存在文件内,防止重复输入 */
    $txt = preg_replace("/(\r\n|\n|\r|\t)/i", '', $txt);
    if (strpos($txt,$aip) === false) /** 如果文件内找不到这个ip地址 */
    {
        $handle = fopen("/var/wwwroot/spam.log","a+"); /** 打开文件并得到一个句柄,据说a+是写入? */
        fwrite($handle,$aip."\n"); /** 将获得的ip地址添加到文件中 */
    }
    echo "Spam IP: ".$aip."\n";
    fclose($handle); /** 关闭句柄 */
    }
/** dao zhe li jie shu  */

将这段代码添加在 /wp-admin/includes/class-wp-comments-list-table.php 文件里的 < ?php ?>符号内, 然后再将 my_spam_ip(); 这句添加到下行的下方.

$author_ip_url = add_query_arg( 'comment_status', 'spam', $author_ip_url );

class-wp-comments-list-table.php

class-wp-comments-list-table.php


class-wp-comments-list-table.php

class-wp-comments-list-table.php


二: 将以下Shell脚本代码保存为.sh后缀的脚本文件,上传到服务器指定目录, 然后在cron里添加一条定时任务.
参考: Linux下使用crontab添加定时任务 http://www.myzhenai.com.cn/post/1628.html

# !/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
path="/var/wwwroot/spam.log"
size=`ls -l $path|awk '{print $5}'`
if [ $size -gt 0 ];then
for i in $(< $path)
do
if [ $i != "" ];then
h=`grep -c $i /etc/sysconfig/iptables`
if [ $h -lt 1 ];then
iptables -I INPUT -s $i -j DROP
fi
fi
done
service iptables save
service iptables restart
IFS=$SAVEIFS
echo -n "" > $path
chown -R apache:apache $path
chmod 777 $path
fi

Shell脚本

Shell脚本


至此,设置完毕,然后你就会发现WordPress后台接收到垃圾回复就会越来越少了,因为只要你删除了的垃圾回复系统就会自动将它的IP地址进行过滤了.

Dropbox更新版本的方法

八月 21st, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2281.html http://www.myzhenai.com/thread-17911-1-1.html
关键词: Dropbox升级 Dropbox更新 Dropbox提示 您使用的Dropbox是旧版本 请更新最新版本继续使用Dropbox
刚才运行Dropbox进行备份的时候,Dropbox弹出一个窗口,提示我的版本过旧,无法进行上传操作,因为我之前一直用的是Dropbox3.1.6版的,我以为Dropbox会自动更新,但是一点击窗口上的更新, 跳转到 https://www.dropbox.com/install?os=lnx 可是我不明白Dropbox的意思是让我重装Dropbox还是更新Dropbox. 当我下载了安装包和源码编译包进行安装和编译后,仍然是出现这样的提示, 所以我在想,应该问题不是出现在这里, 恰好我看到旁边有一个版本说明, 里边对应的版本里都有相应的下载链接,比如我下载的是稳定的内部版本的 8.4.19 https://d1ilhw0800yew8.cloudfront.net/client/dropbox-lnx.x86-8.4.19.tar.gz 这个文件很大,但很奇怪,解压后却没有看到当前目录有文件夹, 后来显示所有文件才发现,这个是一个带标点符号的隐藏目录. 解压后得到.dropbox-dist目录,里边的就是最新版本的配置文件.
所以现在我们更新Dropbox就简单好多了, 选把旧版本的.dropbox-dist目录删除,接着下载对应版本的更新包文件,解压缩为.dropbox-dist, 问题完美解决.

Dropbox更新版本的方法

Dropbox更新版本的方法


Dropbox更新版本的方法

Dropbox更新版本的方法

Linux Shell枚举目录下相同文件脚本

八月 20th, 2016

原创内容,转载请注昨出处: http://www.myzhenai.com.cn/post/2269.html http://www.myzhenai.com/thread-17910-1-1.html
关键词: Linux查找相同文件 shell查找相同文件
写这个脚本是为了练习shell编程的,本来思路是想着通过文件大小一致和md5值一致来获取相同的文件的,但我这脚本的实现方法好像不是太严谨,应该说是不太准确的,对于是不是这样,我也没有太大的把握,因为我调试过好多遍了,但找出来好多不同文件名,但相同类型的文件,因为这些文件我知道,有好多是我拍摄的相片, 如果说文件大小有可能会一致,但每个文件的md5值应该是不一样的. 所以这里只提供给朋友们一个思路, 您也可以帮忙调试改进, 欢迎朋友们参与讨论. 说实在的,这个脚本对于我们做站的朋友们来说还是有用处的,可以清除一些网站用户上传的相同的文件.

# !/bin/bash
echo -e  "\033[31m Please enter your name you want to find the file suffix: \033[0m"
read name
dir=$(cd `dirname $0`; pwd)
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
files=`find $dir -iname "*.$name"`
for file in $files
do
size=`ls -l $file|awk '{print $5}'`
md=`md5sum $file|cut -d ' ' -f1`
echo $file" | "$size" | "$md >> tong.log
done
########################################
files=`find $dir -iname "*.$name"`
for file in $files
do
size=`ls -l $file|awk '{print $5}'`
md=`md5sum $file|cut -d ' ' -f1`
h=`grep -c $size" | "$md tong.log`
if [ $h -gt 2 ];then
echo $file"  Similarfiles  [$h]" >> long.log
fi
done
IFS=$SAVEIFS
#echo "$IFS" | od -t x1

Linux Shell枚举目录下相同文件脚本

Linux Shell枚举目录下相同文件脚本


Linux Shell枚举目录下相同文件脚本

Linux Shell枚举目录下相同文件脚本


Linux Shell枚举目录下相同文件脚本

Linux Shell枚举目录下相同文件脚本

Linux(centos)下安装PhpStorm2016.2教程

八月 19th, 2016

原创内容,转载请注昨出处: http://www.myzhenai.com.cn/post/2260.html http://www.myzhenai.com/thread-17909-1-1.html
关键词: phpstorm2016.2激活 phpstorm2016.2汉化 phpstorm2016.2中文 phpstorm2016.2安装
PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查.
PhpStorm官网:https://www.jetbrains.com/
PhpStorm2016.2:https://download.jetbrains.8686c.com/webide/PhpStorm-2016.2.tar.gz (Linux)
PhpStorm2016.2:https://download.jetbrains.8686c.com/webide/PhpStorm-2016.2.exe (windows)
需要的文件: 链接: https://pan.baidu.com/s/1bFaboU 密码: 6qpe
安装之前需要先安装java18以下版本. java安装教程 http://www.myzhenai.com.cn/post/1284.html 将旧版本的java安装目录删除, 将旧版本的java环境变量删除. 重新安装java
java下载页面: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
现在我们来安装PhpStorm2016.2

cd /usr/local/
wget https://download.jetbrains.8686c.com/webide/PhpStorm-2016.2.tar.gz
tar -xzvf PhpStorm-2016.2.tar.gz
mv PhpStorm(Unpacked directory) PhpStorm
cd PhpStorm/bin/
chmod 777 phpstorm.sh
sh phpstorm.sh

在弹出的窗口中选择 “Evaluate for free” 30天试用安装.
安装完成后我们进行验证, 下载需要的文件里的 phpstorm2016.2.zip 压缩包, 解压后有两个压缩包,分别是验证和汉化, 解压它们. 把这两个jar后缀名的文件复制到 /usr/local/PhpStorm/lib/目录下,
选择菜单 help >>>> Edit Custom VM options (编辑自定义虚拟机选项)
如果没有会提示创建,进行创建
打开文件
最后面加入 一行

-javaagent:/usr/local/PhpStorm/lib/JetbrainsCrack-2.5.6.jar

后面是补丁的路径,根据自己放的位置修改
保存文件
关闭并重新打开phpstorm
到网站 http://15.idea.lanyus.com/ 生成一个激活码
菜单 help >>>>Register
选择Activation Code
将验证码粘贴进去
激活…
OK
关闭并重新打开phpstorm
自此,安装完美结束.
运行PhpStorm2016的方法是,在本地用户下使用终端

$/usr/local/PhpStorm/bin/phpstorm.sh
OR
#/usr/local/PhpStorm/bin/phpstorm.sh

Linux Shell截取字符窜教程

八月 15th, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2254.html http://www.myzhenai.com/thread-17908-1-1.html
关键词: Linux截取字符窜 shell截取字符窜 grep截取字符窜 awk截取字符窜
这个教程是hostloc社区上的一个网友提的问题,他的原意是要通过 curl http://pv.sohu.com/cityjson 来获得一些关键的信息,比如ip和国家代码以及所处国家.
其实这个shell的思路很简单,先将curl获得的内容用sed把所有双引号和空格全部过滤掉,然后用awk来搜索相关关键字获得需要的内容.如果是多行的话,还城要再增加一个grep -v 行里的关键字.

# !/bin/bash
var=`curl http://pv.sohu.com/cityjson|sed 's/"//g'|sed -e 's/[ ][ ]*//g'`
cip=`echo $var|awk -F "," '{print $1}'|awk -F "cip:" '{print $2}'`
cid=`echo $var|awk -F ",cname" '{print $1}'|awk -F "cid:" '{print $2}'`
cnme=`echo $var|awk -F "};" '{print $1}'|awk -F "cname:" '{print $2}'`
echo $cip
echo $cid
echo $cnme

如果var变量里返回的数据是多行的话, 还需要在下面的代码上分别增加上grep -v 行里关键字. 例如以下

# !/bin/bash
var=`curl http://pv.sohu.com/cityjson|sed 's/"//g'|sed -e 's/[ ][ ]*//g'`
cip=`echo $var|grep -v cip:|awk -F "," '{print $1}'|awk -F "cip:" '{print $2}'`
cid=`echo $var|grep -v cid|awk -F ",cname" '{print $1}'|awk -F "cid:" '{print $2}'`
cnme=`echo $var|grep -v cname|awk -F "};" '{print $1}'|awk -F "cname:" '{print $2}'`
echo $cip
echo $cid
echo $cnme
Linux Shell截取字符窜教程

Linux Shell截取字符窜教程