Wednesday, May 29, 2024

 https://linuxstans.com/linux-restart-command

 

How to Restart Linux with a Command

In this tutorial, we’re going to show you how to use the restart command on Linux and how to restart (reboot) your system via the command-line interface (CLI).

We previously learned how to shut down Linux using a command. Now we’ll learn how to restart it. These commands will work on most Linux distros, including Ubuntu, Linux Mint, Fedora, Debian, Arch Linux, etc.

You might intuitively think that the command would be “sudo restart” but, it’s not.

How to restart Linux using the “reboot” command

First, open up Terminal (CTRL + ALT + T), or whatever else you’re using to access the CLI on your Linux distro.

The most simple way to do it is to use the “reboot” command, like so:

sudo reboot

This will restart your system. That’s the most simple and basic usage of the reboot command. For more advanced options, read below.

If you’re using a systemctl-based distro, you might need to use this command instead:

sudo systemctl reboot

How to force restart Linux with the reboot command

You can use the “-f” option with the reboot command to force restart your Linux system. By using the -f option, the system won’t sync and unmount filesystems.

sudo reboot -f

How to restart Linux with the shutdown command (with or without a delay)

Aside from shutting your system down, you can also reboot it with the “shutdown” command by using the -r option:

sudo shutdown -r now

This is useful if you want to restart your system after a given amount of time (instead of now), you can specify a delay. For example, if you want to reboot the system after 10 minutes, you can run:

sudo shutdown -r +10

And if you want to cancel an already scheduled reboot, you can run:

sudo shutdown -c

How to restart then halt Linux with a command

If you first want to restart your system and then halt it (stops all CPU functions) you can use the “-p” option:

sudo reboot -p

And that’s it! This was a pretty simple and straightforward tutorial. You can also restart Linux using the “init 6” command, but the reboot and shutdown commands are enough for most cases.

You can learn more about the commands we featured in our tutorial with:

man reboot
man shutdown

 

Tuesday, October 12, 2021

13 Linux Terminal Shortcuts Every Power Linux User Must Know

 https://linuxhandbook.com/linux-shortcuts

 

Use Linux command line like a pro by mastering these Linux terminal shortcuts and increase your productivity. It's a must for any power Linux user.
Table of Contents

You know what sets apart a pro user from a regular user? Mastery over the keyboard shortcuts.

Alright! That’s not the only thing but it is undoubtedly a factor.

Shortcuts help you to be more productive and efficient with whatever tool you use. Just think about it. If someone holds the mouse all the way down to copy entire text instead of Ctrl+A, how would you feel about it?

Linux terminal is not an exception. There are certain Linux terminal shortcuts that every user must know and practice.

Trust me; once you master these shortcuts, you’ll notice how good you are with using the Linux command line.

Must Know Linux Shortcuts

Linux Terminal Shortcuts

I would like to mention that some of these shortcuts may depend upon the Shell you are using. Bash is the most popular shell, so the list is focused on Bash. If you want, you may call it Bash shortcut list as well.

Do note that I have used the capital letters in the keyboard shortcuts but this does NOT mean that you have to press the shift key while using these shortcuts.

1. Tab

This is the Linux shortcut you cannot live without. It will save you so much time in the Linux command line.

Just start typing a command, filename, directory name or even command options and hit the tab key. It will either automatically complete what you were typing or it will show all the possible results for you.

If you could only remember one shortcut, this would be the chosen one.

2. Ctrl + C

These are the keys you should press in order to break out of a command or process on a terminal. This will stop a running program immediately.

If you want to stop using a program running in the foreground, just press this key combination.

3. Ctrl + Z

This shortcut will send a running program in the background. Normally, you can achieve this before running the program using the & option but if you forgot to do that, use this key combination.

4. Ctrl + D

This keyboard shortcut will log you out of the current terminal. If you are using an SSH connection, it will be closed. If you are using a terminal directly, the application will be closed immediately.

Consider it equivalent to the ‘exit’ command.

5. Ctrl + L

