Turn A JPG Into A PDF

Today’s article is an article that few folks are going to need, but those folks who do need to turn a JPG into a PDF will be happy with it. If you want to do that, this article will help you with that task.

There are times when you want to need to share an image but the people you’re working with expect a PDF. This happens if you’re sending stuff off to be printed and things like that. They only accept PDFs and all you’ve got is a JPG. 

Well, it’s easy to turn a JPG into a PDF.

JPG, or JPEG, stands for Joint Photographic Experts Group and has been a standard since 1992. Obviously, it is an image format. According to Wikipedia, JPG “… was largely responsible for the proliferation of digital images.” That sounds reasonable to me.

I’ve covered a lot of PDF stuff lately. Can you tell where I am in my notes? PDF stands for Portable Document Format and is useful when you want to print something exactly as you see it. That’s why print houses use PDFs a great deal.

I’m sure this isn’t something everyone is going to need to do. That’s fine. Not all of my articles need to apply to everyone. I’m also hoping to use this opportunity to expose you to one of the more powerful Linux applications.

ImageMagick:

The tool we’re using is a complicated tool known as ImageMagick. Once installed, you should check the man page. We’ll be limiting those options to just a couple, but manipulating images in the Linux terminal is usually done with ImageMagick. It’s a versatile application.

If you do check the man page, you’ll learn that ImageMagick is described like so:

ImageMagick – is a free software suite for the creation, modification and display of bitmap images.

That’s not a very good description, because ImageMagick does a lot more than they describe, including formats other than the BMP format. It’s a potent tool that manipulates images directly in the Linux terminal. You’ll also find that ImageMagick is a great asset when dealing with large numbers of files.

Once you’ve installed ImageMagick, you have access to the convert command. You can’t have one without the other and you only need to install ImageMagick to have access to both. If you check the man page for convert, you’ll see that it’s the correct tool for the job.

convert – convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.

If you’re observant:

The convert-im6.q16 program is a member of the ImageMagick-ims6.q16(1) suite of tools.

That’s why we have to install ImageMagick to get access to the convert command. There’s a lot to ImageMagick.

So, teach you one way to turn a JPG into a PDF…

Turn A JPG Into A PDF:

As mentioned above, you need a terminal to use ImageMagick. You don’t need a terminal to install ImageMagick, you can do that in a GUI. However, I’ll share how to install ImageMagick from the terminal. You can usually open a terminal by pressing CTRL + ALT + T on your keyboard.

With your terminal open, let’s get started:

Installing ImageMagick:

ImageMagick is not only a massively capable application, it is also widely available. You should find ImageMagick available in your default repositories. If it’s not in your default repositories, you can always compile it from the source. I’ll share how to install ImageMagick in the most popular distros:

Debian/Ubuntu/etc:

Arch/Manjaro/etc:

RHEL/CentOS/etc:

You can also install ImageMagick from source:

Turning A JPG Into a PDF:

Keep your terminal open and navigate to the folder where you’ve stored the image files. Specifically, use cd to navigate to the directory that contains those images you want to turn into PDF files.

With that done, you’re only really interested in the convert flag. You won’t be invoking the imagemagick command itself. You’ll be using the convert aspect of ImageMagick.

If you want to turn a JPG into a PDF, the syntax is quite simple:

DO NOT TRY THIS YET!

An example of that command would be:

I mean, you could try it – but it’s not going to necessarily work.

If you try the above command, you’ll likely get this error:

convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF’ @ error/constitute.c/IsCoderAuthorized/421

So, we need to edit the ImageMagic’s policy.xml file. It’s a simple edit and will only take you a few minutes. I’m going to assume that you have access to Nano, but you can use any terminal text editor you want.

First, open policy.xml for editing:

Find this line:

And edit it to match this line:

Now you need to save it. To save the new policy.xml with Nano, press CTRL + X, then Y, and then ENTER. That should save the file with the same filename and extension.

That’s all you need to edit. Now you can try this command!

Now you can turn a JPG to PDF easily in the Linux terminal with the convert command as provided by ImageMagick. Pretty complicated? I suppose so, but you only need to make that edit once and you’re good to go. 

Now that you’re done with that and are happily converting JPGs to PDFs in your spare time…

Well, it gets a little more complicated.

You might find that this command produces sideways images. If that’s the case, you’ll want to use the -auto-orient flag.

