跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)

Revin

首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • Linux

    • Linux 使用
    • Linux 常用命令
      • 1、nohup
      • 2、screen
        • 安装screen
        • 使用
        • 语法
        • 操作
        • 1.启动screen终端
        • 2.离开screen终端
        • 3.重新连接到screen终端
        • 4.中止screen终端
        • 快捷命令
  • Nginx

  • OpenResty 使用
  • LVS+Keepalived 高可用部署
  • jekins

  • DevOps
  • Linux
Revin
2023-08-23
目录

Linux 常用命令

# 1、nohup

在工作中,我们可能经常要在服务器上跑程序,有可能要跑的程序耗时很长,需要运行一段时间,我们希望即使关闭终端,程序不受影响,继续运行。在Linux中的nohup命令可以达到这种效果。

nohup是英语 no hangup 的缩写,是不挂断的意思,也就是指程序不退出,用在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

接下来将详细介绍一下nohup命令的具体用法。

命令语法:
nohup 命令 参数
nohup 选项

选项说明:
--help     # 显示此帮助信息并退出
--version  # 显示版本信息并退出
1
2
3
4
5
6
7

注意:使用nohup命令时,程序的输出会默认重定向到一个nohup.out文件下。如果我们想要输出到指定文件,可另外指定输出文件:

nohup python3 test.py > out.txt & 
1

如果想让程序真正的在后台运行,可以加上&符号。

nohup python3 test.py > out.txt & 
1

关闭终端,重新打开,使用ps命令查一下进程,就会发现程序还在运行。

$ ps -aux | grep python
psh       36313  0.0  0.2  17768  8120 ?        S    16:25   0:00 python3 test.py
1
2

这里如果想要把标准错误和标准输出都重定向到指定的out.txt文件中,可以使用2>&1符号,2>&1符号的意思是将将标准错误 2 重定向到标准输出 &1。

  • 0 stdin (standard input,标准输入)
  • 1 stdout (standard output,标准输出)
  • 2 stderr (standard error,标准错误输出)
nohup python3 test.py > out.txt 2>&1 & 
1

nohup命令结合&符号可以使进程在后台运行,即使关闭了终端依然不受影响。

# 2、screen

screen是一款用于命令行终端切换的工具,用户可以通过该工具同时连接多个本地或远程的命令行会话,并在其间自由切换。 在screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。

# 安装screen

在一些流行的Linux发行版上已经预装screen,可以使用screen -v命令检查服务器上是否已经安装。

如果在没有安装screen,可以使用系统提供的包管理器进行安装。

CentOS:

yum -y install screen
1

Ubuntu:

apt-get -y install screen
1

# 使用

通常情况下,screen创建的终端,有两个工作模式。

  • Attached:表示当前screen正在作为主终端使用,为活跃状态。
  • Detached:表示当前screen正在后台使用,为非激发状态。

# 语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
1

参数说明:

  • -A  将所有的视窗都调整为目前终端机的大小。
  • -d <作业名称>  将指定的screen作业离线。
  • -h <行数>  指定视窗的缓冲区行数。
  • -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  • -r <作业名称>  恢复离线的screen作业。
  • -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  • -s  指定建立新视窗时,所要执行的shell。
  • -S <作业名称>  指定screen作业的名称。
  • -v  显示版本信息。
  • -x  恢复之前离线的screen作业。
  • -ls或--list  显示目前所有的screen作业。
  • -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

# 操作

# 1.启动screen终端

# 使用 -S 创建一个叫name的screen终端
screen -S name
1
2

或

# 使用 -R 创建一个叫name的screen终端
screen -R name
1
2

之后,会新建一个空白的Terminal,这个就是新的screen终端了,可以在这个新终端里运行我们想要运行的程序或脚本等。

# 2.离开screen终端

要想离开当前的screen终端,回到主终端,可以按下Ctrl + a和d键,离开后,screen会话仍将是活跃的,之后可以随时重新连接。

# 3.重新连接到screen终端

screen -r
1

如果你有多个 screen 会话,你可以用 ls 参数列出它们。

screen -ls
There are screens on:
        45214.session3  (2021年09月30日 10时19分41秒)   (Detached)
        45195.session2  (2021年09月30日 10时19分34秒)   (Detached)
        45132.session1  (2021年09月30日 10时19分13秒)   (Detached)
3 Sockets in /run/screen/S-psh.
1
2
3
4
5
6

如上,有三个活跃的screen会话,如果想要重新连接到“session2”会话,可以执行:

screen -r 45195
1

或者

screen -r -S session2
1

# 4.中止screen终端

可以按下Ctrl+d,或者在命令行中使用exit命令。

要查看screen命令所有的功能,你可以使用man screen命令查看screen的man手册。

# 快捷命令

screen
=========================
1.创建screen会话
screen -S listener 
2.暂时离开,保留screen会话中的任务或程序
Ctrl+a d(即按住Ctrl,依次再按a,d)
3.恢复screen会话
screen -r listener
4.关闭screen的会话
exit

常用screen参数
===================================================
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上次更新: 2025/04/03, 11:07:08
Linux 使用
Nginx基础

← Linux 使用 Nginx基础→

最近更新
01
tailwindcss
03-26
02
PaddleSpeech
02-18
03
whisper
02-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 跨境互联网 | 豫ICP备14016603号-5 | 豫公网安备41090002410995号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式