나는 종종 다음 명령을 입력하는 자신을 발견합니다.
sudo -i
cd workdir
스크립트를 만들고 이름을 문자로 지정하고 싶습니다. 예를 들어 a
실행하면 a
위의 두 명령을 입력한 것과 효과가 동일합니다. 구체적으로는 Windows에서 "상승된" 프롬프트가 표시되고 지정된 폴더에 있습니다.
어떻게 이를 달성할 수 있나요?
답변1
해결책이 있다고 생각하지만 이로 인해 여러 프로세스가 생성됩니다.
#!/bin/bash
sudo -i bash -c 'cd /path/to/your/workdir && exec bash'
첫 번째 프로세스는 스크립트를 실행하여 생성되고, 두 번째 프로세스는 bash를 실행하는 데 사용되며 sudo -i
(이에 대해서는 잘 모르겠습니다), exec bash
높은 권한으로 원하는 작업 디렉터리를 제공하는 별도의 프로세스가 생성됩니다.
마지막 grep bash 프로세스를 제외한 모든 프로세스는 이 스크립트를 사용하여 생성됩니다. 너무 많은 프로세스를 갖고 싶다면 이 솔루션을 사용할 수 있습니다.
➜ ~ ./test.sh
[sudo] password for user1:
root@mycomputer:/home/user2# ps -aux | grep bash
user1 12875 0.0 0.0 9972 3584 pts/0 S+ 18:05 0:00 /bin/bash ./test.sh
root 12876 0.0 0.0 14348 6272 pts/0 S+ 18:05 0:00 sudo -i bash -c cd /home/user2 && exec bash
root 12877 0.0 0.0 14348 2380 pts/1 Ss 18:05 0:00 sudo -i bash -c cd /home/user2 && exec bash
root 12878 0.0 0.0 10236 4224 pts/1 S 18:05 0:00 bash
root 12892 0.0 0.0 9080 2560 pts/1 S+ 18:05 0:00 grep --color=auto bash
root@mycomputer:/home/user2#
여기서는 zsh를 사용하고 있으므로 화살표가 있는 첫 번째 명령이 다릅니다 user1
.user2