• 部署方案@Linux


    1 Linux基础命令

    1.1 最基础命令

    • 所有命令后台执行 – 在命令的末尾加 &

    • pwd 查看当前目录

    • ping www.baidu.com

    • 查看ip ifconfig

    • netstat -tunlp|grep 端口--查看占用进程的端口号(ps –ef|grep 端口 也可以)

    • 解压与压缩(zip/tar)

      • 解压zip包 #|$ unzip ZIPNAME.zip

      • 压缩为zip包 #|$ zip ZIPNAME.zip FILE

      • 解压tar包 #|$ tar -zxvf TARNAME.tar

      • 解压到指定目录 #|$ tar -zxvf TARNAME.tar PATH

      • 压缩为tar包 #|$ tar -zcvf TARNAME.tar.gz FILE

    1.2 文件管理命令

    • 文件的创建

      • 创建方式1 #|$ touch FILENAME

      • 创建方式2 #|$ vi FILENAME

    • 文件夹创建

      • 普通创建 #|$ mkdir DIRECTORY

      • 创建多级目录,必须加参数-p, 表示目录不存在也创建 #|$ mkdir -p DIRECTORY01/DIRECTORY02/DIRECTORY03

    • 链接的创建

      • 创建一个文件或文件夹的软链接,-s表示软链接 #|$ ln -s FILENAME/DIRECTORYNAME LINKNAME

      • 创建一个文件或文件夹的硬链接,-P表示硬链接 #|$ ln -P FILENAME/DIRECTORYNAME LINKNAME

    • **文件的追加 >>,重定向输出到指定文件 > **

      • 重定向 #|$ echo 'CONTENT' >> FILENAME
    • 自带编辑工具vi的使用

      • 编辑文件内容 # vi filename

        • 进入编辑插入模式 #|$ i

        • 退出编辑模式 #|$ ESC键

        • 保存并退出 #|$ :wq

        • 不保存退出 #|$ :q!

      • 文件的编辑

        vi/vim FILENAME

        快捷键:

        在vi查看的模式下,

        • 删除光标所在的一行 dd

        • 保存文件并退出 ZZ

        • 删除光标覆盖的字符 x

        • 下一行进行插入 o

        • 跳转到最后一行 shift + g

    • 文件内容的查看

      • 查看全部内容,文件内容比较少 #|$ cat FILENAME

      • 翻页查看 #|$ more FILENAME

      • 查看文件末尾的内容,通常与-f参数连用,适合查看系统的日志信息 #|$ tail FILENAME

      • 查看文件开头的内容,适合查看文件的格式,内容模板样式 #|$ head FILENAME

    • 文件的拷贝

      • 拷贝一个文件到一个目录中 #|$ cp FILENAME DIRECTORY

      • 拷贝一个文件的内容到一个新的文件中 #|$ cp FILENAME NEWFILENAME

      • 拷贝一个文件夹到另外一个文件夹中 #|$ cp -R DIRECOTRY NEWDIRECTORY

    • 文件的移动或重命名

      • 同一个目录下就是重命名 #|$ mv FILENAME NEWfILENAME

      • 不同目录下就是移动 #|$ mv FILENAME DIRECTORY

    • 文件的删除

      • 删除目录,如果目录有内容,需要加递归参数 -R,如 #|$ rm -R DIRECTORY

        注意事项:删除的目标最好是绝对路径,不要相对路径

    • 文件的搜索

      • 搜索指定目录下的某个文件 #|$ find -name PATH/FILENAME

      • 模糊搜索指定目录下的某个文件 #|$ find PATH/FILENAME*

    1.3 用户管理

    • 创建用户

      • 新增用户 # useradd USERNAME

      • 修改密码 # passwd USERNAME

        在Linux系统下,默认情况下,创建一个用户的同时,会给用户在系统的目录下创建一个属于自己的用户目录,该目录称为用户主目录/宿主目录

        规则: /home/username

        exp: /home/moyue,用户主目录可以使用 ~ 表示

    • 切换用户

      • 切换用户 #|$ su - USERNAME

    1.4 系统管理

    • 系统内核版本信息

      • 使用什么系统 #|$ uname

    • 使用的内核版本 #|$ uname -r

    • 系统的服务器信息(cpu信息) #|$ cat /proc/cpuinfo

    • 系统的内存信息 #|$ cat /proc/meminfo

    1.5 磁盘管理

    • 查看磁盘的使用情况 #|$ df -lh

    • 查看当前目录占用的内存 #|$ du

    • 查看指定目录占用的内存大小 #|$ du -sh DIRECTORY

    • 查看创建系统的内存划分情况 # fdisk -l

    • 修复磁盘,自动修复(重启虚拟机遇到提示某个磁盘损坏) # fsck 磁盘名 [fsck: file system check]

    • 查看挂载磁盘信息 # mount

    • 挂载磁盘 # mount 磁盘名 设备名

    • 卸载磁盘 # umount 磁盘名

    1.6 内存管理

    • 查看系统内存使用情况 #|$ free

    • 查看系统进程

      查看进程命令 #|$ top

      查看进程更加详细 #|$ top -M


    2 Linux系统常用文件

    2.1 目录认识

    目录 介绍
    /usr/bin、bin 存放所有用户可以执行的命令
    /usr/sbin、sbin 存放只有root可以执行的命令
    /home 用户默认的宿主目录
    /proc 虚拟文件系统,存放当前进程信息
    /dev 存放设备文件
    /lib 存系统程序运行所需的共享库
    /lost+found 存放系统出错的检查结果
    /tmp 存放临时文件
    /etc 存放系统配置文件
    /var 包含经常发生变动的文件,如日志文件,计划任务等
    /usr 存放所有命令、库、手册等,通常程序会安装在/usr/local目录下
    /boot 内核文件及自举程序保存位置
    /mnt 临时文件系统的安装点

    2.2 环境变量配置文件etc/profile

    • 重新加载环境变量配置文件 # source PROPERTIES

    • 通过回声查看环境变量 #|$ echo $PATHecho $JAVA_HOME

    2.3 Host文件 /etc/hosts

    配置为: ip地址 主机名 域名

    例如: 192.168.169.136 moyue www.moyue.com

    主机名称与ip地址映射的好处:可以直接使用主机名称或域名代替ip地址

    2.4 查看网卡配置信息

    • 查看网卡 /etc/sysconfig/network-scripts/ifcfg-eth0

      • 如何重启网络设置 #|$ service network restart

      • 如何启动图形管理界面来配置网卡 #|$ setup

    2.5 权限文件 /etc/sudoers

    在文件的最上插入 USERNAME ALL=(root)NOPASSWD:ALL

    修改权限文件如上,则凡是需要root用户的操作的命令,前面加sudo即可

    2.6 系统的编码文件 /etc/sysconfig/i18n

    修改系统的编码为UTF,解决不能保存中文问题: LANG="en_US.UTF-8"

    Windows的默认编码为GBK,Linux的默认编码为UTF-8。在Windows下编辑的中文,在Linux下显示为乱码。为了解决此问题,修改Linux的默认编码为GBK。方法如下:

    • 方法1
      • vi /etc/sysconfig/i18n, 文件内容默认为:
    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    

    修改为:

    export LC_ALL="zh_CN.GBK"
    export LANG="zh_CN.GBK"
    
    • 方法2
      • vi /etc/profile

    修改为:

    LANG="zh_CN.GBK"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
    SYSFONT="latarcyrheb-sun16"
    

    2.7 防火墙文件 /etc/sysconfig/iptables

    查看 # service iptables status

    关闭 # service iptables stop

    开启 # service iptables start(restart)

    永久性设置防火墙关闭/开启 # chkconfig iptables off/on

    放行某个端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

    2.8 开机执行脚本文件

    编辑 /etc/rc.d/rc.local 文件内容,往里面添加开机想执行的内容即可

    2.9 修改远程登录进入默认目录

    修改远程登录进入默认目录

    • 进入当前用户目录 cd ~

    • 编辑 .bashrc,往里面添加要跳转的目录,比如 cd /usr/local


    3 定时调度

    在Linux当中,自带的调度功能Crontab,针对用户,每个用户都可以调度自己的任务

    • 列出当前所有的定时任务 #|$ crontab -l

    • 删除所有的定时任务(若要删除部分,直接编辑文件,用#注释即可) #|$ crontab -r

    • 编辑自己的定时任务 #|$ crontab -e

    crontab的基本定义: * * * * * command (6个字段,前面固定5个,所有字段之间空格隔开),前面5个代表时间,即:每分、时、日、月、星期执行一次,command代表具体命令

    每个星的解释:

    * * * * *
    分:1-59 时:0-23 日:1—31 月:1-12 星期:0-6
      1. 每2分钟执行一次   */2 * * * * command
    
      2. 每2小时执行一次   * */2 * * * command
    
      3. 每2天执行一次     * * */2 * * command
    
      4. 每2个月执行一次   * * * */2 * command
    
      5. 每2星期执行一次   * * * * */2 command
    
      6. 每晚9:30执行一次 30 21 * * * command
    
      7. 每月1号、11号、21号的2:31执行一次  31 2 1,11,21 * * command
    
    技巧:
    
      如果是数字,则遇到数字就执行一次
    
      如果是星星,*代表每单位执行一次,*/2代表每2个单位执行一次,依此类推	
    
      8. 每天20:00 到23:00, 每半个小时执行一次
    
      语意翻译: 每30分钟执行一次,在20点21点22点23点的时候执行
      
      即:
    	*/30 20,21,22,23 * * * command
    
      补充:
    
    	20点开始,所以可以认为每半个小时就是每次遇到0和30的时候;
    
    	20到23点这段连续的时间,也可以写作20-23
    
    	因此,上面的命令也可以写作:
    
    		0,30 20-23 * * * command	
    
    

    4 Shell基础编程

    Shell是一段写好的可以执行的脚本,通常以.sh作为后缀名

    bin目录下的Shell脚本执行程序:sh和bash

     **sh是bash的一个软链接**
    
     #|$ cd /bin
    
     #|$ ll得到
    
       lrwxrwxrwx. 1 root root      4 Oct  7 05:43 sh -> bash
    
      由此可以看出,sh是bash的一个软链接[sh -> bash]
    

    通常情况下,再sh脚本的第一行,会指定用哪个脚本来执行它本身 #!/bin/bash 或者 #!/bin/sh

    除了第一行,其他行中出现#都代表注释

    • 变量

      • 根据作用域,变量分为:

        本地变量:在shell脚本中声明,只在该脚本有效

        环境变量:又称全局变量,在shell脚本中,所有的进程都有效

      • 变量的赋值

        VARIABLENAME=VALUE

        注意事项:等号两边不能有空格,如果要赋值为空值,可以在等号后边加上一个换行符

      • 显示变量的值

        echo $VARIABLENAME 或 echo ${VARIABLENAME}

        显示所有的变量 set

      • 清除变量

        unset $VARIABLENAME

      • 创建全局变量

        export VARIABLE=VALUE

        注意事项:
          * 全局变量按照惯例全部都应该大写
          * 可被所有的shell环境下访问
          * 如果父工程产生了子工程,则环境变量可被继承并复制
    
    • 位置参量

      • sh脚本后面所加的参数就是位置参量,多个参数之间用空格隔开那么如果某个参数有空格,那么该参数必须用引号括起来

      • 位置参量是一组特殊的内置变量,通常被shell脚本用来接收命令行接受的参数,或被函数用来保存传递给它的参数

      • 在脚本中,如果需要使用传递过来的位置参量,用$NUM来接收,其中NUM为参数的位置,$1:第一个参数

    	注意事项:
    		大于9的参数位置都必须用{}包裹,即${10}
    		$0: 表示当前脚本的文件名
    		$#: 表示实际传入的参数个数
    		$*: 将所有的参数拼成一个字符串显示出来,每个参数用一个空格隔开
    		$@: 没有加双引号的时候和$*一样,加了双引号有区别
    		$$: 脚本运行的当前进程号
    		$!: 最后一个运行的进程号
    		$?: 显示前面最后一个命令的退出状态,0表示么有错误,其他值为有错误
    			备注:linux所有的命令都有一个状态码
    
    • 数组
      • 数组的定义 arr=(var1 var2 ..)

      • 获得数组的值 ${arr[index]}

          备注:
    	获得所有的元素 ${arr[*]}
    	获得元素的个数 ${#arr[*]}
    
    • 给数组中的元素赋值 arr[index]=NEWVAL

    • 时间

      • 显示时间 date

      • 格式化(不会就man或help一下) date +%Y-%m-%ddate +%Y/%m/%d

      • 赋值某个变量 var=$(date)

      • 时间的增加和减少

        var=$(date --date='1 days')      : 明天
    
        var=$(date --date='-1 days')     : 昨天
    
        var=$(date --date='1 days ago')  : 昨天
    
        var=$(date --date='-1 days ago') : 明天
    
    • 日历

      • cal

      • cal 2016

      • cal 09 2016

    • test判断

      test -e filename
        -e: 该文件/文件夹是否存在[exists]
        -f: 该文件是否存在
        -d: 该文件夹是否存在
        -r: 该文件/文件夹是否可读
        -w: 该文件/文件夹是否可写
        -x: 该文件/文件夹是否可执行		
    
      test -eq NUMBER
        -eq: -ne: -gt: -lt: -ge: -le: 两个整数之间的数值判断
    
      test -z string
        -z: 字符串是否为0?若为空字符串,则为true
        -n: 字符串是否非为0?若为空字符串,则为false
        str1 = str2: 两个字符串是否相等
        str1 != str: 两个字符串是否不等
    
      test 等价
        test -e filename 等价于 [ -e filename]
    
    • if判断
      if [ balabala ]; then
        balabala
      elif [ balabala ]; then
        balabala
      else
        balabala
      fi
    
    • 循环
      for循环1
    
      for var in 1 2 3 4 5
      do
        balabala
      done
    
      for循环2
    
      for((i=0;i<${num};i=i+1))
      do	
        balabala
      done
    
      while循环1
    
      while [condition]
      do
        balabala
      done
    
      while循环2
    
      until [condition]
      do
        balabala
      done
    
    • $(整体):

      因为$(num1) + $(num2)不是整体,所以需要变成整体 ($(num1) + $(num2))

      编程整体后,使用$()对整体进行解析,才能完成相加 $(($(num1) + $(num2)))

  • 相关阅读:
    .Matrix-第三篇冲刺随笔
    .Matrix-第二篇冲刺随笔
    Alpha冲刺-第九次冲刺笔记
    Alpha冲刺-第八次冲刺笔记
    Alpha冲刺-第七次冲刺笔记
    Alpha冲刺-第六次冲刺笔记
    Alpha冲刺-第五次冲刺笔记
    Alpha冲刺-第四次冲刺笔记
    Alpha冲刺-第三次冲刺笔记
    Alpha冲刺-第二次冲刺笔记
  • 原文地址:https://www.cnblogs.com/qq438649499/p/12143115.html
Copyright © 2020-2023  润新知