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输入框动态伸缩动效
前言 下面我们将会做出如下图输入框样式,并且附上组件代码,有特殊需求的可以自行优化同理,下拉框的话只要把el-input标签修改掉即可 MyInput组件 <template><div class"my-input" click.stop"showInput !showInput…...
hbuilder 安卓app手机调试中基座如何设置
app端使用基座 手机在线预览功能 1.点击运行 2.点击运行到手机或者模拟器 3.制作自定义调试基座 4.先生成证书【可以看我上一篇文档写的有】,点击打包 5.打包出android自定义调试基座【android_debug.apk】,【就跟app打包一样需要等个几分钟】 6.点击运行到手…...
探索视觉与语言模型的可扩展性
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
sock_recvmsg函数
sock_recvmsg 是一个在 Linux 内核中用于处理接收网络数据的函数。它通常与套接字 (socket) 操作相关,特别是在网络协议栈中用于处理从网络中接收到的数据。这个函数是内核的一部分,提供了一种机制把接收到的数据从网络协议栈转移到用户空间,或者在内核内进一步处理。 以下是…...
HCIA笔记8--DHCP、Telnet协议
1. DHCP介绍 对于主机的网络进行手动配置,在小规模的网络中还是可以运作的,但大规模网络是无力应对的。因此就有了DHCP协议来自动管理主机网络的配置。 DHCP(Dynamic Host Configuration Protocol): 动态主机配置协议,主要需要配置的参数有…...
Scala的单例对象
在Scala中,单例对象是一种特殊的类,它只能有一个实例,并且这个实例在需要时会自动创建。单例对象在Scala中通过object关键字来定义,它类似于Java中的静态成员和方法,但更加灵活和强大。 定义单例对象 以下是定义一个…...
【笔记】分布式任务调度平台XXL-JOB
这篇笔记主要记录以下内容: (1)第一次启动xxl-job的过程 (2)模块、文件、数据库(表和字段)的作用 (3)极少的源码解读(XxlJobConfig) 有点像实…...
PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)
分享一个非常实用的PDF文档翻译项目——PDFMathTranslate。作为一个经常逛GitHub的开发者,我总喜欢翻看各种项目附带的论文,虽然大多时候是瞎研究,但却乐在其中。该项目能够完美保留公式、图表、目录和注释,对于需要阅读外文文献的…...
zerotier实现内网穿透(访问内网服务器)
moo 内网穿透工具 实用工具:zerotier 目录 内网穿透工具 Windows下zerotier安装 ubuntu系统下的zerotier安装 使用moon加速 Windows下zerotier安装 有了网络之后,会给你一个网络id,这个网络id是非常重要的,其它设备要加入…...
Formality:set_svf命令
相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 svf文件的全称是Setup Verification for Formality,即Design Compiler提供给Formality的设置验证文件,它的作用是为Formality的指导模式(Gui…...
IDEA报错:无效的源发行版、无效的目标发行版
1. 无效的源发行版 创建项目的时候,会遇见这个报错,原因就是编译的JDK版本与发布版本不一致。 解决方法: 1.1. 找到问题所在地 英文:File -> Project Structure ->Project Settings 中文:文件->项目结构 …...
#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
Scala中求斐波那契数列的第n项
求斐波那契数列的第n项 问题:求 斐波那契数列的第n项 记: 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) f(n-1) f(n-2) 1.基本情况(直接能求的):f(0) 0,f(1) 1 2.递归情况(大事化小,自己…...
ORACLE修改序列值为表内某字段(主键)最大值
ORACLE修改序列值为表内某字段(主键)最大值 想修改序列值,网上基本的都是自己看要加到多少,然后要么调步长,要么删了重建。 想直接用declare使用标量然后调,但是逻辑里面不能有DDL语句。 不过最后解决了 直…...
前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换
目录 示例: 准备: ?编辑 开始: 1、新建页面,在script标签中引入百度地图的api数据,把自己在控制台创建的应用的ak替换上去 2、创建一个dom对象,设置宽高 3、在js中初始化地图 进阶: 1…...
【入门】加密四位数
描述 某军事单位用 4 位整数来传递信息,传递之前要求先对这个 4 位数进行加密。加密的方式是每一位都先加上 5 然后对 10 取余数,再将得到的新数颠倒过来。 例如:原数是 1379 ,那么每位加 5 对 10 取余数的结果为 6824 …...
[游戏开发] Unity中使用FlatBuffer
什么是FlatBuffer 为什么用FloatBuffer,优势在哪? 下图是常规使用的各种数据存储类型的性能对比。 对序列化数据的访问不需要打包和拆包——它将序列化数据存储在缓存中,这些数据既可以存储在文件中,又可以通过网络原样传输&…...
OpenClaw技能开发入门:为nanobot编写自定义QQ机器人插件
OpenClaw技能开发入门:为nanobot编写自定义QQ机器人插件 1. 为什么需要自定义OpenClaw技能 去年夏天,当我第一次接触OpenClaw时,就被它的自动化能力深深吸引。但很快发现,官方提供的技能虽然丰富,却无法满足我的特定…...
企业级消息通道架构实战:深度解析高性能钉钉机器人集成方案
企业级消息通道架构实战:深度解析高性能钉钉机器人集成方案 【免费下载链接】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深度解析:如何打造智能数据问答Agent 当企业数据量呈指数级增长时,传统BI工具已经难以满足实时决策的需求。腾讯音乐开源的SuperSonic作为新一代AIBI平台,通过融合Chat BI与Headless BI两大范式,正在重新定义数…...
OpenClaw 的模型服务是否支持限流和熔断?策略如何配置?
在讨论OpenClaw模型服务的限流与熔断机制之前,不妨先回想一下城市交通系统。早晚高峰时,交警会在关键路口设置信号灯或临时管制,防止车辆过度涌入导致整个区域瘫痪。模型服务面临的场景其实非常相似——外部请求就像不断驶入的车辆࿰…...
告别乱码!手把手教你用FreeType给OpenCV项目添加中文水印(附完整C++代码)
告别乱码!手把手教你用FreeType给OpenCV项目添加中文水印(附完整C代码) 在数字图像处理领域,为图片添加水印是一项常见需求。无论是版权保护、品牌推广还是内容标识,水印都能发挥重要作用。然而,当开发者使…...
【仅限核心开发者知晓】Polars 2.0清洗Pipeline的4层IR抽象:为何比Pandas快11.8倍?源码注释级解读
第一章:Polars 2.0清洗Pipeline的演进本质与性能跃迁全景Polars 2.0 将清洗 Pipeline 从“惰性执行显式优化提示”升级为“全图级自动重写零拷贝流式调度”,其本质是将数据清洗从过程式编排转向声明式语义图推理。核心突破在于 LazyFrame 的物理计划生成…...
TOPSIS算法实战:用Python给河流水质排个名,附完整代码与避坑指南
TOPSIS算法实战:用Python给河流水质排个名,附完整代码与避坑指南 当环保部门拿到一份包含含氧量、PH值、细菌数、水草量等指标的河流水质数据时,如何科学评估各条河流的健康状况?传统的主观评分方法往往存在偏差,而TOP…...
Ensp与SecureCRT高效连接指南及常见回车空行问题排查
1. Ensp与SecureCRT连接全流程详解 第一次用Ensp连接SecureCRT时,我也被那一堆串口参数搞得头晕。后来才发现,只要掌握几个关键步骤,整个过程其实非常简单。下面我就把踩坑后总结的最稳定连接方案分享给大家。 1.1 软件安装与环境准备 在开始…...
5种颠覆式UI控件库轮播组件创新用法:从业务痛点到零代码实现
5种颠覆式UI控件库轮播组件创新用法:从业务痛点到零代码实现 【免费下载链接】HandyControl Contains some simple and commonly used WPF controls 项目地址: https://gitcode.com/gh_mirrors/ha/HandyControl 在现代WPF应用开发中,UI控件库的轮…...
150元搞定无人机自主避障?上交大开源方案实测(附部署教程)
150元打造无人机自主避障系统:开源方案实战指南 当大多数人还在为动辄上万元的无人机避障系统望而却步时,一个仅需150元计算硬件的开源方案正在创客圈掀起风暴。这不是实验室里的概念验证,而是经过真实环境测试、能部署在你家后院的技术方案。…...