How do you clear your terminal screen? I guess using the clear command.

Instead of writing C-L-E-A-R, you can simply use Ctrl+L to clear the terminal. Handy, isn’t it?

6. Ctrl + A

This shortcut will move the cursor to the beginning of the line.

Suppose you typed a long command or path in the terminal and you want to go to the beginning of it, using the arrow key to move the cursor will take plenty of time. Do note that you cannot use the mouse to move the cursor to the beginning of the line.

This is where Ctrl+A saves the day.

7. Ctrl + E

This shortcut is sort of opposite to Ctrl+A. Ctrl+A sends the cursor to the beginning of the line whereas Ctrl+E moves the cursor to the end of the line.

Note: If you have the Home and End keys on your keyboard, you can also use them. Home is equivalent to Ctrl +A and End is equivalent to Ctrl + E.

8. Ctrl + U

Typed a wrong command? Instead of using the backspace to discard the current command, use Ctrl+U shortcut in the Linux terminal. This shortcut erases everything from the current cursor position to the beginning of the line.

9. Ctrl + K

This one is similar to the Ctrl+U shortcut. The only difference is that instead of the beginning of the line, it erases everything from the current cursor position to the end of the line.

10. Ctrl + W

You just learned about erasing text till the beginning and the end of the line. But what if you just need to delete a single word? Use the Ctrl+W shortcut.

Using Ctrl+W shortcut, you can erase the word preceding to the cursor position. If the cursor is on a word itself, it will erase all letters from the cursor position to the beginning of the word.

The best way to use it to move the cursor to the next space after the targetted word and then use the Ctrl+W keyboard shortcut.

11. Ctrl + Y

This will paste the erased text that you saw with Ctrl + W, Ctrl + U and Ctrl + K shortcuts. Comes handy in case you erased wrong text or if you need to use the erased text someplace else.

12. Ctrl + P

You can use this shortcut to view the previous command. You can press it repeatedly to keep on going back in the command history. In a lot of terminals, the same can be achieved with PgUp key.

13. Ctrl + N

You can use this shortcut in conjugation with Ctrl+P. Ctrl+N displays the next command. If you are viewing previous commands with Ctrl+P, you can use Ctrl+N to navigate back and forth. Many terminals have this shortcut mapped to the PgDn key.

Bonus shortcut: Ctrl + R to search in command history

You typed some command but cannot remember what it was exactly? Meet Ctrl + R.

This keyboard shortcut allows you to perform a search in your command history. Just press Ctrl+R and start typing. It will show the last command that matches the string you typed. Note that the typed string could be anywhere in the command. How cool is that?

Reverse search in command history in Linux

If you want to see more commands for the same string, just keep pressing Ctrl + R.

You can press enter to run the command selected or press Esc to come out of the search with the last search result.

Try it and be amazed.

What’s your favorite Linux terminal shortcut?

If you would like to learn a few more Linux terminal tricks, you may watch this video to unearth hidden command line gems:

I have shared my favorite terminal shortcuts. What are some of your favorite Linux shortcuts? If you have one (or more), why not share it with the rest of us in the comment section?

SSLH – Share A Same Port For HTTPS And SSH

 https://ostechnix.com/sslh-share-port-https-ssh

 In this brief tutorial, we will see what is SSLH, how to install SSLH and how to configure SSLH to share a same port for https, and ssh in Linux and Unix-like operating systems.

What is SSLH?

Some Internet service providers and corporate companies might have blocked most of the ports, and allowed only a few specific ports such as port 80 and 443 to tighten their security.

In such cases, we have no choice, but use a same port for multiple programs, say the HTTPS Port 443, which is rarely blocked. Here is where SSLH, a SSL/SSH multiplexer, comes in help.

SSLH will listen for incoming connections on a port 443. To put this more simply, SSLH allows us  to run several programs or services on port 443 on a Linux system. So, you can use both SSL and SSH using a same port at the same time.

If you ever been in a situation where most ports are blocked by the firewalls, you can use SSLH to access your remote server.

