• Linux基础知识


    虚拟机Vmware,CentOS7,Xshell安装

    详情博客:https://www.cnblogs.com/pyyu/articles/9313587.html

    Vmware官网下载地址:用来挂在linux的虚拟机

    CentOS7镜像下载地址:https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso

    Xshell: 一款用来远程连接服务器的软件

    在远程连接之前的准备:

      - 配置Linux的网络设置,这里使用nat模式

        - 详情:https://www.cnblogs.com/pyyu/p/9739956.html

      - 关闭防火墙

        systemctl stop firewalld           关闭防火墙服务/软件

        systemctl disable firewalld      永久关闭防火墙,关闭开机自启

        iptables -L          查看防火墙的规则

        iptables -F          清空防火墙规则

      - 关闭selinux:

        临时关闭:setenforce 0

        永久关闭:设置/etc/selinux/config 文件中的 SELINUX=enforcing 改为:SELINUX=disabled

          或者: sed -i 's/enforcing/disabled/' /etc/selinux/config

      - 修改配置文件

        - vim /etc/sysconfig/network-scripts/ifcfg-ens33

    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=10.0.0.10
    NETMASK=255.255.255.0
    GATEWAY=10.0.0.254
    DNS1=119.29.29.29

    - 修改了配置文件,重启网络服务
      /etc/init.d/network restart

    - ping baidu.com  #检测网络是否通信

    - 远程连接服务器
      - 通过xshell连接,其实也是封装了 ssh root@10.0.0.10 命令
      - 执行命令 ssh root@10.0.0.10

    文档目录结构

    在Linux中一切皆文件,Linux中所有的文件都是从根目录开始,每一个目录不止能使用本地的文件系统,也可以使用网络上的文件系统,可以利用NFS服务器挂载特定目录。每一个文件在此目录树中的文件名,包含完整路径都是独一无二的。

    配置文件以及目录结构其他补充连接:https://www.cnblogs.com/Fushengliangnian/articles/9816966.html

    目录树架构:

    目录的解释:

    • /bin
      bin是Binary的缩写, 这个目录存放着最经常使用的命令。

    • /boot:
      这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /dev :
      dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    • /etc:
      这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /home
      用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /lib
      这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

    • /lost+found
      这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    • /media
      linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

    • /mnt
      系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    • /opt
       这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /proc
      这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
      这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    • /root
      该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin
      s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    • /selinux
       这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    • /srv
       该目录存放一些服务启动之后需要提取的数据。

    • /sys
       这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

      sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

      该文件系统是内核设备树的一个直观反映。

      当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

    • /tmp
      这个目录是用来存放一些临时文件的。

    • /usr
       这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    • /usr/bin:
      系统用户使用的应用程序。

    • /usr/sbin:
      超级用户使用的比较高级的管理程序和系统守护程序。

    • /usr/src:内核源代码默认的放置目录。

    • /var
      这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

    /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

    /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

    值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

    /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

    基础指令

     详细指令:https://www.cnblogs.com/pyyu/articles/9314206.html

    - 快捷键:

    1.tab键    用于自动补全命令/文件名/目录名
    2.ctrl + l  清理终端显示 
    3.clear/cls  清理终端显示
    4.ctrl + c 终止当前操作

    - 特殊符号:

      - >      重定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾

      - >>    追加重定向,把文字追加到文件的结尾

      - *      通配符 ,往往用于查找文件等等操作

    - 路径切换: cd

      - cd /    : 切换到根目录

      - cd ~   : 切换到用户家目录

      - cd -    : 切换到上次停留的目录

      - cd 想去的文件的绝对路径或相对路径    :切换过去。

    - 文件夹操作指令:

      - 查看文件: 

        - ls :查看当前工作目录下的文件

          - ls 文件路径 : 查看文件路径下的文件

        - ll  :按照列表的形式查看当前工作目录下的文件

        - pwd :打印当前工作目录

      - 增加文件夹:

        - mkdir 文件路径: 在该路径下创建文件

          - mkdir -p 文件路径: 递归创建文件

            mkdir -p /tmp/myfile/myfile/{first,two,three}   在/tmp下创建myfile/myfile文件,并且在里面在创建   first,two,three三个同级文件。

      - 删除空文件夹:

        - rmdir 文件路径: 删除该空文件夹

        

    - 文件操作指令:

      - 查看文件内容:

        - cat 用于查看纯文本文件(常用于内容较少的)

        - more 用于查看内容较多的文本, 查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容

        - 加上参数 n 用于显示行号

      - 创建文件: touch 文件名

        - touch -d "23:00" test.py    修改文件时间戳。

      - 编辑文件内容: 利用vi/vim 指令

      - 删除文件:rm

        - rm -rf 文件路径:

          -rf 参数为:强制删除

        ps: 注意在使用该命令前最好利用虚拟机的快照功能,保存一下当前服务器的状态。

    - vim 编辑器:

      - 命令模式:

        - 启用vi/vim 后默认进入的是命令模式

        - 移动光标的命令:

    w(e)  移动光标到下一个单词
    b    移动到光标上一个单词
    
    数字0  移动到本行开头
    $    移动光标到本行结尾
    
    H    移动光标到屏幕首行
    M    移动到光标到屏幕的中间一行
    L    移动光标到屏幕的尾行
    gg    移动光标到文档的首行
    G    移动光标到文档尾行
    
    ctrl + f  下一页
    ctrl + b  上一页
    
    `.  移动光标到上一次的修改行

          - 查找相关的命令:

    /chaoge     在整篇文档中搜索chaoge字符串,向下查找
    ?chaoge     在整篇文档中搜索chaoge字符串,向上查找
    
    *        查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
    #        查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
    
    gd        找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上
    
    %    找到括号的另一半!!

          - 文本操作的命令(复制,粘贴,删除):

    yy    拷贝光标所在行
    dd    删除光标所在行
    D     删除当前光标到行尾的内容
    dG    删除当前行到文档尾部的内容
    p     粘贴yy所复制的内容
    x   删除光标所在的字符
    u     撤销上一步的操作

          - 数字与命令相结合:

    3yy    拷贝光标所在的3行
    5dd    删除光标所在5行

      - 输入模式:

        i  :在光标当前位置进行编辑

        o :在光标下一行进行编辑

      - 底线命令模式:

        - 在命令模式下输入冒号(英文的:),就进入了底线命令模式,在底线命令模式下可以输入单个或多个字符的命令,常用命令有:

        - :q!    强制退出

        - :wq!   强制写入并退出

        - :set nu  显示行号

        - :数字   调到数字那行

        - esc按键  退出底线命令模式

    进阶命令

    - Linux查询手册:

    http://linux.51yip.com/
    http://man.linuxde.net/
    Linux命令查询手册
    Linux终端下  esc  + .  可以获取上次文件名

    - echo命令: 用于在终端输出字符串或变量提取后的值,格式是“echo 字符串/$变量

      - 还可快速在文件中添加字符串: echo "xxx" > 文件路径    将"xxx"覆盖到该路径下的文件中    >> 是追加

    - find命令:用于查找某文件的路径

    find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
    find /tmp/ -type f  -name "oldboy.py"
    
    #找出/tmp所有以 .txt 结尾的文件
    find /tmp/ -type f -name "*.txt"
    
    #找到/etc下所有名字以host开头的文件
    find /etc -name 'host*'
    
    #找到/opt上一个名为settings.py
    find /opt -name 'settings.py'

    - cp命令 

    #移动xxx.py到/tmp目录下
    cp xxx.py /tmp/
    #移动xxx.py顺便改名为chaoge.py
    cp xxx.py /tmp/chaoge.py
    
    Linux下面很多命令,一般没有办法直接处理文件夹,因此需要加上(参数) 
    cp -r 递归,复制目录以及目录的子孙后代
    cp -p 复制文件,同时保持文件属性不变
    cp -a 相当于-pdr
    #递归复制test文件夹,为test2
    cp -r test test2
    
    cp是个好命令,操作文件前,先备份
    cp main.py main.py.bak

    - 管道命令: |      管道符“|”将两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入;

    常见用法:
    #检查python程序是否启动
    ps -ef|grep "python"
    
    #找到/tmp目录下所有txt文件
    ls /tmp|grep '.txt'
    
    #检查nginx的端口是否存活
    netstat -tunlp |grep nginx

    - grep命令:(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    语法:
    grep [参数] [--color=auto] [字符串] filename
    参数详解:
    -i : 忽略大小写
    -n : 输出行号
    -v : 反向选择
    --color = auto : 给关键词部分添加颜色
    
    grep "我要找什么" /tmp/oldboy.txt
    #排除 -v,排除我要找的东西
    grep -v "我要找什么 /tmp/oldboy.txt
    
    
    示例:
    // 找出/etc/passwd下root用户所在行,以及行号,显示颜色
    cat /etc/passwd |grep '^root' --color=auto -n
    
    // 找出/etc/passwd所有不允许登录的用户
    grep /sbin/nologin /etc/passwd
    
    //找到/etc/passwd的所有与mysql有关行,行号
    cat /etc/passwd |grep 'mysql' -n

    - head、tail命令

    head显示文件前几行,默认前10行
    tail显示文件后几行,默认后10行
    #查看前两行
    head -2 /tmp/oldboy.txt
    #查看后两行
    tail -2 /tmp/oldboy.txt
    
    // 在主屏幕上持续打印log日志
    #持续刷新显示
    tail -f xx.log
    
    #显示文件10-30行
    head -30 /tmp/oldboy.txt |tail -21

    - sed命令

      sed命令详解:详细补充连接:https://www.cnblogs.com/Fushengliangnian/articles/9816976.html

      - 简介:

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。
    处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),
    接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
    接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。
    Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    - du命令:用于显示目录或文件的大小。

    用法:
    du 【参数】【文件或目录】
    -s 显示总计 -h 以k,M,G为单位显示,可读性强

    示例:
    显示目录或文件所占空间
    #什么都不跟,代表显示当前目录所有文件大小
    du   
    
    #显示/home的总大小
    du -sh /home

    - top命令:用于动态地监视进程活动与系统负载等信息

    统计信息区的图片信息的解析:

    第一行 (uptime)
    系统时间 主机运行时间 用户连接数(who) 系统1,5,15分钟的平均负载
    第二行:进程信息
    进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数
    第三行:cpu信息
    1.5 us:用户空间所占CPU百分比
    0.9 sy:内核空间占用CPU百分比
    0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
    97.5 id:空闲CPU百分比
    0.2 wa:等待输入输出的CPU时间百分比
    0.0 hi:硬件CPU中断占用百分比
    0.0 si:软中断占用百分比
    0.0 st:虚拟机占用百分比
    第四行:内存信息(与第五行的信息类似与free命令)
    
    8053444 total:物理内存总量
    7779224 used:已使用的内存总量
    274220 free:空闲的内存总量(free+used=total)
    359212 buffers:用作内核缓存的内存量
    第五行:swap信息
    8265724 total:交换分区总量
    33840 used:已使用的交换分区总量
    8231884 free:空闲交换区总量
    4358088 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
    View Code

    - which命令:用于查找文件。会在环境变量$PATH设置的目录里查找符合条件的文件。

    语法:
    
    which 【参数】【文件】
    
    
    参数:
    
    -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
    -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
    -w  指定输出时栏位的宽度。
    -V  显示版本信息。
    
    
    实例:
    
    which python       #python命令在哪
    /usr/bin/python    #命令文件绝对路径

    - alias命令:用于替换某些命令的实际用处;实际就是给某些指令重新命名,让其指向别的用处。

    #查看系统别名
    alias
    默认别名
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    
    别名作用是:
    
    我们在linux中使用cp时候相当于执行了cp -i
    -i:删除已有文件或目录之前先询问用户;
    
    #别名用比较危险的操作,防止你犯错 

    示例:为rm设置别名:

    #让系统显示 do not use rm
    echo do not use rm
    #设置rm别名
    alias rm='echo do not use rm'
    #设置别名永久生效,写入到/etc/profile(针对登录用户的合同,设置环境变量)
    vim /etc/profile #编辑文件
    G  快速到达最后一行
    o  当前行下一行,创建一个新行,进入编辑模式
    source /etc/profile #读取文件(合同生效)
    ---------------
    #取消别名
    unalias rm

    - wget命令 :用于在终端上下载网络文件

    用法:
    wget命令用于在终端下载网络文件
    参数是 wget [参数] 下载地址
    
    
    示例:
    wget -r -p http://www.luffycity.com#递归下载路飞所有资源,保存到www.luffycity.com文件中

    - seq命令: 用于产生从某个数到另外一个数之间的所有整数。

    - 语法

    seq [选项]... 尾数
    seq [选项]... 首数 尾数
    seq [选项]... 首数 增量 尾数

    - 参数

    -f, --format=格式        使用printf 样式的浮点格式
    -s, --separator=字符串   使用指定字符串分隔数字(默认使用:
    )
    -w, --equal-width        在列前添加0 使得宽度相同

    - 示例

     
    #显示1-50整数
    seq 50
    #以000方式显示9-11区间整数 seq -f "%03g" 9 11
    #以000方式显示1-100区间整数
    seq -f "%03g" 1 100

     

    - 软连接:ln -s 软连接也叫做符号链接,类似于windows的快捷方式。常用于安装软件的快捷方式配置,如python,nginx等

    ln -s 目标文件  软连接名
    
    1.存在文件/tmp/test.txt
    [root@master tmp]# ls -l
    -rw-r--r-- 1 root root     10 10月 15 21:23 test.txt
    
    2.在/home目录中建立软连接,指向/tmp/test.txt文件
    ln -s /tmp/test.txt my_test
    
    3.查看软连接信息
    lrwxrwxrwx 1 root root 13 10月 15 21:35 my_test -> /tmp/test.txt
    
    4.通过软连接查看文件
    cat my_test
    
    my_test只是/tmp/test.txt的一个别名,因此删除my_test不会影响/tmp/test.txt,但是删除了本尊,
    快捷方式就无意义不存在了

    - 权限相关命令:

      - Linux权限相关知识详解:补充内容以及相关命令:https://www.cnblogs.com/Fushengliangnian/articles/9816979.html

      - 创建用户:

      - 删除用户:

      

    - kill命令:用来删除进程

      参数选项:

    -a:当处理当前进程时,不限制命令名和进程号的对应关系;
    -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
    -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
    -s <信息名称或编号>:指定要送出的信息;
    -u:指定用户。

    只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:

    HUP     1    终端断线
    INT     2    中断(同 Ctrl + C)
    QUIT    3    退出(同 Ctrl + )
    TERM   15    终止
    KILL    9    强制终止
    CONT   18    继续(与STOP相反, fg/bg命令)
    STOP   19    暂停(同 Ctrl + Z)
    View Code

    实例

    先用ps查找进程,然后用kill杀掉:
    ps -ef | grep vim
    root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log
    root      3370  2822  0 16:21 pts/0    00:00:00 grep vim
    
    kill 3268

    - tar命令:压缩/解压缩; tar 命令:用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

    语法:

    tar(选项)(参数)
    -A或--catenate:新增文件到以存在的备份文件;
    -B:设置区块大小;
    -c或--create:建立新的备份文件;
    -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
    -d:记录文件的差别;
    -x或--extract或--get:从备份文件中还原文件;
    -t或--list:列出备份文件的内容;
    -z或--gzip或--ungzip:通过gzip指令处理备份文件;
    -Z或--compress或--uncompress:通过compress指令处理备份文件;
    -f<备份文件>或--file=<备份文件>:指定备份文件;
    -v或--verbose:显示指令执行过程;
    -r:添加文件到已经压缩的文件;
    -u:添加改变了和现有的文件到已经存在的压缩文件;
    -j:支持bzip2解压文件;
    -v:显示操作过程;
    -l:文件系统边界设置;
    -k:保留原有文件不覆盖;
    -m:保留文件不被覆盖;
    -w:确认压缩文件的正确性;
    -p或--same-permissions:用原来的文件权限还原文件;
    -P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
    -N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
    --exclude=<范本样式>:排除符合范本样式的文件。

    实例

    tar -zxvf Python-3.7.0b3.tgz #解压
    
    tar -czvf oldboy.txt.tar.gz oldboy.txt #压缩oldboy.txt  
    上述命令等于 tar -cvf oldboy.tar oldboy.txt
            gzip oldboy.tar
    
    tar -cf all_pic.tar *.jpg #压缩当前目录所有jpg结尾的文件
    
    tar -xjf xx.tar.bz2  #解压缩bz2结尾的文件

    - netstat命令: 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

      语法【选项】

    netstat [选项]
    -t或--tcp:显示TCP传输协议的连线状况;
    -u或--udp:显示UDP传输协议的连线状况;
    -n或--numeric:直接使用ip地址,而不通过域名服务器;
    -l或--listening:显示监控中的服务器的Socket;
    -p或--programs:显示正在使用Socket的程序识别码和程序名称;
    -a或--all:显示所有连线中的Socket;

    实例

    // 查找mysql的服务
    netstat -tunlp |grep mysql

    - ps命令:用于查看系统中的进程状态,格式为“ps [参数]”

    语法:

    ps  命令常用参数
    -a     显示所有进程
    -u     用户以及其他详细信息
    -x    显示没有控制终端的进程

    示例:

    // 先用ps查找进程,然后用kill杀掉:
    ps -ef | grep vim

    - scp命令: 用于服务器之间的文件传输;

      - 语法:

    scp [参数] [原路径] [目标路径]
    
    参数解析:
        -1  强制scp命令使用协议ssh1 
    
        -2  强制scp命令使用协议ssh2 
    
        -4  强制scp命令只使用IPv4寻址 
    
        -6  强制scp命令只使用IPv6寻址 
    
        -B  使用批处理模式(传输过程中不询问传输口令或短语) 
    
        -C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能) 
    
        -p 保留原文件的修改时间,访问时间和访问权限。 
    
        -q  不显示传输进度条。 
    
        -r  递归复制整个目录。 
    
        -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。  
    
        -c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。  
    
        -F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。 
    
        -i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。   
    
        -l limit  限定用户所能使用的带宽,以Kbit/s为单位。    
    
        -o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,  
    
        -P port  注意是大写的P, port是指定数据传输用到的端口号  
    
      -S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

      - 示例:从本地服务器复制到远程服务器

    - 从本地服务器复制到远程服务器:
        复制文件: 
            命令格式: 
                scp local_file remote_username@remote_ip:remote_folder 
    
                scp local_file remote_username@remote_ip:remote_file 
    
                scp local_file remote_ip:remote_folder 
    
                scp local_file remote_ip:remote_file 
    
    第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名 
    
    第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名            
    
    
        复制目录:
            命令格式:
                scp -r local_folder remote_username@remote_ip:remote_folder 
    
                scp -r local_folder remote_ip:remote_folder 
    
    第1个指定了用户名,命令执行后需要输入用户密码; 
    
    第2个没有指定用户名,命令执行后需要输入用户名和密码;    

      - 示例:从远程服务器复制到本地服务器

    从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
    
    - 从远处复制文件到本地目录
        scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
    
    - 从远处复制目录到本地目录
        scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/

    - yum命令:

      - 概要:

    yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,
    能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 尽管 RPM 能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决,
    而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件会是非常痛苦的。
    Yum 软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。
    Yum 软件仓库可以 根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安 装到系统。 Yum 软件仓库中的 RPM 软件包可以是由红帽官方发布的,也可以是第三方发布的,当 然也可以是自己编写的。

      

      - yum 详解(包括与其相关的一切第三方软件的下载和简单使用的介绍): 内容补充连接:https://www.cnblogs.com/Fushengliangnian/articles/9816985.html

      

      

    Linux安装其他第三方软件

    - 添加环境变量

      -  软连接方式,生成快捷方式,将执行文件 和 /ues/bin/ 目录产生连接:

         示例:

    ln -s /opt/python36/bin/python3 /ues/bin/

      - 在  /etc/profile 文件中添加 PATH

        示例:

    // 1. 编辑 /etc/profile 文件
    vim /etc/profile
    
    // 2. 在文件的最后追加 PATH=PATH:"/opt/python36/bin"
    
    // 3.重新加载该配置文件
    source /etc/profile   

    - 安装第三方软件:

      - 通过yum指令直接安装:(注意,yum仓库中必须要有该软件)

    // 1. 通过yum直接安装
        yum install 软件名称
    
    // 2. 通过systemctl 命令进行启动
        systemctl start 软件名
    
    // 3. 通过systemctl 命令关闭
        systemctl stop 软件名
    
    // 3. 通过systemctl 命令重启
        systemctl restart 软件名

      - 下载源码包,进行编译安装:

    1. 在网上找到相对应的源码包的压缩文件,利用wget 命令直接下载到本地。
    
    2.  解压文件
        tar -xzf 文件路径
    
    3.  找到文件中的 configure 文件,进行编译:
        ./configure --prefix=指定编译安装路径(在进行编译之前需要配置一些其他的依赖文件)
        如果没有该文件,则不用进行编译
    
    4. 在解压后的文件夹下面使用make && make install 指令,进行安装。

    - 编译安装python示例:

    1, 进入 /opt 目录下面,执行wget命令:
        wget - c https://www.python.org/ftp/python/3.6.7/Python-3.6.7rc2.tar.xz
    
    2, 解压该文件:
        tar -xzf /opt/Python-3.6.7rc2.tar.xz 或者 tar -xf /opt/Python-3.6.7rc2.tar.xz
    3, 进入解压后的文件进行编译安装
      
    ./configure --prefix=/opt/python36

    4, 在当前目录下执行 make && make install 命令

    5, 配置环境变量:
    echo "PATH=PATH:/opt/python36/bin" >> /etc/prefile

    6, 结束。
    
    

      - 编译安装Python前yum python需要的依赖库的指令:

    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

       

    - yum安装mysql示例:

      - 在这里安装 mariadb 该数据库是在mysql被收购后为了避免闭源的风险而出现的一个替代品,

      - MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

      - 使用yum命令前,需要创建 mariadb.repo仓库文件

    # 编辑新建MariaDB.repo文件
    vi /etc/yum.repos.d/MariaDB.repo
    
    # 在文件中写入
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

      - yum命令安装

    # yum命令安装 mysql服务器和客户端
    yum install mariadb-server mariadb
    
    
    # mariadb数据库的相关命令是:
    
    systemctl start mariadb  #启动MariaDB
    
    systemctl stop mariadb  #停止MariaDB
    
    systemctl restart mariadb  #重启MariaDB
    
    systemctl enable mariadb  #设置开机启动

    # 安装好后,初始化配置文件
    详情可见:https://www.cnblogs.com/Fushengliangnian/category/1292532.html

    - 安装redis示例以及redis基本用法:https://www.cnblogs.com/Fushengliangnian/articles/9825926.html

    - 安装nginx示例以及nginx简单介绍和基本用法:https://www.cnblogs.com/Fushengliangnian/articles/9825929.html

    - 配置 nginx + uwgi django 服务 以及 supervisor 的用法:https://www.cnblogs.com/Fushengliangnian/articles/9825933.html

  • 相关阅读:
    Java 下载网络资源
    Java11 ThreadLocal的remove()方法源码分析
    软件测试的术语SRS,HLD,LLD,BD,FD,DD意义
    2020年12月2日
    20201129
    2020年11月28日
    程序员的三门课
    中间件到底是个什么鬼东西?
    接口测试框架的形成过程
    一个字符到底等于多少字节
  • 原文地址:https://www.cnblogs.com/Fushengliangnian/p/9806383.html
Copyright © 2020-2023  润新知