? linux ? ? ubuntu ? ? ascii ? ? 图像 ?    发布于 2017-12-09   541人围观   0条评论

图像转ascii码文本

环境: ubuntu 16.04

安装 aview

  1. sudo apt aview

aview的作用是将pnm格式的图片转换为ASCII文本,并显示。aview只支持pnm、pgm、pbm和ppm格式的图片,所以需要将其他格式的图片转换,它提供了一个asciiview的脚本,利用convert转换图片格式,然后再传递给aview。
因此,直接可以执行

  1. asciiview laotouzi.jpg -driver X11

laotouzi.jpg 为我处理的图片,-driver是要选择的设备,这里选择X11,是为了可以改变字体,以提高/减小分辨率

改变字体大小

  1. 为改变字体大小,需要执行
  1. export AAFont=-*-fixed-bold-*-*-*-*-35-*-*-*-*-*-*

设置环境变量,这里设置字体大小35
2. 然后再执行asciiview的命令即可看到改变后的字体大小

其他

jp2a 是另一个工具,用来转换的工具

查看更多
? vim ? ? ubuntu ? ? YouCompleteMe ? ? 补全 ? ? 静态分析 ? ? C++ ?    发布于 2017-11-15   1136人围观   0条评论

0x00 环境

  • 系统:ubuntu14.04或者ubuntu16.04
  • vim --version查看是否支持python2或者3,并且vim版本大于等于7.4.143

0x01 安装YCM

一般有两种安装方式,推荐使用第一种

通过Vundle安装YCM

安装 Vundle插件

  1. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

在vim的配置文件 ~/.vimrc添加插件

  1. call vundle#begin()
  2. " 其他插件
  3. Plugin 'Valloric/YouCompleteMe’
  4. " 其他插件
  5. 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库所需要的依赖

  1. # python的开发包
  2. sudo
查看更多
? ubuntu ? ? LLVM ? ? clang ? ? C++ ?    发布于 2017-11-14   8890人围观   0条评论

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/

安装必要的包

  1. sudo apt-get install subversion
  2. sudo apt-get install cmake

建立目录,统一存放

  1. cd ~/download/
  2. sudo mkdir llvm-install
  3. cd llvm-install
  • llvm core放在llvm-install目录下
  • clang 放在 llvm目录下的tools目录下
  • compileRT放在llvm目录下的projects目录下

组织结构如下:

  1. llvm/
  2. /tools/clang
  3. /projects/compiler-rt

下载 llvm core库

  1. svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final llvm

下载clang:

  1. cd llvm/tools
  2. svn co http:/
查看更多
? linux ? ? ftp ? ? server ? ? ubuntu ?    发布于 2017-09-27   502人围观   0条评论

ubuntu 14.04搭建ftp服务器

在实验室搭建ftp服务器,以共享文件和代码。写下过程,以备以后排查问题。

环境

环境:ubuntu 14.04 LTS
网络:校园网

安装vsftpd

如有必要,可以在安装之前先更新软件源sudo apt-get update

  1. 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();如果
查看更多