终端启动应用程序的完整指南

如何在终端启动安装的应用程序

学习如何在终端启动安装的软件,可以让我们更加高效地管理和使用系统。以下是一个完整的教程,帮助您了解常见软件安装位置、检索命令及终端启动方法。


1. 常见软件安装位置

在 Ubuntu 系统中,安装的软件通常会放在以下路径中:

  1. /usr/bin:系统全局的可执行文件,适用于大多数通过包管理器(如 apt)安装的软件。
  2. /usr/local/bin:用户手动编译或安装的软件,通常用于自定义安装。
  3. /opt:第三方应用程序的常见存放路径,例如手动解压的程序。
  4. ~/bin~/.local/bin:当前用户自定义的可执行文件目录,适合个人脚本或工具。
  5. Snap 和 Flatpak 路径
    • Snap/snap/bin,通过 Snap 包管理器安装的应用。
    • Flatpak/var/lib/flatpak/exports/bin~/.local/share/flatpak/exports/bin,通过 Flatpak 安装的应用。
  6. 容器化应用:通过 Docker 等容器技术安装的应用程序通常位于 /var/lib/docker 或用户自定义路径。

注意:原始笔记中 Flatpak 路径仅列为 /var/lib/flatpak,不够准确,已更新为更具体的可执行文件路径。


2. 检索可执行文件的方法

当您想通过终端启动应用程序时,首先需要找到其可执行文件。以下是常用的检索命令:

2.1 which

用于查找某个命令在 $PATH 中的可执行文件路径。

which <命令名>

示例:

which firefox
# 输出:/usr/bin/firefox

2.2 find

在指定路径下递归搜索文件或目录,适合查找不在 $PATH 中的文件。

find <搜索目录> -name <文件名>

示例:

find / -name "clash*"
  • 如果遇到权限问题,可忽略错误输出:
    find / -name "clash*" 2>/dev/null
    

2.3 locate

快速搜索工具,依赖系统预生成的索引,比 find 更快但需要定期更新数据库。

locate <文件名>

示例:

locate clash-verge
  • 如果结果不准确,更新数据库:
    sudo updatedb
    

2.4 type

检查命令是否存在及其类型(例如可执行文件、别名或内置命令)。

type <命令名>

示例:

type python3
# 输出:python3 is /usr/bin/python3

2.5 whereis

查找二进制文件、源代码和手册页的位置,作为 which 的补充。

whereis <命令名>

示例:

whereis firefox
# 输出:firefox: /usr/bin/firefox /usr/share/man/man1/firefox.1.gz

3. 在终端启动软件

找到可执行文件后,可以通过以下方式启动软件:

3.1 全路径启动

如果知道软件的完整路径,直接运行:

/usr/bin/firefox

3.2 简单命令启动

如果软件路径已加入 $PATH,直接输入命令名:

firefox

3.3 后台运行

将程序放入后台运行,释放终端:

firefox &
  • 管理后台进程
    • fg:将后台进程带回前台。
    • jobs:查看当前后台作业。
    • kill %<作业号>:终止指定后台作业。

3.4 使用 nohup 保持运行

确保程序在终端关闭后继续运行:

nohup qq &

输出默认重定向到 nohup.out 文件。

3.5 使用 systemctl 启动服务

某些软件以 systemd 服务形式运行,可用以下命令启动:

sudo systemctl start <服务名>

示例:

sudo systemctl start clash-verge-service

注意:此方法仅适用于支持 systemd 的服务。

3.6 避免终端显示应用程序日志消息

以下方法可避免日志输出干扰终端:

3.6.1 重定向输出到 /dev/null
应用程序名 > /dev/null 2>&1 &

示例:

firefox > /dev/null 2>&1 &
  • 说明
    • >:重定向标准输出到 /dev/null
    • 2>&1:将标准错误重定向到标准输出。
    • &:后台运行。
3.6.2 使用 nohup 并重定向输出
nohup 应用程序名 > /dev/null 2>&1 &

示例:

nohup google-chrome > /dev/null 2>&1 &

兼具持续运行和静默效果。

3.6.3 使用 disown
应用程序名 &
disown

示例:

firefox &
disown

分离进程,使其独立于终端。

3.6.4 使用 setsid

在新会话中启动程序:

setsid 应用程序名 > /dev/null 2>&1 &

示例:

setsid code > /dev/null 2>&1 &
3.6.5 创建静默启动脚本

创建一个脚本批量启动程序:

