Linux折腾笔记

由于主要是做服务端开发,总会少不了和linux打交道,鉴于我老容易健忘的习惯,我决定还是专门用一篇文章来记录自己在使用linux的一些笔记,主要是哪天记不起来了,可以再翻出来看看,免得再花时间在网上找教程,主要使用的linux版本为centOS,Ubuntu这两个版本,如果有不对的地方,还希望大家指出。

安装FastDFS

参见文章:centOS上搭建FastDFS图片服务器教程

安装Nginx

参见文章:在centOS上安装nginx教程

安装RabbitMQ

  • 系统环境为cetos7。
  • 首先先安装EPEL源,执行命令:
    • yum -y install epel-release
  • 由于RabbitMQ是由erlang语言开发的,所以还需要安装erlang依赖环境,命令如下:
    • yum install erlang -y
  • 接下来就可以安装RabbitMQ,执行如下命令:
    • yum install rabbitmq-server -y
  • 安装成功后,启动服务:
    • 先看下自己的主机名,执行命令:hostname,我的主机名是:centos-linux.shared
    • 先修改一下 host 文件:vim /etc/hosts,添加一行:127.0.0.1 centos-linux.shared
    • 启动:service rabbitmq-server start
    • 停止:service rabbitmq-server stop
    • 状态:service rabbitmq-server status
    • 重启:service rabbitmq-server restart
    • 自启:chkconfig rabbitmq-server on
  • 配置:
    • 进入指定目录:cd /etc/rabbitmq
    • 编辑配置文件,开启用户远程访问:vim rabbitmq.config
      • %% {loopback_users, []},(注意后面有一个逗号)更改为:{loopback_users, []}
    • 开启 Web 界面管理:rabbitmq-plugins enable rabbitmq_management
      • epel源安装的话,则是这样运行:cd /usr/lib/rabbitmq/bin;./rabbitmq-plugins enable rabbitmq_management
    • 重启 RabbitMQ 服务:service rabbitmq-server restart
    • 开放防火墙端口:
      • sudo iptables -I INPUT -p tcp -m tcp --dport 15672 -j ACCEPT
      • sudo iptables -I INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
      • sudo service iptables save
      • sudo service iptables restart
  • 浏览器访问:http://192.168.1.114:15672 默认管理员账号:guest 默认管理员密码:guest,出现如下图,恭喜,安装成功!
    • 20180209151818165842106.png

卸载CentOS7自带的jdk

CentOS7自带的是openjdk,而我们平常开发用的jdk是sunjdk,所以需要卸载掉它自带的jdk,整个过程如下:

  • 使用命令:rpm -qa|grep java,查询系统自带的jdk,查询的结果如下:

    1
    2
    3
    4
    5
    6
    [root@centos-linux ~]# rpm -qa|grep java
    java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
    javapackages-tools-3.4.1-11.el7.noarch
    java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
    tzdata-java-2015g-1.el7.noarch
    python-javapackages-3.4.1-11.el7.noarch
  • 使用命令:rpm -e --nodeps xxx,xxx代表系统自带的jdk名,这个命令删除系统自带的jdk,这里需要注意的就是,卸载的是带javaopenjdk关键字的包,其他的比方tzdata-java-2015g-1.el7.noarch是不能删除的,下面是完整的删除命令:

    1
    2
    rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64  
    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
  • 执行java -version命令,查看是否卸载成功,若找不到这个命令,说明是卸载成功了,否则卸载失败。

