2014-02-19

ලිනක්ස් Shell Programming පාඩම-කොටස 13



    26.Filter පෙරන වැඩ.
          සාමාන්‍යයෙන් පෙරන්නෙ මොකටද කියල දන්නවනෙ ? අවශ්‍ය දේවල් විතරක් ගන්න ඕන උනාමනෙ අපි පෙරීමක් සිදු කරන්නෙ මේකත් ඒ වගේ දෙයක් තමයි.මේ ගැන වෙනම පාඩමකින් කියලදෙන්නම්.

27.Processes එකක් කියන්නෙ මොකද්ද ?
ඇත්තටම Processes එකක් කියල කියන්නෙ යම් කිසි කියාවලියකට. අපිට ls කියන කමාන්ඩ් එක use කරල ඩිරෙක්ටරි එකක තියෙන දේවල් බලා ගන්න පුලුවන්. ls කමාන්ඩ් එක මගින් ඉල්ලා සිටිනව කම්පියුටර් එකෙන් files හා folders පෙන්නා දෙන්න කියල . සරලවම මේකත් process එකක් කියල කියන්න පුලුවන්. මේ නිසා Processes එකක් program එකක් විදියට හදුන්වන්න පුලුවන් (user දීපු කමාන්ඩ් එකක් ). අපි කමාන්ඩ් එකක් මගින් බලාපොරොත්තු වෙන්නෙ මොකක් හරි විශේෂිත වැඩක් කරගන්නනෙ කමාන්ඩ් එක රන් කරාම ඒකට අදාල process එක සිද්ධ වෙලා අපට ඕන උන දේ සිද්ධ වෙනව.ලිනක්ස් වලදි මොනව හරි process එකක් සිද්ධ වෙනකොට ඒ process එකට නම්බර් එකක් දෙන සිරිතක් තියෙනව. මේ නම්බර් එක process-id එක එහෙම නැත්තම් PID කියල කියල හදුන්වනව. 0 ඉඳල 65535 අතරෙ ඉලක්කමක් තමයි PID එක සඳහා ලබා දෙන්නෙ. එක කමාන්ඩ් එකකට ලබාදෙන pid අගය එක එක වෙලාවල් වලට වෙනස් වෙනව.ඉස්සරහට තවත් මේ ගැන කතා කරනව.
  1. Processes කියන ඒව අවශ්‍ය වෙන්නෙ ඇයි.
දන්නවනෙ ලිනක්ස් කියන්නෙ multi-user, multitasking Os එකක් කියල.ඒ කිව්වෙ එක පාරකට users ල ගොඩ දෙනෙකුට use කරන්නයි.වැඩ ගොඩක් එක පාරකට කරන්නයි පුලුවන් කියන එක. වැඩ ගොඩක් එක පාරට කරනව කිව්වෙ මෙන්න මෙහෙම දෙයක්
අපි හිතමු අපට ඔන අපේ කම්පුටර් එකේ තියන files ඔක්කෝගේම එකතුවක් ගන්න. මෙන්න මේ කමාන්ඩ් එකෙන් පුලුවන් ඒ වැඩේ කරන්න.

ls / -R | wc -l

ඉතින් ගිගාබයිට් දෙසීය තුන්සීය තියෙන අපේ hard disk වල files වල count එකක් ගන්න ගොඩක් වෙලාවක් බලන් ඉන්න ඔනනෙ.මේක ඉවරවෙන කම් කම්පියුටර් එක් දිහා බලන් ඉන්නෙ නැතුව තව කමාන්ඩ් එකක් රන් කරව ගන්න අපට පුලුවන් මේකට තමයි මේ multitasking කියල කියන්නෙ යම් කිසි වැඩ එකකට වැඩි ප්‍රමාණයක් එක වර සිදු කර ගන්න පුලුවන්. සින්දුවක් අහන ගමන් ලියුමක් ලියනව වගේ වැඩත් මේ වගේ.
කලින් ලියපු කමාන්ඩ් එක රන් වෙන අතර තුර වෙන කමාන්ඩ් එකක් වෙනමම රන් කරන්න පුලුවන් නැත්තම් කලින් කමාන්ඩ් එකේ අගට ම & සලකුණ යොදල තව කමාන්ඩ් එකක් ලබාදෙන්න පුලුවන් එක පාරට දෙකම රන් වෙන්න කියල
ls / -R | wc -l & කමාන්ඩ් 2