#!/bin/bash
qq > /dev/null 2>&1 &
google-chrome > /dev/null 2>&1 &
clash-verge > /dev/null 2>&1 &
code > /dev/null 2>&1 &

4. 如果程序不在常规路径中

若程序不在 $PATH 中,可用以下方法解决:

4.1 手动添加到 $PATH

  1. 编辑 ~/.bashrc
    nano ~/.bashrc
    
  2. 添加路径:
    export PATH=$PATH:/path/to/your/program
    
  3. 刷新配置:
    source ~/.bashrc
    

4.2 创建软链接

将程序链接到 /usr/bin

sudo ln -s /path/to/your/program /usr/bin/your-program

4.3 使用 alias 创建别名

为复杂路径设置简便别名:

  1. 编辑 ~/.bashrc
    nano ~/.bashrc
    
  2. 添加别名:
    alias myprogram='/path/to/your/program'
    
  3. 刷新配置:
    source ~/.bashrc
    
  4. 使用 myprogram 启动。

5. 实用命令总结

命令作用
which <命令名>查找命令在 $PATH 中的路径
find <目录> -name <文件名>递归搜索文件
locate <文件名>快速搜索文件(需更新数据库)
type <命令名>检查命令类型
whereis <命令名>查找二进制、源代码和手册页位置
alias <别名>='<命令>'创建命令别名
sudo updatedb更新 locate 索引数据库
sudo systemctl start <服务名>启动 systemd 服务
command > /dev/null 2>&1 &后台运行并丢弃输出
nohup command > /dev/null 2>&1 &后台运行,终端关闭后继续运行且丢弃输出

6. 常见问题解决

问题 1:命令不存在

提示 command not found 时:

  1. 检查软件是否安装:
    dpkg -l | grep <软件名>
    
    或:
    apt list --installed | grep <软件名>
    
  2. 确认路径是否在 $PATH 中,或按第 4 节方法添加。

问题 2:权限不足

提示权限不足时,赋予可执行权限:

chmod +x /path/to/your/program

7. 总结

通过掌握软件安装位置和检索命令,您可以高效启动任何应用程序。优化 $PATH、创建别名或软链接可提升效率,而输出重定向技术能保持终端整洁。现代化的容器化应用(如 Docker)和包管理器(如 Snap、Flatpak)已被纳入,确保笔记与时俱进。

### Spring Boot 应用程序通过终端启动的方法 #### 方法一:使用 `mvn spring-boot:run` 启动 对于基于 Maven 构建的 Spring Boot 项目,可以通过执行 `mvn spring-boot:run` 命令来启动应用程序。此命令会调用 Spring Boot 的 Maven 插件并运行项目的主类。 以下是具体操作步骤: 1. 打开终端并导航至 Spring Boot 项目的根目录。 2. 输入以下命令以启动应用: ```bash mvn spring-boot:run ``` 如果需要自定义 JVM 参数,可以附加 `-Dspring-boot.run.jvmArguments` 属性。例如设置内存大小为 128MB 可以这样写[^4]: ```bash mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xms128m -Xmx128m" ``` 停止正在运行的应用程序时,在终端输入 `Ctrl + C` 即可中断进程[^3]。 #### 方法二:使用 `java -jar` 启动 另一种常用的方式是将 Spring Boot 项目打包成一个可执行 JAR 文件,然后通过 Java 命令启动它。 实现过程如下: 1. 首先确保已构建好包含依赖项的 JAR 文件。这通常由 Maven 或 Gradle 完成。Maven 用户可以在项目根路径下运行以下命令生成 JAR 包: ```bash mvn clean package ``` 2. 接下来定位到目标文件夹(通常是 `/target/`),找到生成好的 `.jar` 文件。 3. 使用下面的命令加载该 jar 并启动服务: ```bash java -jar your-application-name.jar ``` 同样支持传递额外的 JVM 参数给这个命令。比如指定最小最大堆空间尺寸为例: ```bash java -Xms128m -Xmx512m -jar your-application-name.jar ``` 两种方法各有优劣,前者适合于开发阶段快速迭代测试环境下的频繁重启需求;后者则更适用于生产环境中部署稳定版本的服务实例[^1][^2]。 ### 注意事项 - 如果项目被打包成了 WAR 类型而非标准 JAR,则需借助外部 Servlet 容器如 Tomcat 来承载运行。 - 对于某些复杂场景或者多模块工程可能还需要提前完成其他前置准备工作,像安装本地仓库构件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值