Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

Ubuntu——添加自定义的软件到启动器

日常使用Ubuntu时,某些自己编写的脚本(程序)或者下载的程序不能从启动器搜索到


问题描述

  • 自己编写的脚本
  • 自己编写的程序
  • 网上自己下载的程序(不是通过apt-get或者APPStore安装)

解决问题

编写程序启动脚本

如果需要运行的就是脚本这一步可以不用

  • 编写shell脚本,脚本内容为启动运行程序
    • 涉及到程序的名称这里应该用绝对路径
  • 脚本可以放到任意地方,一般和当前程序在一个文件夹下即可

添加脚本执行权限

1
chmod +x exmaple.sh

新建启动

  • 新建文件到指定文件夹

    1
    2
    cd /usr/share/applications
    sudo gedit example.desktop
  • 编辑文件如下格式

    • Name是程序搜索时会出现的名字
    • Exec是执行脚本路径,必须有执行权限,否则在启动器中仍然搜索不到该程序
    • Icon是软件的图标,这里可以任意自定义图标,从网上下载或者自己生成均可
      1
      2
      3
      4
      5
      6
      7
      8
      [Desktop Entry]
      Version=1.0
      Name=Example
      Exec=/home/username/example.sh
      Terminal=false
      Icon=/home/username/example.png
      Type=Application
      Categories=Development

测试

  • 按键: Win键
  • 输入Example
  • 如果出现图标和名字对应的程序,说明成功
  • 如果不成功,复查以下问题
    • 启动脚本路径是否正确且为绝对路径
    • 执行权限是否已经成功设置
    • Name是否设置正确

Ubuntu——远程登录Ubuntu后只有一个$符号

对新添加的用户,我们远程登录Ubuntu后有时候只有一个$符号


问题描述

  • 对新添加的用户,远程登录Ubuntu后有时候只有一个$符号

问题原因

  • Ubuntu为新用户默认启动的是sh而不是bash
  • sh的命令比较少,只有一些ls, pwd这样的命令

解决方案

不修改源文件

  • 每次登录时先使用bash命令运行bash程序
  • 之后的指令都会是bash解释执行
  • 在bash中使用sh可会退到sh命令行
  • 该方法的缺陷在于多次执行bash和sh后,会造成进程嵌套多次,这样exit指令退出时需要多次

修改源文件

  • 标记文件/etc/passwd

    1
    sudo vi /etc/passwd
  • 找到用户对应的启动命令并将sh(可能没有sh,直接是空白)修改为bash

    1
    2
    3
    4
    # 修改前
    sanye:x:1001:1001::/home/sanye:
    # 修改后
    sanye:x:1001:1001::/home/sanye:/bin/bash
1…330331332…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4