BashエイリアスはDebianではロードされませんが、Mintではsudo -sを実行するとロードされます。

BashエイリアスはDebianではロードされませんが、Mintではsudo -sを実行するとロードされます。

ls両方のシステムにまったく同じエイリアスが定義されています。

$ cat ~/.bash_aliases | grep -e "alias ls=" -e "alias l=" -e "alias lll="
alias ls='\ls --kibibytes --color=always --group-directories-first'
alias l='ls'
alias lll='l -la'

Linuxミント(18.1)

(私はこの機械の前に座っています。)

$ sudo -s
[sudo] password for ...

$ lll
(very long list of files)

GNU/Linux Debian Stretch(9、テスト済み)

(私はsshこのマシンを使用しました。)

$ ssh username@ip_address_of_server -p port_number

$ sudo -s
[sudo] password for ...

$ lll
lll: command not found

質問

sudo -sLinux Mintのように、Debianでも個人的なエイリアスを取得するという目標をどのように達成しますか?


sudo -s説明する

sudo -s私のLinux Mintにはsudo -isusu -

それはLinux Mintで私のニーズに合わせて動作し、便利なエイリアスがたくさん定義されており、私のDebianサーバーでも動作したいと思います。

答え1

.bash_alias正しいシェル初期化ファイルからこのファイルをインポートする必要があります。初期化ファイルは、シェルの起動方法によって異なります。 SSH経由で呼び出すことは、ローカルコンピュータから呼び出すのとは異なります。ただし、再度呼び出すと、sudo -s対話型の非ログインであるルートシェルが起動されるため、両方のシステムで同じになります。ただし、同じエイリアスを取得するには同じ定義が必要です。

主張する場合は、ファイルをsshユーザーにsudo -s提供してください。したがって、次の行を追加すれば十分です。.bash_aliases.bashrc~/.bashrc

. ~/.bash_aliases

このlllエイリアスは以前はMintでは動作していましたが、sudo -sDebianでは動作しませんでした。なぜならSSHセッションなので、ログインシェルだったからです。一方、Mintではインタラクティブにしか機能しませんでした。 SSH Debianでエイリアスをすぐに使用できるようにするには、.profileファイルに別のソースを追加する必要があります。

これは非常に複雑で、全体的な状況を理解するには、ログインとインタラクティブシェルを読み、理解する必要があります。man bashすべてを備えています。あなたは見ることができますこの回答これが何であるかを見てください。この回答の下のコメントをスキップしないでください!

関連情報