Tag Archives: Management

ইউনিক্স প্রসেস ম্যানেজমেন্ট (Unix – Processes Management)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

ইউনিক্স সিস্টেমে প্রোগ্রাম রান করানোর সময় সিস্টেম প্রোগ্রামের উপযুক্ত পরিবেশ তৈরি করে নেয়। অপারেটিং সিস্টেম pid বা প্রসেস আইডি দ্বারা প্রসেসকে ট্র্যাক করে।

 

প্রসেস শুরু করা

প্রসেস শুরু বা রান করানোর সময় দুই ভাবে আমরা এটি করতে পারি,

  • ফোরগ্রাউন্ড প্রক্রিয়ায় ও
  • ব্যাকগ্রাউন্ড প্রক্রিয়ায়

 

ফোরগ্রাউন্ড প্রক্রিয়া

ফোরগ্রাউন্ড প্রক্রিয়ায় সব ফাইলকে ডিরেক্টরিতে তালিকাবদ্ধ দেখতে চাইলে যে কম্যান্ড ব্যবহার করতে হবে তা হল,


$ls ch*.doc

 

.doc দ্বারা শেষ হওয়া নামের সব ফাইল এখানে দেখাবে,


ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc   ch02-1.doc

 

ব্যাকগ্রাউন্ড প্রক্রিয়া

এটি শুরু করার জন্য কমান্ডে ( &) চিহ্ন ব্যবহার করা হয়,


$ls ch*.doc
&

 

ch দ্বারা শুরু ও .doc দ্বারা শেষ এমন নামের ফাইলের জন্য,


ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc   ch02-1.doc


 

এবার এন্টার চাপলে আমরা দেখতে পাব,


[1]  +  Done                 ls ch*.doc&
$

 

রানিং প্রক্রিয়া লিস্টিং করা

ps কম্যান্ড ব্যবহার করে আমরা এটি করতে পারব,


$ps
PID       TTY      TIME        CMD
18358     ttyp3    00:00:00    sh
18361     ttyp3    00:01:31    abiword
18789     ttyp3    00:00:00    ps

 

ps এর জন্য সবচেয়ে বেশি ব্যবহৃত ফ্ল্যাগ হল –f,


$ps -f
UID      PID  PPID C STIME    TTY   TIME CMD
amrood   6738 3662 0 10:23:03 pts/6 0:00 first_one
amrood   6739 3662 0 10:22:54 pts/6 0:00 second_one
amrood   3662 3657 0 08:10:53 pts/6 0:00 -ksh
amrood   6892 3662 4 10:51:50 pts/6 0:00 ps -f

 

–f কম্যান্ডের অধীনে থাকা সব ফিল্ডের তালিকা,

 

ফিল্ডের তালিকা
UID
PID
PPID
C
STIME
TTY
TIME
CMD

 

ps কম্যান্ডের সাথে ব্যবহৃত হয় এমন আরও কিছু অপশন হল,

 

অপশন
-a
-x
-u
-e

 

প্রসেস থামাতে

কীবোর্ড থেকে CTRL + C চেপে বা ps কম্যান্ড ব্যবহারের পর kill কম্যান্ড ব্যবহার করে প্রসেস থামানো যায়,


$ps -f
UID      PID  PPID C STIME    TTY   TIME CMD
amrood   6738 3662 0 10:23:03 pts/6 0:00 first_one
amrood   6739 3662 0 10:22:54 pts/6 0:00 second_one
amrood   3662 3657 0 08:10:53 pts/6 0:00 -ksh
amrood   6892 3662 4 10:51:50 pts/6 0:00 ps -f
$kill 6738
Terminated

 

যেমন, নিচের উদাহরণে kill -9 কম্যান্ড ব্যবহার করা হয়েছে।


$kill-96738
Terminated

 

কয়েক ধরণের প্রসেস যা ইউনিক্সে অন্তর্ভুক্ত হতে পারে এদের নিচে দেয়া হল,

  • প্যারেন্ট ও চাইল্ড প্রসেস,
  • জম্বি এবং অরফান প্রসেস,
  • ডেমন প্রসেস

 

টপ কম্যান্ড

বিভিন্ন বিষয়ের উপর ভিত্তি করে প্রসেস প্রদর্শনের জন্য টপ কম্যান্ড খুব সুবিধাজনক।

