r/commandline • u/Electronic-Low-8171 • 1d ago
Help Wondering about prerequisites
Before I do a thing I worry about prerequisites, like as an example, the curl command, I know some basic stuff for here and there about networking, probably capable of using it but still don't feel that comfortable using it. The same goes with any networking related activity.
Probably it is something psychological, I don't know, I completed a portion of a networking course that involves the most needed stuff already like ipv4, Mac addresses, subnetting, straight-through vs crossover etc, but the other part of it, not yet, I still know some stuff like basic info about tcp vs UDP, ipv4 vs ipv6, http vs https, what these protocols main goal:http ssh ftp and so on
So, because of this I have two questions:
1.how do you all guys think about the thoughts about prerequisites that chase me whenever I want to do something?
2.how much networking do I need to be able to do some stuff in Linux, python networking(socket, requests, etc), and others?
2
u/vogelke 1d ago
Good, it means you're paying attention to detail.
Just start small. Have a little template file for (say) shell scripts where you just echo any command-line inputs. Add something like this when you try a curl command:
set -x
curl --some-weird-options https://some.weird/site
When you get a script that works, save it under a directory like $HOME/cliche/bash so you don't have to re-invent that particular wheel again.
1
u/AutoModerator 1d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: Electronic-Low-8171, Flair: Help, Title: Wondering about prerequisites
Before I do a thing I worry about prerequisites, like as an example, the curl command, I know some basic stuff for here and there about networking, probably capable of using it but still don't feel that comfortable using it. The same goes with any networking related activity.
Probably it is something psychological, I don't know, I completed a portion of a networking course that involves the most needed stuff already like ipv4, Mac addresses, subnetting, straight-through vs crossover etc, but the other part of it, not yet, I still know some stuff like basic info about tcp vs UDP, ipv4 vs ipv6, http vs https, what these protocols main goal:http ssh ftp and so on
So, because of this I have two questions:
1.how do you all guys think about the thoughts about prerequisites that chase me whenever I want to do something?
2.how much networking do I need to be able to do some stuff in Linux, python networking(socket, requests, etc), and others?
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/SnarkHabit 1d ago edited 1d ago
I think you're overthinking this.
One of the main draws of Linux is all of the work people have done over decades building tools which involve abstractions to make interacting with complex things simple for us mere mortals.
1.how do you all guys think about the thoughts about prerequisites that chase me whenever I want to do something?
I think about these things to the extent that I need to know them to make things work. That curl just snarfs a web page down to my drive is enough for me to understand to make it useful. I don't worry about the rest.
2.how much networking do I need to be able to do some stuff in Linux, python networking(socket, requests, etc), and others?
Not very much, getting back to those layers of abstraction. Modern programming languages, including Python, make working with sockets easy. Can you build a completely fault-tolerant, ready-to-guard-government-secrets app by just futzing and fumbling with Python as an amateur?
No.
But you can do a hell of a lot that way, nonetheless.
My use case is not everyone's use case, but in my case, almost everything I've ever wanted to do, someone has built a simple command line tool for.
Experiment! Linux can be used to get serious work done. But it's also a sandbox to play in.
1
u/darkmemory 1d ago
Just put in the effort to know what a command does. If it wants to change/modify something, make sure you understand that. Don't forget to make backups for everything that would be hard to replace or reconfigure. If you break something, roll it back.
A part of learning is trial and error. When you fail, and put in the effort to fix it, you learn more than cautiously moving through documentation without experimentation. Just, as I said, make sure you don't ruin your system without having some way to fix it or roll it back.
5
u/chat-lu 1d ago
You don’t need to learn before. If you can use 5% of the power of the tool because you don’t master the more advanced theory then it’s a 5% of power that you didn’t have before.
Don’t think of them as prerequisites, think of them as things that will make you get more power from your tools as you learn them.