終於把字符底下進出目錄的方式,改得比較方便了,跟大家分享一下設定值。
时间:2009-09-06
来源:互联网
改善字符模式底下,目錄前進後退的方式。
在~/.profile寫下面這幾行
在字符模式,可以使用cd進入目錄,bd (back directory)退回,fd (forward directory)往前,並使用vd,可以看到目錄堆疊的狀態。
然後我們希望字符底下的提示符號,可以告訴我們一些目錄的訊息,如下面的設定可以顯示成這個樣子.
基本上一開始會提示如下的錯誤的訊息,不用管它。(那個沒關係)
不然你也可以把這一行寫在~/.profile的最下面。
在~/.profile寫下面這幾行
代码:
function cd { if test "$@" = ".." then builtin cd .. elif test "$@" = "." then builtin cd . elif test "$@" = "-" then builtin cd - else pushd "$@">/dev/null fi } function bd { pushd +1>/dev/null; } function fd { pushd -0>/dev/null; } alias vd="dirs -v"
代码:
[root@jiunypc ~ ~]# cd /etc/cron.daily [root@jiunypc ~ cron.daily]# cd /var/lib/pacman/local [root@jiunypc cron.daily local]# bd [root@jiunypc ~ cron.daily]# fd [root@jiunypc cron.daily local]# vd 0 /var/lib/pacman/local 1 /etc/cron.daily 2 ~ 3 ~
代码:
#jiunypc是你的主機名稱, rtorrent是你現在目錄的位址, etc是你前一個目錄的位址, #root是你的帳號, [root@jiunypc etc rtorrent]#
代码:
blue=`tput setf 1` green=`tput setf 2` cyan=`tput setf 3` red2=`tput setf 4` pink=`tput setf 5` olive=`tput setf 6` gray=`tput setf 7` slategray=`tput setf 8` red=`tput setf 9` #如果顯示完整的目錄地址,那真的太長了,不美觀也浪費終端機的行數, #所以用basename這個指令取得比較短的地址。 PS1="\[$green\][\[$blue\]\u@\h \[$red\]\$(basename \$(dirs +1)) \$(basename \$(dirs +0))\[$green\]]\[$olive\]#\[$red\] ";export PS1
代码:
-bash: dirs: directory stack empty basename: missing operand 請嘗試執行‘basename --help’來獲取更多資訊。
代码:
#一開始先丟一個~給堆疊,避免$PS1提示錯誤 pushd ~ >/dev/null
作者: jiuny0209 发布时间: 2009-09-06
一天下来不知道目录栈会有多大。
其实,必要时我会手动使用目录栈。
其实,必要时我会手动使用目录栈。
作者: ch_fb 发布时间: 2009-09-07
引用:
作者: ch_fb
一天下来不知道目录栈会有多大。
其实,必要时我会手动使用目录栈。 |
後來發現,
其實根本不用擔心這個,
打開一個終端,
堆疊就被清掉了,
終端跟終端之間不會互相影響,
不過,這個也是缺點,一個終端沒辦法用到過去進出過得目錄,只能重頭開始。
這些設定,適用於在5個目錄之間穿梭的,穿梭10個100個也是可以,只是要按10個bd而已,要用到過去第5個以上的目錄,最好還是vd然後手動複製貼上,所以如果只在5個左右的目錄穿梭,那打開一個終端目錄隊列就會被清除,那只重頭開始5個目錄也不是甚饃大問題了。
研究了好久,才把這個搞出來,這個比較實用,可以更不要那麼依賴圖形底下操作,轉成字符底下操作的關鍵之一,另一個東西我想應該是readline這個東東,不過我還沒研究。
作者: jiuny0209 发布时间: 2009-09-07
赞一个, LZ这个方法很有启发.
作者: kevinlei 发布时间: 2009-09-07
做個小修改,讓cd 15,進入到過去的第15個目錄,這樣連手動複製貼上的動作的省了。
代码:
function cd { if test "$@" = ".." then builtin cd .. elif test "$@" = "." then builtin cd . elif test "$@" = "-" then builtin cd - #增加下面這兩行,假如cd後面的參數是數字,而且當前的目錄底下,沒有這個目錄,那就回到 #過去歷史的目錄。 elif test ! "$(echo "$@" | grep -Eie "^[0-9]*$")" = "" -a ! -d "$PWD/$@" then pushd +"$@">/dev/null else pushd "$@">/dev/null fi }
代码:
[ srv# sbin]# echo $PWD /sbin [ srv# sbin]# echo $OLDPWD /srv [ srv# sbin]# vd 0 /sbin 1 /srv 2 ~/down 3 /var 4 /bin 5 /etc 6 ~ 7 ~/resys [ srv# sbin]# cd 2 [ var# down]# mkdir 4 [ var# down]# cd 4 [ down# 4]# echo $PWD /root/down/4
代码:
#把原本的alias vd="dirs -v",改為如下,這樣比較實用 alias vd="dirs -v | tac -" [ bin# jstc]# vd 5 ~/resys 4 ~ 3 /var 2 /sbin 1 /bin 0 ~/jstc
作者: jiuny0209 发布时间: 2009-09-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28