Fork me on GitHub

随笔分类 - linux

centos笔记-配置sshd登陆

# 1 安装openssh-server ``` yum install openssh-server ``` # 2 登录 在配置好ssh后就可以只使用SSH密钥登录而不允许通过密码登录了,方法如下: 修改ssh配置: ``` vim /etc/ssh/sshd_config ``` 找到`PasswordAuthentication yes`将其改为`PasswordAuthentication no` 保存退出并重启ssh服务生效(centos7.3) ``` systemctl restart sshd.service ``` # 3 关于key的配置 sshd的配置文件位于 /etc/ssh/sshd_config文件下 vim打开文件看到这句 ``` AuthorizedKeysFile .ssh/authorized_keys ``` 位于~/.ssh目录下,可以与git从用一组key 如果没有authorized_keys文件则可以直接将公钥内容拷贝一份 ``` cat id_rsa_slave.pub >> authorized_keys ``` 腾讯云加载密钥就是在authorized_keys中增加一行公钥

centos笔记-使用zsh

[TOC] **为何要换成zsh,主要是两点吧** 1. 界面更漂亮,换一种心情 2. 更高级的功能,提高效率 # 1 切换到zsh 使用root用户登录,下面的操作基本都没有root的困扰,如果非root用户请切换至root用户操作。 ## 1.1 查看系统当前的shell ``` echo $SHELL ``` 返回结果如下: ``` /bin/bash ``` 默认的shell一般都是bash ## 1.2 查看bin下是否有zsh包 cat /etc/shells 返回结果如下: ``` /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh ``` 默认没有安装zsh ## 1.3 安装zsh包 ``` yum -y install zsh ``` 安装完成后查看shell列表 ``` cat /etc/shells ``` 返回结果如下: ``` /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh /bin/zsh ``` ## 1.4 切换shell至zsh ``` chsh -s /bin/zsh ``` 返回结果: ``` Changing shell for root. Shell changed. ``` 按提示所述,shell已经更改为zsh了,现在查看一下系统当前使用的shell, ``` echo $SHELL ``` 返回结果如下: ``` /bin/bash ``` 重启过后,使用代码查看当前使用的shell ``` echo $SHELL ``` 返回结果: ``` /bin/zsh ``` 得到如此结果,证明shell已经切换成功了。 # 2 安装oh-my-zsh ## 2.1 oh-my-zsh源码是放在github上的,所以先要安装git 命令如下: ``` yum -y install git wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh ``` 如果显示如下界面表示成功: ``` __ __ ____ / /_ ____ ___ __ __ ____ _____/ /_ / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ / /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / \____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ /____/ ....is now installed! Please look over the ~/.zshrc file to select plugins, themes, and options. p.s. Follow us at https://twitter.com/ohmyzsh. p.p.s. Get stickers and t-shirts at http://shop.planetargon.com. ``` ## 2.2 修改配置 主要是修改 文件 ~/.zshrc ### 2.2.1 修改主题 ~/.oh-my-zsh/themes文件夹下有主题的列表 样式参考 https://github.com/robbyrussell/oh-my-zsh/wiki/Themes 推荐 ``` ZSH_THEME='ys' ZSH_THEME='agnoster' ``` ### 2.2.2 修改插件 ~/.oh-my-zsh/plugins文件夹下有可用的插件列表 更换Plugin ``` plugins=(git z extract zsh-autosuggestions) ``` git 显示git信息 z 可以用来快速跳转 extract 解压文件插件,所有的文件直接 x filename 即可,不用再记忆各类参数 修改完后,如果需要在当前shell中生效,需要执行 ``` source ~/.zshrc ``` **还可以自己下载插件** ``` 安装zsh-syntax-highlighting插件 同样地,我们要先下载它的源码,但在这里,我们可以利用一下oh-my-zsh的插件管理功能: cd ~/.oh-my-zsh/custom/plugins git clone git://github.com/zsh-users/zsh-syntax-highlighting.git 然后,我们打开~/.zshrc文件,找到以下段落; # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=(git) 按照注释中的提示改成plugins=(git zsh-syntax-highlighting)即可。 ``` # 3 使用技巧 1. 连按两次Tab会列出所有的补全列表并直接开始选择,补全项可以使用 ctrl+n/p/f/b上下左右切换 2. 命令选项补全。在zsh中只需要键入 tar -<tab> 就会列出所有的选项和帮助说明 3. 命令参数补全。键入 kill <tab> 就会列出所有的进程名和对应的进程号 4. 更智能的历史命令。在用或者方向上键查找历史命令时,zsh支持限制查找。比如,输入ls,然后再按方向上键,则只会查找用过的ls命令。而此时使用则会仍然按之前的方式查找,忽略 ls 5. 多个终端会话共享历史记录 6. 智能跳转,安装了 autojump 之后,zsh 会自动记录你访问过的目录,通过 j 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过 hadoop-1.0.0 目录,输入j hado 即可正确跳转。j --stat 可以看你的历史路径库。 7. 目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。 8. 在当前目录下输入 .. 或 ... ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。在你知道路径的情况下,比如 /usr/local/bin 你可以输入 cd /u/l/b 然后按进行补全快速输入 9. 通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find。使用 **/ 来递归搜索 10. 扩展环境变量,输入环境变量然后按 就可以转换成表达的值 11. 在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 可以消除重复记录,也可以利用 sort -t ";" -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history 手动清除 卡顿现象,发现每次执行命令都要运行git 检查status信息,可以使用下面命令 关闭 ``` git config --global oh-my-zsh.hide-status 1 ``` 打开 ``` git config --global oh-my-zsh.hide-status 0 ``` ``` # root @ WENGINE in /var/www/html on git:feature-apply_config x [13:32:48] $ git config --global oh-my-zsh.hide-status 1 # root @ WENGINE in /var/www/html [13:33:24] $ git config --global oh-my-zsh.hide-status 0 # root @ WENGINE in /var/www/html on git:feature-apply_config x [13:33:33] $ ```

