linux命令

cat|group|sed

cat comm-log | grep "SIDE=P|@|RS-S" | sed 's/ aaa.*//g' |sed 's/info.*cost/ cost/g' | grep "=8[9-9]$" | wc - l

1 sed 再输出
2. ’ ’ 执行的命令
3 ./ 开始将
3. xxx 啥啥啥
4. / 替换为
5. xxx 啥啥啥
6. ./g 结束
例如:
sed ‘s/aaa.*//g’ 将aaa.*后面的字符串包括aaa都替换为 空
sed ‘s/aaa.*bbb/ccc/g’ 将aaa.*bbb的字符串 都替换为ccc

统计某个异常出现的次数

grep -rni 'Exception:' | sed 's/Exception.*/Exception/g' | grep -Eo '[\.a-zA-Z]+Exception' | sort | uniq -c

在这里插入图片描述

sed搜索指定时间的日志

sed -n ‘/超始时间/,/结束时间/p’ xxx.log >> test.log
sed -n ‘//,//p’ xxx.log >> test.log

查找字符在一个目录下

在 /home 目录下的所有文件中查找包含 test 字符串的文件
grep -r -e "test" /home/

解压/压缩jar包

解压缩包

unzip xxx.jar -d test/ 将xxx.jar包解压到test目录里

打jar包

