jak nastavit zsh jako výchozí shell?
<p>snažím se nastavit zsh jako můj výchozí shell, ale stále se vrací zpět na bash.</p><p>vyzkoušel jsem tento kód:</p><pre><code>sudo chsh -s $(which zsh) </code></pre><p>zkusil jsem také:</p><pre><code>sudo chsh -s /bin/zsh </code></pre><p>tyto příkazy také vyzkoušel bez sudo. nějaké nápady, co dalšího musím udělat. při spuštění zsh z bashu se načte a funguje dobře, ale rád bych jej nastavil jako výchozí shell.</p>
<p>stačí použít <a href="https://linux.die.net/man/1/chsh"><code>chsh</code></a> :</p><pre><code>chsh -s $(which zsh) </code></pre><p><strong> bez </strong> <code>sudo</code> by mělo fungovat. pokud použijete <code>sudo</code>, nezmění shell nikoliv pro vašeho pracovního uživatele, ale pro <em> root</em></p><p>nakonec <strong> se odhlaste z počítače a přihlaste se zpět </strong>.</p><p>odstraňování problémů:</p><ul> <li>máte nainstalován zsh (ii)? <code>dpkg -l zsh</code></li> <li>je vaše shell nastavena na zsh? poslední pole <a href="https://linux.die.net/man/5/passwd"><code>grep $user /etc/passwd</code></a> </li> <li>je zsh <a href="https://linux.die.net/man/5/shells">platné přihlašovací prostředí</a> ? <code>grep zsh /etc/shells</code></li> </ul>
<ol> <li> <p>ujistěte se, že máte nainstalován <code>bash</code>.</p> </li> <li> <p>naučte se umístění <code>bash</code>:</p> <pre><code>which bash </code></pre> <p>nebo</p> <pre><code>whereis bash </code></pre> <p>níže předpokládám, že umístění je <code>/bin/bash</code>.</p> <p>a) pokud máte administrátorská práva, spusťte jako root:</p> <pre><code>usermod -s /bin/bash your\_username </code></pre> <p>(nahrazující <code>your\_username</code> s vaším uživatelským jménem).</p> <p>b) pokud nemáte adm. práva, stále můžete spustit <code>bash --login</code> při přihlášení, vložením spodního řádku <strong>na konci</strong> vašeho <code>.cshrc</code> nebo <code>.profile</code> (ve vašem domovském adresáři):</p> <pre><code>setenv shell /bin/bash exec /bin/bash --login </code></pre></li> </ol> <p>dalším způsobem je volání tlumočníka a předání cesty ke skriptu:</p><pre><code>/bin/sh /path/to/script </code></pre><p>tečka a zdroj jsou ekvivalentní. (úprava: ne, nejsou: jak keithb zdůrazňuje v komentáři k jiné odpovědi, „.“ funguje pouze v shellech souvisejících s bashem, kde „zdroj“ pracuje v shellech souvisejících s bashem i csh.) spustí skript v - místo (jako byste zkopírovali a vložili skript přímo sem). to znamená, že všechny funkce a nelokální proměnné ve skriptu zůstanou. to také znamená, že pokud skript provede cd do adresáře, budete tam stále, když bude hotovo.</p><p>ostatní způsoby spouštění skriptu jej spustí ve vlastní podsíti. proměnné ve skriptu nejsou po dokončení stále naživu. pokud skript změnil adresáře, pak to neovlivní volající prostředí.</p><p>/ cesta/do/skript a/bin/sh skript se mírně liší. skript má obvykle na začátku „shebang“, který vypadá takto:</p><pre><code>#! /bin/bash </code></pre><p>toto je cesta k interpretovi skriptu. pokud specifikuje jiného tlumočníka než vy, když jej provedete, může se chovat odlišně (nebo nemusí fungovat vůbec).</p><p>například skripty perl a ruby skripty začínají (respektive):</p><pre><code>#! /bin/perl </code></pre><p>a</p><pre><code>#! /bin/ruby </code></pre><p>pokud spustíte jeden z těchto skriptů spuštěním <code>/bin/sh script</code>, pak nebudou vůbec fungovat.</p><p>ubuntu ve skutečnosti nepoužívá bash shell, ale velmi podobný, který se nazývá pomlčka. skripty, které vyžadují bash, mohou při volání <code>/bin/sh script</code> protože jste právě zavolali bash skript pomocí pomlčkového tlumočníka.</p><p>další malý rozdíl mezi přímým vyvoláním skriptu a předáním cesty skriptu interpretovi je, že skript musí být označen jako spustitelný, aby jej mohl přímo spustit, ale ne jej spustit předáním cesty interpretovi.</p><p>další drobná variace: můžete předponou libovolného z těchto způsobů spustit skript s evalem, takže můžete mít</p><pre><code>eval sh script eval script eval . script </code></pre><p>a tak dále. ve skutečnosti to nic nezmění, ale myslel jsem, že to zahrnuji pro důkladnost.</p> <p><strong> pro bash: </strong> (standardní shell v ubuntu)</p><p>chcete-li vytisknout všechny proměnné prostředí, zadejte do terminálu následující příkaz:</p><pre><code>printenv </code></pre><p>další informace o tomto příkazu naleznete na stránce <a href="http://manpages.ubuntu.com/manpages/intrepid/man1/printenv.1.html"><code>printenv</code> man</a> .</p><hr><p>chcete-li zobrazit seznam obsahující "proměnné prostředí", můžete zadat následující příkaz:</p><pre><code>( set -o posix ; set ) | less </code></pre><p>toto vám ukáže <em> nejen </em> proměnné prostředí, ale také proměnné prostředí.</p><p>pro více informací o tomto tématu čtěte:</p><ul> <li> <a href="https://stackoverflow.com/q/1305237/1505348">jak vypsat proměnné deklarované ve skriptu v bashu?</a> od <a href="http://stackoverflow.com"> tak </a> a</li> <li> <a href="https://unix.stackexchange.com/q/3510/53809">jak tisknout všechny proměnné prostředí definované (ale ne nutně exportované) v bash</a> z <a href="http://unix.stackexchange.com">nixse</a> </li> <li> <a href="https://askubuntu.com/questions/26318/environment-variable-vs-shell-variable-whats-the-difference">proměnná prostředí vs. proměnná shell, jaký je rozdíl?</a> </li> </ul><hr><p><strong> pro zsh: </strong> (pokročilé prostředí)</p><p>použijte následující příkaz:</p><pre><code>( setopt posixbuiltin; set; ) | less </code></pre><p>další informace o možnostech zsh naleznete na stránce <a href="http://manpages.ubuntu.com/manpages/cosmic/en/man1/zshoptions.1.html"><code>zshoptions</code>man page</a> .</p> <p>stručná odpověď:</p><pre><code>$ ssh-keygen -p </code></pre><p>poté budete vyzváni k zadání umístění klíče, staré přístupové fráze a nové přístupové fráze (která může být ponechána prázdná, aby neobsahovala žádné heslo).</p><p>pokud to chcete udělat na jednom řádku bez výzev, postupujte takto:</p><pre><code>$ ssh-keygen -p [-p old\_passphrase] [-n new\_passphrase] [-f keyfile] </code></pre><p><strong>důležité:</strong> dbejte na to, aby při provádění příkazů byly obvykle zapisovány do vašeho souboru <code>~/.bash\_history</code> (nebo podobného) do prostého textu včetně všech poskytnutých argumentů (tj. přístupových frází v tomto případě). proto se doporučuje, abyste použili první možnost, pokud nemáte konkrétní důvod jinak. všimněte si však, že můžete stále používat <code>-f keyfile</code>, aniž byste museli zadávat <code>-p</code> ani <code>-n</code>, a že soubor keyfile má výchozí hodnotu <code>~/.ssh/id\_rsa</code>, takže v mnoha případech to ani není potřeba.</p><p>možná budete chtít zvážit použití ssh-agenta, který může dočasně ukládat do mezipaměti přístupovou frázi. nejnovější verze gpg-agent také podporují protokol, který používá ssh-agent.</p> <p>použijte příkaz <a href="http://pkgs.org/centos-6/epel-i386/sshpass-1.05-1.el6.i686.rpm.html"><code>sshpass</code></a> k odeslání souboru </p><blockquote> <p>vytvoření prostředí -&gt; spuštění skriptu shell na vzdáleném počítači pomocí ssh -&gt; post build script</p> </blockquote><p>ukázkový příkaz:</p><pre><code>sshpass -p "password" scp path/of/file &lt;new\_server\_ip&gt;:/path/of/file </code></pre><p>toto vynechá heslo prompt for <code>scp</code> a poskytne heslo <code>scp</code>.</p> <p><code>bash</code> ukládá do mezipaměti úplnou cestu k příkazu. ověřením, že příkaz, který se pokoušíte provést, je hashovaný příkazem <code>type</code>:</p><pre><code>$ type svnsync svnsync is hashed (/usr/local/bin/svnsync) </code></pre><p>vymazání celé mezipaměti:</p><pre><code>$ hash -r </code></pre><p>nebo jen jeden záznam:</p><pre><code>$ hash -d svnsync </code></pre><p>další informace získáte na webu <code>help hash</code> a <code>man bash</code>.</p> Častou chybou je klonování pomocí výchozího připojení (HTTPS) namísto SSH. Tuto chybu můžete napravit tak, že přejdete do svého úložiště, kliknete na tlačítko "Klonovat nebo stáhnout", pak kliknete na tlačítko "Použít SSH" nad polem URL a aktualizujete adresu URL svého původního vzdáleného serveru takto:



