Linux Vim代码格式化/美化插件vim-autoformat安装

Linuxllslx520 发表了文章 • 0 个评论 • 178 次浏览 • 2017-04-25 21:05 • 来自相关话题

  vim-autoformat是Vim的一款代码自动化格式插件,vim-autoformat会根据文件的后缀,自动调用相应的相应命令进行代码格式化。所以,安装vim-autoformat的同时,还需要安装相应代码语言的格式化工具,才能保证vim-autoformat的正常运行。
 一、安装vim插件管理器:  为了方便插件安装,我们需要先安装vim插件管理器。这里我们使用"Vundle"作为vim的 插件管理器,安装 方法这里不再做介绍,请参考:Linux Vim插件管理器Vundle安装和使用
 二、安装vim-autoformat插件:1、安装vim-autoformat:  安装好Vundle插件管理器后,我们就能非常方便的安装插件了。在~/.vimrc文件"call vundle#begin()" 到 "call vundle#end()"件的范围内,添加一行"Plugin 'Chiel92/vim-autoformat'",如下所示:call vundle#begin()

" Vundle 本身就是一个插件
Plugin 'gmarik/Vundle.vim'
Plugin 'Chiel92/vim-autoformat'

"所有插件都应该在这一行之前
call vundle#end()添加好并保存后,重新运行vim命令,在vim中运行:PluginInstall命令即可完成vim-autoformat插件的安装。
 2、配置vim-autoformat插件:  在~/.vimrc文件末尾添加下面内容,将F3键设置为代码格式话键。"F5自动格式化代码
noremap <F3> :Autoformat<CR>
let g:autoformat_verbosemode=1也可以通过下面方式,设置保存时自动对指定格式代码进行格式化,或对所有格式进行格式化。"保存时自动格式化代码,针对所有支持的文件
au BufWrite * :Autoformat
"保存时自动格式化PHP代码
"au BufWrite *.php :Autoformat 
还可以对指定后缀的文件名,使用指定的格式化话工具。如下为html文件指定格式化工具和参数:let g:formatdef_my_html = '"html-beautify -s"'
let g:formatters_html = ['my_html'] 三、安装各语言格式化支持工具:1、html、Javascript/JSON、css:  htm、js、css 格式化命令分别为html-beautify、js-beautify、css-beautify:yum -y install npm
npm install html-beautify
npm install js-beautify
npm install css-beautify 2、ruby语言:#rbeautify for Ruby. It is shipped with ruby-beautify
yum -y install gem
gem install ruby-beautify 3、 C, C++, Objective-C:  C, C++, Objective-C等语言进行格式化,可以使用 clang-format​,而clang-format包含在clang包中:      #clang-format for C, C++, Objective-C
yum -y install clang 4、Java和C#, C++, C 等:# astyle for C#, C++, C and Java:
wget https://sourceforge.net/projects/astyle/files/astyle/astyle%203.0/astyle_3.0_linux.tar.gz/download -O astyle_3.0_linux.tar.gz
tar -zxvf astyle_3.0_linux.tar.gz
cd astyle/build/gcc
yum install gcc-c++
make && make install 5、更多语言:  请参考:https://github.com/Chiel92/vim-autoformat
 四、vim-autoformat插件的使用:  按上面配置好,并安装相应语言的格式化工具后,使用vim编辑相应代码文件,按F3命令vim即会对代码自动进行格式化。 查看全部
  vim-autoformat是Vim的一款代码自动化格式插件,vim-autoformat会根据文件的后缀,自动调用相应的相应命令进行代码格式化。所以,安装vim-autoformat的同时,还需要安装相应代码语言的格式化工具,才能保证vim-autoformat的正常运行。
 

一、安装vim插件管理器:

  为了方便插件安装,我们需要先安装vim插件管理器。这里我们使用"Vundle"作为vim的 插件管理器,安装 方法这里不再做介绍,请参考:Linux Vim插件管理器Vundle安装和使用
 

二、安装vim-autoformat插件:

1、安装vim-autoformat:

  安装好Vundle插件管理器后,我们就能非常方便的安装插件了。在~/.vimrc文件"call vundle#begin()" 到 "call vundle#end()"件的范围内,添加一行"Plugin 'Chiel92/vim-autoformat'",如下所示:
call vundle#begin()

" Vundle 本身就是一个插件
Plugin 'gmarik/Vundle.vim'
Plugin 'Chiel92/vim-autoformat'

"所有插件都应该在这一行之前
call vundle#end()
添加好并保存后,重新运行vim命令,在vim中运行:PluginInstall命令即可完成vim-autoformat插件的安装。
 

2、配置vim-autoformat插件:

  在~/.vimrc文件末尾添加下面内容,将F3键设置为代码格式话键。
"F5自动格式化代码
noremap <F3> :Autoformat<CR>
let g:autoformat_verbosemode=1
也可以通过下面方式,设置保存时自动对指定格式代码进行格式化,或对所有格式进行格式化。
"保存时自动格式化代码,针对所有支持的文件
au BufWrite * :Autoformat
"保存时自动格式化PHP代码
"au BufWrite *.php :Autoformat
 
还可以对指定后缀的文件名,使用指定的格式化话工具。如下为html文件指定格式化工具和参数:
let g:formatdef_my_html = '"html-beautify -s"'
let g:formatters_html = ['my_html']
 

三、安装各语言格式化支持工具:

1、html、Javascript/JSON、css:

  htm、js、css 格式化命令分别为html-beautify、js-beautify、css-beautify:
yum -y install npm
npm install html-beautify
npm install js-beautify
npm install css-beautify
 

2、ruby语言:

#rbeautify for Ruby. It is shipped with ruby-beautify
yum -y install gem
gem install ruby-beautify
 

3、 C, C++, Objective-C:

  C, C++, Objective-C等语言进行格式化,可以使用 clang-format​,而clang-format包含在clang包中:      
#clang-format for C, C++, Objective-C 
yum -y install clang
 

4、Java和C#, C++, C 等:

# astyle for C#, C++, C and Java:
wget https://sourceforge.net/projects/astyle/files/astyle/astyle%203.0/astyle_3.0_linux.tar.gz/download -O astyle_3.0_linux.tar.gz
tar -zxvf astyle_3.0_linux.tar.gz
cd astyle/build/gcc
yum install gcc-c++
make && make install
 

5、更多语言:

  请参考:https://github.com/Chiel92/vim-autoformat
 

四、vim-autoformat插件的使用:

  按上面配置好,并安装相应语言的格式化工具后,使用vim编辑相应代码文件,按F3命令vim即会对代码自动进行格式化。

Linux Vim插件管理器Vundle安装和使用

Linuxllslx520 发表了文章 • 0 个评论 • 95 次浏览 • 2017-04-25 20:08 • 来自相关话题

  Vundle是vim的一个插件管理器, 同时它本身也是vim的一个插件。插件管理器用于方便、快速的安装、删除、Vim更新插件。vim Vundle插件官方地址:https://github.com/VundleVim/Vundle.vim
 一、下载Vundle插件:  Vundle需要使用git命令来克隆安装,如果无git命令,可以使用"yum -y install git"安装git命令。有git命令的,直接克隆Vundle:mkdir -p ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim 二、编辑~/.vimrc文件设置插件:  运行“vim ~/.vimrc”命令创建".vimrc"文件,并在文件中添加如下内容,并保存退出:syntax on
" tab宽度和缩进同样设置为4
set tabstop=4
set softtabstop=4
set shiftwidth=4

set nocompatible

" 你在此设置运行时路径
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

" 在这里面输入安装的插件
" Vundle 本身就是一个插件
Plugin 'gmarik/Vundle.vim'


"所有插件都应该在这一行之前
call vundle#end()

" filetype off
filetype plugin indent on提示:如果使用粘贴方法复制到到.vimrc发现格式混乱,可以在shell中使用"cat <<END> ~/.vimrc"命令,然后粘贴代码,在输出"END"回车即可。
 三、安装Vundle插件:  ".vimrc"文件配置好后,打开vim,在命令模式输入插件安装命令“:PluginInstall”命令,vim就会自动安装“.vimrc”中配置的所有插件,直到vim底部出现“Done”安装完成。


四、Vundle插件用法介绍:
  下面命令在vim命令模式下运行。命令描述:PluginInstall安装~/.vimrc中"call vundle#begin()"到"call vundle#end()"范围内配置好的插件;:PluginClean清理已经从"call vundle#begin()"到"call vundle#end()"范围删除的插件。:PluginUpdate更新插件:PluginSearch 搜索插件,如":PluginSearch html"搜索包含html关键词的插件。
  查看全部
  Vundle是vim的一个插件管理器, 同时它本身也是vim的一个插件。插件管理器用于方便、快速的安装、删除、Vim更新插件。vim Vundle插件官方地址:https://github.com/VundleVim/Vundle.vim
 

一、下载Vundle插件:

  Vundle需要使用git命令来克隆安装,如果无git命令,可以使用"yum -y install git"安装git命令。有git命令的,直接克隆Vundle:
mkdir -p ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
 

二、编辑~/.vimrc文件设置插件:

  运行“vim ~/.vimrc”命令创建".vimrc"文件,并在文件中添加如下内容,并保存退出:
syntax on
" tab宽度和缩进同样设置为4
set tabstop=4
set softtabstop=4
set shiftwidth=4

set nocompatible

" 你在此设置运行时路径
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

" 在这里面输入安装的插件
" Vundle 本身就是一个插件
Plugin 'gmarik/Vundle.vim'


"所有插件都应该在这一行之前
call vundle#end()

" filetype off
filetype plugin indent on
提示:如果使用粘贴方法复制到到.vimrc发现格式混乱,可以在shell中使用"cat <<END> ~/.vimrc"命令,然后粘贴代码,在输出"END"回车即可。
 

三、安装Vundle插件:

  ".vimrc"文件配置好后,打开vim,在命令模式输入插件安装命令“:PluginInstall”命令,vim就会自动安装“.vimrc”中配置的所有插件,直到vim底部出现“Done”安装完成。