jar cvf0 xxxx.jar ./* 将当前目录打成一个jar包 0表示里面的内容不压缩
一个小例子
在这里插入图片描述

增加MANIFEST.MF文件

jar -uvfm xxx.jar MANIFEST.MF 将MANIFEST.MF文件放入jar包里 通常有时MANIFEST.MF不正确我们要手动弄

lsof

lsof -i:9002 知道9002端口现在运行什么程序

top

top -p xxpidxxx #只显示pid的信息并且为0时也会显示 
top | grep xxxpidxxx 只显示pid信息为0时不显示,不为0时显示

查看磁盘

df -hl 磁盘大小空间使用情况
du -h --max-depth=1 磁盘目录文件大小
du -sh * 查看当前目录下的文件大小

日志操作

不输出日志

/dev/null表示将产生的信息丢弃
nohup sh start.sh &>/dev/null &
nohup java -jar qbsea.jar &>/dev/null &

输出到日志文件

nohup sh start.sh &>xxx.log 2>&1 &
nohup java -jar qbsea.jar &>xxx.log 2>&1 &

清空日志

echo “” > xxx.log

shell

string的substring的方法

#java code
String str="abc";
String target=str.substring(0,1);
//shell code
MEDIUM="abcdabcdabcdabcdabcdabcdabcdabcd";
MEDIUM_LENGTH=${#MEDIUM}
PROXY_PATH=${MEDIUM:0:MEDIUM_LENGTH-7}

引用变量

APP_NAME=user
xxx/$APP_NAME/xxx

#! /bin/sh
JAR_VERSION=1.0.4-SNAPSHOT
JAR_NAME=globalrouter-service-${JAR_VERSION}_original.jar

脚本传参

aaa.sh

#! /bin/sh
MY_PARAM1_INPUT=$1
MY_PARAM2_INPUT=$2
echo $MY_PARAM1_INPUT $MY_PARAM2_INPUT

执行时
./aaa.sh aaa bbb
会输出 aaa bbb
判断脚本的个数 $#

if [$#==2] ; then
    echo "录入了两个参数"
fi

逻辑与 逻辑非

-a 代表逻辑与

#判断两个字符串都不能为空
if[ ! -z "$SEVER_ADDRESS" -a ! -z "$RAFT_CONF" ];
then
    echo " 这两个变量都不能为空"
else
    echo"xxxx"
fi

case

case "$1" in      #$1为变量
   xxxstartxxx)   #匹配上xxxstartxxx
           echo "this is start" #写你要执行的命令
           ;;              #代表命令执行完毕
   xxxstopxxxx)   #匹配上xxxstopxxx
           echo "this is stop" #写你要执行的命令
           ;;              #代表命令执行完毕
   *)           #默认值,没有匹配的模式
           echo "this is default value"  #默认值执行的命令
    ;; 
esac          #代表case语句的结束

if语句

if fi的用户

a=10
b=20
if [ $a < $b ]
then
   echo "a is equal to b"
fi

判断一个字符串变量是否为空

c=""
if [  -z "$c" ]   #判断一个字符串是否为空
then
   echo "c is null"
fi

#判断两个字符串都不能为空
if[ ! -z "$SEVER_ADDRESS" -a ! -z "$RAFT_CONF" ];
then
    echo " 这两个变量都不能为空"
else
    echo"xxxx"
fi

if else fi

a=10
b=20
if [ $a == $b ]
then
  echo "a is equal to b"
else
  echo "a is not equal to b"
fi

敲击脚本目录,具有通用性

#! /bin/bash
cd `dirname $0`
DEPLOY_DIR=`pwd`
echo $DEPLOY_DIR

./bbb.sh 后执行
/applog/maqingbin/shtest

pid记录到文件中去

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
SERVICE_DIR=/maqingbin
PID=qbsea.pid
nohup JAVA_HOME/bin/java -jar qbsea.jar &>/dev/null & #执行程序的命令丢弃日志
echo $!> $SERVICE_DIR/$PID   #$!为最后运行的后台Process的PID 会往qbsea.pid文件里写

调用带返回值命令

kill `cat $SERVICE_DIR/$PID` 也可以利用进行linux调用java获得值
gate=`/usr/lib/jvm/jdk1.7.0_45/bin/java -jar /tmp/maqingbin/linuxCmd.jar` 
if [ $gate -ge  90 ] ; then  
     delFile; 
fi

ps -ef|grep

ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}' 
ps -ef |   全格式显示当前所有进程 
grep -w "$SERVICE_NAME" 滤出"$SERVICE_NAME"的进程
grep -v grep        把grep这个进程忽略掉 
awk '{ print $1; }'    输出第一列```

可以用于git目录下查询某个关键字在哪个文件中

grep -rni "tb_cdr7g" >> test.txt
获取时间倒序的文件
MEDIUM=`ls -rt *.tar.gz|grep db-proxy|tail -n 1`
按数字排序文件
ls | sort -V

linux的日期

currentDate=`date +%Y%m%d_%H%M%S`  #20180525_190115 
mkdir ${currentDate}

linux的rpm

rpm -qa | grep -i mysql   查询mysql这个应用是否有安装 如果有安装会有列表

rpm -ev  xxxMySQL-devel-5.6.23-1.linux_glibc2.5 xxx    删除列表中的组件 
也可以写成  rpm -e --nodeps xxxmysql-libs-5.1.71-1.el6.x86_64xxx 

linux的cpu内存硬盘信息

#查看cpu
cat /proc/cpuinfo | grep 'physical id' |wc -l
#查看内存
cat /proc/meminfo | grep MemTotal
#查看硬盘
lsblk | grep app

问题记录

/bin/bash^M: bad interpreter: No such file or directory

[taoge@localhost learn_shell]$ ./a.sh 
bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory
[taoge@localhost learn_shell]$ 

vi a.sh 执行:set fileformat=unix后执行:x或者:wq保存修改。 然后就可以执行./a.sh运行脚本了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
linux系统命令start-stop-daemon的源码及二进制,其中也提供了一个服务启动脚本模板。 此程序能帮助你实现将命令行程序变成服务运行,比如将"java -jar xxx.jar" 放在后台执行。 ./start-stop-daemon --help start-stop-daemon 1.9.18 for Debian - small and fast C version written by Marek Michalkiewicz , public domain. Usage: start-stop-daemon -S|--start options ... -- arguments ... start-stop-daemon -K|--stop options ... start-stop-daemon -H|--help start-stop-daemon -V|--version Options (at least one of --exec|--pidfile|--user is required): -x|--exec program to start/check if it is running -p|--pidfile pid file to check -c|--chuid change to this user/group before starting process -w|--chdir change the work directory to 'dir' -u|--user | stop processes owned by this user -n|--name stop processes with this name -s|--signal signal to send (default TERM) -a|--startas program to start (default is ) -N|--nicelevel add incr to the process's nice level -b|--background force the process to detach -m|--make-pidfile create the pidfile before starting -R|--retry check whether processes die, and retry -t|--test test mode, don't do anything -o|--oknodo exit status 0 (not 1) if nothing done -q|--quiet be more quiet -v|--verbose be more verbose Retry is |//... where is one of -|[-] send that signal wait that many seconds forever repeat remainder forever or may be just , meaning //KILL/ Exit status: 0 = done 1 = nothing done (=> 0 if --oknodo) 3 = trouble 2 = with --retry, processes wouldn't die
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值