这些bash完成建议有什么意义?

~$HOME对我来说cd ~/home/cat到目前为止很简单,是吗?

在Bash中,发生以下情况:

cat @ mint-kitty : ~/Downloads $ cd ~ # from /home/cat/Downloads to /home/cat/, as an example, but behaviour happens with any directory
cat @ mint-kitty : ~ $ cd ~<TAB>proxy/ # oh? what's this?
cat @ mint-kitty : /bin $ cd ~<TAB><TAB>
~ais                ~clamav/            ~debian-tor/        ~gitlog             ~list               ~mixmaster/         ~ntp                ~redis/             ~stunnel4           ~systemd-resolve    ~uuidd/
~avahi/             ~cl-builder/        ~dirmngr/           ~gnats              ~lp                 ~monkeysphere/      ~oident/            ~roard/             ~sync/              ~systemd-timesync/  ~vde2-net
~avahi-autoipd/     ~clickpkg           ~dnsmasq/           ~irc                ~mail/              ~mpd/               ~pdnsd/             ~root/              ~syncache/          ~timidity/          ~whoopsie
~backup/            ~colord/            ~epmd               ~jetty/             ~man/               ~muroard/           ~postgres/          ~rtkit/             ~sys/               ~tomcat8            ~www-data/
~bin/               ~daemon/            ~festival           ~libvirt-dnsmasq/   ~mdm/               ~mysql              ~proxy/             ~saned              ~syslog             ~trafficserver      
~bind/              ~Debian-exim/       ~games/             ~libvirt-qemu/      ~memcache           ~news               ~pulse              ~speech-dispatcher  ~systemd-bus-proxy/ ~uml-net            
~cat/               ~debian-spamd/      ~gitdaemon          ~lightdm/           ~messagebus/        ~nobody             ~radvd              ~sshd/              ~systemd-network    ~uucp               
cat @ mint-kitty : /bin $ cd ~systemd-resolve 
bash: cd: /run/systemd/resolve: No such file or directory
1 | cat @ mint-kitty : /bin $ cd ~redis
cat @ mint-kitty : /var/lib/redis $ cd ~clamav
cat @ mint-kitty : /var/lib/clamav $ cd ~irc
bash: cd: /var/run/ircd: No such file or directory
1 | cat @ mint-kitty : /var/lib/clamav $ cd ~gnats
bash: cd: /var/lib/gnats: No such file or directory
1 | cat @ mint-kitty : /var/lib/clamav $ cd ~sshd
cat @ mint-kitty : /var/run/sshd $ cd ~nobody
bash: cd: /nonexistent: No such file or directory

显然,<TAB>代表TAB键以ASCII9而不是实际文本发送字节

我已经在PS1提示符下显示了当前路径和返回代码。我的问题是,这些目录从中自动完成的意义是什么~

我已经创建了一个表格以及它们指向的位置,以更好地理解它们(但是现在我更加困惑了)。

