• incompetentboob@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    1 year ago

    Upvote for “sudo !!” No one ever seems to know about “!!” And it’s such a useful command.

    I personally found out about it when I wrote a bash script that contained a password with two exclamation marks and I wondered why the last command kept being concatenated to the end of the password.

    Also checkout thefuck for fixing other various typos

      • QuazarOmega@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        1 year ago

        It just expands into the last command you put in your shell, so it’s useful for retrying a command that you want to prepend with sudo for example, if you realize you needed elevated privileges, or maybe you want to pipe something in it, pipe it through something, redirect its output etc.

    • WildlyCanadian@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      My install of Endeavour doesn’t have it, and I haven’t been able to figure out what package to install to add it. Also haven’t tried very hard cause it’s just a minor convenience but if anyone knows …

      Oooh it’s cause I’m using fish isn’t it? Is there a way to add it?

      • Ellen
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        Had to check since this is something I’ve been wondering myself, but apparently not possible. From the fish FAQ:

        Because history substitution is an awkward interface that was invented before interactive line editing was even possible. Instead of adding this pseudo-syntax, fish opts for nice history searching and recall features. Switching requires a small change of habits: if you want to modify an old line/word, first recall it, then edit.

        However, for the use case here, with sudo:

        As a special case, most of the time history substitution is used as sudo !!. In that case just press Alt+S, and it will recall your last commandline with sudo prefixed (or toggle a sudo prefix on the current commandline if there is anything).