当前位置: 首页 > news >正文

ubuntu 新建脚本shell并增加图标 双击应用实现python运行

1.使用nano创建shell脚本文件

需要在终端窗口中输入“nano”以打开文本编辑器。

nano

在创建脚本文件前,我们要了解脚本文件是如何运行的:

直接运行:直接在终端直接输入需要运行的脚本文件名称,系统或用缺省版本的shell运行脚本程序。

命令提示符中指定某个特定shell版本如:$bash script_name ,创定一个特定版本的临时子shell(此例为bash)来运行脚本程序,script_name是脚本文件名,会逐行执行脚本命令并依次输出结果。当脚本文件中的命令依次执行完毕,该临时子shell也自动结束运行,返回到用户原来使用的shell状态。

在脚本文件开头指定一个将要使用的shell:在脚本文件开头增添

 #!/bin/bash

注意:#!必须顶格,后面接全路径,可以从/etc/shell中获得全部的可用shell及其绝对路径。
在这里我们运用第三种方式指定运行的shell。

在通常的shell脚本中,用井号(#)用作注释行,shell不会处理shell脚本中的注释行,但是第一行的#!/bin/bash是个例外。

在指定了shell后,就可以创建一个脚本,

#!/bin/bash
#This is a simple script.

完成上述命令后,按 CTRL + X 保存脚本并退出。之后,系统会要求您确认,然后会要求您为该文件命名。将把文件保存为“xxx.sh”。按“y”进行确认。到这里就成功创建了一个简单的脚本

2. 使用vim编辑shell脚本文件

需要用到文本编辑器来创建一个文件,一般常用vim来做

 sudo apt-get install vim

由于我们是想要运行python文件 所以要切换到py文件运行的命令行和代码所在的文件位置

由于我的py文件运行是在基础环境上的 所以要抑制anaconda 环境只是用系统环境

PATH=/usr/local/jdk-17.0.4.1/bin:/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/bin:/home/nvidia/.local/bin:/usr/local/jdk-17.0.4.1/bin:/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:.:cd xx/xx/xx   # 代码所在位置

详细见Unbtun环境切换-CSDN博客

3. 运行脚本

如果在以上步骤后直接在终端输入文件名来运行,结果并不能运行,要让shell找到“xxx.sh”脚本,通过chmod命令来该便脚本文件的运行权限:

sudo chmod +x yourfile.sh

要想双击sh脚本来进行运行,从而方便不熟悉ubuntu系统shell使用的用户来执行程序。sh脚本中可以是启动项目程序的代码,或者其它运维代码。

3.1 dconf-editor 安装

dconf可以说是ubuntu系统的注册表,类似windows上的注册表,保存系统的相关配置,而 dconf-editor 是 dconf 的一个图形化操作程序。

sudo apt-get install dconf-tools

3.2 配置dconf

gsettings set org.gnome.nautilus.preferences executable-text-activation ask

3.3 配置要双击的文件

首选为文件填加可执行权限

sudo chmod +x yourfile.sh

右击该文件,点属性properties,将Allow executing file as program选中。

3.4 双击执行

因为之前3.2中选的是ask,根据需求进行点击。如果是选的launch,就相当于直接点击上图中的run.
执行过程无显示无输出,人但会有点击

4. sh快捷方式生成与图标配置

为了实现能够直接双击执行,不需要多余操作,而且为了页面更加美观,增加一个图标设置

下面以ubuntu桌面为例:创建desktop文件

# 文件名建议与软件名一致
sudo vim /usr/share/applications/idea.desktop

新建文件 xxx.desktop, 然后编辑该文件; 如下信息:

[Desktop Entry]
Name=My Idea # 执行文件的名称
Comment=Idea Studio # 执行文件的描述
Exec=/opt/ideaIU-2018.3.6/idea-IU-183.6156.11/bin/xxx.sh # 执行文件的路径
Icon=/opt/ideaIU-2018.3.6/idea-IU-183.6156.11/bin/xxx.png # 执行文件的图标
Terminal=true  # 是否开启terminal
StartupNotify=true # 是否开启启动提示
Type=Application # 软件类型
Categories=Application;Development;

将其弄成“可信任”,对 idea.desktop点击右键“属性” 下的权限 执行栏 勾选 允许作为程序执行文件(E) 或者 sudo xxxx

# 设置权限为可执行
sudo chmod +x /usr/share/applications/idea.desktop

相关文章:

ubuntu 新建脚本shell并增加图标 双击应用实现python运行

1.使用nano创建shell脚本文件 需要在终端窗口中输入“nano”以打开文本编辑器。 nano 在创建脚本文件前,我们要了解脚本文件是如何运行的: 直接运行:直接在终端直接输入需要运行的脚本文件名称,系统或用缺省版本的shell运行脚…...

ANR 分析SOP

遇到ANR问题不要慌,大部分情况下可能是系统or测试手段问题,我们按照如下关键字排查定位 文章目录 1 是否是 heapdump 导致?1.1 dump开始1.2 dump结束 1 是否是 heapdump 导致? 使用 hprof: heap dump 关键词过滤,在d…...

COLA学习之环境搭建(三)

小伙伴们,你们好,我是老寇,上一节,我们学习了COLA代码规范,继续跟老寇学习COLA环境搭建 首先,打开GitHub,搜索 COLA 请给这个COLA项目点个Star,养成好习惯,然后Fork到自…...

CSS输入框动态伸缩动效

前言 下面我们将会做出如下图输入框样式&#xff0c;并且附上组件代码&#xff0c;有特殊需求的可以自行优化同理&#xff0c;下拉框的话只要把el-input标签修改掉即可 MyInput组件 <template><div class"my-input" click.stop"showInput !showInput…...

hbuilder 安卓app手机调试中基座如何设置

app端使用基座 手机在线预览功能 1.点击运行 2.点击运行到手机或者模拟器 3.制作自定义调试基座 4.先生成证书【可以看我上一篇文档写的有】&#xff0c;点击打包 5.打包出android自定义调试基座【android_debug.apk】,【就跟app打包一样需要等个几分钟】 6.点击运行到手…...

探索视觉与语言模型的可扩展性

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

sock_recvmsg函数

sock_recvmsg 是一个在 Linux 内核中用于处理接收网络数据的函数。它通常与套接字 (socket) 操作相关,特别是在网络协议栈中用于处理从网络中接收到的数据。这个函数是内核的一部分,提供了一种机制把接收到的数据从网络协议栈转移到用户空间,或者在内核内进一步处理。 以下是…...

HCIA笔记8--DHCP、Telnet协议

1. DHCP介绍 对于主机的网络进行手动配置&#xff0c;在小规模的网络中还是可以运作的&#xff0c;但大规模网络是无力应对的。因此就有了DHCP协议来自动管理主机网络的配置。 DHCP(Dynamic Host Configuration Protocol): 动态主机配置协议&#xff0c;主要需要配置的参数有…...

Scala的单例对象

在Scala中&#xff0c;单例对象是一种特殊的类&#xff0c;它只能有一个实例&#xff0c;并且这个实例在需要时会自动创建。单例对象在Scala中通过object关键字来定义&#xff0c;它类似于Java中的静态成员和方法&#xff0c;但更加灵活和强大。 定义单例对象 以下是定义一个…...

【笔记】分布式任务调度平台XXL-JOB

这篇笔记主要记录以下内容&#xff1a; &#xff08;1&#xff09;第一次启动xxl-job的过程 &#xff08;2&#xff09;模块、文件、数据库&#xff08;表和字段&#xff09;的作用 &#xff08;3&#xff09;极少的源码解读&#xff08;XxlJobConfig&#xff09; 有点像实…...

PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)