জব আইডি বনাম প্রসেস আইডিঃ ব্যাকগ্রাউন্ড আর সাসপেন্ডেড প্রসেস জব নাম্বারের মাধ্যমে সম্পন্ন হয়,এটি প্রসেস আইডি থেকে ভিন্ন কারণ এটি একটু ছোট।

 

ইউনিক্সঃ ডিরেক্টরি ব্যবস্থাপনা (Unix folder/directory Management)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

ডিরেক্টরি হল একটি ফাইল যার প্রধান কাজ হল ফাইলনেম ও এরকম অন্যান্য তথ্য লিপিবদ্ধ রাখা। সকল ফাইল, তা যেমনই হোক সাধারণ, বিশেষ বা ডিরেক্টরির, তা ডিরেক্টরিতে সংরক্ষিত থাকে।

ফাইল ও ডিরেক্টরি ব্যবস্থাপনার জন্য ইউনিক্স একটি ক্রমবিন্যাসগত কাঠামো ব্যবহার করে। এই কাঠামোকে ডিরেক্টরি ট্রি বলে। এই ট্রিতে সিঙ্গেল রুট নড, স্ল্যাস ক্যারেক্টার ( /) ও অন্যান্য ডিরেক্টরি থাকে যা নিয়ে আমরা নিচে আলোচনা করব।

হোম ডিরেক্টরি

প্রথমে লগইন করার সময় আমরা যে ডিরেক্টরি ব্যবহার করি সেটি হোম ডিরেক্টরি, নিচের কম্যান্ড ব্যবহার করে যেকোনো সময় হোম ডিরেক্টরিতে যাওয়া যায়


 $cd ~
 $

 

এখানে ~ চিহ্ন হোম ডিরেক্টরি নির্দেশক। অন্য কোনও ইউজারনেম ডিরেক্টরিতে যেতে চাইলে,


 $cd ~username
 $

 

সর্বশেষ ডিরেক্টরিতে যেতে চাইলে,


 $cd -
 $

 

পরম/আপেক্ষিক পাথনেম

ডিরেক্টরিগুলো ক্রমবিন্যাসে সজ্জিত, উপরে (/) চিহ্ন নিয়ে। ক্রমবিন্যাসে সজ্জিত যেকোনো ফাইল এর পাথনেম সহ বিবৃত হয়। এবসলিউট ফাইলনেমের উদাহরণ,


 /etc/passwd
 /users/sjones/chem/notes
 /dev/rdsk/Os3

 

কারেন্ট ওয়ার্কিং ডিরেক্টরিতে পাথনেম আপেক্ষিকও হতে পারে। এক্ষেত্রে স্ল্যাস ক্যারেক্টার ( /) সহ শুরু হবে না। এরকম কিছু পাথনেম নিচের মত হতে পারে,


 chem/notes
 personal/res

 

ক্রমবিন্যাসে ঠিক কোথায় অবস্থান করে কাজ করছি তা জানতে কারেন্ট ওয়ার্কিং ডিরেক্টরি প্রিন্ট করতে pwd কম্যান্ড প্রবেশ করাতে হবে।


 $pwd
 /user0/home/amrood
 $

 

লিস্টিং ডিরেক্টরি

ডিরেক্টরিতে ফাইল লিপিবদ্ধ করতে নিচের সিনট্যাক্স ব্যবহৃত হয়,


$ls dirname

 

নিচের উদাহরণে /usr/local ডিরেক্টরিতে লিপিবদ্ধ সব ফাইল দেখানো হল,


X11       bin          gimp       jikes       sbin
ace       doc          include    lib         share
atalk     etc          info       man         ami

 

ডিরেক্টরি তৈরি করা

নিচের কম্যান্ডগুলোর মাধ্যমে ডিরেক্টরি তৈরি করা যায়,


$mkdir dirname

 

যেমন,


 $mkdir mydir
 $

 

এটি কারেন্ট ডিরেক্টরিতে mydir ডিরেক্টরি তৈরি করে। আরেকটি উদাহরণ হল,


$mkdir /tmp/test-dir
$


 

এটি /tmp ডিরেক্টরিতে test-dir ডিরেক্টরি তৈরি করে, এখানে mkdir কম্যান্ড কোনও আউটপুট দেখাবে না। কম্যান্ড লাইনে একটির বেশি ডিরেক্টরি দিলে mkdir প্রত্যেকটি ডিরেক্টরি তৈরি করবে।


$mkdir docs pub
 $

 

প্যারেন্ট ডিরেক্টরি তৈরি করা

