私のディレクトリには/home/lucas/bin
次のスクリプトがありますterm_multiscreen
。
[lucas@lucas-ThinkPad-W520]~$ sudo cat bin/term_multiscreen
#!/bin/bash
# Initializes Nvidia Optimus for multi-screen functionality.
xorg_process=$(ps aux | grep 'Xorg' | grep -v grep | awk '{print $2}')
sudo kill -15 $xorg_process
sudo rmmod nvidia
sudo tee /proc/acpi/bbswitch <<<OFF
# xrandr --output VIRTUAL1 --off
[lucas@lucas-ThinkPad-W520]~$
私がするときcd ~/bin
、それはうまく動作しますsudo term_multiscreen
。私がそのディレクトリの外にいるときに返されますcommand not found
。/home/lucas/bin
私のものもそこにあります$PATH
。私は何が間違っていましたか?
しかし、私の権限は次のとおりです。
[lucas@lucas-ThinkPad-W520]~$ ls -la bin/
total 44
drwxr-xr-x 2 lucas lucas 4096 May 6 15:43 .
drwxr-xr-x 71 lucas lucas 4096 May 6 15:43 ..
-rwx--x--x 1 root root 137 Mar 2 03:26 init_multiscreen
-rw-r--r-- 1 lucas lucas 0 Mar 2 03:24 init_optimus~
-rwx--x--x 1 root root 260 Mar 2 05:54 term_multiscreen
[lucas@lucas-ThinkPad-W520]~$
ところで、私はUbuntu 13.10を使用しています。
ベストアンサー1
フルパスを使用してスクリプトを呼び出すことをお勧めします:sudo /home/lucas/bin/term_multiscreen
またはsudo ~/bin/term_multiscreen
。これはsudo
sに関連するセキュリティリスクをもたらしませんsecure_path
。
もちろん、入力が長すぎるため(管理者は怠惰です)、別名に入力してください~/.bashrc
。
alias tmulti="sudo $HOME/bin/term_multiscreen"
その後、~.bashrc
テストを再ロードします。
. ~/.bashrc
tmulti
常に呼び出しスクリプトを使用している場合は、スクリプトから呼び出しをsudo
削除することもできます。sudo