分享一个非常实用的PDF文档翻译项目——PDFMathTranslate。作为一个经常逛GitHub的开发者&#xff0c;我总喜欢翻看各种项目附带的论文&#xff0c;虽然大多时候是瞎研究&#xff0c;但却乐在其中。该项目能够完美保留公式、图表、目录和注释&#xff0c;对于需要阅读外文文献的…...

zerotier实现内网穿透(访问内网服务器)

moo 内网穿透工具 实用工具&#xff1a;zerotier 目录 内网穿透工具 Windows下zerotier安装 ubuntu系统下的zerotier安装 使用moon加速 Windows下zerotier安装 有了网络之后&#xff0c;会给你一个网络id&#xff0c;这个网络id是非常重要的&#xff0c;其它设备要加入…...

Formality:set_svf命令

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 svf文件的全称是Setup Verification for Formality&#xff0c;即Design Compiler提供给Formality的设置验证文件&#xff0c;它的作用是为Formality的指导模式(Gui…...

IDEA报错:无效的源发行版、无效的目标发行版

1. 无效的源发行版 创建项目的时候&#xff0c;会遇见这个报错&#xff0c;原因就是编译的JDK版本与发布版本不一致。 解决方法&#xff1a; 1.1. 找到问题所在地 英文&#xff1a;File -> Project Structure ->Project Settings 中文&#xff1a;文件->项目结构 …...

