如果你的Ubuntu桌面是KDE,那么默认其右键会有打开终端的菜单项,同时打开的终端自动转到当前的路径下,而如果你是Gnome桌面,那么默认是没有这个功能的,这个就有点令人恼火,首先你要打开gnome-terminal,然后再一步步cd到当前路径下,工作起来太影响效率了。
这里介绍如何为Gnome的右键菜单中添加“gnome-terminal”菜单项,其实现步骤如下:
在~/.gnome2/nautilus-scripts
目录下添加名为“gnome-ternimal”的脚本文件,其内容为
#!/bin/bash
if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
if [ $# -eq 1 ]; then
destination="$1"
# Go to file's directory if it's a file
if [ ! -d "$destination" ]; then
destination="`dirname "$destination"`"
fi
else
zenity --error --title="Error - Open terminal here" \
--text="You can only select one directory."
exit 1
fi
else
destination= \
"`echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed 's/^file:\/\///'`"
fi
# It's only possible to go to local directories
if [ -n "`echo "$destination" | grep '^[a-zA-Z0-9]\+:'`" ]; then
zenity --error --title="Error - Open terminal here" \
--text="Only local directories can be used."
exit 1
fi
cd "$destination"
exec x-terminal-emulator
保存后,用chmod命令为这个bash脚本添加可执行属性。
这样我们的目的就达到了,你右键就会发现菜单中多了“Scripts”选项,其下一级子菜单就有“gnome-ternimal”选项,点击就会打开一个终端,而且路径已经转到了当前路径。
如果你想知道为什么以上的做法可行,或者想读懂上面的bash脚本,而不是任由我蛊惑,呵呵,那我很欣赏你,下面有一段相关说明会帮助你理解上面的做法。
在~/.gnome2/nautilus-scripts/
目录下的所有可执行文件都会出现在右键菜单的“Scripts”选项下,其子选项的名字就是可执行文件的名字,选择一个,那么该目录下相应的可执行文件就会执行。当从一个本地文件夹中右键点击菜单时,被选中的文件名会作为参数传递给可执行文件,而如果是在一个远程的文件夹中右键,比如web目录,ftp目录,那么不会传递任何参数给可执行脚本。
任何情况下,Nautilus都将设置下面一些环境变量,它们将被可执行脚本所用:
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: newline-delimited paths for selected files (only if local)
NAUTILUS_SCRIPT_SELECTED_URIS: newline-delimited URIs for selected files
NAUTILUS_SCRIPT_CURRENT_URI: URI for current location
NAUTILUS_SCRIPT_WINDOW_GEOMETRY: position and size of current window
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS: newline-delimited paths for selected files in the inactive pane of a split-view window (only if local)
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_URIS: newline-delimited URIs for selected files in the inactive pane of a split-view window
NAUTILUS_SCRIPT_NEXT_PANE_CURRENT_URI: URI for current location in the inactive pane of a split-view window
所以,上面我们所添加的脚本做的事情很简单,只是获取了当前的路径,然后在打开终端前先cd过去,如此而已。