标签: tilde

如何设置波形符+别名样式?

我注意到存在默认波浪号+别名:

[root@xiaobai ~]# cd ~[press Tab]
~abrt/                ~dbus/                ~lp/                  ~openvpn/             ~root/                ~systemd-network/
~adm/                 ~ftp/                 ~mail/                ~operator/            ~rpc/                 ~systemd-resolve/
~apache/              ~games/               ~mpd/                 ~pkg-build/           ~rpcuser/             ~systemd-timesync/
~avahi/               ~gdm/                 ~mysql/               ~polkitd/             ~rtkit/               ~tcpdump/
~avahi-autoipd        ~geoclue/             ~nfs4user/            ~postfix/             ~saslauth/            ~toranon/
~bin/                 ~gnome-initial-setup  ~nfsnobody/           ~postgres/            ~shutdown/            ~tss
~chrony/              ~halt/                ~nm-openconnect/      ~pulse                ~sshd/                ~unbound/
~colord/              ~iguanair/            ~nobody/              ~qemu/                ~sync/                ~usbmuxd/
~daemon/              ~ldap/                ~ntop/                ~radvd/               ~systemd-bus-proxy/   ~xiaobai/
[root@xiaobai ~]# cd ~halt
[root@xiaobai sbin]# pwd
/sbin
[root@xiaobai sbin]# l ~halt
14 lrwxrwxrwx. 1 root root 8 Nov 18 …
Run Code Online (Sandbox Code Playgroud)

bash directory tilde

3
推荐指数
1
解决办法
1370
查看次数

波浪号扩展在 shell 变量中如何工作?

我在测试脚本时发现了一些有趣的事情。

如果我运行,我可以从 shell 手动 ls 我的目录

$ ls ~/db_backups/
test1  test2
$ 
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用波浪号为 shell 变量分配一个目录位置,则它不起作用。我用单引号和双引号尝试过。

$ backupfolder='~/db_backups'
$ echo $backupfolder
~/db_backups
$ ls $backupfolder
ls: cannot access '~/db_backups': No such file or directory
$ 
Run Code Online (Sandbox Code Playgroud)

shell 变量内的波形符替换发生了什么?为什么我不能像手动使用目录名称中的波浪号那样通过变量来 ls 目录?

bash variable-substitution tilde

2
推荐指数
2
解决办法
1271
查看次数

为什么 `mkdir ~root/.ssh` 和 `mkdir /root/.ssh` 是一回事?

这是相当微不足道的,我只是好奇为什么mkdir ~root/.sshmkdir /root/.ssh? 我正在查看以下 docker 文件,并且创建者用于mkdir ~root/.ssh创建.ssh目录:

https://github.com/macropin/docker-sshd/blob/master/Dockerfile

一个比另一个有什么优势吗?当我第一次阅读它时,我认为它~root会扩展到/rootroot.

ssh mkdir tilde

1
推荐指数
1
解决办法
1349
查看次数

Ubuntu 不会将 /home/testuser 翻译为 ~

在 Ubuntu 22.04.3 LTS 中,如果我使用 LDAP 用户的凭据登录testuser,在几个不同的程序中,目录的路径$HOME不会被替换~(相反,本地用户会发生这种情况)。

举几个例子:

  1. 在 中bash, 的值为PS1默认值:

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
    
    Run Code Online (Sandbox Code Playgroud)

但它显示为

testuser@myhost:/home/testuser$
Run Code Online (Sandbox Code Playgroud)

代替

testuser@myhost:~$
Run Code Online (Sandbox Code Playgroud)
  1. 在 中neomutt,在列出邮件目录的左栏中,显示其完整路径

    /home/testuser/Mail/mailbox1
    
    Run Code Online (Sandbox Code Playgroud)

代替

   ~/Mail/mailbox1
Run Code Online (Sandbox Code Playgroud)

然而,在bash,

$ echo $HOME
/home/testuser
Run Code Online (Sandbox Code Playgroud)

所以这个env变量HOME在某种程度上是被认可的。

这可能是什么问题?


更新

我用来sssd管理 LDAP 用户的身份验证:

$ grep passwd /etc/nsswitch.conf 
passwd:         files systemd sss
Run Code Online (Sandbox Code Playgroud)

LDAP 用户和本地用户的条目看起来非常相似:

$ getent passwd testuser
testuser:*:<uid>:<gid>:Test User:/home/testuser/:/usr/bin/bash

$ getent passwd localuser
localuser:x:<uid>:<gid>:,,,:/home/localuser:/bin/bash
Run Code Online (Sandbox Code Playgroud)

$ echo $HOME
/home/testuser/
Run Code Online (Sandbox Code Playgroud)

与 …

bash ldap ubuntu home tilde

0
推荐指数
1
解决办法
65
查看次数

cd ~ 在 Ubuntu 上在哪里?

cd ~Ubuntu上的绝对路径是什么?

试图找出dir它的位置?

例如:

/home
Run Code Online (Sandbox Code Playgroud)

ubuntu cd-command tilde

-1
推荐指数
2
解决办法
353
查看次数

标签 统计

tilde ×5

bash ×3

ubuntu ×2

cd-command ×1

directory ×1

home ×1

ldap ×1

mkdir ×1

ssh ×1

variable-substitution ×1