GNU/Linux >> Znalost Linux >  >> Linux

Jak SSH do konkrétního adresáře v Linuxu

Byli jste někdy v situaci, kdy jste chtěli SSH na vzdálený server a okamžitě cd do adresáře? Ano? No, jste na správné cestě! Tento stručný návod popisuje, jak přímo SSH do konkrétního adresáře v Linuxu. Význam - při přihlášení do vzdáleného systému přes SSH se můžeme automaticky přepnout do konkrétního adresáře. Nejen SSH do konkrétního adresáře, je dokonce možné spustit jakýkoli příkaz ihned po připojení ke vzdálenému serveru přes SSH.

SSH do konkrétního adresáře vzdáleného systému Linux

Než jsem poznal tuto metodu, obvykle jsem nejprve SSH do vzdáleného vzdáleného systému pomocí příkazu:

$ ssh [email protected]

A pak cd do adresáře jako níže:

$ cd <some-directory>

Tak se přecházím do adresáře ve vzdáleném systému. Už ne! Není třeba používat dva samostatné příkazy!!

Například následující příkaz mi umožňuje SSH do vzdáleného systému (192.168.225.52) a automaticky cd do adresáře s názvem "dir1":

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash'

Výše uvedený příkaz provede SSH do vzdáleného systému (192.168.225.52) a okamžitě cd do adresáře s názvem '/home/ostechnix/dir1' a nakonec vás nechá v shellu vzdáleného systému.

Zde je -t příznak se používá k vynucení alokace pseudoterminálu, která je nezbytná pro interaktivní shell. Pokud tento příznak neurčíte, nezobrazí se žádná výzva. A také pokud nepřidáte " bash" na konci výše uvedeného příkazu se připojení ukončí a vrátí řízení místnímu systému.

Zde je ukázkový výstup výše uvedeného příkazu:

Zde je několik dalších příkladů příkazů pro SSH do konkrétního adresáře:

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash --login'

Zde je --přihlášení flag nastaví "bash" jako přihlašovací shell.

Nebo,

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; exec bash'

Nebo,

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec bash -l'

Zde -l flag nastaví "bash" jako přihlašovací shell.

Ve výše uvedených příkladech jsem výslovně zmínil bash jako přihlašovací shell. Protože vím, že Bash je výchozí shell v mém vzdáleném systému. Pokud neznáte typ shellu na vzdáleném systému, použijte následující příkaz:

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec $SHELL'

Vytvořte adresář na vzdáleném systému a automaticky do něj SSH

Pokud se pokusíte o SSH do adresáře, který ve vzdáleném systému neexistuje, po úspěšné autentizaci se zobrazí následující zpráva:

bash: line 0: cd: /home/ostechnix/dir2: No such file or directory

Jak vidíte, adresář s názvem "dir2" není ve vzdáleném systému dostupný. Pokud chcete vytvořit adresář ve vzdáleném systému a automaticky do něj cd přes SSH, jednoduše spusťte následující příkaz z místního systému:

$ ssh -t [email protected] 'mkdir -p dir2 ; cd /home/ostechnix/dir2 ; bash --login'

Provedení změn natrvalo

Pokud nechcete výše uvedené příkazy zadávat pokaždé ručně, stačí přidat příkaz(y), které chcete spustit po připojení k serveru SSH na ~/.bashrc vzdáleného systému nebo ~/.bash_profile nebo ~/.profile soubory.

Upravit bashrc soubor:

 $ nano ~/.bashrc

Přidejte příkaz(y) jeden po druhém. V mém případě přidávám následující řádek:

cd /home/ostechnix/dir1 >& /dev/null

Vezměte prosím na vědomí, že byste měli přidat tento řádek do .bash_profile vzdáleného systému nebo .bashrc nebo .profile soubor, nikoli ve vašem místním systému. Stiskněte Ctrl+O a stiskněte ENTER pro uložení a stiskněte Ctrl+X zavřete soubor.

Nakonec spusťte následující příkaz k aktualizaci změn:

 $ source ~/.bashrc

Od této chvíle, kdykoli se přihlásíte (buď přes SSH nebo přímo), příkaz cd se spustí a automaticky se dostanete do adresáře "/home/ostechnix/dir1".

Provádět příkazy přes SSH na vzdálených systémech Linux

Jak jsem již řekl, tento trik nespočívá pouze v cd do adresáře po připojení ke vzdálenému systému. Tuto metodu můžete také použít ke spuštění dalších příkazů.

Například následující příkaz vás dostane do adresáře '/home/ostechnix/dir1' a poté provede příkaz 'uname -a'.

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && uname -a && exec $SHELL'

Další příklady provádění příkazů přes SSH na vzdálených systémech jsou uvedeny v následující příručce.

  • Provádění příkazů na vzdálených systémech Linux prostřednictvím SSH

Doufám, že to pomůže.

Související čtení:

  • Jak na cd a ls v jednom příkazu
  • Jak cp nebo mv a cd v jednom příkazu
  • Povolení nebo odepření přístupu SSH konkrétnímu uživateli nebo skupině v systému Linux

Linux
  1. Jak změnit port SSH v Linuxu

  2. Jak SSH do konkrétního adresáře?

  3. Jak získat velikost adresáře v Linuxu

  1. Jak odebrat adresář v Linuxu

  2. Jak přejmenovat adresář v Linuxu

  3. Jak gzipovat adresář v Linuxu

  1. Jak spouštět příkazy Linuxu na vzdáleném systému přes SSH

  2. Jak vytvořit alias SSH v Linuxu

  3. Jak nakonfigurovat X11 Forwarding pomocí SSH v Linuxu