I swear, that’s the last thing you should have to tweak. In my experience, you don’t need the -auto-orient flag but it’s good to know that it exists. You might consider using it by default, just to ensure things go smoothly.

Oh, one more thing…

Let’s say you have a bunch of images in a directory and you want to turn all of those .jpg images into a .pdf en masse, you can do that! The convert command supports an asterisk (wildcard). That looks like this:

That’ll happily convert all the files ending with .jpg into a single .pdf file for you to store or share with others (such as a printing company). It’s pretty easy once you know the tricks and have edited the correct file.

BONUS:

While I only say ‘JPG’ in this article, you can also use this same command with  PNG files. The command is almost the same, you just need to specify a .png file instead of operating on a .jpg file. Like so:

That will happily perform the same operation on the .png file, just like it did with the .jpg file. The only reason it’s not mentioned previously is because it would have made the titles and headings look awkward.

So, if you need to turn a PNG into a PDF, you now know how. If you wanted to turn a JPG into a PDF, you now know how. Congratulations! You’ve learned a little about ImageMagick.

Closure:

I’ve been meaning to write this article for some time. It was just too long and I didn’t quite know how to make it simple. I finally bit the bullet and wrote it. If all goes well, this will be simple enough for anyone to follow. There are a few challenges along the way that may make this difficult for a novice, but the directions are hopefully clear enough for anyone to follow.

I know that I’ve needed to turn a JPG into a PDF. I’ve had to do so specifically for the reason mentioned above. If you ship something off to a professional printer, they may want the format to be PDF.

They do that for good reason. What you see in a PDF should be exactly what you see when you print the file. It’s a pretty handy file format and the standard is open source.

Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.

Let’s Learn About The htop System Monitor

There are any number of tools out there to monitor your system and today we’ll cover the ‘htop’ system monitor. This htop application is a pretty solid application and one that you might want to be familiar with. So, let’s learn about htop…

First, your Linux desktop comes with a system monitor called ‘top‘. This is true for so many distros that we might as well accept it as fact. The top application has been around 40 years at the time of this writing and it stands for ‘Table Of Processes’.

The top application is a task manager and system monitor, allowing you to manage processes while also monitoring system resources. You can learn a lot from top, such as uptime, RAM use, CPU use, the number of running processes, and so much more…

top:

If you want,  you can open top with the following command:

(You can just press Q to exit top.)

The output should look a little like this:

An example of top running in the terminal.
This is the top application, which you may already be familiar with…

The man page describes the top application as:

top – display Linux processes

The man page for the top command will also explain that you can do the following with it, which you may find interesting.

As you can see, top is pretty versatile. 

So then, what is htop?

htop:

The name is htop simply because the author’s name is Hisham. It is otherwise similar to the top application but comes with some great benefits. Another great benefit is that htop is going to almost certainly be available for your distro. Some distros have started installing htop by default.

Why htop instead of top?

Well, for starters the layout is much nicer. You can also use your mouse to control htop. This includes scrolling, making it easy to navigate. You can kill processes like this, change their nice value, and more. Additionally, you can even kill multiple processes at the same time.

You can filter and search easily with htop, meaning you can narrow down the results and keep it easier to read. On top of that, htop has a cascading tree layout for the processes. 

I’m told that htop is quicker due in part to how it gathers the information but I have no way to verify this. Both applications seem reasonably quick to me, but that’s what they tell me. I believe this has something to do with being ncurses-based. 

You’ll also click the setup option and configure htop to your needs. It has a nice colorful layout that is quite intuitive. Filtering is also easy, as is searching. Those both come in handy when you want to kill some processes all at once.

If you’re curious, htop looks like this:

running htop in the Linux terminal
It’s more colorful and easier to navigate with a mouse – but you don’t need a mouse to control it.

There are times when you can’t access your GUI system monitor to clear out frozen processes or things like that. So, you should get used to either top or htop. I think you’ll find htop is more featureful and useful in modern times. Even if you can’t use a mouse at the time (say you’re in a TTY), htop is still easy to operate, which is nice.

Install htop:

As I mentioned above, some distros (like Ubuntu) now include htop by default. There are older versions of Ubuntu out there that are still supported, so I’ll include htop installation instructions for them. Then again, they’d be the same instructions used by Debian, so it wouldn’t be that hard to figure out.