අපි කලින් කතා කරා නෙ රන් වෙන කමාන්ඩ් එකකට process එකක් කියල හදුන්වනව කියල ඒ වගේම PID ගැනත් කතා කරානෙ මතක තියා ගන්න මේ PID එකෙන් අපට පුලුවන් එකට අදාල process එක refer කරන්න. ඊළඟට බලමු ඒ ගැන.

  1. process හා PID ගැන තව දුරටත්


අපි දැන් කලින් කතා කරපු දේවල් තව දුරටත් පැහැදිලි කරගමු.දැන් පොඩි පොඩි වැඩ ටිකක් කරල බලමු. සමහර දේවල් කරන්න කම්පියුටර් එකේ ඇඩ්මින් ගෙ බලතල ලබා ගන්න ඕන ලින්ක්.........
ඒ නිසා su කමාන්ඩ් එක ටයිප් කරල අඩ්මින් ලොග් වෙන්න.
          1. top :- මේ කමාන්ඩ් එක රන් කරහම අපට දැනට කම්පියුටර් එකේ රන් වෙමින් පවතින ප්‍රොසෙස් ටික බලා ගන්න පුලුවන්.

වම් පැත්තෙ කොනේම තියෙන්නෙ PID එක අදාල ප්‍රොසෙස් එක තවත් memory,cpu වගේ ඒවගෙ usage එක්ත් පෙන්නනව.
ඔකෙන් ඉවත් වෙන්න q හරි ctrl +c හරි press කරන්න.
 *** shift+m යතුරු එබීමෙන් වැඩියෙන්ම මෙමරි use කරන වැඩසටහන උඩට ගන්න පුලුවන්. ***
          1. kill {PID} :- මම කලින් කිව්වනෙ pid එකෙන් ප්‍රොසෙස් එකක් refer කරන්න පුලුවන් කියල මේ තියෙන්නෙ එහෙම කරන විදියක්. අපි හිතමු 2546 කියන ප්‍රොසෙස් එක නවත්වන්න ඔන කියල එතකොටKill 2546 කියන් කමාන්ඩ් එක මගින් ඒදේ කරගන්න පුලුවන්.
**ඇඩ්මින්ට උනත් සියලුම ප්‍රොසෙස් නවත්වන්න බෑ 95-98% ප්‍රමාණයක් වගේ තමයි එයාට පුලුවන්.**

          1. PID එකෙන් වගේම ප්‍රොසෙස් එකේ නමෙනුත් අපට ඒක referකරන්න පුලුවන් එතකොට කරන්නෙ මෙහෙමයි.

killall   {Process-name}
4.ps -ag :- කියන එකෙන් පුලුවන් දැනට රන් වෙමින් තියෙන ප්‍රොසෙස් ටික බලා ගන්න.

          1. kill 0 :- මගින් පුලුවන් රන් වෙමින් තියෙන අපේ ශෙල් එක ඇර අනෙක් ඒව ඔක්කොම කිල් කරන්න.
          2. ps aux :- මේකෙන් පෙන්නනව ප්‍රොසෙස් වල අයිතිය හිමි අය (ඇඩ්මින් හෝ වෙන යම් user )
          3. pstree :- tree එකක් (ගහක අතුබෙදුන) විදියට ප්‍රොසෙස් එක දකින්න පුලුවන්.
          4. අපට පුලුවන් අපි දන්න කියන ප්‍රොසෙස් එකක් රන් වෙනවද කියල බලාගන්න.ඒක බලන්න මේ කමාන්ඩ් එක use කරන්න පුලවන්

ps ax | grep  process name

          1. ps :- මේකෙනුත් පුලුවන් දැනට රන් වෙන ප්‍රොසෙස් බලා ගන්න.



ඔන්න මෙතනින් ලිනක්ස් ශෙල් පාඩම ඉවරයි. ඉවරයි කිව්වට ඉවරම නෑ ඉවර උනේ මූලික සංකල්ප ටික. ඊළඟට තමයි structured shell programming පටන් ගන්නෙ.








