linux课堂笔记

来源:互联网 发布:vue.js radio默认选中 编辑:程序博客网 时间:2024/05/23 07:24

Linux:
……
虚拟机设置网络:
ping 114.114.114.114(PublicDNS)     223.5.5.5(AllDNS)
ifconfig   查看网络适配器状态
    ifconfig-a
lo  --   本地回路适配器    localhost   /   127.0.0.1
eth0   --   以太网卡(0表示第一个逻辑网卡)

ifuo eth0
ifconfig 查看IP地址
DHCP给eth0分配IP地址:10.0.0.2.15
ping 127.0.0.1   虚拟机的网络连通状态  Ctrl+C终止

在VirtualBOX 中选择  设备->网络->网络 设置端口转发规则
         192.168.56.1 :22 <--> 10.0.2.15:22
        Putty 操作 左键选中(复制)   单击右键(粘贴)

5、网卡设置
vi   文本编辑器
cd    /etc/sysconfig/network-scripts

        键入命令时可以使用tab键补全
pwd    查看当前的位置
ls    列出当前位置下的内容


vi   ifcfg-eth0
    j    向下移动一个字符    k    向上移动一个字符
    h    向左移动一个字符    l    向右移动一个字符
    ONBOOT=no     -->   ONBOOT=yes
    光标在"n"字符上
    dw  删除一个单词    a    当前位置之后插入
    esc       返回XX模式
    键入    “:” 进入命令模式    输入    X(保存)

6、系统重启与关机
    重启 reboot
    关机 shutdown -r now
    关机 halt
    
    yum list *setup*




查找某个文件   whereis er    er的文件都给你找出来

mkdir
就是建立文件夹
mkdir -m 755 haner
就是在当前目录建立一个名为haner的文件夹
可读可写

rm是删除文件的命令
对应的rmdir
是删除文件夹






(1)新建一个普通用户
新建/用户user01   usr/sbin/useradd user01
设置user01密码    usr/bin/passwd user01
(2)使用user01登录系统
exit  退出当前登录Shell
普通用户命令提示符 $
/home/user01   为user01的主目录,拥有所有权限
(3)常用命令
pwd  做操作前使用该命令
ls/   列出根目录下所有内容
cd 或者  cd~   切换到用户主目录
目录:
全路径  例-->  /home/user01
相对路径  例  假设当前位置为/home/user01
-->   ls../.././etc/sysconfig/network-scripts
其中“..”表示上级目录
-->   ls../.././etc/sysconfig/network-scripts
其中“.”表示当前目录
-->  ls~/.  
ll    -->详细列表
ls -al   ->   列出隐藏内容
          在Linux系统中  “.”开始的文件为隐藏文件
管道符“|”前项输出作为后项的输入
ll/etc/  |more    分页显示
ll/etc/  |less      分页显示
ll/etc/  |grep pass    列出包含pass的内容
ll/etc/  |grep pass   | less     
ll/etc/  |grep pass   | wc  -1    统计符合要求的行数


clear     清除屏幕显示


查看文本内容
cd
pwd
ll  /etc/  >1.txt        ">"表示定向符
ll
(vi )  1.txt
more  1.txt分页
less    1.txt
cat    1.txt查看
grep passwd   1.txt查看指定的相关内容

程序进行中的退出:
ctrl+c或者alt+c





10、用户管理和文件权限管理
(1)用户管理
相关配置文件
etc/passwd    存储用户信息(不含密码)
etc/group    存储用户组信息(不含密码)
etc/shadow    存储对应的用户安全信息
etc/gshadow    存储对应的组安全信息
相关名词
uid
gid


普通用户  cat /etc/shadow      权限限制

cat /etc/passwd

用户名:密码:用户ID:用户组ID:用户全称:用户主目录:用户shell
root:x:0:0:root:/root:/bin/bash
user01:x:500:500::/home/user01:/bin/bash

nobody:x:99:99:Nobody:/:/sbin/nologin

