打赏

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 

 

posted @ 2016-08-18 15:23  矮子爬楼梯  阅读(286)  评论(0编辑  收藏  举报