For simplicity’s sake, let’s install htop with the terminal. That’s a fairly universal thing. Most of the time, you can open your terminal by pressing CTRL + ALT + T. Otherwise, you’ll find a terminal option in your application menu.

With your terminal open, use the correct command for your package manager:

Debian/Ubuntu/etc:

SUSE/OpenSUSE/etc:

Fedora/etc:

Rocky/Alma/etc:

Arch/Manjaro/etc:

One of those should work for you.

The syntax to use htop is just this:

There aren’t a bunch of flags to worry about, but it’s worth checking the man page:

If you’re going to learn anything from the man page, you might want to learn the keyboard shortcuts for when you do need to use htop without a mouse. There are many, but learning the basics will take you ten minutes. I’d call that ten minutes that were properly invested because htop is a great application.

There you have it.

You should now have htop installed and know how to run the application. I think you’ll like it more than you liked top. I know I do. It’s definitely what I prefer of the two – but it’s not the only option.

Closure:

I’ve wanted to write this article for a while but just didn’t want the hassle of writing it. I finally had both time and motivation, so I wrote the article. There’s some chance that a major storm is going to take out my internet, so I might as well leave you with a good article to keep you going. Now you know about htop, a top replacement. That’s a good thing.

Seriously, I prefer htop over top. It’s just much nicer and easier to work with. Be sure to check the setup options because you can configure htop to your liking. That’s a handy feature to have.

Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.

Mastering The Power Of Linux Tee Command

I want to write an article that includes the Tee Command but it was one of those commands that I didn’t seem to be able to write properly. I wrote this article manually before I realized how much I was not too fond of the outcome.

So, I decided to lean on AI again. This seems like a fine article for AI to write, so let’s see how it did. (Hint: It did much better than I did…) I think I’m learning how to use AI as a tool to help me. That’s a good role for AI and is one of the reasons I’m not too worried about our future.

Mastering The Power Of Linux Tee:

In the vast landscape of Linux commands, few hold the versatility and power quite like tee. Often underestimated, the tee command is a true powerhouse for those who dare to delve deeper into its capabilities. If you’re ready to elevate your Linux command line skills, then it’s time to master the art of tee.

Understanding the Basics:

At its core, tee is a simple yet elegant command designed to read from standard input and write to both standard output and files simultaneously. Its syntax is straightforward:

This means you can use tee to capture command output and redirect it to multiple destinations, whether it be a file, a pipeline, or even another command.

The Power of Redirection:

One of the key strengths of tee lies in its ability to redirect output to multiple files. This comes in handy when you need to save the output of a command for later analysis while still seeing it in real time. For example:

This command will display the output of ls -l on the terminal and simultaneously save it to both file1.txt and file2.txt.

Piping Output for Further Processing:

Tee can also be combined with other commands using pipes to create powerful data processing pipelines. For instance:

In this example, the output of cat file.txt is simultaneously filtered by grep to find lines matching a certain pattern and those that don’t. The results are then written to different files.

Appending to Files:

While tee typically overwrites the content of files, it also supports the -a option to append to existing files. This can be useful when you want to continuously add data to a log file without losing previous entries. For instance:

This command will append “New entry” to logfile.txt without deleting its existing content.

Real-World Applications:

The versatility of tee makes it indispensable in various real-world scenarios. Here are a few examples:

Monitoring System Logs:

This command continuously monitors the system log (syslog), saves a backup copy to syslog_backup.txt, and filters out lines containing the word “error” to create a separate error log.

Debugging Scripts:

When debugging a script (script.sh), redirecting both standard output and standard error to a file using tee allows you to analyze any errors or unexpected output more effectively.

Capturing Command Output:

In the realm of Linux command-line utilities, tee stands out as a versatile and powerful tool. Whether you’re redirecting output to multiple files, creating complex data processing pipelines, or simply monitoring system logs, tee proves to be an invaluable ally. By mastering the art of, you unlock new possibilities for efficient data manipulation and analysis on the Linux command line. So, next time you need to capture command output or create intricate data workflows, remember the power of tee and wield it with confidence.

Closure:

Yeah, that sums up the tee command. AI really can do a better job than I can do with certain subjects. I wish I’d had this tool available for some of my more basic articles. AI would do a better job than I, as it certainly did with the tee command. I did have to edit this one quite a bit, but it’s an acceptable article. I might do more with AI but I did want to cover the tee command.

Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.

Another Way To View Attached Storage Devices