安装redis

  • linux版本为centOS 6.7。
  • 下载地址:http://redis.io/download,下载最新版本。
  • 利用FTP上传工具,将源码包上传到/usr/local/目录。
  • redis-4.0.6.tar.gz源码包解压,解压成功后,删除源码包,如果权限不够,需要加上sudo权限。

    1
    2
    $ tar xzf redis-4.0.6.tar.gz
    $ rm -f redis-4.0.6.tar.gz
  • 进入到redis源码解压后的目录,然后开始编译。

    1
    2
    $ cd redis-4.0.6/
    $ make
  • 编译完成后,目录下会出现编译后的redis服务程序 redis-server,还有用于测试的客户端程序 redis-cli,两个程序位于安装目录 src 目录下。

  • 进入到src目录下面,启动redis服务,注意此时redis还不能后台运行,按ctrl+c就会结束服务。

    1
    2
    $ cd src
    $ ./redis-server

    启动redis服务

  • 默认情况,Redis不是在后台运行,我们需要把redis放在后台运行,编辑redis的配置文件redis.conf

    1
    2
    $ vim redis.conf
    将daemonize的值改为yes
  • 默认情况下,Redis默认的连接密码为null,但是为了安全我们需要设置一个密码。

    1
    2
    $ vim redis.conf
    将requirepass前面的注释去掉,然后设置密码,比如设置为root
  • 让reids开机自启。

    1
    2
    3
    vim /etc/rc.local
    加入
    /usr/local/redis-4.0.6/src/redis-server /usr/local/redis-4.0.6/redis.conf
  • 启动redis后台服务。

    1
    $ /usr/local/redis-4.0.6/src/redis-server /usr/local/redis-4.0.6/redis.conf

    打印如下内容,启动成功:

    1
    2
    3
    $ oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    $ Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=25640, just started
    $ Configuration loaded

    最好检测下redis进程是否已经启动,若出现redis-server等关键字,说明服务启动成功。

    1
    $ ps -ef | grep redis
  • 服务启动后,还需要将redis.conf配置文件中的 bind 127.0.0.1 注释掉,不注释掉的话,只能本机访问,其他的IP将无法访问reids。

    1
    2
    3
    4
    # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
    # JUST COMMENT THE FOLLOWING LINE.
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # bind 127.0.0.1
  • 停止Redis服务。
    如果有启动过redis客户端,执行如下的命令:

    1
    $ /usr/local/redis-4.0.6/src/redis-cli shutdown

    或者直接暴力一点:

    1
    $ pkill redis-server
  • 这个就是整个redis安装的过程,以及需要注意的地方。

安装搜狗输入法

  • linux版本为Ubuntu 16.04。
  • http://pinyin.sogou.com/linux/下载安装包。
  • 添加源:sudo add-apt-repository ppa:fcitx-team/nightly
  • 然后更新:sudo apt-get update
  • 开始安装fcitx
    • 执行命令:sudo apt-get install fcitx
    • 出现错误,执行:sudo apt-get -f install
    • 然后再次执行:sudo apt-get install fcitx
  • 安装fcitx的配置工具:sudo apt-get install fcitx-config-gtk
  • 安装fcitx的table-all包:sudo apt-get install fcitx-table-all
  • 安装im-switch工具:sudo apt-get install im-switch
  • 进入到搜狗输入法安装包所在文件夹,执行:sudo dpkg -i sougoupingyin_2.1.0.deb
  • 最后注销,重启,系统设置–>语言支持,将键盘输入法系统设置为fcitx。
  • 搜索出fcitx配置,将sogou输入法设为默认即可。

Tomcat端口占用问题

  1. linux环境下解决tomcat 8080端口被占用的方法:

    • 先查看是否有tomcat在运行,执行命令:ps -ef |grep tomcat,若出现如下的内容,说明tomcat正在运行

      1
      2
      3
      4
      5
      6
      7
      8
      [root@1 ocalhost bin] # ps -ef |grep tomcat
      root 51379 10 Nov29 pts/0 OO:03: 03
      /usr/java/jdk1.8.0_121/bin/java-Djava.uti]; 1 oggi ng. Config. Fi le=/opt/tomcat /conf/ logging.
      Properties -Djava. Uti1. Logging. Manager=org. Apache. Ju1 i. Clas sLoaderLogManager-djdk. T1 s.
      EphemeralDHKeySi ze=2048-Djava. Protoco1. Handler. Pkgs=org. Apache. Catal in a.
      Webresources-classpath /opt/tomcat /bin/bootstrap.jar: /opt/tomcat /bin/tomcat-ju1 i.jar.-Dcata] ina.
      base=/opt/tomcat-Dcata lina.home=/opt/tomcat-Djava.iO.tmpdi r=/opt/ton cat/temp org. Apache. Cata
      lina. Startup. Bootstrap start root 71250118237 0 11: 39 pts/0 OO: OO:00 grep--color=autotomcat
    • 输入命令:netstat -anp|grep 8080,找到这个端口对应的进程(PID)

      1
      2
      [root@loca1 host bin] # netstat -anp|grep 8080
      tcp6 0 0:::8080 LISTEN 51379/java
    • 杀死该进程:kill -9 51379

  2. windows下解决tomcat 8080端口被占用的方法:

    • 输入命令:netstat -aon|findstr "8080",找到了这个端口对应的进程(PID),如下所示:

      1
      2
      3
      4
      5
      C: \Users\lwang> netstat -aon|findstr "8080"

      TCP O. O. O. O:8080 O. O. O. O:0 LISTENING 12956

      TCP [::]:8080 [::]:0 LISTENING 12956
    • 查看什么应用占用了该端口,输入命令:tasklist|findstr "12956",如下所示:

      1
      2
      3
      C: \Users\lwang> tasklist|findstr "12956"

      javaw. Exe 12956 Console 286,212 K
    • 杀死该进程,输入命令:taskkill /pid 12956 /f,如下图所示:

      1
      2
      C: \Users\lwang> taskkill /pid 12956 /f
      成功:已终止 PID 为 12956 的进程。