centos笔记-centos7.3配置LNMP

[TOC] # 1 源的配置 1.换成国内的源,可以提高下载速度 首先备份/etc/yum.repos.d/CentOS-Base.repo ``` mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ``` 下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份) ``` cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS6-Base-163.repo ``` 运行以下命令生成缓存 ``` yum clean all yum makecache ``` 参考地址: http://mirrors.163.com/.help/centos.html 2.添加更多的源 CentOS由于很追求稳定性,所以官方源中自带的软件不多,因而需要一些第三方源:epel是对官方源的补充,可以提供更新更丰富的rpm包;官方不提供php7的rpm包,php7有两个源可以选择,一个是webtatic提供的,也就是php70w,另一个可以使用remi源,我使用的是webtatic提供的 安装相应的源(webtatic依赖epel) CentOS/RHEL 7.x: ``` rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm ``` # 2 安装软件 注意:前提是有可用的源,出于安全和稳定等原因,有些软件包是本身的源不具备的 ## 2.1 安装php7 ``` yum install php70w php70w-fpm php70w-mysql ``` php -v //查看是否安装成功 其它一些可以安装的扩展等 ``` yum install php70w-devel yum install php70w-pdo php70w-xml php70w-mbstring ``` ## 2.2 安装nginx ``` yum install nginx nginx -v ``` ## 2.3 安装mysql ``` yum install mariadb-server -y //安装 systemctl start mariadb.service //启动 systemctl enable mariadb.service //设置开机启动 mysql_secure_installation //初始化设置 ``` ## 2.4 安装vsftp (ftp登录配置) ``` yum install vsftpd ``` 相关操作 禁止匿名登陆 `vim /etc/vsftpd/vsftpd.conf` 将配置文件中第11行 ``` anonymous_enable=YES anonymous_enable=NO ``` 允许root账户登录,编辑/etc/vsftpd/user_list和/etc/vsftpd/ftpusers两个设置文件脚本,将root账户前加上#号变为注释。(即让root账户从禁止登录的用户列表中排除) 开启vsftpd ``` service vsftpd start ``` 本地客户端filezilla,百度自行下载配置 # 3 开机启动设置 ``` systemctl enable mariadb.service systemctl enable php-fpm.service systemctl enable nginx.service systemctl enable vsftpd.service ``` 相关操作 查看开机启动情况 ``` systemctl list-unit-files systemctl list-unit-files | grep fpm ``` 设置为开机启动 ``` systemctl enable mariadb.service ``` 取消开机启动 ``` systemctl disable mariadb.service ``` # 4 其它一些配置 ## 4.1 git的设置 下载git ``` yum install git ``` 生成密钥,位置在~/.ssh文件夹下 ``` ssh-keygen -t rsa -C "[email protected]" ``` 全局配置 ``` git config [--global] user.name "name" git config [--global] user.email "email address" ``` ## 4.2 mysql本地登录 步骤: 登陆mysql ``` mysql -uroot -p123456 ``` 切换到mysql这个数据库 ``` mysql> use mysql; ``` 查看root用户配置 ``` mysql> select host,user from user where user='root'; ``` 如果查询结果中不包含以下记录,请添加,否则请忽略次步骤 ``` +--------------------+------+ | host | user | +--------------------+------+ | % | root | +--------------------+------+ ``` 添加方法: mysql> update user set host = '%' where user = 'root' and host = '127.0.0.1'; ``` +--------------------+------+ | host | user | +--------------------+------+ | % | root | | ::1 | root | | localhost | root | | vm\_33\_19\_centos | root | +--------------------+------+ ``` 使配置生效 ``` mysql> flush privileges; ``` 配置完成,客户端重新登录成功; ## 4.3 基本nginx配置 ``` server{   #分别写了www和不带www的域名   server_name www.zhengde.site zhengde.site;   listen 80;   #工程根目录   root /var/data/blog/;   charset UTF-8;   #日志文件位置,自己选择   access_log /var/log/nginx/blog/access.log;   error_log /var/log/nginx/blog/error.log;   index index.php index.html index.htm;   #error_page 500 502 503 504 404 /missing.html;   #error_page 403 =404 /missing.html;   #主要作用是xxxx/index.php/控制器/方法,一般的index.php是隐藏的,不写这句就找不到了   location / {     try_files $uri /index.php$is_args$args;   }   location ~ \.php$ {     #这个要看你监听的位置   fastcgi_pass unix:/run/php/php7.0-fpm.sock;      #二选一,第一种写法     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;     include fastcgi_params;     #二选一,第二种写法,但是需要在外层创建 fastcgi.conf文件     # include fastcgi.conf;   } } ``` ## 4.4 certbot安装(用于生成https证书,不用可忽略) ``` sudo yum install certbot-nginx certbot certonly --webroot -w /data/blog -d xxxx.cn -w /data/blog -d www.xxxx.cn -w /data/blog -d xxxx.cn -w /data/blog -d www.xxxx.cn ```

centos笔记-linux操作

