this post was submitted on 24 Mar 2024
356 points (95.4% liked)

linuxmemes

21222 readers
37 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS
     
    you are viewing a single comment's thread
    view the rest of the comments
    [–] [email protected] 49 points 7 months ago (3 children)
    fuck() {
        sudo $(fc -ln -1)
    } 
    

    This function takes the last command and puts sudo in front of it. Actually used it in a zoom call at work without thinking and it took a second to realize why everyone was laughing. Not my invention--came across it years ago on stackoverflow or someplace and thought it was funny/useful.

    kmirl@tux:~$ ls /root
    ls: cannot open directory '/root': Permission denied
    kmirl@tux:~$ fuck
    [sudo] password for kmirl: 
    bin  debs  docs  Mail 
    
    [–] [email protected] 15 points 7 months ago* (last edited 7 months ago)
    alias fuck='sudo $(fc -ln -1)'
    
    [–] [email protected] 29 points 7 months ago

    Considering the function name, here’s an obligatory thefuck plug

    [–] [email protected] 18 points 7 months ago (2 children)

    Isn't this the same effect as just running 'sudo !!' ?

    [–] [email protected] 13 points 7 months ago (2 children)

    According to this super user question, someone said that !! won’t work in a function, so you must use the fc -ln -1 command in a subshell instead. Note the response that says eval shouldn’t be used (not sure why)

    [–] [email protected] 4 points 7 months ago

    Eval shouldn't be used on userinput. Meaning that if smb other than you may use this to change the system he could put malicious code in the eval part.

    Probably doesn't matter on shell level

    [–] [email protected] 8 points 7 months ago (1 children)

    Yeah but instead of a function you just make it an alias.

    [–] [email protected] 1 points 7 months ago

    Oh good point, I didn’t think about that

    [–] [email protected] 3 points 7 months ago (1 children)

    no because it takes the previous command and adds sudo to it right?

    [–] [email protected] 6 points 7 months ago* (last edited 7 months ago)

    !! is a shortcut for whatever the last command was ~~is it not?~~

    E: https://devhints.io/bash#history