মিডিল স্তরের লিনাক্স ব্যবহারকারীদের জন্য 20 উন্নত কমান্ড


আপনি প্রথম নিবন্ধটি খুব দরকারী খুঁজে পেয়েছেন, এই নিবন্ধটি লিনাক্স নিউবিয়সের জন্য 20 দরকারী কমান্ডের একটি বর্ধিতাংশ। প্রথম নিবন্ধটি newbies জন্য উদ্দেশ্যে করা হয়েছিল এবং এই নিবন্ধটি মধ্য-স্তরের-ব্যবহারকারী এবং উন্নত ব্যবহারকারীদের জন্য। এখানে আপনি কীভাবে অনুসন্ধানকে অনুকূলিতকরণ করবেন, তাদের হত্যা করার জন্য প্রক্রিয়াগুলি পরিচালনা করছে তা জানুন, কীভাবে আপনার লিনাক্স টার্মিনালকে উত্পাদনশীল করা যায় এবং কীভাবে সি, সি ++, জাভা প্রোগ্রামগুলি নিক্সে সংকলন করতে হয়।

21. আদেশ: সন্ধান করুন

পূর্বনির্ধারিত ডিরেক্টরি থেকে শুরু করে উপ-ডিরেক্টরিতে স্থানান্তরিত, প্রদত্ত ডিরেক্টরিতে ফাইলগুলি অনুসন্ধান করুন।