[TOC] # 1. 常用指令 ``` ls   显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 touch 创建空文件 echo 创建带有内容的文件。 cat 查看文件内容 cp 拷贝 mv 移动或重命名 rm 删除文件 -r 递归删除,可删除子目录及文件 -f 强制删除 find 在文件系统中搜索某文件 wc 统计文本中行数、字数、字符数 grep 在文本文件中查找某个字符串 rmdir 删除空目录 tree 树形结构显示目录,需要安装tree包 pwd 显示当前目录 ln 创建链接文件 more、less 分页显示文本文件内容 head、tail 显示文件头、尾内容 ctrl+alt+F1 命令行全屏模式 ``` # 2. 系统管理命令 ``` stat 显示指定文件的详细信息,比ls更详细 who 显示在线登陆用户 whoami 显示当前操作用户 hostname 显示主机名 uname 显示系统信息 top 动态显示当前耗费资源最多进程信息 ps 显示瞬间进程状态 ps -aux du 查看目录大小 du -h /home带有单位显示目录信息 df 查看磁盘大小 df -h 带有单位显示磁盘信息 ifconfig 查看网络情况 ping 测试网络连通 netstat 显示网络状态信息 man 命令不会用了,找男人 如:man ls clear 清屏 alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。 ``` # 3. 打包压缩相关命令 ``` gzip: bzip2: tar: 打包压缩 -c 归档文件 -x 压缩文件 -z gzip压缩文件 -j bzip2压缩文件 -v 显示压缩或解压缩过程 v(view) -f 使用档名 ``` 例: ``` tar -cvf /home/abc.tar /home/abc 只打包,不压缩 tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩 tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩 ``` 当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。 # 4. 关机/重启机器 ``` shutdown -r 关机重启 -h 关机不重启 now 立刻关机 halt 关机 reboot 重启 ``` # 5. Linux管道 将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。 例: ``` grep -r "close" /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。 ``` # 6. Linux软件包管理 **dpkg** (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。 比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。 ``` sudo dpkg -i tree_1.5.3-1_i386.deb 安装软件 sudo dpkg -r tree 卸载软件 ``` 注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等; **APT**(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。 依然以tree为例 ``` sudo apt-get install tree 安装tree sudo apt-get remove tree 卸载tree sudo apt-get update 更新软件 sudo apt-get upgrade ``` 将.rpm文件转为.deb文件 .rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。 ``` sudo alien abc.rpm ``` # 7. vim使用 vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。 命令模式下: ``` :q 退出 :q! 强制退出 :wq 保存并退出 :set number 显示行号 :set nonumber 隐藏行号 /apache 在文档中查找apache 按n跳到下一个,shift+n上一个 yyp 复制光标所在行,并粘贴 h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→) ``` # 8. 用户及用户组管理 ``` /etc/passwd 存储用户账号 /etc/group 存储组账号 /etc/shadow 存储用户账号的密码 /etc/gshadow 存储用户组账号的密码 useradd 用户名 userdel 用户名 adduser 用户名 groupadd 组名 groupdel 组名 passwd root 给root设置密码 su root su - root /etc/profile 系统环境变量 bash_profile 用户环境变量 .bashrc 用户环境变量 su user 切换用户,加载配置文件.bashrc su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile sudo chown [-R] owner[:group] {File|Directory} 更改文件的用户及用户组 sudo chown root:root jdk-7u21-linux-i586.tar.gz ``` # 9. 文件权限管理 三种基本权限 ``` R 读 数值表示为4 W 写 数值表示为2 X 可执行 数值表示为1 ``` ``` $ ll total 64M drwxr-xr-x 4 root root 4.0K Feb 8 11:22 beifen drwxr-xr-x 13 root root 4.0K Jun 19 13:55 blog -rw-rw--w- 1 root root 1.7M Mar 17 21:45 get-pip.py ``` 如图所示,get-pip.py文件的权限为`-rw-rw--w-` `-rw-rw--w-`一共十个字符,分成四段。 ``` 第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录 第二三四个字符“rw-”表示当前所属用户的权限。 所以用数值表示为4+2=6 第五六七个字符“rw-”表示当前所属组的权限。 所以用数值表示为4+2=6 第八九十个字符“w--”表示其他用户权限。 所以用数值表示为2 所以操作此文件的权限用数值表示为662 ``` 更改权限 ``` sudo chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名 ``` 例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765 ``` sudo chmod u+x g+w o+r filename ``` 上面的例子可以用数值表示 ``` sudo chmod 765 filename ``` # 10. 软链接和硬链接 ``` touch t1 #创建一个测试文件t1 ln t1 t2 #创建t1的一个硬连接文件t2 ln -s t1 t3 #创建t1的一个软连接文件t3 mkdir dir1 #创建一个测试文件夹 ln -s dir1 dir3 #为文件夹创建一个软连接 ln -s 已存在文件 未存在文件 # 第二个文件不需要创建 ``` ``` 软连接中间有 -> 硬链接只能给文件使用,不能给文件夹使用,软连接都可以 软连接dir1和dir3中的文件是同步的,不管你在哪个文件夹中操作 删除t1不会影响t2,删除t2不会影响t1,这就是硬链接的好处,防止意外删除重要文件 ``` # 11. 其他一些命令 ## 工作中用到的 ``` ls -la -R(reverse关键是这个命令) # Linux列出某文件夹下面所有文件包括子目录得的文件 echo abcbedf>>a.txt # 将abcdef追加到a.txt文件末尾 echo bbbbb>a.txt, # 这个是bbbbb把a.txt原来的内容替换,这里注意 >是覆盖,>>是追加。 ssh -i ~/.ssh/key.pem [email protected] -p 22005 # 指定key路径和端口号的 scp /home/daisy/full.tar.gz [email protected]:/home/root # 不同主机间拷贝,若是文件夹可在scp后加 -r参数 scp [email protected]:/home/root /home/daisy/*.tar.gz ps -ef | grep nginx # System V展示风格, COMMADN列如果过长,aux会截断显示,而ef不会 ps aux | grep nginx # BSD风格,查看进程的CPU占用率和内存占用率,可以使用aux,查看进程的父进程ID和完整的COMMAND命令,可以使用ef netstat -antlp | grep 514 git branch |grep 'branchName' |xargs git branch -D # 批量删除git分支 find app/ -name '*.php' | xargs dos2unix # xargs的使用 ``` ## grep的用法 ``` grep -rn "hello,world!" * * : 表示当前目录所有文件,也可以是某个文件名 -r 是递归查找 -n 是显示行号 -R 查找所有文件包含子目录 -i 忽略大小写 ``` 下面是一些有意思的命令行参数: ``` grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, grep -l pattern files :只列出匹配的文件名, grep -L pattern files :列出不匹配的文件名, grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), grep -C number pattern files :匹配的上下文分别显示[number]行, grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 ``` 这里还有些用于搜索的特殊符号: `\<` 和 `\>` 分别标注单词的开始与结尾。 例如: ``` grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 '^':指匹配的字符串在行首, '$':指匹配的字符串在行尾, ``` ## rz和sz的用法 z,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。 优点就是不用再开一个sftp工具登录上去上传下载文件。 ``` sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 ``` 安装命令: ``` yum install lrzsz ``` 从服务端发送文件到客户端: ``` sz filename ``` 从客户端上传文件到服务端: ``` rz ``` 在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

