zoukankan      html  css  js  c++  java
  • Linux

    Linux历史

    #http://liuqingzheng.top/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/01-Linux%E5%8F%91%E5%B1%95%E4%BB%8B%E7%BB%8D/
    
    一 Linux前身
    
        1968年 Multics项目
    
        MIT**、Bell**实验室、美国通用电气有限公司走到了一起,致力于开发Multics项目。到后期由于开发进度不是很好,MIT和Bell实验室相继离开这个项目的开发,最终导致项目搁浅。
    
        1970**年(Unix**元年,时间戳) Unix诞生
    
        当时在开发Multics项目的时候,实验室中有一个开发成员开发了一款游戏(travel space:遨游太空),因为两个实验室相继离开项目开发,导致这名开发人员没法玩游戏,后来他提议组织人员重新在Multics项目之上重新的开发,也就出现了1970年的Unix。当时Unix操作系统是使用的汇编语言(机器语言)开发的。
    
        1973年 用C**语言**重写Unix
    
        因为汇编语言有一个最大的局限性:对于计算机硬件过于依赖。导致移植性不好,所以后期在1973年使用了C语言对其进行重新开发。
    
        1975年 Bell实验室允许大学使用Unix。
    
        1975年,bell实验室允许大学使用Unix操作系统用于教学作用,而不允许用于商业用途。
    
    二 Linux诞生
    
    	作者,Linux之父,李纳斯·托瓦兹。Linux诞生时是荷兰在校大学生。
        
    三 开源文化
    
        Linux是开源的操作系统。所谓开源就是指开放源代码。
    
        自由软件之父 Richard M. Stallman 1984 GNU组织 copyleft opensource free GPL
    
        理查德·马修·斯托曼(Richard Matthew Stallman, RMS),于1953年出生,自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者、著名黑客
    
        copyleft: 代表无版权。copyright: 则代表有版权。
                
        opensource free: 源代码开放、软件谁都可以使用、谁都可以传播、谁都可以二次开发,使用GPL协议保护
            
        GPL: 通用版权许可证协议,如果软件被打上GPL,那么任何人都可以对这个软件进行修改,但是修改完之后必须将源码发布出来,以便更好的传承下去。(那Linux中的软件百分之80都是GPL提供)*
    
        Linux内核使用GPL协议发布,内核也是开源,有了内核的加入,整个GNU的系统更加的完善。其实Linux完整叫法应该叫GNU/Linux,GNU的软件加上Linux内核。
    
        1983**年 GNU**计划
    
        1985年 FSF基金会
    
        1990年 Emacs、GCC(c语言的编译器)、程序库
    
        1991年 Stallman去找Linus,商谈让Linux加入其开源计划(GNU计划)
    
        1992年 GNU/Linux
    
    四 Linux系统特点
    
        开放性(开源)、多用户、多任务、良好的用户界面、优异的性能与稳定性
    
        多用户多任务:
    
        单用户:一个用户,在登录计算机(操作系统),只能允许同时登录一个用户;
    
        单任务:一个任务,允许用户同时进行的操作任务数量;
    
        多用户:多个用户,在登录计算机(操作系统),允许同时登录多个用户进行操作;
    
        多任务:多个任务,允许用户同时进行多个操作任务;
    
        Windows**属于:单用户、多任务。**
    
        Linux**属于:多用户、多任务。**
    
    五 Linux分支
    
        我们现在说的Linux其实都是指的是发行版(Distribution version),就是使用Linux内核加上各种GNU的库文件、应用程序,构造而成的操作系统。Linux发行版介绍RHEL/Centos/Ubuntu/Suse
        
        Redhat 1993年,将Linux的内核进行编译安装相应软件进行发行。
        
        CentOS 社区企业级操作系统, 改与Redhat, 完全开源。
        
        Ubuntu 社区维护, 现在主要做手机系统和电脑桌面系统。
    

    Linux安装

    安装

    #了解
        虚拟化技术:kvm,vmware,openstack,docker,k8s
        iaas,paas,saas
        openstack:iaas
        docker:paas
        k8s:容器编排,管理容器,不同机器上的容器
    
    #安装VMware
    
    #网络模式NAR、桥接、仅主机
    	桥接:虚拟机和宿主机属于同一个网段
        NAT:网络地址转换,
        
    # 快照:相当于存档  
    
    #安装centos7.6
    # DHCP :
        DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置
        # dns:可以把域名地址转换成ip地址
        # 主机名:生产环境,要有意义  地址+楼层+房间号+业务
        # swap分区:交换分区
        # 关于分区
        linux 分区结构为树结构, windows 为森林结构,所以有C盘D盘之类的, 而linux /分区就是根分区, swap可以理解为虚拟内存, /boot 这是个目录, 可以分成一个分区,然后挂载到/boot目录, 也可以只用一个/分区, 里面会有boot目录的,保存的是引导文件,内核等等的东东
        
    ######安装
    http://liuqingzheng.top/linux/%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/02-Linux%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85/
    
    # 重启网卡	systemctl restart network
    
    #centos7查看ip地址	ip addr
    
    

    Xshell安装、连接linux

    #官网下载Xshell6,安装无脑下一步	https://www.xshellcn.com/xiazai.html
    
    #连接有手就行
    
    

    Bash Shell

    介绍

    #介绍
    	是一个命令解释器,就是一个软件  执行就是bash,可以在里面输入命令,做交互,exit退出
        
    #能干什么
        原来在windows上点点点完成的是,它都能做到
    
        使用Shell对Linux系统管理
        1.文件管理(文件创建,移动,复制,删除,编辑…)
        2.权限管理(不同用户不通权限)
        3.用户管理(创建,删除….)
        4.磁盘管理(挂载)
        5.网络管理
        6.软件管理
        等等
        
    #如何使用
        1 输入命令,低效
        2 shell script:shell脚本  ,批量执行命令(shell脚本能做的python脚本都能做)
    

    shell提示符

    [root@lqz ~]#
    
        root:当前用户
        
        @ :没有意义
        
        lqz:主机名
        
        ~:家目录
        
        #:表示超级用户
        
        [lqz@lqz ~]$ 	#普通用户
    

    Shell基础语法

    #由 命令  选项  参数   三部分组成
        ls   -a  /temp      
        ls   --all
    # 以下三个一样
        ls -l -a
        ls -la
        ls -al
    

    命令补全

    # 一下或者两下tab建
    
    # 一下的话会直接找到你要用的命令
    
    # 两下,可能会用到的全列出来
    
    # ifconfig 在7的版本没有,需要装软件
        yum install net-tools -y
        yum install net-tools
    
    # yum install bash-completion -y   补齐选项
    	ls - 两下tab建,所有的选项都会提示出来
        
    

    命令快捷键

    #*代表重要
    Ctrl + a    #光标跳转至正在输入的命令行的首部	*
    
    Ctrl + e    #光标跳转至正在输入的命令行的尾部
    
    Ctrl + c    #终止前台运行的程序   ##################	*
    
    Ctrl + d    #在shell中,ctrl-d表示推出当前shell。
    
    Ctrl + z    #将任务暂停,挂至后台
    
    Ctrl + l    #清屏,和clear命令等效。  ##############	*
    
    Ctrl + k    #删除从光标到行末的所有字符
    
    Ctrl + u    #删除从光标到行首的所有字符
    
    Ctrl + r    #搜索历史命令, 利用关键字,Tab建选中,只能找到最近的一条
    
    Ctrl + w    #按单词或空格进行向前删除
    
    Ctrl + 左右建 #按单词或空格进行向前向后跳
    
    #在命令行前加面加 "#" 则该命令不会被执行
    

    history

    history查看历史命令
    
    !数字   快速执行数字那一条命令
    
    !yum    快速执行最近一条yum命令
    
    history -d 70  把历史记录的第70行删除
    
    history -c   清空所有记录(连到人家服务器,操作完了,执行一下)
    
    history -w   可以把 历史记录写到用户家路径的.bash_history文件中
    

    命令别名

    1 设置别名
    	alias www='ls /'  只在当前bashshell中生效
    
    2 永久生效(全局,局部),写到文件/etc/bashrc去
    	echo "alias wk='ifconfig'" >> /etc/bashrc
        
    3 unalias wk 	#取消别名 
    
    4 如果已经写到配置文件中,取消别名unalias wk+去配置文件删除
    
    5 内置的别名:在环境变量的配置文件中放着
    	alias ls
        
    6 /bin/ls -al /root   # ls 内置了别名
    
    7 命令 --help
    
    8 man ls    #查看ls命令的手册
    

    目录介绍

    1 linux 是单根 / 根路径,windows是多根,c盘、d盘等等
    
    2 bin普通用户命令,sbin是超级用户命令  都是usr下的文件夹软链接到根路径
    
    3 home普通用户的家路径,home下的用户名的文件夹
    	-用户一登录系统,是在自己的家路径 jack--》/home/jack
    

    usr目录

    /usr,相当于C:Windows
        
    /usr/local,软件安装的目录,相当于C:Program
        
    /usr/bin/,普通用户使用的应用程序(重要)
    
    /usr/sbin,管理员使用的应用程序(重要)
    
    /usr/lib,库文件Glibc 32bit
    
    /usr/lib64,库文件Glibc 64bit
    
    命令1 df -h  # 查看系统中文件的使用情况
    
    命令2 du -sh /usr/  #查看当前目录下各个文件及目录占用空间大小
    
    # 补充:远程执行ssh命令:
        ansiable:python写的,批量执行命令(速度比较慢,大量的主机,会卡顿)
        salstack:在客户端装agent,
        zabbix:监控,php写的,监控mysql运行情况
    
    /boot	存放系统启动相关的文件,例如:kernel,grub(引导装载程序)
    

    etc目录

    /etc,极其重要,后续所有服务的配置都在这个目录中
    
    /etc/sysconfig/network-script/ifcfg-,网络配置文件
    
    /etc/hostname	系统主机名配置文件,主机名很重要,有些特殊服务要依赖主机名,没有主机名会报错起不来;修改了要重启:reboot
    
    /etc/resolv.conf  	dns客户端配置文件,域名解析服务器,一般我们不配置,因为网卡的配置好了,会覆盖掉它,网卡的优先级高
    
    /etc/hosts	本地域名解析配置文件,域名解析,先找自己的hosts,再去域名解析
    

    dev目录

    命令1 cat /var/log/secure #查看用户登陆时间
    
    /dev,存放设备文件,比如硬盘,硬盘分区,光驱,等等
    
    /dev/sd 硬盘设备
    
    /dev/null,黑洞设备,只进不出,类似于垃圾回收站
    
    /dev/random,生成随机数的设备
    
    /dev/zero,能远远不断的产生数据,类似于取款机,随时随地取钱
    

    proc目录

    /proc	反映系统当前进程的实时状态 :process
    
    1 media:提供设备的挂载点,媒体文件
    # linux 新增了盘符,需要手动挂载
    # 把光盘里的数据,挂载到media目录
    mount  /dev/cdrom /media/
    
    2 mnt:提供设备的挂载点(同上)
    
    3 opt:第三方工具,第三方软件默认安装的(mysql...)
    
    4 run:  下有pid,log结尾的文件
    ls /run
    cat sshd.pid  # 进程运行的pid号,放在文件中
    ps aux |grep sshd	
    kill -s 9 pid	根据pid结束进程
    
    .lock文件的作用,锁机制
    # 假设现在执行
    yum install tree
    # 再开一个窗口执行相同命令,就会报错,
    
    cat /run/yum.pid
    

    路径定位

    1 .相对路径,是当前,..是上一级
    
    2 坑:带斜杠和不带斜杠
        cd /usr # 根路径下的usr
        cd usr  # 当前路径下的usr
        
    3 执行当前路径下的某个文件
    	./xx linux
        xx   windows
    
    4 ~当前用户的家路径
    	root   /root   	
        jack  /home/jack
    

    mkdir touch rm mv

    选项:-v 显示详细信息  -p 递归创建目录
    
        mkdir dir1
    
        mkdir /home/od/dir1 /home/od/dir2
    
        mkdir -v /home/od/{dir3,dir4}  
    
        mkdir -pv /home/od/dir5/dir6
    
        mkdir -pv /home/{od/{diu,but},boy}
    
        touch file                    #无则创建,有则修改创建时间
    
        touch file2 file3
    
        touch /home/od/file4 file5
    
        touch file{a,b,c}             #{}集合,等价 touch a b c
    
        touch file{1..10}
    
        touch file{a..z}
    
    
    选项:-r: 递归 -f: 强制删除 -v: 详细过程
        rm  file.txt      #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
        rm -f file.txt    #删除文件, 不提醒
        rm -r dir/        #递归删除目录,会提示
        rm -rf dir/       #强制删除目录,不提醒(慎用)
    
    
        1.rm删除示例
             mkdir /home/dir10
             touch /home/dir10/{file2,file3,.file4}
             rm -f /home/dir10/  //不包括隐藏文件 
             ls /home/dir10/ -a
            . .. .file4
    
    
        2.rm删除示例2
             touch file{1..10}
             touch {1..10}.pdf
             rm -rf file 
             rm -rf .pdf
             rm -f file*
             rm -f *.txt
    
    
    mv file file1             #原地移动算改名
    
    mv file1 /tmp/            #移动文件至tmp目录:不一样mv file1 tmp 
    
    mv /tmp/file1 ./          #移动tmp目录的文件至当前目录
    
    mv dir/ /tmp/             #移动目录至/tmp目录下
    
    touch file{1..3}		创建文件file1-file3,无则创建,有则改创建时间
    
    mv file1 file2 file3 /opt/    #移动多个文件或至同一个目录
    
    mkdir dir{1..3}			创建文件file1-file3,无则创建
    
    mv dir1/ dir2/ dir3/ /opt     #移动多个目录至同一个目录
    

    cp(copy)

    选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性
                
    cp file /tmp/file_copy
    
    cp name /tmp/name1         #修改名称
    
    cp file /tmp/             #不修改名称
    
    cp -p file /tmp/file_p    #-p保持原文件或目录的属性
    
    cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
    
    cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
    
    cp -rv /etc/{hosts,hosts.bak}
    
    cp -rv /etc/hosts{,-org}
    

    常用命令

    1 tree /home/  树状形式显示 yum install tree
    
    2 cat :查看文本内容
        cat >> test2.txt <<EOF
        > ads
        > adf
        > EOF
        
    3 less,more:文本查看,分页
    	less /etc/services
        
    4 head -n1 /etc/services :查看该文件第一行
    
    5 ps aux | head -n5 :查看前5个进程
        
    6 tail -f /var/log/messages   :动态查看文件尾部的变化
    
    7 grep:查找命令
    	-grep "lqz" test2.txt   查找文件中有lqz的行
        -ps aux | grep ssh    查看sshd进程是否在运行
        
    8 less打开文件:ctrl+b:下翻页   	ctrl+f:上翻页
    
    9 wget:下载yum install wget
    	wget 路径  默认下载在当前路径
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
            
    10 curl:连通性
    	你的django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组
    	curl -o /home/a.png https:72743-20190.png
            
    11 上传下载 (4g以内)
    	yum install lrzsz -y
        rz:上传,选择文件直接上传
        sz:sz 文件路径  可以下载到当前主机
        
    12 which 命令:
    去/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 路径找有没有
                    
    13 whereis -b ls  查找ls命令,只找二进制(可执行文件)
    
    14 sort
    	sort file.txt  对内容进行排序
        sort -t ":" -k2 file.txt
        sort -t ":" -n -k2 file.txt
        
    15 uniq 去重,连续挨着的才能去,所以要跟sort连用
    	sort file2.txt | uniq
        
    16 cut 
        Im lqz, is QQ 306334678
        cut -d " " -f2,5 file.txt #把字符串按“ ” 分割,取出第2和第5个
        
    17 wc
        wc -l /etc/services 
        ls | wc -l # 统计当前路径下有多少文件和文件夹
        ps aux |grep ssh | wc -l # 统计有多少个ssh相关的进程
    

    文件属性文件类型

    ls -l
    
    ls -lh  以人性化显示,kb,gb
    
    -:文件类型     
        rw-r--r--.:权限 
        1:硬链接的
        root:属主(属于哪个用户)
        root:属组(属于哪个组)
        43856 :大小
        Aug 19 11:54 :修改时间
        a.png:文件名字
    
    文件类型:
    -   #普通文件(文本, 二进制, 压缩, 图片, 日志等) 
    
    d   #目录文件
    
    b   #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
    
    c   #设备文件(字符设备),终端 /dev/tty1, /dev/zero
    
    s   #套接字文件, 进程间通信(socket)
    
    p   #管道文件
    
    l   #链接文件
    
    通过file来查看详细的类型
      file a.txt 
      file /bin/ls
            
    

    软链接、硬链接

    1 软链接和硬链接:软链接新建inode,硬链接指向同一个inode
    
    2 软链接---》快捷方式
    	-ln -s a.png /home/jack/a.png
    	-一般咱们对可执行文件建立软链接(删除不会删除原来)
        -软链接目录: 
        	redis-3.2.1---->编译安装
            redis-3.2.1/bin  路径配到环境变量
            软件升级
            redis-4.2.1
            
            
            -建立软链接redis---》redis-3.2.1
            redis/bin  路径配到环境变量
            软件升级
            redis软链接到---》redis-4.2.1
            
    3 ln  /root/file /tmp/file_hard  (了解)
    
    

    Vim

    # yum install vim -y
    
    # 普通模式、编辑模式、命令模式
    
    # 普通模式:
    	-上下翻
        -yy 复制一行
        -p   粘贴
        -dd  剪切
        -p   把上面剪切的粘贴上
        
    # 编辑模式
    	-i:insert插入
        -a:append追加
        -o:换行
        -正常写就可以了
        -esc回到普通模式
        
    # 命令模式:
    	-不能从编辑模式直接进,只能先到普通模式按 :  进入命令,退出命令模式esc
         -w  表示保存
         -q   退出
         -!  强制退出
         -修改了文件后保存:  wq    wq!
         -修改了不想保存退出: q     q!
         -:set nu 显示行号
         -:set nonu 不显示行号
         -/字符串    搜索这个字符串
         -:%s#sbin#test#g #替换整个文本文件中包含sbin的替换为test
    

    用户相关

    #1  id  查看当前用户信息
    uid=0(root) gid=0(root) groups=0(root)
    
    #2  用户信息保存在 cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
                            
    #3  密码存放路径 cat /etc/shadow
    
    #4 约定不同用户的uid属于某个范围(了解)
    
    # 5 用户的增,删,改
    	-useradd(一个用户只能属于一个主组,属于多个附加组)
        	-groupadd sa  新增一个组
            -groupadd sa1  新增一个组
            -groupadd students 新增一个组
            -useradd -u 5001 -g students -G sa,sa1 -c "2020 new student" -s /bin/bash lqz1
        -创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统 
           useradd mysql -M -s /sbin/nologin
        -usermod
        	-usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx
            -usermod -L change_bgx  #锁定后会无法登陆系统
            -usermod -U change_bgx
        -userdel
        	-userdel egon  # 删除用户,不删家目录
            -userdel -r egon1 # 删除用户,删家目录
            
    #6  改密码
    	-passwd root
        
    #7 组增删改
    	-groupadd no_gid   新增组
        -groupmod -g 1111 student  改组id号
        -groupmod student -n new_student  改组名字
        -groupdel new_student   删除组(组下没有人,把人删除,再删)
     
    # 8 su 和sudo
    	-su 切换用户
        	-su - jack:打开新的shell,会加载自己的环境变量
            -su jack:不打开新的shell,不会加载它的环境变量
        -sudo 普通用户可以有一些超级用户的权限,不需要输入密码
        	usermod jack -G wheel  # 把jack用户加入到了wheel组
            -你这个用户没有权限,你尝试 sudo mkdir ll试一下,不行,超级管理员没有给你配这个权限
    

    特殊权限:权限属性

    #选项: + 增加权限 -减少权限 =等于某个权限
    
    # a:让文件或目录仅可追加内容
    
    # i:不得任意更动文件或目录
    
    # 给某个文件或者文件夹加特殊权限
    	-chattr +i lqz.text
        -chattr -i lqz.text
    

    压缩解压

    #1  Windows的压缩包与Linux的压缩包能否互通
    	windwods:rar,zip  
        linux:tar.gz,zip互通,不支持rar
        
    # 2 gzip (只能压一个文件,不能压文件夹,会把原来的删除)
    	-gzip file
        -gzip -d file
        -有什么用?
       	-cd /etc/yum.repos.d/
        
    #3 zip的压缩和解压
    	-yum install zip unzip -y
        -zip  filename.zip  filename  # 压单个文件
        -zip -r home.zip /home/   #把home文件夹压缩
        -unzip  home.zip   #解压
        -unzip -l  home.zip # 不解压,看内容
        -unzip home.zip  -d /opt/   # 把当前路径下的home.zip 解压到opt
        
     # 4 tar打包与压缩
    	-tar -czf 文件        ---》tar.gz
        -tar -xf  xx.tar.gz  --->解压xx.tar.gz
       
        tar -xzvf  xx.tar.gz :解压tar.gz,详细过程列出来
       
        -tar -czf home.tar.gz dd/ lqz1 lqz2 /home/
        
        -tar czf etc.tar.gz --exclude=etc/services etc/  # 排除文件
        -tar xf /etc/local.tar.gz  -C /tmp  # -C指定解压到哪个路径
    
    

    软件管理:rpm

    #1  红帽的软件安装包(windows的:exe,mis)
    
    #2  mount /dev/cdrom /mnt 把光盘挂在到 /mnt文件夹
    
    #3  Linux中除了rpm安装软件,是否还有安装软件方式
    	-源码安装-->官网下源码--》编译安装---》最新
        -rpm包,预先编译打包,安装简单,yum安装,本质就是rmp安装--》稍微老一些
        -二进制包:绿色包
        
        -安装rpm的软件:rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
        -强制安装:rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
        
        -rpm -q :查看这个软件是否安装********
        -rpm -qa |grep tr  :列出所有安装的软件
        -rpm -ql :查询指定软件包所安装的目录、文件列表rpm -ql unzip *****
        -rpm -qc unzip:查看这个软件的配置文件位置
        -rpm -qf /etc/pam.d/vsftpd  :查看配置文件属于哪个软件
        -rpm -qlp trace-cmd-2.6.0-10.el7.x86_64.rpm :查看该软件包安装后会释放哪些文件
        
        -使用远程地址安装:rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.8-2.el7.x86_64.rpm
            
        -rpm -Uivh  升级软件需要用  U
        -rpm -e zabbix-agent 
    

    yum仓库,源

    # 1 Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装
    
    # 2 cd /etc/yum.repos.d/  路径下有xx.repo 文件---》yum源
    
    # 3 换阿里云的源
    	wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
            
    # 4 配置其他源
    	-wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    	-yum install nginx 
        
        -yum provides ipconfig  # 通过命令查软件,这个命令属于哪个软件
    
       	-rpm -qf `which ifconfig` # 查命令属于哪个软件,前提是该软件安装了
    

    补充

    # psutils
    # django channels
    # websocket:https://www.cnblogs.com/liuqingzheng/p/10151572.html
    
    # paramiko
    import paramiko
    
    # 
    
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname='10.0.0.100', port=22, username='root', password='123')
    
    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('yum install vim -y')
    # 获取命令结果
    result = stdout.read()
    print(result.decode('utf-8'))
    # 关闭连接
    ssh.close()
    

    基本权限chmod

    1 rwx                 r-x       r-x
      属主(文件所有者)      属组权限    其他人权限
        
    2 权限详解
        r:read写权限
        w: write写权限
        x:可执行
            
    3 修改权限
    	7=4(r)+2(w)+1(x)
    	chmod 777 文件夹/文件
    

    软件管理之二进制安装

    1 会了yum安装,为什么还要会二进制安装(编译安装)
    	-官方不提供yum安装
        -二进制安装是最新的
        
    2 向服务器传递文件的几种方式 
    	-scp nginx-1.18.0.tar.gz root@101.133.225.166:/home/jack 
        -sz,rz
        -xftp软件来传
        
        
    3 源码安装nginx
    	-1 下载
        -2 解压
        -2.1 安装依赖
        	-yum install -y pcre-devel gcc gcc-c++ make zlib-devel openssl-devel
        -3 通过configure 生成配置信息,配置相关的选项,并生成Makefile,软件安装的信息
        	./configure --prefix=/usr/local/nginx
        -4 make 按照Makefile生成的安装软件
        -5 make install:将二进制文件拷贝至对应的目录中
        -6 目录介绍
        	conf :配置文件都放在这
            html :静态文件存放路径,index.html
            logs :日志
            sbin :可执行文件
        -7 命令介绍
            nginx  # 启动
            nginx -s reload # 重新加载,修改配置文件
            nginx -s restart  # 重启
            nginx -s stop # 停止
        -8 在任意路径敲nginx都能执行
        	-建立软链接  ln -s /usr/loacl/nginx/sbin/nginx /sbin/nginx
            -把/usr/loacl/nginx/sbin/路径加入环境变量
            -想使用systemctl 管理(制作系统服务)
    

    进程管理

    #1  ps -aux 用它,[系统进程]
    
    #2  ps -ef
    
    #3  ps -aux|grep id,进程名字,
    
    # 4 top实时看状态
    
    # 5 kill -l
    
    # 6 kill -9 进程id号 强行关闭
    
    # 7 pkill -9 nginx  关闭nginx所有进程
    
    # 8 killall nginx   关闭nginx所有进程
    
    
    # 通过来管理进程screen
    yum install screen -y
    创建一个窗口
    screen -S myjobs
    执行耗时任务,进程
    ctrl+a+d  退出当前bashshell但是耗时任务还在后台运行
    screen -r myjobs 调到前台执行
    screen -list  查看所有任务
    
    

    系统服务

    #1  centos6 上启动服务service start network
    
    #2  centos7 启动服务:systemctl start network
    
    #3  cd /usr/lib/systemd/system/
    
    ###制作系统服务
    
    #4 vim mynginx.service
    
    [Unit]
    Description=my nginx
    After=network.target  #在哪个服务启动后启动
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    ExecRestart=/usr/local/nginx/sbin/nginx -s restart
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    [Install]
    WantedBy=multi-user.target
    
    # 以后就支持使用 systemctl start mynginx.service
    
    # 查看服务状态:
    	systemctl status mynginx.service
        # disabled表示没有开机自启动
        Loaded: loaded (/usr/lib/systemd/system/mynginx.service; disabled; vendor preset: disabled)
    # 开机自启动
    	systemctl enable mynginx
    # 取消开机自启动
    systemctl disable mynginx.service
    
  • 相关阅读:
    asterisk 使用 g729 g723
    读书笔记《一线架构师》
    能和LoadRunner匹敌的VS2010/2012Web负载测试
    总结 设计模式,企业应用架构模式,架构模式
    聊聊Memcached的应用
    WPF小试牛刀
    读书笔记《Hadoop开源云计算平台》
    高性能与可扩展
    闲聊下架构、框架,以及架构师...
    自己写框架 实践 (Event Framework)
  • 原文地址:https://www.cnblogs.com/linqiaobao/p/13836144.html
Copyright © 2011-2022 走看看