Tag: Command line

  • Linux Tutorial Series – 166 – The ping command

    Here is the video version, if you prefer it:

    The ping command is used to check if your Internet connection is working properly.

    Here is its syntax: (Shotts, 2019)⁠

    ping internetAddress

    An example:

    mislav@mislavovo-racunalo:~$ ping www.google.com

    PING www.google.com (172.217.16.100) 56(84) bytes of data.

    64 bytes from bud02s25-in-f4.1e100.net (172.217.16.100): icmp_seq=1 ttl=55 time=14.2 ms

    64 bytes from bud02s25-in-f4.1e100.net (172.217.16.100): icmp_seq=2 ttl=55 time=16.9 ms

    ^C

    --- www.google.com ping statistics ---

    2 packets transmitted, 2 received, 0% packet loss, time 3ms

    rtt min/avg/max/mdev = 14.244/15.552/16.861/1.314 ms

    Focus on the 0% packet loss here. If it was 100% packet loss, then I would know something is wrong with my network.

    Thank you for reading!

    References

    Shotts, W. (2019). The Linux Command Line, Fifth Internet Edition. Retrieved from http://linuxcommand.org/tlcl.php. Pages 226-227

  • Linux Tutorial Series – 165 – The ip command

    Here is the video version, if you prefer it:

    The ip command is used to display information about network interfaces (among other things). (Shotts, 2019)⁠ Your network interface is the hardware within your computer which allows it to communicate via a computer network.

    Here is an example of the ip command:

    mislav@mislavovo-racunalo:~$ ip a

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

    valid_lft forever preferred_lft forever

    2: enp2s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000

    link/ether 98:28:a6:1b:c0:18 brd ff:ff:ff:ff:ff:ff

    3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

    link/ether 42:00:d9:4a:1e:45 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.3/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp3s0

    valid_lft 81396sec preferred_lft 81396sec

    inet6 fe80::5ce3:3fee:50bf:4d6f/64 scope link noprefixroute

    valid_lft forever preferred_lft forever

    First note that I have 3 network interfaces – each start with numbers 1 to 3. Also note that, in their first line, they have the keyword state following the word UNKNOWN, UP or DOWN. UP means that the interface is currently enabled. If you want to know your IP address, look up the inet field of the interface (before the forward slash). My IP address is 192.168.1.3. This is my local IP address, not my global IP address. You can Google “how to find out my global IP address” if you ever need to find your global IP address.

    A side note: The ifconfig command was used for the purpose of finding out your local IP address before, but now it has been depracated. I couldn’t have used it on my Debian 10.

    Thank you for reading!

    References

    Shotts, W. (2019). The Linux Command Line, Fifth Internet Edition. Retrieved from http://linuxcommand.org/tlcl.php. Pages 228-229

  • Linux Tutorial Series – 163 – Time

    Here is the video version, if you prefer it:

    A quick word on time in Linux – incorrect time can cause web browser issues. (“How to troubleshoot time related errors on secure websites,” n.d.)⁠ Many distributions support using the NTP (Network Time Protocol) daemon to maintain the time using the remote server. (Ward, 2014)⁠ You can also mangle with timezones, but I never needed this. My advice: Don’t mangle with time unless you really need to (such as when you find the error above). I never had to.

    Thank you for reading!

    References

    How to troubleshoot time related errors on secure websites. (n.d.). Retrieved February 13, 2020, from https://support.mozilla.org/hr/kb/troubleshoot-time-errors-secure-websites

    Ward, B. (2014). How Linux Works: What Every Superuser Should Know (2nd ed.). No Starch Press. Pages 157-159

  • Linux Tutorial Series – 162 – cron and at

    Here is the video version, if you prefer it:

    Today let’s talk about scheduling tasks (to run periodically). cron is used for this, as well as at. at is for one time jobs, while cron is for jobs that should re-occur in the future consistently. I never used any of these, as I never needed to schedule something. This is just for you to know where to look if you ever need to schedule something.

    There are efforts underway to replace cron with parts of init which are responsible for scheduling tasks, so look into that as well when pondering scheduling tasks. (Ward, 2014)⁠

    Thank you for reading!

    References

    Ward, B. (2014). How Linux Works: What Every Superuser Should Know (2nd ed.). No Starch Press. Pages 159-161

  • Linux Tutorial Series – 161.1 – A note on configuration files

    I wanted to make a quick note to say that whenever you encounter an issue or want to configure something, use Google to find what file in particular you are editing. I mentioned some files I deem are sort of foundational to know (such as /etc/passwd), but I think that in 2020. it is reasonable to assume that you have access to the World Wide Web and that you can use Google to answer queries such as “How can I modify systemd startup services” or similar.

    In the language of optimization, no need to over-optimize for the goal of knowing about Linux. Know just enough to be confident that you have the major pieces of the puzzle and know how they work, but if a particular detail pops up use Google to solve it.

    Talk soon!

  • Linux Tutorial Series – 161 – Printing – how I do it

    Here is the video version, if you prefer it:

    There is an entire chapter in (Shotts, 2019)⁠ dedicated to printing, but let me tell you how I print the things I want to print. I just use the GUI of the app that I am viewing the file in. I advise you to do the same. Now, could there potentially be a situation where you are accessing a Linux machine remotely and you need to print something out and you can’t use a GUI? Sure. But, I’ve never encountered it so far and I think that using Google in that particular situation would help you.

    Hope you learned something useful!

    References

    Shotts, W. (2019). The Linux Command Line, Fifth Internet Edition. Retrieved from http://linuxcommand.org/tlcl.php. Pages 361-373

  • Linux Tutorial Series – 160 – Checkpoint

    Here is the video version, if you prefer it:

    In the upcoming posts, we will talk about a whole bunch of things – printing, scheduling tasks, computer networking and building a program from source.

    We won’t cover any of those (except building a program from source) in much detail. The reason is because I either haven’t used it as much and thus feel that the topic is not as relevant to everyday use or the topic is very broad and I narrowed it down to the very basics.

    An interesting mix coming up. Focus on the computer networking chapter most, followed by building a program from source. Feel free to quickly read the other things.

    Talk soon!

  • Linux Tutorial Series – 159 – Review

    Here is the video version, if you prefer it:

    Let’s review what we learned.

    Here is how your computer boots up:

    1. A boot loader is ran by machine’s BIOS or boot firmware
    2. The boot loader finds the kernel image on disk, loads it into memory, and starts it
    3. The kernel initializes the hardware devices and its drivers
    4. The kernel mounts the root filesystem
    5. The kernel starts a program called init; init has PID equal to 1
    6. init starts all of the other necessary system processes
    7. At some point at or near the end of this entire process, you get the option to log in to your system

    Here is how the user space starts up:

    1. init
    2. Essential low-level services which enable managing hardware devices and system logging
    3. Network configuration
    4. Mid and high-level services (such as cron (used for scheduling tasks) and printing)
    5. Login prompts, GUIs, and other high-level applications

    When shutting down your computer, the following goes on:

    1. init asks every process to shut down
    2. If some processes (or a process) don’t respond, init initiates a kill with a TERM signal
    3. If some processes (or a process) don’t respond still, init initiates a kill with a KILL signal
    4. The system makes preparations for a shutdown
    5. The system unmounts all of the other filesystems other than root
    6. The system remounts the root filesystem in read-only mode (meaning you can’t write, only read)
    7. The system writes out all of the data left over in the buffers to the filesystem (this happens during the remounting process)
    8. The kernel reboots or stops the system

    Other things to mention:

    • Boot loaders job is to load the kernel into memory and start it with a set of parameters
    • demsg command is used to display kernel messages, or you can look at /var/log/kern.log
    • init is the process which starts all system services
    • shutdown command is used to shut down or restart your system

    Talk soon!

  • Linux Tutorial Series – 158 – Shutting down your system via the command line

    Here is the video version, if you prefer it:

    If you ever want to shut your system down via the command line, here is how it is done: (Ward, 2014)⁠

    shutdown -h now

    If you want to restart your machine, execute this:

    shutdown -r now

    In order to delay the shutdown or the restart, write this (this is the shutdown case):

    shutdown -h +numberofMinutes

    I usually shut down my computer via the GUI, but there may be some situations where you might have to shut down the computer via the command line (such as when accessing a computer remotely, for example).

    Hope you learned something new!

    References

    Ward, B. (2014). How Linux Works: What Every Superuser Should Know (2nd ed.). No Starch Press. Pages 144-145

  • Linux Tutorial Series – 157 – Shutting down your system – what goes on

    Here is the video version, if you prefer it:

    When you want to shut down your system, the following happens: (Ward, 2014)⁠

    1. init asks every process to shut down
    2. If some processes (or a process) don’t respond, init initiates a kill with a TERM signal
    3. If some processes (or a process) don’t respond still, init initiates a kill with a KILL signal
    4. The system makes preparations for a shutdown
    5. The system unmounts all of the other filesystems other than root
    6. The system remounts the root filesystem in read-only mode (meaning you can’t write, only read)
    7. The system writes out all of the data left over in the buffers to the filesystem (this happens during the remounting process; see (“Is the root filesystem unmounted during a Linux shutdown?,” n.d.)⁠)
    8. The kernel reboots or stops the system

    My 2 cents – just know this conceptually. The only case where you will need to go deep into the details of this will be if you need to optimize something on a Linux machine (most likely you would be doing this professionally), if you need to know the details to accomplish some other task or if you are really really curious.

    Hope you learned something useful!

    References

    Is the root filesystem unmounted during a Linux shutdown? (n.d.). Retrieved February 13, 2020, from https://unix.stackexchange.com/questions/298216/is-the-root-filesystem-unmounted-during-a-linux-shutdown

    Ward, B. (2014). How Linux Works: What Every Superuser Should Know (2nd ed.). No Starch Press. Pages 144-145