centos笔记-rpm和yum的关系以及基本用法

## 1 RPM包 RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。 ``` #安装和升级选项 Install/Upgrade/Erase options: -i, --install 安装 -v, --verbose 提供更详细的输出信息 -h, --hash print hash marks as package installs (good with -v) -e, --erase 删除包 -U, --upgrade=<packagefile>+ 升级包 --replacepkge 无论软件包是否已被安装,都强行安装软件包 --test 安装测试,并不实际安装 --nodeps 忽略软件包的依赖关系强行安装 --force 忽略软件包及文件的冲突 #查询选项 (和-q or --query一起使用): -a, --all query/verify all packages -p, --package query/verify a package file -l, --list list files in package -d, --docfiles list all documentation files -f, --file query/verify package(s) owning file #常用命令组合: -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update; -qpl:列出RPM软件包内的文件信息[Query Package list]; -qpi:列出RPM软件包的描述信息[Query Package install package(s)]; -qf:查找指定文件属于哪个RPM软件包[Query File]; -Va:校验所有的RPM软件包,查找丢失的文件[View Lost]; -e:删除包 #使用举例 #安装和升级 #rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash #rpm -Uvh file.rpm #[升级一个rpm]--upgrade #rpm -e file.rpm #[删除一个rpm包]--erase #rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm //指定安装目录 #rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装; #查询 #rpm -q samba //查询程序是否安装 #rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd* #rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录 #rpm -qc nginx # 查看配置文件位置 #rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息 #rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file #rpm -qpR file.rpm       #[查看包]依赖关系 ``` #### 2 用YUM安装删除软件 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理 **依赖性关系**,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。 yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。 ``` # 1.使用yum安装软件 #yum install 软件名 //用YUM安装指定软件包 #yum remove 软件名 //用YUM删除指定软件包 #yum localinstall RPM包文件 //使用YUM方式安装本地RPM包 #yum groupinstall <分组名称> //安装指定分组内所有软件 #yum groupremove packagegroup <分组名称> //删除指定分组内所有软件 # 注意:install、localinstall的区别:使用install时,指定的软件包将从YUM服务器下载并安装,而localinstall指定的软件使用RPM包安装,而依赖关系所需的包在YUM服务器下载安装。 # 2.用YUM查询软件信息 #yum check-update //列出所有可更新的软件清单 #yum -y update <软件名> //升级指定的软件包 #yum upgrade //大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级 #yum groupupdate <分组名称> //更新指定软件组中的软件包 #yum info 软件名 //显示指定软件包相关信息 #yum info updates //显示所有可以更新的软件包的信息 #yum info installed //显示所有已经安装的软件包的信息 #yum info extras //显示所有已经安装但不在YUM 仓库内的软件包信息 #yum groupinfo <分组名称> //显示指定分组的信息 #yum list //列出所有已经安装和可以安装的软件 #yum list <regex> //列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包 #yum list 软件名 //列出指定的软件包的安装情况 #yum list available //列出资源库中所有可以安装的rpm包 #yum list available <regex> //列出资源库中与正则表达式匹配的所有可以安装的rpm包 #yum listinstalled //列出所有已经安装的软件包 #yum list installed <regex> //列出资源库中与正则表达式匹配的所有已经安装的rpm包 #yum list extras //列出所有已经安装但不在YUM 仓库内的软件包 #yum list extras <regex>//列出与正则表达式匹配的已安装的但不包含在资源库中的rpm包 #yum grouplist //列出所有YUM服务器定义的分组 #yum search <关键字> //在YUM源中查找指定关键字 #yum search <regex> //检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值 #yum list recent //列出最近被添加到资源库中的软件包 #yum provides <regex> //检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值 #3.YUM缓存 # yum会把下载的软件包和header存储在cache中,而不会自动删除。 #yum clean packages //清除缓存目录(/var/cache/yum)下的软件包 #yum clean headers //清除缓存目录(/var/cache/yum)下的 headers #yum clean oldheaders //清除缓存目录(/var/cache/yum)下旧的 headers #yum clean all //清除缓存目录(/var/cache/yum)下的软件包及旧的headers #yum clean //同上,清除缓存目录(/var/cache/yum)下的软件包及旧的headers #yum makecache //生成缓存 # 清除yum机制的本地缓存 # 目的:避免更换源后出现HTTP ERORR 404-Not Found Trying # 生成yum机制的本地缓存 # 目的:将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度。 ```

centos笔记-supervisor使用