2014-02-16

A-Z Of Bash Commands For Bash Learner

බොහෝ වැදගත් වන ලිනකස් කමාන්ඩ්ස් 

A
alias: If creating an alias is what you want, then this is it.
apropos: We’re not the only ones providing help. This command you to search through the Help manual pages.
apt-get: This one works on Debian and Ubuntu distros. It is used to install and search for software packages.
aptitude: See the similarity with the above command? This one does the same thing.
aspell: Got bad spellings? Use the spell checker.
awk:No, this command is not for awkward situations. It lets you find text and replace it. Also, you can sort, index and validate things in a database.

B
basename: Sometimes files and directories have suffixes to their names. This one strips them off it.
bash: GNU Bourne-Again Shell
bc: This command is an arbitrary precision calculator language 
bg: bg could stand for background couldn’t it? Regardless, that’s what it does, sends to the background
break: Exit from a loop
builtin: Run a shell builtin
bzip2: When there’s ‘zip’ in the name, that’s what it does. It compresses or decompresses files that are named.

C
cal: Need a calendar? This command displays one.
case: In ‘case’ you want to perform a command conditionally. This is how to do it.
cat: In programming, ‘cat’ usually stands for concatenate. Here too, but this command displays the content of the files after concatenation.
cd: Change Directory
cfdisk: In Linux, this command is the partition table manipulator
chgrp: This is how you change the ownership of a group.
chmod:‘Ch’ is for change. This one changes the access permissions.
chown: This one sounds too much like clown! Anyway, it’s not funny though. It changes the owner and group of a file.
chroot: Using this you can run a command, but with a different root directory
chkconfig System services (runlevel)
cksum: It displays the CRC checksum ad byte counts.
clear: If you need to clear the terminal screen, use this command.
cmp: Compare two files
comm: Compare two sorted files line by line
command: Run a command - ignoring shell functions
continue: This is for resuming the next iteration of a particular loop.
cp: Make a copy of files to a different location.
cron: Daemon to execute scheduled commands
crontab: Scheduling is sometimes very important. This command does it, it schedules a command that will run at a specified time.
csplit: Split a file into context-determined pieces
cut: When you need to cut down a file into parts, this is the command to use.

D

date: Use this command to change the date and time.
dc: The command stands for Desk Calculator.
ddrescue: Like most other such commands, this is the disk recovery tool.
declare: This command is used to declare the variables and to give attributes.
df: When you want to know the free space on your disk, use this.
diff: This command prints the differences between two files.
diff3: This is the same command as the previous one, but for three files.
dig: Need to lookup the DNS? Use this.
dir: Use this command for listing directory contents briefly.
dircolors: This command is used for colour setup for the ‘ls’ command.
dirname: Use this command to change a full pathname into just a path.
dirs: This command shows you the list of directories that are remembered.
dmesg: Use this command when you want to print kernel and driver messages.
du: Use this command to get an estimation of the file space usage.

E

echo: This command is used for displaying message on the screen.
egrep: This searches for files that have lines matching an extended expression.
eject: Use this when you need to eject a removable media.
enable: Use this to disable or enable bulletin shell commands.
env: Environment variables
ethtool: Ethernet card settings
eval: This command is used when you need to evaluate a many commands.
exec: For executing a command.
exit: Exiting the shell.
expand: This command converts all the tabs to spaces.
export: This command sets an environment variable.
expr: Some evaluate commands, this evaluates expressions.

F

false: Do nothing, unsuccessfully
fdformat: This command is used for low level format of a floppy disk.
fdisk: This is a partition table manipulator for Linux systems.
fg: This command is used for sending a task to the foreground.
fgrep: Use this command to search through files for tasks that match a string.
file: This is used to determine the file type.
find: This is used to find files that match a desired criteria.
fmt: This is used for reformatting paragraph text.
fold: The name is quite suggestive, it wraps text in order to fit a certain width.
format: This simply formats tapes or disks.
free: Use this to see the memory usage.
fsck: This is used for checking the consistency of the file system and repair it.
fuser: This command identifies and kills the process accessing a file.

G

