別名を~/.config/fish/config.fish
に定義し、~/.config/fish/functions
で定義された関数をrootユーザーにも使用できるようにするにはどうすればよいですか?魚のシェルのユーザーとルートの別名と機能
/root/.config/fish
にシンボリックリンクしていませんでした。さらに、私はまた、現在機能していないsudo
で自分の関数とエイリアスを使用できるようにしたいと思います。
あなたはどうしていますか?
別名を~/.config/fish/config.fish
に定義し、~/.config/fish/functions
で定義された関数をrootユーザーにも使用できるようにするにはどうすればよいですか?魚のシェルのユーザーとルートの別名と機能
/root/.config/fish
にシンボリックリンクしていませんでした。さらに、私はまた、現在機能していないsudo
で自分の関数とエイリアスを使用できるようにしたいと思います。
あなたはどうしていますか?
私は最初の問題(私はrootユーザーにとって便利な機能はありません)の解決策はありませんが、2番目の関数(sudo
の引数として機能しない関数)は次のように解決できます。ラッパー関数:
function sudo
if functions -q $argv[1]
set argv fish -c "$argv"
end
command sudo $argv
end
問題がsudo
は、外部コマンドであることはもちろんである(通常は/ usr/binに/ sudoの時)関数定義のような魚の内部について知ることができません。したがって、関数名を与えると、このラッパーは魚を呼び出します。もちろん、これは新しい魚のセッションを開始するので、cd
のようなものは、メインの魚のセッションの状態を変更しないので有用ではありません。
私はconfig.fishへのシンボリックリンクを使用し、完全に動作します。あなたはパーミッションをチェックしましたか?あなたは、ディレクトリの/ etc /魚/のために使用することができ、より新しいバージョンでは
777 lrwxrwxrwx 1 root root 35 Dez 21 2015 /root/.config/fish/config.fish -> /home/lara/.config/fish/config.fish
システム全体の設定
私はエイリアスで解決sudoのに問題:
# -E just preserv env. It's not really
# necessary, but may be useful.
function sudo; command sudo -sE $argv; end
sudoの男からページ:
-s、 - シェル SHELL環境変数で指定されたシェルを実行しますtまたは呼び出すユーザーの パスワードデータベースエントリで指定されたシェル。コマンドが指定されている場合は、シェルの にシェルの-cオプション を実行するために渡されます。コマンドを指定しないと、対話型シェルが実行されます。
クール、ありがとうございます。うまく動作します。私はそれが役に立つ事だと思う。 –
私はこの機能が気に入っていますが、スペースを含む引数を扱わないことは危険です。例えば、魚の 'ls'も関数です。 'sudo ls" My File "を実行すると、MyとFileというファイルが別々に検索されます。 –