Linux_Vim插件管理器Vundle安装和使用.png

四、Vundle插件用法介绍:


  下面命令在vim命令模式下运行。
命令描述
:PluginInstall安装~/.vimrc中"call vundle#begin()"到"call vundle#end()"范围内配置好的插件;
:PluginClean清理已经从"call vundle#begin()"到"call vundle#end()"范围删除的插件。
:PluginUpdate更新插件
:PluginSearch 搜索插件,如":PluginSearch html"搜索包含html关键词的插件。

 

Linux下Apache配置ssl让其支持https协议

Linuxllslx520 发表了文章 • 0 个评论 • 136 次浏览 • 2017-04-13 11:12 • 来自相关话题

一、实验环境:操作系统: CentOS Linux release 7.2.1511 (Core)
apache版本:Apache/2.4.6 (CentOS)
实验前提:Lamp(Linux、Apache、Mariadb、PHP)已经配置好,能正常访问http
 二、安装Apache Ssl模块:  要安装Apache ssl模块,使用yum命令安装openssl、mod_ssl包即可:yum install openssl mod_ssl -y 三、配置ssl证书:1、查看证书位置:  安装好后,会生成一个啊ssl.conf文件,完整路径为:/etc/httpd/conf.d/ssl.conf,在此配置文件中能找到当前的配置证书路径。[root@aiezu.com ~]# cat /etc/httpd/conf.d/ssl.conf|grep ^SSLCertificate
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 2、生成新密钥和证书:  生成新证书前需要删除掉原来的证书,并让新证书的名称和路径与原证书相同,这样就无需修改ssl.conf配置文件即可完成证书修改。# 生成新私钥
cd /etc/pki/tls/private
rm -f localhost.key
openssl genrsa 1024 > localhost.key

# 生成新证书
cd /etc/pki/tls/certs/
rm -f localhost.crt
openssl req -new -x509 -days 365 -key /etc/pki/private/localhost.key -out localhost.crt 
在上面证书生成过程中,要交互输入如下信息:Country Name (2 letter code) [XX]: CN <--两位国家编码State or Province Name (full name) []: Hunan <--省、州名称Locality Name (eg, city) [Default City]: Changsha <-- 城市名称Organization Name (eg, company): aiezu.com <-- 机构单位名称Organizational Unit Name (eg, section) []:IT <-- 单位部门名称Common Name (eg, your name or your server's hostname) []:aiezu.com <--主机域名Email Address []:465272@qq.com <-- 电子邮箱 四、配置https虚拟主机:  下面以本站域名aiezu.com为例配置支持http、https的虚拟主机。使用vim编辑域名aiezu.com虚拟主机配置文件"/etc/httpd/conf.d/aiezu.com.conf",添加https 443端口的虚拟主机配置如下(17行开始的部分):<Directory /storage/web/aiezu.com>
AllowOverride All
Require all granted
</Directory>

<VirtualHost *:80>
AddDefaultCharset utf-8
ServerName aiezu.com
#强制将http 定向到 https
#Redirect permanent / https://aiezu.com/
ServerAdmin 465272@qq.com
DocumentRoot /storage/web/aiezu.com
CustomLog logs/aiezu.com-access combined
ErrorLog logs/aiezu.com-error
<IfModule mod_rewrite.c>
</IfModule>
</VirtualHost>

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

AddDefaultCharset utf-8
ServerName aiezu.com:443
ServerAdmin 465272@qq.com
DocumentRoot /storage/web/aiezu.com
CustomLog logs/aiezu.com-ssl-access combined
ErrorLog logs/aiezu.com-ssl-error
</VirtualHost> 五、重启Apache服务:  编辑好后,重启apache服务,即可通过https://aiezu.com访问了。service httpd restart 六、附录(免费DV证书):  由于我们自己生成的证书是未经权威证书颁发机构授权的,所有通过https访问的时候,浏览器会提示证书错误,需要申请权威机构授权的证书。下面提供一些免费申请地址:阿里云:https://common-buy.aliyun.com/?spm=5176.7968328.231195.1.7FheST&commodityCode=cas#/buy腾讯云:https://console.qcloud.com/ssl 查看全部

一、实验环境:

操作系统: CentOS Linux release 7.2.1511 (Core)
apache版本:Apache/2.4.6 (CentOS)
实验前提:Lamp(Linux、Apache、Mariadb、PHP)已经配置好,能正常访问http
 

二、安装Apache Ssl模块:

  要安装Apache ssl模块,使用yum命令安装openssl、mod_ssl包即可:
yum install openssl mod_ssl -y
 

三、配置ssl证书:

1、查看证书位置:

  安装好后,会生成一个啊ssl.conf文件,完整路径为:/etc/httpd/conf.d/ssl.conf,在此配置文件中能找到当前的配置证书路径。
[root@aiezu.com ~]# cat /etc/httpd/conf.d/ssl.conf|grep ^SSLCertificate
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
 

2、生成新密钥和证书:

  生成新证书前需要删除掉原来的证书,并让新证书的名称和路径与原证书相同,这样就无需修改ssl.conf配置文件即可完成证书修改。
# 生成新私钥
cd /etc/pki/tls/private
rm -f localhost.key
openssl genrsa 1024 > localhost.key

# 生成新证书
cd /etc/pki/tls/certs/
rm -f localhost.crt
openssl req -new -x509 -days 365 -key /etc/pki/private/localhost.key -out localhost.crt
 
在上面证书生成过程中,要交互输入如下信息:
  • Country Name (2 letter code) [XX]: CN <--两位国家编码
  • State or Province Name (full name) []: Hunan <--省、州名称
  • Locality Name (eg, city) [Default City]: Changsha <-- 城市名称
  • Organization Name (eg, company): aiezu.com <-- 机构单位名称
  • Organizational Unit Name (eg, section) []:IT <-- 单位部门名称
  • Common Name (eg, your name or your server's hostname) []:aiezu.com <--主机域名
  • Email Address []:465272@qq.com <-- 电子邮箱
 

四、配置https虚拟主机:

  下面以本站域名aiezu.com为例配置支持http、https的虚拟主机。使用vim编辑域名aiezu.com虚拟主机配置文件"/etc/httpd/conf.d/aiezu.com.conf",添加https 443端口的虚拟主机配置如下(17行开始的部分):
<Directory /storage/web/aiezu.com>
AllowOverride All
Require all granted
</Directory>

<VirtualHost *:80>
AddDefaultCharset utf-8
ServerName aiezu.com
#强制将http 定向到 https
#Redirect permanent / https://aiezu.com/
ServerAdmin 465272@qq.com
DocumentRoot /storage/web/aiezu.com
CustomLog logs/aiezu.com-access combined
ErrorLog logs/aiezu.com-error
<IfModule mod_rewrite.c>
</IfModule>
</VirtualHost>

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

AddDefaultCharset utf-8
ServerName aiezu.com:443
ServerAdmin 465272@qq.com
DocumentRoot /storage/web/aiezu.com
CustomLog logs/aiezu.com-ssl-access combined
ErrorLog logs/aiezu.com-ssl-error
</VirtualHost>
 

五、重启Apache服务:

  编辑好后,重启apache服务,即可通过https://aiezu.com访问了。
service httpd restart
 

六、附录(免费DV证书):

  由于我们自己生成的证书是未经权威证书颁发机构授权的,所有通过https访问的时候,浏览器会提示证书错误,需要申请权威机构授权的证书。下面提供一些免费申请地址:

windows下安装AnyProxy抓取移动App Http请求

Windowsllslx520 发表了文章 • 0 个评论 • 700 次浏览 • 2017-03-29 18:38 • 来自相关话题

  AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器。做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容);它提供了友好的web界面,便于直观的查看经过它的http请求;同时它支持二次开发,可以用javascript控制整个代理的全部流程,便于前端调试和收集http请求页面内容。它可以用于移动app和移动web页面调试、 抓取。
 一、实验环境:操作系统: Windows 10 X64位
AnyPorxy版本: 3.10.4
 二、安装Node.js:  从Node.js官网下载最新版或者稳定版Node.js的msi文件后,双击安装,知道安装完成即可。
  三、安装和启动AnyProxy:1、安装AnyProxy:  安装好Node.js后,在windows的命令提示符中输入下面命令安装AnyProxy,耐心等待直到安装完成:npm install -g anyproxy 2、生成根证书(RootCA):  https需要证书才能以明文的方式显示请求内容,所有这里我们必须生成根证书。在cmd命令提示符中运行下面命令生成根证书:anyproxy --root 3、启动AnyProxy代理监听服务:  通过”anyproxy -i“命令启动代理监听,其中”-i“参数启用https请求内容解析。anyproxy -i通过上面命令启动AnyProxy代理监听服务服务后,AnyProxy会打开两个端口:8001端口:即代理服务端口, 本机的IP和8001用于设置代理,如:192.168.0.119:80018002端口:AnyProxy的web界面,通过浏览器打开http://192.168.0.119:8002的形式,即可查看所有经过AnyProxy代理的http请求。




 四、设置代理(手机端):1、安装证书  我们需要在被代理的手机上安装证书,这样在AnyProxy上才能以明文的方式查看https请求内容。在手机上安装证书有两种方式:直接在手机浏览器中打开"http://ip:8002/fetchCrtFile"(IP换成安装AnyProxy机器的IP)在安装AnyProxy主机上打开”http://localhost:8002/qr_root“,然后用微信 扫描二维码,再通过微信在浏览器中打开的方式安装证书(必须在微信中跳转到浏览器中打开,否则弹不出安装证书对话框)。 2、设置代理(以ios举例):  在手机wifi设置中,手动设置http代理,在服务器中输入安装上面的代理IP,端口输入8001,保存即可。这样在此手机上所有的http请求(包括Web站点和收集app,如微信中的http请求),都会通过AnyProxy代理。在安装AnyProxy的电脑上,打开”http://localhost:8002”,即可看到所有被代理的http请求。 查看全部
  AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器。做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容);它提供了友好的web界面,便于直观的查看经过它的http请求;同时它支持二次开发,可以用javascript控制整个代理的全部流程,便于前端调试和收集http请求页面内容。它可以用于移动app和移动web页面调试、 抓取。
 