gawk: This command is used to find text within files and replace it.
getopts: Parse positional parameters
grep: Through this you can search in files for lines matching a certain pattern.
groupadd: Use this command to add security user groups.
groupdel: This one is used for deleting a certain group.
groupmod: While the last one deletes, this one modified a group.
groups: Print the names of groups in which an user is located.
gzip: This command is used for compressing and decompressing files.

H

hash: This command is used to refer to the complete pathname of a name argument.
head: Use this for output for the first part of files.
help: Display the built in help for a command.
history: Command History
hostname: Print or set system name

I

iconv: Use this to convert the character set in files.
id: Display the group ids or user ids.
if: Conditional command.
ifconfig: Used to configure network interfaces.
ifdown: Use this command for stopping a network interface. 
ifup: Start a network interface app with this command.
import: Used for the X server. Capture a screen and save image.
Install: Set attributes and copy files

J

jobs: Use this for listing jobs that are active.
Join: This one joins lines, which are on a common field.

K

kill: Stops a process from running.
Killall: Kills the processes by name.

L

less: This command displays the output on a single screen at a time.
let: This is for doing arithmetic on shell variables.
link: This command is used for creating a link to another file. 
ln: This one creates a symbolic link to another file.
local: Use this for creating variables.
locate: This one is used for finding files.
logname: This is used to print the login name being used currently.
logout: Use this command to exit a login shell.
look: When you just want to see lines that start with a particular string.
lpc: It stands for Line Printer Control.
lpr: This is for offline print.
lprint: Use this command to print a file.
lprintd: Use this to abort an ongoing print job.
lprintq: This command lists the print queue.
lprm: This removes the jobs from the print queue.

M

make: This command is used for recompiling the group of programs. 
man: This is short for manual and provides help on a command.
mkdir: Creating directories.
mkfifo: Use this to make FIFOs.
mknod: This is to create character special files or block files.
more: This displays the output, but in a single screen at a time.
mount: Used for mounting a particular filesystem.
mtools: Manipulating files from MS-DOS.
mtr: Network diagnostics command for things like ping and traceroute.
mv: Used for moving and renaming files and directories.
mmv: Mass Move and Rename

N

netstat: Get information on networking.
nice: Use this to set the priority of a job or a command.
nl: Write files and number lines.
nohup: This one runs a command, which is not affected by hangups.
notify-send: This command sends desktop notifications.
nslookup: This command is used to query internet name servers interactively.

O

open: This command opens a file in its default application.
op: Use this command for gaining operator access.

L

less: This command displays the output on a single screen at a time.
let: This is for doing arithmetic on shell variables.
link: This command is used for creating a link to another file. 
ln: This one creates a symbolic link to another file.
local: Use this for creating variables.
locate: This one is used for finding files.
logname: This is used to print the login name being used currently.
logout: Use this command to exit a login shell.
look: When you just want to see lines that start with a particular string.
lpc: It stands for Line Printer Control.
lpr: This is for offline print.
lprint: Use this command to print a file.
lprintd: Use this to abort an ongoing print job.
lprintq: This command lists the print queue.
lprm: This removes the jobs from the print queue.

M

make: This command is used for recompiling the group of programs. 
man: This is short for manual and provides help on a command.
mkdir: Creating directories.
mkfifo: Use this to make FIFOs.
mknod: This is to create character special files or block files.
more: This displays the output, but in a single screen at a time.
mount: Used for mounting a particular filesystem.
mtools: Manipulating files from MS-DOS.
mtr: Network diagnostics command for things like ping and traceroute.
mv: Used for moving and renaming files and directories.
mmv: Mass Move and Rename

N

netstat: Get information on networking.
nice: Use this to set the priority of a job or a command.
nl: Write files and number lines.
nohup: This one runs a command, which is not affected by hangups.
notify-send: This command sends desktop notifications.
nslookup: This command is used to query internet name servers interactively.

O

open: This command opens a file in its default application.
op: Use this command for gaining operator access.

P

passwd: Use this command to modify user passwords.
paste: This command is used for merging lines in files.
pathchk: It is used to check the portability of a file name.
ping: This command is used for testing network connections.
pkill: This command stops processes from running.
popd: This command restores the previous value of the directory you’re currently in.
pr: Prepare your files for printing using this.
printcap: Printer capability database
printenv: Print environment variables
printf: This command is used for formatting and printing data.
ps: This stands for Process Status.
pushd: Change the directory and save it first.
pwd: It stands for Print Working Directory.

