Ubuntu下转换Putty的.ppk为OpenSSH支持的KEY文件

在Windows 中使用Git的时候,习惯使用TortoiseGit来进行Git的管理。

TortoiseGit在提交代码的时候,使用Putty来实现SSH通信,Putty的Key文件为.ppk格式的文件,现在切换到Ubuntu之后,使用SmartGit来进行管理,而SmartGit 只支持OpenSSH 格式的Key文件,因此需要把Windows下面的.ppk文件转换为OpenSSH格式的文件。

具体操作如下所示:

然后指定生成的文件为Key文件,就可以正常使用了。

注意,命令中的转换参数全部为字母“O”,不是数字零“0”,只是前面是大写字符后面是小写字符。

Ubuntu 及衍生版本用户如何安装 SmartGit/HG

SmartGit/HG 是一款开放源代码的、跨平台的、支持 Git 和 Mercurial 的 SVN 图形客户端,可运行在Windows、Linux 和 MAC OS X 系统上。可用的最新版本 SmartGit/HG 6.0.0,最近已发布。140603102567792

Ubuntu及衍生系统用户安装,打开终端,使用以下命令:

Debian 用户安装命令:

卸载命令:

Ubuntu 12.04通过SFTP更新WordPress

WordPress支持通过SFTP来更新自身的组件,但是在服务器上设置支持SFTP之后,一直更新失败,如图所示SFTP_Login_Failed

网上查询了一下,是缺少了PHPSSH支持库导致的,解决方法如下(安装libssh2-php)

刷新页面后,得到的结果如下图所示,则表示已经成功。

SFTP_Login_Image

对于使用常规的,使用密码登录的情况,可以无视“验证密钥对”部分的设置即可。

用badblocks检测硬盘坏道

硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。最好的处理方式是更换磁盘,但在临时的情况下,应及时屏蔽坏道部分的扇区,不要触动它们。badblocks就是一个检查坏道位置的工具。

一、命令参数
badblocks使用格式为:

参数含义是:

-b blocksize
指定磁盘的区块大小,单位为字节,默认值为“block 4K ”(4K/block)
-c blocksize
每个区块检查的次数,默认是16次
-f
强制在一个已经挂载的设备上执行读写或非破坏性的写测试操作
(我们建议先umount设备,然后再进行坏道检测。仅当/etc/mtab出现误报设备挂载错误的时候可以使用该选项)
-i file
跳过已经显示在file文件中的坏道,而不进行检测(可以避免重复检测)
-o file
把检测结果输出到file文件
-p number
重复搜寻设备,直到在指定通过次数内都没有找到新的坏块位置,默认次数为0
-s
在检查时显示进度
-t pattern
通过按指定的模式读写来检测区块。你可以指定一个0到ULONG_MAX-1的十进制正值,或使用random(随机)。
如果你指定多个模式,badblocks将使用第一个模式检测所有的区块,然后再使用下一个模式检测所有的区块。
Read-only方式仅接受一个模式,它不能接受random模式的。
-v
执行时显示详细的信息
-w
对每个区块都先写入,然后再从它读取信息
[device]
指定要检查的磁盘装置。
[last-block]
指定磁盘装置的区块总数。
[start-block]
指定要从哪个区块开始检查

二、示例
badblocks以4096的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里

"hda-badblocks-list”是个文本文件,内容如下:
引用

可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束

这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。重复几次同样的操作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,直到产生最后的hda-badblock-list.final文件。

三、其他
1、fsck使用badblocks的信息
badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:

2、在创建文件系统前检测坏道
badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:

代码表示使用-c在创建文件系统前检查坏道的硬盘。
这个操作已经很清楚地告知我们可以采用“mkfs.ext3 -c”选项用“read-only”方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。

FreeNAS 9.3 通过SSH 登陆之后中文显示问题

FreeNAS 9.3 通过SSH 登陆之后中文显示为问号,网上查询了一下,找到解决方法。

在~/.cshrc下面增加

添加完后退出当前会话,重新进入即可正确显示中文。

Android Studio 1.2 开发JNI工程

  • 添加native接口

注意写好native接口和System.loadLibrary()即可了,并无特别之处。

  • 执行Build->Make Project

