Linux

Linux Commends

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ls  -- 展开目录 
ls -a -- 包括隐藏文件
ls /usr -- 针对根目录查看当前usr下文件目录
ll -- 展开目录并显示文件等的信息

cd / -- 回到根目录
cdcd ~ -- 用户目录 /root => 系统管理员 超级权限者的用户主目录

clear -- 清屏
ctrl+l -- 同上

mkdir folder => 创建文件夹 单个
mkdir -p sh/folder 多层目录

touch file.js => 创建文件

rm -f -- 删除文件
rm -rf -- 遍历强制删除任何文件 *包括空文件夹
pwd -- 显示当前目录

vim file.js -- 编辑文件 (没有会自创建)
vi file.js -- 基本同上

cat file.js -- 查看文件内容

mv -- 将文件或目录改名或将文件由一个目录移入另一个目录中
cp -- 用于复制文件或目录的指令

Vim操作相关

1
2
3
4
5
6
7
8
:w - 保存文件,不退出vim。
:w file - 将修改另外保存到file中,不退出vim。
:w! - 强制保存,不退出vim 。
:wq - 保存文件,退出vim。
:wq! - 强制保存文件,退出vim。
:q - 不保存文件,退出vim。
:q! - 不保存文件,强制退出vim。
:e! - 放弃所有修改,从上次保存文件开始再编辑。

Linux添加环境变量?

以宝塔安装的nodejs为例

1
2
3
4
5
6
7
8
9
10
# 1.直接在命令行下执行 (这种情况下次登录sh需要重新设置,不建议)
# node -v 检测是否ok
export PATH=$PATH:/www/server/nodejs/v16.15.1/bin

# 2. 在/etc/profile.d/ 创建sh来设置 (*推荐使用)
https://blog.csdn.net/weixin_43277055/article/details/125037546

- vim /etc/profile.d/example.sh 编辑环境变量即可
- source /etc/profile 立即生效
- echo $EXAMPLE 查看变量是否生效

Linux上运行Spring-boot项目(java)?

  • 控制台启动模式 霸屏模式 关闭此窗口 项目就会关闭 java -jar xxx.jar
  • 后台启动 nohup java -jar xxx.jar

CronTab开启定时任务执行脚本?

crontab命令

  • crontab -l //查看定时任务列表
  • crontab -e //编辑定时任务
  • /sbin/service crond start //启动服务
  • /sbin/service crond stop //关闭服务
  • /sbin/service crond restart //重启服务
  • /sbin/service crond reload //重新载入配置
  • /sbin/service crond status //查看当前服务状态
  • tail -n 30 /var/log/cron // 查看crontab日志 当设置了没有生效的情况 这很有用

实现步骤

  • 定义执行的脚本 ~/scripts/signIn/app.js 比如实现签到功能之类的
    1
    2
    # 定时执行脚本
    /www/server/nodejs/v16.15.1/bin/node ~/scripts/signIn/app.js
  • crontab -e 添加定时任务
  • 查看crontab的启动状态是否ok
    1
    2
    3
    # 进入编辑任务模式
    crontab -e
    0 0 * * * ~/sh/sign.sh

案例

1
2
3
4
# 每天23点50后执行脚本 已经更改为计划任务
50 23 * * * /www/server/nodejs/v16.15.1/bin/node ~/scripts/signin/exchange_miles.js
30 0 * * * /www/server/cron/24a02090260af168a1b46ab780c6ab03 >> /www/server/cron/24a02090260af168a1b46ab780c6ab03.log 2>&1
0 9 * * * /www/server/cron/143b83a532fd43e907241418cb2fabe4 >> /www/server/cron/143b83a532fd43e907241418cb2fabe4.log 2>&1

Linux服务器重启、关机操作

Linux系统防火墙

网络端口状况

1
2
3
4
5
# 查看tcp端口是否被占用
netstat -nultp

# 过滤选择查看某个端口
netstat -anp | grep 8000

进程状况

1
2
3
4
5
6
7
8
9
10
11
# 查看所有进程
ps -ef 或者 ps uat -- 区别在于展示风格不同

# 过滤查看mysql进程
ps -ef | grep process(eg.mysql)

# 查看某个进程的pid
pgrep process(eg.mysql)

# 杀掉某个进程
kill -s 9 pid(eg.12485)

Yum操作

1
2
3
4
5
# 安装
yum install -y package(eg.ngnix)

# 移除单个或者多个
yum remove wget unzip -y

压缩解压文件

zip

1
2
3
4
5
# 压缩
zip -r demo.zip demo

# 解压xxx.zip 到当前目录
unzip xxx.zip -d .

tar

1
2
3
4
5
6
# 压缩
tar zcvf demo.tar.gz demo

# 解压
tar -xvf demo.tar
tar -xvf demo.tar.gz

链接远程服务器

  1. Mac
    1
    $ ssh root@119.23.208.xx 

文件上传下载

windows

  1. 安装lrzsz

    1
    2
    3
    4
    5
    # 安装
    yum install lrzsz -y

    # 验证
    rpm -qa | grep lrzsz
  2. 上传

1
rz
  1. 下载
1
sz xxx

mac

  1. 上传

    1
    2
    3
    4
    5
    6
    7
    # 基于本地终端操作 默认上传到目录为用户目录 如下:我用户目录存在test文件夹

    # 上传文件
    scp docker.md root@119.23.208.253:./test/docker.md

    # 上传文件夹 xxx为某个文件夹
    scp -r xxx root@119.23.208.253:./
  2. 下载

1
2
3
4
5
6
7
# 基于本地终端

# 下载文件
scp root@119.23.208.253:/root/docker.md .

# 下载文件夹test
scp -r root@119.23.208.253:/root/test .