```
git remote set-url origin [[email protected]](/cdn-cgi/l/email-protection):username/repo.git
```

Tento postup je zdokumentován na GitHubu: [Přepnutí vzdálených adres URL z HTTPS na SSH](https://help.github.com/articles/changing-a-remote-s-url/#switching-remote-urls-from-https-to-ssh). <p>můžete restartovat <code>gnome-shell</code> stisknutím <kbd>alt</kbd>+<kbd>f2</kbd> a poté zadejte buď „<em>restart</em>“ nebo jen „<em>r</em>“ a stiskněte <kbd>enter</kbd>.</p><p>jinak jsem si všiml, že se automaticky obnoví <code>.desktop</code> soubory po chvíli čekání.</p> <ol> <li>v systému windows spusťte příkazový řádek jako správce</li> <li>vyvolejte spuštění nouzového režimu příkazem: <code>bcdedit /set {current} safeboot minimal</code></li> <li>během spouštění restartujte počítač a zadejte systém bios.</li> <li>přejděte z ide do režimu ahci, poté <code>save &amp; exit</code>.</li> <li>windows 10 se spustí v nouzovém režimu.</li> <li>klepněte pravým tlačítkem myši na ikonu okna a vyberte, abyste spustili příkazový řádek v administrátorském režimu z různých možností.</li> <li>zrušte bootování v nouzovém režimu příkazem: <code>bcdedit /deletevalue {current} safeboot</code></li> <li>restartujte počítač ještě jednou a tentokrát se spustí normálně, ale s aktivovaným režimem ahci.</li> </ol><p>( <a href="http://www.tenforums.com/drivers-hardware/15006-attn-ssd-owners-enabling-ahci-mode-after-windows-10-installation-5.html">zdroj</a> )</p> To, co řekl Craig, a pokud chcete změnit výchozí je to v menu Nástroje -> Možnosti -> Projekty a řešení.


Nikdy jsem změnil výchozí a nikdy vytvořili řešení / projekt ve výchozím umístění, které byste mohli říct něco o tom, jak důležité je ...