When CS:S (a game) came out, I wanted to run my own server. This taught me how to use the command line exclusively. You always need a useful use case so that you are willing to learn new things and also spend the time needed for it. But I'm also the kind of person who would rather spend 15 minutes programming to automate something that takes 5 minutes of clicking orgy in a GUI. I hate tasks that are repetitive and they just get automated away so I don't have to worry about them anymore.
I come from the generation where there was _ONLY_ a command-line interface. And for forty years I've been totally happy with that. However, occasionally, GUI interfaces are nice 🤗
Yeah, when a terminal was literally a terminal. I remember those days very fondly, but I wouldn't go back in time other than to once again flirt with that cutie who granted terminal time.
Actually, there are things that need to be done in a UI that I can't really imagine how you'd do in a command line. In particular, artwork, design, 3D modelling, etc. Think Blender, Inkscape, or the GIMP. If you're a graphics designer for a marketing firm - you should probably be spending as little time as possible in a command line, because that's not time being spent designing graphics. I think a lot of command line warriors tend to miss an important point: Tasks like moving files around and configuring the machine and essentially "IT stuff" are a very tiny part of the average person's workflow. These are things most professions don't need to be done on a regular basis. But this video seems to give the air that all of these things are huge general productivity things. Sure, if your job is IT administrator - the command line is your life, especially on Linux. But what I think is happening is a lot of new Linux users aren't expecting to be IT, and are essentially being told that they're really IT when they just want to get back to their real job, which might be something like graphical design.
True some things need or is better done in a GUI. But I think even a user that does photo/artistic/design line of work could benefit from learning just a tiny bit of command line. For example for: - Re-encoding/muxing audio and video files - Batch manipulating images (convert format, resizing etc..) - Creating previews/thumbnails - Sorting/Renaming files in a structured manner So imagine you are graphics guy in a marketing firm, and one day you are faced with the issue of needing to convert and resize like 10000 images to three different formats and resolutions. And the smallest resolution needs to have sharpening applied. And on top of that all images have to be renamed in a specific format, with time/date etc.. All that could be done in a breeze in command line, while would take much more time and effort in GUI tools.
@BoulderBro999 why? GUI isn't that resource intensive for 40 years already or so. And it's not easier for simple stuff that you need to do rarely, or when you need to interact visually with something.
another example: a guy came to the linuxmint help channel asking for help. he had a folder of emails mixed with other files, scattered over a few hundred(!) subfolders and within these subfolders the files were named all the same, like 1.eml 2.eml etc. . for some reason he wanted all those email files within one folder, maybe to search through them with some other programm, i forgot :) we tinkered arround that issue about 20-30 minutes and he endet up with a one line command that used the find command to catch all the files and at the same time renamed those files and copied them over into his target folder there are a lot gui apps that do lot of cool stuff, but there isn't one that does filter all files recursivly in a folder structure and renames and copies them over. and in that case if you try to do it step by step you run into issues, because you can't copy files of the same name into one folder, and on the other hand you cannot rename files with coninuous numbers throughout hundreds of subfolders...at least not with a gui tool and seriously he was close to do it by hand which might have taken him like 3 days of intense work or even more and now his command rushed through all those folders within seconds, and it was re-usable for later. it was a glorious moment when he tried it out and came back to give us the "it worked" reply :)
The statement that GUI apps just exist to run cli commands in the background isn't true. They may be using the same underlying libraries to execute the action but that is not the same as invoking a cli command.
GUI and terminal programs do not do the same thing (aside from scripts) as what you would be doing typing in the terminal. You would be interacting with bash(or whatever shell) which would then call a program to translate that into a system call(or various calls). Although in terms of executing another program on behalf of the user, yes that would be similar. But for example, if I wanted to list files in a directory I wouldn't call the ls program. Instead I would do a syscall. Here's an example of this with a high level language iterating through every file in a directory and writing it to standard output. for(const fs::directory_entry &entry : fs::directory_iterator(somedirectory)){ std::cout
Exactly, it's a bit weird how he gets this so wrong. In practice, it doesn't really matter (wouldn't want to be that 'what you're referring to as linux is actually... kinda person), but giving new users wrong information is a bit weird.
This is why people should also read comments instead of just clicking off of a video... You get to learn so many things, from different perspectives. Many programming languages allow you to use system calls and that is a lot more faster than spawning a new process everytime a shell command is called in the background of a gui app. DT should mention this point in his next videos or at least put this as an annotation.
He clearly lacks OS knowledge at the same time being a channel that talks about OS all the time lmao, that's ironic. But yeah, he was a manager before, he's not a developer
5:11 pretty sure it's just running some C functions, not CLI programs 5:53 no, it most likely a bunch of C code that reads one file and writes to another 6:31 no, it's not 6:51 here you're right I think yes, both GUI and CLI applications generally use the same or similar functions in the programming language they were written in and yes, sometimes certain GUI programs run CLI applications, but they generally aren't just a front end for CLI tools
Hey DT, it is my time to say a massive "Thank You!". Your videos really transformed me over the last 2-3 years. I used a regular Ubuntu in the past and I liked it OK enough, but I really upgraded my Linux skills thanks to you. I'm on Debian11 with Xmonad, Alacritty, NeoVim, I know a lot more about bash scripting, and I picked a few more related things along the way, a Planck keyboard configured with QMK, and I'm learning Rust (as a hobby). Keep up the great work!
I actually see the benefits of "just" a frontend to actual stuff happening behind the scene. When I operate the gas pedal on my car, I do not need to suck air into my cylinders, inject the right amount of fuel, get the perfect timing right to ignite that stuff etc. I am just a noob pressing the pedal expecting a reaction from the car. Well knowing that at least 20 computers, sensors and 2000 mechanic parts are taking care of the job. When the GUI offers "Install software updates" I can perfectly understand a user to click it not caring a dime about whether sudo apt update or pacman -Syu etc is executed. Many users are perfectly happy if they never ever have to "open the hood" and get below GUI.
that's a terrible analogy. cli and gui apps are both cars but one is an old volkswagen you can fix yourself and the other is a shiny tesla you need to take it to service.
Then your car breaks in the middle of nowhere and you have to rely on the kindness of strangers that took the time and effort to figure out what happens "behind the scenes".
@@rsmith31416 as is everything in life, sometimes I hire electricians, sometimes I hire plumbers or a car mechanic. There are times that sure, I can go and change, add remove a few wall outlets, or change my shower head or change a tire here and there. But sometimes it is best to leave it to other people.
@@prgnify Acquiring a minimal level of expertise with the terminal is not what I would call a career, so maybe the comparison is not completely accurate.
This is is what alias and functions are for. Returning to your car analogy. Pressing the gas pedal is an alias for opening your throttle. So you'd just make an alias called "accelerate". The difference between the shell and a gui is that now you can combine that accelerate alias with other functions and create a "drive to store and pick up groceries" command by stitching together a bunch of accelerate, brake, and turn aliases. You simply can't stitch together buttons in a gui in the same way. When you're using the shell, it's not about typing in commands all day. You think about the tasks you normally do everyday and then automate them down to a single command. The ultimate zen however is to never type a command at all. So you hook up your script to a cron daemon or event bus and have it run automatically.
I’m on Linux for 17 years now, and it’s true that I gravitated towards the terminal over the years. It just happened naturally. Now I’m in the terminal most of the time. But I think some tasks are better done in GUI than in terminal. For example Browsing, editing text in emacs (I know there are lesser editors that run in the terminal, but being able to change font sizes mid document is a thing) reading PDFs and such. I use the GUI file manager because it gives you a better idea of where you files are but I tend to use the terminal for file operations that require root access.
Looking for some files can be easier in a graphical file explorer, because of preview images of files. I think this is especially true for pictures that are named by the date they were taken.
I'd recommend you to look into ranger. It's a TUI (Terminal User Interface) file manager where you can preview images. You have to install another application and write like 2 lines in the config, but there are a lot of resources about it. Edit: Something I should probably mention: Ranger uses vim keybinds. This means you use hjkl instead of the arrow keys. This may sound weird at first, but it's so you don't have to move your hands away from your home row. Efficiency is what vim is all about.
The problem for me has always been thumbnails.. Gui is easier for photos.. Does the ranger, or any cli, offer a page('s) of thumbnails for scrolling? Or do need to highlight each file individually to view it?
@@dacritter8397 Sadly you can only preview the file you are currently on. I don't know if there is a cli tool where you can look over a lot of image files at once, but I mean you won't get punished for using a gui tool in that specific instance.
For the command line, it's more about consistency than complexity or simplicity. For instance: the use of VIM-like keybindings in a terminal based email client or file manager is more likely, whereas on GUI equivalents you may have to find workarounds to implement said bindings. I don't think I would ever recommend a command line web browser for serious content browsing... it's a cool thought, just not realistic.
It is not just for "newer to linux users" that freak out over terminals. I have met developers who would rather user GUIs even if it takes longer FAR longer than doing the same task in the terminal. ALSO NOTHING BEATS the ability to automate. If you did it on the command line...you can automate on the command line.
I have been using Linux for decades, including the terminal, and what you said is BS. Tasks in the terminal take way longer but nobody wants to admit it. Unless it's something you are doing daily, or you deliberately put effort to memorize, you never just belch out commands to do amazing things. 99 percent of the time you end up googling things you did just a month ago. Those amazing one line examples that people pretend they pulled out of their ass actually took a long time to research, develop and debug.
@@hamobu Perhaps that is your perception, and for some tasks it is even true. For others, a surprising number of others, it is not true that it is quicker to use a GUI. I would grant that it is easier to do 3d modeling on a GUI or audio editing. It is easy to underestimate the power of a tool if you look down your nose at it. Many people think using the CLI interface means typing huge arcane commands. Actually it is about chaining together smaller simpler commands and using reverse lookup a lot. Most times I am working in the terminal it is for less than a second. For many actions it is faster and simpler to press two or three keys than it is to click search right click left click open another window and drag then drop. I never said that GUIs lacked value I just said that command line is often faster. I appreciate a well written program regardless of whether it is command line or graphical. I will confess that I find it annoying when I am using a graphical program that I want to automate and I find I do not have a CLI...but that is darned rare so I am not often annoyed by it.
I can choose to build an environment that is keyboard driven, barely using a mouse, for a laptop for example. And the CLI apps are shining there. But you might want a mouse driven, barely using a keyboard, desktop experience. For home multimedia systems. Or wireless mouse, or kdeconnect oriented desktops. In that case, you might prefer GUI apps. The good thing in an open source ecosystem is the availability of such a choice. And at the end, every approach is superior, because that is your decision for your needs and goals.
I love to use the Terminal, Im always trying to find good Terminal Apps and I use them everyday like TaskWarrior, Pass, SC-IM,, ssh, wireshark and all the pentesting tools, there is something about the Linux Terminal, maybe because reminds me so much of the Applesoft BASIC from when I was a little girl
thank you for the video, i started learning web dev and was required to learn THE ubuntu Terminal while i was learning i had this feeling that the terminal is holding me back from speeding through the courses, i have a programing background plc programing so i'm used to GUI applications never used the terminal, but after watching your video that feeling of the terminal is slowing my progress is gone and i have a new conviction to master it , so thank you =D i'll be checking all your videos
Yeah, when I first started Linux I wondered this. Now I'm way more productive on a terminal interface. I prefer using it over a gui. Weird how things change.
Sometimes things like browsing files, coding, updating system, maintaining server, converting a thousand file, cd, ls, etc are better and easier to be done in CLI. But not all things is easier, and not everybody that uses linux are programmer. They probably video editors, graphic designer, 3D artists, or engineers, in which the software that they use are basically impossible to do in CLI. You can't just force them to make artwork by typing individual pixel on a terminal
there's an article called "major linux problems on the desktop" which cites this reliance on the command line as a reason linux is not getting adopted by windows users. If it were me designing a distro, I would have as many (native to distro) gui alternatives to command line tools as I can. Complete with flags and all. This means new users will be able to adopt their own workflows right out of the box. A subfeature which would take this feature to the next level would be a modular system which would pipe the output of one of these apps into the input of another, just like the terminal. It would not only offer a linux alternative to many useful windows tools, but it would also create limitless possibilites with these tools, ready to be adopted by new users. There are many problems like this one that need to be fixed so the linux community can grow past the 1% market share on the desktop that it currently has. Also, there seems to be an adverse reaction to 1) criticism of any fundamental linux flaw and 2) direct comparisons with Windows. This needs to stop if we want to distribute FOSS to the common person, and not just fellow devs. After all, it's a movement, not a hobby.
I was the opposite. Started using linux in 2007 with RHEL 3. The previous admin would build a server with gnome and do all of the setup there. I did that for a very brief time but then didn't like it. Learned how to do things (subscription registration, network settings, etc.) from the command line and quickly stopped building servers with a GUI. I get this mostly for running linux on your desktop as a daily driver, but for a server, building a system with no GUI and seeing memory usage at less than 200mb on a fresh install is a beautiful thing :)
I just wanted to say that i am very thankful that your channel exists! You were the reason i switched to Linux and its the best PC experience ive ever had! Keep up the very great work!
I think that Windows uses switching to Linux feel more comfortable with GUI because it's familiar. Like you said, the CLI can be daunting. I had the opposite experience; I loved experimenting, and still do, with the terminal and I still learn new things after many years of using Linux.
Which I find interesting since Windows doesn't even do a great job with their GUI. If you were coming from something more elegant like Ubuntu or maybe even MacOS, I would understand, but Windows?
@@hil449 huh? I’m saying windows shouldn’t improve, not that the world should switch to Linux. The most widely used operating system should not have two different settings apps (with completely different design languages) to accomplish similar tasks
I kept forgetting stuff about Linux, so I forced myself to live in the terminal by learning vim, some basic commands and created a adopted a workflow in the terminal. Super helpful, and it helped me at work.
(I am a new linux user)i use the terminal because 1. it is faster than using a gui that is really slow 2. Lighter than having a gui opened 3. It is more powerfull
My first encounter with computers for the first couple years I dealt with them with strictly command line. I am definitely an advocate for command line and your description clarifies the advantages in a very accessible way.
Even if someone usually uses a GUI day to day, knowing how to operate your terminal is great for when things break. That terminal is your toolbox for all things computer. And no matter which distro you pick, that terminal is always there and always does things the same way (package managers notwithstanding). So consistent. So reliable! And makes distro hopping a less intimidating affair too!
To be more precise, the GUI is not an interface for the command line tools. Both the GUI and CLI tools are programs that interface with the OS (ultimately via syscalls) to access the filesystem and do operations on it. For example copying a directory in the GUI would not call something like `cp -r` under the hood; more likely both cp and the GUI use stuff like readdir(3) to read the source directory files, open(2), read(2), write(2) to copy files, etc.
One big advantage of using keyboard driven tools like the command-line, Vim, or Emacs, is that you develop muscle memory. You perform many tasks without thinking, because your fingers just moves automatically. It's just much more efficient. Like playing an instrument. Rodent-driven activities is nice sometimes, but it can never be performed via muscle memory.
Apart from functionality, power and all that, I think there's also a "relational" difference between the CLI and GUI. The CLI is like "talking" with your system. You're communicating in something akin to human language. You ask it questions and it answers. Or you kindly request that it do something and it tries to carry out your request the best it can. The GUI, on the other hand, treats your system like an "appliance". You press buttons, turn knobs, and pull levers like a refrigerator or stove. Your system is an inanimate machine. It's mechanical.
I'm a big fan of convenience, and also of retro games, and when I first got my PC running on Linux, I spent a while setting up most of my games to run on it. On the one hand, I did create a whole bunch of GUI applications for my games (especially the ones like for DOSBox, where the command line would take a long time to enter.) On the other hand, Terminal was incredibly helpful when doing that, because I could easily use it to test the command line that I wanted to turn into an application. If it ran in terminal, it would run in an application. If not, I could re-examine it to figure out what went wrong. It's doubtful I would have been able to get some of my games running so smoothly, without using Terminal, and it's doubtful that I would put in the effort to launch some of my games without GUI. Edit: I've just learned more about the bashrc, and am eager to try running some of my dosbox games using custom commands instead of apps.
A great advantage of the terminal is help & support. I set my brother up with Linux Mint after he had problems installing Windows. And helping him install programs couldn't have been easier. I could've helped him navigate the software center, told him that the search bar was somewhere in the corner, and help him download it that way. But instead, I just copied and pasted commands and messaged them to him, and he copied and pasted the commands into the terminal. Terminals are the most universal way to get support questions answered on Linux.
The problem with that is that with GUIs he would probably learn how to download programs in the same day and be independent and if he only copy pastes commands he might be dependent on you, cli has a steeper curve
:) The beauty of GNU/Linuix is you usually have a choice - most people use both. I notice even Grandma & Grandpa open a terminal on occasion. With only ~1.5% of the desktops on this planet actually using a Linux operating system, your preaching to a very small choir, who probably already demonstrated their passion by having the Linux operating system installed on a hard drive.
also it's mostly due to fragmentation of Linux desktops. terminal offers a consistent means to do something when hopping between desktops (or when no desktop even exist)
3:24 May be it is faster to access the information with terminal, but the visual appearence of the information on the the terminal is intimidating, because it is only text there, and nothing else.
speaking about comandline. Not only on SO users give comand hints. Most things on windows suport forum use win powershell to collect data or fix problems
I think it depends on what you do with your distro. For those involved in scripting, advanced system organisation, etc, it seems natural and fitting to use the same approach for system management, but for those who don't really interact with the parts of the system that benefit from command-line use, I have never come across good arguments on why they should learn and use terminal. I certainly understand the _aesthetics_ of command line operation of an OS - the nerdy, vintage aesthetic of doing it, which fits the FOSS community ideas so well. That aesthetic has been the reason I have been trying to learn basic things like Polybar/WM installation, and getting back that urge to accomplish it after every time I fail at it, in the absence of a coherent, step-by-step, continuous guides for complete newbs on the subject. But for practical reasons, I think many users will never come across the use scenarios where command-line use would benefit them more than GUI use.
two exceptions for me are for gaming and recording music. For my physics thinking alogirthmically is another advantage of keeping it to the command line as it suits the mindset.
I remember when I was a kid, my older brother taught me MSDOS inside and out. I was so super comfortable with it, I was building my own batch files to make things quicker and easier, and knew the commands, as well as the layout of my filesystem like the back of my hand. Then Windows 95 came out. I was... so lost. Luckily, Win95 gave you a DOS shell, which I constantly used for everything. It took me a solid year or so, before I became comfortable with the GUI. So it's interesting to see this difficulty happen in the reverse nowadays with Linux. If you can't imagine yourself being more comfortable typing in commands on a text interface, vs clicking icons, trust me, you'll soon understand it once you decide to delve into it.
My first introduction to Linux was via the command line (a few years back). I wanted to run a media server and was forced into the deep end but glad I did! Now I feel more comfortable in the CLI than most Linux GUI’s 😂 like with anything, you need a project your interested in and then the learning of Linux comes naturally over time. I find working within the CLI you have to have a much better mental image of where everything is and also remember all of your favourite tools etc.
You start with the shell after you have seen wysiwig problems letting you down. After learning that you start with scripting and programming. But then what is programming and scripting in most cases. A graphical front end for your command program or script.
Two months ago, I would have fought you tooth and nail about the GUI. But you are right. Now I use the CLI almost exclusively. Tmux is almost always on, I even use it on my android tablet with open ssh so I can remotely shut down my son's computer. Try doing that with a GUI. Even if you can, I do it with a sign in and one line. I was afraid of the command line, but I was started on MS-DOS and Linux CLI is very familiar feeling, and that helped me acclimate.
Personally I disagree with the notion that the advanced user will eventually come to use the terminal almost exclusively I think it's very subjective. I can use a terminal and have no problems popping one up when I need it, but I can't match the real, tangible comfort and speed I have with GUIs. I can cd my way through my files but then I'm constantly ls-ing to even figure out where I am and what I'm doing, what's in the folder, where I need to go, I just get confused and lost if I can't see a visual representation of what I'm doing. And why would I use pacman/pamac-cli when pamac lets me search a word and scroll through a list of all the results, click on one and read any info I need, read the AUR page of the package so I can see if there's anything I need to know, update in a couple of clicks etc.? What good does starting an update or an installation faster do when I know I'm gonna have to wait a few minutes to an hour for it to finish the operation anyways? People will say that they ARE faster with cd, and they ARE more comfortable with pacman etc., and that's good. My point is that everyone should use whatever they like most. I just disagree with thinking that everyone will eventually end up in terminals all day given experience Also on the topic of terminal-exclusive advanced commands, I think those commands should be used and nobody should feel afraid to do so just because they prefer GUIs. I'm not a GUI elitist, I just think people need to use the tools they have in the way they're more efficient and comfortable in
12:18 I think in cases like this distributions like Fedora Silverblue can recover from it rather easily. If I'm not mistaken in the boot menu you have the different snapshots that you can boot from and if one doesn't work then you go back to the previous. That's neat. But not everyone is running Silverblue so, there's that.
I agree. I would add that when using the terminal you're actually conversing with your machine in a language and that's the essence of what makes it so powerful. Once you learn the language, anything that can be described in that language can be done.
Not that I ever knew it competently, but the little I've done with terminal reminds me of the good old days of MS-DOS. Does terminal do for LInux what MS-DOS did for pre-Windows PCs?
Not all gui apps are fronts to shells... most programming languages provide the developer an option to use system calls. Thats faster than using shell for everything.
I (still) just use GUI most of the time (when I need to use Terminal, usually copy/paste). I'm currently using Pop!_OS, because of window tiling (I'm using it for studies and I need to multitask to watch the video, take notes, consult websites, etc). 21:36 These constant changes in the graphics part are exactly what made me give up on Windows. I knew many shortcuts and functions, but in the last versions I realized the following: they made the system more "friendly" (colorful, visual) for lay users and, with that, left a lot of obstacles for intermediate and advanced users, who already knew the system well.
GUI applications almost certainty won't run the actually command line equivalent, copying a file in a file manager will not run a cp command in most cases.
One of my certifications back in the day was SCO Unix. A lot of doctors offices had SCO to run their practice management. Two things happened. One SCO went out of business and two electronic health records became mandatory in the US. SCO didn't have a GUI. But all the new EHR software included practice management software. So we migrated a lot of doctors over to windows based EHR/PM software. Well they all hated it because they could do it so much faster on the old SCO software. They knew every shortcut and could fly through the menus. Not a one was happy with the new system.
12:17 Updating Arch back then was like crossing fingers but Now I do it with confidence I have BTRFS for rescue I do snapshot my whole root and roll back if something goes wrong. In that way stability is guaranteed and if not atleast I can save my data
I am not a Power User and expert or programmer. I am the typical layman. And for this a GUI is really sufficient. Of course, if you have to dive deeper into Linux system you have to use the terminal. Because it is the structure of Linux to have config text files for each and everything. And now I like to know a little bit more of all this stuff.
The thing is that with Linux terminal you have to be practically some kind of semi-programmer with savant memory. I have been using Linux for a while and occasionally terminal has to be used (because of lack of gui option) but I don't remember other than few basic commands and practically always have to google how to do something. And even then I often don't understand what stuff in instructed command line means, I just copy-paste and hope for the best. Recently I managed to mess up some package dependencies and even that proved impossible for me to fix by following instructions. Thankfully there was still working GUI and timeshift I could use to revert to previous system state. I guess command line is not for everyone.
I need to use a GUI file manager because I process a lot of visual media file (images, videos, etc.) and being able to see thumbnails is an absolute must for my workflow. I know some terminal-based file managers are capable of rendering previews for individual files, but as far as I know, none have thumbnail functionality. I'd much prefer to work in the terminal, so if there's a solution to this out there somewhere, I would love to know.
I am somewhere in the middle I am not scared of the terminal and have no issues using it if I need/want to (like I don't use a GUI package manager tool at all), then there are something's I just rather use a GUI app for. I do however think that the people that preach using the terminal for everything is a big turnoff for Linux for people who aren't tech-savvy people, and it is why you get the people who say "Linux is hard" because they are not shown that there is a GUI way of doing whatever it is they want to do. They are instead told they have to remember these terminal commands, or they should just go back to letting windows spy on you, which is not the case.
Tbf this guy opened by saying its for intermediate to advanced users. Imo you use the cmd line if you want more power out of your machine. If you just want something that works very similar to windows but isnt windows, you pretty much dont need to touch it. But if you want to relearn a different way to do most of what you do on your comp, you should invest some time in learning the cli
@@Anonymous4045 I am not saying he is forcing people to use the CLI or doing the gatekeeping I am just saying this happens a lot where people will talk down to people who prefer to use a GUI or try to convince them they shouldn't use Linux if they don't want to use the CLI.
Thing is, for most people learning or using command line is most likely going to MUCH slower and more inefficient than well designed GUI. By this I mean overall, I mean sure, you can probably shave off some seconds or even minutes from tasks as expereinced terminal user, but it really means nothing if that task is only done once in a while. I mean sure, terminal can be faster for experienced user, but you need to become on first, you need to use terminal enough that stuff doesnt just slip from your mind and finally you need to do task enough that it actually matters. Or you could juse get app that make it even more efficient. You are only going to benefit from terminal if you do some specific tasks a lot. Most people use OS to to run programs and do stuff with them, they don't use OS itself as tool, it's platfrom. Overall, if you do type of stuff that needs or would benefit from terminal, some kind of system management, you are going to end up using it. Otherwise it's most likely waste of time.
I bought a raspberry pi and to start with I loaded the default GUI OS and I was lost until I opened the terminal and could manipulate things I then discovered that there was a "lite" version and that it was more to my taste because virtually the only gui application I use is a web browser but I have vimium running so it is keyboard driven. I do virtually everything with the keyboard and commandline activities
Ironically, I've written C++ programs wrapping a GUI around some terminal applications (and rather sophisticated commands as well, gotta love system();). Of course, I have even written console programs for cli programs, just to simplify what I had to remember.
There's one thing I prefer gui for which is file manipulation in deeply nested directories. If you have to move a file in the terminal, trying to remember paths is a nightmare, so I usually use a gui tree if it's not simple copies or moves in really close relative directories or base directories.
@@nemanjabojovic8004 That's true, I actually just installed tree earlier today coincidentally. However, it doesn't help me if I still have to type long path names. even with autocomplete, it's more efficient for me to drag and drop sometimes, so that's what I do. :D
I came from DOS to Windows to Linux (with some Macintosh thrown in for good measure) and I think a big advantage is speed and being closer to the hardware without extraction which also reduces the chance of things crashing and losing data. Just my opinion of course. Also I feel that when you get good at CLI, GUI slows you down IMO 🙂
Mr. Taylor, I had to downsize my life and only have an old crappy Chromebook. I have Debian 11. 3 running and using the Beta Version of ChromeOS ( 102 ). I have the terminal app pinned to the dock and it is usable for doing all kinds of stuff. I would recommend people at least try doing this, to see how easy it is to take Linux with you where ever you go. My Chromebook ( the ACER C315 ) can be found refurbished or used really cheap online. But I would bet most Linux users would want better specs than what my model offers. I would prefer to have a laptop running just Linux, but I have not got around to that. COVID hit me really hard, and not sure if I am out of the woods yet, as I have not been well for five months.
I updated a OpenSUSE VM the other night and it broke so hard that I could not even get a TTY that I could use. So much for a command line rescue there.
Good one. For me, the main reasons I often favor terminal: 1 - Repeatability of commands 1b - Thus possible to script/create shortcuts for common commands or even groups of commands 2 - Extensibility - command line stuff typically has a whole range of options/arguments for more precise ops. Graphical stuff tends to be limited to common use case. Indeed, building UI takes a lot of time, and implement ALL the options/commands of a terminal app takes a lot of time. Not worth it if it's used only by a few ppl not too often. 3 - Portability - if I'm working on a VM, in a Docker container or remote server or whatever, commands I know & use locally are still available 90% of the time on any linux distro without installs 4 - Combination - can't really combine UI stuff, but easy to do with cmd lines. I'm a programmer so obv lots of incentive. Working for a new company that is kinda windows-easy. I'm trying to avoid it as best I can. Actually terminal stuff is one of the main reason I hate Windows. It's just not designed to be terminal-driven.
A GUI for file management, today people might call it a TUI, was the first thing wrote when I got my first system back in the late 70s. I also usually script many terminal commands into a more GUI/TUI like environment now using tools like yad, rofi or denunciation. For development, especially human interface development, I was so happy in the late 80s when I found the first decent program generators. The main reasons I like the command line with the power of bash is that I can so easily script a GUI-like tool more customized to me. After designing my editor, a project I undertook due to vi clunking, next projects were about turning most systems management needs into TUIS.
I remember running full graphic games from the terminal in DOS back when I was like 5. :) It’s just a matter of learning the syntax and, for me, finding a way to narrow LS results cuz if I don’t? Then my eyes cross 🤪
I used bash forever. Then landed on Manjaro and it has zsh. f it, I'll try it. Been on zsh for a while and I'm left with one question. Aside from how the prompt looks, what exactly is the difference? What's the pros and cons of each?
There are certain things that I think you cannot do with the terminal, for example oriented for designers previsualize all the images of a parent folder including the subfolders images and out of the subfolders. Because in the terminal the output is always plain text.
Some things are just easier: finding a certain message thats only in one file and theres possibly thousands of files. My bashrc contains a script that randomly executes one of DT's colorscripts but one of them wasnt working due to the lack of a XResources file but thanks to grep it was as easy as " grep -H "Xresources" * "
Rather new to Linux here and brand new to Arch based Linux distro's, can someone please explain the difference between using the commands "sudo pacman -Syu" and the "sudo update && upgrade" commands? Are they the same essentially? For me right now im using Garuda Dragonized, not that I think it matters. Thanks for any enlightenment head of time...! ;)
Man, your examples are great, but the part about file managers is a bit misconcepting...they do not run ls or cd! cd is a builtin shell command at all.. The are some simple linux system calls like readdir to see the files inside. Anyway other GUI apps really do rely on their CLIs.
The terminal/command line is your friend. It only seems intimidating because you're not used to it. Why use a convoluted GUI when a simple command or two can get the task done? In my opinion, becoming familiar with using the command line is one of the best things using Linux does for you. :)
One more example: when i had to clean dupes files in my phone, i searched for gui application, that were not completely safe, then i installed tmux from a open source repo, finally i cleaned unwanted files with fdupes command, so i don t wonder how application world, it simply works the same in linux
Command lines began to shine for me when I learned how to write custom commands/scripts for simple stuff, chain commands together and stuff like that. Since my short-term memory is really, really bad, one of the best things I've ever done was to chain "cd $path && ls -a" in a custom function.
Use the cli because you can save it in a log, run scripts that can do repeatable actions, do those actions of other computers, document your enviroment. Your root user uses them for safety, typos can really make a mess quick.
I use SSH when accessing my raspberry pi. The terminal is great for me especially when Im accessing my raspberry pi headless. For headless operations is great. When accessing websites its getting into the heart of them. To me I use either the terminal or the web browser. VNC takes too long while terminal is much faster. GUI takes up so much time.
I learned a little bit of Bash, and recently my code editor told me to open my html file in the terminal. when I ran the cat command on my HTML file, it only spit back the contents of my HTML file. It did not open it in my browser. I had to go to my file manager, and use my mouse to click the HTML file in order to open it in the browser. Is there a command in bash that will actually open a file?
As far as I know (though I am a newbie), you need to type the name of the program you want to open the file with. cat prints the contents as text, because that's what cat is made to do. If you want to open it in Firefox, you type firefox instead. I'm writing this at midnight on limited sleep so apologies if I misunderstood the question or if I phrased things awkwardly.
I really like this video and I hope it gets lots of exposure. Being IT literate, I bounce back and forth between CLI and GUI. It all depends what I am doing. I think the issue is exposure. People aren't taught terminal, or CLI unless in a class involving administration. From what I've seen, it's even less shown unless in a Linux class for the terminal. None of this was meant to be just a form of IT elite (I laugh saying it). But that's a perception I get talking to people. More exposure and spreading this information is a good thing in my opinion. Need to demystify the terminal.
So for years I rejected Windows and used DOS. While I did had Windows 98, the first Windows I liked and became comfortable with was Windows XP. I went from there to Windows 8 a short time then I really liked Windows 10. But it looks like my first attraction of DOS was right all along. Btw thanks. I like the way you bring things forth without being cocky.
I don't know, dude... You can have a speedy keyboard-driven interface without it being mostly terminal-based. And it'd often be way faster that way because it'd just be shortcuts rather than typing whole commands out. I started using the terminal more when I discovered that big enterprise Java stuff that can a pain to configure in IDEs can often compile and run in just a few terminal commands. All the configuration is already done, but with an IDE you pretty much have to do it all over again.
When CS:S (a game) came out, I wanted to run my own server. This taught me how to use the command line exclusively. You always need a useful use case so that you are willing to learn new things and also spend the time needed for it.
But I'm also the kind of person who would rather spend 15 minutes programming to automate something that takes 5 minutes of clicking orgy in a GUI. I hate tasks that are repetitive and they just get automated away so I don't have to worry about them anymore.
counter strike source?
that kinda takes me back
@@RenderingUser Same here man
i still have my cs1.6 server up
@@RenderingUser yes, Counter-Strike Source
true, clicking on a gui is painful. Especially when you have to do that everyday or on multiple machines
I come from the generation where there was _ONLY_ a command-line interface. And for forty years I've been totally happy with that. However, occasionally, GUI interfaces are nice 🤗
Same here. I miss those days.
Those were nice days.
Yeah, when a terminal was literally a terminal. I remember those days very fondly, but I wouldn't go back in time other than to once again flirt with that cutie who granted terminal time.
i was gonna say boomer but you saved yourself in the end
I agree. Based comment
Actually, there are things that need to be done in a UI that I can't really imagine how you'd do in a command line. In particular, artwork, design, 3D modelling, etc. Think Blender, Inkscape, or the GIMP. If you're a graphics designer for a marketing firm - you should probably be spending as little time as possible in a command line, because that's not time being spent designing graphics.
I think a lot of command line warriors tend to miss an important point: Tasks like moving files around and configuring the machine and essentially "IT stuff" are a very tiny part of the average person's workflow. These are things most professions don't need to be done on a regular basis. But this video seems to give the air that all of these things are huge general productivity things.
Sure, if your job is IT administrator - the command line is your life, especially on Linux. But what I think is happening is a lot of new Linux users aren't expecting to be IT, and are essentially being told that they're really IT when they just want to get back to their real job, which might be something like graphical design.
Linux is fine for both kinds of people
True some things need or is better done in a GUI. But I think even a user that does photo/artistic/design line of work could benefit from learning just a tiny bit of command line.
For example for:
- Re-encoding/muxing audio and video files
- Batch manipulating images (convert format, resizing etc..)
- Creating previews/thumbnails
- Sorting/Renaming files in a structured manner
So imagine you are graphics guy in a marketing firm, and one day you are faced with the issue of needing to convert and resize like 10000 images to three different formats and resolutions. And the smallest resolution needs to have sharpening applied. And on top of that all images have to be renamed in a specific format, with time/date etc.. All that could be done in a breeze in command line, while would take much more time and effort in GUI tools.
Can't imagine drawing by manipulating dots and creating gradient color with a damn CLI
@@raviolimavioli You can write SVGs from scratch in vim. Bam, graphic design at the command line.
@BoulderBro999 why? GUI isn't that resource intensive for 40 years already or so. And it's not easier for simple stuff that you need to do rarely, or when you need to interact visually with something.
another example:
a guy came to the linuxmint help channel asking for help. he had a folder of emails mixed with other files, scattered over a few hundred(!) subfolders and within these subfolders the files were named all the same, like 1.eml 2.eml etc. . for some reason he wanted all those email files within one folder, maybe to search through them with some other programm, i forgot :)
we tinkered arround that issue about 20-30 minutes and he endet up with a one line command that used the find command to catch all the files and at the same time renamed those files and copied them over into his target folder
there are a lot gui apps that do lot of cool stuff, but there isn't one that does filter all files recursivly in a folder structure and renames and copies them over. and in that case if you try to do it step by step you run into issues, because you can't copy files of the same name into one folder, and on the other hand you cannot rename files with coninuous numbers throughout hundreds of subfolders...at least not with a gui tool
and seriously he was close to do it by hand which might have taken him like 3 days of intense work or even more and now his command rushed through all those folders within seconds, and it was re-usable for later.
it was a glorious moment when he tried it out and came back to give us the "it worked" reply :)
The statement that GUI apps just exist to run cli commands in the background isn't true. They may be using the same underlying libraries to execute the action but that is not the same as invoking a cli command.
GUI and terminal programs do not do the same thing (aside from scripts) as what you would be doing typing in the terminal. You would be interacting with bash(or whatever shell) which would then call a program to translate that into a system call(or various calls). Although in terms of executing another program on behalf of the user, yes that would be similar. But for example, if I wanted to list files in a directory I wouldn't call the ls program. Instead I would do a syscall. Here's an example of this with a high level language iterating through every file in a directory and writing it to standard output.
for(const fs::directory_entry &entry : fs::directory_iterator(somedirectory)){
std::cout
Exactly, it's a bit weird how he gets this so wrong. In practice, it doesn't really matter (wouldn't want to be that 'what you're referring to as linux is actually... kinda person), but giving new users wrong information is a bit weird.
This is why people should also read comments instead of just clicking off of a video... You get to learn so many things, from different perspectives.
Many programming languages allow you to use system calls and that is a lot more faster than spawning a new process everytime a shell command is called in the background of a gui app.
DT should mention this point in his next videos or at least put this as an annotation.
However, there are some programs that actually use command line programs as backends.
Exactly, I started watching this video and 5 mins in he says a file explorer is running cd in the background and I am like this sounds wrong
He clearly lacks OS knowledge at the same time being a channel that talks about OS all the time lmao, that's ironic. But yeah, he was a manager before, he's not a developer
5:11 pretty sure it's just running some C functions, not CLI programs
5:53 no, it most likely a bunch of C code that reads one file and writes to another
6:31 no, it's not
6:51 here you're right I think
yes, both GUI and CLI applications generally use the same or similar functions in the programming language they were written in and yes, sometimes certain GUI programs run CLI applications, but they generally aren't just a front end for CLI tools
Hey DT, it is my time to say a massive "Thank You!". Your videos really transformed me over the last 2-3 years. I used a regular Ubuntu in the past and I liked it OK enough, but I really upgraded my Linux skills thanks to you. I'm on Debian11 with Xmonad, Alacritty, NeoVim, I know a lot more about bash scripting, and I picked a few more related things along the way, a Planck keyboard configured with QMK, and I'm learning Rust (as a hobby). Keep up the great work!
did you also get knee socks? roflmao
I actually see the benefits of "just" a frontend to actual stuff happening behind the scene.
When I operate the gas pedal on my car, I do not need to suck air into my cylinders, inject the right amount of fuel, get the perfect timing right to ignite that stuff etc. I am just a noob pressing the pedal expecting a reaction from the car. Well knowing that at least 20 computers, sensors and 2000 mechanic parts are taking care of the job.
When the GUI offers "Install software updates" I can perfectly understand a user to click it not caring a dime about whether sudo apt update or pacman -Syu etc is executed.
Many users are perfectly happy if they never ever have to "open the hood" and get below GUI.
that's a terrible analogy. cli and gui apps are both cars but one is an old volkswagen you can fix yourself and the other is a shiny tesla you need to take it to service.
Then your car breaks in the middle of nowhere and you have to rely on the kindness of strangers that took the time and effort to figure out what happens "behind the scenes".
@@rsmith31416 as is everything in life, sometimes I hire electricians, sometimes I hire plumbers or a car mechanic. There are times that sure, I can go and change, add remove a few wall outlets, or change my shower head or change a tire here and there. But sometimes it is best to leave it to other people.
@@prgnify Acquiring a minimal level of expertise with the terminal is not what I would call a career, so maybe the comparison is not completely accurate.
This is is what alias and functions are for.
Returning to your car analogy. Pressing the gas pedal is an alias for opening your throttle. So you'd just make an alias called "accelerate". The difference between the shell and a gui is that now you can combine that accelerate alias with other functions and create a "drive to store and pick up groceries" command by stitching together a bunch of accelerate, brake, and turn aliases.
You simply can't stitch together buttons in a gui in the same way.
When you're using the shell, it's not about typing in commands all day. You think about the tasks you normally do everyday and then automate them down to a single command. The ultimate zen however is to never type a command at all. So you hook up your script to a cron daemon or event bus and have it run automatically.
I’m on Linux for 17 years now, and it’s true that I gravitated towards the terminal over the years. It just happened naturally. Now I’m in the terminal most of the time.
But I think some tasks are better done in GUI than in terminal. For example Browsing, editing text in emacs (I know there are lesser editors that run in the terminal, but being able to change font sizes mid document is a thing) reading PDFs and such. I use the GUI file manager because it gives you a better idea of where you files are but I tend to use the terminal for file operations that require root access.
Looking for some files can be easier in a graphical file explorer, because of preview images of files. I think this is especially true for pictures that are named by the date they were taken.
I'd recommend you to look into ranger. It's a TUI (Terminal User Interface) file manager where you can preview images. You have to install another application and write like 2 lines in the config, but there are a lot of resources about it.
Edit: Something I should probably mention: Ranger uses vim keybinds. This means you use hjkl instead of the arrow keys. This may sound weird at first, but it's so you don't have to move your hands away from your home row. Efficiency is what vim is all about.
The problem for me has always been thumbnails.. Gui is easier for photos.. Does the ranger, or any cli, offer a page('s) of thumbnails for scrolling? Or do need to highlight each file individually to view it?
@@dacritter8397 Sadly you can only preview the file you are currently on. I don't know if there is a cli tool where you can look over a lot of image files at once, but I mean you won't get punished for using a gui tool in that specific instance.
Personally this is never an issue for me. Just name the file something other than like "image1.png" and you should be good
@@firor284 ahh, no biggie. Thanks for responding. As you allude, some tasks just require a window.
You're great.. My favorite TH-cam Linux source! Newish to the game and appreciate your take on stuff and info on systems.
Welcome aboard! :D
For the command line, it's more about consistency than complexity or simplicity. For instance: the use of VIM-like keybindings in a terminal based email client or file manager is more likely, whereas on GUI equivalents you may have to find workarounds to implement said bindings. I don't think I would ever recommend a command line web browser for serious content browsing... it's a cool thought, just not realistic.
Can you access Gmail with these cli email clients?
It is not just for "newer to linux users" that freak out over terminals. I have met developers who would rather user GUIs even if it takes longer FAR longer than doing the same task in the terminal. ALSO NOTHING BEATS the ability to automate. If you did it on the command line...you can automate on the command line.
I have been using Linux for decades, including the terminal, and what you said is BS. Tasks in the terminal take way longer but nobody wants to admit it. Unless it's something you are doing daily, or you deliberately put effort to memorize, you never just belch out commands to do amazing things. 99 percent of the time you end up googling things you did just a month ago. Those amazing one line examples that people pretend they pulled out of their ass actually took a long time to research, develop and debug.
@@hamobu Perhaps that is your perception, and for some tasks it is even true. For others, a surprising number of others, it is not true that it is quicker to use a GUI. I would grant that it is easier to do 3d modeling on a GUI or audio editing. It is easy to underestimate the power of a tool if you look down your nose at it. Many people think using the CLI interface means typing huge arcane commands. Actually it is about chaining together smaller simpler commands and using reverse lookup a lot. Most times I am working in the terminal it is for less than a second. For many actions it is faster and simpler to press two or three keys than it is to click search right click left click open another window and drag then drop. I never said that GUIs lacked value I just said that command line is often faster. I appreciate a well written program regardless of whether it is command line or graphical. I will confess that I find it annoying when I am using a graphical program that I want to automate and I find I do not have a CLI...but that is darned rare so I am not often annoyed by it.
I used to be scared of the terminal but learning some basic commands you will love it.
TUIs and CLI programs are definetly one of the most strongest on linux. Specially on how volatile guis can be when changing distros and what not
like linus deleting his desktop with a apt bug
@@scudsturm1 apt is a disgrace indeed
@@scudsturm1 still better than windows.
@@xynyde0 depends on how much u are willing to tinker with it so it "works"
Exactly. CLI/TUI programs work and look the same regardless of distro or DE. If you want consistency in your Linux workflow it's in the terminal.
I can choose to build an environment that is keyboard driven, barely using a mouse, for a laptop for example. And the CLI apps are shining there. But you might want a mouse driven, barely using a keyboard, desktop experience. For home multimedia systems. Or wireless mouse, or kdeconnect oriented desktops. In that case, you might prefer GUI apps. The good thing in an open source ecosystem is the availability of such a choice. And at the end, every approach is superior, because that is your decision for your needs and goals.
I love to use the Terminal, Im always trying to find good Terminal Apps and I use them everyday like TaskWarrior, Pass, SC-IM,, ssh, wireshark and all the pentesting tools, there is something about the Linux Terminal, maybe because reminds me so much of the Applesoft BASIC from when I was a little girl
thank you for the video, i started learning web dev and was required to learn THE ubuntu Terminal while i was learning i had this feeling that the terminal is holding me back from speeding through the courses, i have a programing background plc programing so i'm used to GUI applications never used the terminal, but after watching your video that feeling of the terminal is slowing my progress is gone and i have a new conviction to master it , so thank you =D i'll be checking all your videos
Yeah, when I first started Linux I wondered this. Now I'm way more productive on a terminal interface. I prefer using it over a gui. Weird how things change.
Sometimes things like browsing files, coding, updating system, maintaining server, converting a thousand file, cd, ls, etc are better and easier to be done in CLI.
But not all things is easier, and not everybody that uses linux are programmer. They probably video editors, graphic designer, 3D artists, or engineers, in which the software that they use are basically impossible to do in CLI.
You can't just force them to make artwork by typing individual pixel on a terminal
there's an article called "major linux problems on the desktop" which cites this reliance on the command line as a reason linux is not getting adopted by windows users. If it were me designing a distro, I would have as many (native to distro) gui alternatives to command line tools as I can. Complete with flags and all. This means new users will be able to adopt their own workflows right out of the box. A subfeature which would take this feature to the next level would be a modular system which would pipe the output of one of these apps into the input of another, just like the terminal. It would not only offer a linux alternative to many useful windows tools, but it would also create limitless possibilites with these tools, ready to be adopted by new users. There are many problems like this one that need to be fixed so the linux community can grow past the 1% market share on the desktop that it currently has. Also, there seems to be an adverse reaction to 1) criticism of any fundamental linux flaw and 2) direct comparisons with Windows. This needs to stop if we want to distribute FOSS to the common person, and not just fellow devs. After all, it's a movement, not a hobby.
I was the opposite. Started using linux in 2007 with RHEL 3. The previous admin would build a server with gnome and do all of the setup there. I did that for a very brief time but then didn't like it. Learned how to do things (subscription registration, network settings, etc.) from the command line and quickly stopped building servers with a GUI. I get this mostly for running linux on your desktop as a daily driver, but for a server, building a system with no GUI and seeing memory usage at less than 200mb on a fresh install is a beautiful thing :)
I just wanted to say that i am very thankful that your channel exists! You were the reason i switched to Linux and its the best PC experience ive ever had! Keep up the very great work!
I use the terminal all the time for the sole purpose of Rick rolling passers-by.
Great explanation. I have never heard a better argument for learning terminal. I became a terminal addict within weeks of moving from windows to linux
I think that Windows uses switching to Linux feel more comfortable with GUI because it's familiar. Like you said, the CLI can be daunting. I had the opposite experience; I loved experimenting, and still do, with the terminal and I still learn new things after many years of using Linux.
Which I find interesting since Windows doesn't even do a great job with their GUI. If you were coming from something more elegant like Ubuntu or maybe even MacOS, I would understand, but Windows?
@@branpod 90% of the planet uses windows dude, are you that self centered?
@@hil449 huh? I’m saying windows shouldn’t improve, not that the world should switch to Linux. The most widely used operating system should not have two different settings apps (with completely different design languages) to accomplish similar tasks
@@hil449 also, this is a Linux channel
Just switched over to spotify-tui recently, and I love it. I want to switch over everything to to terminal and tui as much as possible over time
Thought I was the only one going through that
I kept forgetting stuff about Linux, so I forced myself to live in the terminal by learning vim, some basic commands and created a adopted a workflow in the terminal. Super helpful, and it helped me at work.
(I am a new linux user)i use the terminal because
1. it is faster than using a gui that is really slow
2. Lighter than having a gui opened
3. It is more powerfull
My first encounter with computers for the first couple years I dealt with them with strictly command line. I am definitely an advocate for command line and your description clarifies the advantages in a very accessible way.
Wow you really do explain things to my level. You completely got rid of my fear of the command line! Thank you.
Another great video DT. Thanks!
Even if someone usually uses a GUI day to day, knowing how to operate your terminal is great for when things break. That terminal is your toolbox for all things computer. And no matter which distro you pick, that terminal is always there and always does things the same way (package managers notwithstanding). So consistent. So reliable! And makes distro hopping a less intimidating affair too!
To be more precise, the GUI is not an interface for the command line tools. Both the GUI and CLI tools are programs that interface with the OS (ultimately via syscalls) to access the filesystem and do operations on it. For example copying a directory in the GUI would not call something like `cp -r` under the hood; more likely both cp and the GUI use stuff like readdir(3) to read the source directory files, open(2), read(2), write(2) to copy files, etc.
If you want to create Containers, like for Docker, you NEED to script installation from command line in the Dockerfile.
One big advantage of using keyboard driven tools like the command-line, Vim, or Emacs, is that you develop muscle memory. You perform many tasks without thinking, because your fingers just moves automatically. It's just much more efficient. Like playing an instrument. Rodent-driven activities is nice sometimes, but it can never be performed via muscle memory.
THE BEST explanation on the topic I've seen! Thank you!
Apart from functionality, power and all that, I think there's also a "relational" difference between the CLI and GUI. The CLI is like "talking" with your system. You're communicating in something akin to human language. You ask it questions and it answers. Or you kindly request that it do something and it tries to carry out your request the best it can.
The GUI, on the other hand, treats your system like an "appliance". You press buttons, turn knobs, and pull levers like a refrigerator or stove. Your system is an inanimate machine. It's mechanical.
I'm a big fan of convenience, and also of retro games, and when I first got my PC running on Linux, I spent a while setting up most of my games to run on it. On the one hand, I did create a whole bunch of GUI applications for my games (especially the ones like for DOSBox, where the command line would take a long time to enter.) On the other hand, Terminal was incredibly helpful when doing that, because I could easily use it to test the command line that I wanted to turn into an application. If it ran in terminal, it would run in an application. If not, I could re-examine it to figure out what went wrong. It's doubtful I would have been able to get some of my games running so smoothly, without using Terminal, and it's doubtful that I would put in the effort to launch some of my games without GUI.
Edit: I've just learned more about the bashrc, and am eager to try running some of my dosbox games using custom commands instead of apps.
A great advantage of the terminal is help & support. I set my brother up with Linux Mint after he had problems installing Windows. And helping him install programs couldn't have been easier.
I could've helped him navigate the software center, told him that the search bar was somewhere in the corner, and help him download it that way.
But instead, I just copied and pasted commands and messaged them to him, and he copied and pasted the commands into the terminal.
Terminals are the most universal way to get support questions answered on Linux.
The problem with that is that with GUIs he would probably learn how to download programs in the same day and be independent and if he only copy pastes commands he might be dependent on you, cli has a steeper curve
how to make terminal show predicted sentences on ubuntu like in arch
:) The beauty of GNU/Linuix is you usually have a choice - most people use both. I notice even Grandma & Grandpa open a terminal on occasion. With only ~1.5% of the desktops on this planet actually using a Linux operating system, your preaching to a very small choir, who probably already demonstrated their passion by having the Linux operating system installed on a hard drive.
also it's mostly due to fragmentation of Linux desktops.
terminal offers a consistent means to do something when hopping between desktops (or when no desktop even exist)
3:24 May be it is faster to access the information with terminal, but the visual appearence of the information on the the terminal is intimidating, because it is only text there, and nothing else.
Video recorded using OBS and edited using Kdenlive and Thumbnail made in GIMP and uploaded through a browser? Just wondering.
speaking about comandline. Not only on SO users give comand hints. Most things on windows suport forum use win powershell to collect data or fix problems
I think it depends on what you do with your distro. For those involved in scripting, advanced system organisation, etc, it seems natural and fitting to use the same approach for system management, but for those who don't really interact with the parts of the system that benefit from command-line use, I have never come across good arguments on why they should learn and use terminal.
I certainly understand the _aesthetics_ of command line operation of an OS - the nerdy, vintage aesthetic of doing it, which fits the FOSS community ideas so well. That aesthetic has been the reason I have been trying to learn basic things like Polybar/WM installation, and getting back that urge to accomplish it after every time I fail at it, in the absence of a coherent, step-by-step, continuous guides for complete newbs on the subject. But for practical reasons, I think many users will never come across the use scenarios where command-line use would benefit them more than GUI use.
Hi,I'm a graphic designer. I was thinking of moving to tilling window manager and terminal applications.but I don't see the point.
You don't need to do anything with terminal
Use the right tool for the right job,
So many great points I never thought of!
two exceptions for me are for gaming and recording music. For my physics thinking alogirthmically is another advantage of keeping it to the command line as it suits the mindset.
I remember when I was a kid, my older brother taught me MSDOS inside and out. I was so super comfortable with it, I was building my own batch files to make things quicker and easier, and knew the commands, as well as the layout of my filesystem like the back of my hand.
Then Windows 95 came out.
I was... so lost. Luckily, Win95 gave you a DOS shell, which I constantly used for everything. It took me a solid year or so, before I became comfortable with the GUI. So it's interesting to see this difficulty happen in the reverse nowadays with Linux. If you can't imagine yourself being more comfortable typing in commands on a text interface, vs clicking icons, trust me, you'll soon understand it once you decide to delve into it.
Mr. DistroTube, how long have you been using Linux and what is your primary OS?
My first introduction to Linux was via the command line (a few years back). I wanted to run a media server and was forced into the deep end but glad I did! Now I feel more comfortable in the CLI than most Linux GUI’s 😂 like with anything, you need a project your interested in and then the learning of Linux comes naturally over time. I find working within the CLI you have to have a much better mental image of where everything is and also remember all of your favourite tools etc.
You start with the shell after you have seen wysiwig problems letting you down.
After learning that you start with scripting and programming.
But then what is programming and scripting in most cases.
A graphical front end for your command program or script.
Two months ago, I would have fought you tooth and nail about the GUI. But you are right. Now I use the CLI almost exclusively. Tmux is almost always on, I even use it on my android tablet with open ssh so I can remotely shut down my son's computer. Try doing that with a GUI. Even if you can, I do it with a sign in and one line. I was afraid of the command line, but I was started on MS-DOS and Linux CLI is very familiar feeling, and that helped me acclimate.
Personally I disagree with the notion that the advanced user will eventually come to use the terminal almost exclusively
I think it's very subjective. I can use a terminal and have no problems popping one up when I need it, but I can't match the real, tangible comfort and speed I have with GUIs. I can cd my way through my files but then I'm constantly ls-ing to even figure out where I am and what I'm doing, what's in the folder, where I need to go, I just get confused and lost if I can't see a visual representation of what I'm doing. And why would I use pacman/pamac-cli when pamac lets me search a word and scroll through a list of all the results, click on one and read any info I need, read the AUR page of the package so I can see if there's anything I need to know, update in a couple of clicks etc.? What good does starting an update or an installation faster do when I know I'm gonna have to wait a few minutes to an hour for it to finish the operation anyways?
People will say that they ARE faster with cd, and they ARE more comfortable with pacman etc., and that's good. My point is that everyone should use whatever they like most. I just disagree with thinking that everyone will eventually end up in terminals all day given experience
Also on the topic of terminal-exclusive advanced commands, I think those commands should be used and nobody should feel afraid to do so just because they prefer GUIs. I'm not a GUI elitist, I just think people need to use the tools they have in the way they're more efficient and comfortable in
Yup. 100%
There was a good decade where I only used elinks as my web browser. Fun times.
12:18 I think in cases like this distributions like Fedora Silverblue can recover from it rather easily. If I'm not mistaken in the boot menu you have the different snapshots that you can boot from and if one doesn't work then you go back to the previous. That's neat.
But not everyone is running Silverblue so, there's that.
I agree. I would add that when using the terminal you're actually conversing with your machine in a language and that's the essence of what makes it so powerful. Once you learn the language, anything that can be described in that language can be done.
Not that I ever knew it competently, but the little I've done with terminal reminds me of the good old days of MS-DOS. Does terminal do for LInux what MS-DOS did for pre-Windows PCs?
Not all gui apps are fronts to shells... most programming languages provide the developer an option to use system calls. Thats faster than using shell for everything.
I (still) just use GUI most of the time (when I need to use Terminal, usually copy/paste). I'm currently using Pop!_OS, because of window tiling (I'm using it for studies and I need to multitask to watch the video, take notes, consult websites, etc).
21:36 These constant changes in the graphics part are exactly what made me give up on Windows. I knew many shortcuts and functions, but in the last versions I realized the following: they made the system more "friendly" (colorful, visual) for lay users and, with that, left a lot of obstacles for intermediate and advanced users, who already knew the system well.
This makes total sense for every programmer, other people not so much
GUI applications almost certainty won't run the actually command line equivalent, copying a file in a file manager will not run a cp command in most cases.
What's that machine with the red blinking lights next to the sofa?
One of my certifications back in the day was SCO Unix. A lot of doctors offices had SCO to run their practice management. Two things happened. One SCO went out of business and two electronic health records became mandatory in the US. SCO didn't have a GUI. But all the new EHR software included practice management software. So we migrated a lot of doctors over to windows based EHR/PM software. Well they all hated it because they could do it so much faster on the old SCO software. They knew every shortcut and could fly through the menus. Not a one was happy with the new system.
My search engine is not so good when I am trying to find the command I want to do that thing to do the other thing.
12:17 Updating Arch back then was like crossing fingers but Now I do it with confidence I have BTRFS for rescue I do snapshot my whole root and roll back if something goes wrong. In that way stability is guaranteed and if not atleast I can save my data
Have you played with Plan9 or 9front? I has an interesting combo of command line and GUI.
I am not a Power User and expert or programmer. I am the typical layman. And for this a GUI is really sufficient. Of course, if you have to dive deeper into Linux system you have to use the terminal. Because it is the structure of Linux to have config text files for each and everything. And now I like to know a little bit more of all this stuff.
The thing is that with Linux terminal you have to be practically some kind of semi-programmer with savant memory. I have been using Linux for a while and occasionally terminal has to be used (because of lack of gui option) but I don't remember other than few basic commands and practically always have to google how to do something. And even then I often don't understand what stuff in instructed command line means, I just copy-paste and hope for the best. Recently I managed to mess up some package dependencies and even that proved impossible for me to fix by following instructions. Thankfully there was still working GUI and timeshift I could use to revert to previous system state. I guess command line is not for everyone.
I need to use a GUI file manager because I process a lot of visual media file (images, videos, etc.) and being able to see thumbnails is an absolute must for my workflow. I know some terminal-based file managers are capable of rendering previews for individual files, but as far as I know, none have thumbnail functionality. I'd much prefer to work in the terminal, so if there's a solution to this out there somewhere, I would love to know.
I am somewhere in the middle I am not scared of the terminal and have no issues using it if I need/want to (like I don't use a GUI package manager tool at all), then there are something's I just rather use a GUI app for. I do however think that the people that preach using the terminal for everything is a big turnoff for Linux for people who aren't tech-savvy people, and it is why you get the people who say "Linux is hard" because they are not shown that there is a GUI way of doing whatever it is they want to do. They are instead told they have to remember these terminal commands, or they should just go back to letting windows spy on you, which is not the case.
Tbf this guy opened by saying its for intermediate to advanced users. Imo you use the cmd line if you want more power out of your machine. If you just want something that works very similar to windows but isnt windows, you pretty much dont need to touch it. But if you want to relearn a different way to do most of what you do on your comp, you should invest some time in learning the cli
@@Anonymous4045 I am not saying he is forcing people to use the CLI or doing the gatekeeping I am just saying this happens a lot where people will talk down to people who prefer to use a GUI or try to convince them they shouldn't use Linux if they don't want to use the CLI.
@@DonaldWyman yeah i agree with you there, its unfortunate how many elitists there are
Thing is, for most people learning or using command line is most likely going to MUCH slower and more inefficient than well designed GUI. By this I mean overall, I mean sure, you can probably shave off some seconds or even minutes from tasks as expereinced terminal user, but it really means nothing if that task is only done once in a while. I mean sure, terminal can be faster for experienced user, but you need to become on first, you need to use terminal enough that stuff doesnt just slip from your mind and finally you need to do task enough that it actually matters. Or you could juse get app that make it even more efficient.
You are only going to benefit from terminal if you do some specific tasks a lot. Most people use OS to to run programs and do stuff with them, they don't use OS itself as tool, it's platfrom.
Overall, if you do type of stuff that needs or would benefit from terminal, some kind of system management, you are going to end up using it. Otherwise it's most likely waste of time.
I bought a raspberry pi and to start with
I loaded the default GUI OS and
I was lost until I opened the terminal
and could manipulate things
I then discovered that there was a "lite" version
and that it was more to my taste
because virtually the only gui application I use
is a web browser but I have vimium running
so it is keyboard driven.
I do virtually everything with the keyboard and commandline activities
Ironically, I've written C++ programs wrapping a GUI around some terminal applications (and rather sophisticated commands as well, gotta love system();). Of course, I have even written console programs for cli programs, just to simplify what I had to remember.
There's one thing I prefer gui for which is file manipulation in deeply nested directories.
If you have to move a file in the terminal, trying to remember paths is a nightmare, so I usually use a gui tree if it's not simple copies or moves in really close relative directories or base directories.
You could use tree command. It is very efficient if you want to know branches of directories.
@@nemanjabojovic8004 That's true, I actually just installed tree earlier today coincidentally. However, it doesn't help me if I still have to type long path names. even with autocomplete, it's more efficient for me to drag and drop sometimes, so that's what I do. :D
@@TheRealisticNihilist After sometime you will use to it. I always find frustrating renaming a file. I find it easier to do it with GUI.
I came from DOS to Windows to Linux (with some Macintosh thrown in for good measure) and I think a big advantage is speed and being closer to the hardware without extraction which also reduces the chance of things crashing and losing data. Just my opinion of course. Also I feel that when you get good at CLI, GUI slows you down IMO 🙂
Mr. Taylor, I had to downsize my life and only have an old crappy Chromebook. I have Debian 11. 3 running and using the Beta
Version of ChromeOS ( 102 ). I have the terminal app pinned to the dock and it is usable for doing all kinds of stuff. I would
recommend people at least try doing this, to see how easy it is to take Linux with you where ever you go. My Chromebook ( the
ACER C315 ) can be found refurbished or used really cheap online. But I would bet most Linux users would want better specs
than what my model offers. I would prefer to have a laptop running just Linux, but I have not got around to that.
COVID hit me really hard, and not sure if I am out of the woods yet, as I have not been well for five months.
"you can do anything you want in the command line"
how do i use Blender or UE5 inside the command line ?
I updated a OpenSUSE VM the other night and it broke so hard that I could not even get a TTY that I could use. So much for a command line rescue there.
Good one. For me, the main reasons I often favor terminal:
1 - Repeatability of commands
1b - Thus possible to script/create shortcuts for common commands or even groups of commands
2 - Extensibility - command line stuff typically has a whole range of options/arguments for more precise ops. Graphical stuff tends to be limited to common use case. Indeed, building UI takes a lot of time, and implement ALL the options/commands of a terminal app takes a lot of time. Not worth it if it's used only by a few ppl not too often.
3 - Portability - if I'm working on a VM, in a Docker container or remote server or whatever, commands I know & use locally are still available 90% of the time on any linux distro without installs
4 - Combination - can't really combine UI stuff, but easy to do with cmd lines.
I'm a programmer so obv lots of incentive. Working for a new company that is kinda windows-easy. I'm trying to avoid it as best I can. Actually terminal stuff is one of the main reason I hate Windows. It's just not designed to be terminal-driven.
A GUI for file management, today people might call it a TUI, was the first thing wrote when I got my first system back in the late 70s. I also usually script many terminal commands into a more GUI/TUI like environment now using tools like yad, rofi or denunciation. For development, especially human interface development, I was so happy in the late 80s when I found the first decent program generators. The main reasons I like the command line with the power of bash is that I can so easily script a GUI-like tool more customized to me. After designing my editor, a project I undertook due to vi clunking, next projects were about turning most systems management needs into TUIS.
I remember running full graphic games from the terminal in DOS back when I was like 5. :) It’s just a matter of learning the syntax and, for me, finding a way to narrow LS results cuz if I don’t? Then my eyes cross 🤪
I used bash forever. Then landed on Manjaro and it has zsh. f it, I'll try it. Been on zsh for a while and I'm left with one question. Aside from how the prompt looks, what exactly is the difference? What's the pros and cons of each?
There are certain things that I think you cannot do with the terminal, for example oriented for designers previsualize all the images of a parent folder including the subfolders images and out of the subfolders. Because in the terminal the output is always plain text.
modern terminals can display images
Some things are just easier: finding a certain message thats only in one file and theres possibly thousands of files.
My bashrc contains a script that randomly executes one of DT's colorscripts but one of them wasnt working due to the lack of a XResources file but thanks to grep it was as easy as " grep -H "Xresources" * "
Rather new to Linux here and brand new to Arch based Linux distro's, can someone please explain the difference between using the commands "sudo pacman -Syu" and the "sudo update && upgrade" commands? Are they the same essentially? For me right now im using Garuda Dragonized, not that I think it matters. Thanks for any enlightenment head of time...! ;)
Man, your examples are great, but the part about file managers is a bit misconcepting...they do not run ls or cd! cd is a builtin shell command at all.. The are some simple linux system calls like readdir to see the files inside. Anyway other GUI apps really do rely on their CLIs.
The terminal/command line is your friend. It only seems intimidating because you're not used to it. Why use a convoluted GUI when a simple command or two can get the task done? In my opinion, becoming familiar with using the command line is one of the best things using Linux does for you. :)
One more example: when i had to clean dupes files in my phone, i searched for gui application, that were not completely safe, then i installed tmux from a open source repo, finally i cleaned unwanted files with fdupes command, so i don t wonder how application world, it simply works the same in linux
Command lines began to shine for me when I learned how to write custom commands/scripts for simple stuff, chain commands together and stuff like that. Since my short-term memory is really, really bad, one of the best things I've ever done was to chain "cd $path && ls -a" in a custom function.
Use the cli because you can save it in a log, run scripts that can do repeatable actions, do those actions of other computers, document your enviroment. Your root user uses them for safety, typos can really make a mess quick.
I use SSH when accessing my raspberry pi. The terminal is great for me especially when Im accessing my raspberry pi headless. For headless operations is great. When accessing websites its getting into the heart of them. To me I use either the terminal or the web browser. VNC takes too long while terminal is much faster. GUI takes up so much time.
I learned a little bit of Bash, and recently my code editor told me to open my html file in the terminal. when I ran the cat command on my HTML file, it only spit back the contents of my HTML file. It did not open it in my browser. I had to go to my file manager, and use my mouse to click the HTML file in order to open it in the browser. Is there a command in bash that will actually open a file?
As far as I know (though I am a newbie), you need to type the name of the program you want to open the file with. cat prints the contents as text, because that's what cat is made to do. If you want to open it in Firefox, you type firefox instead.
I'm writing this at midnight on limited sleep so apologies if I misunderstood the question or if I phrased things awkwardly.
I guess the most basic question is: how do I learn what all the commands are and what they do? Thanks.
I really like this video and I hope it gets lots of exposure. Being IT literate, I bounce back and forth between CLI and GUI. It all depends what I am doing. I think the issue is exposure. People aren't taught terminal, or CLI unless in a class involving administration. From what I've seen, it's even less shown unless in a Linux class for the terminal. None of this was meant to be just a form of IT elite (I laugh saying it). But that's a perception I get talking to people. More exposure and spreading this information is a good thing in my opinion. Need to demystify the terminal.
So for years I rejected Windows and used DOS. While I did had Windows 98, the first Windows I liked and became comfortable with was Windows XP. I went from there to Windows 8 a short time then I really liked Windows 10. But it looks like my first attraction of DOS was right all along. Btw thanks. I like the way you bring things forth without being cocky.
I don't know, dude...
You can have a speedy keyboard-driven interface without it being mostly terminal-based. And it'd often be way faster that way because it'd just be shortcuts rather than typing whole commands out.
I started using the terminal more when I discovered that big enterprise Java stuff that can a pain to configure in IDEs can often compile and run in just a few terminal commands. All the configuration is already done, but with an IDE you pretty much have to do it all over again.