Install SSLH in Linux

SSLH is packaged for most Linux distributions, so you can install it using the default package managers.

On Debian, Ubuntu, Linux Mint and Pop OS, run:

$ sudo apt install sslh

While installing SSLH, you will prompted whether you want to run sslh as a service from inetd, or as a standalone server.

Each choice has its own benefits. With only a few connection per day, it is probably better to run sslh from inetd in order to save resources.

On the other hand, with many connections, sslh should run as a standalone server to avoid spawning a new process for each incoming connection.

install sslh
Install sslh

On Arch Linux and derivatives like Antergos, Manjaro Linux, install it using Pacman as shown below.

$ sudo pacman -S sslh

On RHEL, CentOS, AlmaLinux and Rocky Linux, you need to add EPEL repository and then install SSLH as shown below.

$ sudo dnf install epel-release
$ sudo dnf install sslh

On Fedora:

$ sudo dnf install sslh

If it is not available on default repositories, you can manually compile and install SSLH as described here.

Configure Apache or Nginx webservers

As you already know, Apache and Nginx webservers will listen on all network interfaces (i.e 0.0.0.0:443) by default. We need to change this setting to tell the webserver to listen on the localhost interface only (i.e. 127.0.0.1:443 or localhost:443).

To do so, edit the webserver (nginx or apache) configuration file and find the following line:

listen 443 ssl;

And, change it to:

listen 127.0.0.1:443 ssl;

If you’re using Virutalhosts in Apache, make sure you have changed that it too.

VirtualHost 127.0.0.1:443

Save and close the config files. Do not restart the services. We haven't finished yet.

Configure SSLH

Once you have made the webservers to listen on local interface only, edit SSLH config file:

$ sudo vi /etc/default/sslh

Find the following line:

Run=no

And, change it to:

Run=yes

Then, scroll a little bit down and modify the following line to allow SSLH to listen on port 443 on all available interfaces (Eg. 0.0.0.0:443).

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

Where,

  • --user sslh : Requires to run under this specified username.
  • --listen 0.0.0.0:443 : SSLH is listening on port 443 on all available interfaces.
  • --sshs 127.0.0.1:22 : Route SSH traffic to port 22 on the localhost.
  • --ssl 127.0.0.1:443 : Route HTTPS/SSL traffic to port 443 on the localhost.

Save and close the file.

Finally, enable and start sslh service to update the changes.

$ sudo systemctl enable sslh
$ sudo systemctl start sslh

Testing

Check if the SSLH daemon is listening to 443.

$ ps -ef | grep sslh 
sslh 2746 1 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid
sslh 2747 2746 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid
sk 2754 1432 0 15:51 pts/0 00:00:00 grep --color=auto sslh

Now, you can access your remote server via SSH using port 443:

$ ssh -p 443 sk@192.168.225.50

Sample output:

sk@192.168.225.50's password: 
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-55-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

System information as of Wed Aug 14 13:11:04 IST 2019

System load: 0.23 Processes: 101
Usage of /: 53.5% of 19.56GB Users logged in: 0
Memory usage: 9% IP address for enp0s3: 192.168.225.50
Swap usage: 0% IP address for enp0s8: 192.168.225.51

* Keen to learn Istio? It's included in the single-package MicroK8s.

https://snapcraft.io/microk8s

61 packages can be updated.
22 updates are security updates.


Last login: Wed Aug 14 13:10:33 2019 from 127.0.0.1
Access remote systems via SSH using port 443
Access remote systems via SSH using port 443

See? I can now be able to access the remote server via SSH even if the default SSH port 22 is blocked. As you see in the above example, I have used the https port 443 for SSH connection. Also, we can use the same port 443 for openVPN connections too.

I tested SSLH on my Ubuntu 18.04 LTS server and it worked just fine as described above. I tested SSLH in a protected local area network, so I am not aware of the security issues. If you're using it in production, let us know the advantages and disadvantages of using SSLH in the comment section below.

For more details, check the official GitHub page given below.