Linux Shell 按Tab键不能补全

今天碰到一个问题git 后面的参数用Tab键无法补全   例如git c_

在网上找了半天找到答案如下

今天在Linux上用useradd新增用户的时候,发现使用新增的用户登陆的时候,在Shell里面不能使用Tab键补全命令,按上下键也不能切换历史命令,出现乱码的现象。Root用户是OK的。

后面发现,在/etc/passwd里面,新增的用户用的Shell与root用户的不一样。

Root用的是/bin/bash

新增用户默认用的是/bin/sh

用ls -l /bin/sh发现

/bin/sh -> /bin/dash

dash与bash是不一样的,把/bin/sh改成/bin/bash后,

在我的ubuntu上运行 sudo gedit /etc/passwd  结果如下   也可以用env命令查看 shell=/bin/bash/

hailongzhou:x:1000:1000:hailongzhou,,,:/home/hailongzhou:/bin/bash
用户的shell确实是bash 可是     /bin/sh -> /bin/dash

修改Ubuntu的/bin/sh的默认连接:

终端输入:

[email protected]:~# cd /bin

[email protected]:/bin# ls -l /bin/sh

lrwxrwxrwx 1 root root 4 2008-04-28 19:59 /bin/sh -> dash  //默认位dash

[email protected]:/bin# ln -sf bash /bin/sh      //软链接  -f表示强制

[email protected]:/bin# ls -l /bin/sh

lrwxrwxrwx 1 root root 4 2008-05-01 22:51 /bin/sh -> bash  //现在位bash了

git 后面的参数可以用Tab键补齐了

bash 与dash的区别
bash - GNU Bourne-Again SHell
dash - Debian Almquist Shell
可以分别man bash  / man dash看一下。

那么怎么把sh改为指向bash呢?
最暴力的方法当然是直接把/bin/sh的软链接改到bash中,
如:ln -s /bin/bash /bin/sh
但是,有优雅一些的方法,
sudo dpkg-reconfigure dash
出现菜单问你是否要dash的时候,选no就可以了。
再次检查一下, ls /bin/sh -al 发现软链接指向/bin/bash就可以了。

时间: 2024-10-16 06:26:17

Linux Shell 按Tab键不能补全的相关文章

配置python命令tab键自动补全

配置python命令tab键自动补全 1. 下载readline模块 http://newcenturycomputers.net/projects/readline.html 2. install readlinemodule 3. edit and configure pythonstartup file # python startup fileimport sysimport readlineimport rlcompleterimport atexitimport os# tab co

远程桌面中Tab键不能补全的解决办法

我们曾在之前的一篇文章中介绍了windows远程连接ubuntu的方法,在成功登陆远程桌面环境之后,发现在终端中Tab键不能自动补齐(但是Ctrl +Tab 可以用,但是需要按下组合键才能补全的话,时间久了确实有点烦),功夫不服苦心人,最后在国外的网站上找到了解决方法,下面给出链接,有兴趣的朋友可以看看:http://ubuntuforums.org/archive/index.php/t-1771058.htmlhttps://answers.launchpad.net/ubuntu/+sou

CRT 连接 ENSP时,Tab 键无法补全与回车键显示双行的解决方法

今天使用 CRT 连接 ensp 时,出现了一个烦人的问题:CRT 连接 ENSP时,Tab 键无法补全与回车键显示双行.这个虽然不影响使用,但是总是感觉不舒服,所以只能把它处理掉.在网上找了相关的资料,也经过测试,确实是OK. 现在方法记录下,留作后用. 网上找到的解决方法:https://blog.csdn.net/wdkirchhoff/article/details/44172455 还遇到一个问题,我在全局设置后,重启CRT,连接后还是一样的无效果,所以只能是一个一个的连接去更改.不知

centos6安装tab键自动补全功能bash_completion

yum源和centos6镜像源没有bash--completion,需要安装epel源 EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为"红帽系"的操作系统提供额外的软件包,适用于RHEL.CentOS和Scientific Linux 下载命令如下 wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm sudo rpm -ivh

Linux(centOS)下,使用TAB键不能补全命令的解决方式

今天在centOS上做实验,发现之前在Ubuntu下使用的比较习惯的tab键补全命令的方式不能使用,于是非常好奇,经过查找资料并亲自测试,将可行的解决方式记录如下: 1)首先需要在终端中运行如下命令: # yum install bash-completion//也可以使用通配符安装:yum install bash-c* 2)如果上述命令不行,可以试试下面这个命令 yum  upgrade 3)如果上述两个命令还是不行,可以将机器重启,或者重新登录 由于我实验时用的是scureCRT,所以我选

Python命令添加Tab键自动补全

环境介绍 OS:RHEL 5.5 Python版本:2.7.6 在使用linux命令的时候我们习惯使用下Tab键,在python下我们也可以实现类似的功能. 类似Linix shell的TAB功能,Python也可以实现的! 具体实现过程如下: 1.编写python脚本 $ cat  tab_enable.py #!/usr/bin/python # python startup file import sys import readline import rlcompleter import

Source Insight 4.0 文件类型、编码格式、tab转空格、tab键自动补全设置。。。

1.编码格式  -- 在 Options->Preferences->Files 中的最下面,Default enconding 为 UTF-8 2.tab转空格 其他相关设置如下: 以下是一些新特性的展示: 1.文件对比 这个功能在->Tools 中,可以支持当前文件和备份文件对比,也支持两个文件对比.甚至支持文件夹内容对比.简单使用后发现效果好不错,这是替代 UltraCompare 的节奏啊,不过应该不支持文件信息的二进制版本对比. 2.代码 Reformat 这个功能也在->

设置python中TAB键自动补全方法

一.创建自动补全脚本如下: vi /tmp/python/tab.py #!/usr/bin/python # python tab file import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.environ[

Python命令行添加Tab键自动补全功能

(一)系统环境: OS:centos 6.5final Python: 2.6.6 (二)步骤: 1,写一个Python自动补全脚本首先readline和rlcompleter模块具体如下:, [[email protected] python2.6]# vim tab.py #!/usr/bin/python  # python TAB file  import sys  import readline  import rlcompleter  import atexit  import os