主题美化

ubuntu自带的主题感觉很丑,所以准备换个扁平化的主题-Flatabulous。安装步骤如下:

  • 安装Unity 图形化管理工具-Unity Tweak Tool,安装命令:
    • sudo apt-get install unity-tweak-tool
  • 安装Flatabulous主题,并按顺序执行如下的命令:
    • sudo add-apt-repository ppa:noobslab/themes
    • sudo apt-get update
    • sudo apt-get install flatabulous-theme
  • 安装该主题配套的图标,按顺序执行如下的命令:
    • sudo add-apt-repository ppa:noobslab/icons
    • sudo apt-get update
    • sudo apt-get install ultra-flat-icons

安装完成后,打开unity-tweak-tool,修改主题和图标:

  • 点击Theme,选择Flatabulous
  • 点击Icons,选择Ultra-flat
  • 最后重启系统。

最终效果图如下:

安装JDK

基本步骤如下:

  • linux版本为Ubuntu 16.04。
  • 下载地址
  • 安装版本为:jdk-8u151-linux-x64.tar.gz
  • 我习惯将软件安装到/usr/local/develop-tools/目录,方便管理,如果没有develop-tools目录,先创建该目录。
  • 进入到源码包所在的文件夹,将源码包解压到/usr/local/develop-tools/目录下。
    • sudo tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/develop-tools/
  • 编辑全局环境变量:

    • 编辑配置文件:sudo vim /etc/profile
    • 在该文件的最尾巴,添加下面内容:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      # JDK
      JAVA_HOME=/usr/local/develop-tools/jdk1.8.0_151
      JRE_HOME=$JAVA_HOME/jre
      PATH=$PATH:$JAVA_HOME/bin
      CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export JAVA_HOME
      export JRE_HOME
      export PATH
      export CLASSPATH
    • 执行命令,刷新该配置:source /etc/profile

    • 检查JDK是否生效:java -version

安装zookeeper

详情见:zookeeper安装教程

VMware安装ubuntu问题

VMware tools 无法安装问题

使用VMware Workstation安装Ubuntu 16.04,安装VMware Tools选项按钮为灰色,如果不安装VMware Tools,则会出现以下几个问题:

  • 物理机无法向直接向虚拟机复制和粘贴。
  • 虚拟机的分辨率无法进行自动适配。

解决方法:

  1. 先关闭虚拟机。
  2. 点击编辑虚拟机设置,添加CD/DVD驱动器。
  3. 接下来,驱动器介质,选择使用ISO映像(M)
  4. 选择ISO映像地址,这个ISO映像就是VMware Workstation安装根目录下面的那个linux.iso,别选错了!
  5. 点击确定后,然后重启Ubuntu虚拟机,这个时候,会在左侧的任务栏看到一个CD/DVD,点击打开,将VMwareTools-9.9.2-2496486.tar.gz源码包拷贝到桌面,并解压。
  6. 进入到解压后的文件夹内,执行sudo ./vmware-install.pl,安装VMware Tools。
  7. 中间会有一些询问项,一路回车即可。
  8. 安装完成后,重启系统即可。

Ubuntu登陆后花屏

虚拟机 –> 设置 –> 显示器 –>加速3D图形加速前面的勾去掉就可以了,降低显卡的的负担。

显示器分辨率问题

ubuntu登录后报错:could not apply the stored configuration for monitors,意思是无法将存储的配置应用于当前的显示器。解决办法就是:

  • 终端执行sudo rm -f ~/.config/monitors.xml,移除掉之前的显示器配置文件即可,之后会自动生成当前分辨率分配置文件。

安装SSH

  • linux版本为Ubuntu 16.04。

为了在windows平台使用SecureCRTXshell等终端工具连接ubuntu等linux服务器,linux服务器需要安装SSH,执行如下的命令:

  • sudo apt-get install openssh-server

确认ssh server是否启动,执行如下命令:

  • ps -e | grep ssh

如果只有ssh-agent,那ssh-server还没有启动,需要执行/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。

ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务:

  • sudo /etc/init.d/ssh resart