20141215184150750
这一步骤执行一下,验证工程中并无其它错误,并对工程进行了编译,生成了.class文件.
.class文件的生成路径是在 app_path/build/intermediates/classes/debug下的.如下图:20141215184245654

  • javah生成c头文件

点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。
这里需要注意的是要进入 \app\src\main的目录下执行javah命令,为的是生成的 .h 文件同样是在\app\src\main路径下,可以在Studio的工程结构中直接看到。

最后的生成结果:20141215184427109

  • 编辑c文件

在main.c文件中实现头文件中的方法,具体功能为直接return回一个String,并且使用android_log打印出相关日志。
代码如下:

    •  配置NDK

20141215184556957

  • Jni目录下手工创建Application.mk

里面内容如下:

  • Jni目录下手工创建Android.mk

再执行"Build->Rebuild Project",就可以编译出so文件了.

如果

Android_studio_jni

跟我的代码布局类似,增加了一个include目录,里面包含引用的第三方头文件,那么就比较折腾,因为编译的时候会报告找不到头文件,而通过设置

是可以通过命令行编译通过的,但是却不能在Gradle中编译通过。

这种情况下,需要放弃Android Studio 自带的配置,修改app目录下的“build.gradle”

原始内容如下:

修改后的内容如下:

参考 http://blog.csdn.net/sodino/article/details/41946607

Source Insight添加.cc文件

在导入代码时, 发现Souce Insight只导入了.h文件,.cc文件没有导入. Source Insight对C++项目的导入,其文件过滤没有包含*.cc文件, 需要自己手动设置导入:

  1. options->document options->在document type中选择C++ Source->在右边的File Filter里加上*.cc文件
  2. 重新添加项目文件: project->Add and Remove Project files

具体操作如图所示

1.选择“Document Options”
Source_Insight_Document_Options

2.选择 “Document Type”Source_Insight_Document_Type

3.选择“C++”

Source_Insight_Document_Type_Sel

4.增加 “*.CC”

Source_Insight_C_Plus_Add_CC

Android Studio *.jar 与 *.aar 的生成与*.aar导入项目方法

Android Studio的一个好处在于Android函数库包格式“aar”格式。以前,Android函数库通常需要被导入到IDE以此将App需要的资源加入编译。但是现在的Android函数库可以被直接包含,与“jar”文件被Java项目包含的方式类似。这项功能虽然出现已久,但确实非常受欢迎。

  • Android Studio新建一个Library

1.点击“New Module”

Android_Studio_New_Module_Menu

2.选中新建“Android Library”Android_Studio_New_Module_Libary_Wards

3.根据向导一步一步继续下去就可以了。

  • 简单介绍

在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件。

分别存储位置:

*.jar:库 /build/intermediates/bundles/debug(release)/classes.jar

*.aar:库 /build/outputs/aar/libraryname.aar

两者区别:

*.jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。

*.aar: 包含所有资源 ,class以及res资源文件全部包含

如果你只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar文件。

使用方式:

*.jar:拷贝到:libs目录,eclipse直接导入即可,AndroidStudio项目中添加:

重新编译一次项目既可完成加载。

*.aar:有两种方式,分别为本地加载以及网络加载,由于网络加载涉及到发布到mavenCentral托管的问题这里不做讨论;另外eclipse很久没有使用了也不做讨论;在这里给大家说一种本地加载的方式,简单快捷。

这里演示的aar文件为: “genius.aar”

第一步:拷贝到:libs目录

第二步:build.gradle 配置文件中更改为

分别添加了 “repositories” 与更改了 “dependencies” ,然后重新编译一次项目就可以正常使用了。

这时打开你的项目地址 “\build\intermediates\exploded-aar\” 你会发现下面多了一个文件夹 “genius”打开后能看见里边包含了一个 “classes.jar” 文件与一些 资源文件和“R.txt”文件 。

r6BBviN

这就是Android Studio自动解析了aar文件后出现的东西。

对于比较常见的项目配置,有如下的参考,可以看到带版本号的情况,使用的aar跟jar文件还是有差别的,aar文件,最后要增加一个“@aar”的标记。

参考链接


[Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法