[TOC] supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。 # 1 下载程序并安装 ``` yum install python-setuptools easy_install supervisor ``` 使用root身份创建一个全局配置文件 ``` #echo_supervisord_conf > /etc/supervisord.conf ``` # 2 编辑配置文件 ``` vim /etc/supervisord.conf ``` 加入以下内容,directory 指向工程所在的根目录 ``` [program:laravel_queue.js] directory = /var/www/test command=php artisan queue:listen --timeout=300 --tries=1 user=root autostart=true startsecs=2 autorestart=true redirect_stderr=true stopsignal=INT stderr_logfile_maxbytes=1MB stderr_logfile_backups=10 stderr_capture_maxbytes=1MB stderr_events_enabled=false ``` # 3 supervisor的使用 这个工具主要就两个命令: supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令 supervisorctl:启动supervisor的命令行窗口。 ``` 3.1. 启动supervisord $supervisord -c /etc/supervisord.conf 3.2. 关闭supervisord $supervisorctl shutdown 3.3. 重新载入配置 $supervisorctl reload 3.4.更新新的配置到supervisord $supervisorctl update 3.5.启动某个进程(program_name=你配置中写的程序名称) $supervisorctl start program_name 3.6.查看正在守候的进程 $supervisorctl 3.7.停止某一进程 (program_name=你配置中写的程序名称) $pervisorctl stop program_name 3.8.重启某一进程 (program_name=你配置中写的程序名称) $supervisorctl restart program_name 3.9.停止全部进程 $supervisorctl stop all ``` 注意:显示用stop停止掉的进程,用reload或者update都不会自动重启 。 **打开web页面的监控台** 设置port=65000,注意[inet_http_server]前面的注释打开,这样可以打开web页面的监控台,访问方法是http://xxx.xxx.xxx.xxx:65000 # 4 配置文件详细解析 ``` =====================主配置文件======================== [unix_http_server] file=/tmp/supervisor.sock ; UNIX socket 文件,supervisorctl 会使用 ;chmod=0700 ; socket 文件的 mode,默认是 0700 ;chown=nobody:nogroup ; socket 文件的 owner,格式: uid:gid ;[inet_http_server] ; HTTP 服务器,提供 web 管理界面 ;port=127.0.0.1:9001 ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性 ;username=user ; 登录管理后台的用户名 ;password=123 ; 登录管理后台的密码 [supervisord] logfile=/tmp/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log logfile_maxbytes=50MB ; 日志文件大小,超出会 rotate,默认 50MB logfile_backups=10 ; 日志文件保留备份数量默认 10 loglevel=info ; 日志级别,默认 info,其它: debug,warn,trace pidfile=/tmp/supervisord.pid ; pid 文件 nodaemon=false ; 是否在前台启动,默认是 false,即以 daemon 的方式启动 minfds=1024 ; 可以打开的文件描述符的最小值,默认 1024 minprocs=200 ; 可以打开的进程数的最小值,默认 200 ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be ; added by defining them in separate rpcinterface: sections [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; 通过 UNIX socket 连接 supervisord,路径与 unix_http_server 部分的 file 一致 ;serverurl=http://127.0.0.1:9001 ; 通过 HTTP 的方式连接 supervisord ; 包含其他的配置文件 [include] files = /etc/supervisor/conf.d/*.conf ; 可以是 *.conf 或 *.ini =====================单独进程控制文件======================== [program:album_app.js] directory = /data/album ;程序的启动目录 command=nodejs app.js ;启动命令 user = root ;启动用户 autostart=true ;在 supervisord 启动的时候也自动启动 startsecs=2 ;启动2秒后没有异常退出,就当作已经正常启动了 autorestart=true ; 程序异常退出后自动重启 redirect_stderr=true ; 把 stderr 重定向到 stdout,默认 false stopsignal=INT stdout_logfile=/data/logs/err.log stderr_logfile_maxbytes=1MB ; stdout 日志文件大小,默认 50MB stderr_logfile_backups=10 ; stdout 日志文件备份数 stderr_capture_maxbytes=1MB stderr_events_enabled=false ``` # 参考资料 http://www.tuicool.com/articles/Ejm2u2 http://blog.csdn.net/shudaqi2010/article/details/51153961 https://my.oschina.net/crooner/blog/395069

centos笔记-vim可用配置以及、vendle的使用

