운영 체제: Linux Mint 18.x Cinnamon 64비트
현재 작업 디렉터리에서 Cinnamon의 기본 파일 관리자와 일반 파일 관리자를 실행하고 싶다고 가정해 보겠습니다 nemo
.sudo
sudo nemo .
질문:
다음과 같이 내가 신경 쓰지 않는 다양한 작은 오류가 표시됩니다.
(nemo:21081): Gtk-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
전원을 끈 후
gnome-terminal
제어권이 다시 나에게 돌아오기까지 정확히 30초가 걸렸습니다.
목표는 bash
alias
또는 을 정의하는 것입니다 function
. 이는 이러한 측면이나 다른 부정적인 측면을 갖지 않습니다.
또한:
Nemo와 Terminal을 독립적으로 사용할 수 있도록 즉시 제어권을 넘겨주고 싶습니다.
마치 작업 디렉토리인 것처럼 실행하거나 일부 디렉토리를 인수로 제공하고 싶습니다.
답변1
내 관점에서 가장 효율적인 방법은 다음과 같습니다.
사용하다서브쉘,
(
즉)
실제 명령의 시작과 끝입니다.&
마지막으로 명령을 배경으로 설정합니다.백그라운드 프로세스로 실행하고 있기 때문에정상
sudo
성공하지 못하므로 이에 해당하는 그래픽을 사용해야 합니다gksudo
.IMHO 이것은 불가능합니다 . 인수가 제공되었는지 확인하고 그에 따라 조치를 취해야 하므로 대신
alias
a를 정의해야 합니다 .function
모든 출력을 블랙홀(
> /dev/null 2>&1
)로 리디렉션하는 것이 좋은 습관입니다. 이 경우에는 실제로 아무것도 수행하지 않습니다.
다음 기능은 내 기대에 부응합니다. 솔루션을 자유롭게 추가하세요.
Linux Mint 18.x의 작업 솔루션
function sunemo {
if [ -z "$1" ]
then
(gksudo nemo . > /dev/null 2>&1 &)
else
(gksudo nemo "$1" > /dev/null 2>&1 &)
fi
}
Linux Mint 19.x에서는 gksudo
이것이 제거되었음을 알 수 있습니다.
Linux Mint 19.x의 작업 솔루션
function sunemo {
if [ -z "$1" ]
then
(nemo "admin://$PWD" > /dev/null 2>&1 &)
else
(nemo "admin://$1" > /dev/null 2>&1 &)
fi
}