#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

Scala中求斐波那契数列的第n项

求斐波那契数列的第n项 问题&#xff1a;求 斐波那契数列的第n项 记&#xff1a; 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) f(n-1) f(n-2) 1.基本情况&#xff08;直接能求的&#xff09;&#xff1a;f(0) 0,f(1) 1 2.递归情况&#xff08;大事化小&#xff0c;自己…...

ORACLE修改序列值为表内某字段(主键)最大值

ORACLE修改序列值为表内某字段&#xff08;主键&#xff09;最大值 想修改序列值&#xff0c;网上基本的都是自己看要加到多少&#xff0c;然后要么调步长&#xff0c;要么删了重建。 想直接用declare使用标量然后调&#xff0c;但是逻辑里面不能有DDL语句。 不过最后解决了 直…...

前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换

目录 示例&#xff1a; 准备&#xff1a; ?编辑 开始&#xff1a; 1、新建页面&#xff0c;在script标签中引入百度地图的api数据&#xff0c;把自己在控制台创建的应用的ak替换上去 2、创建一个dom对象&#xff0c;设置宽高 3、在js中初始化地图 进阶&#xff1a; 1…...

【入门】加密四位数

描述 某军事单位用 4 位整数来传递信息&#xff0c;传递之前要求先对这个 4 位数进行加密。加密的方式是每一位都先加上 5 然后对 10 取余数&#xff0c;再将得到的新数颠倒过来。 例如&#xff1a;原数是 1379 &#xff0c;那么每位加 5 对 10 取余数的结果为 6824 &#xf…...

[游戏开发] Unity中使用FlatBuffer

什么是FlatBuffer 为什么用FloatBuffer&#xff0c;优势在哪&#xff1f; 下图是常规使用的各种数据存储类型的性能对比。 对序列化数据的访问不需要打包和拆包——它将序列化数据存储在缓存中&#xff0c;这些数据既可以存储在文件中&#xff0c;又可以通过网络原样传输&…...

OpenClaw技能开发入门:为nanobot编写自定义QQ机器人插件

OpenClaw技能开发入门&#xff1a;为nanobot编写自定义QQ机器人插件 1. 为什么需要自定义OpenClaw技能 去年夏天&#xff0c;当我第一次接触OpenClaw时&#xff0c;就被它的自动化能力深深吸引。但很快发现&#xff0c;官方提供的技能虽然丰富&#xff0c;却无法满足我的特定…...

企业级消息通道架构实战:深度解析高性能钉钉机器人集成方案

