图像转ascii码文本
环境: ubuntu 16.04
安装 aview
sudo apt aview
aview的作用是将pnm格式的图片转换为ASCII文本,并显示。aview只支持pnm、pgm、pbm和ppm格式的图片,所以需要将其他格式的图片转换,它提供了一个asciiview的脚本,利用convert转换图片格式,然后再传递给aview。
因此,直接可以执行
asciiview laotouzi.jpg -driver X11
laotouzi.jpg 为我处理的图片,-driver是要选择的设备,这里选择X11,是为了可以改变字体,以提高/减小分辨率
改变字体大小
- 为改变字体大小,需要执行
export AAFont=-*-fixed-bold-*-*-*-*-35-*-*-*-*-*-*
设置环境变量,这里设置字体大小35
2. 然后再执行asciiview的命令即可看到改变后的字体大小
其他
jp2a 是另一个工具,用来转换的工具
0x00 环境
- 系统:ubuntu14.04或者ubuntu16.04
- vim --version查看是否支持python2或者3,并且vim版本大于等于7.4.143
0x01 安装YCM
一般有两种安装方式,推荐使用第一种
通过Vundle安装YCM
安装 Vundle插件
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
在vim的配置文件 ~/.vimrc添加插件
call vundle#begin()
" 其他插件
Plugin 'Valloric/YouCompleteMe’
" 其他插件
call vundle#end()
配置完.vimrc保存,并运行:PluginInstall安装插件,该插件安装时间较长,须耐心等待
通过git安装YCM
下载 (在 ~/.vim/bundle
目录下)
$ git clone --recursive https://github.com/Valloric/YouCompleteMe.git
检查完整性(在 ~/.vim/bundle/YouCompleteMe
目录下)
$ git submodule update --init --recursive
0x02 下载最新版的libclang的预编译二进制文件
如果不需要C系语言的语义补全,则跳过0x02,否则继续
下载libclang的预编译二进制文件(version >= 3.9)
找个地方存放,比如我将解压之后的文件存放在~/download/ycm_tmp_clang_llvm/
目录下,其下有bin,include,lib,libexec,share文件夹。
0x03 编译安装ycm_core库
安装编译YCM core库所需要的依赖
# python的开发包
sudo
LLVM简介
LLVM是伊利诺伊大学的一个开源项目,LLVM提供了完整的C/C++工具链,Clang属于其中的一个子项目,是 LLVM 原生的 " C/C++/Objective-C"编译器前端,Clang负责完成词法和语法分析,而代码优化和机器代码的生成工作由LLVM后端完成。vim中的插件YouCompleteMe就是利用Clang完成语法分析并给出精确的自动补全和语法错误提示(即静态分析)。
安装
简单来说,Clang 和 CompileRT 这两个子项目为 LLVM 提供了 C, C++, Objective C 和 Objective C++ 的前端及动态库支持,使得我们可以使用 Clang 来编译和构建项目。而要构建Clang,必须先构建LLVM核心库。
可从远程库http://llvm.org/svn/llvm-project/llvm/tags/中找到
比如我使用http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final/
安装必要的包
sudo apt-get install subversion
sudo apt-get install cmake
建立目录,统一存放
cd ~/download/
sudo mkdir llvm-install
cd llvm-install
- llvm core放在llvm-install目录下
- clang 放在 llvm目录下的tools目录下
- compileRT放在llvm目录下的projects目录下
组织结构如下:
llvm/
/tools/clang
/projects/compiler-rt
下载 llvm core库
svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final llvm
下载clang:
cd llvm/tools
svn co http:/
ubuntu 14.04搭建ftp服务器
在实验室搭建ftp服务器,以共享文件和代码。写下过程,以备以后排查问题。
环境
环境:ubuntu 14.04 LTS
网络:校园网
安装vsftpd
如有必要,可以在安装之前先更新软件源sudo apt-get update
sudo apt-get install vsftpd
配置vsftpd
安装完成之后,会出现文件/etc/vsftpd.conf
。关于vsftpd的配置就在该文件中完成。
以下阐述以下配置项的作用。
切换目录的权限控制
切换目录的权限控制主要由下面三个字段控制:
chroot_local_user
表示是否将所有用户限定在主目录,不允许上切目录。chroot_list_enable
表示是否有例外的情况,如果有例外,则chroot_list_file列出例外的情况chroot_list_file
填写例外的情况
总结如下图:
登录的权限控制
登陆的权限控制主要由下面几个字段控制
userlist_enable
表示是否启动list来控制用户登陆,如果为NO,表示不使用list进行登录的控制,所有用户均可以登录userlist_deny
表示启动的list是白名单还是黑名单,如果是YES,则是黑名单,名单中的用户均无法登录;如果是NO,则是白名单,只有名单里的用户才可以登录。显然,只有当userlist_enable
为YES时,该项才生效userlist_file
名单/etc/ftpusers
是不受任何字段控制,其就是一个黑名单,用以禁止具有非常大的权限的用户的登录,以免造成对系统的入侵和破坏
其他配置项
local_root
表示本地用户登入,将被切换到定义的目录下,如果不设置,则分别为各用户的家目录allow_writeable_chroot
表示是否允许登录用户对该目录有写权限。如果是NO,则表示登录用户对目录不能有写权限,如果有,那么登录时会报错500 OOPS: vsftpd: refusing to run with writable root inside chroot()
;如果