1. 程式人生 > >Linux中文環境快速進入$HOME目錄"桌面"的辦法

Linux中文環境快速進入$HOME目錄"桌面"的辦法

安裝Linux的時候選擇了中文版,桌面的目錄就在 $HOME目錄下的"桌面"目錄;

在gnome terminal要進這個目錄,從redhat、FC,到RHEL,ubuntu,沒少煩過我:每次敲cd命令後還要把輸入法切換到中文,再輸入" 桌面";

後來找到一下辦法:在.bashrc中export d=~/桌面/,要進“桌面"目錄也就輸入: "cd $d"

這時,問題又來了:

要把桌面的某個檔案移到別的地方,敲mv $d/之後按TAB,bash竟然幫我補全成: "mv \$d/"....無語....

[email protected]:~$ complete |grep mv
complete -o default -F _longopt mv
[email protected]
:~$

剛開始以為是,default行為或_longopt函式搞的鬼,跟蹤了一下發現_longopt呼叫了_filedir()函式,_filedir()處理完了還沒有把"$"號變成“\$",結論:bash後面又處理了一下

解決的辦法:在_filedir()函式中把 "$d"替換掉,因此在_filedir()函式最後增加程式碼:

    local cnt=0
    while [ $cnt -lt ${#COMPREPLY[@]} ];
    do  
        local v=${COMPREPLY[$cnt]}
        if [[ ${v:0:1} == "{1}quot; ]]; then
            COMPREPLY[$cnt]=$(eval echo "$v")
        fi  
        ((cnt++))
    done

最後_filedir()函式變成:
_filedir()
{
    local i IFS=$\'\n\' xspec

    _tilde "$cur" || return 0

    local -a toks
    local quoted tmp

    _quote_readline_by_ref "$cur" quoted
    toks=( ${toks[@]-} $(
        compgen -d -- "$quoted" | {
            while read -r tmp; do
                # TODO: I have removed a "[ -n $tmp ] &&" before 'printf ..',
                #       and everything works again. If this bug suddenly
                #       appears again (i.e. "cd /b<TAB>" becomes "cd /"),
                #       remember to check for other similar conditionals (here
                #       and _filedir_xspec()). --David
                printf '%s\n' $tmp
            done
        }
    ))

    if [[ "$1" != -d ]]; then
        # Munge xspec to contain uppercase version too
        [[ ${BASH_VERSINFO[0]} -ge 4 ]] && \
            xspec=${1:+"!*
[email protected]
($1|${1^^})"} || \ xspec=${1:+"!*[email protected]($1|$(printf %s $1 | tr '[:lower:]' '[:upper:]'))"} toks=( ${toks[@]-} $( compgen -f -X "$xspec" -- $quoted) ) fi [ ${#toks[@]} -ne 0 ] && _compopt_o_filenames # If the filter failed to produce anything, try w/o it (LP: #533985) if [[ -n "$1" ]] && [[ "$1" != -d ]] && [[ ${#toks[@]} -lt 1 ]] ; then toks=( ${toks[@]-} $( compgen -f -X -- $quoted) ) fi COMPREPLY=( "${COMPREPLY[@]}" "${toks[@]}" ) local cnt=0 while [ $cnt -lt ${#COMPREPLY[@]} ]; do local v=${COMPREPLY[$cnt]} if [[ ${v:0:1} == "{1}quot; ]]; then COMPREPLY[$cnt]=$(eval echo "$v") fi ((cnt++)) done }



相關推薦

Linux中文環境快速進入$HOME目錄"桌面"的辦法

安裝Linux的時候選擇了中文版,桌面的目錄就在 $HOME目錄下的"桌面"目錄; 在gnome terminal要進這個目錄,從redhat、FC,到RHEL,ubuntu,沒少煩過我:每次敲cd命令後還要把輸入法切換到中文,再輸入" 桌面"; 後來找到一下辦法:在.ba

安裝debian 9.1後,中文環境下將home目錄下文件夾改為對應的英文

div user 文件 彈出 install 1-1 debian 軟件 是否 #安裝需要的軟件 sudo apt install xdg-user-dirs-gtk #臨時轉換系統語言為英文,重啟後會自動恢復原值的 export LANG=en_US #執行轉換命令,彈

Linux系統環境快速熟悉

============================================ 使用如下命令快速瞭解linux系統 ============================================ Linux發展歷史: 1) RedHat --->

linux中如何快速進入某個目錄

1. 如果偶爾進的話可用tab鍵加速目錄輸入速度。 2. 如果經常進某個目錄可設定環境變數例如$DIRPATH=/usr/bin,通過cd $DIRPATH的方式進入。 3. 更簡單可以通過alias 命令註冊一個快捷命令如alias uu='cd /usr/lib/uu

Linux環境下遷移/home目錄到其他分區

size pan 一個 water inux cap 文件目錄 for 需要 一般我們在Linux環境下遷移/home家目錄到其他分區,無非是空間大小不足,遷移後可以做到擴容效果,因此這裏做一次遷移過程。本次采用新加一塊硬盤分區並將家目錄遷移到新分區上的方法

linux工具:快速返回某級父目錄--bd

cert tps nes style program 名稱 class bashrc o-c 當我們在linux服務器上切換父目錄時,通常使用cd ../../,有幾級目錄就輸入幾次"../",如果目錄嵌套的過深,就會有點暈菜...因此,本次介紹的這款工具,可以快速

linux中文件/目錄普通權限

權限 權限文件屬性的查看#############ls -l filename/ls -ld dictionary-|rw-r--r--.|1| root| ro

Linux運維系列一 CentOS 7桌面系統加入到Samba4 AD域環境

samba4 ads microsoft 解析器 集成 文章 groups 程序 用戶和用戶組 這篇文章講述了如何使用 Authconfig-gtk 工具將 CentOS 7 桌面系統加入到 Samba4 AD 域環境中,並使用域帳號登錄到 CentOS 系統。 要求 1、

linux中文件與目錄的特殊權限

使用 cnblogs 其他 time 分析 臨時 用戶 特殊權限 sbit time:18.03.26 以以下2個典型的文件及目錄來分析: ll /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 Jan 29 2014 /us

Linux中文件和目錄的權限關系

情況 文件大小 分配 學習 執行權 想要 編輯 無法 刪除文件 最近一直在學習linux,對文件和目錄的權限有了新的認識,感覺想要理清楚還是需要花點心思的。 註意:1.以下的情況只針對文件或目錄的所有者(u)來說;2.只針對ext4文件系統

Linux 配置中文環境

安裝 工具 pac amp man sta 換源 軟件源 date 系統升級 換源 更新軟件源和軟件包 sudo apt update && sudo apt upgrade -y 配置中文環境 安裝中文語言包 sudo apt install -

使用vagrant快速搭建linux實驗環境

由於 用戶家目錄 linu tom per host key 支持 fine 簡介本文主要介紹如何使用vagrant配合virtualbox快速搭建實驗環境。virtualbox是一個開源跨平臺虛擬機管理軟件,功能類似收費的vmwarevagrant是一個開源的虛擬機配置編

Linux高階程式設計基礎——檔案系統程式設計之遞迴遍歷/home目錄

檔案系統程式設計之遞迴遍歷/home目錄 /編寫程式完成以下功能: 1.遞迴遍歷/home目錄,打印出所有檔案和子目錄名稱及節點號。 2.判斷檔案型別,如果是子目錄,繼續進行遞迴遍歷,直到遍歷完所有子目錄為止。/ #include <stdio.h> #include &

Windows10 下啟用Linux子系統並設定中文環境

1、啟用開發者模式 設定-更新和安全-針對開發人員-開發人員模式-等待完成 2、設定-程式和功能-啟用或關閉windows功能-適用於Linux的Windows子系統-確定-等待安裝完成並重啟PC 3、安裝Linux 開啟windows10的應用商店,搜尋Linux,選擇需

ubuntu桌面環境安裝中文環境

apt install language-pack-zh-hans* language-pack-gnome-zh-hans* language-pack-kde-zh-hans* apt install $(check-language-support) 解決中文無法拖動檔案 找到Ubunt

VM環境下CentOS擴充套件磁碟空間,並且增加邏輯卷HOME目錄的大小

1.  Vm虛擬機器下Linux擴充套件原有磁碟空間,詳細步驟如下: 注意:linux只能擴充套件磁碟容量而不能減小, 所填寫的容量為總容量,即包含已分割槽的磁碟,擴充套件容量時不能有快照喲,大家可以先把快照刪除掉。   2.  啟動客戶機  fdisk –l  看

Linux開發環境搭建三 使用mount -t cifs 掛載windows共享目錄方法與問題解決

嵌入式開發通常是在linux環境下編譯,windows下開發,這就需要在linux環境下訪問windows目錄了,或者在windows上訪問linux目錄。通常有三種方式 如果是在vm虛擬機器上,vm提供了一個設定共享目錄功能。 如果linux是一臺伺服器的話,可以在li

linux環境快速安裝python3

之前在linux上安裝python3的時候,為了讓不影響linux環境原有的python2的環境,選擇的方法都是下載對應的linux環境的python包,不過 這裡需要注意的是,不要更改linux預設輸入python 進入python2的方法,自己安裝python3的時候做軟連結的時候要做成python3,

解決Linux無法建立新使用者和/home目錄下無法建立新目錄的問題

安裝devstack的時候由於stack.sh指令碼不允許在root使用者下執行,所以必須在系統中新建一個使用者,然後切換到這個使用者下進行安裝。 然而在建立使用者的時候被告知許可權不夠,而且直接在/

linux 誤刪home目錄

Linux 平臺誤刪 home oracle 根目錄的解決方法 每個使用者的建立,都會涉及到如下幾個檔案: /etc/passwd (使用者) /etc/group (使用者組) /etc/shad