Bash "factoring" (IDK the real term) is useful too: "chmod 775 file{1,2,3,4}" will turn the last part into "file1 file2 file3 file4". It's quicker for creating copies of files too, like "cp file{,.bak}" instead of "cp file file.bak".
@@MrRozburn Oh, nice. I didn't know about the range syntax. It works for characters, too. But it looks like it's limited to ASCII characters. Or to characters with single-byte encodings. Not sure which.
Another useful trick is the key bind “alt+.” to use the last argument for the previous commands. For example, let say the command “cat /etc/resolv.conf” and now you want to edit this same file. This can be done typing “vi” and pressing “alt+.” and /etc/resolv.conf autocompletes in screen. And pressing multiple times it woks like a UP arrow key but for last previous commands arguments.
In general, you can refer to the i-th argument of the previous command using '!!:i'. To get to the last, use $ (-1 won't work) E.g: '!-2:2' gets you the second argument from the command before the previous one
After watching this video and practicing for a few minutes I won the lottery, and found myself surrounded by beautiful women who now compose my harem Thanks mental outlaw, very based video
Just a couple of thoughts about history in bash: I personally don't save my bash history because with so many terminals open I wouldn't know which terminal will save its history; I have the string "\!" in my prompt to display a command number so that I can find the number of a previous command easily when I want to use ! to re-run said command.
Great tips, and great video.. Speeds things up a lot indeed! For replacing "status" with "start" in the systemctl command you can also run something even shorter: ^status^start
@@tryfan2k2 Nobody was talking about typing everything again. The alternatives discussed were double exclamation mark, which gets substituted to the last command when run, and pressing up arrow and editing the line.
_“I’ve seen a GUI punch through a concrete wall. [...] Yet their strength and their speed are still based in a world that is built on rules. Because of that, _*_they will never be as strong or as fast as a CLI can be.”_* -- *Morpheus* _dixit_ (kind of) 😎
I know about changing Bash to vi bindings, but Bash has Emacs bindings by default, even without Emacs installed. Also, vi support is available without Vim or some other vi installed. Both are features of libreadline. Check ldd `which bash` and you'll see libreadline, not anything from Vim or Emacs. Imagine you've switched your keyboard to Dvorak, and everyone else is still using QWERTY. That's what the situation with Bash is like. Even if you're committed to using vi bindings, it's worth knowing Emacs basics for when you inevitably encounter it in the wild as the default.
yeah some people like to bash on (lol) emacs bindings without having even used them. there's seldom a time you need to use vi when you already know emacs, but learning both for the sake of knowing them is obviously a good idea. this example of ssh-ing into a server with only vi installed never made much sense to me, because either you'd use vi on the local machine as a vim user or you'd tramp into the file remotely as an emacs user. (also, modal editing on the command line? ew...)
Cant forget the almighty "Ctrl + r" Reverse lookup is hands down one of the best things for quick history stuff. Can be dangerous if your too eager though lol
@@bonkgameing Not to worry, we all start somewhere. If you're quick to press return on what you think is the right command you could end up running a command you dont want.
“pushd” and “popd” are some cool commands I found useful when I knew I needed to eventually return to a directory. pushd /path/to/directory will push that directory to the “stack” in the terminal, so you can navigate anywhere you want thereafter, and when you execute popd, it’ll return you to the same directory you pushed previously. There’s also the “script” command which records your input and output to a file of your choice which is useful when logging your actions in the terminal.
There is a bunches of nonsense shell plugins that essentially mimic the behavior of pushd and popd in a slightly different way and people cherish these plugins that use a million lines of shell scripting and slow down their shells as if pushd and popd do no exist.
@yuuwe pretty sure if you change default shell from ksh/csh/whatever the default shell is to something like bash or zsh you will get that functionality. Also you could probably alias something together in your default shell in whatever bsd to essentially do a pushd/popd.
Command line tricks made me a Chad when I was first starting my first job out of college, I guess they don’t teach Linux in India because the offshore guys never know any of these
Top Tier Content. I think the only thing I ever really used was "sudo !!" in the whole video, and I've been using Linux in some degree since I was 14. I did know somewhat of the other history commands and shortcuts, and using VI on the CLI... but never have really applied it. Old habits die hard. I am pretty good with using readline shortcuts to quickly jump by word, etc.
I saw `sudo vim` in your history and just wanted to say that there is a command `sudoedit` specifically for that. It allows you to edit files with sudo rights but using your own user, not root
Instead of the double bang, shift up and shift down. Let's you cycle through your shell history. Or just up and down depending on which terminal your using.
On Stackoverflow I found this advice that I cant live without anymore: In my home folder I create a file named .inputrc Inside goes this "\e[5~": history-search-backward "\e[6~": history-search-forward Then typing however much of a previous command I wish & using the page up/down buttons searches the history
These shortcuts work in weird terminals as well: Ctrl-A: Jump to the start of the cmd line (like Home) Ctrl-E: Jump to the end of the line (like End) Ctrl-P: Jump to the last command (like up arrow) Ctrl-N: Jump to the next command (like down arrow) Ctrl-B: Move the cursor to the left (like left arrow) Ctrl-F: Move the cursor to the right (like right arrow) Ctrl-W: Delete the word to the left of the cursor Ctrl-S: suspend output (like scroll lock on in tty) Ctrl-Q: continue output (like turning scroll lock off in tty) Ctrl-L: clear the screen Did I miss anything?
Ctrl-H: delete last (backspace) Ctrl-U delete from current char to beginning of line Ctrl-D: delete next (delete key) Esc D: delete from current character to word break Ctrl-R: Search backwards (Ctrl-S is search forwards, but you have to disable suspend to use it)
These commands come from emacs, and as such you should also have: Ctrl-K: delete anything ahead of cursor Ctrl-Y: paste the last deleted thing (either with Ctrl-K or Ctrl-W) Alt-Y: If used right after a Ctrl-Y, cycles through the deleted sections
Substitution you can preform with ^ instead of !!:s/. So in your example you can just do ^status^start and that will replace the word start with status.
2:13 If I use my shell's vim bindings, I can edit the previous command in many less keystrokes than typing that. Still, I don't use bash so I don't have the double exclamation mark either way
I have such towering seniority that, by simply being able to use a command line at all, my colleagues are impressed to the point of fainting. Truly a god among men
Nice vid. I would skip the advice though with regards to vi and just stick with the default bash keyboard shortcuts from the GNU Readline Library. These default shortcuts are used by many appliances and systems that you may encounter in your engineering career.
Best commands ever: - CTRL+w = clears word - CTRL + U = clears whole line There is nothing magical about unixy commands.. They are extemely powerful weapons you need to memorize.. There is logic to help you memorize such as `w` standing for word ..
@@crusaderACR yes. They're actually handled by a program called readline. You can configure readline to use vi key bindings. Also you could write your own shell or command line program and use readline as a library to get all the same functionality.
Ah, the vi mode is something I will try out. I do occasionally end up in situations where I start trying to use vi commands while in shell just to realise that I’m not in vim.
"sue-doo" makes more sense as far as what the abbreviation means (SuperUser DO), but "sue-doe" follows the phonotactic constraints of English. There's no clear right answer, so why not just use both so everybody gets pissed off? It's more fun that way.
I never got the hang of VI mode in bash and tend to stick with Emacs mode which I find much more intuitive. On the other hand I find Emacs too complicated for my needs and stick to VI.
Can you get the row number of a history function using grep and then using it with ! Mark? This sounds like a good way to automatically one liner re run specific function by grep and can be added the changes
cat -n ~/.bash_history | grep mySearchPattern will show you the commands with your pattern and number lines, which you can then use with !. Or, if you like danger, you can automatically take the first match :P !$(cat -n ~/.bash_history | grep mySearchPattern | { read -a array ; echo ${array[0]} ; })
I saw that you had two GPUs when you did neofetch, but they're different GPUs. Is that for GPU passthrough for gaming (or doing other GPU intensive tasks) on a KVM?
If it's a range of something he could also use {1..9} or [1-9]. One thing I've found quite useful is when you want to match on 2 or more characters too, such as ls -d [Aa]?* to list everything that starts with an A or a but not merely a or A on their own. I have multiple folders that are sorted alphabetically.
@@Zamu273 my audio has been so trash and I couldn’t figure out why. Reinstalled drivers, used older drivers, used different amps and headphones, nothing worked. But then I just searched up mono audio on windows start menu and then found out I had it on the whole time :/ fun.
Emacs does not need to be installed on the server, you can use it on the client and connect via ssh to the server directly from there (not the usual terminal emulator), and safely use your configuration of emacs
i doubt you will see this but ide like to say thanks for getting linux out there a bit more ive just compiled dolphin from source today ( it was a fucking nightmare) and am currently using unbuntu now. while i have many issues now im ironing them out. the only come out when im using the terminal and are surprisingly easy to fix. no way in hell im trying gentoo anytime soon, fuck compiling from source. i have to say linux runs wonderfully on my little shit box.
history | grep filters history by that word, also history has a number bedside each command, you can !n where n is the number to run the command, also I disagree on cli being superior, I do a lot of work with aws and its way easier on the gui, 1 click is like 3 commands sometimes
Hmm. Unconvinced about !-3* - unless there's an in-line expansion you can see and verify before running it. Also, use ? to match a single character or {...} to specify the endings. Or up-arrow to see the parameters and edit the start of the line.
Vim is crucial to know, sometimes you don't have any other option, say you connect to a ssh server or a kubernetes pod that has minimal installation and you dont have permission to use apt. I use vim extension to vscode ( because sometimes you just need to use an IDE).
!$ should be mentioned too, it's expand your last word of previous command, it's handy when your last command is a file name or directory, then you can do cd !$ or vi !$. great video as always
question about vi mode, is there a way to change cursor depending on what mode I'm in? For instance, could I have a 'line cursor' for insert mode and a 'block cursor' for normal mode? I think that would help a lot.
That is because CTRL-R is a default GNU Readline Library shortcut. He advocates using vi mode. So you probably have to tediously switch out of vi insert mode by pressing ESC followed by a sequence of other keys in order to achieve the same.
The exclamation mark commmand is a trap... professional programmers already understand why mutating states is bad idea. That's why functional programming is safer.
Interesting stuff about !! and related techniques, but I have to disagree about it being useful in the real world. The last minute of the video, which shows "vi mode" on the command line, essentially makes all of the !! commands useless. Here's why: Do you want to blindly execute commands based on previous ones by typing the most super special combination of !! and :s/stuff/here/ and other variants? All while NOT getting to see the actual command that will be executed? Will you run important system level commands (like removing directory trees) "blind" like this? I will not. Using vi mode and history searching (with control-r) allow you to actually see what will be executed before you press enter. Taking the example of changing one thing to another: systemctl status sshd systemctl start sshd You can do this in vi mode with this sequence: jwcwstart Press when you see that the command is what you want. This is interactive and *FAST*. I can do this very quickly in practice. The first "escape k" brings back the last command. Then a "w" to go forward one word to "status". Then "cw" to change that word into what you type. Finally you type the word (start) and press enter. The example about using the arguments from a previous command is even more trivial. Just do a reverse command history search with control-r, then when you get the command it's just: cwchmod 777 Seeing what you are doing is always superior to flying blind in my opinion. Using vi mode has made me SO MUCH faster on the command line. It's an awesome thing to learn.
another really helpful one is repeating the last command start with an 'f' for example, would be " !f " so if you remember the first letter(s), you can do multiple commands from history really quickly e.g. !bison !flex !gcc or !b !f !g
I'm pretty sure that !!:s/status/start (or even ^status^start) is a lot more keystrokes than ↑[ctrl]←[shift]←start And in the case of adding sudo, it's also pretty quick with ↑[home]sudo[space] although not saving as many keystrokes.
Check if that action has a proper key bound; in bash that would be `bind -P`. then start assigning all the missing assignments appropriately; manpage for bash should describe further bind options to help.
Imagine there was a command to do exactly what you need. But you don't know it. Welcome to Linux.
the linux experience
Not only that but there are 5 or 10 different ways to do the thing you want to do that you can't do at all on the GUI.
@@billfarley9015 gui is for plebs anyway
Imagine there is something you need but there is no way to do it at all. Welcome to Windows.
Linux is capable of doing whatever you want, if only you know how to tell it what you want
Bash "factoring" (IDK the real term) is useful too: "chmod 775 file{1,2,3,4}" will turn the last part into "file1 file2 file3 file4".
It's quicker for creating copies of files too, like "cp file{,.bak}" instead of "cp file file.bak".
Oh wow i didn't know about this. So many seconds wasted to writing namefiles twice.
It is called shell expansion I believe
It's called brace expansion
{1..4} works a treat
@@MrRozburn Oh, nice. I didn't know about the range syntax. It works for characters, too. But it looks like it's limited to ASCII characters. Or to characters with single-byte encodings. Not sure which.
Another useful trick is the key bind “alt+.” to use the last argument for the previous commands. For example, let say the command “cat /etc/resolv.conf” and now you want to edit this same file. This can be done typing “vi” and pressing “alt+.” and /etc/resolv.conf autocompletes in screen. And pressing multiple times it woks like a UP arrow key but for last previous commands arguments.
In general, you can refer to the i-th argument of the previous command using '!!:i'.
To get to the last, use $ (-1 won't work)
E.g: '!-2:2' gets you the second argument from the command before the previous one
to be honest this was way more useful than any of the tips in the video.
I also love Ctrl+R backwards search :3
After watching this video and practicing for a few minutes I won the lottery, and found myself surrounded by beautiful women who now compose my harem
Thanks mental outlaw, very based video
Just a couple of thoughts about history in bash: I personally don't save my bash history because with so many terminals open I wouldn't know which terminal will save its history; I have the string "\!" in my prompt to display a command number so that I can find the number of a previous command easily when I want to use ! to re-run said command.
Great tips, and great video.. Speeds things up a lot indeed! For replacing "status" with "start" in the systemctl command you can also run something even shorter: ^status^start
Yeah that's what I was thinking to!!! 😂😂🤣
Anything similar that works in fish shell?
^that^this
For the double exclamation, I don’t use it at all, because I find it more comfortable to press the up arrow key, then home and type sudo
This, except home key I use ctrl+a
For the systemctl examples, it's more efficient to up arrow than to type everything anyway.
@@tryfan2k2 Nobody was talking about typing everything again. The alternatives discussed were double exclamation mark, which gets substituted to the last command when run, and pressing up arrow and editing the line.
I much prefer to see the command I'm about to sudo. Especially with multiple terminals open to multiple machines.
The virgin sudo ! fan vs the Chad uparrow+home+sudo enjoyer
when i was on high school, i'm really stuck with Nano, but today after i watch your video kenny, i wanna learn more about vim
_“I’ve seen a GUI punch through a concrete wall. [...] Yet their strength and their speed are still based in a world that is built on rules. Because of that, _*_they will never be as strong or as fast as a CLI can be.”_* -- *Morpheus* _dixit_ (kind of) 😎
Morbius
Such an epic comment
@@MewTheGamer Mobius
Truly underrated comment 👏👏👏
Truly one of the Morpheus of all time
0:40
Mental outlaw: !!
Me: *Hits up arrow* *Hits enter*
I know about changing Bash to vi bindings, but Bash has Emacs bindings by default, even without Emacs installed. Also, vi support is available without Vim or some other vi installed. Both are features of libreadline. Check ldd `which bash` and you'll see libreadline, not anything from Vim or Emacs. Imagine you've switched your keyboard to Dvorak, and everyone else is still using QWERTY. That's what the situation with Bash is like. Even if you're committed to using vi bindings, it's worth knowing Emacs basics for when you inevitably encounter it in the wild as the default.
...or just run set -o vi for your session. Like you said, you'll be hard pressed to find a Linux machine without vi.
yeah some people like to bash on (lol) emacs bindings without having even used them. there's seldom a time you need to use vi when you already know emacs, but learning both for the sake of knowing them is obviously a good idea. this example of ssh-ing into a server with only vi installed never made much sense to me, because either you'd use vi on the local machine as a vim user or you'd tramp into the file remotely as an emacs user.
(also, modal editing on the command line? ew...)
Cant forget the almighty "Ctrl + r"
Reverse lookup is hands down one of the best things for quick history stuff. Can be dangerous if your too eager though lol
Bash has a good few emacs functions.
i dont know how the lookup works. it always seems to choose a command that i dont want :p
@@glitchy_weasel you can press ctrl+r again and again once you typed a search term, it then cycles through all past commands with matching keywords
How is it dangerous? I’m a Linux noob
@@bonkgameing Not to worry, we all start somewhere. If you're quick to press return on what you think is the right command you could end up running a command you dont want.
Instead of using the double bang for the substitution I use ^replacee^replacement
Or in your example ^status^start
“pushd” and “popd” are some cool commands I found useful when I knew I needed to eventually return to a directory. pushd /path/to/directory will push that directory to the “stack” in the terminal, so you can navigate anywhere you want thereafter, and when you execute popd, it’ll return you to the same directory you pushed previously. There’s also the “script” command which records your input and output to a file of your choice which is useful when logging your actions in the terminal.
There is a bunches of nonsense shell plugins that essentially mimic the behavior of pushd and popd in a slightly different way and people cherish these plugins that use a million lines of shell scripting and slow down their shells as if pushd and popd do no exist.
@yuuwe pretty sure if you change default shell from ksh/csh/whatever the default shell is to something like bash or zsh you will get that functionality. Also you could probably alias something together in your default shell in whatever bsd to essentially do a pushd/popd.
As a poor man's alternative, "cd -" brings you back to the precious working directory.
Command line tricks made me a Chad when I was first starting my first job out of college, I guess they don’t teach Linux in India because the offshore guys never know any of these
Top Tier Content. I think the only thing I ever really used was "sudo !!" in the whole video, and I've been using Linux in some degree since I was 14.
I did know somewhat of the other history commands and shortcuts, and using VI on the CLI... but never have really applied it. Old habits die hard.
I am pretty good with using readline shortcuts to quickly jump by word, etc.
I just use the same ones they use on Windows, Ctrl+{Left,Right}.
Read through Bash’s parameter expansion, and through Bash’s history expansion.
This hurts to watch from my Windows computer..
I saw `sudo vim` in your history and just wanted to say that there is a command `sudoedit` specifically for that. It allows you to edit files with sudo rights but using your own user, not root
Instead of the double bang, shift up and shift down. Let's you cycle through your shell history. Or just up and down depending on which terminal your using.
came here to say this
1:50
On Stackoverflow I found this advice that I cant live without anymore:
In my home folder I create a file named
.inputrc
Inside goes this
"\e[5~": history-search-backward
"\e[6~": history-search-forward
Then typing however much of a previous command I wish & using the page up/down buttons searches the history
@Соdу Ко 🅥 what kind of spam is this
@@mustekala797 Thanks, and it doesn't interfere with Shift+Page{Up,Down} to scroll the terminal output either.
I’ve used aliases so that I can run both sudo apt update and sudo apt upgrade with just “uu”. Really helpful stuff
Chad CLI users vs Mad GUI losers
Edit: genuinely curious what car Sr. Outlaw drives.
Dacia Sandero
Must be a car that Scotty Kilmer recommends...
These shortcuts work in weird terminals as well:
Ctrl-A: Jump to the start of the cmd line (like Home)
Ctrl-E: Jump to the end of the line (like End)
Ctrl-P: Jump to the last command (like up arrow)
Ctrl-N: Jump to the next command (like down arrow)
Ctrl-B: Move the cursor to the left (like left arrow)
Ctrl-F: Move the cursor to the right (like right arrow)
Ctrl-W: Delete the word to the left of the cursor
Ctrl-S: suspend output (like scroll lock on in tty)
Ctrl-Q: continue output (like turning scroll lock off in tty)
Ctrl-L: clear the screen
Did I miss anything?
Ctrl-H: delete last (backspace)
Ctrl-U delete from current char to beginning of line
Ctrl-D: delete next (delete key)
Esc D: delete from current character to word break
Ctrl-R: Search backwards (Ctrl-S is search forwards, but you have to disable suspend to use it)
These commands come from emacs, and as such you should also have:
Ctrl-K: delete anything ahead of cursor
Ctrl-Y: paste the last deleted thing (either with Ctrl-K or Ctrl-W)
Alt-Y: If used right after a Ctrl-Y, cycles through the deleted sections
Substitution you can preform with ^ instead of !!:s/. So in your example you can just do ^status^start and that will replace the word start with status.
LOL sure I gonna remember all this random syntax for sure
You can use ^ to substitute.
For example:
$ sudo systemctl status sshd
$ ^status^start^
Pretty cool stuff, however I find it more convenient to just use ctrl+r and home/end/alt/ctrl for quick navigation
2:13 If I use my shell's vim bindings, I can edit the previous command in many less keystrokes than typing that. Still, I don't use bash so I don't have the double exclamation mark either way
I have such towering seniority that, by simply being able to use a command line at all, my colleagues are impressed to the point of fainting. Truly a god among men
Nice vid. I would skip the advice though with regards to vi and just stick with the default bash keyboard shortcuts from the GNU Readline Library. These default shortcuts are used by many appliances and systems that you may encounter in your engineering career.
the same the other way around
You can enable vi mode for all more applications in .inputrc, so they work in more places
Best commands ever:
- CTRL+w = clears word
- CTRL + U = clears whole line
There is nothing magical about unixy commands.. They are extemely powerful weapons you need to memorize.. There is logic to help you memorize such as `w` standing for word ..
arent those emacs keybindings
@@crusaderACR yes. They're actually handled by a program called readline. You can configure readline to use vi key bindings. Also you could write your own shell or command line program and use readline as a library to get all the same functionality.
Ah, the vi mode is something I will try out. I do occasionally end up in situations where I start trying to use vi commands while in shell just to realise that I’m not in vim.
Thanks for the "!!" one, I figured that it wouldn't be a common enough issue
Chaotic Neutral pronouncing sudo as both sudo and sudo
"sue-doo" makes more sense as far as what the abbreviation means (SuperUser DO), but "sue-doe" follows the phonotactic constraints of English. There's no clear right answer, so why not just use both so everybody gets pissed off? It's more fun that way.
I never got the hang of VI mode in bash and tend to stick with Emacs mode which I find much more intuitive. On the other hand I find Emacs too complicated for my needs and stick to VI.
I thought I was weird for thinking and doing the exact same thing... glad to know I'm not the only one! 😀
how is that even possible
For sudo !!, just press up arrow, home and write 'sudo '. You don't have to write the command again.
Can you get the row number of a history function using grep and then using it with ! Mark?
This sounds like a good way to automatically one liner re run specific function by grep and can be added the changes
cat -n ~/.bash_history | grep mySearchPattern will show you the commands with your pattern and number lines, which you can then use with !.
Or, if you like danger, you can automatically take the first match :P
!$(cat -n ~/.bash_history | grep mySearchPattern | { read -a array ; echo ${array[0]} ; })
I saw that you had two GPUs when you did neofetch, but they're different GPUs. Is that for GPU passthrough for gaming (or doing other GPU intensive tasks) on a KVM?
2:13 Here's faster way to do substitution:
^old^new
Or in this case:
^status^start
3:32 when you use debian and arch at the same time.
wtf, just now i noticed
lol
good eye!
6:35 BTW, you could use "file?" where '?' stands for any (one) non-space character
If it's a range of something he could also use {1..9} or [1-9]. One thing I've found quite useful is when you want to match on 2 or more characters too, such as ls -d [Aa]?* to list everything that starts with an A or a but not merely a or A on their own. I have multiple folders that are sorted alphabetically.
May everyone succeed in their dreams. I'm developing a game since Jan 2020
you may have been developing a game. Meanwhile I just found out how to turn off mono audio on my pc
What's the name of the game
@@masterdoge17 nice
I still haven't figured that out
@@Zamu273 my audio has been so trash and I couldn’t figure out why. Reinstalled drivers, used older drivers, used different amps and headphones, nothing worked. But then I just searched up mono audio on windows start menu and then found out I had it on the whole time :/ fun.
Bro just release your unfinished game. Devs have been doing pre alpha releases for years now, also make the game open source please.
Some of these commands I never knew about until today, and I have been using Linux for 15 years.
Crtl + r is another good one to search the history
4:04 "thousands and thousands of commands", while showing the file has 1448 lines
that being said, thanks, very useful video
I AM that guy that installs nano on all of the company servers that I happen to ssh on 😔
Damn, how did I not know about '!'? I've been dabbling since the early 2000s. Would have really changed my experience over the years lol
mental note: always delete your bash history file before logging off, because you never know who will look at it when the PC is out of your control.
Lessons in how to be a comand line warrior! Thanks, much appreciated.
Emacs does not need to be installed on the server, you can use it on the client and connect via ssh to the server directly from there (not the usual terminal emulator), and safely use your configuration of emacs
i doubt you will see this but ide like to say thanks for getting linux out there a bit more ive just compiled dolphin from source today ( it was a fucking nightmare) and am currently using unbuntu now.
while i have many issues now im ironing them out. the only come out when im using the terminal and are surprisingly easy to fix.
no way in hell im trying gentoo anytime soon, fuck compiling from source.
i have to say linux runs wonderfully on my little shit box.
history | grep filters history by that word, also history has a number bedside each command, you can !n where n is the number to run the command, also I disagree on cli being superior, I do a lot of work with aws and its way easier on the gui, 1 click is like 3 commands sometimes
Clearly you saved the best for last. I’m definitively using that one next time I boot
I knew about bang bang but bang bang substitution may have just changed the entire course of my life … thank you.
One time in college, internet went down, i used ping and explained to a non-techie how it works - oh wow, thats impressive!
I usually just use up arrow to cycle through the history
I have been using Linux for almost a decade and am still learning shit. Thank you lol
RedmondXP. A man of culture.
Hmm. Unconvinced about !-3* - unless there's an in-line expansion you can see and verify before running it. Also, use ? to match a single character or {...} to specify the endings. Or up-arrow to see the parameters and edit the start of the line.
I swear I have to resub to this channel monthly
Vim is crucial to know, sometimes you don't have any other option, say you connect to a ssh server or a kubernetes pod that has minimal installation and you dont have permission to use apt.
I use vim extension to vscode ( because sometimes you just need to use an IDE).
I am kinda interested in getting there, but I don't feel comfortable with going there. so much to strive for.
!$ should be mentioned too, it's expand your last word of previous command, it's handy when your last command is a file name or directory, then you can do cd !$ or vi !$. great video as always
Can you make a video about systemd?
I really would love your point of view.
question about vi mode, is there a way to change cursor depending on what mode I'm in? For instance, could I have a 'line cursor' for insert mode and a 'block cursor' for normal mode? I think that would help a lot.
Please create an extensive video on grep, ask, sed, and Bash. Your videos are always awesome.
!* was nice, I try to remember that and use it. Do you do any programming?
What amazing shell color scheme are you using and how do I get it?!
Btw to open .bash_history you can just type history, otherwise I didn't know that ! command, that's pretty neat
Every time I see japanglish like "uindouzu" here I smirk to the brink of death.
Shame you didn't mention the Ctrl+R trick!
That is because CTRL-R is a default GNU Readline Library shortcut. He advocates using vi mode. So you probably have to tediously switch out of vi insert mode by pressing ESC followed by a sequence of other keys in order to achieve the same.
Where did you get that amazing wallpaper
I need it 😭
Protip: Use Ctrl+R in combination with the fzf program for a much better command search experience
I use ctrl+r all the time, never heard of fzf, looking into it now. What's awesome about it?
@@JoshuaGutz quick
7:36 Wouldn't chmod 777 file[12345] work as well? Especially if you haven't typed anyting related to those files in your terminal, like creating them.
file? and file[1-5] should also work
Can you please explain the full use of systemd (how to be systemd ninja) and a bit comparison with runinit
The exclamation mark commmand is a trap... professional programmers already understand why mutating states is bad idea. That's why functional programming is safer.
Interesting stuff about !! and related techniques, but I have to disagree about it being useful in the real world. The last minute of the video, which shows "vi mode" on the command line, essentially makes all of the !! commands useless. Here's why:
Do you want to blindly execute commands based on previous ones by typing the most super special combination of !! and :s/stuff/here/ and other variants? All while NOT getting to see the actual command that will be executed? Will you run important system level commands (like removing directory trees) "blind" like this? I will not.
Using vi mode and history searching (with control-r) allow you to actually see what will be executed before you press enter. Taking the example of changing one thing to another:
systemctl status sshd
systemctl start sshd
You can do this in vi mode with this sequence:
jwcwstart
Press when you see that the command is what you want. This is interactive and *FAST*. I can do this very quickly in practice. The first "escape k" brings back the last command. Then a "w" to go forward one word to "status". Then "cw" to change that word into what you type. Finally you type the word (start) and press enter.
The example about using the arguments from a previous command is even more trivial. Just do a reverse command history search with control-r, then when you get the command it's just:
cwchmod 777
Seeing what you are doing is always superior to flying blind in my opinion.
Using vi mode has made me SO MUCH faster on the command line. It's an awesome thing to learn.
inxi -b is my new preference over neofetch as of today
Thanks for putting this out here!
this is his funniest thumbnail yet
I can feel my power level rising
another really helpful one is repeating the last command start with an 'f' for example, would be " !f "
so if you remember the first letter(s), you can do multiple commands from history really quickly
e.g.
!bison
!flex
!gcc
or
!b
!f
!g
What really made me look cool was to use CTRL+L instead of clean 😎
Also I prefer fish shell more than zsh or bash
Do more command line videos / VIM videos plz.
Why use vim shortcuts if you already have emacs shortcuts built-in into bash?
I just wanna clarify that some linux workplaces wont have vim, only vi.
You have a great day as well Sir!
I have been using Linux since SuSe 8.2 came out, and I learned a lot of new thing in this video.
Thanks a lot!
Amazing!!! Learnt so much
I'm pretty sure that !!:s/status/start (or even ^status^start) is a lot more keystrokes than ↑[ctrl]←[shift]←start
And in the case of adding sudo, it's also pretty quick with ↑[home]sudo[space] although not saving as many keystrokes.
I am learning that there's always something new to learn about GNU/Linux despite how long I'd used it. Amazing stuff! :)
Oh, the thumbnail... You naughty, you...
You're the Jayson Tatum of Linux!!!
based
wow kenny thank you for these amazing tips mr. admin
Damn thats a really cool DE theme
How do you copy/paste to system clipboard in bash vi mode? Usual y and p don't seem to work. Probably it uses internal registers.
Check if that action has a proper key bound; in bash that would be `bind -P`. then start assigning all the missing assignments appropriately; manpage for bash should describe further bind options to help.
Can't wait to be the coolest gay at the office
!!:s/gay/guy
6:54 you could do: chmod 777 file? which won't include file12_DO_NOT_CHANGE
When she asks you "Hey, do you use Ubuntu or Manjaro?", and you just reply "Fedora, ma'am".
Best day of my life (has yet to come)