Linux常用命令
菜鸟辅助
文件操作
ls列出当前目录文件ls -l列出当前目录文件详细信息ls -a列出当前目录所有文件,包含隐藏文件ls -lh列出当前目录文件详细信息,并以可读大小显示ls -lhR递归列出当前目录文件详细信息,并以可读大小显示cd切换目录cd ..切换到上一级目录cd ../..切换到上上级目录cd ~切换到当前用户目录cd -切换到上一次所在目录pwd显示当前目录mkdir创建目录mkdir -p递归创建目录rmdir删除目录rm -rf递归删除目录rm -rf *递归删除当前目录所有文件rm -rf *.txt递归删除当前目录所有 txt 文件mv移动文件mv -f强制移动文件mv -i交互式移动文件mv -v显示移动进度cp复制文件cp -r递归复制文件cp -f强制复制文件cp -i交互式复制文件cp -v显示复制进度touch创建文件cat显示文件内容cat >创建文件并写入内容cat >>追加内容到文件more逐屏显示文件内容less逐屏显示文件内容head显示文件前几行内容tail显示文件后几行内容grep搜索文件内容grep -n搜索文件内容并显示行号grep -v反向搜索文件内容grep -i忽略大小写搜索文件内容grep -E扩展正则表达式搜索文件内容grep -w精确匹配搜索文件内容grep -A显示匹配行后几行内容grep -B显示匹配行前几行内容grep -C显示匹配行前后几行内容grep -r递归搜索文件内容find搜索文件find -name搜索文件名find -iname忽略大小写搜索文件名find -type搜索文件类型find -size搜索文件大小find -user搜索文件所有者find -group搜索文件所属组find -perm搜索文件权限find -mtime搜索文件修改时间find -mmin搜索文件修改时间find -atime搜索文件访问时间find -ctime搜索文件状态改变时间find -exec执行命令find -execdir执行命令find -delete删除文件
工具SHELL合集
常用工具
# 生成随机字符串,数字为字符串长度
openssl rand -base64 32
# 生成随机16进制字符串
openssl rand -hex 32
# 符串进行 Base64 编码
echo -n "字符串" | base64
echo -n "hello" | base64
# 解码字符串
echo "Base64字符串" | base64 --decode
echo "aGVsbG8=" | base64 --decode
# 解码文件内容
base64 --decode 文件名目录结构
.
├── conf
│ ├── application.yaml
│ └── log4j2.xml
├── kdaiy-futures-1.0-release.jar
├── logs
│ ├── app.log
│ └── error.log
└── run.sh批量执行Jar
#!/bin/bash
source /etc/profile
jar_list=(kdaiy-futures-*.jar)
#-Dfile.encoding=utf-8 -Duser.timezone=Asia/Shanghai
jvm_args=""
# 指定外部配置文件。
app_args="--spring.config.location=./conf/application.yaml"
cd /data/iapps/kdaiy-future
function stopJar(){
lt=${#jar_list[*]}
for ((i = 0;i< $lt; i++))
do
num=`ps -ef|grep -v grep |grep ${jar_list[$i]}|awk '{printf $2" "}'`
if [[ -n $num ]];then
if [ "$2" == "-f" ] || [ "$2" == "-F" ];then
kill -9 $num
log "Focus stop ${jar_list[$i]} finish."
else
log "Stop ${jar_list[$i]} use safe mode, please wait a moment..."
kill $num
sleep 10
log "Stop ${jar_list[$i]} finish."
fi
else
warn "${jar_list[$i]} not running."
fi
done
}
function startJar(){
lt=${#jar_list[*]}
for ((i = 0; i < $lt; i++))
do
pid=`ps -ef|grep -v grep |grep ${jar_list[$i]}|awk '{printf $2" "}'`
if [[ -n $pid ]];then
warn "${jar_list[$i]} is running..."
break
fi
# start command
nohup java -jar ${jvm_args} ${jar_list[$i]} ${app_args} > /dev/null 2>&1 &
log "${JAR_LIST[$i]} start running please wait a moment ...."
sleep 5
count=`ps -ef|grep -v grep |grep ${jar_list[$i]}|wc -l`
if [ $count -ne 1 ] && [ -n ${jar_list[$i]} ];then
error "${jar_list[$i]} is Error!"
else
log "${jar_list[$i]} start success."
fi
done
}
function log() {
echo "[INFO] =>> $(date "+%Y-%m-%d %H:%M:%S") $1 "
}
function warn() {
echo "[WARN] =>> $(date "+%Y-%m-%d %H:%M:%S") $1 "
}
function error() {
echo "[ERROR] =>> $(date "+%Y-%m-%d %H:%M:%S") $1 "
}
function Help()
{
echo "用法:$0 [选项]"
echo "选项:"
echo " start 启动jar"
echo " stop 停止jar, -f 强制退出"
echo " restart 重启jar"
echo " help 帮助"
}
case $1 in
start)
startJar
;;
stop)
stopJar $*
;;
restart)
stopJar
sleep 3
startJar
;;
help)
Help
;;
*)
echo " Usage: ./$0 (help|start|stop|restart)"
Help
;;
esactomcat 重启命令,加任意参数杀进程不重启
#!/bin/sh
work_dir=$(cd `dirname $0`;pwd)
cd $work_dir
pid=`ps -ef| grep -v grep| grep tomcat-remote-gauss-8.5.99 | awk '{printf $2}'`
if [ $pid ]; then
kill -9 $pid
echo '===>>kill tomcat pid:'$pid
else
echo 'tomcat not running.'
fi
if [ $1 ]; then
echo 'Tomcat has stop.'
else
rm -rf ./logs/*
rm -rf ./temp/*
echo 'Tomcat will start.'
./bin/startup.sh
tail -f ./logs/catalina.out
fi
echo '===>>finish.'