ডিরেক্টরি তৈরির সময় প্যারেন্ট ডিরেক্টরি না থাকলে যে এরর ম্যাসেজ আসবে তা হল,


 $mkdir /tmp/amrood/test
 mkdir: Failed to make directory "/tmp/amrood/test";
 No such file or directory
 $

 

তখন mkdir কম্যান্ডে -p অপশন দ্বারা স্পেসিফাই করা যাবে।


$mkdir -p /tmp/amrood/test
 $

 

ডিরেক্টরি মুছে ফেলা

rmdir কম্যান্ড ব্যবহার করে ডিরেক্টরি মুছে ফেলা যায়,


$rmdir dirname
 $

 

একসাথে অনেকগুলো ডিরেক্টরি তৈরি করতে,


$rmdir dirname1 dirname2 dirname3
 $

 

ডিরেক্টরি পরিবর্তন করা

cd কম্যান্ড ব্যবহার করে ডিরেক্টরি পরিবর্তন করা যায়।


 $cd dirname
 $

 

এখানে dirnameহল সেই ডিরেক্টরির নাম যা আমরা পরিবর্তন করতে চাচ্ছি।


$cd /usr/local/bin
 $

 

এটি directory /usr/local/binতে পরিবর্তন। রিলেটিভ পাথ ব্যবহার করে directory /usr/home/amrood তে পরিবর্তনের জন্য,


$cd ../../home/amrood
 $

 

ডিরেক্টরিকে রিনেম করা

ডিরেক্টরিকে রিনেম করার জন্য mv (move) কম্যান্ড ব্যবহার করা হয় যেমন,


$mv olddir newdir
 $

 

mydir ডিরেক্টরিকে yourdir ডিরেক্টরিতে রিনেম করার জন্য,


$mv mydir yourdir
 $

 

. (dot) ও .. (dot dot) ডিরেক্টরি

একটি কারেন্ট ডিরেক্টরি আর অন্যটি তার এক লেভেল উপরের ডিরেক্টরি নির্দেশ করে। যদি -a অপশন দ্বারা কারেন্ট ডিরেক্টরির সব ফাইল আর –l দ্বারা লং লিস্টিংএর অপশন বুঝাই, তাহলে যে ফলাফল হবে তা এরকম,


$ls -la
drwxrwxr-x   4   teacher  class  2048   Jul 16 17.56 .
drwxr-xr-x   60  root 1          536    Jul 13 14:18 ..
----------   1   teacher  class  4210   May 1 08:27 .profile
-rwxr-xr-x   1   teacher  class  1948   May 12 13:42 memo
$

 

ইউনিক্সঃ ফাইল ব্যবস্থাপনা (Unix – File Management)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

ইউনিক্সে সব ডাটা ফাইলে সজ্জিত থাকে। সব ফাইল ডিরেক্টরিতে সাজানো থাকে। আবার সেই ডিরেক্টরি একটা ট্রি-মতন কাঠামো, যার নাম ফাইল সিস্টেম, এতে সাজানো থাকে। ইউনিক্সে কাজ করার সময় পুরো সময়টা কোনও না কোনও ফাইল নিয়ে কাজ করতে হয়। এই টিউটোরিয়ালে দেখানো হবে কীভাবে ফাইল তৈরি ও মোছা, কপি ও রিনেম আর কীভাবে এতে লিঙ্ক স্থাপন করা হয়।

ইউনিক্সে তিন ধরণের ফাইল দেখা যায়,

  • সাধারণ ফাইল
  • ডিরেক্টরি
  • স্পেশাল ফাইল

 

ফাইল লিস্ট করা

এই কম্যান্ড ব্যবহার করে ফাইল লিস্ট করা যায়,


$ls


 

যার সাধারণ আউটপুট এরকম হতে পারে,


$ls 

bin        hosts   lib     res.03
ch07       hw1     pub     test_results
ch07.bak   hw2     res.01  users
docs       hw3     res.02  work

 

ls কম্যান্ড –l অপশন সমর্থন করে, যা থেকে লিস্টেড ফাইল সম্পর্কে আরও ভালভাবে জানা যায়,


$ls -l
total 1962188
 
drwxrwxr-x  2 amrood amrood      4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood      5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood      4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root        4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root      276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root        4096 Nov 25  2007 usr
drwxr-xr-x  2    200    300      4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root        3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood     20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood      5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood    166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood      4096 May 29  2007 zlib-1.2.3
$

 