一、实验环境:

操作系统: Windows 10 X64位
AnyPorxy版本: 3.10.4
 

二、安装Node.js:

  从Node.js官网下载最新版或者稳定版Node.js的msi文件后,双击安装,知道安装完成即可。
  

三、安装和启动AnyProxy:

1、安装AnyProxy:

  安装好Node.js后,在windows的命令提示符中输入下面命令安装AnyProxy,耐心等待直到安装完成:
npm install -g anyproxy
 

2、生成根证书(RootCA):

  https需要证书才能以明文的方式显示请求内容,所有这里我们必须生成根证书。在cmd命令提示符中运行下面命令生成根证书:
anyproxy --root
 

3、启动AnyProxy代理监听服务:

  通过”anyproxy -i“命令启动代理监听,其中”-i“参数启用https请求内容解析。
anyproxy -i
通过上面命令启动AnyProxy代理监听服务服务后,AnyProxy会打开两个端口:
  • 8001端口:即代理服务端口, 本机的IP和8001用于设置代理,如:192.168.0.119:8001
  • 8002端口:AnyProxy的web界面,通过浏览器打开http://192.168.0.119:8002的形式,即可查看所有经过AnyProxy代理的http请求。

windows下安装AnyProxy.png

 

四、设置代理(手机端):

1、安装证书

  我们需要在被代理的手机上安装证书,这样在AnyProxy上才能以明文的方式查看https请求内容。在手机上安装证书有两种方式:
  1. 直接在手机浏览器中打开"http://ip:8002/fetchCrtFile"(IP换成安装AnyProxy机器的IP)
  2. 在安装AnyProxy主机上打开”http://localhost:8002/qr_root“,然后用微信 扫描二维码,再通过微信在浏览器中打开的方式安装证书(必须在微信中跳转到浏览器中打开,否则弹不出安装证书对话框)。
 

2、设置代理(以ios举例):

  在手机wifi设置中,手动设置http代理,在服务器中输入安装上面的代理IP,端口输入8001,保存即可。这样在此手机上所有的http请求(包括Web站点和收集app,如微信中的http请求),都会通过AnyProxy代理。在安装AnyProxy的电脑上,打开”http://localhost:8002”,即可看到所有被代理的http请求。
windows下安装AnyProxy_view.png

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

回复

Linuxllslx520 回复了问题 • 1 人关注 • 1 个回复 • 181 次浏览 • 2017-03-25 22:13 • 来自相关话题

CentOS 7 使用Yum方式安装配置vsftpd服务

CentOSllslx520 发表了文章 • 0 个评论 • 228 次浏览 • 2017-03-24 18:21 • 来自相关话题

  ftp是我们最常用的网络协议之一,用于方便的在网络中传输文件。vsftp是Linux平台轻量级的ftp服务软件,它小巧轻快、简单易用。本文介绍CentOS 7下使用yum安装配置vsftpd服务器,包括匿名登录方式、系统用户登录方式和虚拟用户登录三种登录方式的vsftpd服务配置。本文也适用于RHEL、Fedora、Oracle Linux 等其它Linux Redhat发行版本。一、实验环境:操作系统: CentOS Linux release 7.2.1511 (Core)CPU构架:x86_64 Vsftpd版本:vsftpd-3.0.2-21.el7 二、安装准备:1、关闭SELINUX:  SELINUX为Linux提供安全强化同时,也让Linux服务安装变得更复杂。未正确的为相关服务配置SELINUX,将导致服务无法正常运行。所以对于初学者来说,建议关闭SELINUX。vim /etc/selinux/config:#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加保存退出后,执行“setenforce 0”命令使配置立生效:setenforce 0 三、安装vsftpd服务:1、使用安装yum安装vsftpd:  使用“yum -y install vsftpd ”命令,会自动安装vsftpd命令和相关依赖包:yum -y install vsftpd2、备份vsftpd配置文件:cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak 四、方案一,配置匿名访问的vsftpd服务:1、配置vsftpd.conf文件:#允许匿名用户访问