[TOC] **配置过程** 1.配置vim,只需在Home目录创建一个~/.vimrc文件即可以配置vim了 2.按照下面给出的vimrc配置内容修改~/.vimrc文件 3.安装ctags ``` yum install ctags ``` 4.安装Vundel并安装插件 - `git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim` - 运行 vim 打开一个文件,再运行 :PluginInstall # 1.vimrc的配置内容 ``` " 定义快捷键的前缀,即 <Leader> let mapleader=";" " >> " 文件类型侦测 " 开启文件类型侦测 filetype on " 根据侦测到的不同类型加载对应的插件 filetype plugin on " << " >> " vim 自身(非插件)快捷键 " 定义快捷键到行首和行尾 nmap LB 0 nmap LE $ " 定义快捷键关闭当前分割窗口 nmap <Leader>q :q<CR> " 定义快捷键保存当前窗口内容 nmap <Leader>w :w<CR> " 定义快捷键保存所有窗口内容并退出 vim nmap <Leader>WQ :wa<CR>:q<CR> " 不做任何保存,直接退出 vim nmap <Leader>Q :qa!<CR> " 定义快捷键在结对符之间跳转 nmap <Leader>M % " << " 让配置变更立即生效 "autocmd BufWritePost $MYVIMRC source $MYVIMRC " >> " 其他 " 开启实时搜索功能 set incsearch " 搜索时大小写不敏感 set ignorecase " 关闭兼容模式 set nocompatible "设置空格 set backspace=indent,eol,start " vim 自身命令行模式智能补全 set wildmenu " << " >>>> " 插件安装 " vundle 环境设置 filetype off set rtp+=~/.vim/bundle/Vundle.vim " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间 call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'altercation/vim-colors-solarized' Plugin 'tomasr/molokai' Plugin 'vim-scripts/phd' Plugin 'Lokaltog/vim-powerline' Plugin 'octol/vim-cpp-enhanced-highlight' Plugin 'nathanaelkane/vim-indent-guides' Plugin 'derekwyatt/vim-fswitch' Plugin 'kshenoy/vim-signature' Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines' Plugin 'majutsushi/tagbar' Plugin 'vim-scripts/indexer.tar.gz' Plugin 'vim-scripts/DfrankUtil' Plugin 'vim-scripts/vimprj' Plugin 'dyng/ctrlsf.vim' Plugin 'terryma/vim-multiple-cursors' Plugin 'scrooloose/nerdcommenter' Plugin 'vim-scripts/DrawIt' Plugin 'SirVer/ultisnips' Plugin 'derekwyatt/vim-protodef' Plugin 'scrooloose/nerdtree' Plugin 'fholgado/minibufexpl.vim' Plugin 'gcmt/wildfire.vim' Plugin 'sjl/gundo.vim' Plugin 'Lokaltog/vim-easymotion' Plugin 'suan/vim-instant-markdown' Plugin 'lilydjwg/fcitx.vim' Plugin '2072/PHP-Indenting-for-VIm' Plugin 'SyntaxAttr.vim' Plugin 'shawncplus/phpcomplete.vim' Plugin 'tpope/vim-unimpaired.git' Plugin 'PDV--phpDocumentor-for-Vim' Plugin 'Shougo/neocomplcache' Plugin 'scrooloose/syntastic' Plugin 'mattn/emmet-vim' Plugin 'taglist.vim' Plugin 'SearchComplete' Plugin 'ctrlpvim/ctrlp.vim' " 插件列表结束 call vundle#end() filetype plugin indent on " <<<< " 配色方案 set background=dark "colorscheme solarized colorscheme molokai "colorscheme phd "molokai{{{ set rtp+=/usr/local/lib/python2.7/site-packages/powerline/bindings/vim/ set laststatus=2 set t_Co=256 colo molokai let g:molokai_original = 1 "}}} "Shougo/neocomplcache{{{ "Bundle 'Shougo/neocomplcache' set completeopt-=preview let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_enable_smart_case = 1 let g:neocomplcache_enable_camel_case_completion = 1 let g:neocomplcache_enable_underbar_completion = 1 let g:neocomplcache_caching_limit_file_size = 50000000 let g:neocomplcache_min_syntax_length = 2 "<CR>: close popup and save indent. inoremap <expr><CR> neocomplcache#smart_close_popup() . "\<CR>" "<TAB>: completion. NO USE with snipmate inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" "<C-h>, <BS>: close popup and delete backword char. inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>" inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>" inoremap <expr><C-Y> neocomplcache#close_popup() inoremap <expr><C-e> neocomplcache#cancel_popup() "let g:neocomplcache_enable_auto_select = 1 "}}} "scrooloose/nerdtree{{{ "Bundle 'scrooloose/nerdtree' " let g:NERDChristmasTree = 1 "let g:NERDTreeQuitOnOpen = 1 "let g:NERDTreeMinimalUI = 1 "let g:NERDShowBookMarks = 1 "let g:NERDTreeIgnore = ['\.pyc$'] map <Leader>n :NERDTreeToggle<CR> " noremap <F2> :NERDTreeToggle<cr> "}}} let g:ctrlp_map = '<leader>p' let g:ctrlp_cmd = 'CtrlP' map <leader>f :CtrlPMRU<CR> let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|rvm)$', \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$', \ } let g:ctrlp_working_path_mode=0 let g:ctrlp_match_window_bottom=1 let g:ctrlp_max_height=15 let g:ctrlp_match_window_reversed=0 let g:ctrlp_mruf_max=500 let g:ctrlp_follow_symlinks=1 "scrooloose/syntastic{{{ "Bundle 'scrooloose/syntastic' let g:syntastic_always_populate_loc_list = 1 "let g:syntastic_aggregate_errors = 1 let g:syntastic_mode_map = { 'mode': 'active', \ 'active_filetypes': [], \ 'passive_filetypes': ['python'] } "}}} " >> " 营造专注气氛 " 禁止光标闪烁 set gcr=a:block-blinkon0 " 禁止显示滚动条 set guioptions-=l set guioptions-=L set guioptions-=r set guioptions-=R " 禁止显示菜单和工具条 set guioptions-=m set guioptions-=T " >> " 辅助信息 " 总是显示状态栏 set laststatus=2 " 显示光标当前位置 "set ruler " 开启行号显示 set number " 高亮显示当前行/列 "set cursorline "set cursorcolumn " 高亮显示搜索结果 set hlsearch " << " >> " 其他美化 " 设置 gvim 显示字体 set guifont=YaHei\ Consolas\ Hybrid\ 10.5 " 禁止折行 "set nowrap " 设置状态栏主题风格 let g:Powerline_colorscheme='solarized256' " << " >> " 语法分析 " 开启语法高亮功能 syntax enable " 允许用指定语法高亮配色方案替换默认方案 syntax on " << " >> " 缩进 " 自适应不同语言的智能缩进 filetype indent on " 将制表符扩展为空格 set expandtab " 设置编辑时制表符占用空格数 set tabstop=4 " 设置格式化时制表符占用空格数 set shiftwidth=4 " 让 vim 把连续数量的空格视为一个制表符 set softtabstop=4 " 缩进可视化插件 Indent Guides " 随 vim 自启动 let g:indent_guides_enable_on_vim_startup=1 " 从第二层开始可视化显示缩进 let g:indent_guides_start_level=2 " 色块宽度 let g:indent_guides_guide_size=1 " 快捷键 i 开/关缩进可视化 nmap <silent> <Leader>i <Plug>IndentGuidesToggle " << " 模板补全 " UltiSnips 的 tab 键与 YCM 冲突,重新设定 let g:UltiSnipsSnippetDirectories=["mysnippets"] let g:UltiSnipsExpandTrigger="<leader><tab>" let g:UltiSnipsJumpForwardTrigger="<leader><tab>" let g:UltiSnipsJumpBackwardTrigger="<leader><s-tab>" " 设置空格替换/ map <space> / "Filetype Specified {{{ " "=>PHP section autocmd FileType php inoremap <buffer> {<cr> {<cr>}<esc>O autocmd FileType php noremap <buffer> <leader>ep i<?php ?><esc>hhi autocmd FileType php noremap <buffer> <leader>eP i<?php<cr>?><esc>O<esc>==i autocmd FileType php noremap <buffer> <leader>ee i<?php echo ; ?><esc>hhhi autocmd FileType php setlocal cindent autocmd FileType php setlocal makeprg=php\ % autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP autocmd BufRead,BufNewFile *.ctp set filetype=php.html let g:php_folding = 1 let g:php_strict_blocks = 1 let g:php_sql_query = 1 let g:php_htmlInStrings = 1 let g:php_baseLib = 1 let g:php_special_vars = 1 let g:php_special_functions = 1 let g:php_alt_assignByReference = 1 let g:php_smart_members = 1 let g:php_nested_functions = 1 let g:php_fold_heredoc = 1 """""""""""""""""""""""""""""" " => CSS section """""""""""""""""""""""""""""" autocmd FileType css inoremap <buffer> {<cr> {<esc>o}<esc>O autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS """""""""""""""""""""""""""""" " => Python section """""""""""""""""""""""""""""" au FileType python setlocal makeprg=ipython\ % let python_highlight_all = 1 au BufNewFile,BufRead *.jinja set syntax=htmljinja au BufNewFile,BufRead *.mako set ft=mako au BufNewFile,BufRead *.volt set ft=html au FileType python highlight OverLength ctermbg=red ctermfg=white guibg=#592929 au FileType python match OverLength /\%80v.\+/ """""""""""""""""""""""""""""" " => C section """"""""""""""""""""""""""""""" autocmd FileType C inoremap <buffer> {<cr> {<esc>o}<esc>O autocmd FileType C setlocal makeprg=gcc\ -o\ a\ % \&\& ./a """""""""""""""""""""""""""""" " => JavaScript section """"""""""""""""""""""""""""""" au FileType javascript inoremap <buffer> {<cr> {<esc>o}<esc>O " au FileType javascript call JavaScriptFold() au FileType javascript setl fen au FileType javascript setl nocindent au FileType javascript imap <c-t> AJS.log();<esc>hi au FileType javascript imap <c-a> alert();<esc>hi function! JavaScriptFold() setl foldmethod=syntax setl foldlevelstart=1 syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend function! FoldText() return substitute(getline(v:foldstart), '{.*', '{...}', '') endfunction setl foldtext=FoldText() endfunction au FileType volt set ft=html """""""""""""""""""""""""""""" " => ActionScript section """"""""""""""""""""""""""""""" au BufNewFile,BufRead *.as set filetype=actionscript au BufNewFile,BufRead *.blade.php set filetype=html au BufNewFile,BufRead *.vue set filetype=html """""""""""""""""""""""""""""" " => Vim grep """""""""""""""""""""""""""""" let Grep_Skip_Dirs = 'RCS CVS SCCS .svn generated' set grepprg=/bin/grep\ -nH "}}} ``` # 2.Vundle使用 ## 简介 Vundle 是 Vim bundle 的简称,是一个 Vim 插件管理器. ## 安装vundle ``` $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim ``` 默认安装在/.vim/bundle/vundle下; ## 配置vundle插件: 可以在终端通过vim打开~/.vimrc文件, ``` $vim ~/.vimrc ``` 将以下加在.vimrc文件中,加入之后保存之后就可以使用vundle了。 添加的配置信息(样例) 注:以后安装新插件就直接编辑vimrc,添加plugin就行了,在这里我们添加的plugin只是例子,你可以不安装这些插件,换上自己需要安装的插件。 ``` set nocompatible " 去除VI一致性,必须要添加 filetype off " 必须要添加 " 设置包括vundle和初始化相关的runtime path set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 另一种选择, 指定一个vundle安装插件的路径 "call vundle#begin('~/some/path/here') " 让vundle管理插件版本,必须 Plugin 'VundleVim/Vundle.vim' " 以下范例用来支持不同格式的插件安装. " 请将安装插件的命令放在vundle#begin和vundle#end之间. " Github上的插件 " 格式为 Plugin '用户名/插件仓库名' Plugin 'tpope/vim-fugitive' " 来自 http://vim-scripts.org/vim/scripts.html 的插件 " Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略 Plugin 'L9' " 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址' Plugin 'git://git.wincent.com/command-t.git' " 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径' Plugin 'file:///home/gmarik/path/to/plugin' " 插件在仓库的子目录中. " 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下 Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突 Plugin 'ascenator/L9', {'name': 'newL9'} " 你的所有插件需要在下面这行之前 call vundle#end() " 必须 filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本 " 忽视插件改变缩进,可以使用以下替代: "filetype plugin on ``` ## 安装需要的插件 1. 将想要安装的插件,按照地址填写方法,将地址填写在vundle#begin和vundle#end之间就可以 2. 保存之后,安装插件。 运行 vim ,再运行 `:PluginInstall` 安装完成之后,插件就可以使用。 ## 移除不需要的插件 1. 编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行。 2. 保存退出当前的vim 3. 重新打开vim,输入命令BundleClean。 ## 其他常用命令 1. 更新插件BundleUpdate 2. 列出所有插件BundleList 3. 查找插件BundleSearch # 3 使用插件 ## 3.1 NERDTree 打开 ~/.vimrc 增加配置 ``` call vundle#begin() "其他一些插件 Plugin 'scrooloose/nerdtree' call vundle#end() ``` 运行 vim ,再运行 :PluginInstall 再次打开 ~/.vimrc 个性化配置 ``` map <Leader>n :NERDTreeToggle<CR> ``` 这样就可以打开vim之后,先按;然后n,快捷打开NERDTree了 如果没有定义leader的话请定义 ``` let mapleader=";" ``` 常用操作 ``` ctrl + w + h 光标 focus 左侧树形目录 ctrl + w + l 光标 focus 右侧文件显示窗口 ctrl + w + w 光标自动在左右侧窗口切换 #!!! ctrl + w + r 移动当前窗口的布局位置 i split 一个新窗口打开选中文件,并跳到该窗口 s vsplit 一个新窗口打开选中文件,并跳到该窗口 m 显示文件系统菜单,然后根据提示进行文件的操作如新建,重命名等 ``` ## 3.2 easymotion ``` Plugin 'Lokaltog/vim-easymotion' ``` 常用操作 ``` ;;w 当前光标后的所有word,提供快捷键跳转 ;;b 当前光标前的所有word,提供快捷键跳转 ;;j 当前光标后的所有行,提供快捷键跳转 ;;k 当前光标后的所有行,提供快捷键跳转 ``` ## 3.3 ctrlp 引入 ``` Plugin 'ctrlpvim/ctrlp.vim' ``` 其它配置 ``` let g:ctrlp_map = '<leader>p' let g:ctrlp_cmd = 'CtrlP' map <leader>f :CtrlPMRU<CR> let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|rvm)$', \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$', \ } let g:ctrlp_working_path_mode=0 let g:ctrlp_match_window_bottom=1 let g:ctrlp_max_height=15 let g:ctrlp_match_window_reversed=0 let g:ctrlp_mruf_max=500 let g:ctrlp_follow_symlinks=1 ``` 常用操作 ``` <leader>f # 模糊搜索最近打开的文件(MRU) <leader>p # 模糊搜索当前目录及其子目录下的所有文件 //搜索框出来后,输入关键词,然后可以做如下操作 ctrl + j/k # 进行上下选择 ctrl + x # 在当前窗口水平分屏打开文件 ctrl + v # 同上, 垂直分屏 ctrl + t # 在tab中打开 //在搜索框状态下,还可以进行额外操作 F5 # 刷新可搜索文件 <c-d> # 只能搜索全路径文件 <c-r> # 可以使用正则搜索文件 ```