ফাইল লাইন প্রেফিক্সের মাধ্যমে শুরু হয়, যা থেকে ফাইল টাইপ সম্পর্কে ধারণা করা যায়।

 

প্রেফিক্স
-
b
c
d
l
p
s

 

মেটা ক্যারেক্টার

ইউনিক্সে মেটাক্যারেক্টারের বিশেষ অর্থ থাকে, যেমন,

 


$ls ch*.doc

 

এটি এমন ফাইল দেখায় যাদের নামের শুরু ch ও শেষ .doc দিয়ে,


ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc   ch02-1.doc c

 

সব ফাইল .doc দিয়ে শেষ করাতে কম্যান্ড ব্যবহার করতে পারি,


$ls*.doc

 

হিডেন ফাইল

এদের প্রথম ক্যারেক্টার dot বা period character (.), এরকম ফাইলের কিছু কমন উদাহরণ,

  • .profile
  • .kshrc
  • .cshrc
  • .rhosts

এসব ফাইল লিস্ট করতে ls −তে -a অপশন স্পেসিফাই করতে হবে,


$ ls -a
 
.         .profile       docs     lib     test_results
..        .rhosts        hosts    pub     users
.emacs    bin            hw1      res.01  work
.exrc     ch07           hw2      res.02
.kshrc    ch07.bak       hw3      res.03
$

 

  • Single dot . মানে কারেন্ট ডিরেক্টরি
  • Double dot .. মানে প্যারেন্ট ডিরেক্টরি

 

ফাইল তৈরি করা

ইউনিক্স সিস্টেমে সাধারণ ফাইল তৈরি করতে vi এডিটর ব্যবহার করা যায়, এই কম্যান্ড ব্যবহার করে।


$ vi filename

 

এডিট মোডে ফাইলে কন্টেন্ট লেখার জন্য কম্যান্ড,


This is unix file....I created it for the first time.....
I'm going to save this content in this file.


 

এডিট মোড থেকে বেরুতেesc এবং ফাইল থেকেই বেরিয়ে আসতেShift + ZZ একসাথে চাপতে হয়।

কারেন্ট ডিরেক্টরিতে filename সহ ফাইল তৈরি করতে,


$ vi filename
$

 

ফাইল এডিট করতে

এজন্য যে কম্যান্ড ব্যবহার করতে পারি তা হল,


$ vi filename

 

ফাইলের কন্টেন্ট ডিসপ্লে করা

cat কম্যান্ড ব্যবহার করে আমরা এটি করতে পারি,


$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$

 

cat কম্যান্ডের সাথে -b অপশন ব্যবহার করে লাইন নাম্বার পেতে পারি,


$ cat -b filename
1   This is unix file....I created it for the first time.....
2   I'm going to save this content in this file.
$

 

ফাইলের শব্দ গণনা করা

এজন্য wc কম্যান্ড ব্যবহার করতে হয়,


$ wc filename
2  19 103 filename
$

 

মাল্টিপল ফাইলের ক্ষেত্রে এটি হবে,


$ wc filename1 filename2 filename3

 

ফাইল কপি করা

cp কম্যান্ড ব্যবহার করে আমরা ফাইল কপি করতে পারি,


$ cp source_file destination_file

 

filename নামের বিদ্যমান ফাইলের ক্ষেত্রে,


$ cp filename copyfile
$

 

ফাইল রিনেম করা

mv কম্যান্ড ব্যবহার করে আমরা ফাইলের নাম রিনেম করতে পারি।


$ mv old_file new_file

 

উদাহরণঃ filename কে newfile এ রিনেম করতে কম্যান্ড,


$ mv filename newfile
$

 

ফাইল ডিলিট করতে

ফাইল ডিলিট করতে rm কম্যান্ড ব্যবহার করতে পারি।এর বেসিক সিনট্যাক্স হল,


$ rm filename

 

 

যেমন, filename নামের ফাইল ডিলিট করতে কম্যান্ড,


$ rm filename
$

 

 

কয়েকটি ফাইল একসাথে ডিলিট করতে কম্যান্ড


$ rm filename1 filename2 filename3
$

 

আদর্শ ইউনিক্স স্ট্রিম

নরমাল অবস্থায় আদর্শ ইউনিক্সে তিনটি স্ট্রিম দেখা যায়,

  • stdin
  • stdout
  • stderr