用户shell为/sbin/nologin的时候,通常为提供专有服务的用户
nobody http的子进程    777

cat /etc/group
用户组名:密码:用户组ID:用户组成员
root:x:0

相关命令(切换到root用户)
/bin/su -
用户管理
/usr/sbin/useradd
/usr/sbin/userdel
/usr/sbin/usermod
用户组管理
/usr/sbin/groupadd
/usr/sbin/groupdel
/usr/sbin/groupmod
/usr/sbin/groupmems
用户密码管理
/usr/bin/passwd

相关操作(基本上需要root用户)
/usr/sbin/useradd kaka^c
/usr/sbin/usermod  -c "New User"  kaka    -->修改全称
tail -n 2 /etc/passwd
tail -n 2 /etc/group
/usr/sbin/userdel kaka
rm -rf /home/kaka

/usr/sbin/groupadd mysystem
tail -n 2 /etc/group
/usr/sbin/useradd -g mysystem
……



(2)文件权限管理
相关概念
11
   权限栏(10位)      用户栏         用户组栏
   -rw-rw-r--              user01         user01

文件或目录的权限由上述三个部分共同决定

权限栏:
第一位为标识位
- 文件     d 目录     1 链接文件
b 块文件     c 字符信息文件

                            ln 创建链接文件
                            ln -s bin/ abc
每三位一组分别表示<用户权限><组权限><所有人权限>
r     读权限       4
w    写权限       2
x     执行权限    1
例:-rw-rw-r--      664
      -rwxrwxrwx     777
      -rwxr-xr-x       755
      -drwx------     700

用户栏与用户组栏(root用户修改)
相关命令
chmod   更改文件或目录权限
    chmod 命令参数
    chmod 数字
chown    更改文件或目录所属用户或用户组
chgrp     更改文件或目录所属组
以上均支持参数“-R” 表示对当前目录下的所有文件和子目录操作

相关操作
/tmp   所有用户均可读写
使用user01用户创建三个文件
touch user01.txt user02.txt……

chmod +x  user01.txt   给user01.txt增加执行权限
u用户g用户组o其他a所有
+增加-删除
r读w写x执行

例:
chmod  +x  user01.txt    user01.txt增加执行权限
chmod  u+rw user01.txt  

mkdir -p u1/u2
touch u1/f1.txt   u1/u2/f2.txt
chmod +x u1 -R
 ll u1
 ll u1/u2

user01用户设置user02.txt文件权限
ls / >user01.txt
ls / >user02.txt
ls / >user03.txt
chmod 600 user02.txt
/bin/su -  mysql     使用root用户切换到mysql用户
访问
cat user02.txt   提示:用户权限不够

切换到root用户更改文件或目录的所属用户和用户组
chown mysql user02.txt    
chgrp mysystem user02.txt
chgrp 501 user02.txt

chown nginx.mysystem  user03.txt  同时修改所属用户和用户组



11、系统(base/extra/updates三类源)软件安装、第三方软件安装
系统软件安装:(root用户)yum会自动管理依赖包
yum  list  <xxx>   列出相关软件包
         install          安装
         erase           删除
         rearch         搜索某个软件包
         provides      搜索某个相关的软件包
         update        更新
         upgrade      升级
第三方软件安装:
rpm(发行包安装)
rpm   -ivh   xxx.xxx.xxx.rpm    安装某个rpm包
rpm   -e     删除某个rpm包
编译(源码安装)

安装Wget工具包
yum list *wget*
yum install wget

安装nslookup工具
yum list *nslookup*
yum provides */nslookup   查询结果


