Write Your Own Bash Scripts for Automation [Tutorial]

Поділитися
Вставка
  • Опубліковано 13 січ 2025

КОМЕНТАРІ • 458

  • @zephyrus7258
    @zephyrus7258 3 роки тому +904

    This is my kind of guy. His eyes tell me he's wasted no more than 3 hours sleeping since birth.

    • @djvincon
      @djvincon 3 роки тому +31

      Pissed my pants lol

    • @rikkertkuklinski4410
      @rikkertkuklinski4410 3 роки тому +16

      he's an EXPERT at what he does, and i like it.

    • @rikkertkuklinski4410
      @rikkertkuklinski4410 3 роки тому +2

      @Badger anti R? Which programming language is that?

    • @aminechei8509
      @aminechei8509 3 роки тому +1

      @@rikkertkuklinski4410 R is the language

    • @rikkertkuklinski4410
      @rikkertkuklinski4410 3 роки тому +8

      @@aminechei8509 just be carefull. Dont piss the guy off. He might hack you while you're taking a dump and staring into your phone ...

  • @jasonpitts8395
    @jasonpitts8395 3 роки тому +151

    Dude where have you been? I was about to call 911 and report you as missing. Glad you are back.

    • @KangJangkrik
      @KangJangkrik 3 роки тому +1

      Oh wow false alarm for 911
      Good luck at trials bro

    • @kingseekerbackup3085
      @kingseekerbackup3085 3 роки тому +3

      @@KangJangkrik It was a joke.

    • @KangJangkrik
      @KangJangkrik 3 роки тому

      @@kingseekerbackup3085 I know

    • @sprBEAST211
      @sprBEAST211 3 роки тому +2

      The grim reaper pulled him into a dimension between space and time, to see who would blink first in exchange for his soul. Cody clearly won 👏👏👏

    • @bitonic589
      @bitonic589 2 роки тому

      @@sprBEAST211 lmao

  • @nickopop77
    @nickopop77 2 роки тому +27

    I’ve watched a lot of technical training videos with 20 years in the industry.
    You do a great job explaining things included with real live demos! Thank you for sharing what you do! Helping others learn too. 🙌🏼

  • @kevin_delaney
    @kevin_delaney Рік тому +4

    I shortened that alias and implemented it into all my servers immediately (in my home) because it is simple and brilliant. I know them anyway because they are static, but I love the simplicity of it.

  • @rodrigito78
    @rodrigito78 3 роки тому +7

    Nice bash intro.
    Half the battle when writing bash is knowing which command and arguments (flags) to pass to it;
    # hostname -I
    Returns the system primary IP address. Type hostname --help for details.
    Of course, I understand the exercise was to demonstrate pipping capabilities of bash. But the less pipping the faster your script will run.
    Also, this is much better than without the curly brackets.
    # echo "${STRING}"
    Excellent job.

  • @sebastiansimon7557
    @sebastiansimon7557 3 роки тому +133

    You didn’t need the `echo $(`…`)` at the end, you just needed to escape the `$` so it doesn’t get expanded in the string: `alias ipaddress="ifconfig | grep broadcast | awk '{print \$2}'"`.

    • @RajivBandaru
      @RajivBandaru 2 роки тому +5

      Thanks for this tip. It is more short and useful.

    • @DavidConnerCodeaholic
      @DavidConnerCodeaholic 8 місяців тому +1

      Phew I’m glad I’m not the only one that caught this. 😅😅

    • @DavidConnerCodeaholic
      @DavidConnerCodeaholic 8 місяців тому +1

      Fortunately for the civilized jq users among us, there is now “ip -json addr show | jq …”
      No more ifconfig (I guess? Honestly I never got the ip tools memo, so this has been very confusing for me)

    • @NaNa-cq8ck
      @NaNa-cq8ck 2 місяці тому

      I don't understand the concept of 'escaping'.. why did it work without escaping before aliasing?

  • @DavidLindes
    @DavidLindes 2 роки тому +1

    Thanks for sharing.
    A minor correction, re 2:17 - the .sh extension is not actually necessary.
    And just a note re 12:55, while some folks do call those "curly brackets", a less-confusing name for them would be "braces" -- { and } -- whereas "brackets" (or "square brackets") would be [ and ].

  • @user-hy2ry3if8h
    @user-hy2ry3if8h 3 роки тому +5

    Great video. Exactly what a bash nab (me) needs to start up, see how to make a basic one then build on it, then add more and more and bit of polish ... brilliant.

  • @Alex-uc3ye
    @Alex-uc3ye 3 роки тому +38

    Writing bash scripts has saved me thousands of hours over the years. Thank you for the video, this is incredibly useful.

    • @charlesmagno28
      @charlesmagno28 2 роки тому +4

      any real world sample you can share? thanks

    • @bald_agent_smith
      @bald_agent_smith 9 місяців тому +1

      @@charlesmagno28I got the same situation. For example - it really helps handle server apps, particularly deploy updates (or configs, patches), do system tasks

  • @Ben12312312
    @Ben12312312 3 роки тому +124

    “Oops this isn’t python” hahah

  • @Recon_Racing
    @Recon_Racing 3 роки тому +5

    Studying for my Linux+, this is gold

  • @garcand
    @garcand 3 роки тому +6

    Just what I needed. I was literally just thinking about this! Thumbs up

    • @whitedaniel53
      @whitedaniel53 3 роки тому

      Same bro, thought the algorithms recent update was to read my mind xD

  • @jonyboi21
    @jonyboi21 3 роки тому +140

    This guy explains it better than my professor did last week

  • @AstroDenny
    @AstroDenny 3 роки тому +7

    Cool video- There is a lot of content like this on youtube but your style makes this easy to ingest for beginners. Couple if things though- You don't have to have .sh at the end of it and it you're going to run it with `bash ` you don't need the shebang either. Also, why did you have to fuzz the ifconfig command?
    I hope you continue this series- bash offers some much more advanced capabilities.

  • @AmbushEveryone
    @AmbushEveryone 2 роки тому +3

    just getting started with Linux Mint on a VM. This video just taught me so much. thank you :)

  • @codygaudet8071
    @codygaudet8071 3 роки тому +32

    You guys are reading my mind! This is EXACTLY the video I was looking for. This video is gold. More like this.

    • @sachinmaurya3259
      @sachinmaurya3259 3 роки тому +5

      this is what i was gonna type in comment .....lol

    • @jpablosaavedrag
      @jpablosaavedrag 3 роки тому +4

      @@sachinmaurya3259 I was going to type this too haha

    • @jpablosaavedrag
      @jpablosaavedrag 3 роки тому +1

      @@dawidsadzak8137 sad u.u but great they made this video

    • @codygaudet8071
      @codygaudet8071 3 роки тому +1

      ​@@dawidsadzak8137Way to devalue for the video for others my guy. If you don't get excited about this, you're in the wrong place.

    • @jpablosaavedrag
      @jpablosaavedrag 3 роки тому +2

      @@dawidsadzak8137 True. I've seen a few. But it was a nice coincidence to watch this video today. I know how the world works, still, i think it's a great short video about things you can do with bash scripting.

  • @druzod1496
    @druzod1496 3 роки тому +21

    I love your videos, can't thank you enough for what you do out here, and thanks for taking the time to "give us" this knowledge. Keep. Up the good work!

  • @ramgopalvarma5949
    @ramgopalvarma5949 3 роки тому +1

    Thank you for showing the error you ran into and the work arounds in the video.

  • @1ukastesar
    @1ukastesar 2 роки тому +11

    In the case of shebang, it's better to use `/usr/bin/env bash` instead of the exact shell location so it can be ram on different machines without changing a single line.

    • @princesa_lina
      @princesa_lina Рік тому

      thank you :D

    • @zuberkariye2299
      @zuberkariye2299 Рік тому +2

      thats neat and smart tip, if i was to write malware on my linux machine and wanted to transfer to a remote machine somewhere else that might be using different shell. It could in cases like that then

  • @mojo3318
    @mojo3318 2 роки тому +2

    My dad had me watch this video for a class I'm going to take. This looks interesting. I like coding.

  • @karlostj4683
    @karlostj4683 11 місяців тому +1

    It's fascinating that Mr. Kinzie explains that you need a "Ubuntu or Kali Linux system, really any Linux system" and then proceeds to create and run bash scripts on a macOS machine without mentioning that macOS does bash as well.

    • @Wegottohustlehard
      @Wegottohustlehard 9 місяців тому

      hey,,can you plz tell what is he using to type that script..cause if iuse vscode i amd not the sam eoutput.thank you!

    • @karlostj4683
      @karlostj4683 9 місяців тому

      @@Wegottohustlehard VSCode is a better editor IMHO but may be more complicated and sometimes simpler is better. Not sure why you're having trouble getting VSCode to work with his examples. I did just try the first script he typed in using VSCode instead of nano, and it works just fine.

  • @Neodeejay0500
    @Neodeejay0500 3 роки тому +2

    thanks from France!! I can't wait for the next video about bash scripting ! :)

  • @benjamindreyer9884
    @benjamindreyer9884 3 роки тому +37

    Me thinking about something*
    One day later this dude who never blinks says: “hmm maybe i should make a video about that”

  • @danlule1
    @danlule1 Рік тому

    Thanks a lot, this is very well explained. It is the best explanation I have come across unlike many scripting/programming videos where the narrator often spends a lot of time even hours talking to themselves in vain because they are so badly explained.

  • @jackfletch2001
    @jackfletch2001 2 роки тому +1

    Holy crap, I'm shocked I actually know almost all of this. I was genuinely nervous thinking I forgot a lot of this stuff.

  • @chffguy
    @chffguy Рік тому

    Been trying to execute a bash file forever! First resource that actually helped!

  • @novikovPrinciple
    @novikovPrinciple 3 роки тому +25

    Intermediate Tip: Use "man bash" to learn the semantic differences of: "&" (ampersand), "&&" (double ampersand), "|" (bar), and ";" (semi-colon).
    Most of my aliased commands use these punctuations, with one being "firefox & discord &" and another being "git fetch ; git status ;".
    GL, HF

  • @OmarImrharn
    @OmarImrharn 2 роки тому

    I ENJOY your helpful interventions and your professional knowlege. TANK'S TOO MUCH.

  • @oxycodin2253
    @oxycodin2253 2 роки тому +1

    I taught my self this exact thing for batch scripting, time to learn bash!

  • @zexsen85
    @zexsen85 3 роки тому

    woooow, Vibrasphere - Sweet september music on the beging.... I am delighted... :)

  • @DennisGentry
    @DennisGentry 2 роки тому

    1:16 "You can always pick up a Raspberry Pi" lol

  • @pianochannel100
    @pianochannel100 3 роки тому +3

    The no-blink guy is back!

  • @AadilAnsari-ee3ds
    @AadilAnsari-ee3ds 2 роки тому

    Amazing. Actually the advance commands was awesome

  • @GeneralBlorp
    @GeneralBlorp 3 роки тому +5

    Bash was my entry point into coding!
    I just wanted to save time on repetitive tasks and chill more while at work; upside was that I learned I could annoy my supervisor by being such a TryHard.

    • @pianochannel100
      @pianochannel100 3 роки тому +3

      See but now they'll just give you more work if you prove yourself to be so efficient.

    • @justinc4782
      @justinc4782 3 роки тому +2

      @@pianochannel100 yes if you ever make these kind of tweaks keep it to yourself and dont brag about it! :)

    • @derpoblizist9076
      @derpoblizist9076 2 роки тому

      @@justinc4782 it depends where you want to go, to have a cushiony job with few working hours, then just quietly do your part.
      If you want to be more successful and have a job that recognizes this effort, then ask for more work.

    • @wasssuuuppp
      @wasssuuuppp 2 роки тому

      Any book recommendations to learn it more advanced?

  • @dogbyte7875
    @dogbyte7875 2 роки тому +1

    Hey Kody, Thank you for your time and for your video

  • @tamirmaidani
    @tamirmaidani 3 роки тому +1

    Amaizing ,i did this tutorial on termux(android) , works like magic! Thanx alot!

  • @worldboy9684
    @worldboy9684 2 роки тому

    Nice trick using a subprocess in an alias! Thanks

  • @charbelalam2648
    @charbelalam2648 2 роки тому

    He stares the information into my soul.

  • @HikikomoriDev
    @HikikomoriDev 3 роки тому +1

    A lot of power to the user. Very useful.

  • @Anandhpt
    @Anandhpt 3 роки тому

    Last task was awesome..thnx man

  • @seratonyn
    @seratonyn 3 роки тому +2

    Nice~♡ dig the first ifconfig 🤣

  • @kuldeepsingh2983
    @kuldeepsingh2983 3 роки тому +3

    I was looking exactly for this. Very nice content.

  • @pcampbell-edu8508
    @pcampbell-edu8508 3 роки тому +26

    Good habits put in a "header" with the date, your name and purpose of the script.
    Also keep upper case vars for env vars.
    ^^^ being kind to your future self

  • @The_Digital_Samurai
    @The_Digital_Samurai 3 роки тому +1

    Bash scripting in the new Windows Terminal is very useful.

  • @EliteTechnicalSpecialists33
    @EliteTechnicalSpecialists33 3 роки тому +1

    Great work man 😀 love your videos 👍

  • @imagreatguy1250
    @imagreatguy1250 2 роки тому

    This is good stuff mate 🧠👍

  • @diegoleon1144
    @diegoleon1144 3 роки тому +1

    This guy teach like a master.

  • @moth5005
    @moth5005 3 роки тому

    sick video , the alias thing is really cool.

    • @gedeonducloitre-delavarenn8106
      @gedeonducloitre-delavarenn8106 3 роки тому

      From man bash: For almost every purpose, aliases are superseded by shell functions.
      So no, aliases are not cool (apart maybe for just one command, but it gets crazy when you want to put more than one command with quotes; and also they can't handle arguments). Functions are cool!

  • @lollubrick
    @lollubrick 3 роки тому +1

    I was going to comment to bash you for using nano but then I realized that I started doing anything on the *nix command line using nano instead of vi so I can't really say stuff; but vi is the best thing to learn.

  • @ondregonzalez
    @ondregonzalez 3 роки тому +1

    Awesome presentation! Thanks for the clarification.

  • @tusharmotka1583
    @tusharmotka1583 3 роки тому +1

    Need more parts of it. 😍

  • @chitownbob9714
    @chitownbob9714 2 роки тому

    "Paranoids...HOW DARE YOU!"
    I love that sticker!

  • @ashpakpinjari9214
    @ashpakpinjari9214 3 роки тому

    Please continue this bash series.

  • @vikramnanda2833
    @vikramnanda2833 2 роки тому

    Thanks for the video
    Please do make more videos for daily task automation

  • @frantiseksmrha992
    @frantiseksmrha992 2 роки тому

    Thanks man, you helped me a lot. I appreciate your work.

  • @imrharnomar9099
    @imrharnomar9099 2 роки тому

    I enjoy your support. your work is very benefit. TANK'S.

  • @jpedithe2171
    @jpedithe2171 2 роки тому +1

    Hello , très interessant ce tuto de découverte . J'ai apprécié vos explications et vous dis un grand merci pour ce partage .

  • @cryptolicious3738
    @cryptolicious3738 3 роки тому +6

    Argumentative bash script! hilarious :D
    that cracked me up bro

  • @theazza
    @theazza 3 роки тому

    Thanks dude, great description.

  • @tommyselbe1999
    @tommyselbe1999 Рік тому

    Remember: **Syntax is your wand**, and every bug is a riddle waiting to be solved. May your journey be filled with wonder and your code compile without tantrums.

  • @cryptonservices9749
    @cryptonservices9749 3 роки тому +1

    Yay I'm early - I love your videos man ❤

  • @tomigoe376
    @tomigoe376 3 роки тому

    Amazing video. Ty Nullbytes

  • @Jose_T131
    @Jose_T131 2 роки тому

    Excellent video brother

  • @jeremymesloh1981
    @jeremymesloh1981 3 роки тому +22

    You could also do ifconfig | awk '/broadcast/ {print $2}' which would let awk grep and parse column.

    • @analactica
      @analactica 3 роки тому

      Yeah that's definitely WAAAAY ahead my level atm , i didn't understand a thing , hopefully within a year I would 🤣🤦🏻‍♂️

    • @rodrigito78
      @rodrigito78 3 роки тому +5

      # hostname -I (uppercase i)

    • @analactica
      @analactica 3 роки тому

      @Learn Linux im starting to get the idea actually , my issue is the way i learn , unlike most people i need the bigger picture first , then the break down , not the other way around , sooo ya lol

  • @BurningtunaDC
    @BurningtunaDC 3 роки тому

    "Kody"? Jackie is the punk. Thanks for shooting and sharing such a great tutorial.

  • @vk-chinni
    @vk-chinni 3 роки тому +1

    @Null Byte what that "Codes" book behind you?

  • @BRBTechTalk
    @BRBTechTalk 2 роки тому

    Thank God you did not use "Hello World". I have created scripts before and I understand them but this was helpful for other variables I have not used.

  • @ggsap
    @ggsap 3 роки тому +3

    Actually to find out the shell you are currently using you need to execute which $SHELL since most of the time you want your current shell to interpret your script

  • @albertsnow7111
    @albertsnow7111 2 роки тому

    hello . 0:40 It's get my attention that black blanket on the wall. The blanket surface is like the equipment on the voice lab to eliminate external sound effect. Am I right?

  • @Clean_Slate
    @Clean_Slate 3 роки тому +3

    Even though it's quite a simple quide, it's great!
    Thank you!

  • @jpdominator
    @jpdominator 3 роки тому +4

    I wouldn’t recommend using aliases like that. Make them little scripts. Aliases are part of bash expansion. Using grep with your alias… womp womp. Gotta single tick it. Aliases for obscure references. Scripts for other stuff, not piped commands.

  • @Romanslost
    @Romanslost 3 роки тому +2

    Great timing 😁

  • @smithwill9952
    @smithwill9952 2 роки тому

    Industrious intelligent geek. Awesome!

  • @jeanelkhoury8077
    @jeanelkhoury8077 3 роки тому

    great video wish we could have more of

  • @anaghr1252
    @anaghr1252 2 роки тому

    Thank you man for sharing this stuff

  • @davidabba7663
    @davidabba7663 3 роки тому

    well this was fun and educational thanks!

  • @soupedenuit
    @soupedenuit 2 роки тому

    Great video, but I gotta ask: are you using a hammer to type?

  • @naeem8434
    @naeem8434 3 роки тому

    AMazing video sir for beginners.

  • @mathematicalninja2756
    @mathematicalninja2756 3 роки тому +1

    I swear this is what I wanted

  • @sirprancealott2003
    @sirprancealott2003 2 роки тому

    Great work Mate. Keep Staring

  • @douglawson8937
    @douglawson8937 2 роки тому

    a bit confused @8:53 with "read name". If name isn't defined as a variable yet, how is it reading it as the only reference to "name" previously is in the string?

    • @michallasan3695
      @michallasan3695 2 роки тому

      In bash, all variables are string, no need to declare, the default value being empty.

  • @ovokteb9671
    @ovokteb9671 9 місяців тому

    Really helpful video . Do you have any course on Udemy that I can purchase ?

  • @amnakhan1741
    @amnakhan1741 2 роки тому

    Cool You really help me Well done!

  • @Shaddymaze
    @Shaddymaze 3 роки тому

    Well made! Thank you 😁

  • @MrGFYne1337357
    @MrGFYne1337357 3 роки тому +6

    alright, this is more like it. let's be real, a lot of n00bs need to be learning stuff like this and not be so concerned about being the next best h4x0r. Good job Null Byte. /usr/share/thumbs.up

  • @Ms.Robot.
    @Ms.Robot. 3 роки тому +1

    This term, Linux, good timing❤️💋

  • @FightforOlDaveG
    @FightforOlDaveG 2 роки тому

    Great video, thanks for sharing

  • @VulcanOnWheels
    @VulcanOnWheels 2 роки тому

    4:56 How did you change that 2 into a 3?
    7:07 Why not just use "whoami" by itself?

  • @krotizmultika
    @krotizmultika 3 роки тому +3

    "belive"... Great video, as always, though.

  • @lxtwin
    @lxtwin 2 роки тому +1

    To make a script portable say RHEL 6, 7, 8 and 9 you can use #!/usr/bin/env bash instead of #!/bin/bash

  • @surajmishra5661
    @surajmishra5661 3 роки тому +1

    Can you make a script for making post on social media as planed per user and on given time

  • @Sourpusscandy
    @Sourpusscandy 3 роки тому +3

    Here’s what I’d like,
    Press the on button, boots to the login in screen.
    Computer says: who’s there?
    I answer with my name,
    Booting finishes, logged in.

    • @justinc4782
      @justinc4782 3 роки тому +2

      boot it into a tty by configuring grub.
      make your terminal run your little program when it loads
      use espeak to say "whos there"
      use the read command to ask for your name and get input,
      if, else, string contains to check for proper input, then boot into your graphical interface

    • @Sourpusscandy
      @Sourpusscandy 3 роки тому

      @@justinc4782 OK cool thanks!

  • @nikolaimakarov3034
    @nikolaimakarov3034 3 роки тому +1

    Do the aliases get saved themselves ? If not where to save them so that I can use them after I restart my system ?

    • @mattbeta
      @mattbeta 3 роки тому +3

      Add them to your ~/.bashrc file

    • @nikolaimakarov3034
      @nikolaimakarov3034 3 роки тому +2

      @@mattbeta thanks mate ! 😎

    • @justinc4782
      @justinc4782 3 роки тому

      @@nikolaimakarov3034 good tip is to make an alias for editing your aliases
      so aliases command would open up your .bashrc file :)

  • @bzero7857
    @bzero7857 3 роки тому

    Your videos are perfect to learn

  • @cortisolblue2208
    @cortisolblue2208 3 роки тому

    Was the $2 in your final script grabbed from a premade bash script? confused where that came from.

  • @gdekerdanet
    @gdekerdanet Рік тому

    The man doesn’t blink😱

  • @SuStel
    @SuStel 3 роки тому +5

    Drinking game: drink every time he says "go ahead."

  • @maurolimaok
    @maurolimaok 2 роки тому

    I've been searching for a tutorial to make my terminal look like this, old green monitor, for a long time.
    Do you have any tutorial for that?
    I'm a complete newbie here in Brazil, learning Linux and Terminal prior to learn coding itself.
    Thanks for the video.

  • @TraceursMonkey
    @TraceursMonkey 3 роки тому

    Do all the scripts you make using "alias" are stored in bin/bash ? Thank you very much for the video , it fit like a puzzle piece for me .

    • @jonathanverret6872
      @jonathanverret6872 3 роки тому +2

      If you use the alias command in a live terminal, the alias is stored for that session only. Once you exit the terminal, the alias is lost.
      To save and store your own aliases, you need to edit your bashrc file, which is a configuration file that stores the settings for your shell. There are two copies of this file, one in /etc/bashrc that holds system-wide configuration (any user on the system will inherit these configurations), and one in /home/$USER/.bashrc that affects your user profile only. In most cases, you will want to edit the version of the file in /home/$USER/bashrc.
      Open the file with nano or vim and add your alias command to the file. You could add your command pretty much anywhere, but it's probably easiest to just add it to the end of the file. Once you save the file, the alias command you added will execute every time you open a shell.
      You can also edit the .bashrc file to change environment variables such as your $PATH.

    • @TraceursMonkey
      @TraceursMonkey 3 роки тому

      @@jonathanverret6872 Thank you very much for taking your time to explain :D Haw an awsome weekend !

  • @crwmike0
    @crwmike0 3 роки тому

    A .sh extension is not required for a shell script.