# 常用命令
# 查看当前下的路径
pwd
# 列出所有文件
ls
-l 以列表的样式列出所有文件
-a 显示隐藏文件
-l -h 或者 - lh 显示文件大小
*.txt 查找以 txt 结尾的文件
a. 查找以 a 开头的文件 *
* 0 个或任意多个字符
? 一个字符
[abcd] abcd 中的一个字符
[a-z] a 到 z 中的一个字符
# 进入文件
cd
.. 返回上一级
- 在两个目录来回切换
~ 返回根目录
# 自动补全
tab
# 上下键
获取上次的命令,获取下次的命令
# 清屏
clear
# 查看 IP 地址
ip addr
# 端口号
# 查询被占用的端口号
ps aux
# 查询某个应用占用的端口号
ps -ef | grep 应用名
# 文件操作
# 创建文件
touch
文件名 创建文件
. 文件名 创建隐藏文件
# 创建文件夹
mkdir
# 删除
rm
-d 或 - r 文件夹名 删除文件夹
# 移动
mv
mv a b 将 a 文件移动到 b 文件夹下
mv a ./b 将 a 文件移动到当前目录并改名
# 复制
cp
cp a b 将 a 文件复制到 b 文件夹下
# 编辑
vi
i 进行编辑
q 推出程序
w 保存文件
按下 ESC,输入:wq 保存
# 查看文件
tail/cat
# 设置为可执行文件
以 ch 为后缀的文件
chmod +x 文件
# 管理员操作
su 切换到超级用户
reboot 重启
halt 关机
# 修改密码
passwd
# 下载命令
# 下载 vim 编辑器
yum -y install vim*
# 下载 jdk1.8
yum install java-1.8.0-openjdk -y*
# 下载 Git
yum install git
# 虚拟机
# 共享文件
创建一个共享文件夹,该文件在虚拟机上 mnt/hgfs 文件夹下
如果 /mnt 目录下有 hgfs,但 hgfs 下没有共享文件,输入 vmware-hgfsclient 时却能看到共享文件夹名称,那下载工具
yum install -y open-vm-tools-devel
然后执行以下命令就 ok 了
vmhgfs-fuse .host:/ /mnt/hgfs
# 云服务器
# 持久运行 springboot 项目
命令
nohup java -jar xxx.jar > system.log 2>&1 &
nohub 一般形式为如下:
nohub command &
但是当你退出账户时,仍然会停止对应的进程。
所以这就需要你在后面添加 2>&1 &(相当于正常退出,仍保持命令在后台运行)
上面这个 command 正好对上 java -jar blog.jar > system.log
“>” 输出重定向,通常用于输出日志
ps -a 可以查看 Java 程序运行的进程号,使用 kill -9 进程号可以杀死进程。
# 定时清理日志
使用以上命令会比较繁琐,改用文件操作
使用三个文件来管理 jar
springboot 打包的 jar 为 springboot.jar
打印的日志文件为 springboot.log
# start.sh
#start.sh 负责启动,注意这里是 >> 追加,后面会说明为什么用 >> | |
echo platformUpload-0.01.jar start | |
nohup java -jar springboot.jar >>springboot.log & |
# stop.sh
#stop.sh 负责关闭应用 | |
PID=$(ps -ef | grep springboot.jar | grep -v grep | awk '{ print $2 }') | |
if [ -z "$PID" ] | |
then | |
echo Application is already stopped | |
else | |
echo kill $PID | |
echo springboot.jar stopped | |
kill $PID | |
fi |
# run.sh
#run.sh 先关闭应用再启动应用,并且删除原来的所有日志文件 | |
echo stop application | |
source stop.sh | |
echo delete logs and springboot.log | |
rm -rf ./logs | |
rm -rf springboot.log | |
echo start application | |
source start.sh |
# 注意
如果执行报错,记得授权:chmod u+x *.sh
当日志文件过大该怎么处理?
如果直接删除 springboot.log,将不会再打印日志
nohup java -jar xxx.jar >springboot.log &
我这里重定向到了 springboot.log 文件;
这种方式应用重新启动后,运行日志会自动清空;
在使用 cat /dev/null >run.log 清空日志后,原来的文件空间还在;但是下一次日志再写入时,原来的空间还是被占用,打开文件查看,发现之前的被空替代 (内容位置还在);
解决方法
nohup java -jar xxx.jar >>run.log & -- 追加形式 (推荐的)
这种方式应用重新启动后,运行日志不会自动清空;
在使用 cat /dev/null >run.log 清空后,原来的文件空间全部清空;
这个才是我们需要的;这里 解释了上面的 start.sh 文件使用 >> 原因;
# 编写分割日志的 splitRunLog.sh
# Author: | |
# Last Update: 2021 年 4 月 6 日 13:03:51 | |
# Description: springboot.log 日志分割 | |
this_path=$(cd `dirname $0`;pwd) #根据脚本所在路径 | |
current_date=`date -d "-1 day" "+%Y%m%d"` #列出时间 | |
cd $this_path | |
echo $this_path | |
echo $current_date | |
do_split () { | |
[ ! -d runlogs ] && mkdir -p runlogs | |
split -b 20k -d -a 4 ./springboot.log ./springbootlogs/springboot-${current_date} #切分20k每块至springbootlogs文件中,格式为:springboot-xxxxxxxxxx | |
if [ $? -eq 0 ];then | |
echo "Split is finished!" | |
else | |
echo "Split is Failed!" | |
exit 1 | |
fi | |
} | |
do_del_log() { | |
find ./springbootlogs -type f -ctime +30 | xargs rm -rf #清理30天前创建的日志 | |
cat /dev/null > springboot.log #清空当前目录的run.log文件 | |
} | |
if do_split ;then | |
do_del_log | |
echo "springboot.log is split Success" | |
else | |
echo "springboot.log is split Failure" | |
exit 2 | |
fi | |
# crontab -e 添加定时任务:每周第一天的 1 点执行一次 | |
#0 1 * * */1 /xxx/xxx/xxx.sh &>/dev/null |
# 写入定时任务 crontab(注:这里最好写绝对路径)
打开命令行,输入 | |
crontab -e | |
#添加如下指令,保存即可 | |
# 16:26 分执行 | |
添加以下内容 | |
26 16 * * * /xxx/xxx/xxx/splitRunLog.sh &>/dev/null | |
############################################################################# | |
#第一列 分钟: 1——59 | |
#第二列 小时: 0——23 | |
#第三列 日 : 1——31 | |
#第四列 月 : 1——12 | |
#第五列 星期: 星期 0——6 (0 表示周天,1 表示周一。。。) | |
#第六列 要运行的任务命令(0 表示键盘输入;1 表示标准输出;2 表示错误输出)默认值为 1 | |
#前面五列有四种写法: | |
#* 表示第几分钟(小时 / 日 / 月 / 星期)执行一次; | |
#*/n 表示每 n 分钟(小时 / 日 / 月 / 星期)执行一次; | |
#T1-T2 表示从 T1 到 T2 分钟(小时 / 日 / 月 / 星期)要执行任务; | |
#a,b,c 表示 a,b,c 分钟(小时 / 日 / 月 / 星期)分别执行一次; |
# 安装字体
查看当前字体库命令行
fc-list :lang=zh
从网络上下载字体或者直接从其他计算机(windows)上拷贝
建立 /usr/share/fonts/chinese,存放中文字体
cd /usr/share/fonts/
sudo chmod -R myfonts 755
# 如果fonts/目录不存在,则创建
把下载好的字体拷贝到
/usr/share/fonts/myfonts
目录下:建立字体缓存
mkfontscale
# 如果提示 mkfontscale: command not found
# 在Ubuntu下运行如下命令
# sudo apt-get install ttf-mscorefonts-installer
# 在cent os下运行如下命令
# yum install mkfontscale
mkfontdir
fc-cache -fv
# 如果提示 fc-cache: command not found
# 在Ubuntu下运行如下命令
# sudo apt-get install fontconfig
# 在cent os下运行如下命令
# yum install fontconfig