12、简单网络管理
……
相关命令
ifconfig   查看与管理网卡及配置
netstat    查看当前网络连接状态
   netstat -na  |  more
   netstat -na  |  grep  ":22"
      LLISTEN            监听状态
      ESTABLISH        活动……
      WAITTING         等待…
      TIME OUT         超时
      CLOSED            关闭
    TCP  /  UDP
  常见默认端口号:
   FTP-Date        20
   FTP-Control    21
   SSH                22
   STMP             25
   DNS               53
   HTTP              80
   POP3             110
   IMAP             143
   HTTPS           443
   MySQL          3306
   Tomcat         8080       


   arp          查看IP地址与MAC地址对应关系
   route       查看和修改路由表
   nslookup
   whois      

13、系统防火墙(iptables/ip6tables)的基本管理
     配置文件
       /etc/sysconfig/iptables

      :INPUT ACCEPT [0:0]       输入链(管理服务端口)
      :FORWARD ACCEPT [0:0]     转发链
      :OUTPUT ACCEPT [0:0]      输出链

       -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT     打开22端口
        常见标准端口
         FTP    --   21
         SSH    --   22
         HTTP   --   80
         HTTPS  --   443
         SMTP   --   25
         POP3   --   110
         IMAP   --   143
         Tomcat --   8080
         MySQL  --   3306
      防火墙设置
        文本图形界面配置
         yum list *setuptool*
         yum install  setuptool
         setup   -->  进入配置界面
         yum list *system-config*
         yum install  system-config-network-tui
         yum install  system-config-firewall
         yum install  system-config-firewall-tui
         /etc/init.d/messagebus start  --> 启动系统消息总线服务
         cat  /etc/sysconfig/iptables  --> 看看结果
        直接编辑配置文件(vi)
      需要建立虚拟机的端口转发
         221    -->   21
         280    -->   80
         23306  -->   3306
         28080  -->   8080


14、vim简易使用
vi  1. c
vi  Student.java

三种模式:
正常模式:默认进入
编辑模式:编辑文本
命令模式:冒号之后

 进入编辑:
      i     当前光标位置开始编辑
      I     
      a     当前光标之后开始编辑
      A     当前行末尾之后开始编辑
      o     当前位置下一行开始编辑
      O     当前位置上一行开始编辑
    键入ESC键,返回到正常模式
      移动:j k h l
            b(向前移动一个单词) w(向后移动一个单词)  
            e(向后移动一个单词末尾)
            ctrl+b(上翻页)  ctrl+f(下翻页)
      复制:yy <n>yy
      剪切:dd  <n>dd
      粘贴:p(当前位置下一行粘贴) P(当前位置上一行粘贴)
      删除:dd(删除一行)  <n>dd(删除n行)   
            x(删除当前位置字符)  
            dw(向后删除一个单词)  de(向后删除一个单词)  
            db(向前删除一个单词)
      重做与撤销:
            u   撤销上一步的操作
            ctrl+r 恢复上一步被撤销的操作


    键入冒号“:”,进入到命令模式
      w    保存
      q    退出
      wq   保存并退出
      x    保存并退出
      q!   强制退出
      x!   强制保存并退出
      set  设置
         set nu   设置行号
         set tabstop=4   设置tab的大小为4个空格
      1   移动到文件开始
      $   移动到文件末尾