Q

quota: This command displays the disk usage and its limits.
quotacheck: This commands lets you scan a file system to find its disk usage.
quotactl: This is used to set disk quotas.

R

ram: Ram disk device
rcp: When using two machines, this command copies files between them.
read: This commands is used for reading a line from standard input.
readarray: This commands reads from stdin into an array variable.
readonly: This command marks the variables and functions as readonly.
reboot: Self explanatory, use this command to reboot your system.
rename: Rename files
renice: This command alters the priority of the processes running. 
remsync: This command synchronises remote files through email.
return: This is used to exit from a shell function.
rev: This command reverses the lines in a file.
rm: Use this to remove particular files.
rmdir: Same as above, but for directories.
rsync: This is for synchronising file trees.

S

screen: Use this to run remote shells using ssh.
scp: This is used to create a secure copy.
sdiff: This command is used to merge two files in a secure manner.
sed: This is for the stream editor.
select: This is used when you need to accept keyboard inputs.
seq: This command is used for printing numeric sequences.
set: This command lets you manipulate shell functions and variables.
sftp: Run the secure file transfer program using this.
shift: This command is used for shifting positional parameters.
shopt: Shopt stands for Shell Options.
shutdown: Use this command when you want to shutdown Linux or restart it.
sleep: Add a delay using this command.
slocate: This is used to find particular files.
sort: Text files are sorted using this.
source: This command is used for running commands from a file.
split: This command is used to break a file into fixed sizes.
ssh: This is used to run the remote login program, that is, the secure shell client.
strace: This is used to trace signals and system calls.
su: Substitute the user identity using this command.
sudo: This is used for executing commands as a different user.
sum: File cheksums are printed using this command.
suspend: This command is used to suspend the execution of the current shell.
sync: This command is used in order to synchronise data from a disk with the memory.

T
tail: Use this command when you want to output only the last part of a file.
tar: This command is used in order to store a list or extract files in an archive.
tee: This command is used for redirecting output into multiple files.
test: This command is used for evaluating conditional expressions.
time: The running time of a program can be measured using this command.
timeout: This command is used to put a time limit on a command.
times: Use this to find the user and system times.
touch: Timestamps on a file can be changed using this.
top: This is used to get a list of the processes that are running on the system.
traceroute: Use this command to Trace Route to a host.
tr: Delete characters, translate or squeeze them.
tsort: This is used for topological sorting.
tty: This is used for printing the filename of terminal on stdin.

U

ulimit: This commands limits the user resources.
umask: This is used to determine the file permission for a new file.
umount: This command will unmount a device from the system.
unalias: This command will remove an alias.
uname: This command will print the system information.
unexpand: This command will convert the spaces in a file to tabs.
uniq: This command will uniquify your files.
units: This will convert the units from one scale to another.
unset: This command removes the variable names or the function names.
unshar: This command unpacks the shell archive scripts.
until: This command will execute a command until there is an error.
uptime: This command will show the uptime.
useradd: Use this command when you need a new user account to be created.
userdel: This command will delete an user account from your system.
usermod: Self explanatory, modify an user account.
users: This command gives you a list of users who are currently logged in.
uuencode: This command will encode binary files.

V

v: This command lists the contents of a directory.
vdir: Same as above.
vi: This is a text editor.
vmstat: This command will report on the virtual memory statistics.

W

wait: This command directs the system to wait for a process to finish.
watch: This command will display or execute a program periodically.
wc: This command prints the word, byte and line counts.
whereis: This command will search a user’s $path, source files and man pages 
which: This command searches only for a user’s $path for a program.
while: Use this to execute commands.
who: This command will print the usernames that are currently logged into the system.
whoami: This is a command that prints the current name and user id.
wget: This will retrieve the web pages or files through HTTP, HTTPS or FTP.
write: Use this to send messages to other users.

X

xargs: This command execute’s a utility and passes a constructed argument list.
xdg-open: This lets you open an URL or a file in the user's preferred application.

Y
yes: This command will print a string until it is interrupted.