Linux offers myriad ways to accomplish the same task, which is a good thing, and this is another way to view attached storage devices. This is a useful way to learn more about your storage devices and is a bit more advanced than others.

There are many ways to view attached storage devices. While not the same, you can learn which storage devices are attached to your system with any of the following articles:

Show Your Filesystem In The Linux Terminal
Show Mounted Partitions
How To: List Mounted Partitions
Yet Another Way To Check Filesystem Space Use

Stuff like that…

Well, you can also just plain old view attached storage devices in the Linux terminal. The application I’ll be showing you will do more than this, but we’ll concentrate on just showing attached storage devices.

The tool we’ll be using is known as:

lsscsi:

Yes, we’ll be making use of the lsscsi application for this article. This won’t take very long and you should find that lsscsi is available for pretty much every operating system out there. It does what you’d think, list SCSI devices.

Once installed, you could check the man page to see that this is the correct tool if your goal is to view attached storage devices. The man page describes the lsscsi application like this:

lsscsi – list SCSI devices (or hosts), list NVMe devices

It’s a simple application, at least for our needs. You’ll find that you can get some of the same information with the following command:

However, that command won’t give you things like the path. Mounted storage devices tend to have a path of something like /dev/<path>, and that information isn’t available with the cat command listed above. As we often want to know the path information, and there are many tools to do this, you might as well learn about lsscsi. 

By the way, your GUI disk manager (such as gnome-disks) will happily give you some of this information. It’s also a graphical environment, which may be easier for some folks. This is for those needing that information while using the terminal, or for those who are just interested in doing more in the terminal.

But, when it comes to disk and data management, you may need to know this information – especially the paths. So, this is a good command to have in your pocket. You never know when it will come in handy.

View Attached Storage Devices:

If you’re unfamiliar with the lsscsi application, it’s a terminal-based application. If you’re already familiar with the lsscsi application, I’m not sure why you’re still reading the article! Either way now is the time when you open a terminal. Oftentimes, you can open a terminal by just using your keyboard. Try pressing CTRL + ALT + T and your default terminal should open.

With your terminal now open, it’s time to install lsscsi. The directions to do so will depend on your package manager, but I’m going to cover most of them because this application is widely available and packaged for almost anything you can think of.

Installing lsscsi:

With your terminal open, use the correct command for your package manager:

Debian/Ubuntu/etc:

RHEL/CentOS/etc:

Gentoo:

OpenSUSE/SUSE/etc:

Arch/Manjaro/etc:

One of those should work for most of you. If not, let me know in the comments and I’ll amend the application. If they’re wrong, please do let me know in the comments. I did not test all of these. I’m going with a combination of my notes and what I’m able to scrape from the internet.

Using lsscsi:

With that open terminal, just enter the name of the command and you have about all the use you’ll really need from the application. The command is simply:

If you want, there’s more to the application – which you might need for some advanced operations. You can just check the man page with this command:

Here’s an example output:

Here’s another example output:

If you look at the bottom one, there’s a bit of an Easter Egg. You’ll see that it starts with an N and that means it’s an NVMe device. You don’t need any special tools beyond lsscsi to view NVMe devices, which is nice. The program happily recognizes it and other attached storage devices.

Closure:

You never know when you’re going to want to view attached storage devices. However, the odds are good that you’ll eventually want to know this information. It’s always good to verify the path of a dd command, for example. A malformed command can really cause you some problems.

So, now you know how to view attached storage devices – a task that has many solutions in Linux. There’s nothing wrong with variety and each of the various tools will have different strengths. Knowing what to use and when to use it is something you’ll learn as you make progress.

Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.

Take A Terminal Screenshot In Terminator

This article is going to apply to those who use the Terminator terminal emulator and want to take a terminal screenshot in Terminator. That means it applies to maybe three of you. You’re welcome.

There are a zillion and three terminal emulators.

Yes, they’re terminal emulators. They, in some form or another, mimic the look and behavior of terminals. Terminals were used on old consoles and were how you interacted with things like mainframes. 

Now, you still have terminals available. If you press CTRL + ALT F3 to F6 you should see something called TTY. That stands for Teletypewriter and is from ages past. However, some pedantic people might still call it a terminal emulator or call it a virtual terminal. The latter might be closer to correct.

