Useful Commands For The Linux Command Line

Want to support HowtoForge? Become a subscriber!
 
Submitted by Eldmannen (Contact Author) (Forums) on Fri, 2007-03-09 17:49. :: Linux | Shell

Useful commands for the Linux command line

This short guide shows some important commands for your daily work on the Linux command line.

arch

Outputs the processor architecture.

$ arch

i686

cat

Outputs the contents of a file.

$ cat lorem.txt

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

cd

Change the working directory.

$ cd /bin

chgrp

Change group ownership of files.

$ chgrp games moo.txt

chmod

Change access permissions of files.

$ chmod +x helloworld

chown

Change file owner and group.

# chown root lorem.txt

cksum

Print CRC checksum and byte counts of each file.

$ cksum lorem.txt moo.txt

3570240675 453 lorem.txt
4294967295 0 moo.txt

cp

Copies a file.

$ cp lorem.txt copy_of_lorem.txt

date

Outputs the current date and time.

$ date

Sat Mar  3 12:07:09 GMT 2007

df

Reports the amount of disk space used and available on filesystems.

$ df

Filesystem           1K-blocks      Used Available Use% Mounted on<br>
/dev/simfs            39845888    218048  39627840   1% /

dir

List directory contents.

$ dir

copy_of_lorem.txt  lorem.txt  moo.txt  www

du

Estimate file space usage.

$ du -h /bin

7.8M    /bin

echo

Display a line of text.

$ echo foobar

foobar

exit

Cause the shell to exit.

$ exit

fgrep

Print lines matching a pattern in a file.

$ fgrep "irure dolor" lorem.txt

commodo consequat. Duis aute irure dolor in reprehenderit in voluptate

find

Search for files in a directory hierarchy.

$ find hello*

hello_world
hello_world.c

free

Display amount of free and used memory in the system.

$ free

             total       used       free     shared    buffers     cached
Mem:       8299892    8287708      12184          0    2641772    1731236
Low:       3581300    3572764       8536
High:      4718592    4714944       3648
-/+ buffers/cache:    3914700    4385192
Swap:      8193140    2335664    5857476

grep

Print lines matching a pattern.

$ grep -i apple fruitlist.txt

apple

groups

Outputs the user groups of which your account belongs to.

$ groups

games users

head

Output the first part of files.

$ head -2 lorem.txt

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim

hostname

Outputs the machines hostname on the network.

$ hostname

anapnea.net

id

Outputs user id, group id, and groups of your account.

$ id

uid=1478(smallfoot) gid=100(users) groups=35(games),100(users)

kill

End a process.

$ kill -9 18298

-bash: kill: (18298) - Operation not permitted

killall

Kill processes by name.

$ killall irssi

irssi(18298): Operation not permitted
irssi(13372): Operation not permitted
irssi(22048): Operation not permitted
irssi: no process killed

last

Show listing of last logged in users.

$ last -n 3

alice    pts/6        192.0.34.166     Fri May 18 16:17   still logged in
bob      pts/2        64.233.183.103   Fri May 18 16:17   still logged in
clare    pts/6        72.5.124.61      Fri May 18 15:54 - 15:55  (00:01)

ldd

Print shared library dependencies.

$ ldd /bin/bash

        libncurses.so.5 => /lib/libncurses.so.5 (0x40023000)
        libdl.so.2 => /lib/libdl.so.2 (0x40065000)
        libc.so.6 => /lib/libc.so.6 (0x40069000)
        /lib/ld-linux.so.2 (0x40000000)

ln

Make links between files.

$ ln -s data.txt symlink.txt

logname

Print user's login name.

$ logname

smallfoot

ls

List directory contents.

$ ls

copy_of_lorem.txt  lorem.txt  moo.txt  www

man

Opens the manual page for a software or function.

$ man bash

md5sum

Outputs the MD5 hash sum of a file.

$ md5sum lorem.txt

56da9e37259af34345895883e6fd1a27  lorem.txt

mkdir

Makes a directory.

$ mkdir foobar

mv

Moves a file.

$ mv lorem.txt ipsum.txt

nl

Number lines of files.

$ nl lorem.txt

     1  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
     2  tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
     3  veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
     4  commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
     5  velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
     6  occaecat cupidatat non proident, sunt in culpa qui officia deserunt
     7  mollit anim id est laborum.

nm

List symbols from object files.

$ nm hello_world

080494a0 D _DYNAMIC
0804956c D _GLOBAL_OFFSET_TABLE_
08048474 R _IO_stdin_used
         w _Jv_RegisterClasses
08049490 d __CTOR_END__
0804948c d __CTOR_LIST__
08049498 d __DTOR_END__
...

od

Dump files in octal and other formats.