[email :~# find -name *.sh 

./Desktop/load.sh 
./Desktop/test.sh 
./Desktop/shutdown.sh 
./Binary/firefox/run-mozilla.sh 
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh 
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh 
./Downloads/kdewebdev-3.5.8/admin/cvs.sh 
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh 
./Downloads/wheezy-nv-install.sh

দ্রষ্টব্য:\"- নাম" বিকল্পটি অনুসন্ধান কেসকে সংবেদনশীল করে তুলেছে case "- ইনাম" বিকল্পটি কেস নির্বিশেষে কিছু খুঁজে পেতে পারেন। (* একটি ওয়াইল্ডকার্ড এবং এক্সটেনশনযুক্ত সমস্ত ফাইল অনুসন্ধান করে।

[email :~# find -iname *.SH ( find -iname *.Sh /  find -iname *.sH)

./Desktop/load.sh 
./Desktop/test.sh 
./Desktop/shutdown.sh 
./Binary/firefox/run-mozilla.sh 
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh 
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh 
./Downloads/kdewebdev-3.5.8/admin/cvs.sh 
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh 
./Downloads/wheezy-nv-install.sh
[email :~# find -name *.tar.gz 

/var/www/modules/update/tests/aaa_update_test.tar.gz 
./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz 
./home/server/Downloads/drupal-7.22.tar.gz 
./home/server/Downloads/smtp-7.x-1.0.tar.gz 
./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz 
./usr/share/gettext/archive.git.tar.gz 
./usr/share/doc/apg/php.tar.gz 
./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz 
./usr/share/doc/argyll/examples/spyder2.tar.gz 
./usr/share/usb_modeswitch/configPack.tar.gz

দ্রষ্টব্য: উপরের কমান্ডটি মূল ডিরেক্টরিতে এক্সটেনশন ‘টার.gz’ থাকা সমস্ত ফাইল এবং মাউন্টড ডিভাইসগুলি সহ সমস্ত উপ-ডিরেক্টরি অনুসন্ধান করে।

লিনাক্সের আরও সুনির্দিষ্ট উদাহরণগুলি পড়ুন লিনাক্সের 35 টি কমান্ডের উদাহরণগুলিতে 'ফাইন্ড' কমান্ডটি পড়ুন

22. কমান্ড: গ্রেপ

‘গ্রেপ’ কমান্ড প্রদত্ত স্ট্রিং বা শব্দের সাথে মিল থাকা লাইনগুলির জন্য প্রদত্ত ফাইলটি অনুসন্ধান করে। ‘টেকমিন্ট’ ব্যবহারকারীর জন্য ‘/ ইত্যাদি/পাসডাব্লুড’ অনুসন্ধান করুন।

[email :~# grep tecmint /etc/passwd 

tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash

ওয়ার্ড কেস এবং ‘-i’ বিকল্পের সাথে অন্য সমস্ত সমন্বয় উপেক্ষা করুন I

[email :~# grep -i TECMINT /etc/passwd 

tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash

পুনরাবৃত্তভাবে অনুসন্ধান করুন (-আর) অর্থাত্ "127.0.0.1" স্ট্রিংয়ের জন্য প্রতিটি ডিরেক্টরিতে সমস্ত ফাইল পড়ুন।

[email :~# grep -r "127.0.0.1" /etc/ 

/etc/vlc/lua/http/.hosts:127.0.0.1
/etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1"
/etc/mysql/my.cnf:bind-address		= 127.0.0.1
/etc/apache2/mods-available/status.conf:    Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/ldap.conf:    Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/info.conf:    Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/proxy_balancer.conf:#    Allow from 127.0.0.1 ::1
/etc/security/access.conf:#+ : root : 127.0.0.1
/etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1;
/etc/dhcp/dhclient.conf:#  option domain-name-servers 127.0.0.1;
/etc/init/network-interface.conf:	ifconfig lo 127.0.0.1 up || true
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1
/etc/hosts:127.0.0.1	localhost

দ্রষ্টব্য: আপনি এই গ্রেপ সহ নিম্নলিখিত বিকল্পগুলি ব্যবহার করতে পারেন।

  1. -w শব্দের জন্য (উদাহরণস্বরূপ -w ‘শব্দ 1 | শব্দ 2’/পথ/থেকে/ফাইল)
  2. -c গণনার জন্য (অর্থাত, প্যাটার্নের সাথে মিলিত মোটবার সংখ্যা) (গ্রেপ-সি ‘শব্দ '/ পথ/থেকে/ফাইল))
  3. রঙিন আউটপুট জন্য রঙ (গ্রেপ রঙের সার্ভার/ইত্যাদি/পাসডাব্লু)

23. আদেশ: মানুষ

‘মানুষ’ হ'ল সিস্টেমের ম্যানুয়াল পেজার। ম্যান একটি কমান্ড এবং এর ব্যবহারগুলি সহ সমস্ত সম্ভাব্য বিকল্পগুলির জন্য অনলাইন ডকুমেন্টেশন সরবরাহ করে। প্রায় সমস্ত কমান্ড তাদের সংশ্লিষ্ট ম্যানুয়াল পৃষ্ঠাগুলি নিয়ে আসে। উদাহরণ স্বরূপ,

[email :~# man man

MAN(1)                                                               Manual pager utils                                                              MAN(1)

NAME
       man - an interface to the on-line reference manuals

SYNOPSIS
       man  [-C  file]  [-d]  [-D]  [--warnings[=warnings]]  [-R  encoding]  [-L  locale]  [-m  system[,...]]  [-M  path]  [-S list] [-e extension] [-i|-I]
       [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification]  [-p
       string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
       man -k [apropos options] regexp ...
       man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
       man -f [whatis options] page ...
       man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]]
       [-H[browser]] [-X[dpi]] [-Z] file ...
       man -w|-W [-C file] [-d] [-D] page ...
       man -c [-C file] [-d] [-D] page ...
       man [-hV]

ম্যানুয়াল পৃষ্ঠার জন্য ম্যানুয়াল পৃষ্ঠা নিজেই, একইভাবে ‘ম্যান বিড়াল’ (কমান্ডের জন্য ম্যানুয়াল পৃষ্ঠা)।

দ্রষ্টব্য: ম্যান পৃষ্ঠাটি আদেশের রেফারেন্স এবং শেখার জন্য তৈরি।

24. আদেশ: PS

PS (প্রক্রিয়া) পিআইডি নামক একটি অনন্য আইড দিয়ে চলমান প্রক্রিয়াগুলির স্থিতি দেয়।

[email :~# ps

 PID TTY          TIME CMD
 4170 pts/1    00:00:00 bash
 9628 pts/1    00:00:00 ps

প্রক্রিয়া আইডি এবং পিআইডি সহ সমস্ত প্রক্রিয়াগুলির স্থিতি তালিকাবদ্ধ করতে, বিকল্প বিকল্পটি ‘-এ’ ব্যবহার করুন।

[email :~# ps -A

 PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:01 ksoftirqd/0
    5 ?        00:00:00 kworker/0:0H
    7 ?        00:00:00 kworker/u:0H
    8 ?        00:00:00 migration/0
    9 ?        00:00:00 rcu_bh
....

দ্রষ্টব্য: এই কমান্ডটি খুব কার্যকর যখন আপনি জানতে চান কোন প্রক্রিয়াগুলি চলছে বা কখনও কখনও পিআইডি লাগতে পারে, প্রক্রিয়াটি মেরে ফেলার জন্য। আপনি এটি কাস্টমাইজড আউটপুট সন্ধান করতে ‘গ্রেপ’ কমান্ড দিয়ে ব্যবহার করতে পারেন। উদাহরণ স্বরূপ,

[email :~# ps -A | grep -i ssh

 1500 ?        00:09:58 sshd
 4317 ?        00:00:00 sshd

আমাদের প্রয়োজন অনুসারে কাস্টমাইজড এবং প্রাসঙ্গিক আউটপুট সন্ধান করতে এখানে ‘গ্রেস’ কমান্ড দিয়ে পাইপলাইন করা হয়েছে।

25. আদেশ: হত্যা

ঠিক আছে, আপনি হয়ত বুঝতে পেরেছিলেন যে কমান্ডের নাম থেকে এই কমান্ডটি কী। এই কমান্ডটি প্রক্রিয়াটি হত্যার জন্য ব্যবহৃত হয় যা এখন প্রাসঙ্গিক নয় বা সাড়া দিচ্ছে না। এটি একটি খুব দরকারী কমান্ড, বরং একটি খুব দরকারী কমান্ড। আপনি প্রায়শই উইন্ডোজ পুনঃসূচনা করার সাথে পরিচিত হতে পারেন কারণ বেশিরভাগ সময় চলমান প্রক্রিয়াটি হত্যা করা যায় না এবং যদি মারা যায় তবে পুনরায় চালু করার জন্য উইন্ডোগুলির প্রয়োজন হয় যাতে পরিবর্তনগুলি কার্যকর করা যেতে পারে তবে লিনাক্সের জগতে, এ জাতীয় কোনও জিনিস নেই। এখানে আপনি একটি প্রক্রিয়া মেরে ফেলতে পারেন এবং পুরো সিস্টেমটি পুনরায় আরম্ভ না করেই এটি শুরু করতে পারেন।

এটি হত্যা করার জন্য আপনার একটি প্রক্রিয়ার পিড (পিএস) প্রয়োজন।

ধরা যাক আপনি প্রোগ্রামটি "অ্যাপাচি 2" হত্যা করতে চান যা সম্ভবত সাড়া দিচ্ছে না। গ্রেপ কমান্ডের সাথে ‘পিএস-এ’ চালান।

[email :~# ps -A | grep -i apache2

1285 ?        00:00:00 apache2

প্রক্রিয়াটি অনুসন্ধান করুন ‘অ্যাপাচি 2’, এর পিডটি নোট করুন এবং এটি হত্যা করুন। উদাহরণস্বরূপ, আমার ক্ষেত্রে ‘অ্যাপাচি 2’ পিডটি ‘1285’।

[email :~# kill 1285 (to kill the process apache2)

দ্রষ্টব্য: আপনি যখনই কোনও প্রক্রিয়া পুনরায় চালনা করেন বা কোনও সিস্টেম শুরু করেন, প্রতিটি প্রক্রিয়াটির জন্য একটি নতুন পিড উত্পন্ন হয় এবং আপনি বর্তমান চলমান প্রক্রিয়াগুলি এবং এর পিড সম্পর্কে জানতে পারেন 'পিএস' কমান্ডটি ব্যবহার করে।

একই প্রক্রিয়াটি হত্যার আরেকটি উপায়।

[email :~# pkill apache2

দ্রষ্টব্য: কিলের সিগন্যাল প্রেরণের জন্য কাজের আইডি/প্রসেস আইডি প্রয়োজন, যেখানে প্যাকিল হিসাবে আপনার কাছে প্যাটার্ন ব্যবহার করার, প্রক্রিয়াটির মালিক নির্দিষ্টকরণের বিকল্প রয়েছে etc.

26. আদেশ: Thereis

কমান্ডের বাইনারি, সোর্স এবং ম্যানুয়াল পৃষ্ঠাগুলি সনাক্ত করতে "thereis" কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, ‘ls’ এবং ‘হত্যা’ কমান্ডের বাইনারি, উত্স এবং ম্যানুয়াল পৃষ্ঠাগুলি সন্ধান করতে।

[email :~# whereis ls 

ls: /bin/ls /usr/share/man/man1/ls.1.gz
[email :~# whereis kill

kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz

দ্রষ্টব্য: কখনও কখনও ম্যানুয়াল সম্পাদনার জন্য বাইনারিগুলি কোথায় ইনস্টল করা হয় তা জানার জন্য এটি দরকারী।

27. আদেশ: পরিষেবা

‘পরিষেবা’ কমান্ড একটি ‘পরিষেবা’ শুরু করা, থামানো বা পুনঃসূচনা নিয়ন্ত্রণ করে। পরিবর্তনগুলি কার্যকরভাবে কার্যকর করার জন্য এই কমান্ডটি সিস্টেমটি পুনরায় আরম্ভ না করেই কোনও পরিষেবা শুরু, পুনরায় আরম্ভ বা থামানো সম্ভব করে।

[email :~# service apache2 start

 * Starting web server apache2                                                                                                                                 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (pid 1285) already running						[ OK ]
[email :~# service apache2 restart

* Restarting web server apache2                                                                                                                               apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName  [ OK ]
[email :~# service apache2 stop

 * Stopping web server apache2                                                                                                                                 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting                                                           		[ OK ]

দ্রষ্টব্য: সমস্ত প্রক্রিয়া স্ক্রিপ্ট '/etc/init.d' এ রয়েছে এবং সেই পথটি নির্দিষ্ট সিস্টেমে অন্তর্ভুক্ত করার প্রয়োজন হতে পারে, "সার্ভিস অ্যাপাচি 2 শুরু" চালানোর পরেও আপনাকে "/ etc /" চালনা করতে বলা হবে init.d/apache2 শুরু করুন "।

28. কমান্ড: ওরফে

ওরফে শেল কমান্ড একটি অন্তর্নির্মিত যা আপনাকে দীর্ঘ কমান্ড বা ঘন ঘন ব্যবহৃত কমান্ডের জন্য নাম নির্ধারণ করতে দেয়।

আমি প্রায়শই ‘ls -l’ কমান্ড ব্যবহার করি, এতে স্থান সহ 5 টি অক্ষর অন্তর্ভুক্ত রয়েছে। তাই আমি এর জন্য একটি নাম রাখি ‘এল’।

[email :~# alias l='ls -l'

এটি কাজ করে কিনা তা পরীক্ষা করে দেখুন।

[email :~# l

total 36 
drwxr-xr-x 3 tecmint tecmint 4096 May 10 11:14 Binary 
drwxr-xr-x 3 tecmint tecmint 4096 May 21 11:21 Desktop 
drwxr-xr-x 2 tecmint tecmint 4096 May 21 15:23 Documents 
drwxr-xr-x 8 tecmint tecmint 4096 May 20 14:56 Downloads 
drwxr-xr-x 2 tecmint tecmint 4096 May  7 16:58 Music 
drwxr-xr-x 2 tecmint tecmint 4096 May 20 16:17 Pictures 
drwxr-xr-x 2 tecmint tecmint 4096 May  7 16:58 Public 
drwxr-xr-x 2 tecmint tecmint 4096 May  7 16:58 Templates 
drwxr-xr-x 2 tecmint tecmint 4096 May  7 16:58 Videos

উপন্যাস ‘এল’ অপসারণ করতে, নিম্নলিখিত ‘আনালিয়াস’ কমান্ডটি ব্যবহার করুন।

[email :~# unalias l

পরীক্ষা করুন, যদি ‘l’ এখনও উপনাম বা না থাকে।

[email :~# l

bash: l: command not found

এই আদেশ থেকে সামান্য মজা করা। অন্য কিছু গুরুত্বপূর্ণ কমান্ডের জন্য কয়েকটি গুরুত্বপূর্ণ কমান্ডের উপকরণ তৈরি করুন।

alias cd='ls -l' (set alias of ls -l to cd)
alias su='pwd' (set alias of pwd to su)
....
(You can create your own)
....

এখন যখন আপনার বন্ধু ‘সিডি’ টাইপ করেন, ঠিক তখনই ভাবুন যখন তিনি ডিরেক্টরিতে তালিকাভুক্ত হন এবং ডিরেক্টরি পরিবর্তন হয় না তখন তা কত মজার হবে। এবং যখন তিনি ‘সু’ হওয়ার চেষ্টা করেন তখন তার সমস্ত কিছুই কার্যকরী নির্দেশিকার অবস্থান। উপরে বর্ণিত হিসাবে আপনি পরে "উনালিয়াস" কমান্ড ব্যবহার করে উপনামটি সরিয়ে ফেলতে পারেন।

29. আদেশ: df

ফাইল সিস্টেমের ডিস্ক ব্যবহারের রিপোর্ট করুন। ব্যবহারকারীদের পাশাপাশি সিস্টেম অ্যাডমিনিস্ট্রেটরদের তাদের ডিস্কের ব্যবহারের উপর নজর রাখার জন্য দরকারী। ‘ডিএফ’ ডিরেক্টরি এন্ট্রিগুলি পরীক্ষা করে কাজ করে, যা সাধারণত কোনও ফাইল বন্ধ হয়ে গেলে আপডেট হয়।

[email :~# df

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       47929224 7811908  37675948  18% /
none                   4       0         4   0% /sys/fs/cgroup
udev             1005916       4   1005912   1% /dev
tmpfs             202824     816    202008   1% /run
none                5120       0      5120   0% /run/lock
none             1014120     628   1013492   1% /run/shm
none              102400      44    102356   1% /run/user
/dev/sda5         184307   79852     94727  46% /boot
/dev/sda7       95989516   61104  91045676   1% /data
/dev/sda8       91953192   57032  87218528   1% /personal

‘ডিএফ’ কমান্ডের আরও উদাহরণের জন্য, লিনাক্সে 12 ডিএফ কমান্ড উদাহরণটি পড়ুন।

30. আদেশ: du

ফাইল স্পেস ব্যবহারের প্রাক্কলন করুন। ডিস্কের ব্যবহারের সংক্ষিপ্তসারগুলি সর্বদা আক্রমিকভাবে, অর্থাত্ পুনরাবৃত্ত পদ্ধতিতে ফাইল করে put

[email :~# du

8       ./Daily Pics/wp-polls/images/default_gradient
8       ./Daily Pics/wp-polls/images/default
32      ./Daily Pics/wp-polls/images
8       ./Daily Pics/wp-polls/tinymce/plugins/polls/langs
8       ./Daily Pics/wp-polls/tinymce/plugins/polls/img
28      ./Daily Pics/wp-polls/tinymce/plugins/polls
32      ./Daily Pics/wp-polls/tinymce/plugins
36      ./Daily Pics/wp-polls/tinymce
580     ./Daily Pics/wp-polls
1456    ./Daily Pics
36      ./Plugins/wordpress-author-box
16180   ./Plugins
12      ./May Articles 2013/Xtreme Download Manager
4632    ./May Articles 2013/XCache

দ্রষ্টব্য: ‘ডিএফ’ কেবল ফাইল সিস্টেমে ব্যবহারের পরিসংখ্যানের প্রতিবেদন করে, অন্যদিকে, ‘ডু’, ডিরেক্টরি সামগ্রীর পরিমাপ করে। আরও ‘ডু’ কমান্ডের উদাহরণ এবং ব্যবহারের জন্য, 10 ডু (ডিস্ক ব্যবহার) কমান্ডগুলি পড়ুন।

31. আদেশ: আরএম

‘Rm’ কমান্ডটি অপসারণের জন্য বোঝায়। rm ফাইল (গুলি) এবং ডিরেক্টরিগুলি সরাতে ব্যবহৃত হয়।

[email :~# rm PassportApplicationForm_Main_English_V1.0

rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory

ডিরেক্টরিটি কেবল ‘আরএম’ কমান্ড দিয়ে মুছে ফেলা যায় না, আপনাকে ‘আরএম’ এর সাথে ‘-আরএফ’ সুইচও ব্যবহার করতে হবে।

[email :~# rm -rf PassportApplicationForm_Main_English_V1.0

সতর্কতা: "rm -rf" কমান্ডটি একটি ধ্বংসাত্মক কমান্ড যদি দুর্ঘটনাক্রমে আপনি এটি ভুল ডিরেক্টরিতে পরিণত করেন। আপনি একবার ‘rm -rf’ ডিরেক্টরিতে সমস্ত ফাইল এবং ডিরেক্টরি নিজেই চিরতরে হারিয়ে যান, হঠাৎ করে। সাবধানতার সাথে এটি ব্যবহার করুন।

32. আদেশ: প্রতিধ্বনি

নাম হিসাবে প্রতিধ্বনিত হয় স্ট্যান্ডার্ড আউটপুটে একটি পাঠ্য প্রতিধ্বনিত করে। শেলের সাথে এর কোনও যোগসূত্র নেই, বা শেল ইকো কমান্ডের আউটপুটও পড়ে না। তবে একটি ইন্টারেক্টিভ স্ক্রিপ্টে ইকো বার্তাটি টার্মিনালের মাধ্যমে ব্যবহারকারীর কাছে পৌঁছে দেয়। এটি কমান্ডগুলির মধ্যে একটি যা সাধারণত স্ক্রিপ্টিং, ইন্টারেক্টিভ স্ক্রিপ্টিংয়ে ব্যবহৃত হয়।

[email :~# echo "linux-console.net is a very good website" 

linux-console.net is a very good website

১. ডেস্কটপে ‘ইন্টারেক্টিভ_শেল.শ’ নামে একটি ফাইল তৈরি করুন। (মনে রাখবেন ‘.শ’ এক্সটেনশন অবশ্যই)
2. নীচের স্ক্রিপ্টটি অনুলিপি করুন এবং ঠিক একইভাবে পেস্ট করুন।

#!/bin/bash 
echo "Please enter your name:" 
   read name 
   echo "Welcome to Linux $name"

এরপরে, নির্বাহের অনুমতি সেট করুন এবং স্ক্রিপ্টটি চালান।

[email :~# chmod 777 interactive_shell.sh
[email :~# ./interactive_shell.sh

Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive

দ্রষ্টব্য: ‘#!/বিন/বাশ’ শেলটিকে বলে যে এটি একটি স্ক্রিপ্ট, এটি স্ক্রিপ্টের শীর্ষে অন্তর্ভুক্ত করা সর্বদা একটি ভাল ধারণা। ‘পড়ুন’ প্রদত্ত ইনপুটটি পড়ে।

33. আদেশ: পাসডাব্লু

এটি একটি গুরুত্বপূর্ণ কমান্ড যা টার্মিনালে নিজস্ব পাসওয়ার্ড পরিবর্তনের জন্য দরকারী। স্পষ্টতই আপনাকে সুরক্ষার কারণে আপনার বর্তমান পাসওয়ার্ডটি জানতে হবে।

[email :~# passwd 

Changing password for tecmint. 
(current) UNIX password: ******** 
Enter new UNIX password: ********
Retype new UNIX password: ********
Password unchanged   [Here was passowrd remians unchanged, i.e., new password=old password]
Enter new UNIX password: #####
Retype new UNIX password:#####

34. আদেশ: lpr

এই কমান্ডটি কমান্ড লাইনে ফাইলগুলি নামযুক্ত প্রিন্টারে মুদ্রণ করে।

[email :~# lpr -P deskjet-4620-series 1-final.pdf

দ্রষ্টব্য: "lpq" কমান্ড আপনাকে একটি প্রিন্টারের অবস্থান (এটি আপ হোক বা না থাকুক) এবং চাকরিগুলি (ফাইলগুলি) মুদ্রণের জন্য অপেক্ষা করতে দেয়।

35. কমান্ড: সিএমপি

যে কোনও ধরণের দুটি ফাইলের তুলনা করুন এবং ফলাফলটি স্ট্যান্ডার্ড আউটপুটটিতে লিখুন। ডিফল্টরূপে, ‘সিএমপি’ ফাইলগুলি একই হলে 0 রিটার্ন করে; যদি তারা পৃথক হয়, বাইট এবং লাইন নম্বর যেখানে প্রথম তফাতটি ঘটেছিল তা রিপোর্ট করা হয়।

এই কমান্ডের উদাহরণ দেওয়ার জন্য দুটি ফাইল বিবেচনা করা যাক:

[email :~# cat file1.txt

Hi My name is Tecmint
[email :~# cat file2.txt

Hi My name is tecmint [dot] com

এখন, দুটি ফাইলের তুলনা করা যাক এবং কমান্ডের ফলাফল দেখুন।

[email :~# cmp file1.txt file2.txt 

file1.txt file2.txt differ: byte 15, line 1

36. কমান্ড: উইজেট

উইজেট অ-ইন্টারেক্টিভ (অর্থাত্, পটভূমিতে কাজ করতে পারে) ওয়েব থেকে ফাইল ডাউনলোড করার জন্য একটি বিনামূল্যে ইউটিলিটি। এটি HTTP, HTTPS, FTP প্রোটোকল এবং HTTP প্রক্সি সমর্থন করে।

[email :~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2

--2013-05-22 18:54:52--  http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following]
--2013-05-22 18:54:54--  http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 275557 (269K) [application/octet-stream]
Saving to: ‘ffmpeg-php-0.6.0.tbz2’

100%[===========================================================================>] 2,75,557    67.8KB/s   in 4.0s   

2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]

37. আদেশ: মাউন্ট

মাউন্ট একটি গুরুত্বপূর্ণ কমান্ড যা একটি ফাইল সিস্টেম মাউন্ট করতে ব্যবহৃত হয় যা নিজেই মাউন্ট হয় না। কোনও ডিভাইস মাউন্ট করতে আপনার রুট অনুমতি প্রয়োজন।

আপনার ফাইল সিস্টেমে প্লাগ-ইন করার পরে প্রথমে ‘lsblk’ চালান এবং আপনার ডিভাইস শনাক্ত করুন এবং আপনার ডিভাইস নির্ধারিত নামটি নোট করুন।

[email nt:~# lsblk 

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT 
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0 923.6G  0 part / 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0   7.9G  0 part [SWAP] 
sr0     11:0    1  1024M  0 rom  
sdb      8:16   1   3.7G  0 disk 
└─sdb1   8:17   1   3.7G  0 part

এই স্ক্রিনটি থেকে এটি স্পষ্ট ছিল যে আমি একটি 4 জিবি পেনড্রাইভ প্লাগ ইন করেছিলাম যাতে 'এসডিবি 1' আমার ফাইল সিস্টেমটি মাউন্ট করা যায়। এই অপারেশনটি সম্পাদন করার জন্য একটি রুট হয়ে যান এবং/dev ডিরেক্টরিতে পরিবর্তন করুন যেখানে সমস্ত ফাইল সিস্টেম মাউন্ট করা আছে।

[email :~# su
Password:
[email :~# cd /dev

যেকোন নামে একটি ডিরেক্টরি তৈরি করুন তবে রেফারেন্সের জন্য এটি সুস্বাদু হওয়া উচিত।

[email :~# mkdir usb

এখন ফাইল সিস্টেমটি ‘এসডিবি 1’ ডিরেক্টরিতে ‘ইউএসবি’ তে মাউন্ট করুন।

[email :~# mount /dev/sdb1 /dev/usb

এখন আপনি টার্মিনাল বা এক্স-উইন্ডোজ সিস্টেম থেকে/dev/usb এবং মাউন্ট করা ডিরেক্টরি থেকে অ্যাক্সেস ফাইল থেকে নেভিগেট করতে পারেন।

38. কমান্ড: জিসিসি

জিসিসি লিনাক্স এনভায়রনমেন্টে ‘সি’ ভাষার অন্তর্নির্মিত সংকলক। একটি সাধারণ সি প্রোগ্রাম, এটি আপনার ডেস্কটপে হ্যালো। সি হিসাবে সংরক্ষণ করুন (মনে রাখবেন ‘.সি‘ এক্সটেনশন অবশ্যই)।

#include <stdio.h>
int main()
{
  printf("Hello world\n");
  return 0;
}
[email :~# gcc Hello.c
[email :~# ./a.out 

Hello world

দ্রষ্টব্য: একটি সি প্রোগ্রাম সংকলন করার পরে আউটপুট স্বয়ংক্রিয়ভাবে একটি নতুন ফাইল "a.out" এ উত্পন্ন হয় এবং আপনি যখনই একটি সি প্রোগ্রামটি কম্পাইল করেন তখনই "a.out" সংশোধিত হয়ে যায়। সুতরাং সংকলনের সময় আউটপুট ফাইল সংজ্ঞায়িত করা ভাল পরামর্শ এবং সুতরাং আউটপুট ফাইলটিতে ওভাররাইটের ঝুঁকি নেই।

[email :~# gcc -o Hello Hello.c

এখানে ‘-ও’ আউটপুটকে ‘হ্যালো’ ফাইলে পাঠায় এবং ‘এআউট’ নয়। আবার চালাও।

[email :~# ./Hello 

Hello world

39. কমান্ড: জি ++

g ++ হ'ল "সি ++" এর জন্য অন্তর্নির্মিত সংকলক, প্রথম অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা। একটি সাধারণ সি ++ প্রোগ্রাম, এটি আপনার ডেস্কটপে অ্যাড সিপিপি হিসাবে সংরক্ষণ করুন (মনে রাখবেন ‘.সিপিপি’ এক্সটেনশন অবশ্যই আবশ্যক)।

#include <iostream>

using namespace std;

int main() 
    {
          int a;
          int b;
          cout<<"Enter first number:\n";
          cin >> a;
          cout <<"Enter the second number:\n";
          cin>> b;
          cin.ignore();
          int result = a + b;
          cout<<"Result is"<<"  "<<result<<endl;
          cin.get();
          return 0;
     }
[email :~# g++ Add.cpp
[email :~# ./a.out

Enter first number: 
...
...

দ্রষ্টব্য: একটি সি ++ প্রোগ্রাম সংকলনের সময় আউটপুট স্বয়ংক্রিয়ভাবে একটি নতুন ফাইল "a.out" এ উত্পন্ন হয় এবং আপনি যখনই একটি সি ++ প্রোগ্রাম একই ফাইল "a.out" সংকলন করেন তখন পরিবর্তন হয়। সুতরাং সংকলনের সময় আউটপুট ফাইল সংজ্ঞায়িত করা ভাল পরামর্শ এবং সুতরাং আউটপুট ফাইলটিতে ওভাররাইটের ঝুঁকি নেই।

[email :~# g++ -o Add Add.cpp
[email :~# ./Add 

Enter first number: 
...
...

40. আদেশ: জাভা

জাভা বিশ্বের অন্যতম ব্যবহৃত প্রোগ্রামিং ভাষা এবং এটি দ্রুত, সুরক্ষিত এবং নির্ভরযোগ্য হিসাবে বিবেচিত হয়। আজকের ওয়েব ভিত্তিক বেশিরভাগ পরিষেবা জাভাতে চলে।

নীচের পরীক্ষাটি একটি ফাইলটিতে টেকমিট.জভা নামে আটকানোর মাধ্যমে একটি সাধারণ জাভা প্রোগ্রাম তৈরি করুন (মনে রাখবেন ‘। জাভা’ এক্সটেনশন অবশ্যই)।

class tecmint {
  public static void main(String[] arguments) {
    System.out.println("Tecmint ");
  }
}
[email :~# javac tecmint.java
[email :~# java tecmint

দ্রষ্টব্য: প্রায় প্রতিটি বিতরণে জিসিসি সংকলক আসে, বড় সংখ্যক ডিস্ট্রোতে ইনবিল্ট জি ++ এবং জাভা সংকলক থাকে, তবে কারও কারও কাছে নাও থাকতে পারে। আপনি প্রয়োজনীয় প্যাকেজটি প্রস্তুত করতে পারেন y

আপনার মূল্যবান মন্তব্য এবং আপনি এখানে দেখতে চান নিবন্ধের ধরণ উল্লেখ করতে ভুলবেন না। আমি শীঘ্রই লিনাক্স সম্পর্কে কম পরিচিত তথ্য সম্পর্কে একটি আকর্ষণীয় বিষয় নিয়ে ফিরে আসব।