15、安装vsFTPd服务(root用户)
      yum  list *ftpd*
      yum  install vsftpd
      rpm -ql vsftpd  查看rpm包安装的详细情况
     测试FTP服务(需要FTP客户端:FileZilla  、  FlashFXP)
      ps -ef|grep ftpd
      /etc/init.d/vsftpd start

     系统服务管理:
      相关文件和目录
         /etc/init.d     -->   服务启动脚本存放目录
         /etc/rc.local   -->   启动脚本
         /etc/inittab    -->   系统启动级别配置    
           0     -->   关闭系统
           1     -->   单用户模式
           2     -->   多用户模式
           3     -->   控制台多用户模式
           4     -->   没有用
           5     -->   X11模式
           6     -->   重启系统
          相关命令   init
          /etc/rc<x>.d  x为从0到6共7个级别,在这些目录中会发现
            KxxXXXX 以及 SxxXXXX   其中K(Kill)、S(Start)
       相关控制命令  chkconfig
         chkconfig   列出当前服务控制状态
         chkconfig  --list  <xxx>   列出<xxx>的服务控制状态
         chkconfig  --add  <xxx>     把<xxx>加入到系统服务控制中
         chkconfig  --level 3 <xxx> on  把<xxx>在级别3上开启服务
        例如:
          chkconfig  --list  vsftpd
          chkconfig  --level 3 vsftpd  on
       
      测试FTP匿名用户访问情况
       /etc/init.d/vsftpd start
       ps -ef|grep vsftpd
       less  /etc/sysconfig/iptables   确认防火墙开放21端口

       映射:192.168.56.1:3321  ->  10.0.2.15:21
      
      Ftp 主动模式(Port)与被动模式(Passive)
       分别用匿名用户和普通用户登录(均采用主动模式)
       
       普通用户登录出现提示:
         500 OOPS: cannot change directory:/home/user01
       与CentOS的安全设置有关,默认均是关闭
         sestatus -b  |  grep ftp
         setsebool -P  ftp_home_dir on  永久开启普通用户ftp访问规则


  yum install gcc
  yum install java-1.8.0

  gcc --version
  java  -version

16、安装Web服务(Nginx)
     http://www.nginx.org
   使用user01用户下载
       wget http://nginx.org/download/nginx-1.12.1.tar.gz
     
    从源代码安装服务器软件:
     配置编译选项(configure)、编译(make)、安装(make install)
     配置(在目录conf或etc下)、服务控制管理(启动脚本)
    
    在user01用户下:
      cd ~
      tar zvxf  nginx-1.12.1.tar.gz
      cd  nginx-1.12.1
      ./configure  --help |  more  查看编译选项
           其中选项 --prefix    -->  指定软件安装目录

      ./configure  --prefix=/opt/nginx \
      --user=nginx   \
      --group=mysystem  \
      --with-http_ssl_module  \

     会依据编译选项检查当前系统环境
      出现错误提示:
       ./configure: error: the HTTP rewrite module requires the PCRE library.
       类似的问题均是需要对应库的开发包 均有关键词 “devel”
      使用root用户
       yum list *pcre*
       yum install pcre-devel

    ./configure: error: SSL modules require the OpenSSL library.
       需要openssl开发包
       yum list  *openssl*
       yum install openssl-devel

    配置编译选项完成后(普通用户)
      make
    安装(root用户)
      cd  /home/user01/nginx-1.12.1
      make install

linux 64系统中安装nginx1.3时如果出现错误:nginx: [emerg] getpwnam(“www”) failed
解决方法1:
      在nginx.conf中 把user nobody的注释去掉既可
解决方法2:
      错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令:
      #/usr/sbin/groupadd -f www
      #/usr/sbin/useradd -g www www

     配置(均在/opt/nginx目录下)
        conf   -->  配置文件目录
        html   -->  默认Webroot
        sbin   -->  服务主程序
        logs   -->  默认日志目录
     
      测试服务:
        /opt/nginx/sbin/nginx     启动nginx服务
        /opt/nginx/sbin/nginx -s  stop   停止nginx服务
        /opt/nginx/sbin/nginx -s  reload  重启nginx服务

      
       映射:192.168.56.1:3380  -->  10.0.2.15:80
       防火墙开放80 端口
         vi  /opt/nginx/html/1.html  加入如下内容
          <h1>2015xxxxxx</h1>
    
     把Nginx加入到系统服务控制中  在/etc/init.d/ 中增加相关脚本
     在https://www.nginx.com/resources/wiki/start/index.html找到相关脚本

     (root用户操作)
     vi /etc/init.d/nginx      粘贴相关脚本内容
     修改
     nginx="/usr/sbin/nginx"  ->   nginx="/opt/nginx/sbin/nginx"
     NGINX_CONF_FILE="/etc/nginx/nginx.conf"     ->
                    NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
    
     chmod  +x   /etc/init.d/nginx     增加执行权限
     /etc/init.d/nginx  start    测试脚本运行是否成功
     
     加入到系统服务控制中
     chkconfig  --list  nginx
     chkconfig  --add   nginx     加入到系统服务控制列表
     chkconfig  --level 3  nginx on    在级别3上开启nginx服务
     
     