centos笔记-防火墙

[TOC] # Centos 7 firewall 命令: 查看已经开放的端口: ``` firewall-cmd --list-ports ``` 开启端口 ``` firewall-cmd --zone=public --add-port=80/tcp --permanent ``` 命令含义: –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效 重启防火墙 ``` firewall-cmd --reload #重启firewall systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running) ``` # CentOS 7 以下版本 iptables 命令 如要开放80,22,8080 端口,输入以下命令即可 ``` /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT ``` 然后保存: ``` /etc/rc.d/init.d/iptables save ``` 查看打开的端口: ``` /etc/init.d/iptables status ``` 关闭防火墙 1) 永久性生效,重启后不会复原 ``` 开启: chkconfig iptables on 关闭: chkconfig iptables off ``` 2) 即时生效,重启后复原 ``` 开启: service iptables start 关闭: service iptables stop 查看防火墙状态: service iptables status ``` # CentOS7和6的默认防火墙的区别 CentOS 7默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1、直接关闭防火墙 ``` systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 ``` 2、设置 iptables service ``` yum -y install iptables-services ``` 如果要修改防火墙配置,如增加防火墙端口3306 ``` vi /etc/sysconfig/iptables ``` 增加规则 ``` -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT ``` 保存退出后 ``` systemctl restart iptables.service #重启防火墙使配置生效 systemctl enable iptables.service #设置防火墙开机启动 ``` 最后重启系统使设置生效即可。 ``` systemctl start iptables.service #打开防火墙 systemctl stop iptables.service #关闭防火墙 ``` 参考地址 : http://www.cnblogs.com/eaglezb/p/6073739.html