anonymous_enable=YES
#禁止本地用户访问
local_enable=NO
#允许匿名用户创建目录
anon_mkdir_write_enable=YES
#允许匿名用户上传文件
anon_upload_enable=YES
#允许匿名用户执行其他写入操作,如删除
anon_other_write_enable=YES
#设置匿名用户根目录
anon_root=/ftp2、创建匿名用户目录:# /ftp/pub目录可写,/ftp目录不可写
mkdir -p /ftp/pub
chown -R ftp.ftp /ftp
chmod a-w /ftp3、启动vsftpd服务:[root@aiezu.com vsftpd]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service4、测试:在另外一台服务器上连接ftp进行测试,使用匿名用户“anonymous”和任意包含"@"字符串的密码进行连接:[root@aiezu.com ~]# ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
220 (vsFTPd 3.0.2)
Name (yyy.yyy.yyy.yyy:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (106,14,37,132,180,191).
150 Here comes the directory listing.
drwxr-xr-x 2 14 50 4096 Mar 24 15:01 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir ok
257 "/pub/ok" created
ftp> rm ok
250 Remove directory operation successful. 五、方案二,配置本地用户(系统)访问的vsftpd服务:1、配置主配置文件vsftpd.conf:#禁止匿名用户访问
anonymous_enable=NO
#允许本地用户访问
local_enable=YES
#允许写入操作
write_enable=YES
#禁止用户离开自己的用户根目录
chroot_local_user=YES
#启用用户名单列表
userlist_enable=YES
#设置用户名单列表为白名单(只允许名单中的用户连接到vsftpd)
userlist_deny=NO
#设置用户名单列表文件名
userlist_file=/etc/vsftpd/user_allow2、添加测试用户和设置权限:  添加用户testuser,设置密码后,添加到"/etc/vsftpd/user_allow"文件,并重启vsftpd服务:[root@aiezu.com ~]# mkdir -p /ftproot/testuser
[root@aiezu.com ~]# useradd -d /ftproot testuser -s /sbin/nologin
[root@aiezu.com ~]# chown -R testuser.testuser /ftproot/testuser
[root@aiezu.com ~]# chmod a-w /ftproot
[root@aiezu.com ~]# passwd testuser
Changing password for user testuser.
New password: (这里输入密码)
passwd: all authentication tokens updated successfully.
[root@aiezu.com ~]# echo "testuser" >> /etc/vsftpd/user_allow3、重启vsftpd服务:[root@aiezu.com ~]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service4、测试:  在另外一台服务器上连接ftp进行测试,使用本地用户“testuser”和你设置的密码进行连接:[root@s2 ~]# ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
220 (vsFTPd 3.0.2)
Name (yyy.yyy.yyy.yyy:root): testuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (106,14,37,132,223,218).
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Mar 25 12:56 testuser
226 Directory send OK.
ftp> mkdir aa
550 Create directory operation failed.
ftp> cd testuser
250 Directory successfully changed.
ftp> mkdir aa
257 "/testuser/aa" created
ftp> dir
227 Entering Passive Mode (106,14,37,132,89,105).
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Mar 25 12:58 aa
226 Directory send OK. 六、方案三,配置虚拟用户访问的vsftpd服务(推荐方式):1、创建虚拟用户密码文件,奇数行为用户名,偶数行为密码:touch /etc/vsftpd/vir_user.txt
echo -e "aiezuuser\naiezu123" >> /etc/vsftpd/vir_user.txt
2、生成虚拟用户数据库:yum -y install libdb-utils
db_load -T -t hash -f /etc/vsftpd/vir_user.txt /etc/vsftpd/vir_user.db
3、配置vsftpd pam验证文件/etc/pam.d/vsftpd:mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
cat <<END > /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user
END
4、修改虚拟数据库文件vir_user.db的权限为700:chmod 700 /etc/vsftpd/vir_user.db
5、增加一个系统用户virftp ,所有虚拟用户都会映射到此用户后对文件系统进行读写操作:
mkdir /ftprootuseradd -d /ftproot virftp -s /sbin/nologin
chown -R virftp.virftp /ftproot
6、设置vsftpd主配置文件/etc/vsftpd/vsftpd.conf:#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户
guest_enable=YES
#把虚拟账户映射到系统账户virftp
guest_username=virftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES
7、设置虚拟用户各自的配置文件:mkdir /etc/vsftpd/vsftpd_viruser/
#配置文件名同虚拟账户名
touch /etc/vsftpd/vsftpd_viruser/aiezuuser
mkdir -p /ftproot/aiezuuser/
chown -R virftp.virftp /ftproot/aiezuuser/
8、在虚拟用户 aiezuuser 的配置文件中写入如下配置/etc/vsftpd/vsftpd_viruser/aiezuuser:# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
# 允许虚拟用户aiezuuser上传文件
anon_upload_enable=YES
# 允许虚拟用户创建目录
anon_mkdir_write_enable=YES
# 允许虚拟用户aiezuuser执行其他操作(如改名、删除)
anon_other_write_enable=YES
# 上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
# 指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/aiezuuser/
9、重启vsftpd服务:service vsftpd restart 
10、使用虚拟用户aiezuuser和密码aiezu123进行连接vsftpd测试: [root@S2 ~]# ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
220 (vsFTPd 3.0.2)
Name (yyy.yyy.yyy.yyy:root): aiezuuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir aa
257 "/aa" created
ftp> mkdir bb
257 "/bb" created
ftp> ls
227 Entering Passive Mode (106,14,37,132,129,241).
150 Here comes the directory listing.
drwx------ 2 1000 1000 4096 Mar 25 14:36 aa
drwx------ 2 1000 1000 4096 Mar 25 14:36 bb
226 Directory send OK. 七、常见问题:问题一:连接到vsftpd服务器时,提示:500 OOPS: vsftpd: refusing to run with writable root inside chroot()解决方法:请参考http://aiezu.com/question/112.html 
  八、附录:1、vsftpd相关目录和文件介绍:/etc/vsftpd/vsftpd.conf:vsftpd服务主配置文件;/etc/vsftpd/ftpusers:设置不允许访问ftp服务的系统用户(黑名单),一行一个用户名;/etc/vsftpd/user_list:用于设置允许或禁止访问vsftpd服务的系统用户名单,主配置文件的“userlist_enable”参数决定此名单是否生效,“userlist_deny”参数决定此名单是黑名单还是白名单;/etc/pam.d/vsftpd:vsftpd的pam模块的配置文件,用来认证身份和阻止特定用户;/usr/sbin/vsftpd:vsftpd的主要执行文件;/var/ftp:vsftpd的默认匿名用户登录的根目录。 2、主配置文件vsftpd.conf相关参数介绍:  vsftpd的配置参数很多,我们可以通过man 5 vsftpd.conf命令获取到vsftpd.conf配置文件的详细帮助信息。下面介绍一些vsftpd常用的参数。
①. vsftpd服务全局相关参数:参数描述connect_from_port_20=YES|NO是否使用20号端口做为ftp-data的端口号listen_port=21设置vsftpd服务监听的端口号listen=YES|NO设置vsftpd是否stand alone方式启动pasv_enable=YES|NO是否开启被动模式pasv_max_port=0
pasv_min_port=0设置被动模式(passive mode)使用的端口范围,为0时不受限制max_Clients=0当vsftpd以stand alone运行时,用来设置最大同时在线数max_per_ip=0用于设置同一IP允许的同时最大连接数idle_session_timeout=300如果用户300秒内没有命令操作,则强制离线ftpd_banner="欢迎信息"
banner_file=/path/file通过字符串或者文件的方式设置连接到vsftpd服务器时的欢迎信息dirmessange_enable=YES|NO
message_file=.message配置ftp进入目录时显示目录下某个文件的内容做为提示信息ascii_download_enable=YES|NO
ascii_upload_enable=YES|NO是否允许ascii方式传输xferlog_enable=YES|NO
xferlog_file=/var/log/vsftpd.log是否记录用户下载上传的文件②. vsftpd用户、权限相关参数:参数描述write_enable=YES|NO用来设置是否允许用户上传文件guest_username=ftp指定来宾用户身份的用户名guest_enable=YES|NO是否将非匿名用户映射成来宾用户。local_enable=YES|NO是否允许/etc/passwd中的用户以实体用户的身份登录到ftp服务器。local_max_rate=0设置最大传输速度,单位为bytes/schroot_local_user=YES|NO
chroot_list_enable=YES|NO
chroot_list_file=/etc/vsftpd/chroot_list用来设置哪些用户被限制在自己的目录内无法离开allow_writeable_chroot=YES|NO启用chroot时用户根目录是否允许写入,默认否userlist_enable=YES|NO
userlist_deny=YES|NO
userlist_file=/etc/vsftpd/user_list用来阻止或者允许相关用户登录到vsftpd服务器;  
userlist_file:指定允许或禁止访问vsftpd服务的系统用户名单文件;
userlist_enable:决定名单是否生效;
userlist_deny:决定此名单是黑名单还是白名单;anonymous_enable=YES|NO是否允许anonymouns用户登录到vsftpd服务器anon_root=/var/ftp设置匿名用户根目录anon_world_readable_only=YES|NO匿名用户是否只允许下载可读的文件anon_mkdir_write_enable=YES|NO
anon_upload_enable=YES|NO
anon_other_write_enable=YES|NO设置匿名用户的写入权限no_anon_password=YES|NOanonymous登录时是否可以省略密码。
(匿名用户使用用户名“anonymous”,密码使用任意包含“@”字符的字符串登陆)anon_max_rate=0设置anonymous的最大传输速度。anon_umask=077anonymous用户上传文件的权限掩码。 查看全部
  ftp是我们最常用的网络协议之一,用于方便的在网络中传输文件。vsftp是Linux平台轻量级的ftp服务软件,它小巧轻快、简单易用。本文介绍CentOS 7下使用yum安装配置vsftpd服务器,包括匿名登录方式、系统用户登录方式和虚拟用户登录三种登录方式的vsftpd服务配置。本文也适用于RHEL、Fedora、Oracle Linux 等其它Linux Redhat发行版本。

一、实验环境:

 

二、安装准备:

1、关闭SELINUX:

  SELINUX为Linux提供安全强化同时,也让Linux服务安装变得更复杂。未正确的为相关服务配置SELINUX,将导致服务无法正常运行。所以对于初学者来说,建议关闭SELINUX。vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
保存退出后,执行“setenforce 0”命令使配置立生效:
setenforce 0
 

三、安装vsftpd服务:

1、使用安装yum安装vsftpd:

  使用“yum -y install vsftpd ”命令,会自动安装vsftpd命令和相关依赖包:
yum -y install vsftpd

2、备份vsftpd配置文件:

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
 

四、方案一,配置匿名访问的vsftpd服务:

1、配置vsftpd.conf文件:

#允许匿名用户访问
anonymous_enable=YES
#禁止本地用户访问
local_enable=NO
#允许匿名用户创建目录
anon_mkdir_write_enable=YES
#允许匿名用户上传文件
anon_upload_enable=YES
#允许匿名用户执行其他写入操作,如删除
anon_other_write_enable=YES
#设置匿名用户根目录
anon_root=/ftp

2、创建匿名用户目录:

# /ftp/pub目录可写,/ftp目录不可写
mkdir -p /ftp/pub
chown -R ftp.ftp /ftp
chmod a-w /ftp

3、启动vsftpd服务:

[root@aiezu.com vsftpd]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service

4、测试:

在另外一台服务器上连接ftp进行测试,使用匿名用户“anonymous”和任意包含"@"字符串的密码进行连接:
[root@aiezu.com ~]# ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
220 (vsFTPd 3.0.2)
Name (yyy.yyy.yyy.yyy:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (106,14,37,132,180,191).
150 Here comes the directory listing.
drwxr-xr-x 2 14 50 4096 Mar 24 15:01 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir ok
257 "/pub/ok" created
ftp> rm ok
250 Remove directory operation successful.
 

五、方案二,配置本地用户(系统)访问的vsftpd服务:

1、配置主配置文件vsftpd.conf:

#禁止匿名用户访问
anonymous_enable=NO
#允许本地用户访问
local_enable=YES
#允许写入操作
write_enable=YES
#禁止用户离开自己的用户根目录
chroot_local_user=YES
#启用用户名单列表
userlist_enable=YES
#设置用户名单列表为白名单(只允许名单中的用户连接到vsftpd)
userlist_deny=NO
#设置用户名单列表文件名
userlist_file=/etc/vsftpd/user_allow

2、添加测试用户和设置权限:

  添加用户testuser,设置密码后,添加到"/etc/vsftpd/user_allow"文件,并重启vsftpd服务:
[root@aiezu.com ~]# mkdir -p /ftproot/testuser
[root@aiezu.com ~]# useradd -d /ftproot testuser -s /sbin/nologin
[root@aiezu.com ~]# chown -R testuser.testuser /ftproot/testuser
[root@aiezu.com ~]# chmod a-w /ftproot
[root@aiezu.com ~]# passwd testuser
Changing password for user testuser.
New password: (这里输入密码)
passwd: all authentication tokens updated successfully.
[root@aiezu.com ~]# echo "testuser" >> /etc/vsftpd/user_allow

3、重启vsftpd服务:

[root@aiezu.com ~]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service

4、测试:

  在另外一台服务器上连接ftp进行测试,使用本地用户“testuser”和你设置的密码进行连接:
[root@s2 ~]# ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
220 (vsFTPd 3.0.2)
Name (yyy.yyy.yyy.yyy:root): testuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (106,14,37,132,223,218).
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Mar 25 12:56 testuser
226 Directory send OK.
ftp> mkdir aa
550 Create directory operation failed.
ftp> cd testuser
250 Directory successfully changed.
ftp> mkdir aa
257 "/testuser/aa" created
ftp> dir
227 Entering Passive Mode (106,14,37,132,89,105).
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Mar 25 12:58 aa
226 Directory send OK.
 

六、方案三,配置虚拟用户访问的vsftpd服务(推荐方式):

1、创建虚拟用户密码文件,奇数行为用户名,偶数行为密码:
touch /etc/vsftpd/vir_user.txt
echo -e "aiezuuser\naiezu123" >> /etc/vsftpd/vir_user.txt

2、生成虚拟用户数据库:
yum -y install libdb-utils 
db_load -T -t hash -f /etc/vsftpd/vir_user.txt /etc/vsftpd/vir_user.db

3、配置vsftpd pam验证文件/etc/pam.d/vsftpd:
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
cat <<END > /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user
END

4、修改虚拟数据库文件vir_user.db的权限为700:
chmod 700 /etc/vsftpd/vir_user.db

5、增加一个系统用户virftp ,所有虚拟用户都会映射到此用户后对文件系统进行读写操作:
mkdir /ftproot
useradd -d /ftproot virftp -s /sbin/nologin
chown -R virftp.virftp /ftproot

6、设置vsftpd主配置文件/etc/vsftpd/vsftpd.conf:
#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户
guest_enable=YES
#把虚拟账户映射到系统账户virftp
guest_username=virftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES

7、设置虚拟用户各自的配置文件:
mkdir /etc/vsftpd/vsftpd_viruser/
#配置文件名同虚拟账户名
touch /etc/vsftpd/vsftpd_viruser/aiezuuser
mkdir -p /ftproot/aiezuuser/
chown -R virftp.virftp /ftproot/aiezuuser/

8、在虚拟用户 aiezuuser 的配置文件中写入如下配置/etc/vsftpd/vsftpd_viruser/aiezuuser:
# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
# 允许虚拟用户aiezuuser上传文件
anon_upload_enable=YES
# 允许虚拟用户创建目录
anon_mkdir_write_enable=YES
# 允许虚拟用户aiezuuser执行其他操作(如改名、删除)
anon_other_write_enable=YES
# 上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
# 指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/aiezuuser/

9、重启vsftpd服务:
service vsftpd restart
 
10、使用虚拟用户aiezuuser和密码aiezu123进行连接vsftpd测试: 
[root@S2 ~]# ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
220 (vsFTPd 3.0.2)
Name (yyy.yyy.yyy.yyy:root): aiezuuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir aa
257 "/aa" created
ftp> mkdir bb
257 "/bb" created
ftp> ls
227 Entering Passive Mode (106,14,37,132,129,241).
150 Here comes the directory listing.
drwx------ 2 1000 1000 4096 Mar 25 14:36 aa
drwx------ 2 1000 1000 4096 Mar 25 14:36 bb
226 Directory send OK.
 

七、常见问题:

问题一:连接到vsftpd服务器时,提示:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决方法:请参考http://aiezu.com/question/112.html 
  

八、附录:

1、vsftpd相关目录和文件介绍:

  • /etc/vsftpd/vsftpd.conf:vsftpd服务主配置文件;
  • /etc/vsftpd/ftpusers:设置不允许访问ftp服务的系统用户(黑名单),一行一个用户名;
  • /etc/vsftpd/user_list:用于设置允许或禁止访问vsftpd服务的系统用户名单,主配置文件的“userlist_enable”参数决定此名单是否生效,“userlist_deny”参数决定此名单是黑名单还是白名单;
  • /etc/pam.d/vsftpd:vsftpd的pam模块的配置文件,用来认证身份和阻止特定用户;
  • /usr/sbin/vsftpd:vsftpd的主要执行文件;
  • /var/ftp:vsftpd的默认匿名用户登录的根目录。
 

2、主配置文件vsftpd.conf相关参数介绍:

  vsftpd的配置参数很多,我们可以通过man 5 vsftpd.conf命令获取到vsftpd.conf配置文件的详细帮助信息。下面介绍一些vsftpd常用的参数。
①. vsftpd服务全局相关参数:
参数描述
connect_from_port_20=YES|NO是否使用20号端口做为ftp-data的端口号
listen_port=21设置vsftpd服务监听的端口号
listen=YES|NO设置vsftpd是否stand alone方式启动
pasv_enable=YES|NO是否开启被动模式
pasv_max_port=0
pasv_min_port=0
设置被动模式(passive mode)使用的端口范围,为0时不受限制
max_Clients=0当vsftpd以stand alone运行时,用来设置最大同时在线数
max_per_ip=0用于设置同一IP允许的同时最大连接数
idle_session_timeout=300如果用户300秒内没有命令操作,则强制离线
ftpd_banner="欢迎信息"
banner_file=/path/file
通过字符串或者文件的方式设置连接到vsftpd服务器时的欢迎信息
dirmessange_enable=YES|NO
message_file=.message
配置ftp进入目录时显示目录下某个文件的内容做为提示信息
ascii_download_enable=YES|NO
ascii_upload_enable=YES|NO
是否允许ascii方式传输
xferlog_enable=YES|NO
xferlog_file=/var/log/vsftpd.log
是否记录用户下载上传的文件
②. vsftpd用户、权限相关参数:
参数描述
write_enable=YES|NO用来设置是否允许用户上传文件
guest_username=ftp指定来宾用户身份的用户名
guest_enable=YES|NO是否将非匿名用户映射成来宾用户。
local_enable=YES|NO是否允许/etc/passwd中的用户以实体用户的身份登录到ftp服务器。
local_max_rate=0设置最大传输速度,单位为bytes/s
chroot_local_user=YES|NO
chroot_list_enable=YES|NO
chroot_list_file=/etc/vsftpd/chroot_list
用来设置哪些用户被限制在自己的目录内无法离开
allow_writeable_chroot=YES|NO启用chroot时用户根目录是否允许写入,默认否
userlist_enable=YES|NO
userlist_deny=YES|NO
userlist_file=/etc/vsftpd/user_list
用来阻止或者允许相关用户登录到vsftpd服务器;  
userlist_file:指定允许或禁止访问vsftpd服务的系统用户名单文件;
userlist_enable:决定名单是否生效;
userlist_deny:决定此名单是黑名单还是白名单;
anonymous_enable=YES|NO是否允许anonymouns用户登录到vsftpd服务器
anon_root=/var/ftp设置匿名用户根目录
anon_world_readable_only=YES|NO匿名用户是否只允许下载可读的文件
anon_mkdir_write_enable=YES|NO
anon_upload_enable=YES|NO
anon_other_write_enable=YES|NO
设置匿名用户的写入权限
no_anon_password=YES|NOanonymous登录时是否可以省略密码。
(匿名用户使用用户名“anonymous”,密码使用任意包含“@”字符的字符串登陆)
anon_max_rate=0设置anonymous的最大传输速度。
anon_umask=077anonymous用户上传文件的权限掩码。

vim简体中文帮助手册下载和安装

Linuxliuliangsong 发表了文章 • 0 个评论 • 291 次浏览 • 2016-12-21 09:29 • 来自相关话题

一、下载目录介绍:1、pdf-manual目录:  pdf格式vim简体中文帮助手册。现在一般最新版本的浏览器都支持浏览pdf,所以下载后基本上能直接使用浏览器打开。如果无法使用浏览器打开,请安装一个pdf阅读器打开。
 2、win32-install目录:  这是vim中文帮助手册的windows安装版,只能安装在装有vim编辑器的windows的电脑上。下载后双击即可安装,安装程序会自动检测你的vim安装目录。
  3、vimcdoc目录:  这是vim中文帮助手册的Linux/unix安装版,下载后使用tar命令解压,然后进入解压目录,使用“./vimcdoc.sh -i”命令即可安装:tar -zxvf vimcdoc-1.9.0.tar.gz
cd vimcdoc-1.9.0
./vimcdoc.sh -i  安装好后,在vim中,输入:help命令,即显示vim的中文帮助文档,效果如下:


  进入帮助文档后,将关标移动到子文档名上,然后按CTRL+]可以进入子文档,在子文档按CTRL+T返回主帮助文档。按CTRL+W+方向键可以切换光标所在的窗口。
 二、vim help下载地址:1、vim中文文档下载地址:  本文提供vim简体中文帮助手册的两个下载地址,百度云下载和sourceforge.net下载:sourceforge.net下载:https://sourceforge.net/projects/vimcdoc/files/百度云下载:http://pan.baidu.com/s/1mhIPY1E
 2、vim版本与下载文件关系:vim 7.4下载:简体中文帮助收册的1.9.0版;vim 7.3下载:简体中文帮助收册的1.8.0版; 查看全部

一、下载目录介绍:

1、pdf-manual目录:

  pdf格式vim简体中文帮助手册。现在一般最新版本的浏览器都支持浏览pdf,所以下载后基本上能直接使用浏览器打开。如果无法使用浏览器打开,请安装一个pdf阅读器打开。
 

2、win32-install目录:

  这是vim中文帮助手册的windows安装版,只能安装在装有vim编辑器的windows的电脑上。下载后双击即可安装,安装程序会自动检测你的vim安装目录。
  

3、vimcdoc目录:

  这是vim中文帮助手册的Linux/unix安装版,下载后使用tar命令解压,然后进入解压目录,使用“./vimcdoc.sh -i”命令即可安装:
tar -zxvf vimcdoc-1.9.0.tar.gz
cd vimcdoc-1.9.0
./vimcdoc.sh -i
  安装好后,在vim中,输入:help命令,即显示vim的中文帮助文档,效果如下:
vimdoc_download_install.png
  进入帮助文档后,将关标移动到子文档名上,然后按CTRL+]可以进入子文档,在子文档按CTRL+T返回主帮助文档。按CTRL+W+方向键可以切换光标所在的窗口。
 