17、数据库服务(MySQL)    
  使用user01用户
    http://www.mysql.com
    wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz     
    tar zvxf  mysql-5.6.37.tar.gz
    cd  mysql-5.6.37  
    less  INSTALL     查看安装提示(通常在README或INSTALL或BUILD)
   
   使用root用户
    安装编译选项配置工具 CMake
      yum  install  cmake
    安装g++编译器
      yum  install  gcc-g++
    安装Perl解释器
      yum  install  perl
    安装bison
      yum  install  bison

   使用user01用户
   配置编译选项
     cmake  \
     -DCMAKE_INSTALL_PREFIX=/opt/mysql5.6    \
     -DDEFAULT_CHARSET=utf8   \
     -DDEFAULT_COLLATION=utf8_general_ci     \
     -DMYSQL_DATADIR=/opt/mysql5.6/data     \
     -DMYSQL_UNIX_ADDR=/opt/mysql5.6/mysql.sock  \
    
   出现错误提示:
     Curses library not found.
    使用root用户
     yum list *curses*
     yum install  ncurses-devel

    使用user01用户
     每次出错后重新执行cmake,需要首先删除CMakeCache.txt
     rm CMakeCache.txt
     
    make -j 9     编译

    使用root用户  安装
      cd   /home/user01/mysql-5.6.37
      make  install

使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd 查看用户列表
cat /etc/group  查看用户组列表
如果没有就创建

groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql权限

      chown  -R  mysql:mysystem  /opt/mysql5.6
      
    初始化MySQL数据库
      cd  /opt/mysql5.6
      scripts/mysql_install_db  --basedir=/opt/mysql5.6  --datadir=/opt/mysql5.6/data
     
     服务控制启动脚本
     support-files/mysql.server  start    启动mysql服务
     
     修改my.cnf文件
       cd   /opt/mysql5.6
       vi    my.cnf                  加入如下内容
         basedir=/opt/mysql5.6
         datadir=/opt/mysql5.6/data
         socket=/opt/mysql5.6/mysql.sock

     修改MySQL - DBA用户root密码
     /opt/mysql5.6/bin/mysqladmin -u root password '111111'
     /opt/mysql5.6/bin/mysqladmin -u root -p -h localhost password '111111'
     
     测试MySQL
      /opt/mysql5.6/bin/mysql   -u   root    -p
      
     show  variables   like  '%char%';        -->   检查是否为utf8


     加入到系统服务控制中
     cp   /opt/mysql5.6/support-files/mysql.server     /etc/init.d/mysql
     chkconfig --list mysql
     chkconfig  --add mysql
     chkconfig  --level  2  mysql off
     chkconfig  --level  4  mysql off
     chkconfig  --level  5  mysql off   