centos笔记-vsftpd配置

[TOC] 想要将自己本地的文件传递到 远程服务器,可以考虑使用ftp,这需要我们完成下面两步操作. # 1 在服务器配置FTP服务 ## 1.1 在root权限下,通过如下命令安装Vsftp(以CentOS系统为例): ``` yum install vsftpd ``` ## 1.2 在启动vsftpd服务之前,需要登录云服务器修改配置文件,禁用匿名登录。 ``` vim /etc/vsftpd/vsftpd.conf ``` 将配置文件中第11行的 `anonymous_enable=YES` 改为 `anonymous_enable=NO` 即可禁用匿名登录。 ## 1.3 启动vsftpd服务。 ``` service vsftpd start ``` ## 1.4 设置FTP用户账号。 账号为“ftpuser1”,目录为/home/ftpuser1,且设置不允许通过ssh登录: ``` useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1 ``` 设置以上帐号密码为“ftpuser1”: ``` passwd ftpuser1 ``` 重启vsftpd服务,使修改生效: ``` service vsftpd restart ``` **vsftpd默认设置为禁止root账户登录,开启的方式如下:** - 编辑/etc/vsftpd/user_list和/etc/vsftpd/ftpusers两个设置文件脚本,将root账户前加上#号变为注释。(即让root账户从禁止登录的用户列表中排除) - 重新开启vsftpd `service vsftpd reload` 注意:允许root账户访问ftp,可以远程访问centos系统中的任一文件,对于远程维护centos系统或下载文件十分方便。但从安全角度考虑,最好为临时性开启,平常还是把它关掉吧。 解决ubuntu下root用户 不能ftp登陆的问题 一般情况下,由于种种原因ftp是不让root用户远程登陆,但只要你修改1个文件就可以登陆了. 注释掉 /etc/ftpusers 中的root即可 # 2 本地安装连接客户端 我使用的是filezilla,直接百度,然后下载即可,下面说下配置 ![image](http://picture-1253360507.cossh.myqcloud.com/filezilla_config.png) **参考** 腾讯云主机的设置 https://www.qcloud.com/document/product/213/2132

centos笔记-关于软件启动关闭等操作的命令

关于centos服务的命令经常会遇到这几种 - service - systemctl - /etc/init.d/ # 1 service和/etc/init.d/ service是一个脚本命令,分析service可知是去/etc/init.d目录下执行相关程序。service和chkconfig结合使用。 服务配置文件存放目录/etc/init.d/ 命令使用: ``` service start nginx /etc/init.d/nginx restart ``` # 2 systemctl centos7 上面启动服务以及关闭服务已经不是以前的`service stop/start xxxx`了而是systemctl命令,不过用service他会有一个提醒你用systemctl,所以大可不必担心。 ``` 列出正在运行的服务状态——systemctl 启动一个服务——systemctl start postfix.service 关闭一个服务——systemctl stop postfix.service 重启一个服务:——systemctl restart postfix.service 显示一个服务的状态——systemctl status postfix.service 在开机时启用一个服务——systemctl enable postfix.service 在开机时禁用一个服务——systemctl disable postfix.service 查看服务是否开机启动——systemctl is-enabled postfix.service;echo $? 查看已启动的服务列表——systemctl list-unit-files|grep enabled ```