Linux Basic Commands

Basic Commands

When you open a terminal window in linux you will automatically be in your home directory. To print your current directory

pwd

>/home/des

To go up one directory

cd ..

>/home

To go back home from whatever directory you are type cd

cd

 

List directory

ls

Long listing of directory

ls -l

Long listing including hidden files

ls -la

Long list directories only

ls -ld

Switch user

su

Add a user called des with a home folder /home/des

useradd -m -d /home/des des

Apply or change the password for a user account

passwd des

List users who are logged in to your machine

who

Check the id number of a user

id des

To count the number of files in freds home directory we can pipe ( | ) the results of ls -l into a wc -l command which counts the number of lines

ls -l /home/fred | wc -l

You could also use wc -l to count the number of lines ina text file

cat mytextfile | wc -l

 

Redirection

We can use redirection to send the output of one command to a file. In this example we use sort with a dlimeter of a comma (,) listing numerical column 3 of the stats.txt and storing it in a new file sortedstats.txt

sort -t, -k3n stats.txt > sortedstats.txt

where -t, = field separator of comma  and -k3n = column 3 numerical

Processes

To see a list of the processes running on your machine use the ps command. Pipe it into  more

ps -ef | more

To find all the processes running under user des

ps -ef | grep des

Top will provide a real time view of processes running with some summary infomation.

top

If you find a process you would like to terminate, say PID 2056 you can use the kill command.

kill 2056

If this does not terminate the process you can force a kill with the -9 option

kill -9 2056

To find out what PID the terminal widow you are using is type in the terminal window.

echo $$

For example open a terminal  and type sleep 600 and then open another terminal and find this process using grep

sleep 600

ps -ef | grep sleep

 

Group Definitions

To add a group edit the /etc/group file

vi /etc/group

add

mygroup::223:des,jow,fred

mkdir /home/mygroup

chgrp mygroup /home/mygroup
ls -ld /home/mygroup

Give the group write permission
chmod g+w /home/mygroup 

Turn on set group id on mygroup so all files created in it have group id permissions  

chmod g+s /home/mygroupman chmod

ls -ld /home/mygroup

umask 2 (change umask to 2 to enable write for group automatically)

Find files and directories

To find a file named hostname ignoring case and searching from /

find / -iname hostname

To find all files named zulu and redirect the output into a file named zulufind ignoring errors

find / -name Zulu>zulufind 2>/dev/null

To find a file from the current directory

find . -name passwd

To ignore errors add 2>/dev/null to the end where 2 means stderror and >/dev/null redirects to a null device (basically dumps the errors to nowhere)

find / -name passwd 2>/dev/null

Batch jobs using at

Change to root user in SuSE

su -

In ubuntu use sudo before every administrative task. To install packages inubuntu use sudo apt-get install packagename

sudo apt-get install atd

To schedule a task using at, first make sure you have the service running on you machine.

service atd status

If its not installed, for SuSE you use zypper

zypper in atd

If it's not running start the service

service atd start

Make it start every time the machine boots

chkconfig atd on

To copy your home folder to a backup directory at 23:00 at night as root user type at and  and then the command

at 23:00

Then once you have the at> prompt type your command

at>cp -R /home /backups

 

 

Backups and Archives using tar and gunzip

To make an archive we use the tar command which stands for tape archive. To make an archive of my home directory /home/des, cd to it and type

tar -cvf mytar.tar /home/des/

This will create the archive file mytar.tar in /home/des The -cvf stands for -c = create v = verbose and -f = file archive

To see a list of the contents of the tar file

tar -tvf /home/des/mytar.tar

To compress the tar file, cd  to the directory of the tar file and type

gzip  mytar.tar

This changes the tar file to a tar.gz compressed archive

To uncompress the tar.gz back to a tar

gunzip mytar.tar.gz

And to extract the archive, cd to the directory you want the files in

tar xvf  /home/des/mytar.tar

You can also use a shorcut to uncompress and unpack a tar.gz in one command

gunzip -c mytar.tar.gz | tar xopf -

You can use the short version of tar and gzip which makes a .tgz compressed archive. To archive and compress a folder named des, cd to it directory and use:

tar cvfz  des.tgz des

This creates a compressed archive named des.tgz. To extract the contents you can use:

tar xvzf des.tgz

This extracts the contents of des.tgz into the current directory.

If you want to extract into a specific directory then cd to that directory and use tar. For example if I wnat to untar into desdump directory.

mkdir desdump

cd desdump

tar xvfz ../des.tgz 

Where ../des.tgz is the relative path to the .tgz file. You could also use the full path to the file like /home/des/des.tgz

Find out what version of SuSE linux you have

Linux versions are stored in the /etc directory under a file named XXXX-release where xxxx is the linux version e.g SuSE, Ubuntu etc. So just cat /etc/xxxx-release

cat /etc/SuSE-release

To find the correct file

ls -l /etc | grep .*-release

Using Cron scheduler

Cron is a daemon that executes scheduled commands and is started automatically from /etc/init.d when multiuser run levels are started.

To list all cron jobs

crontab -l

To start a new crontab

crontab -e

Some systems will give you a choice of editor to edit the crontab file, if you want to set yours to a specific editor permanently type

export EDITOR=vi

And to set it for nano

export EDITOR=nano

Use the same process for your favorite editor

Once the file is open add a line containing the format below followed by the command you want to run.

Minute Hour Day of month Month Day Command

0-59    0-23        1-31         1-12    0-6  

0         20           13             *        6

For example to run a cron job command looking at the amount of disk space that is free(df -h)  at 11:30 *(every day of the month) * (every month) 1-5(day of week)

30 11 * * 1-5 df -h

To run every 20 mins from 7 - 5 on mon,wed,fri

0,20,40 7-17 * * 1,3,5 du -sh /var

Networking using arp, ssh, and scp

To list all machines in the address resolution table

arp -a

We can use the Secure Shell (SSH)  network protocol for secure data communication, remote command-line login, remote command execution. First make sure the service is running .

service sshd status

service sshd start

Make it run automatically

chkconfig sshd on

Add a user to another linux machine and ssh to that machine as that user

useradd -m des

Enter your password twice when asked

Now ssh to that machine

ssh des@10.1.54.11

To secure copy the  folder myfolder over the network to /home/joe

scp -r des@10.1.54.11:myfolder /home/joe

To copy the file passwd to a remote machine as newpw

scp /etc/passwd joe@10.3.3.84:newpw

Pages