【Linux】一篇文章带你入门服务器上linux项目相关操作

目录

一、服务器:

  • 公网:xxx.xxx.xxx.xxx
    • 账号:xxx
    • 密码:xxxxxxxxxx

相关操作:

  • 编译:

    • 在CMakeList.txt所在的路径下使用cmake.
      • 或者在build文件夹下使用cmake …
    • 再使用make.
      • 或者在build文件夹下使用make …
  • 运行:

    • 直接运行./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

二、部署项目流程:

  1. ps -ef | grep ‘project-name’ 或 top -u ‘user-name’ 查看项目的进程PID
  2. kill -9 ‘PID’ 杀死当前进程
  3. git branch 查看当前分支
  4. git pull origin 拉取远程分支到分支目录
  5. git checkout ‘branchName’ 切换到需要的分支 git checkout -b ‘branchName’ 基于当前分支生成新的分支
  6. git pull origin ‘branchName’ 拉取分支的commit
  7. 进入项目的build文件夹
    1. make clean 删除生成的exe文件
    2. cmake … 注意两个点,生成cmake缓存
    3. make -j8 生成exe文件
    4. nohup ./‘exe-name’ & 运行exe文件,&表示将日志后台输出
    5. tail -f nohup.out 查看日志
  8. 到此结束

三、使用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"

四、上传下载及索引排序

  • 下载上传4G以内的文件

    • sz filename 下载
    • rz 上传
  • 按时间或大小排序

    • ll -rt 按时间排序
    • ll -Sh 按大小排序
    • -t 进行降序

五、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撤销某个文件在服务器上的修改

六、日志相关操作

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 添加行号

  1. 在vi编辑器的"命令模式"下键入“:set nu”可临时加上行号;
  2. 进行如下操作永久设置行号: Teminal下键入“vi ~/.vimrc”,在空白页编辑 “set nu” 保存退出(按ESC退出,输入:wq 保存),重新打开vi编辑器即可。

七、shell 脚本相关操作

Refs:

#! /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来处理。。。

猜你喜欢

转载自blog.csdn.net/Daibvly/article/details/125409083