$ od -t x /bin/sh

2376640 00098020 000054d4 00000000 00000000
2376660 00000020 00000000 000000c7 00000008
2376700 00000003 080e6500 0009d4f4 00004ae8
...

pidof

Find the process ID of a running program.

$ pidof fetchmail

22392

ping

Pings a host.

$ ping -c 2 127.0.0.1

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.052 ms

--- 127.0.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.048/0.050/0.052/0.002 ms

ps

Outputs running processes.

$ ps

  PID TTY          TIME CMD
21542 pts/12   00:00:00 bash
27706 pts/12   00:00:00 ps

pstree

Display a tree of processes.

$ pstree

init-+-2*[BitchX]
     |-3*[bash---sleep]
     |-fetchmail
     |-screen-+-bash---irssi
     |        `-bash---ctorrent
     |-screen-+-bash---lisp.run
     |        |-bash---vi
     |        |-2*[bash]
     |        `-bash---lynx
     |-2*[screen---bash---irssi]
     |-screen---irssi
     |-screen---bash
     |-screen-+-bash
     |        `-irssi
     |-skjerm---irssi
     |-sshd-+-5*[sshd---sshd---bash---irssi]
     |      |-8*[sshd---sshd---bash]
     |      |-sshd---sshd---bash---screen
     |      |-sshd---sshd
     |      `-sshd---sshd---bash---pstree
     `-syslog-ng

pwd

Outputs the name of current working directory.

$ pwd

/home/smallfoot

rm

Removes a file or directory.

$ rm lorem.txt

rmdir

Removes a directory.

$ rmdir foobar

sed

Stream editor for filtering and transforming text.

$ echo "My cat's name is Bob" | sed -e 's/Bob/Mittens/g'

My cat's name is Mittens

sha1sum

Outputs the SHA1 hash sum of a file.

$ sha1sum lorem.txt

c942ddebd142ec8bacac9213d48096e74bab4957  lorem.txt

shutdown

Bring the system down in a secure way. All logged-in users are notified that the system is going down.

$ shutdown now

size

List section sizes and total size.

$ size /bin/bash

   text    data     bss     dec     hex filename
 621233   22712   19176  663121   a1e51 /bin/bash

stat

Outputs file status.

$ stat lorem.txt

  File: `lorem.txt'
  Size: 453             Blocks: 8          IO Block: 4096   regular file
Device: 77h/119d        Inode: 27312217    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1478/smallfoot)   Gid: (  100/   users)
Access: 2007-03-03 12:24:39.000000000 +0000
Modify: 2007-03-03 12:24:39.000000000 +0000
Change: 2007-03-03 12:24:39.000000000 +0000

strings

Print the strings of printable characters in files.

$ strings hello_world

/lib/ld-linux.so.2
_Jv_RegisterClasses
__gmon_start__
libc.so.6
puts
_IO_stdin_used
__libc_start_main
GLIBC_2.0
PTRh%
[^_]
Hello World!

tail

Output the last part of files.

$ tail -2 lorem.txt

occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.

talk

Talk to another user.

$ talk bob Lookout for the dopefish!

touch

Change a file's access and modification timestamps. If file does not exist, create it.

$ touch lorem.txt

tty

Outputs the name of the current terminal.

$ tty

/dev/pts/16

uname

Outputs operating system, hostname, kernel version, date and timp, and processor.

$ uname -a

Linux anapnea.net 2.6.9 #1 SMP Wed Jul 19 16:24:18 MSD 2006 i686 Intel(R) Xeon(TM) CPU 2.80GHz GenuineIntel GNU/Linux

uptime

Outputs the system uptime.

$ uptime

 14:50:26 up 7 days, 17:52, 18 users,  load average: 0.08, 0.02, 0.01

users

Print the user names of users currently logged in to the current host.

$ users

alice bob charlie eve

vdir

List directory contents.

$ vdir

total 8
-rw-r--r-- 1 smallfoot users 453 Mar  3 12:32 copy_of_lorem.txt
-rw-r--r-- 1 smallfoot users 453 Mar  3 12:24 lorem.txt
-rw-r--r-- 1 smallfoot users   0 Mar  3 12:32 moo.txt
lrwxr-xr-x 1 root      root   18 Feb 27 19:33 www -> /var/www/smallfoot

w

Show who is logged on and what they are doing.

$ w

 12:14:30 up 5 days, 15:16, 19 users,  load average: 0.00, 0.00, 0.00
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
charlie  pts/0     Fri21    3:26m  2.52s  2.52s irssi
alice    pts/2     Wed17   30:21m  0.00s  0.00s -bash
emma     pts/4     11:37   36:57   0.00s  0.00s -bash
frank    pts/5     11:48   11:03   0.00s  0.00s -bash
smallfoo pts/12    12:01    0.00s  0.04s  0.01s w