企业级消息通道架构实战&#xff1a;深度解析高性能钉钉机器人集成方案 【免费下载链接】openclaw-channel-dingtalk A dingtalk bot channel plugin for clawdbot 项目地址: https://gitcode.com/gh_mirrors/op/openclaw-channel-dingtalk OpenClaw-Channel-DingTalk是…...

腾讯音乐开源的SuperSonic到底强在哪?手把手教你配置专属数据分析Agent

腾讯音乐SuperSonic深度解析&#xff1a;如何打造智能数据问答Agent 当企业数据量呈指数级增长时&#xff0c;传统BI工具已经难以满足实时决策的需求。腾讯音乐开源的SuperSonic作为新一代AIBI平台&#xff0c;通过融合Chat BI与Headless BI两大范式&#xff0c;正在重新定义数…...

OpenClaw 的模型服务是否支持限流和熔断?策略如何配置?

在讨论OpenClaw模型服务的限流与熔断机制之前&#xff0c;不妨先回想一下城市交通系统。早晚高峰时&#xff0c;交警会在关键路口设置信号灯或临时管制&#xff0c;防止车辆过度涌入导致整个区域瘫痪。模型服务面临的场景其实非常相似——外部请求就像不断驶入的车辆&#xff0…...

告别乱码!手把手教你用FreeType给OpenCV项目添加中文水印(附完整C++代码)

告别乱码&#xff01;手把手教你用FreeType给OpenCV项目添加中文水印&#xff08;附完整C代码&#xff09; 在数字图像处理领域&#xff0c;为图片添加水印是一项常见需求。无论是版权保护、品牌推广还是内容标识&#xff0c;水印都能发挥重要作用。然而&#xff0c;当开发者使…...

【仅限核心开发者知晓】Polars 2.0清洗Pipeline的4层IR抽象:为何比Pandas快11.8倍?源码注释级解读

第一章&#xff1a;Polars 2.0清洗Pipeline的演进本质与性能跃迁全景Polars 2.0 将清洗 Pipeline 从“惰性执行显式优化提示”升级为“全图级自动重写零拷贝流式调度”&#xff0c;其本质是将数据清洗从过程式编排转向声明式语义图推理。核心突破在于 LazyFrame 的物理计划生成…...

TOPSIS算法实战:用Python给河流水质排个名,附完整代码与避坑指南

TOPSIS算法实战&#xff1a;用Python给河流水质排个名&#xff0c;附完整代码与避坑指南 当环保部门拿到一份包含含氧量、PH值、细菌数、水草量等指标的河流水质数据时&#xff0c;如何科学评估各条河流的健康状况&#xff1f;传统的主观评分方法往往存在偏差&#xff0c;而TOP…...

Ensp与SecureCRT高效连接指南及常见回车空行问题排查

1. Ensp与SecureCRT连接全流程详解 第一次用Ensp连接SecureCRT时&#xff0c;我也被那一堆串口参数搞得头晕。后来才发现&#xff0c;只要掌握几个关键步骤&#xff0c;整个过程其实非常简单。下面我就把踩坑后总结的最稳定连接方案分享给大家。 1.1 软件安装与环境准备 在开始…...

5种颠覆式UI控件库轮播组件创新用法:从业务痛点到零代码实现

5种颠覆式UI控件库轮播组件创新用法&#xff1a;从业务痛点到零代码实现 【免费下载链接】HandyControl Contains some simple and commonly used WPF controls 项目地址: https://gitcode.com/gh_mirrors/ha/HandyControl 在现代WPF应用开发中&#xff0c;UI控件库的轮…...

150元搞定无人机自主避障?上交大开源方案实测(附部署教程)

150元打造无人机自主避障系统&#xff1a;开源方案实战指南 当大多数人还在为动辄上万元的无人机避障系统望而却步时&#xff0c;一个仅需150元计算硬件的开源方案正在创客圈掀起风暴。这不是实验室里的概念验证&#xff0c;而是经过真实环境测试、能部署在你家后院的技术方案。…...