zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    POJ 2923 Relocation (状态压缩,01背包)
    HDU 2126 Buy the souvenirs (01背包,输出方案数)
    hdu 2639 Bone Collector II (01背包,求第k优解)
    UVA 562 Dividing coins (01背包)
    POJ 3437 Tree Grafting
    Light OJ 1095 Arrange the Numbers(容斥)
    BZOJ 1560 火星藏宝图(DP)
    POJ 3675 Telescope
    POJ 2986 A Triangle and a Circle
    BZOJ 1040 骑士
  • 原文地址:https://www.cnblogs.com/Fushengliangnian/p/9806383.html
Copyright © 2011-2022 走看看