今天在Red Hat Linux上发现了一个程序的快捷方式,刚开始笔者还没有发现,以前都是使用命令行来开启程序:nohup yourtaskname >/dev/null 2>&1 。命令行写习惯了,没有注意到桌面上的快捷方式,但是笔者想了想一下,Linux怎么在桌面上做快捷方式呢?
笔者进入主目录的桌面文件夹,使用ls -l查看发现这个文件是个软连接 -> 。那么做个桌面快捷方式就可以这样做个程序的软连接:ln -s yourtaskname ~/desktop 。
同时,笔者又发现一个其他方法,在 /usr/share/applications 目录中创建***.desktop文件。 .desktop 文件是一个用来运行程序的快捷方式。没有程序的 .desktop文件 ,你的应用就不会在应用菜单中显示。.desktop是使用 Desktop Entry 文件标准来描述程序启动配置信息。
我们先来看centos8系统applications目录里面自带的python和terminal两个.desktop文件的内容,.desktop文件是有固定格式的。
Name:程序名称。
Comment:描述信息。
Exec:程序的执行命令。
Icon:快捷图标位置。
Terminal:是否在终端中运行。
Type:desktop的类型,常见值有“Application”和“Link”。
Categories:菜单所属分类。
将.desktop复制到桌面,但这时打开只会使用编辑器打开这个,需要右键选择“允许启动”,这时候打开这个文件就可以打开应用了。.desktop置于 /usr/share/applications 目录中是为了在应用菜单可以访问,如果不需要的话可以直接在桌面上新建.desktop只实现应用的快捷方式。 /usr/share/applications 目录是全局的,是由所有用户都能访问。~/.local/share/applications目录是本用户只能访问的应用程序。
在实践中笔者发现gnome的桌面需要设置桌面允许放置图标,需要安装tweak进行可视化设置,在这里笔者就不在阐述了。但是笔者发现,笔者使用systemctl将ubuntu20虚拟机设置为 multi-user.target命令行模式,sudo init 5和startx进入图形化界面的显示风格不是不一样的,sudo init 5自带桌面图标,startx需要安装tweak优化,同时startx后系统桌面环境变成英文。
init 5 则是启动 runlevel 5(graphical.target)所对应的服务,并运行图形登录管理器,执行/etc/X11/default-display-manager文件中定义的gmd默认显示管理器。
startx是在原运行级别上单纯启动X图形界面。startx是script文件,主要负责加载和设定一些环境变量(默认英语),最后执行xinit程序,进入xwindow,不会经过gmd的步骤。查看这个脚本文件内容,它会查找user.xinitrc和.xserverrc文件,然后是系统xinitrc和xserverrc文件,否则xinit会选择它的默认值来运行xwindow。执行xinit的命令为:xinit "$client" $clientargs -- "$server" $display $serverargs 。