wall

Send a message to everybody's terminal.

$ wall next week we change the server for a new one

wc

Counts lines in a file.

$ wc -l lorem.txt

7 lorem.txt

whatis

Search the whatis database for complete words.

$ whatis bash

bash                 (1)  - GNU Bourne-Again SHell
bash [builtins]      (1)  - bash built-in commands, see bash(1)

who

Outputs who is currently logged into the system.

$ who

charlie  pts/0        Mar  2 21:37 (xtreme-11-65.acme.com)
alice    pts/2        Feb 28 17:48 (147.21.16.3)
emma     pts/4        Mar  3 11:37 (32.84-48-181.uac.com)
frank    pts/5        Mar  3 11:48 (port-212-202-233-2.foobar.org)
smallfoot pts/12       Mar  3 12:01 (c-12776f4.cust.example.net)

whereis

Locate the binary, source, and manual page files for a command.

$ whereis bash

bash: /bin/bash /etc/bash /usr/share/man/man1/bash.1.gz

whoami

Outputs your username / the name of your account.

$ whoami

smallfoot


Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.
Submitted by CiscoLV (registered user) on Wed, 2011-05-04 18:27.
I needed that!
Submitted by linuxconfig (not registered) on Fri, 2009-12-11 10:36.
Dear Users we have published some useful linux and UNIX commands here http://linuxconfig.net/index.php/commands.html
Submitted by Jens (not registered) on Thu, 2009-12-10 07:02.
Thanks, that was a nice overview.
Submitted by gev (not registered) on Tue, 2009-11-24 07:36.
Submitted by sullinux (registered user) on Mon, 2008-01-28 10:41.

The most common commands in one place...

 http://www.linuxguide.it/linux_commands_line_en.htm

You can download off-line copy. 

Thank you very much :)

Submitted by Zoran (not registered) on Sat, 2009-03-21 07:10.
Excellently written article, if only all bloggers offered the same content as you, the internet would be a much better place. Please keep it up! Cheers
Submitted by sullinux (registered user) on Mon, 2008-09-08 14:58.

we have the pleasure to announce to you the release of Linux Commands Line v.1.3 on new official web site LinuxCMD.org - http://www.linuxcmd.org

 

Help them to improve this work

We would like to thank all those who have helped us in the correction of commands list and in the translations of other languages.

If you have appreciated this work and you want to help us to improve it, following the list of the things to be done.

We would need your help to translate commands description, commands arguments and web site language for those languages:
Russian, German and French.


HELP THEM: http://www.linuxcmd.org/en/linux_com...?MenuShow=ToDo

NEW Tools!
Search button
for Firefox and I.Explorer (it directly looks for the commands from your browser) very useful!

http://www.linuxcmd.org/en/linux_com...lsOperation=m1

Others languages:
http://www.linuxcmd.org      (in english)
http://www.linuxcmd.org/es   (in spanish)
http://www.linuxcmd.org/it    (in italian)
http://www.linuxcmd.org/cz   (in czech)
http://www.linuxcmd.org/pl   (in polish)
http://www.linuxcmd.org/cn   (in chinese)
http://www.linuxcmd.org/by   (in belarusian) 

 

thank you! good work. 

Submitted by brt (registered user) on Thu, 2007-03-15 17:13.
apropos, top, cfdisk, tail (-f), head, find (e.g. with exec example), awk, sed
Submitted by clever.netman (registered user) on Sun, 2008-01-13 20:38.

Thanks for this collection, I use it to remember what I knew.

Also, I want to add some helpful commands:

ifconfig

netstat

nmap

route

tcpdump

service

reboot

poweroff (halt)

Submitted by Ramanathan (registered user) on Sun, 2007-03-11 11:22.

Would have liked more depth into the commands listed in the article. Maybe this could have taken up in multiple posts. To add to the previous list, here is mine.

To catch those control characters (hardly visible in Vi):

cat -vet file-name

Brief output of who (only login names) has active logins :

users

And the following set of commands are useful for beginners:

less, more, vim, vi

/Ram

Submitted by ethan (registered user) on Tue, 2007-03-13 21:05.

Hi there all,

Another really useful one is the 'script' command which will allow you to capture the output of a terminal session to a file for review later.

Great for tutorials and the like.

man script for more details. 

Submitted by sjau (registered user) on Fri, 2007-03-09 23:23.
Nice overview... however I also like pstree very much which displays what process is a child of which other one... I tend to think that is also quite useful.
Submitted by Priya (not registered) on Tue, 2009-03-10 06:40.

Here are few useful command documented

Debugging Java on Linux