• Linux的一些常用命令


    重启
    reboot
    关机
    poweroff
    shutdown -h now
    查看本机ip信息的名称
    ifconfig
    查看默认网卡信息的文件
    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    手动配置IP
    配置完成后,重启网络,让配置生效
     service  network  restart
    查看结果
    ifconfig
    使cat再次查看,发现配置文件发生了变化
    cat /etc/sysconfig/network-scripts/ifcfg-eth0
    如果说xshell链接不了虚拟机中的centos系统最大的可能
    windows键+r ( 相当于直接点运行)敲入命令
    services.msc
    确保 VMware NAT Service和VMware DHCP Service 开启的
    防火墙
     centos6.9的防火墙服务 iptables
     查看防火墙是否关闭
        service  iptables  status
     关闭防火墙
         service iptables stop
     开启防火墙
        service iptables start
     查看防火墙开机是否启动
         chkconfig iptable --list
     让防火墙服务开机不启动
        chkconfig iptables off
     让防火墙服务开机启动
        chkconfig iptables on

    系统登录之后  root@localhost ~

        root 代表当前登录用户的名称
        localhost 主机名称
        ~ 代表当前登录用户的根目录

    pwd = print 打印 working  工作 directory 目录

    vi和vim编辑器
       一般模式,插入模式,底行模式

       一般模式(通过按iaoIAO键)-->插入模式     插入模式(按Esc键)--> 一般模式
       一般模式(通过按:键)-->底行模式     底行模式(按Esc键)--> 一般模式
       底行模式中,wq =  write quit  写入并退出
                   wq!  如果有不能保存退出的情况可以使用wq!  ! 强制退出
                    q! = quit !强制  不写入强制退出

       vim  qy97.txt  如果qy97.txt不存在,编辑后退出,等同于新建该文件,写入内容并退出
       vim  qy97.txt  如果qy97.txt存在,"qy97.txt" 5L, 17C   该文件名称  5L=5line 5行   16C=16Character  16字符(换行算一个字符)
        
       一般模式(通过按iaoIAO键)-->插入模式  
             i 在光标位置的前面插入
             a 在光标位置的后面插入
             o 在光标位置的下一行插入
             I 在光标位置的行首插入
             A 在光标位置的行尾插入
             O 在光标位置的上一行插入

       在底行模式下:set nu 回车 显示文件行号
       在底行模式下:set nonu  回车  不显示文件行号
       一般模式 大写字母G 到文件末尾
       一般模式 小写字符gg 到文件首行
       一般模式 ctrl+f 文件太长时显示下一页
       一般模式 ctrl+b 文件太长时显示上一页
       在底行模式下:100  回车 光标直接定位到100行
       一般模式 使用/cpp 回车  找到了cpp
       一般模式下  在光标所在行,直接点yy  复制当前行内容到缓存中  nyy 复制光标所在行开始的n行  yy和p结合使用p 相当于粘贴功能
       一般模式下  小写字母u  撤销(支持多次)
       一般模式下  crrl+r 反撤销(支持多次)
       一般模式下  点小写字母dd  删除光标所在行内容
       一般模式下  点小写字母ndd  删除光标所在行后的n行
       底行模式下 :3,6d 回车 从第三行删除到第六行内容
       
       底行模式下 整个文件字符2替换字符1   %s/字符1/字符2/g
                  光标所在行字符2替换字符1   s/字符1/字符2/g  
       
    用户管理
       centos系统是一个多用户系统
       用户分为三类:
          超级用户(root) 用户id为 0
          伪用户     用户id为1-499,虽然存在,但是不能用户登录
          普通用户   用户id为500-60000
       用户信息存放位置: /etc/passwd
          查看该文件  cat  /etc/passwd
          文件内容解释(linux系统下,一般的配置文件分隔符使用:):
          root:x:0:0:root:/root:/bin/bash
          ...
          admin:x:500:500:admin:/home/admin:/bin/bash
         详解:
          用户名 x密码占位符  用户ID  用户所属主组ID  用户描述(用户别名)  宿主目录   命令解析器
       创建用户
          语法:
          useradd  -u 用户ID  -g 主组名称  -G 用户其他组名称(可以使用,隔开) -c  用户描述(别名) 用户名
          实例(只能是root用户操作):
          useradd -u 666 -g root -G sys,users,admin -c 'newUser' uqy97a
          查看用户所属组
           groups uqy97a
          查看用户信息文件:
           cat  /etc/passwd
          最简单的方式创建用户
         useradd uqy97b
         useradd uqy97c
         useradd uqy97d
         useradd uqy97e
         useradd uqy97f
         为了后面切换用户,要给用户设置密码:
          语法:
          passwd 用户名称
          实例:
          passwd uqy97a
          passwd uqy97c

       修改用户
          修改用户登录名字
             usermod =user modify
          语法:
             usermod  -l 修改后的用户名称   修改前的用户名称  (只是修改登录名称,宿主目录不会改变)
          实例:
             usermod  -l uqy97b1  uqy97b
          修改用户的锁定状态
             usermod  -L  uqy97c   -L(lock)
             usermod  -U  uqy97c   -U(unlock)
       
       删除用户(已经登录的用户无法删除)
           语法:
           userdel -r 用户名称  (-r如果不加,从passwd中删除用户信息,但/home下该用户的目录依然存在,-r 连同/home目录一起删除)
           实例:
           userdel  uqy97f
           查看结果:
             cat /etc/passwd
             ls /home
           userdel -r uqy97e
           查看结果:
             cat /etc/passwd
             ls /home
           
       切换用户
          su 用户名(root用户向普通用户切换,不需要密码,但普通用户切换到root或者向其他普通切换,都需要密码)
          设置密码语法:
          passwd 用户名称
          实例:
          passwd uqy97a
          passwd uqy97c
          切换用户实例:
          su uqy97a  不需要密码
          su root    需要密码
          su uqy97a
          su uqy97c  需要密码
    组管理
       centos系统存在多个组
       组信息存放位置:/etc/group
       查看该文件 cat /etc/group
       文件内容:
          root:x:0:
          admin:x:500:
       详解:
          组名称  组密码占位符  组id   组内用户列表
       组的添加
          语法:
          groupadd  gqy97a
          实例:
          groupadd gqy97a
          groupadd gqy97b
          查看结果
          cat /etc/group
       组的删除
          groupdel gqy97b
          查看结果
          cat /etc/group
       
    时间(修改时区,修改时间,同步网络时间)
       查看当前系统时间
        date  
       修改时区
       cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
       修改当前系统时间
        date MMDDhhmmYYYY
        实例:
        date 052510552018
            查看
            date
        date -s 'yyyy-MM-dd HH:mi:ss'
           实例:
        date -s '2019-06-25 11:56:00'
            查看
            date
       使用网络同步当前时间
            查看当前系统中ntpd 服务是否开启
            service  ntpd status
            没有开启
          使用网站同步网络时间
           ntpdate pool.ntp.org
         系统自动同步时间
           service  ntpd start
         设置开机启动
           chkconfig ntpd on
    1,使用root用户,复制/etc/sudoers 文件的第91行修改为,想提升的用户名称
          root ALL=(ALL) ALL
          admin ALL=(ALL) ALL
        2,切换到admin用户
           sudo poweroff(关机)

    问题
    vi/vim a.txt
    vi或者是vim   进入a.txt文件时,出现.swp文件提示,原因是有和文件名称一样的  .a.txt.swp文件
    解决:
       ls -a  查看所有文件
       rm -rf  .a.txt.swp  


    查看磁盘信息命令
      fdisk -l

      磁盘容量=柱面大小*柱面数量
      柱面大小=扇面的最小单位*扇面数量*刺头数量

      磁盘容量=扇面的最小单位*扇面数量*刺头数量*柱面数量
               512            63        255     1305

       当前系统磁盘容量:  10733990400    
       
    centos目录结构
       ls /   查看根目录下有哪些文件或者目录
            bin   可执行文件的目录
            sbin  存放root用户可执行文件目录
            etc   配置文件
            boot  引导文件
            home  普通用户宿主目录
            lib   系统的核心文件
            lib64  系统的核心文件
            dev    设备目录
            mnt    临时目录挂载点  
            root   root用户的宿主目录
            tmp    临时目录(比较重要文件不要往这里面方法)
            var    经常发生变化的文件或者目录存放处  variable   var a=1
            usr    共享资源目录(一般软件安装,默认此目录)
    文件管理
       linux命令分类
          内部命令 cd  pwd...     外部命令  ls mkdir...
       帮助命令
          内部命令:help 命令名称
          外部命令:man  命令名称
                    man mkdir
            进入帮助文档后,点q键退出
       创建目录
          mkdir = make directories
          语法:
          mkdir [选项] 目录名称
          实例:
          mkdir  qy97
          创建多级目录实例:
          mkdir -p  spring/springmvc/config  
          mkdir -p  aaa/bbb/ccc  

              学会看帮助文档
              -p的解释:
              -p, --parents
                  no error if existing, make parent directories as needed
       删除目录
          rmdir= remove  directory
          语法(只能删除空目录)
          rmdir 目录名称
          实例:
          rmdir aaa/bbb/ccc
          rmdir aaa/bbb
          rmdir aaa
       修改目录名称
          mv = move
          语法:
          mv 要修改名称的目录   修改后的目录名称(不能存在)
          实例:
          mv qy97 qy971
       复制目录
          cp = copy
          语法:
          cp -r  目录名称
          实例:
          cp -r qy971  spring

          ls /tmp
          ls /var
          cp -r /var/db/  /tmp
          ls /tmp
          ls /var
       查看目录下的内容
           ls = list
           语法:
           ls  [目录名称]
           实例:
           ls  查看当前目录下的所有内容
           ls  /etc  查看etc目录下的所有内容(绝对路径)
           ls  /etc/sysconfig/network-scripts    查看/etc/sysconfig/network-scripts目录下的所有文件
           ls spring/ 当前目录下存在spring可以使用相对路径查看
           ls spring/springmvc  
             -a  查看目录下所有的文件,包括隐藏文件
             -a, --all
                  do not ignore entries starting with .
         -l  以长格式显示目录下的所有文件(显示文件或者目录的详细信息)
         ls -l 可以简化为 ll
         -t  按更新时间倒叙排序显示目录下的内容
          ls -a  /etc
          ls -l  /etc
          ls -l -t  /etc   等同于  ls -lt /etc
         
       切换目录
          cd = change directory
          语法:
          cd 目录名称
          实例:
          cd    什么参数都要,切换到当前用户的主目录

          su admin  切换普通用户
          cd     进入普通用户主目录
          pwd  输出结果为/home/admin

          cd ..  切换到上级目录
          cd ../../   切换到上级的上级目录
          cd  spring   切换相对路径
          cd  spring/springmvc
          cd /etc/     切换绝对路径
          cd /etc/sysconfig

       创建文件
         touch  文件名称
         实例:
         touch spring.xml
         touch spring/springmvc/config/springmvc.xml
         touch /tmp/spring.xml
       复制文件
         cp 文件名称  目标位置(目标位置不存在,相当于复制后重命名)
         实例:
         cp spring.xml spring
         cp spring.xml springmvc.xml
         cp springmvc.xml  spring/springmvc/
         cp /root/spring.xml /var/log/  
         ls /var/log
         cp 如果是目录的话,需要加上 -r
       剪切文件(移动文件)
         mv 文件名称  目标位置
         实例:
         mv spring.xml qy971/  移动spring.xml到qy971目录下
         mkdir  /tmp/mydir
         mv /root/qy971/spring.xml  /tmp/mydir/
         ls /tmp/mydir/
       删除文件
          rm =remove
          实例:
          touch  a.txt b.txt c.txt  创建多个文件
          rm a.txt 带提示的删除
          rm -f  b.txt   -f =force 强制删除不带提示
          rm -rf  qy971  -r =resursive 递归强制删除
            总结:
              无论是文件或者是目录,都可以使用
              rm -rf 文件/目录  
         
       修改文件名称
           mv qy97.txt  qy97.log   qy97.log一定不是一个目录
       查看文件内容
         查看整个文件内容
           语法:
           cat  文件名称
           实例:
           cat install.log
           cat /etc/hosts
         分页查看文件内容
           less 文件名称
           more 文件名称
           实例:
           less install.log
           more install.log
             enter键一行一行查看
         空格键一页一页查看内容
         ctrl+f 下一页
         ctrl+b 上一页
             less和more一点区别,less 可以使用/ 查看具体内容  more不可以
             q 退出
          查看文件的前n行
            语法:
        head [-n] 文件名称
        实例:
        head HelloWorld.java 默认查看HelloWorld.java的前10行
        head -1 HelloWorld.java
        head -11 HelloWorld.java
          查看文件的后n行
            语法:
        tail [-n] 文件名称
        实例:
        tail HelloWorld.java
        tail -1 HelloWorld.java
        tail -5 HelloWorld.java
        重要用法 -f 实时监控HelloWorld.java的尾部:
            在一个窗口使用下面命令,产生阻塞,一直监控 HelloWorld.java的尾部:
              tail -f HelloWorld.java
             在链接一个新窗口,执行下面命令,观察第一个窗口的变化:
             date >> HelloWord.java
               
           
       向文件中写入或者追加内容
            echo 'hello world'   linux向控制台打印  相当于java中的System.out.println("hello world");
                             js 中打印   alert 'hello world'   oracle 中打印  dbms_output.putline('hello world');
         >> 代表追加 在原有内容后面继续添加   > 代表写入  覆盖原有内容
            echo 'hello world' >> HelloWord.java    把hello world 追加到HelloWord.java 的尾部
        date >> HelloWord.java   把当前时间追加到HelloWord.java 的尾部

    软硬链接
         ln = link  make links between files
         语法:
          软链接
          ln -s   源文件    链接名称
        
         实例:
          ln -s   HelloWord.java  hw.lnk   给HelloWord.java创建了一个快捷方式,名字为hw.lnk
          cat hw.lnk  软链接可用
          rm -rf HelloWorld.java
          cat hw.lnk   软链接不可用

          硬链接
          ln -d  源文件     链接名称
          实例:
          ln -d HW.java  hwa.lnk   给HW.java创建了一个硬链接,名字为hwa.lnk
          rm -rf  HW.java
          cat hwa.lnk  硬链接正常使用
    打包压缩(解压缩)
        压缩和解压的,有两个命令,只能对文件操作,不能操作目录
          gzip
          bzip2
       tar 打包(目录) 压/解缩 选择上面两种方式
         tar的option:
         -c create  创建压缩
         -t list    查看压缩
         -x extract 解压缩

         -z  gzip  使用gzip方式进行压/解缩
         -j  bzip2 使用bzip2方式进行压/解缩

         -v  verbose  压/解缩 显示压缩/解压的目录和文件
         -f  file  文档名称
         
         -C  directory  指定解压的目录路径

        打包压缩
          语法:
            tar -c -z/j -v  -f 压缩后的名称  要压缩的文件或者目录
          实例:
           tar -czvf  spring.tar.gz  spring
           tar -czf   springa.tar.gz  spring
           tar -cjvf  spring.tar.bz2  spring
        查看压缩包
          语法:
            tar -t -z/j -v  -f 压缩后的名称
          实例:
        tar -tzvf  spring.tar.gz
        tar -tjvf  spring.tar.bz2
        解压缩
           语法:
            tar -x -z/j -v  -f 压缩后的名称   -C  解压后的目录  -C(如果省略,默认当前目录)
        实例:
           tar -xzvf springa.tar.gz -C /var
           ls /var
           tar -xjvf spring.tar.bz2 -C /var/spring
           ls /var/spring

    文件管理
       统计文件内容
           wc=word count
           语法:
           wc [option] 文件名称
           实例:
           wc  a.log  统计a.log中有几行,几个单词(用空格分割),几个字符(包括换行和空格)
           wc -l  a.log  统计行数
           wc -w  a.log  统计单词
           wc -c  a.log  统计字节数
           wc -m  a.log  统计字符数(一个中文字符,编码格式是utf-8,占三个字节)
           wc /etc/hosts  绝对路径
       查找文件
            语法:
            find [文件目录]  -name  '*关键字*'   
        实例:
        find -name "*.log*"   在当前目录下查找名字中含有.log的文件
        find /etc -name '*.pp*'  在etc 目录下(子孙目录也包括)查找文件名称含有.pp的文件,并显示
            
        | 在命令中解释为 管道符  可以链接两个linux命令,第一个命令的执行结果为后面命令使用
            find /etc -name '*.pp' | wc -l  在etc 目录下(子孙目录也包括)查找文件名称含有.pp的文件 ,并且统计行数

            find /etc -name '*.pp' > a.log 输出结果写入a.lot文件中
        wc -l a.log   统计a.log有几行
            
        vim a.log
        :set nu
        点击大写G,到文件末尾

       查找文件内容
           grep = global(regexp 正则表达式) regular  expression         print
           grep = global search              regular expression(RE) and print out the line

           语法:
           grep  关键字 文件名称  
           实例:
           grep   .pp  a.log  在文件a.log中查找含有.pp的行,并显示
           grep   0.0  /etc/hosts   绝对路径  在hosts文件找0.0
           
            grep  .pp a.log  | wc -l  查找并统计行数
            grep   0.0  /etc/hosts   | wc -l


    权限管理
         linux系统中分为四种角色
           u=user 当前用户  g=group  同组用户  o=other  其他用户  a=all  代表所有用户
         三种权限
           r=read 可读  w=write 可写  x=execute  可执行
         通过ls -l(ll)查看文件或者目录的权限
            ll a.log
         -rw-r--r--. 1 root root 16003 Jun 27 09:20 a.log
         分析第一部分
         -                                           rw-                    r--                 r--
         文件类型(一共三种,-文件 d目录 l软链接)  当前用户拥有的权限   同组用户拥有的权限     其他用户拥有的权限

         改变权限方法1:
          chmod =change mode
          语法:
          chmod  [角色(可组合)]+/-[权限(可组合)]  文件或者目录名称
          实例:
          ll a.log
          chmod  u+wx  a.log  为a.log的当前用户角色添加 可写和可执行的权限
           ll a.log
          chmod  g+wx  a.log
           ll a.log
          chmod  o+wx  a.log   
           ll a.log
         chmod  a-rwx  a.log   
           ll a.log
         chmod  a+rwx  a.log   
           ll a.log
         改变权限方法2:
           语法:
           chmod (0-7)的数字组合 文件或者目录名称
           实例:
           chmod  777 a.log
           chmod  000 a.log
           chmod  456 a.log
           把0-7的十进制转换为三位数字表示的二进制
           十进制   二进制
           0        000
           1        001
           2        010
           3        011
           4        100
           5        101
           6        110
           7        111

           8        1000  linux权限系统中,权限一共就三种,所以最多就到7
           计算机底层1为true  0为false
          
            chmod  7   7   7   a.log
        chmod  111 111 111 a.log
            chmod  0   0   0   a.log
            chmod  000 000 000 a.log
        chmod  4   5   6   a.log
            chmod  100 101 110 a.log
               r-- r-x rw-
        chmod  321  a.log  
               -wx-w---x
                
    系统进程管理
       查看进程
           ps = process  
           ps = report a snapshot of the current processes.
           语法:
            ps [选项]
           实例:
            ps -ef   全格式显示当前系统下的所有进程
            常用筛选进程:
            ps -ef | grep firefox  从所有进程中查找含有firefox进程
            ps -ef | grep java   从所有进程中查找含有java进程

            ps -ef | grep firefox |grep -v grep   从所有进程中查找含有firefox进程,去除自身进程
       结束进程
            语法:
            kill [option]  进程名称或者id
            实例:
            kill -9  5069  根据上面命令查找进程ID  强制杀死进程

       查看任务管理器
         top  详细解释参考帖子
        https://www.cnblogs.com/sbaicl/articles/2752068.html
         q 退出
    定时任务
        语法:
        crontab [option]
        实例:
        crontab -l 查看当前系统的定时任务
        crontab -e 创建定时任务
               创建一个定时任务,每隔一分钟向tomcat.log中写入当前时间
               touch tomcat.log
               pwd   查看当前目录位置
               crontab -e 编辑下面内容,根vim一样操作
               */1 * * * *  date >> /root/tomcat.log   每隔一分钟向tomcat.log中写入当前时间
               :wq  保存退出
               每过一分钟,查看结果
            cat tomcat.log

             详细解释定时文件中的五个*的意思
             *         *          *          *          *       执行的任务
             分钟0-59  小时0-23   日(1-31)   月(1-12)   周(0-6)
             其他解释:
             /  每隔多久
             *  */2  * * * date >> tomcat.log  每隔2个小时  执行日期写入操作
             -  时间段
             0-5 * * * * date >> tomcat.log 每个小时的0-5分钟, 执行日期写入操作
             , 时间点
             * 0,8,9,10 * * *   date >> tomcat.log  每天的0点,8点,9点和10 执行日期写入操作


            5      *       *         *     *     ls             指定每小时的第5分钟执行一次ls命令
            30     5       *         *     *     ls             指定每天的 5:30 执行ls命令
            30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
            30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令
            30     6       *         *     0     ls             指定每星期日的6:30执行ls命令
            30     6       [8-11]    *     *     ls             指定每月的8号到11号的6:30执行ls命令   
            30     6       8,11      *     *     ls             指定每月的8号和  11号的6:30执行ls命令   
         
        crontab -r 删除定时任务
       https://www.cnblogs.com/suifengbingzhu/p/4538143.html

    shell编程
       概念:当命名不在命令行执行,放到文件中执行,那么该文件就是shell脚本
       shell脚本的编写:
           1,创建脚本,最好是.sh结尾,让别人知道创建的文件是脚本
              touch 脚本名称.sh
           2,在脚本的第一行声明解析器
               第一行代码:#!/bin/bash
           3,编写脚本业务
               # 注释内容
           4,让脚本可以执行
              chmod u+x 脚本名称
           5,执行脚本  
              ./脚本名称
              bash 脚本名称
        第一个实例:
         hello.sh
         内容:
            #声明命令解析器
        #!/bin/bash
        #打印
        echo 'hello shell脚本...'
        第二个实例:
          编写脚本,打包任务目录或者是文件,打包成功后删除原来文件或者原目录,如果打包错误,错误写入错误日志文件中
          
          vim tar.sh
          复制下面内容:
            #!/bin/bash
            #讲解变量和位置变量的用法
            #定义目录名称 $1 接收脚本传入的第一个参数
            dirName=$1
            #定义打包后的文件名称 $2接收脚本传入的第二个参数
            fileName=$2
            #执行打包  ${变量名称} 获取已经定义的变量值{}可以省略  $变量名称
            # 2标准错误  >error.log 把打包的错误信息写入到error.log里面
            # && 当前一个命令执行成功时,后面命令才会执行  ||当前一个命令执行失败,才会执行后面命令
            tar -czvf  ${fileName}.tar.gz  $dirName 2>error.log  &&  rm -rf $dirName
          chmod 777 tar.sh
          操作log1 不动原来目录
          cp -r /var/log /var/log1
          cp -r /var/log /var/log2
          执行脚本:
          ./tar.sh  /var/log1  log1_bak
          ls 查看结果
          ls /var/
          tar -tzvf log1_bak.tar.gz 查看打包后的目录

        shell编程
       if else用法
            #!/bin/sh
        # echo 打印  ""和''的区别 ""能正确解析$或者其他标示符,''写什么就打印什么东西  
        echo "你输入的参数为:$1"
        if [ $1 == 1 ]; then
          echo '你若安好,便是晴天'
        else
          echo '你若安不好,便要挨打'
        fi
       if else if ...else用法
           #!/bin/bash
        echo "你输入的参数为:$1,不同输入可以得到不同的名人名言"
        if [ $1 == 1 ]; then
          echo '马云说:让天下没有难做的生意'
        elif [ $1 == 2 ]; then
          echo '马化腾说:用心创造快乐'
        elif [ $1 == 3 ]; then
          echo '董明珠说:让世界爱上中国造'
        elif [ $1 == 4 ]; then
          echo '刘强东说:我是老牛,喜欢嫩草'
        else
          echo '别人说的再好,有用的都是自己努力非都。。。'
        fi
       for 循环
           #!/bin/bash
        for (( i=1; i<=10; i++ ))
        do
          echo "结果为:$i"
        done
        echo '------------------------'
        # ` 间隔符
        for i in `ls /root/shelldir`
        do
         echo "该目录的内容:$i"
        done
        echo '-----------------------'
        for i in a b c aa bb cc 1 22 333
        do
         echo "$i"
        done
        echo '--------------------'
        for i in {1..10}
        do
          echo $i
        done
       while 循环
            #!/bin/bash
        #定义整型变量
        declare -i j=1;
        declare -i s=0;
        echo "你输入第10个参数是:${10}"
        while (( j<=$1 ))
        do
        # let 计算
           let s+=j;
           let j++;
        done
        echo "1-100的和为:$s"
       
    软件安装和维护
       rpm  早期 redhat package  manager
            现在 rpm    package  manager
       rpm安装的格式:
           软件名称-版本号-适用平台.rpm
           jdk     -8u151 -linux-x64.rpm
       语法:
        rpm [option]  *.rpm   *任意的rpm软件
     
       实例:
          安装(卸载)jdk
            mkdir soft
            #使用下载好的rpm包 或者 wget  下载地址
        java -version  #看当前环境有没有安装jdk
        rpm -ivh  jdk-8u151-linux-x64.rpm   ####-i 安装install  vh 以###的方式显示安装进度
        java -version     #发现已经安装
        rpm -qa | grep jdk    #### rpm -q=query  -a=all  rpm -qa 查询所有的已经安装软件   grep 从所有安装软件中查找含有jdk的
            rpm -e  jdk1.8-1.8.0_151-fcs.x86_64   ####-e erase 卸载,上一步的查询结果
            rpm -qa | grep jdk 或者java -versoin
        echo $JAVA_HOME  仍然没有,JAVA_HOME需要自己配置
            配置环境变量:
                    vim /etc/profile   # profile文件就是环境变量的配置文件
            在文件末尾黏贴如下内容:
                export JAVA_HOME=/usr/java/jdk1.8.0_151
                export PATH=$JAVA_HOME/bin:$PATH
                export ClASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
            echo $JAVA_HOME  仍然没有,配置没有生效
                    让配置生效
                source /etc/profile
            echo $JAVA_HOME  出现路径,说明配置成功
       rpm 软件维护工具的弊端:
          安装d软件  d->c软件  c->b软件  b->a软件
          连锁依赖,安装就非常的麻烦。。。先装a 再装 b....

       yum  为了解决rpm的弊端,yum提供了一套#在线#分析依赖关系,提供一套软件安装方案,安装软件
       实例:
          安装(卸载)mysql
          实例:
         安装
            yum -y install mysql   # -y 免提示
        卸载
            yum -y remove  mysql   

          mysql命令用户
           打开mysql安装位置的bin目录,按shift+鼠标右键->在此处打开命令行
           mysql -uroot -p12345  #123456是自己密码 回车  
           或者  
           mysql -u root -p 回车,输入密码 回车
           show databases;   #显示所有数据库
           use test;   #选择库
           show tables;  #显示该库下的所有表
           describe  dog; #显示表结构
           或者  desc dog;
           
           create table tb_test(id int primary key auto_increment,name varchar(20)); #创建表
           desc tb_test;
           alter table tb_test add age int(4); #为创建过的表添加列
           desc tb_test;
           alter table tb_test modify name varchar(200);  #修改创建过的表的字段长度
           desc tb_test;
           alter table tb_test drop column age; # 删除列
            desc tb_test;
           create table tb_test1 select * from tb_test ;  #快速表备份
            show tables;
           drop table tb_test1; #删除表
            show tables;

    tomcat的部署和操作
          使用xftp把tomcat...tar.gz包传入到centos系统中
          解压tomcat包到/usr/local下
          tar -xzvf apache-tomcat-7.0.68.tar.gz -C /usr/local/
          启动
             进入到tomcat根目录
         cd /usr/local/apache-tomcat-7.0.68/
         ./bin/startup.sh
         如果失败,可以查看日志
        cat logs/catalina.2019-06-28.log
         在另外一个窗口实时监控日志文件的末尾
         tail -f logs/catalina.2019-06-28.log
            在当前窗口关闭tomcat
         ./bin/shutdown.sh
                 ./bin/startup.sh
           
           查看自己的ip地址
           ifconfig
           在浏览器输入 ip为上面查看结果
           http://192.168.182.10:8080/
           


  • 相关阅读:
    java页面请求跑批处理sql的有关问题
    Linux下一个检查跑批是否成功的Shell
    redhat Linux5 安装vsftp .
    LINUX FTP简单配置
    java代理机制
    详细解析Java中抽象类和接口的区别
    抽象类和接口的区别
    SVN与Git比较
    浅谈存储过程和触发器
    存储过程,触发器,函数 学习总结
  • 原文地址:https://www.cnblogs.com/fengxiangyu/p/11116206.html
Copyright © 2020-2023  润新知