目录
一、服务器:
- 公网:xxx.xxx.xxx.xxx
- 账号:xxx
- 密码:xxxxxxxxxx
相关操作:
-
编译:
- 在CMakeList.txt所在的路径下使用cmake.
- 或者在build文件夹下使用cmake …
- 再使用make.
- 或者在build文件夹下使用make …
- 在CMakeList.txt所在的路径下使用cmake.
-
运行:
- 直接运行./Loki 这种方式不会后台运行
- 使用nohup ./Loki 可以在后台运行
- nohup 即 no hung up
- 一般我们可在结尾加上"&“来将命令同时放入后台运行,也可用”>filename 2>&1"来更改缺省的重定向文件名。
- 采用nohup ./Loki& 更加方便,可以继续使用该终端
-
查看日志:
- tail -f nohup.out
-
查看进程:
-
ps 命令显示运行的进程,还会显示一些pid、cpu、内存使用情况等
-A :所有的进程均显示出来 包括其他terminal -a :不与terminal有关的所有进程 -u :有效用户的相关进程 -x :一般与a参数一起使用,可列出较完整的信息 -l :较长,较详细地将PID的信息列出
-
ps 查找进程id
ps -ef | grep Lokikil
-
-
终止进程:
-
kill 终止进程 kill -9 324423
-
kill -9
pgrep Loki
杀死所有loki进程kill -signal PID 1:SIGHUP,启动被终止的进程 2:SIGINT,相当于输入ctrl+c,中断一个程序的进行 9:SIGKILL,强制中断一个进程的进行 15:SIGTERM,以正常的结束进程方式来终止进程 17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
-
-
查看性能:
-
top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
top [参数] -b 批处理 -c 显示完整的治命令 -I 忽略失效过程 -s 保密模式 -S 累积模式 -i<时间> 设置间隔时间 -u<用户名> 指定用户名 **这个也很好用** -p<进程号> 指定进程 -n<次数> 循环显示的次数
eg: top -p 2913 按 q 返回到命令行
Linux中输入:top 键盘按下:Shift+m 输入q是退出top命令
-
-
显示文件内容:
-
cat 从第一行显示内容
-b:列出行号,只列出非空白行 -n:列出所有行的行号
-
tail 显示文件尾部
tail -10 filename 显示文件最后10行
-
-
查看当前带宽
- nload
-
查看当前工作区所占存储大小
- du -sh
-
core文件相关
-
一般情况下在一个程序崩溃时会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
-
开启或关闭core文件的生成
用以下命令来阻止系统生成core文件:
ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:
ulimit -a该命令将显示所有的用户定制,其中选项-a代表“all”。
也可以修改系统文件来调整core选项
在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合理的:
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1但是在开发过程中有时为了调试问题,还是需要在特定的用户环境下打开core文件产生的设置
在用户的~/.bash_profile里加上ulimit -c unlimited来让特定的用户可以产生core文件
如果ulimit -c 0 则也是禁止产生core文件,而ulimit -c 1024则限制产生的core文件的大小不能超过1024kb
-
二、部署项目流程:
- ps -ef | grep ‘project-name’ 或 top -u ‘user-name’ 查看项目的进程PID
- kill -9 ‘PID’ 杀死当前进程
- git branch 查看当前分支
- git pull origin 拉取远程分支到分支目录
- git checkout ‘branchName’ 切换到需要的分支 git checkout -b ‘branchName’ 基于当前分支生成新的分支
- git pull origin ‘branchName’ 拉取分支的commit
- 进入项目的build文件夹
- make clean 删除生成的exe文件
- cmake … 注意两个点,生成cmake缓存
- make -j8 生成exe文件
- nohup ./‘exe-name’ & 运行exe文件,&表示将日志后台输出
- tail -f nohup.out 查看日志
- 到此结束
三、使用curl可以在linux服务器发送post或get请求:
CURL 发送POST请求_上上黑的博客-CSDN博客_curl post 请求
以下post发送命令有误,参考链接中发送json的方式。
1. get不带参数
curl -v "http://10.1.29.250:30505/mcu/status"
2. get带参数
curl -v "http://10.1.29.250:30505/mcu/status?version=1&client_version=1.1.0&seq=1001&host=aaa.com"
使用&符号将参数分割
3. post不带参数
curl "http://10.1.29.250:30505/mcu/closeRoom"
4. post带参数
curl -d "username=123&password=123" "http://10.1.29.250:30505/mcu/closeRoom"
四、上传下载及索引排序
五、git 相关
获取当前登陆用户:
git config user.name //获取当前登录的用户
git config user.email //获取当前登录用户的邮箱
修改登陆用户:
git config --global user.name 'userName' // 修改登陆账号,userName为你的git账号
git config --global user.email 'email' // 修改登陆邮箱,email为你的git邮箱
git config --global user.password 'password' // 修改登陆密码,password为你的git密码
在同一个分支进行前后版本切换
git checkout [old.commit]
git checkout [latest.commit]
每次git pull / push 都要输入密码
输入 vi .gitconfig进入文件:
如果没有的话就新建.gitconfig文件,例如我的在home/loki/.gitconfig
按键i进入插入模式:
插入以下代码:
[credential]
helper = store -–file .git-credentials
ESC退出编辑 输入括号内容(:wq) 保存退出即可,可能第一次还是需要输入账号密码,之后便可以不用输入
git撤销某个文件在服务器上的修改
-
git checkout – filename 退回到最近一次拉取的提交状态
-
refrence : git撤销某个文件的修改_大叶子不小的博客-CSDN博客_git取消某个文件的修改
六、日志相关操作
tail
-f 监视追加动态的文件 可以加上数字在前面,如 tail -1000f nohup.out
grep
-A5 显示查询到的前5行一起显示
-B5 后5行
-C5 上下5行
--color 查询到的内容高亮显示
常用:
tail -f a.log |grep -E --color 'order|product'
动态展示文件中出现的 order或者product字符 不区分大小写,并且高亮显示
tail -8000f a.log | grep --color --line-buffer "order" | grep --color --line-buffer "product"
动态查询最后8000行,同时查询一条数据中同时包含多个字符串的信息,进行高亮显示, 比如:日志中包含某个方法,并且订单号是多少的日志
cat nohup.out |grep -C200 'error:10002'
查询日志中所有包含 ‘error:10002’ 上下2000行的信息
df -TH 查看磁盘分区情况
vi 添加行号
- 在vi编辑器的"命令模式"下键入“:set nu”可临时加上行号;
- 进行如下操作永久设置行号: Teminal下键入“vi ~/.vimrc”,在空白页编辑 “set nu” 保存退出(按ESC退出,输入:wq 保存),重新打开vi编辑器即可。
七、shell 脚本相关操作
Refs:
- linux 的基本操作(编写shell 脚本)_Chafferer,迷心的博客-CSDN博客_如何进入编写shell
- shell脚本语言(超全超详细)_看见代码就想敲的博客-CSDN博客_shell脚本
- Linux怎么给文件加上可执行权限-百度经验 (baidu.com)
- Linux-如何获取一个进程的ID_LiveEveryDay的博客-CSDN博客_linux获取进程id
- Shell 教程 | 菜鸟教程 (runoob.com)
#! /bin/bash
## author:yangyuhang
## This is a test shell scirpt
## description: 使用方法:
## 如果所作的修改或升级不需要切换分支可以使用该脚本一键执行以下操作,
## 直接将该文件放到build文件夹下,输入命令sh test.sh 便可以顺序执行以下命令,
## 将Loki置换为其他可执行文件的名称即可。
## Warning: 选择适合的make -j 系数
make clean
echo "clean the make file"
git pull
echo "pull the new commit"
cmake ..
echo "generate the new cmakeCache"
make -j8
echo "generate the executable file"
kill -9 $(ps -ef|grep Loki|grep -v grep|head -n 1|awk '{print $2}')
echo "kill Loki"
nohup ./Loki &
echo "start Loki"
tail -100f nohup.out
echo "start log"
八、文件删除相关操作:
1. 删除指定时间前或指定时间内的文件
-
显示指定时间前后文件
显示20分钟前的文件 find /home/prestat/bills/test -type f -mmin +20 -exec ls -l {} \; 显示20分钟内的文件 find /home/prestat/bills/test -type f -mmin -20 -exec ls -l {} \; 显示20天前的文件 find /home/prestat/bills/test -type f -mtime +20 -exec ls -l {} \;
-
删除指定时间前后文件
删除20分钟前的文件 find /home/prestat/bills/test -type f -mmin +20 -exec rm {} \; 删除20分钟内的文件 find /home/prestat/bills/test -type f -mmin -20 -exec rm {} \;
Ref : https://blog.csdn.net/Daisy_ljq/article/details/82260464
2. 恢复rm删除的文件,但是有些操作需要root权限
Ref : https://www.jianshu.com/p/43aa40a5609e
3. linux磁盘空间释放 之 rm 或r m -rf 并不能实现释放
有时候程序运行中磁盘分区空间满而导致程序中断,尝试在未满时删除文件,发现删除后磁盘分区空间并未释放,是因为rm删除的是链接。。。在网上查阅相关的资料了解到在相关的进程结束后,磁盘分区空间才会真正的释放掉。对于空间满的问题大多都建议使用kill来处理。。。