二、vim help下载地址:

1、vim中文文档下载地址:

  本文提供vim简体中文帮助手册的两个下载地址,百度云下载和sourceforge.net下载:
 

2、vim版本与下载文件关系:

  • vim 7.4下载:简体中文帮助收册的1.9.0版;
  • vim 7.3下载:简体中文帮助收册的1.8.0版;

Vim编辑器之《Vim常用选项合集》

Linuxliuliangsong 发表了文章 • 0 个评论 • 235 次浏览 • 2016-12-18 23:48 • 来自相关话题

  在vim编辑器中,有很多选项用于控制vim的运行。你可以在使用vim的时候在vim编辑器中临时设置,也可以将选项设置在"~/.vimrc"文件中,让vim命令每次启动时自动加载。
  你可以使用":set"命令查看当前vim的设置的选项,使用":set all"命令查看vim所有支持的选项。有很多选项是打开(on)/关闭(off)一个功能,如num行号显示/隐藏选项,你可以使用":set num"显示行号、":set nonum"隐藏行号:组选项描述用法:set all显示所有选项和设置; :set显示当前设置的所有选项; :set num?显示num选项的当前设置;num可以换成其他选项; :set num
:set nonum打开选项与关闭选项;
num可以换成其他选项; num/nonum是/否显示行号; wrap/nowrap是(默认)/否自动换行; wrapmargin=n设置右边界的值,当输入时到达右边界,并遇到空格时,会自动插入换行; aw/noaw 临时转入shell或使用":n"编辑其他文件时,是/否自动保存当前文件已做的修改; flash/noflash在出错处使用闪烁提醒/使用呜叫提醒;缩进ai/noaiautoindent是/否使用自动缩进方式,新行与前面的行保持—致的缩进; smartindentsmartindent/nosmartindent:是否使用能识别类C语法的智能缩进方式; cindentcindent/nocindent:是/否使用cindent缩进方式; indentexprindentexpr/noindentexpr:是/否使用indentexpr缩进方式; indenttype=缩进方式:autoindent、smartindent、cindent、indentexpr(同上); shiftwidth=n自动缩进字符数; tabstop=n 将TAB键的宽度设置为n个宁符宽度,默认为8;编码encoding=设置vim内部使用的编码字符集;如:prc; fileencoding=设置当前编辑的文件的字符编码方式;如:utf-8; fileencodings=设置vim自动探测fileencoding的顺序列表;如:"ucs-bom,utf-8,latin1"; termencoding=vim工作的终端的编码方式;如:utf-8; ambiwidth=设置汉字所占字符宽度;如:double;搜索ic/noic搜索时忽赂大小写/不忽略大小写(默认); wrapscan在搜索时到达文件尾后是/否跳文件头继续搜索; incsearchincsearch/noincsearch:输入搜索关键字时,是/否(默认)自动高亮匹配的字符; hlsearchhlsearch/nohlsearch:搜索后,是/否(默认)保留匹配字符的高亮显示编程syntax=on/off:是/否显示语法高亮;保存ro/noro是/否只读模式,只读模式写只能通过强制方式":w!"写入,否则无法写入; history=nhistory记录的行数,默认100个历史记录;filefiletype on侦测文件类型; filetype plugin on载入文件类型插件; filetype indent on为特定文件类型载入相关缩进文件; report=n复制或者删除了多少行时显示提示信息,默认为2; laststatus=0,1,2是否显示状态栏,0:不显示,1:需要时间显示,2:总是显示; list/nolist是/否将tab、换行符使用替代字符显示(^I、$); shell=path设置vim执行外部命令时使用的shell路径,如:/bin/bash; showmatch设置输入右半边括号时,是/否(默认)提示所对应的左半边括号; showmode设置是(默认)/否在窗口左下角显示当前的模式:插入、替换等模式; compatible除非.vimrc文件存在,默认vim会尝试采用vi兼容的模式; 相关文章:vim编辑器学习之《vim编辑命令快捷键》Vim编辑器之《Vim常用选项合集》Vim go语言基础IDE开发环境安装(Vundle/vim-go)vim go语言IDE环境Tagbar插件和NERDTree插件安装 查看全部
  在vim编辑器中,有很多选项用于控制vim的运行。你可以在使用vim的时候在vim编辑器中临时设置,也可以将选项设置在"~/.vimrc"文件中,让vim命令每次启动时自动加载。
  你可以使用":set"命令查看当前vim的设置的选项,使用":set all"命令查看vim所有支持的选项。有很多选项是打开(on)/关闭(off)一个功能,如num行号显示/隐藏选项,你可以使用":set num"显示行号、":set nonum"隐藏行号:
选项描述
用法:set all显示所有选项和设置;
 :set显示当前设置的所有选项;
 :set num?显示num选项的当前设置;num可以换成其他选项;
 :set num
:set nonum
打开选项与关闭选项;
num可以换成其他选项;
 num/nonum是/否显示行号;
 wrap/nowrap是(默认)/否自动换行;
 wrapmargin=n设置右边界的值,当输入时到达右边界,并遇到空格时,会自动插入换行;
 aw/noaw 临时转入shell或使用":n"编辑其他文件时,是/否自动保存当前文件已做的修改;
 flash/noflash在出错处使用闪烁提醒/使用呜叫提醒;
缩进ai/noaiautoindent是/否使用自动缩进方式,新行与前面的行保持—致的缩进;
 smartindentsmartindent/nosmartindent:是否使用能识别类C语法的智能缩进方式;
 cindentcindent/nocindent:是/否使用cindent缩进方式;
 indentexprindentexpr/noindentexpr:是/否使用indentexpr缩进方式;
 indenttype=缩进方式:autoindent、smartindent、cindent、indentexpr(同上);
 shiftwidth=n自动缩进字符数;
 tabstop=n 将TAB键的宽度设置为n个宁符宽度,默认为8;
编码encoding=设置vim内部使用的编码字符集;如:prc
 fileencoding=设置当前编辑的文件的字符编码方式;如:utf-8;
 fileencodings=设置vim自动探测fileencoding的顺序列表;如:"ucs-bom,utf-8,latin1";
 termencoding=vim工作的终端的编码方式;如:utf-8;
 ambiwidth=设置汉字所占字符宽度;如:double;
搜索ic/noic搜索时忽赂大小写/不忽略大小写(默认);
 wrapscan在搜索时到达文件尾后是/否跳文件头继续搜索;
 incsearchincsearch/noincsearch:输入搜索关键字时,是/否(默认)自动高亮匹配的字符;
 hlsearchhlsearch/nohlsearch:搜索后,是/否(默认)保留匹配字符的高亮显示
编程syntax=on/off:是/否显示语法高亮;
保存ro/noro是/否只读模式,只读模式写只能通过强制方式":w!"写入,否则无法写入;
 history=nhistory记录的行数,默认100个历史记录;
filefiletype on侦测文件类型;
 filetype plugin on载入文件类型插件;
 filetype indent on为特定文件类型载入相关缩进文件;
 report=n复制或者删除了多少行时显示提示信息,默认为2;
 laststatus=0,1,2是否显示状态栏,0:不显示,1:需要时间显示,2:总是显示;
 list/nolist是/否将tab、换行符使用替代字符显示(^I、$);
 shell=path设置vim执行外部命令时使用的shell路径,如:/bin/bash;
 showmatch设置输入右半边括号时,是/否(默认)提示所对应的左半边括号;
 showmode设置是(默认)/否在窗口左下角显示当前的模式:插入、替换等模式;
 compatible除非.vimrc文件存在,默认vim会尝试采用vi兼容的模式;
 

相关文章:

vim编辑器学习之《vim编辑命令快捷键》

Linuxliuliangsong 发表了文章 • 0 个评论 • 291 次浏览 • 2016-12-17 13:00 • 来自相关话题

  Vim是Linux/Unix平台的一款使用复杂、功能十分强大、且又非常常用的文本编辑器。它有非常多的快捷键、熟练掌握它们,能极大的提高工作效率。下面是爱E族整理的vim中常用的命令,供大家参考。要系统的学习了解vim,大家可以前往:http://vimcdoc.sourceforge.net/doc/ 命令描述保
存:r读入;':r file'从file文件读入;':5 r !command':从命令中读入到第5行后;:w保存;':w':强制保存;':w! file'强制保存到file文件;:q退出;q!:强制退出;:wq,:x保存退出;':x!'、':wq!':强制保存退出;ZQ,ZZ无论如何退出当前编辑;ZQ:放弃未保存内容;ZZ:自动保存修改的内容;:sh进入到shell终端,退出shell后可回到vim当前的编辑;CTRL+Z将vim压人后台运行回到shell,在shell中使用fg命令可恢复vim编辑,jobs查看任务;:!command临时执行shell命令;光


动←↓↑→ 按字符移动,使用方向键,或者用h: ←、 j: ↓、 k:↑、 l:→ 退格,空格退格(命令模式):左移一格;空格(命令模式):右移一格;w移动到下个单词开始处;3w:移动到后面第3个单词开始处;b移动到上个单词开始处;2b:移动到前面第2个单词开始处;e移动到下个单词结尾处;2e:移动到后面第2个单词结尾处;ge移动到上个单词结尾处;2ge:移动到前面第2个单词结尾处;W,B,E,gE同w,b,ge,但对单词的判断更宽松;^,0移动到行首;$移动到行尾;5$:移动到第5行结尾;(,)(:把光标移到完整句子的句首;):把光标移到完整句子的句尾;{,}{:把光标移到完整段落的段首;}:把光标移到完整段落的段尾;f向后移动到指定字符位置;fa:移动到'a'处;4f1:移动到第4个'1'处;F向前移动到指定字符位置;Fb:前移到'b'处;4f8:前移到第4个'8'处;t同f,只是移动到查找字符的前一个字符;T同F,只是移动到查找字符的后一个字符;%移动到与当前位置括弧成对的另一个括弧位置:{..},(..),[..];按

移-,+,Enter-:下移一行;+,回车:下移一行;j,k按行下、上移动;4j:下移4行;5k:上移5行;gg移动到文件首行;5gg:移动到第5行;G移动到文件末行;8G:移动到第8行;%移动到文件百分比位置;10%:移动到文件10%位置;历

&

签``跳回到光标的上一次的位置;CTRL+O无限跳回光标的上一个位置;":jumps"能显示调往的位置列表;CTRL+I无限跳往光标的下一个位置;:makrs显示所有书签;m创建一个书签;mo:创建一个名称为'o'的书签;`跳转到书签位置;`a:调整到书签'a'的位置;宏qqa:开始录制宏,宏名为'a';@@a,5@a:执行宏'a'1次、5次;滚
屏H,M,L移动到屏首、中、尾;zt,zz,zb滚屏使光标位于屏幕首、中、尾部;CTRL+..B、F向上、下滚一屏;U、D向上、下滚半屏;Y、E向上、下滚一行;查

&

