Entries written by Janek Bevendorff:

Shell trick #1: Numbering lines in text files

Posted by | Comments (0) | Trackbacks (0)

Hi, today I'll present you something new. It is an experiment and I'd be curios whether you like it. I've started a little series of ttyrecs. That means, I've recorded a little tip or trick on the console and uploaded it to PLAYterm so it can be easily played back in the browser. I thought it could be useful to do a little command line gymnastics.

Today I'll show you three ways how you can number lines in text files. We'll do that with cat, nl and vim.

Note: you need JavaScript enabled in order to play the ttyrec.

Read more…

Grep's out of date? Full ACK!

Posted by | Comments (2) | Trackbacks (0)

grep is a handy tool and I use it every day. But sometimes I wish it had some more features. For instance full featured Perl compatible regular expressions (PCRE) since the current implementation is not complete and I think it will never be, automatic recursive search, exclusion of non-text files etc.

Here a tool called ack comes into play. It's a search tool and grep replacement written in Perl, which is able to do all these things. Guess what!

Read more…

Damn Flash Player! Adobe, fix it!

Posted by | Comments (6) | Trackbacks (0)

Adobe Flash has ever been a great source of anger due to many bugs (see here for example) and security vulnerabilities. Anyhow, it has evolved into a widely used technology and many, many websites need it to function correctly (yeah, HTML5 is coming, let's hope it will replace Flash in many places in the near future).

Adobe's bug fixing behavior has never been great and we all know, that Flash for Linux has been permanent beta (or alpha) since we can remember, but enough is enough. There is a severe bug that has now existed for three years, reported by hundreds of users. Adobe closed this report without taking action. Now it has been reported again and I want you to vote for it. Please!

Read more…

#24: The awk basics

Posted by | Comments (2) | Trackbacks (2)

awk is very complex and hard to learn. It is the most difficult task in Linux administrator's lives and drives everyone crazy who tries to learn it. It's written by Gods and used by them, no mortal man can ever learn awk.

In fact…, no! If you know any C-like programming language and regular expressions, awk is absolutely easy and it can make things much easier. It's pretty mighty, but I've never seen any programming language easier than awk (except QBasic).

Read more…

#23: File descriptors

Posted by | Comments (0) | Trackbacks (3)

File descriptors are very essential in programming. When you open a file, you get a token, which identifies the file instance. With this token you refer to the file, write, read or close it. You have about the same on the shell.

Read more…

#22: Processes with high and low priority

Posted by | Comments (4) | Trackbacks (3)

Processes in Linux may run with different priorities so that important processes get more CPU time than less important ones. This priority is called the “nice value” or ”niceness” (NI). The nice value is a number between -20 and +19 with the default value right in the center at 0. The higher this nice value, the “nicer” a process is to others, i.e., the lower its priority.

Read more…

#21: The command line calculator bc

Posted by | Comments (2) | Trackbacks (2)

Performing calculations on the command line is very handy and bc is the tool which does it for you. Also bash can do some calculation stuff, but that's not very intuitive. Bash is built for different things than calculation and so bc is the better choice. It can do much more for you and its syntax is ways easier.

Read more…

#20: Multi-line sed search and replace

Posted by | Comments (11) | Trackbacks (3)

sed is built to process strings (either from STDIN or from a file) line by line. Therefore, you can't search for multiple lines. But there are several ways to work around this. I'll be showing you three ways of performing multi-line replacements.

Read more…

#19: Label partitions

Posted by | Comments (0) | Trackbacks (2)

On Linux devices and their partitions are named automatically when being plugged in. They have a base name (for SCSI devices it's sd), a device identifier (a lowercase letter) and a number for every partition. These names depend on the order in which the devices are plugged in, so they are not static at all.

Read more…

#18: GNU find operators

Posted by | Comments (0) | Trackbacks (2)

This is not a tutorial about find in general as you might expect it. find, and the GNU variant in particular, is very complex and can't be covered in one short blog post and actually, there are many good tutorials on the Internet. Instead, this blog post concentrates on one single aspect of find: operators.

Read more…

#17: Process substitution

Posted by | Comments (2) | Trackbacks (2)

You probably know command substitution. Command substitution executes a command and uses its output as a variable on the shell. The operator for this is either the backtick operator. But did you also know that there is a counterpart of command substitution? This counterpart is called process substitution.

Read more…

#16: Introduction to lsof and fuser

Posted by | Comments (0) | Trackbacks (2)

You've probably heard of lsof and fuser. Since on UNIX systems everything is a file, these tools are absolutely important to know for each system administrator. They can make your work easier and they can also help identifying attacks on your system.

Read more…

#15: Named and unnamed pipes

Posted by | Comments (3) | Trackbacks (2)

Pipes are used very often on UNIX systems. They connect two programs in that way that the STDOUT of the first program becomes the STDIN of the second program.

Read more…

#14: Using screen

Posted by | Comments (5) | Trackbacks (2)

If you work on remote servers via SSH and don't want to open multiple connections, or if you don't have a graphical terminal emulator and don't want to open several concurrent ttys, screen is the right tool for you.

Read more…

   (Page 3 of 5, totaling 64 entries)
Design and Code Copyright © 2010-2024 Janek Bevendorff Content on this site is published under the terms of the GNU Free Documentation License (GFDL). You may redistribute content only in compliance with these terms.