[ Ubuntu 使用技巧 ] 在当前工作目录打开 Terminal


§ I . §\,\mathcal{I.} General Purposes: Why I wrote this?


在 Ubuntu 系统开发最舒服的一点就是可以开心地使用 Terminal。这是个好东西,尤其当你熟悉大部分的常用命令之后,对日常的代码工作还有部署真是太有帮助了。熟练正确使用 Terminal 大概是一个合格的算法工程师应当具备的能力吧。但是很多时候,在使用 Terminal 的时候会遇到一些不方便的地方,比如你用 ctrl + alt + t 打开一个 Terminal,你发现它的起始位置在你的 home 目录下面,好麻烦是不是?你得疯狂 cd 到相应的位置,即使使用 tab 也是一个不小的工作量,尤其当你的目录结构非常深的时候。这时你会想,怎样能够快速地打开我已经通过 Files 进入的文件夹位置,也就是说,如何在当前目录下打开 Terminal?


§ I I . §\,\mathcal{II.} First Attempt: Functionality realization.


第一步先是实现这个功能。在网上很容易搜到这样的一些办法:

sudo apt-get install nautilus-open-terminal
nautilus -q

没错,这个操作在 Ubuntu 16.04 上是可行的。但是在Ubuntu 18.04 上你会发现第一个包你找不到了。事实上也不用着急,高级的版本总有高级的办法,只需要执行下面这个语句即可。

sudo apt-get install nautilus
nautilus -q

好了你就拥有了右键 Open In Terminal 按钮。


§ I I I . §\,\mathcal{III.} Second Attempt: Functionality optimization.


用着用着你会发现,在某些情况下,这个方法还不是特别好。比如某些情况下你的文件夹里东西特别多,你根本找不到空的地方让你按右键。这时我们就需要一个快捷键方式让你在当前目录打开 Terminal。先安装几个包:

sudo apt-get install xdotool xclip

配置脚本:

sudo vim /usr/bin/openterminal.sh

编辑 .sh 脚本:

#!/bin/bash

#record the current ClipBoard
#clipboard_current=$(xclip -o)
pid_list=`xdotool search --class "nautilus"`

#loop for the right window
for i in $pid_list
do
name=`xdotool getwindowname "$i"`
name_lower=$(echo $name | tr [a-z] [A-Z])
if echo "$name_lower" | grep -qwi ".*desktop*";then
echo "desktop window"
elif echo "$name_lower" | grep -qwi ".*nautilus*";then
echo "nautilus window"
else
id=$i               
fi
done

#get the current working directory
wait=`xdotool windowfocus $id`
sleep 0.3
wait=`xdotool key Ctrl+l`
sleep 0.3
wait=`xdotool key Ctrl+c`
sleep 0.2
gnome-terminal --working-directory $(xclip -o)
xdotool key Escape

添加执行权限:

sudo chmod  +x /usr/bin/openterminal.sh

在键盘上设置快捷键:

好了至此你可以使用 Ctrl + G 来快捷打开 Terminal 了。

特别补充: 这里脚本之所以这么复杂是因为在 Ubuntu 18.04 中好像必须先聚焦到 Files 才能正确执行 Ctrl+l 操作。我尝试使用等待操作是因为你必须等待一会儿才能正确得到 copy 的地址,保证反馈时间在 1s 内我都是可以接受的。如果各位读者对效率有要求,不妨试试去掉等待时间。还有上面的查找过程如果是焦点本身在 Files 的情况下,可能可以去掉。


§ I V . §\,\mathcal{IV.} Summary: What I have done?


我采用的系统是 Ubuntu 18.04,所以有些地方可能跟大家不一样,请大家按需参考。这里我推荐使用 terminator 作为 Terminal 环境,真是太方便太好看了。写到这里,以上。

发布了3 篇原创文章 · 获赞 4 · 访问量 183

猜你喜欢

转载自blog.csdn.net/Bill_seven/article/details/104746534