`
xitongyunwei
  • 浏览: 935803 次
文章分类
社区版块
存档分类
最新评论

Linux中文环境快速进入$HOME目录"桌面"的办法

 
阅读更多

安装Linux的时候选择了中文版,桌面的目录就在 $HOME目录下的"桌面"目录;

在gnome terminal要进这个目录,从redhat、FC,到RHEL,ubuntu,没少烦过我:每次敲cd命令后还要把输入法切换到中文,再输入" 桌面";

后来找到一下办法:在.bashrc中export d=~/桌面/,要进“桌面"目录也就输入: "cd $d"


这时,问题又来了:

要把桌面的某个文件移到别的地方,敲mv $d/之后按TAB,bash竟然帮我补全成: "mv \$d/"....无语....

karlzheng@ubuntu:~$ complete |grep mv
complete -o default -F _longopt mv
karlzheng@ubuntu:~$ 

刚开始以为是,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:+"!*.@($1|${1^^})"} || \
            xspec=${1:+"!*.@($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下桌面快捷方式创建实例.docx

    Linux 桌面快捷方式创建实例 Linux 桌面快捷方式创建实例是一种在 Linux 系统中...本文提供了一个详细的 Linux 桌面快捷方式创建实例教程,帮助用户快速掌握桌面快捷方式的创建方法和桌面快捷方式文件的内容解释。

    Linux下如何安装JDK和Eclipse的配置方法.docx

    2. 设置环境变量:在/etc/environment文件中添加环境变量,export JAVA_HOME=/usr/share/JavaJDK/jdk1.6.0_33、export JRE_HOME=/usr/share/JavaJDK/jdk1.6.0_33/jre、export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib...

    linux基本命令

    本文档包含了所有linux的基本命令,例如: linux下字符界面与桌面切换快捷键 Vm虚拟机: 切换到字符界面:ctrl+shift+alt+F1 ...cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录

    Linux_基础培训教程.ppt

    Linux 用户环境由内核、Shell、终端模拟器、X Window 系统、窗口管理器和桌面环境组成。用户可以通过本地登录或远程登录方式登录 Linux 系统。在登录后,用户将被置于 home 目录下,默认目录是当前用户的主目录。 ...

    linux教程——很使用的那种

    unix图形环境是CDE:common desktop environment通用桌面环境。 linux系统结构:硬件、内核层、shell层、应用层、用户。 在安装linux的时候,会弹出 CD Found To begin testing the CD media before ...

    在linux下安装配置eclipse(redhat 9.0)

    本文将指导您在 Linux(Redhat 9.0)平台下安装和配置 Eclipse 集成开发环境(IDE),包括安装 JDK、Eclipse 和 CDT组件,并配置 Eclipse 的环境变量和桌面快捷方式。 一、安装 JDK 为了在 Linux 下安装 Eclipse,...

    桌面版Linux(centos7)下chrome离线安装包

    cp /usr/share/applications/google-chrome.desktop /home/xxx/Desktop; 桌面即有google-chrome.desktop文件,双击允许打开,图标即变成chrome标准图标。 若无法打开,则修改桌面文件中最后一行的配置:Exec=/usr/...

    gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.7z

    交叉编译工具:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.bz2 解压命令:tar jxvf gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.bz2

    Linux实验二

    熟悉unity桌面的环境布局 2.熟悉dash的使用 3.熟悉常用软件的功能及使用 4.熟悉常用的系统设置功能 实验二: 1. 使用putty远程登陆Linux 2. 在putty设置背景颜色 3. 在putty设置字体,字的大小以及字的颜色 教材P68...

    安装Linux系统后不知所措?.pdf

    3. 分区硬盘:分配硬盘空间,例如创建根目录、-home目录、swap分区等。 4. 安装基本系统:安装基本系统,包括Linux kernel、系统库、基本应用程序等。 5. 配置网络:配置网络设置,例如IP地址、子网掩码、网关、DNS...

    linux复习题

    4. 下面哪个不是桌面环境软件? A.KDE B.twm C. Gnome D.CDE 5. 在UNIX/Linux系统添加新用户的命令是() A. groupadd B. usermod C. userdel D. useradd 6. Android系统是基于Linux操作系统开发的手机系统,因此...

    【官方资源下载】统信UOS家庭版21.3(国产linux桌面操作系统) 极速安装器 一键安装 极速体验

    【特别说明】目前仅支持在只有windows系统的电脑设备上安装,如已安装其他linux系统,请勿安装哦!!! 【统信UOS家庭版特性】 一键安装UOS系统:无需分区,全自动安装,复制原系统资料,支持双系统自由切换 生态...

    解决安装Linux时KDE乱码.pdf

    KDE(K Desktop Environment)是一种基于Linux的桌面环境,它提供了一个图形化的用户界面,使得用户可以更方便地使用Linux系统。然而,在安装Linux时,如果不正确地配置KDE,可能会导致乱码的问题。 解决KDE乱码的...

    Figma-linux是用于Linux的非官方的基于Electron的Figma桌面应用程序。-Linux开发

    要在使用快照版本时使用本地字体,请创建符号链接:sudo ln -s $ HOME / .local / share / fonts $ HOME / snap / figma-linux / current / .local / share /还有一个AppImage可用。 在我们的“发布”页面上获取它

    使用Linux系统搭建FTP与SMB服务器.pdf

    创建用户需要使用 root 用户登录系统,然后创建两个用户“share”和“manager”,对应的同一个主目录(/home/share),“share”用户有“只读”权限,“manager”用户有“读写”权限。 六、设置文件夹权限 设置...

    Linux应用技术:Linux常用命令与VI文件编辑器.docx

    在/home目录下使用vi编辑器创建文本文件test,输入内容“I Like Linux!”并保存,然后使用cat命令将文件中的内容显示出来。(截图) 用vi编辑器打开test文件继续添加一下内容: 1234567890123456 Abcdefghjkabcd ...

    icon-de:小型Linux桌面环境(DE)-开源

    一个自己开发的LINUX桌面环境(Desktop Environment) 3.0.4版本发布!!! 请到ubuntu中文看细节。 http://forum.ubuntu.org.cn/viewtopic.php?f=1&t=372366 wiki: https://sourceforge.net/p/icon-de/wiki/Home/ ...

    linux设置tomcat自启动的方法

    linux设置tomcat自动启动在centos下,开机后会自动执行/etc/rc.local中的命令,平时启动tomcat的命令为tomcat_home/bin/startup.sh或tomcat_home/bin/catalina.sh start,当直接把他们任何一个加入到/etc/rc.local中...

    figma-linux:Figma是第一个基于浏览器的界面设计工具,使团队更容易创建软件。 加入我们https://t.mefigma_linux和https:spectrum.chatfigma-linux

    Figma-linux是用于Linux的非官方的基于的桌面应用程序。 安装 普遍 您可以从Snap安装Figma-linux 或者,键入 sudo snap install figma-linux 在您的终端中。 要在使用捕捉的版本时使用本地字体,请创建符号...

    RED HAT LINUX 6大全

    本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容...

Global site tag (gtag.js) - Google Analytics