换/String搜索字符串Str,Str可以是普通字符串或者正则表达式;
.*[]^%/\?~$在有特殊含义,如要查找它们,需要在前面加上一个"\"字符;
/str/-num,/str/+num:查找后跳转到匹配行的前num行、后num行;
查找时,可以使用'n'查找下一个,使用'N'查找上一个;?String同'/'; 只是"?"是向前查找;
?str?-num,?str?+num:查找后跳转到匹配行的前num行、后num行;:%s/././%s/a/b/:将a替换成b,替换一次;%s/a/b/g:将全部a替换成b;
%s/a/b/gc:查找所有a并询问是否替换为b;
20,30s#a#b#g:将20-30行的a全部替换成b;插
入i,Ii:在当前位置前插入;I:在当前行首个非不可见字符前插入;a,Aa:在当前位置后插入;A:在行尾插入;o,Oo:在当前行下面插入文本;O:在当前行上面插入文本;删
除x,Xx、4x:删右1个、4个字符;X、5X:删左边1个、5个字符;D删除光标到行尾;4D:删除光标到行尾、和光标下面3行;dwdw:删除单词和单词后的空格;d4w:删除4个单词和最后的空格;dede:删除单词,保留单词后空格;d4e:删除4个单词,但保留最后的空格;di删除标记内的内容;di(、di[、di{:删除一对()、[]、{}中的内容;dt删除光标到指定标记之间的内容;dt.:删除光标到'.'间的内容;dT删除指定标记到光标之间的内容;dTs:删除字符's'到光标间的内容;d^,d$d^:删除当前到行首字符;d$:删除当前位置到行尾字符;dddd:删除整行;4dd、d4d:删除4行;:n1,n2 d删除n1-n2的所有行;JJ、5J:将2行、5行连成一行(删除首尾缩进、换行符、空格,使用空格连接多行);gJgJ、5gJ:将2行、5行连成一行(删除尾部换行符,保留空格、缩进);删



入C同D,不过删除后进入插入模式;cw,ce同dw,de,不过删除后进入插入模式;ci,ct,cT同ci,ct,CT,不过删除后进入插入模式;c^,c$同d^,d$,不过删除后进入插入模式;cc同dd,不过删除后进入插入模式;ss、4s:删除1、4个字符后进入插入模式;SS、4S:删除1、4行后进入插入模式;xp交换光标当前位置开始的两个字符的位置;覆
写r,grr、4r使用输入字符替换1个、4个字符;gr:按字符宽度替换;R,gR进入替换输入模式,输入一个字符替换一个字符;gR:按字符宽度替换;复
制yyw、ye、y^、y$、yy、5yy:复制单词、单词、到行首、到行尾、整行、5行;Y同yy,按整行复制;pp:粘贴;5p粘贴5次;注:最后删除的内容会寄存在粘贴板,可以用来粘贴;P同p,不过如果是粘贴整行内容时,p粘贴到当前行下,而P粘贴在当前行上面;大

写~修改光标下字符的大小写,并移动到下一个字符;g~g~4,g~5w,6g~~:转换4个字符、5个单词、6行字符的大小写;gUgU4<空格>,gU5e,6gUU:转换4个字符、5个单词、6行为大写;gugu4<空格>,gu5e,6guu:转换4个字符、5个单词、6行为小写;撤
销u,Uu: 撤销上一个操作;U:撤销当前行所有的操作;CTRL-R恢复被撤销的操作;.重复上一个修改,由爱E族整理,未授权不得转载;Exd删除行(del),':.,100 d':删除当前行到100行的所有行;co拷贝行(copy),':2,5 co 8':将2-5行复制到第8行;m移动行(move),':20,. $':当20行到当前行移动到文件尾;可


式v进入可视模式,然后可按方向键选取文本后进行复制、删除等操作;V进入可视模式,按行选取;CTRL+V进入可视模式,按列选取;o,O可视模式下,o:调到对角去选取;O:跳到对面去选取;移
动>右移一个tab宽度;>5gg、>G、>gg:第5行、文件尾、文件头到当前行右移;>>右移一个tab宽度;3>>:3行右移一个tab宽度;<同'>',不过<为左移;<<同'>>',不过<<为左移;对
齐:%le':%le':全部左对齐;':10,20le':10-20行左对齐;:%ce':%ce':全部居中对齐;':10,20ce':10-20行居中对齐;:%ri':%ri':全部右对齐;':10,20ri':10-20行右对齐;其
他CTRL+G显示当前文件名和位置;CTRL+L清除其他进程对vim窗口的干扰信息;CTRL+V输入控制字符;如:按CTRL+V,后按CTRL+M可输入'^M'字符;K根据当前位置的关键词去查找帮助手册;Q进入“Ex”模式;ga打印光标所在处的字符的 ascii 值:%!xxd进入十六进制编辑模式;:%!xxd -r恢复文本编辑模式;:ab定义缩写,如':ab aiezu aiezu.com',这样输入aiezu时间自动变为aiezu.com。其他:要替换特殊字符,如'^M',可以不能直接输入^M,要使用CTRL+V后,再按CTRL+M输入。vim -r file:恢复由意外退出未保存的vim编辑;view file:以只读的方式打开vim文件编辑;
 相关文章:vim编辑器学习之《vim编辑命令快捷键》Vim编辑器之《Vim常用选项合集》Vim go语言基础IDE开发环境安装(Vundle/vim-go)vim go语言IDE环境Tagbar插件和NERDTree插件安装 查看全部
  Vim是Linux/Unix平台的一款使用复杂、功能十分强大、且又非常常用的文本编辑器。它有非常多的快捷键、熟练掌握它们,能极大的提高工作效率。下面是爱E族整理的vim中常用的命令,供大家参考。要系统的学习了解vim,大家可以前往:http://vimcdoc.sourceforge.net/doc/
 命令描述

:r读入;':r file'从file文件读入;':5 r !command':从命令中读入到第5行后;
:w保存;':w':强制保存;':w! file'强制保存到file文件;
:q退出;q!:强制退出;
:wq,:x保存退出;':x!'、':wq!':强制保存退出;
ZQ,ZZ无论如何退出当前编辑;ZQ:放弃未保存内容;ZZ:自动保存修改的内容;
:sh进入到shell终端,退出shell后可回到vim当前的编辑;
CTRL+Z将vim压人后台运行回到shell,在shell中使用fg命令可恢复vim编辑,jobs查看任务;
:!command临时执行shell命令;



←↓↑→ 按字符移动,使用方向键,或者用h: ←、 j: ↓、 k:↑、 l:→ 
退格,空格退格(命令模式):左移一格;空格(命令模式):右移一格;
w移动到下个单词开始处;3w:移动到后面第3个单词开始处;
b移动到上个单词开始处;2b:移动到前面第2个单词开始处;
e移动到下个单词结尾处;2e:移动到后面第2个单词结尾处;
ge移动到上个单词结尾处;2ge:移动到前面第2个单词结尾处;
W,B,E,gE同w,b,ge,但对单词的判断更宽松;
^,0移动到行首;
$移动到行尾;5$:移动到第5行结尾;
(,)(:把光标移到完整句子的句首;):把光标移到完整句子的句尾;
{,}{:把光标移到完整段落的段首;}:把光标移到完整段落的段尾;
f向后移动到指定字符位置;fa:移动到'a'处;4f1:移动到第4个'1'处;
F向前移动到指定字符位置;Fb:前移到'b'处;4f8:前移到第4个'8'处;
t同f,只是移动到查找字符的前一个字符;
T同F,只是移动到查找字符的后一个字符;
%移动到与当前位置括弧成对的另一个括弧位置:{..},(..),[..];


-,+,Enter-:下移一行;+,回车:下移一行;
j,k按行下、上移动;4j:下移4行;5k:上移5行;
gg移动到文件首行;5gg:移动到第5行;
G移动到文件末行;8G:移动到第8行;
%移动到文件百分比位置;10%:移动到文件10%位置;


&

``跳回到光标的上一次的位置;
CTRL+O无限跳回光标的上一个位置;":jumps"能显示调往的位置列表;
CTRL+I无限跳往光标的下一个位置;
:makrs显示所有书签;
m创建一个书签;mo:创建一个名称为'o'的书签;
`跳转到书签位置;`a:调整到书签'a'的位置;
qqa:开始录制宏,宏名为'a';
@@a,5@a:执行宏'a'1次、5次;

H,M,L移动到屏首、中、尾;
zt,zz,zb滚屏使光标位于屏幕首、中、尾部;
CTRL+..B、F向上、下滚一屏;U、D向上、下滚半屏;Y、E向上、下滚一行;


&

/String搜索字符串Str,Str可以是普通字符串或者正则表达式;
.*[]^%/\?~$在有特殊含义,如要查找它们,需要在前面加上一个"\"字符;
/str/-num,/str/+num:查找后跳转到匹配行的前num行、后num行;
查找时,可以使用'n'查找下一个,使用'N'查找上一个;
?String同'/'; 只是"?"是向前查找;
?str?-num,?str?+num:查找后跳转到匹配行的前num行、后num行;
:%s/././%s/a/b/:将a替换成b,替换一次;%s/a/b/g:将全部a替换成b;
%s/a/b/gc:查找所有a并询问是否替换为b;
20,30s#a#b#g:将20-30行的a全部替换成b;

i,Ii:在当前位置前插入;I:在当前行首个非不可见字符前插入;
a,Aa:在当前位置后插入;A:在行尾插入;
o,Oo:在当前行下面插入文本;O:在当前行上面插入文本;

x,Xx、4x:删右1个、4个字符;X、5X:删左边1个、5个字符;
D删除光标到行尾;4D:删除光标到行尾、和光标下面3行;
dwdw:删除单词和单词后的空格;d4w:删除4个单词和最后的空格;
dede:删除单词,保留单词后空格;d4e:删除4个单词,但保留最后的空格;
di删除标记内的内容;di(、di[、di{:删除一对()、[]、{}中的内容;
dt删除光标到指定标记之间的内容;dt.:删除光标到'.'间的内容;
dT删除指定标记到光标之间的内容;dTs:删除字符's'到光标间的内容;
d^,d$d^:删除当前到行首字符;d$:删除当前位置到行尾字符;
dddd:删除整行;4dd、d4d:删除4行;
:n1,n2 d删除n1-n2的所有行;
JJ、5J:将2行、5行连成一行(删除首尾缩进、换行符、空格,使用空格连接多行);
gJgJ、5gJ:将2行、5行连成一行(删除尾部换行符,保留空格、缩进);




C同D,不过删除后进入插入模式;
cw,ce同dw,de,不过删除后进入插入模式;
ci,ct,cT同ci,ct,CT,不过删除后进入插入模式;
c^,c$同d^,d$,不过删除后进入插入模式;
cc同dd,不过删除后进入插入模式;
ss、4s:删除1、4个字符后进入插入模式;
SS、4S:删除1、4行后进入插入模式;
xp交换光标当前位置开始的两个字符的位置;

r,grr、4r使用输入字符替换1个、4个字符;gr:按字符宽度替换;
R,gR进入替换输入模式,输入一个字符替换一个字符;gR:按字符宽度替换;

yyw、ye、y^、y$、yy、5yy:复制单词、单词、到行首、到行尾、整行、5行;
Y同yy,按整行复制;
pp:粘贴;5p粘贴5次;注:最后删除的内容会寄存在粘贴板,可以用来粘贴;
P同p,不过如果是粘贴整行内容时,p粘贴到当前行下,而P粘贴在当前行上面;


~修改光标下字符的大小写,并移动到下一个字符;
g~g~4,g~5w,6g~~:转换4个字符、5个单词、6行字符的大小写;
gUgU4<空格>,gU5e,6gUU:转换4个字符、5个单词、6行为大写;
gugu4<空格>,gu5e,6guu:转换4个字符、5个单词、6行为小写;

u,Uu: 撤销上一个操作;U:撤销当前行所有的操作;
CTRL-R恢复被撤销的操作;
.重复上一个修改,由爱E族整理,未授权不得转载;
Exd删除行(del),':.,100 d':删除当前行到100行的所有行;
co拷贝行(copy),':2,5 co 8':将2-5行复制到第8行;
m移动行(move),':20,. $':当20行到当前行移动到文件尾;



v进入可视模式,然后可按方向键选取文本后进行复制、删除等操作;
V进入可视模式,按行选取;
CTRL+V进入可视模式,按列选取;
o,O可视模式下,o:调到对角去选取;O:跳到对面去选取;

>右移一个tab宽度;>5gg、>G、>gg:第5行、文件尾、文件头到当前行右移;
>>右移一个tab宽度;3>>:3行右移一个tab宽度;
<同'>',不过<为左移;
<<同'>>',不过<<为左移;

:%le':%le':全部左对齐;':10,20le':10-20行左对齐;
:%ce':%ce':全部居中对齐;':10,20ce':10-20行居中对齐;
:%ri':%ri':全部右对齐;':10,20ri':10-20行右对齐;

CTRL+G显示当前文件名和位置;
CTRL+L清除其他进程对vim窗口的干扰信息;
CTRL+V输入控制字符;如:按CTRL+V,后按CTRL+M可输入'^M'字符;
K根据当前位置的关键词去查找帮助手册;
Q进入“Ex”模式;
ga打印光标所在处的字符的 ascii 值
:%!xxd进入十六进制编辑模式;
:%!xxd -r恢复文本编辑模式;
:ab定义缩写,如':ab aiezu aiezu.com',这样输入aiezu时间自动变为aiezu.com。

其他:

  1. 要替换特殊字符,如'^M',可以不能直接输入^M,要使用CTRL+V后,再按CTRL+M输入。
  2. vim -r file:恢复由意外退出未保存的vim编辑;
  3. view file:以只读的方式打开vim文件编辑;

 

相关文章:

Linux git服务端搭建和公钥免密码登录

Linuxliuliangsong 发表了文章 • 0 个评论 • 307 次浏览 • 2016-12-16 15:54 • 来自相关话题

一、实验环境:git服务端:操作系统:Red Hat Enterprise Linux 7.1 64位服务端ip:10.0.0.101git软件:git version 1.8.3.1(yum方式安装)git客户端:操作系统:Windows 10 64位git软件: 二、Linux git服务端安装:1、安装git命令:  为了方便和稳定性,能使用yum安装的我们尽量使用yum安装,没必要去编译安装:yum -y install git 2、添加用户git用于访问数据仓库:  这里我们创建一个"/storage"目录,用来存储数据。添加一个用户git,git的用户目录为“/storage/gitroot”,同时以后此目录也是我们的数据仓库根目录,以后所有的数据仓库存放在此目录下。将创建的git用户的shell设置为 “/usr/bin/git-shell”的目的是禁止git用户通过shell登录,保证安全:mkdir -p /storage
useradd -d /storage/gitroot/ -s /usr/bin/git-shell git
# 设一个密码
passwd git 3、创建第一个数据仓库aiezu.com:  这里我们创建第一个数据仓库“aiezu.com”,用来存放我们正在开发的网站aiezu.com。同时设置权限为归git用户和组所有:cd /storage/gitroot
git init --bare aiezu.com
chown -R git.git /storage/gitroot/
 4、git服务端安装完成:
  按上面配置好后,一个数据仓库已经配置好了,数据仓库的URL为:"git@10.0.0.101:aiezu.com",用户名名为"git",密码为上面创建的“git”用户的密码。
 三、git免密码登录:  上面在Linux配置好了git服务端,但是是需要密码登录的。如果希望实现免密码登录,需要在客户机的用户目录下".ssh"文件夹生成一对"公钥/私钥",并将"公钥"内容添加到git服务端的git用户根目录下的".ssh/authorized_keys"文件中,这里是“/storage/gitroot/.ssh/authorized_keys”文件,这样就可以通过“公钥/私钥”认证,达到免密码登录的目的。
  简单的说"B服务器"的“git”用户目录下“.ssh/authorized_keys”文件中如果有公钥,与"A主机"当前登录用户的根目录下私钥文件“.ssh/id_dsa”是成对关系,那么B就能以“git”用户无需密码登录到A。
 1、git免密码登录windows客户端配置:  windows的git客户端,在安装目录下,一般有"git-bash.exe"文件,可以用来生成"公钥/私钥"对。打开“git-bash.exe”文件,进入bash命令行。运行下面命令,生成"公钥/私钥"对:mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa
ls  直接回车就可以看到在目录下生成了两个文件:id_rsa(私钥)、id_rsa.pub(公钥)。
 2、git免密码登录linux客户端配置:  Linux客户端直接在bash使用"ssh-keygen"命令生成公钥/私钥对即可,如果没有"ssh-keygen"命令,需要安装"openssh"包,运行"yum -y install openssh"即可:mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa
ls  3、git免密码登录服务端配置:  在git服务端,在git用户目录下创建一个“.ssh”目录,并在".ssh"命令下添加一个“authorized_keys”文件。记住,每次使用root账户添加文件后,要将文件的所有者变更为git用户,否则会出现文件权限问题:mkdir /storage/gitroot/.ssh
touch /storage/gitroot/.ssh/authorized_keys
chown -R git.git /storage/gitroot/.ssh/  然后将上面在git客户端生成的公钥"id_rsa.pub"的内容追加到authorized_keys文件中去,authorized_keys文件可以放多台客户机的公钥,一条公钥一行即可。这样,authorized_keys文件中有公钥的客户机,即可免密码登录到服务器了。
 4、免密码登录测试:  按上面方法配置好后, 使用git命令“git clone git@10.0.0.101:aiezu.com aiezu.com”,在客户端成功将git服务端的数据仓库克隆到本地的aiezu.com目录: 查看全部

一、实验环境:

git服务端:

  • 操作系统:Red Hat Enterprise Linux 7.1 64位
  • 服务端ip:10.0.0.101
  • git软件:git version 1.8.3.1(yum方式安装)

git客户端:

  • 操作系统:Windows 10 64位
  • git软件:
 

二、Linux git服务端安装:

1、安装git命令:

  为了方便和稳定性,能使用yum安装的我们尽量使用yum安装,没必要去编译安装:
yum -y install git

 

2、添加用户git用于访问数据仓库:

  这里我们创建一个"/storage"目录,用来存储数据。添加一个用户git,git的用户目录为“/storage/gitroot”,同时以后此目录也是我们的数据仓库根目录,以后所有的数据仓库存放在此目录下。将创建的git用户的shell设置为 “/usr/bin/git-shell”的目的是禁止git用户通过shell登录,保证安全:
mkdir -p /storage
useradd -d /storage/gitroot/ -s /usr/bin/git-shell git
# 设一个密码
passwd git

 

3、创建第一个数据仓库aiezu.com:

  这里我们创建第一个数据仓库“aiezu.com”,用来存放我们正在开发的网站aiezu.com。同时设置权限为归git用户和组所有:
cd /storage/gitroot
git init --bare aiezu.com
chown -R git.git /storage/gitroot/

 4、git服务端安装完成:
  按上面配置好后,一个数据仓库已经配置好了,数据仓库的URL为:"git@10.0.0.101:aiezu.com",用户名名为"git",密码为上面创建的“git”用户的密码。
 

三、git免密码登录:

  上面在Linux配置好了git服务端,但是是需要密码登录的。如果希望实现免密码登录,需要在客户机的用户目录下".ssh"文件夹生成一对"公钥/私钥",并将"公钥"内容添加到git服务端的git用户根目录下的".ssh/authorized_keys"文件中,这里是“/storage/gitroot/.ssh/authorized_keys”文件,这样就可以通过“公钥/私钥”认证,达到免密码登录的目的。
  简单的说"B服务器"的“git”用户目录下“.ssh/authorized_keys”文件中如果有公钥,与"A主机"当前登录用户的根目录下私钥文件“.ssh/id_dsa”是成对关系,那么B就能以“git”用户无需密码登录到A。
 

1、git免密码登录windows客户端配置:

  windows的git客户端,在安装目录下,一般有"git-bash.exe"文件,可以用来生成"公钥/私钥"对。打开“git-bash.exe”文件,进入bash命令行。运行下面命令,生成"公钥/私钥"对:
mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa
ls
  直接回车就可以看到在目录下生成了两个文件:id_rsa(私钥)、id_rsa.pub(公钥)。
 

2、git免密码登录linux客户端配置:

  Linux客户端直接在bash使用"ssh-keygen"命令生成公钥/私钥对即可,如果没有"ssh-keygen"命令,需要安装"openssh"包,运行"yum -y install openssh"即可:
mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa
ls
  

3、git免密码登录服务端配置:

  在git服务端,在git用户目录下创建一个“.ssh”目录,并在".ssh"命令下添加一个“authorized_keys”文件。记住,每次使用root账户添加文件后,要将文件的所有者变更为git用户,否则会出现文件权限问题:
mkdir /storage/gitroot/.ssh
touch /storage/gitroot/.ssh/authorized_keys
chown -R git.git /storage/gitroot/.ssh/
  然后将上面在git客户端生成的公钥"id_rsa.pub"的内容追加到authorized_keys文件中去,authorized_keys文件可以放多台客户机的公钥,一条公钥一行即可。这样,authorized_keys文件中有公钥的客户机,即可免密码登录到服务器了。
 

4、免密码登录测试:

  按上面方法配置好后, 使用git命令“git clone git@10.0.0.101:aiezu.com aiezu.com”,在客户端成功将git服务端的数据仓库克隆到本地的aiezu.com目录:
linux_git_server_nopasswdlogin.png