zoukankan      html  css  js  c++  java
  • linux常用命令总结

    1、shell中判断文件或文件夹是否存在

    #shell判断文件夹是否存在
    
    #如果文件夹不存在,创建文件夹
    if [ ! -d "/myfolder" ]; then
      mkdir /myfolder
    fi
    
    #shell判断文件,目录是否存在或者具有权限
    folder="/var/www/"
    file="/var/www/log"
    
    # -x 参数判断 $folder 是否存在并且是否具有可执行权限
    if [ ! -x "$folder" ]; then
      mkdir "$folder"
    fi
    
    # -d 参数判断 $folder 是否存在,-p参数表示多级目录逐级创建
    if [ ! -d "$folder" ]; then
      mkdir -p "$folder"
    fi
    
    # -f 参数判断 $file 是否存在
    if [ ! -f "$file" ]; then
      touch "$file"
    fi
    
    # -n 判断一个变量是否有值
    if [ ! -n "$var" ]; then
      echo "$var is empty"
      exit 0
    fi
    
    # 判断两个变量是否相等
    if [ "$var1" = "$var2" ]; then
      echo '$var1 eq $var2'
    else
      echo '$var1 not eq $var2'
    fi

    2、Linux下查看是否安装某软件包

    (1)、rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"

    (2)、以deb包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep "软件或者包的名字"

    (3)、yum方法安装的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "软件名或者包名"

    3、查找某个关键线程的PID

    _SENSU_CLIENT_KEYWORDS=sensu-client
    _SENSU_CLIENT_PID=$( ps aux | grep ${_SENSU_CLIENT_KEYWORDS} | grep -v grep | awk '{print $2}' )

     4、Sed命令在指定行插入内容

    在指定行数之前

    sed -i '363i AddType application/x-httpd-php .php' /usr/local/webserver/apache/conf/httpd.conf
    
    • 在httpd.conf文件的第363行的上面插入 AddType application/x-httpd-php .php
    • AddType application/x-httpd-php .php 所在行为第363行,原来行变成了第364行!

    注意在行数后面的字母“i”

    在指定行数之后

    sed -i '363a AddType application/x-httpd-php .php' /usr/local/webserver/apache/conf/httpd.conf
    
    • 在test.txt文件的第363行的下面插入 AddType application/x-httpd-php .php
    • AddType application/x-httpd-php .php 所在行为第364行,原来行不变任然为第363行!

    注意在行数后面的字母“a”

    5、vim中替换字符串命令

    :s/vivian/sky/ 替换当前行第一个 vivian 为 sky
    :s/vivian/sky/g 替换当前行所有 vivian 为 sky

    :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
    :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

    6、挂载iso文件到指定路径

     mount –o loop linux.iso /mnt/iso

    7、全部删除/全部复制/全部高亮显示

    全部删除:按esc后,然后dG
    全部复制:按esc后,然后ggyG
    全选高亮显示:按esc后,然后ggvG或者ggVG 

    8、启动服务到后台

    nohup ./prometheus > prometheus.log 2>&1 &

     9、在linux中发邮件:

    echo "hello world" | mail -s "a subject" someone@somewhere.com

    邮件主题是:a subject,  内容是:hello world,  邮件地址是:someone@somewhere.com

    10、shell中循环数据

    #!/bin/bash
    string="hello,shell,haha"  
    array=(${string//,/ })  
    for var in ${array[@]}
    do
       echo $var
    done 
  • 相关阅读:
    计算机网络面试小知识总结(转载)
    williamisnotme@gmail.com
    jdk1,8 HashMap
    Mybatis 为什么不要用二级缓存
    CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
    一级缓存,二级缓存
    mock单测
    java8函数式编程(转载)
    volatile解析
    JVM 技术分享(初级)
  • 原文地址:https://www.cnblogs.com/ahang/p/5784069.html
Copyright © 2011-2022 走看看