By the way, if you press CTRL + ALT + F7 it should/might bring you back to your desktop from TTY. If that doesn’t work, hold the LEFT ALT and press the RIGHT ARROW until you cycle back to the desktop.

I don’t want you getting lost and unable to get back to the desktop, after all.

I’ve mentioned Terminator before:

It’s Time To Introduce You To The Terminator!

This is one of my favorite terminal emulators! I use it all the time. Because I have it with a weird theme, I don’t often use it for screenshots. I should because you can take screenshots with a built-in plugin! It’s remarkably simple.

Did I mention that Terminator supports plugins? If I didn’t, well, it does!

If you want, this is a far from complete list of Terminator Plugins.

If you search online, you will find more Terminator plugins that you can use to make your terminal-based computing even easier. What you pick is up to you but one of my favorites is one that you don’t even have to work for. It’s something that should be available by default in all Terminator installs. If it’s not available, your distro chose to package Terminator without plugins. 

Terminator:

The name is as awesome as it implies and it will likely be available in any distro you choose to run as your daily driver. If you check the man page, you’ll see this:

Terminator – Multiple GNOME terminals in one window

That’s just the start of it. Also, while it’s ‘for’ GNOME doesn’t mean that it doesn’t work just fine with other desktop environments. It suits them just fine and I’ve yet to find a desktop environment that doesn’t allow me to use Terminator.

It’s a multi-windowed (if you want, and I do not) terminal with a ton of options. More importantly, for the sake of this article, it also supports plugins. 

One of those plugins lets me take screenshots that look like this:

terminator screenshot
This was taken without any additional software. It’s just Terminator doing Terminator things.

So, how is this done? What is this witchcraft?

Take A Terminal Screenshot In Terminator:

Terminator is a terminal-based application. It is a terminal emulator, after all. So, it’s going to require a terminal. You can install Terminator with your GUI package manager or you can install it via the terminal. You know what we’ll be doing, so press CTRL + ALT + T, and let’s get started.

I’m going to assume that you’re not like me and that you don’t have Terminator already installed. So, pick the right command for your package manager so that you can install Terminator.

Keep in mind that these commands are from my notes. They might be old or outdated. Be sure to verify them and let me know if I made any mistakes!

Debian/Ubuntu/etc:

Fedora/etc:

RHEL/CentOS:

Arch/Manjaro/etc:

One of those commands should work for you. If you use a different package manager, you’ll likely find that Terminator is an option. It’s a pretty popular terminal. 

Now that you have Terminator installed, you can set it as the default (if you want) or you can open it from your application menu.

With Terminator now open, right-click within the terminal menu and click on the Preferences option to continue…

Now, click on Plugins and enable “TerminalShot”, which looks like this:

Enable plugins in Terminator via the prefefrences.
This should be fairly easy to explain and I have faith that my readers will understand it.

With that enabled, you just close the preferences window.

From there,  you have this as an option when you right-click on the window:

Take screenshots within Terminator.
That’s about it, now you can save the device as a .png or a .jpg file, picking your directory first.

You’ll then be faced with a screen that looks like this:

Save the screenshot from Terminator.
If this one needs me to describe it, you probably shouldn’t be following this article…

That’s pretty obvious. What might not be obvious is that it seems to work for both .png and .jpg file formats. I’ve had good luck with both and both seem to open appropriately. I seldom use these screenshots for this site, but I have and the reason I don’t is because the color just doesn’t look good with the site’s theme. Sometimes it stands out but other times it just looks murky.

Anyhow, that’s how to take a terminal screenshot in Terminator… Pretty sweet!

Closure:

You know… I don’t know how many people are going to want to take a terminal screenshot in Terminator. I forgot to take my sleepy meds and this is the middle of the night. I’ve also been sipping away at my glass of blueberry wine. It seemed like a perfectly good article.

I was watching YouTube videos and I thought about how I do this fairly often and decided that I’d turn it into an article. There were no dissenting opinions offered, so it was turned into an article. Fortunately, I use software that makes it look like I can type coherent words! (Nah, I can do that no matter what! Plus, I’m relatively sober, just tired.)

So, if you’ve ever used Terminator, look into the various plugins available. It extends the application even more and there are some useful things in there. Terminator is one of the best terminal emulators on the planet and I’d consider dying on this hill. It’s really that good.

If you don’t agree, leave a comment. I won’t change my mind, but I will publish it. You’re welcome.

Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.

Linux Tips
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.