Happy 30th birthday, Linux! Thirty years ago, on August 25th, 1991, 21-year-old Finnish student Linus Benedict Torvalds made his now-famous announcement on the comp.os.minix news group, saying that he’s working on a free operating system for 386(486) AT clones, just as a hobby.
Hello everybody out there using minix – I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them 🙂 Linus
PS. Yes – it’s free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(.
Thirty years later, as you can already guess, the little hobby project called “Linux” now runs the technology world. To celebrate this milestone, I’m listing the thirty basic/most-used commands on GNU/Linux operating system.
Side note: this is also requested by a friend of mine on Threema called Niko 🙂
Basic commands
| Command | Description |
|---|---|
cat <filename> | Display file’s contents to the standard output device (usually your monitor). |
cd <directory path> | Change to directory. |
chmod [options] mode filename | Change a file’s permissions. |
chown [options] filename | Change who owns a file. |
clear | Clear a command line screen/window for a fresh start. |
cp [options] source destination | Copy files and directories. |
date [options] | Display or set the system date and time. |
df [options] | Display used and available disk space. |
du [options] | Show how much space each file takes up. |
file [options] filename | Determine what type of data is within a file. |
find [pathname] [expression] | Search for files matching a provided pattern. |
grep [options] pattern [filesname] | Search files or output for a particular pattern. |
kill [options] pid | Stop a process. If the process refuses to stop, use kill -9 pid. |
less [options] [filename] | View the contents of a file one page at a time. |
ln [options] source [destination] | Create a shortcut. |
locate filename | Search a copy of your filesystem for the specified filename. |
lpr [options] | Send a print job. |
ls [options] | List directory contents. |
man [command] | Display the help information for the specified command. |
mkdir [options] directory | Create a new directory. |
mv [options] source destination | Rename or move file(s) or directories. |
passwd [name [password]] | Change the password or allow (for the system administrator) to change any password. |
ps [options] | Display a snapshot of the currently running processes. |
pwd | Display the pathname for the current directory. |
rm [options] directory | Remove (delete) file(s) and/or directories. |
rmdir [options] directory | Delete empty directories. |
ssh [options] user@machine | Remotely log in to another Linux machine, over the network. Leave an ssh session by typing exit. |
su [options] [user [arguments]] | Switch to another user account. |
who [options] | Display who is logged on. |
Other usefull terminal tricks
Here are some other terminal commands that you may find helpfull.
curl
curl is a “command line tool and library for transferring data with URLs.” It is a handy multitool that supports many network protocols. Some basic commands are:
curl --head [domainname]displays HTTP response headers (including security-relevant headers).curl --header '[header]' [domainname]adds the ‘[header]’ to your request.curl --insecure https://[domainname]connects to the domain and ignores any certificate errors.curl --sslv3 https://[domainname]connects to the domain using insecure SSLv3 (also works for other insecure SSL/TLS versions).curl -u user:password -O ftp://[domainname]/[file]downloads a file using username and password authentication via FTP.
dig
dig is part of BIND and can be used to check domains for DNSSEC:
dig [domain-name] +multiline- “status” should be “NOERROR” (“SERVFAIL” means that there is a problem with the DNS server configuration, e.g., DNSSEC configuration is broken)
- “flags” must contain “ad” (authentic data)
dig [domain-name] +multiline +dnssec- This query sets the “DNSSEC OK” (DO) bit and requests DNSSEC records to be sent, if available
- Look for “RRSIG” resource records
dig [domain-name] +trace- This query emulates a DNS resolver. It starts from the root of the DNS hierarchy and works down using iterative DNS queries.
imagemagick
Well-known tools use imagemagick, so it is likely that imagemagick is already installed on your machine. You can use it to remove metadata from photos:
-
Remove metadata:
mogrify -strip [filename]- “-strip” means “strip the image of any profiles, comments or these PNG chunks: bKGD, cHRM, EXIF, gAMA, iCCP, iTXt, sRGB, tEXt, zCCP, zTXt and date”
-
View metadata:
identify -format '%[EXIF:*]' [filename]
pwgen
pwgen is a password generator:
-
Create passwords containing upper-case and lower-case chars, digits and special chars:
pwgen -scyn1 [number-of-characters] [number-of-passwords] -
Create passwords containing upper-case and lower-case chars and digits:
pwgen -scn1 [number-of-characters] [number-of-passwords]
qrencode
qrencode can be used to transform arbitrary strings into QR codes:
qrencode -o [qr-filename].png '[string]'- Change the pixel size:
qrencode -o [qr-filename].png -s [pixel-size] '[string]'
subnetcalc
subnetcalc is a CLI-based calculator for subnets of IPv4 and IPv6 networks.
subnetcalc 192.168.1.1/24prints network, netmask, broadcast address, max. hosts, properties, and more.subnetcalc ashpex.eu.orgprints IP addresses, properties, geo-information about the IP address, and more.