zoukankan      html  css  js  c++  java
  • Linux基础-3

    笔记3

    RPM、YUM
    yum -y install epel-release (国外源)
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo (aliyun)
    RPM:很难解决包依赖关系
    rpm -ivh 安装包、-e卸载、--nodeps忽略依赖关系、-force强制安装软件包、-nosignature不检验软件包的签名。
    -q:查询指定包是否安装 -qa: rpm -qa |grep ntfs、过滤。
    -ql:查询安装文件、 -qf: rpm -qf /usr/bin/ntfs-3g 查询属于哪个rpm包
    -qi:查询包的详细信息、 -qc配置文件、 -qd:帮助文档。
    cd  etc/yum.repos.d/:yum源所在地。
    yum provides  +包名:查询下载什么包、
    yum clean all :清空yum缓存、reinstall重新安装。
    yum makecache:提高安装速度、
    yum repolist:重新加载yum源
    yum search mysql:查找软件(装、不装、有的都找)
    yum deplist httpd:查看依赖关系
    yum list 所有的包罗列出来、yum list|grep “httpd” 过滤下自己要的
    yum grouplist
    yum reinstall 重新安装、
    yum remove 卸载、=yum -y erase、
       1、自己配yum源:cd/etc/yum.repos.d下、其他.repo备份。
    vim myselfyum.repo
    [centos7u3]
    name=sentos7i4
    baseurl=file:///mnt   //本地yum源挂载地址/mnt.远程:ftp(http)://192.168.14.130/pub(相对路径。我不知道为啥。。)
    enabled=1   //开启yum源
    gpgcheck=0 //不检测
    yum repolist 重新加载
       2、远程(局域网ftp)#mkdir /opt/yum-iso
    #mount /opt/Centos-7.iso /opt/yum-iso(或者mount /dev/sr0 /mnt)
    #yum -y install vsftpd
    cp -a /mnt/* /var/ftp/pub/ :拷贝到pub目录下(vsftpd共享目录pub)
    #createrepo /myyum (注:防火墙关、vsftpd服务开启、服务器端完成)
    (客户端):cd /etc/yum.repos.d 同1.自配yum源。
    #vim /etc/yum.conf默认删除安装包、
    keepcache=1 打开、会保存安装包、制作yum源。
    源码包:#/etc/rc.d/init.d(好多服务都在这、绝对路径启动服务。):源码包可以安装多个服务。yum只能装一次。
    1. 编译环境如编译器 gcc、make
    2. 准备软件 tengine-2.2.0.tar.gz
    # yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
    # useradd www
    # tar xvf tengine-2.2.0.tar.gz
    # cd tengine-2.2.0
    vim instllNginx.sh
    # ./configure
    --user=www
    --group=www
    --prefix=/usr/local/nginx
    --with-http_stub_status_module
    --with-http_sub_module
    --with-http_ssl_module
    --with-pcre
    # make && make install 编译后安装(1正确才执行2)
    # /usr/local/nginx/sbin/nginx //启动 nginx 服务器
    # systemctl stop firewalld
    #setenfore 0

     

    Rz: 上传数据包,yum -y install lrzsz 下载rz。
    Wget:-O 设置下载路径并命名,wget -O /etc/yum.repos.d/CentOS-Base.repo <http://mirrors.aliyun.com/repo/Centos-7.repo>
    Systemctl status httpd 查看http状态 Systemctl reload httpd 重新加载http服务
    日志服务cron

    at:计划任务做一些周期性的任务。

    crontab -l 列出当前用户的计划任务
    crontab -r删除当前用户的所有计划任务、-u 指定用户来查看其cron表。
    crontab -e编辑当前用户的计划任务:
    分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、周(1-7)、命令(绝对路径)或脚本路径(绝对路径)。
    日志轮换、切割
    #如果没有日志轮转,日文件会越来越大
    #将丢弃系统中最旧的日志文件,以节省空间
    #logrotate 本身不是系统守护进程,它是通过计划任务 crond 每天执行
    logrotate 配置文件:
    #/etc/logrotate.conf (决定每个日志文件如何轮转)(主配置文件)
    #/etc/logrotate.d/* (各种服务日志如何轮转)
    #/var/log 各种服务日志文件位置所在。
    [root@ICan ~]# vim /etc/logrotate.conf 
    =========全局设置==========
    weekly //轮转的周期,一周轮转
    rotate 4 //保留 4 份
    create //轮转后创建新文件
    dateext //使用日期作为后缀
    #compress //是否压缩
    include /etc/logrotate.d //包含该目录下的文件
    /var/log/wtmp { //对该日志文件设置轮转的方法
    monthly //一月轮转一次
    minsize 1M //最小达到 1M 才轮转
    create 0664 root utmp //轮转后创建新文件,并设置权限,属主,属组。
    rotate 1 //保留一份
    }
    /var/log/btmp {
    missingok //丢失不提示
    monthly //每月轮转一次
    create 0600 root utmp //轮转后创建新文件,并设置权限
    rotate 1 //保留一份
    例1:轮转文件/var/log/yum.log
    vim /etc/logrotate.d/yum  
    /var/log/yum.log {
    missingok                       //丢失不提醒
    #notifempty                     // 空文件不轮转
    #size 30k //只要到了30k就轮转、不够不轮转。
    #yearly
    daily                           //每天轮转一次  
    rotate 3      
    create 0777 root root
    }

    测试:
    [root@localhost]# /usr/sbin/logrotate /etc/logrotate.conf //手动轮转
    [root@localhost]# /usr/sbin/logrotate -f /etc/logrotate.conf //强制手动轮转
    [root@localhost]# ls /var/log/yum* /var/log/yum.log
    /var/log/yum.log-20170331
    [root@localhost ]# grep yum /var/lib/logrotate/logrotate.status //记录所有日志文件最近轮转的时间 "/var/log/yum.log" 2017-3-31-10:0:23
    date 09011000 月日时分
    #/usr/sbin/logrotate -s /var/lib/logrotate.status /etc/logrotate.conf //根据状态文件,规则文件进行轮转
    二、常见的日志文件
    # ls /var/log/     #默认存放各种日志的地方
    # tail /var/log/messages #系统主日志文件
    # tail -f /var/log/messages   #动态查看日志文件的尾部
    # tail -f /var/log/secure #认证、安全
    # tail /var/log/maillog #跟邮件(sendmail,postfix)相关
    # tail /var/log/cron   #crond、at进程产生的日志
    # tail /var/log/dmesg #和系统启动相关-开机后不再记录,可以使用dmesg命令查看活动的日志
    # grep -i eth /var/log/dmesg   #只反映出开机过程的信息,开机成功后不会再改变
    # dmesg           #查看系统开机后的信息
    # tail /var/log/audit/audit.log       #系统审计日志
    # tail /var/log/yum.log
    # tail /var/log/mysqld.log           #mysql进程自己记录的日志
    # tail /var/log/httpd/access_log     #httpd进程自己记录的日志
    # tail /var/log/xferlog   #和访问FTP服务器相关
    # w #当前登录的用户 /var/log/wtmp
    # last #最近登录的用户 /var/log/btmp
    # lastlog #所有用户的登录情况 /var/log/lastlog
    网络服务:
    网络配置:

    #nmcli:nmcli connection show:查看网卡状态吧。nmtui:图形工具
    #nmcli connection down(up) ens33 、关闭ens33(连接名)网卡、ifup/ifdown:也可以的。nmcli connection delete enp2s0-auto删除。

    #nmcli connection add con-name ens32-atuo autoconnect yes ifname ens33 type ethernet ip4 192.168.14.4/24 gw4 192.168.14.254 ipv4.dns 114.114.114.114 //设备ens33提前存在。

    #nmcli connection modify enp2s0-gun ipv4.method a:设置为自动(auto)、nmcli connection modify enp2s0-gun ipv4.method m、手动(manul)
    #nmcli connection modify enp2s0-gun +ipv4.addresses 20.20.20.20/24、nmcli connection modify enp2s0-gun +ipv4.dns 114.114.114.114、
    #vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0   设备名称 【NAME="System eth0" 设备名称】 可以不存在
    BOOTPROTO=none     启动协议 获取ip地址的方式 static、none ==>静态获取 dhcp 动态      
    NM_CONTROLLED=no 默认是yes 关闭network-manager
    ONBOOT=yes                 开机启动
    TYPE=Ethernet               以太网类型        
    HWADDR=00:0c:29:8e:a5:d3   mac地址
    IPADDR=172.16.80.252 ip地址  
    NETMASK=255.255.0.0 掩码
    PREFIX =24 掩码
    GATEWAY=172.16.80.1 网关
    DNS=114.114.114.114 //dns  
    配置域名解析
    #vim /etc/hosts
    119.75.218.70   www.baidu.com、
    #getent hosts www.baidu.com、算是查看吧
    配置NDS(dns服务端)
    #vim /etc/resolv.conf
      # Generated by NetworkManager
      nameserver 211.138.24.66
    #yum -y install bind-utils(host,dig,host,nslookup,nsupdate)域名解析信息吧《工具》
    #host www.sina.com
    # ip a		//查看主机ip地址
    # ip a s eth0 //查看某一网卡		# ip route		//查看路由表条目
    # ip neigh 	//查看邻居的mac地址    # hostname
    # ping www.baidu.com             # ping -c2 www.baidu.com
    # traceroute www.1905.com 路由跟踪
    # tracepath www.1905.com 路由跟踪
    netstat:显示网络相关信息 netstat [选项]  
    -t:TCP协议、-u:UDP协议、-l:监听、-r:路由、-n:显示IP地址和端口号
    netstat  -tlum 查看本机监听端口
    Netstat  -an 查看本机所有的网络连接
    Netstat  -rn 查看本机路由表 网关
    ss命令(比netstat快)
    -n 	不显示服务名称、  -a显示所有信息
    -t	显示tcp链接服务、 -l显示监听的端口
    # ss -tnl、#ss -tnl |grep :21
    # ss -atn	//a表示所有状态。可能是listen,也可能是已连接的
    ip转发:
    #echo 1 > /proc/sys/net/ipv4/ip_forward(临时)
    #vim  /etc/sysctl.conf  修改内核参数 (永久)
         net.ipv4.ip_forward = 1
    #sysctl  -p    //立即生效
    #sysctl  net.ipv4.ip_forward 、查看是否支持包转发。
    扫描ip:#nmap  -v  -sP  172.16.70.0/24
    扫描端口 :#nmap -v -A 172.16.70.0/24
    配置静态路由:
    方法一:
    添加路由
    route add -net 192.168.0.0/24 gw 192.168.0.1
    route add -host 192.168.1.1 dev ens33
    删除路由
    route del -net 192.168.0.0/24 gw 192.168.0.1
    
    add 增加路由
    del 删除路由
    -net 设置到某个网段的路由
    -host 设置到某台主机的路由
    gw 出口网关 IP地址
    dev 出口网关 物理设备名
    
    增 加默认路由
    
    route add default gw 192.168.0.1
    默认路由一条就够了
    
    route -n 查看路由表
    方法二:
    添加路由
    ip route add 192.168.0.0/24 via 192.168.0.1
    ip route add 192.168.1.1 dev 192.168.0.1
    删除路由
    ip route del 192.168.0.0/24 via 192.168.0.1
    
    add 增加路由
    del 删除路由
    via 网关出口 IP地址
    dev 网关出口 物理设备名
    
    增加默认路由
    ip route add default via 192.168.0.1 dev eth0
    via 192.168.0.1 是我的默认路由器
    
    查看路由信息
    ip route
    Yum方式部署lnmp环境

    L = Linux ; N = Nginx ; M = Mysql/Mariadb ; P = Php

    一、基础环境[已完成] [root@apache ~]# setenforce 0 [root@apache ~]# systemctl stop firewalld.service [root@apache ~]# systemctl disable firewalld.service [root@apache ~]# yum -y install epel-release 二、安装LAMP[已完成] [root@apache ~]# yum -y install nginx mariadb-server mariadb php php-mysql gd php-gd [root@apache ~]# systemctl start nginx mariadb [root@apache ~]# systemctl enable nginx mariadb

    FTP

    FTP基础

    软件包: vsftpd FTP端口: 控制端口 command 21/tcp 配置文件: /etc/vsftpd/vsftpd.conf

    FTP Server(服务端)

    [root@youngfit ~]# yum -y install vsftpd
    [root@youngfit ~]# systemctl start vsftpd
    [root@iZwz9f17um10wphrf38ni8Z ~]# cat /etc/redhat-release 
    CentOS Linux release 7.4.1708 (Core) 
    [root@iZwz9f17um10wphrf38ni8Z ~]# touch /var/ftp/test.txt
    [root@iZwz9f17um10wphrf38ni8Z ~]# systemctl start vsftpd
    [root@iZwz9f17um10wphrf38ni8Z ~]# systemctl enable vsftpd
    [root@aliyun ~]# systemctl stop firewalld
    [root@aliyun ~]# setenforce 0
    FTP默认共享目录:/var/ftp

    FTP Clinet(客户端):

    [root@youngfit ~]# yum -y install lftp
    [root@youngfit ~]# vim /etc/hosts
    192.168.62.136	youngfit.com
    [root@youngfit ~]# lftp youngfit.com

    开启上传

    #vim /etc/vsftpd/vsftpd.conf
    27  anon_upload_enable=YES   //上传文件
    31  anon_mkdir_write_enable=YES   //上传目录
    anon_mkdir_write_enable=YES(下载文件)
    chmod -R 777 /var/ftp/pub(注意改权限)

    使用用户登录

    #lftp 172.16.70.251 -u wing
    

    使用用户登录的时候,共享目录默认为用户的家目录

    ftp的工作目录:/etc/vsftpd

    客户端使用:

    登录    
    #lftp  172.16.70.251  
    #lftp  172.16.70.251 -u wing  -p  端口
    > help   mkdir  //单独看mkdir的帮助
    > help ls
    > ls       //查看文件
    > dir     //同上
    > cd  pub
    > lcd  /root/Desktop    //切换本地目录
    > get  文件    -o   /root/Desktop        //下载文件
    > mirror  目录  指定的下载目录           //下载目录
    > put   文件                //上传文件
    > mirror  -R  目录       //上传目录
    > mkdir  目录
    > rmdir   目录
    > mget -c  aaa.txt 
    

    vsftpd扩展功能 常用全局配置

    listen_address=192.168.4.1   //设置监听的IP 地址
    listen_port=21                         //设置监听FTP 服务的端口号
    write_enable=YES                   //是否启用写入权限
    download_enable=YES           //是否允许下载文件
    
    userlist_enable=YES              //是否启用user_list 列表文件
                                                     //文件在/etc/vsftpd目录下
    userlist_deny=YES                 //是否禁用user_list 中的用户
    
    max_clients=0                       //限制并发客户端连接数
    max_per_ip=0                        //限制同一IP 地址的并发连接数
    

    常用的匿名FTP 配置项

    anonymous_enable=YES      //启用匿名访问
    anon_umask=022                //匿名用户所上传文件的权限掩码
    anon_root=/var/ftp               //匿名用户根目录
    anon_upload_enable=YES    //允许上传文件
    anon_mkdir_write_enable=YES     //允许创建目录
    anon_other_write_enable=YES      //开放其他写入权
    anon_max_rate=0                        //限制最大传输速率,单位为字节
    

    常用的本地用户FTP 配置项

    local_enable=YES                         //是否启用本地系统用户
    local_umask=022                         //本地用户所上传文件的权限掩码
    local_root=/var/ftp                        //本地账户ftp根目录
    local_max_rate=0                          //限制最大传输速率(字节/秒)
    
    chroot_local_user=YES                 //限制所有本地用户在家目录里,g0W&�7bf
    
     
    NFS远程共享存储

    systemctl stop firewalld、systemctl disable firewalld

    1.安装软件

    yum -y install rpcbind(提供rpc协议)、yum -y install nfs-utils(主包提供文件系统)

    启动服务------>这两个服务必须同时启用 ​ systemctl start nfs ​ systemctl start rpcbind

    [root@nas ~]# vim /etc/exports /zhengzhou 192.168.122.0/24(rw,no_root_squash) //不限制root(当client端使用root挂载时,也有root权限) 挂载是root ,同样保持root权限 [root@nas ~]# systemctl start nfs-server [root@nas ~]# systemctl enable nfs-server

    客户端:

    [root@web1 ~]# yum -y install nfs-utils httpd [root@web1 ~]# systemctl start httpd [root@web1 ~]# systemctl enable httpd

    1. 手动挂载 [可选] [root@web1 ~]# mount -t nfs 192.168.122.59 :/zhengzhou /qf [root@web1 ~]# umount /qf

    2. 自动挂载到网站主目录 [root@web1 ~]# vim /etc/fstab 192.168.122.59 :/zhengzhou /var/www/html nfs defaults 0 0 [root@web1 ~]# mount -a

    3. 查看挂载 [root@web1 ~]# df nas:/webdata 7923136 692416 6821568 10% /var/www/html [root@web1 ~]# ls /qf index.html

      wget
    [root@youngfit ~]# wget --help |less
    [root@youngfit ~]# wget ftp://10.18.40.100/kvm-manager-centos
    [root@youngfit ~]# wget ftp://10.18.40.100/kvm-manager-centos -P /tmp/ //-P参数 下载到指定路径
    [root@youngfit ~]# wget ftp://10.18.40.100/kvm-manager-centos -O /tmp/a.sh  //-O 参数,下载到指定路径并修改名称
    [root@youngfit ~]# wget -m ftp://zhufo.top/soft //-m 参数,将目录一并下载
    DNS
    一、hosts文件 
    作用: 实现名字解析,主要为本地主机名、集群节点提供快速解析
    数据库: 平面式结构,集中式数据库
    二、域名服务DNS
    作用: 实现名字解析(例如将主机名解析为IP)
    命名空间name space:    用于给互联网上的主机命名的一种机制
    DNS数据库Datebase:     层次化的,分布式的数据库

    DNS解析流程:

    1. 客户端查询自己的缓存(hosts中的记录),如果没有将查询发送/etc/resolv.conf中的DNS服务器
    2. 如果本地DNS服务器对于请求的信息具有权威性,会将(权威答案)发送到客户端。
    3. 否则,如果DNS服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端 
    4. 如果缓存中没有该查询信息,DNS服务器将搜索权威DNS服务器以查找信息:
          a.  从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答案
           DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一份,以备以后查找。
    bind  主包
    bind-utils   客户端测试工具(host 、dig 、nslookup)
    systemctl start named

    工作目录: /etc 存放主配置文件(指定区域配置文件的作用)

    [root@ICan named]# vim /etc/named.conf
    options {
    directory "/var/named";
    };
    zone "qianfeng.com" {
                type master;
                file "qianfeng.com.zone";
    };

    /var/named 区域配置文件(用来作解析,域名对应ip)

    [root@ICan named]# vim /var/named/qianfeng.com.zone 
    $TTL 86400
    @ IN SOA wing.qianfeng.com. root.qianfeng.com (
    			100000000
                 3H
                 15M
                 1W
                 1D)
                        IN NS wing.qianfeng.com.
    wing                    IN A 192.168.14.130 //定义本机ip
    www.qianfeng.com.       IN A 192.168.14.106
    ftp.qianfeng.com.       IN CNAME www.qianfeng.com.
    [root@ICan named]# vim /etc/resolv.conf
    #Generated by NetworkManager
    #nameserver 211.138.24.66
    nameserver 192.168.14.130 //dns服务端为本机ip
    samba

    Linux与Windows间的文件共享,也可以Linux之间。

    客户端:
    #yum -y install samba-client samba samba-common
    #systemctl start smb; #mkdir /test ; #chmod 777 /test 
    #vim /etc/samba/smb.conf
       [test]
       comment = share directory //描述
       path = /test //共享目录
       public = yes //允许访问
       writable = yes //与readonly相反
    #useradd kobe ;#smbpasswd -a kobe;#systemctl restart smb。
    Windows:
    网上邻居-->资源管理—>\192.168.14.23
    linux挂载:
    mount //192.168.14.23/test /mnt -o username=kobe,pass=123


    Wget???
    rpm是已经有的安装包,yum是在下安装的(需要下载,可以自动解决依赖性)(/var/lib/rpm)
    Rpm:安装软件包,-i:安装,-v显示安装信息,-h显示安装过程,一般-ivh同时用,-U升级包,-e:卸载。卸载后直接跟包名。-q查询是否安装。-qa查询所有已安装包。配合管道符|
    -qi查询包详细信息,-p查询未安装包后跟全名。-l安装包位置(绝对路径),-qf反向查询文件是哪个包装的。-V:校验包做了哪些修改。Update 升级,后加包名。
    du -sh +包名:查看包的大小。
    时间戳:date  -d “1970-01-01 16066 days”
    用户模板目录: /etc /skel.可添加警告信息。
    mysql
     yum -y install mariadb mariadb-server
    [root@youngfit ~]# systemctl start mariadb
    [root@youngfit ~]# mysql
    create database jspgou default charset=utf8
    show databases:查看数据库、use 库名:进入库、show tables:看列表、select * from 表名:看表内容、drop database 库名:删库、

     

     

  • 相关阅读:
    微信小程序(三)-事件绑定
    微信小程序(二)-语法学习
    微信小程序(一)-工具创建和结构配置说明 Stable Build
    ============================================ 微信小程序开发学习
    Vue学习笔记-Vue.js-2.X 学习(七)===>脚手架Vue-CLI(路由Router)
    Vue学习笔记-Vue.js-2.X 学习(六)===>脚手架Vue-CLI(项目说明-Babel)
    Vue学习笔记-Vue.js-2.X 学习(五)===>脚手架Vue-CLI(PyCharm)
    linux打包压缩命令汇总
    js中函数之函数名带括号与不带括号的区别
    $_FILES error(笔记)
  • 原文地址:https://www.cnblogs.com/james-23/p/13689829.html
Copyright © 2011-2022 走看看