18、应用服务器(Tomcat)
    使用user01用户
       http://tomcat.apache.org
       wget http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
       上面不行的話換這個鏈接:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
      cd   ~
      tar   zvxf   apache-tomcat-8.0.47.tar.gz

   使用root用户
     cp   -r   /home/user01/apache-tomcat-8.0.47      /opt/tomcat1
     cd  /opt/tomcat1
     bin/startup.sh
    
    简单查看Tomcat是否工作
      暂停iptables       /etc/init.d/iptables   stop
      建立映射     192.168.56.1:38080    -->      10.0.2.15:8080

    停止Tomcat
      /opt/tomcat1/bin/shutdown.sh
    
    新建jsp工作目录
       mkdir   -p   /opt/web/jsp1/WEB-INF  
   
    在Tomcat1中增加虚拟路径   
     cd    /opt/tomcat1/conf
     vi    server.xml        在标签  “</Host>”    之前加入
        <Context  docBase="/opt/web/jsp1"   path="/test"  debug="0"  reloadable="false"   />
 
    在/opt/web/jsp1下建立文件  index.jsp   -->  vi  /opt/web/jsp1/index.jsp
      <h1>Tomcat 1</h1>
      <%= new java.util.Date() %>

    重新启动Tomcat1
       /opt/tomcat1/bin/startup.sh

    在浏览器中访问  http://192.168.56.1:38080/test/index.jsp
     
 
    建立Tomcat第2个实例
     /opt/tomcat1/bin/shutdown.sh      停止 第1个tomcat实例
     cp   -r   /opt/tomcat1   /opt/tomcat2

     修改相关的端口和路径
     端口   8005,8009,8080 修改(+1)   -->   8006,  8010,  8081
     修改  "/opt/web/jsp1"   -->    /opt/web/jsp2
     
     cd  /opt/tomcat2/conf
     vi  server.xml
     
     mkdir  -p   /opt/web/jsp2/WEB-INF
     vi   /opt/web/jsp2/index.jsp
        <h1>Tomcat  2</h1>
        <%= new  java.util.Date() %>

     测试Tomcat1 和 Tomcat2 是否能同时工作
       /opt/tomcat1/bin/startup.sh
       /opt/tomcat2/bin/startup.sh
      建立映射     192.168.56.1:38081    -->      10.0.2.15:8081

    通过Nginx的配置来实现”负载均衡“
      cd   /opt/nginx/conf
      vi   nginx.conf
   
      在  ”http“  配置段的末尾(}之前)增加一行
         include   tomcat-nginx.conf;
     
     touch   tomcat-nginx.conf
     vi   tomcat-nginx.conf

       upstream tomcat{
              server  127.0.0.1:8080  weight=1  max_fails=2 fail_timeout=30s;
              server  127.0.0.1:8081  weight=1  max_fails=2 fail_timeout=30s;
       }

      server{
        listen     81;
        server_name    localhost;
        index  index.jsp  index.html  index.htm;

        location / {
            proxy_next_upstream http_502 http_504 error timeout invalid_header;
            proxy_set_header Host  $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://tomcat;
            expires      3d;
        }
        location ~^/(WEB-INF)/{
            deny all;
        }
     }

    说明:"upstream"  采用轮询的工作方式

    /etc/init.d/nginx restart      重启nginx服务
    修改防火墙(iptables)     -->   vi    /etc/sysconfig/iptables    增加规则
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT

    /etc/init.d/iptables   restart      
      
       建立映射     192.168.56.1:381    -->      10.0.2.15:81

    测试轮询工作状况,浏览器中访问
      http://192.168.56.1:381/test/index.jsp
      分别关闭或开启  tomcat1和tomcat2实例,可以观察轮询状况。


    介绍:tomcat的native(本地化),相关文件
     bin目录下的   commons-daemon-native    和   tomcat-native
          
 
首先是编译准备工作:

    yum groupinstall "Development tools"
然后是编译安装 PHP 需要用到的 devel 包:

    yum install libxml2-devel gd-devel libmcrypt-devel libcurl-devel openssl-devel
 http://www.php.net
    wget http://hk1.php.net/get/php-5.6.31.tar.gz/from/this/mirror
    mv  mirror  php-5.6.31.tar.gz
    tar -xvf php-5.6.31.tar.gz
    cd php-5.6.31

./configure --with-apxs2=/opt/apache2/bin/apxs --disable-cli --enable-shared --with-libxml-dir --with-gd --with-openssl --enable-mbstring --with-mcrypt --with-mysqli --with-mysql --enable-opcache --enable-mysqlnd --enable-zip --with-zlib-dir --with-pdo-mysql --with-jpeg-dir --with-freetype-dir --with-curl --without-pdo-sqlite --without-sqlite3







原创粉丝点击