thing            points-at?
===========================================
~ais             ENOENT /home/ais/         # user ais uid=156(ais) gid=163(ais) groups=163(ais) does not have an entry in /home/
~avahi           /var/run/avahi-daemon/
~avahi-autoipd   /var/lib/avahi-autoipd/
~backup          /var/backups/
~bin             /bin/
~bind            /var/cache/bind/
~cat             /home/cat/
~clamav          /var/lib/clamav/
~cl-builder      /usr/share/common-lisp//  # two slashes
~clickpkg        ENOENT /nonexsistent/     # yes, really
~colord          /var/lib/colord/
~daemon          /usr/sbin/                # ??
~Debian-exim     /var/spool/exim4/         # ??
~debian-spamd    /var/lib/spamassassin/
~debian-tor      /var/lib/tor/
~dirmngr         /var/cache/dirmngr/
~dnsmasq         /var/lib/misc/             # ??
~epmd            /var/run/epmd/
~festival        ENOENT /home/festival      # user festival uid=131(festival) gid=29(audio) groups=29(audio) does not have an entry in /home/
~games           /usr/games/                # ???
~gitdaemon       ENOENT /nonexistent/
~gitlog          ENOENT /nonexistent/
~gnats           /var/lib/ircd/
~jetty           /usr/share/jetty8/
~libvirt-dnsmasq /var/lib/libvirt/
~libvirt-qemu    /var/lib/libvirt/
~lightdm         /var/lib/lightdm/
~list            ENOENT /var/list/
~lp              ENOENT /var/spool/lpd/
~mail            /var/mail/
~man             /var/cache/man/
~mdm             /var/lib/mdm/
~memcache        ENOENT /nonexistent/
~messagebus      /var/run/dbus
~mixmaster       /var/lib/mixmaster/
~monkeysphere    /var/lib/monkeysphere/
~mpd             /var/lib/mpd/
~muroard         /var/lib/muroard/
~mysql           ENOENT /nonexistent/
~nobody          ENOENT /nonexistent/
~ntp             ENOENT /home/ntp            # user ntp uid=107(ntp) gid=114(ntp) groups=114(ntp) does not have an entry in /home/
~oident          /                           # ????
~pdnsd           /var/cache/pdnsd/
~postgres        /var/lib/postgresql/
~proxy           /bin/
~pulse           ENOENT /var/run/pulse
~radvd           ENOENT /var/run/radvd
~redis           /var/lib/redis
~roard           /var/lib/roard
~root            /root
~rtkit           /proc
~saned           ENOENT /var/lib/saned
~speech-dispatcher ENOENT /var/run/speech-dispatcher
~sshd            /var/run/sshd
~stunnel4        ENOENT /var/run/stunnel4
~sync            /bin/
~syncache        /var/run/syncache-drb/
~sys             /dev/                       # ???
~syslog          ENOENT /home/syslog         # user syslog uid=104(syslog) gid=109(syslog) groups=109(syslog),4(adm) does not have an entry in /home/
~systemd-bus-proxy /run/systemd/
~systemd-network ENOENT /run/systemd/netif/
~systemd-resolve ENOENT /run/systemd/resolve/
~systemd-timesync /run/systemd/
~timidity        /etc/timidity/
~tomcat8         ENOENT /usr/share/tomcat8/
~trafficserver   ENOENT /var/run/trafficserver/
~uml-net         ENOENT /home/uml-net/       # user uml-net uid=146(uml-net) gid=155(uml-net) groups=155(uml-net) does not have an entry in /home/
~uucp            ENOENT /var/spool/uucp/
~uuidd           /run/uuidd/
~vde2-net        ENOENT /var/run/vde2/
~whoospie        ENOENT /nonexistent/
~www-data        /var/www

thing列是所显示的条目~<TAB><TAB>points-at是目录thing指向的位置,还是目录不存在的位置thing

例如,~cat给定bash: /home/cat: Is a directory,所以,~cat -> /home/cat但是~clickpkg给定bash: /nonexistent: No such file or directory,所以~clickpkg -> ENOENT /nonexistent/

我已经介绍了所有数据。这里发生了什么?是否~正在秘密地扩展到某种东西?

用户名

A~user是该$HOME用户目录。
这就是~所有这些补充的目录列表(第二列):

awk -F ":" '{printf( "%15s \t %-20s\n",$1,$6)}' /etc/passwd

来自man bash(搜索“波浪扩展”)


波浪号扩展如果不引用波浪号前缀中的任何字符,则波浪号后的波浪号前缀中的字符将被视为可能的登录名。
...波浪号前缀被替换为与指定登录名关联的主目录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么这些bash前叉炸弹的工作方式不同,&在其中的意义是什么?

来自分类Dev

bash //的意义是什么?

来自分类Dev

在Perl中而不是Bash中执行这些Shell操作是否有意义?

来自分类Dev

这些虚拟表的意义是什么?

来自分类Dev

与仅评估变量相比,eval / bash -c有什么意义?

来自分类Dev

硫化,有什么意义?

来自分类Dev

FOSUserBundle:有什么意义?

来自分类Dev

有什么意义?

来自分类Dev

FOSUserBundle:有什么意义?

来自分类Dev

为什么VS Code IntelliSense for Python建议不要对所有相同类型的变量建议自动完成?

来自分类Dev

数据属性有什么意义?

来自分类Dev

BigInteger :: intValueExact()-有什么意义?

来自分类Dev

使用tee有什么意义?

来自分类Dev

if let语句有什么意义?

来自分类Dev

is_null()有什么意义?

来自分类Dev

mapDispatchToProps:有什么意义吗?

来自分类Dev

超时元组有什么意义?

来自分类Dev

更新Joomla有什么意义?

来自分类Dev

MSStream-有什么意义?

来自分类Dev

sass @extend有什么意义?

来自分类Dev

arp -g有什么意义?

来自分类Dev

编辑会话有什么意义?

来自分类Dev

使用tee有什么意义?

来自分类Dev

为什么终端自动完成有时不建议`services'命令使用任何内容?

来自分类Dev

为什么终端自动完成有时不建议`services'命令使用任何内容?

来自分类Dev

反编译的memcpy-这些说明的意义是什么?

来自分类Dev

使用这些[输入]和[输出]功能的意义是什么

来自分类Dev

ElasticSearch在现有字段上的完成建议

来自分类Dev

为什么 Bash 中的外部 while 循环没有完成?