个人常用实用的简单Linux命令总结
cd /usr/local/test //切换目录
ls //列出当前目录下的所有文件和目录
ll //列出当前目录下的所有文件和目录的详细信息
pwd //显示当前目录的路径
mv /usr/local/test /usr/local/test1 //将test文件夹重命名为test1
cp /usr/local/test/a.sh /usr/local/test1/a.sh //将test下的a.sh复制到test1目录下
scp abc.jar root@hostname:/usr/local/src/ //传输当前目录下的abc.jar包到远程主机的指定目录下
scp root@hostname:/usr/local/abc.jar. //将远程主机下特定文件下载到本机当前目录下
ifconfig //查看本机网卡信息
netstat -tnl //查看正在监听的端口
tar -zxvf pipala.tar.gz //解压包
clear //清屏
su username //切换用户
tailf -10 info.log //实时从info.log文件的最后十行开始查看
tail -20 info.log //查看info.log的最后20行
more -10 info.log //从头开始按每10行读info.log文件,空格切下一个十行
systemctl status/start/stop/restart firewalld //管理防火墙服务
firewall-cmd --list-ports //列出正在监听的端口号
firewall-cmd --add-port=9998/tcp --permanent //添加需要开放的端口
firewall-cmd --remove-port=8080/tcp --permanent //关闭端口
firewall-cmd --reload //使修改生效(仅主机当前生命周期内)
wget http://zookeeper.org/zookeeper.xx.tar.gz //下载文件
shutdown -h now //立即关机
free -g //查看内存使用情况(以G为单位,-m则以M为单位)
top //实时查看主机各项指标使用情况
ps -ef | grep java //查看正在运行的java项目进程
vmstat //查看计算机指标
df -ll //查看磁盘使用状况
kill -9 PID //强制杀死进程号为PID的进程
yum install //安装软件
touch abc.md //创建abc.md文件
vim abc.md //编辑abc.md
mkdir directory1 //在当前目录下新建目录
一个好用的Java应用服务器启动/停止/重启脚本
1
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=NettyServer-1.0-SNAPSHOT.jar
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup java -jar -Xms1024m -Xmx1024m -Xmn256m -XX:PermSize=512m -XX:MaxPermSize=512m /root/HttpNetty/nettyserver/$APP_NAME > /root/HttpNetty/nettyserver/serverrunning.log 2>&1 &
echo "${APP_NAME} start success"
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is active. Pid is ${pid}"
else
echo "${APP_NAME} is inactive."
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
2
#!/bin/sh
source /etc/profile
USER=admin
SERVICEPATH=/home/admin
LOGPATH=/data/logs
SERVICE=$(cd $(dirname $0); pwd | awk -F '/' '{print $(NF)}')
MEMORY=512m
GCLOG="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:${LOGPATH}/${SERVICE}/${SERVICE}.gc "
HEAPDUMP="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOGPATH}/${SERVICE}/${SERVICE}.heap"
if [[ -f $SERVICEPATH/${SERVICE}/args.sh ]];then
source $SERVICEPATH/${SERVICE}/args.sh
else
ARGS=''
fi
# SERVICE=可以手动定义,默认取上一级目录名
LOGS=/data/logs
mkdir -pv ${LOGS}/${SERVICE}
Start() {
proc=$(ps -ef | grep ${SERVICEPATH}/${SERVICE}/${SERVICE}.jar | grep -v grep | wc -l)
if [[ $proc != 0 ]];then
exit 5
fi
if [[ `whoami` == 'root' ]];then
exec su admin -c "java -server -Xms${MEMORY} -Xmx${MEMORY} ${GCLOG} ${HEAPDUMP} $ARGS -Dlogging.config=${SERVICEPATH}/${SERVICE}/logback-spring.xml -Dspring.config.location=${SERVICEPATH}/${SERVICE}/application.properties -jar ${SERVICEPATH}/${SERVICE}/${SERVICE}.jar >> ${LOGPATH}/${SERVICE}/${SERVICE}.log 2>&1 &"
elif [[ `whoami` == 'admin' ]];then
exec java -server -Xms${MEMORY} -Xmx${MEMORY} ${GCLOG} ${HEAPDUMP} $ARGS -Dlogging.config=${SERVICEPATH}/${SERVICE}/logback-spring.xml -Dspring.config.location=${SERVICEPATH}/${SERVICE}/application.properties -jar ${SERVICEPATH}/${SERVICE}/${SERVICE}.jar >> ${LOGPATH}/${SERVICE}/${SERVICE}.log 2>&1 &
else
echo "Run with admin user"
exit 10
fi
}
Stop() {
ps -ef | grep ${SERVICEPATH}/${SERVICE}/${SERVICE}.jar | grep -v grep | awk '{print $2}'| xargs kill
sleep 3
proc=$(ps -ef | grep ${SERVICEPATH}/${SERVICE}/${SERVICE}.jar | grep -v grep | wc -l)
if [[ $proc != 0 ]];then
ps -ef | grep ${SERVICEPATH}/${SERVICE}/${SERVICE}.jar | grep -v grep | awk '{print $2}'| xargs kill -9
fi
}
Restart() {
Stop
Start
}
case $1 in
start|run)
Start
;;
stop)
Stop
;;
restart)
Restart
;;
*)
Start
;;
esac