10 Linux Terminal Tips and Tricks to Enhance Your Workflow
Вставка
- Опубліковано 21 тра 2024
- Are you a Linux user and/or administrator? These 10 terminal tricks will show you some new and exciting ways you can enhance your workflow, shorten longer tasks, and even have a little fun along the way.
Thanks to Linode for sponsoring this video. Check them out and spin up your very own Linux server ➜ learnlinux.link/akamai
LPI Linux Essentials Course Available
Check out the new course on Udemy! ➜ learnlinux.link/lpi-course
➜ learnlinux.link/lpi-course
Check out the Linux Shop
In the official shop, you'll find Shirts, hats, stickers, bags and more!
➜ merch.learnlinux.tv
5% discount on LPI exam vouchers
After you finish Jay's new course, get 5% off an LPI exam voucher here:
➜ learnlinux.link/lpi-voucher
Become a Patron
Show your support for Learn Linux TV on Patreon and get access to exclusive perks!
➜ learnlinux.link/patron
Become a Channel Member
Show your support for Learn Linux TV here on UA-cam and get access to exclusive perks!
➜ learnlinux.link/member
Mastering Ubuntu Server: 4th Edition
Jay's latest book covers everything you need to know in order to master Ubuntu Server. It's available here:
➜ ubuntuserverbook.com
Linux Gear and Kits
Check out Jay's choice of hardware products, audio/video equipment, and more.
➜ learnlinux.link/amazon
Grab an awesome Pi-powered KVM
Support Learn Linux TV and grab yourself a TinyPilot KVM here:
➜ learnlinux.link/tinypilot
Note: Royalties and/or commission is earned from each of the above links
Time Codes
00:00 - Intro
00:56 - Spin up your very own Linux server with Linode (Sponsor)
02:25 - Terminal Trick 1: Simplify package installation
05:18 - Creating an alias for your text editor as well
06:08 - Retaining aliases like these for future use
07:59 - Terminal Trick 2: Checking your weather forecast
10:21 - Terminal Trick 3: Resetting your terminal session (without closing the window)
11:28 - Terminal Trick 4: Run a Internet speed test from within your terminal
14:07 - Terminal Trick 5: Use neofetch to show a system summary when you log in
16:48 - Terminal Trick 6: My own personal custom bash prompt
21:00 - Explanation on how my terminal prompt functions
26:49 - Terminal Trick 7: View terminal cheat sheets with cheat.sh
29:33 - Terminal Trick 8: Get your fortune told (use at your own risk!)
32:18 - Terminal Trick 9: How tmux can enhance your workflow
36:29 - Terminal Trick 10: Opening files and launching desktop apps from the terminal
Video Specific Links
- Official blog post for this video ➜ learnlinux.link/terminal-tips
Full Courses from Learn Linux TV
• Linux Essentials Certification Workshop ➜ learnlinux.link/lpi-course
• Linux Crash Course series ➜ linux.video/cc
• Learn how to use tmux ➜ linux.video/tmux
• Learn how to use vim ➜ linux.video/vim
• Bash Scripting Series ➜ linux.video/bash
• Proxmox VE Cluster Full Course ➜ linux.video/pve
• Learn Ansible ➜ linux.video/ansible
Linux-related Podcasts
• Enterprise Linux Security ➜ enterpriselinuxsecurity.show
• The Homelab Show ➜ thehomelab.show
Learn Linux TV on the Web
• Main site ➜ www.learnlinux.tv
• Community ➜ community.learnlinux.tv
• Enterprise Linux Security Podcast ➜ enterpriselinuxsecurity.show
• The Homelab Show Podcast ➜ thehomelab.show
• Content Ethics ➜ www.learnlinux.tv/content-ethics
• Request Assistance ➜ www.learnlinux.tv/request-ass...
Disclaimer
Learn Linux TV provides technical content that will hopefully be helpful to you and teach you something new. However, this content is provided without any warranty (expressed or implied). Learn Linux TV is not responsible for any damages that may arise from any use of this content. The person viewing Learn Linux TV's content is expected to follow their best judgement and to make their best decisions while working with any related technology. Always make sure you have written permission before working with any infrastructure. Also, be sure that you're compliant with all company rules, change control procedures, and local laws.
#linux #linuxterminal #commandline - Наука та технологія
What helped me at the beginning was the discovery of "!!". If you forgot "sudo" in front your command you can type "sudo !!" and it adds the last command after the "sudo ".. Saved a lot of nerves :)
alias fuck="sudo !!" 😂
Aliases are great. Been using them for a while. I would recommend a naming convention for aliases. I like to capitalize the first letter of each command to indicate it's an alias. I find that very helpful.
Yea, a nice convention, I will apply that, thank you 🙋🏻
good idea - I used "w" for a weather alias and lost the "who" details you get with it - IOW, check that you're not losing another function before you make it permanent. I'm going to make aliases for session settings specific to whatever tasks I'm focused on.
Your solution to not see the verbose warning messages when opening audacity is just to drop them in another terminal session. What's better is to send the output to /dev/null
audacity &> /dev/null &
&> redirects both stdout and stderr, dev null is a special device where you can send stuff, it's basically a void. The last ampersand just puts the program in the background, it's optional.
Great video, I have been a RHEL, Sun Solaris, AIX Sys Admin off and on for about 17 years now, and I would have to say that I have learned more from your videos and the comments, both good and bad, in the past year (I think I just discovered your videos about five months ago). I have read tons of books and watched more videos on Linux systems admin than I can remember, but not all of it would stick. The way you demonstrate and put things just makes sense. Thank you. I really wasn't an Ubuntu user, mostly because I worked mainly with RHEL since 2005, but I recently started using Ubuntu Mate on one of my personal lab setups and really like it, I haven't bought a Linux admin book in years now because I just wasn't really learning from them. But, because of the way your videos are done, I am going to buy your book because I feel that it would be a far better reference than any of the previous books I have sitting on my shelves, well, with the exception of "Unix and Linux System Administration Handbook", there are so many good nuggets in those books.
Hello, I have a question for you based on your experience. Actually I have worked as a chemical engineer for over 7 years and now planning to change my career into software. What jobs can I look for in the Linux related job market? I have been using several Linux distros on my personal computers since 2006 (Ubuntu, Pardus, Mint, Manjaro, Fedora). I can build some projects with React (JS), Express (Node) and MongoDB + MySQL, and I know how to write some basic stuff with Golang, Java, Python.
@@AlazTetik Even though I have been a systems admin, a lot of the work I have done has been more database related, creating reports for our company and maintaining our internal website which we built with PHP, I worked/work on the back end of the site. I have many other skill sets that were/are necessary to fulfill this position, but to really answer your question, it's really up to what you are looking to get into. I see DevOps as one direction you could go into. I started off in a small software dev company which had been bought out several times until it is now, or it was at least part of one of the largest companies in the world. While I was there I saw people move around constantly from one position to another. I moved from software QA testing to systems administration, where I mainly administered RHEL and Sun Solaris servers, and I performed Oracle database admin tasks. That was before DevOps, I don't know a lot about DevOps, but it seems to be where a person performs many of the things you have been working on along with other task including sever admin work.
Thank you for sharing your knowledge. I'd like to see a entirely video about customize Bash prompt.
Brilliant video, so many useful tips and I learnt some new stuff. I like your presenting style as well. Thank you :)
The last tip I love. Launching apps from terminal looks a lot easier the going thru menus
My ultimate go-to place for Linux related stuff for the last 4 years. Thank you 🙋🏻
For your install alias, you could also add "-y".
You don't need the space at the end of your alias. It works just fine with no space. Try it.
because the space in included elsewhere in the command yes
@@llortaton2834 Because you have to separate the alias, i.e. "i" with a space from the program to install, i.e. "nano" like this: "i nano". So there is already the requiered space.
In contrast "inano" would not work, whether the alias is defined with trailing space or not.
Omitting the space would suppress alias expansion of the next word on the command line
@@shanent5793 I couldn't believe this, tried it out, and you're right, I stand corrected. Thanks.
@@shanent5793 So then it's not *needed* it's just something you might prefer to have for some aliases, yeah?
Very helpful, thank you!
Thank you for those tips, some were very useful!
Hello from Japan. Thank you for great educational videos. I love your Japanese writings on the wall and Daibutsu!
2:25 - I like your slide transition sound. It sort of reminds me of the spawning sound in Quake 1 Original!
loved the video. Tmux is one of the best CLI applications bar none, and your series on it is awesome. One of the things that kept coming to me during the video was , why not use a CLI file manager, like ranger, lf, nnn or Midnight Commander. (maybe not the last one). ?
Jay, great video! I already had many of these, but there was one or two that I didn't. Thank you for all that you do. Sorry I couldn't make ATO 2022 this year. I was hoping to get you to sign my "Mastering Ubuntu Server, 3rd ed." book which I purchased a year or so ago. Maybe next year. Take care.
For your speedtest alias, you could add "&& nslookup " to verify you don't have a DNS issue. Maybe even add a ping to veify you are able to reach the modem/firewall, etc.
Just not ever had aliases really mentioned to me before, but in my case would be super useful for spinning up and down groups of Docker containers, "arr-up / arr-down". I've seen people use 'll' which translates to 'ls -al', so that's already added.
I have the weather tip added also, as 'weather'... super super cool 😁
You are AWESOME! your tutorials are clear, and easy to follow. I love the weather curl command and the neofetch command too. Thank you very much!
Nice list. Here's a tip for you. In Nano, CTRL + END takes you to the end of the file. =)
Always Excellent
FORTUNE mod is a savage i love it
The hair ball blocking the drain of the shower reminded Laura she would never
see her little dog Pritzi again.
-- Claudia Fields, runner-up
I just learned that every time you start a new shell ./bashrc is run. You could also put it higher up the food chain in /etc/profile which is executed whenever any user logs in.
FYI: The link to the blog post in the description is not working.
I just checked today, and the link appears to be working.
RE the bash prompt configuration at 17:10: Note that the Mac OSX Terminal doesn't follow conventions for .bashrc. Instead, opening a new terminal uses ~/.bash_profile for configuration. To make the prompt work on Mac, just create a ~/.bash_profile with the "source ~./bash_prompt" line in it (see video at ~19:20).
the link for the official blog post for this video is not working
A nice alternative / extension to using aliases is to define your own bash functions. U can also do this in your ~/.bashrc or ~/.bash_aliases file. It has it's advantages, if you not just want to substitute commands for something else, but do some slightly more complicated things. (Like putting our parameter in the middle of a command string...)
An example would be a small command to insert a (configurable) horizontal rule into your terminal:
function hr() {
printf '%*s
' "$(tput cols)" ' ' | tr ' ' $(if [ -n "${1}" ] ; then echo -n ${1} ; else echo -n '-' ; fi )
}
try:
hr
hr '#'
hr '='
great thanks
The blog post is not online and we cannot copy from it at the moment :(
Still waiting...
@@tgmct it works now!
On my private device I use aliases to set up the backlight brightness of my laptop. My GUI of choice is Mate. Another one is "openssh ssl -showcerts -connect". In a project I used that one fairly often so I used an alias for it.
Other than that if there are scripts I use often (for example at my job) I use aliases to access them quickly from anywhere with aliases.
Yeah! You rock so hard !
Type in a really short command, sl for steam locomotive in whatever distro you're using and just type sl after and a steam locomotive will travel across the screen, I think it works in most distros.
hi friend,
Thank you for the info.
You do have a great and useful channel.
I am from Michigan and now live in Mo and the weather here is just as crazy.
Hi, i see you have if ~/.bash_aliases then...., can put them there, keeps .bashrc clean
For sure! This is much neater practice, especially if you have quite a number of aliases. And it reduces the possibility that you introduce errors in .bashrc itself.
@@vanadium4167 What's the advantage of having errors in bash_aliases compared to .bashrc?
@@unbekannter_Nutzer you are not messing up the main file. Not accidentally deleting something else, etc
@@vanadium4167 Well - how should defining an alias delete something else? Not plausible. And "messing up the main file" - depending on how many aliases I have and how they are organized. A weak reason, but at least something.
It also makes it easier to “alias >~/.bash_aliases” putting all your aliases in a single file all at once.
- Official blog post for this video ➜ learnlinux.link/terminal-tips = 404
Same happened to my browser...
same here
Same here. Two days laterrrr, still nothing
Working now...3 Nov. Yay!!
always educational content, quick question: how what command saves the files created?
Working from the code in the video I was able to put the PS1 prompt together and integrate it with my .bashrc and include a function to parse my git repositories.
The tip on easyer chest sheets is great for everyday use.
But on a side note if your studying for any certs such as RHSA like me you might not want to get into a habit of using anything but man pages as that's the only aid your allowed to use in the exam.
goodcstuff thanks jay
thanks.. pls make video on customizing bash prompt
" Official blog post for this video" reports page not found
I store all my defined aliases in ~/.bash_aliases which searched for and loaded if present from the ~/.bashrc file (at least it is in Linux Mint). I find it a better way of doing it without cluttering up the .bashrc file. I do like the ~/.bash_prompt idea.
In fact it's from at least Ubuntu (and maybe underlying Debian). The code in .bashrc to source .bash_aliases was right there on the screen... I was hoping he would at least mention what it was for, and that you might consider using a file like that.
Hi there, cool video.
For detaching a process from bash better use setsid, like "setsid audacity 1>/dev/null 2>/dev/null", maybe a bash function -- or if you start always the same program -- an alias will suffice. ;o)
A function would be like this:
function x() { setsid $1 "$2" 2>/dev/null 1>/dev/null ; }
An alias like this:
alias audacity="setsid audacity 1>/dev/null 2>/dev/null"
Thank you, Jay.
😮
great!
Nice Edifier bookshelf speakers - How about the sound reproduction ?
There are a bunch of mods (separate packages in debian at least) for fortune including some vulgar ones. It's fun every once in a while.
Just found this video. Been using the channel for a while for learning. Anyway, an alias I added and love is for running updates. I used:
alias u="sudo apt update -y && sudo apt upgrade -y"
This will (after I enter my password if prompted) run update and upgrade and not stop to ask me to enter the y.
Blog link is broken
fixed now :-)
Thanks for this great video. Just a quick question (it might be stupid) - Would running "source " be an alternative to "reset"?
Nope. It would only redo the things in the bashrc. reset does a lot more to get rid of terminal state.
I jus fell in Love with Linux Tv
I actually use the files referred, you can see it’s right above where you entered aliases in .bashrc, (if exist) .bash_aliases just so I have a specific file, plus seems like they kind of planned it that way, and I forget what federa uses but I do that same thing there.
FYI - The link to the blog post isn't working.
What is that funky PC behind you that has massive RGB cable inside?
can you make a video on fully optimize the bash prompt since is hard to change the colors + i like to see what can by added to the prompt. automatic bash prompt makers are not really that great
Also, the blogpost link for this video is broken.
Second time I ear about your Ansible videos, Network Chuck
I must say that I am now a big fan of the alias command (as well as adding it to your Bash config) and wish I knew about it sooner. I always like to update my system by going “sudo apt update && sudo apt upgrade -y && flatpak update -y” and typing that out so often is rather tedious, now all I do is “update” and away it goes!
I also added ""&& paplay " to the end of my update command so that I get a little notification when it is done.
(Spain) Hello, very good job. The weather has been very curious to me. The fact is that I am from Spain but not from Madrid but from Almería. Is there any way to configure it so that it appears in Almería and in Spanish? Thanks.
Append this at the end of your link /Almeria?lang=es
Creation of aliases in a separate file is better practice!
Why?
@@unbekannter_Nutzer As fast my go plan is In this case you don't have any slightest of chance of accidentally messing up .bashrc.
@@PS_Tube You can put all your changes at the bottom of the bashrc file to override anything above. No need to have a separate file.
33:10 Is there any point in preferring tmux over GNU screen?
I used to be a very heavy screen user. Since I tried mix seriously, I seriously doubt that I would ever go back. Having horizontal and vertical screen splits, the way to interact with windows and much more are why I personally prefer tmux over screen. Try it for a week and see if it doesn’t win you over.
42:00 - I use Ctrl+Z, in this case you dont need & while launch. How is it differ? If there is no difference nder the hood, Ctrl+Z is more convenient, imho.
comcast is always the culprit >_>
Currently at work, where I have Cygwin running on a Windows 10 Enterprise PC. When trying to use your custom bash prompt, I see two error lines, both saying "-bash: $'
': command not found" followed by a line with a closing square bracket "]" and the name of the machine. Not sure where to start troubleshooting, but I believe that Cygwin may require slightly different character escaping, than a terminal on "real" Linux (at least that's what I seem to remember from some previous awk scripting that I've done).
Found the issue - Notepad++ was set to use Windows EOL (in order to save some text files to import into a label printer), but once I set it to Linux EOL for the .bash_prompt file, the new prompt is working just fine in Cygwin.
Can you share your tmux config you are using here?
Please do git series for LInux
Don't you use nohup before starting the desktop application to avoid junk outputs?
alias . ="cd ../"
First I’ve heard you also living in Michigan. Not many people I’ve met in the mitten that actually daily Linux
Save yourself the hassle of going back and forth from desktop app to terminal window by appending your terminal command for the desktop app by "disown":
~$ audacity & disown
This will break the parent link to the terminal window process.
I like wthrr for weather. very pretty
I wasn't aware of that one, thank you for sharing that.
I always put in syllog
alias syslog="journalctl -f"
on systemd systems, that will follow the journal in real time. Great for troubleshooting or trying to figure out what /dev devices are being assigned where.
Often times I'll start a tmux session and do a horizontal split. I'll do a syllog on top, and a open command line on bottom. That way I can run commands on the open command line and see what's going on the system on the top. Sort of like a operator console.
WARNING! Do not change runlevels in tmux. Exit tmux before changing run levels. II don't know if the same.problem exists Wirth screen, but if it spawns processes like tmux, I suspect you may get the same corruption and.possiablr kernel panic.
i fee l like i enhanced my workflow by watching this 45 minute video
Can you make aliases turn on with a command? So anytime you log in you type ua or something.
you could write a function to do that. in .bashrc, the same place he added the aliases, you could enter
ua()
{
alias e="nano"
alias d="ls"
}
then when you type ua in the prompt it would enable the aliases.
You could include a second function to remove the aliases with
ra()
{
unalias e
unalias d
}
@@SuprousOxide You are awsome thank you so much
1:42 Does it last 60 days IF you don't spend it or does it just last 60 days so if you choose a cheap package, you only get 2 months free then the $100 is used even if you're cheap package is only like $5 a month package? Because $5 / 100 would be 1 year 8 months. But sounds like you really only get 2 months free is that right?
what is the terminal you're using?
My prompt actually tests the outcome of the previous command--if it is successful, my prompt is green, if it fails, my prompt turns red. I put it in my .bashrc file.
GREEN='\[\033[32m\]'
RED='\[\033[31m\]'
NC='\[\033[37m\]'
PS1="\u@\w \`if [ \$? = 0 ]; then echo ${GREEN}:\\\)${NC}; else echo ${RED}:\\\(${NC}; fi\`"
Seems to me your "i" alias should have given a password challenge unless you had already established sudo privilege on the terminal you were using.
I like to add "set -o vi" in my .bashrc to give myself vi commands in the terminal to scroll through previous commands, edit/change commands before running again, etc.
Password not requested likely because he had already established sudo privilege and the timer for that hadn't run out. I noticed that as well
@@GaryCameron780 Or sudo was configured with NOPASSWD
Hello
How to know in your prompt if I am a root user "#" or not "$" ?
Your speedtest example show you Comcast IP ... might want tu blir it 🤷♂️
Where is his custom terminal link ?
nohup should be here too
I agree and I’ll consider that for the future
I'm getting a "page not found" for the blog post :(
Fixed.
The proper place to put aliases is in the .bash_aliases file.
I disagree. How many aliases do you have that require their own file? Put them at the bottom of your bash or denote a section for them with comments.
@@helloimatapir I have 53 aliases in my .bash_aliases
I have a separate alias file and alias 'aliasrc' opens my alias list in vim.
Do you know why don't find camera?no device found
1. You don't need the space at the end of your aliases
2. NEVER EVER RUN A SCRIPT DIRECTLY FROM THE INTERNET (the speed test thing), this giving direct access to your computer to anybody for remote code execution. And don't run scripts, even downloaded, unless you are sure to understand what they do.
You didn't explain how to use sudo without entering a password, even if I suppose you edited you /etc/sudoers file.
Likely because he had used sudo within the previous 15 minutes or whatever the timeout value is for his account.
How to run a Tcl Byte Code (.tbc) encrypted file
I know this video is old, but a really easy way to add aliases to you bashrc without actually going in in editing it is this command:
echo 'alias newAlias="{command}" >> ~./bashrc
this will append that alias to the end of your bashrc file stright from the terminal :)
alias ls="date; ls"
how to run a tbc encrypted file
Official blog post is 404 ...
Fixed, sorry. I'm at a convention currently.
I use aliases all the time and never put a space at the end. Why are you?
At least for bash, "help alias", there isn't any requirement for it. In the late 90s was this a thing? I don't remember it's been so long ago but certainly now it isn't needed.
zsh?
'fortune' should never be run alone. 'fortune | cowsay | lolcat' is the proper use. 😂
tldr
Check that out.
It seem you like read a few pages that people did pass for or a master linux book. Nothing new.
Shortening commands to one character is very dangerous, as any typo can lead to potentially destructive behavior. Autocompletion with tab key is much safer.
I cannot think of any commands that would be dangerous as a shortcut other than the "rm" command. What is very dangerous for you?
I feel like this is teaching people bad things
To launch GUI programs from terminal way simpler will be using nohup command.
To avoid creating file nohup.out just redirect streams "nohup command >/dev/null 2>&1 &"
That function will help:
n () { nohup "$1" >/dev/null 2>&1 & }
Why not use setsid instead of nohup?