bash
আপনার প্রয়োজনীয় সমস্ত ইউটিলিটি রয়েছে। আপনি যদি একক কমান্ডের সাহায্যে বেশ কয়েকটি কমান্ড প্রয়োগ করতে চান তবে আপনি নিজের শেল স্ক্রিপ্ট লিখতে পারেন বা ফাংশন লিখতে পারেন ।
কাজগুলি সহজ
কিছু দিন আগে, আমি cs
ডিরেক্টরি পরিবর্তন করতে এবং এর মাধ্যমে তালিকাভুক্ত করার জন্য একটি ফাংশন সংজ্ঞায়িত করেছি ls
।
function cs() { cd $1 && ls ; }
$1
প্রথম যুক্তি। আপনি যদি সমস্ত যুক্তির তালিকা ব্যবহার করতে চান তবে ব্যবহার করুন $@
।
এটি অনুরোধ করা যেতে পারে
$ cs my_directory
আপনার বর্তমান সেশনের অভ্যন্তরে বেশ কয়েকটি কমান্ড একসাথে গোষ্ঠীভুক্ত করা দুর্দান্ত। ~/.bashrc
প্রতিটি নতুন উদাহরণ সহ এটি লোড করতে আপনি আপনার শেষে ফাংশনটি রাখতে পারেন bash
।
স্ক্রিপ্টগুলি বেশ শক্তিশালী
স্ক্রিপ্টগুলি তাদের নিজস্ব প্রক্রিয়াতে কার্যকর করা হয়। এর অর্থ হ'ল আপনার নির্ধারিত কোনও পরিবর্তনশীল এই প্রক্রিয়াতে স্থানীয়। স্ক্রিপ্ট লিখতে, উপরে একটি শেবাং রাখুন । এটি #!
দোভাষীর পথ অনুসরণ করে এমন অক্ষরগুলি নিয়ে গঠিত যা আপনার ফাইলটি কার্যকর করবে। শেবাংগুলি অন্তর্ভুক্ত করতে পারে
#!sh
#!/bin/bash
#!/usr/bin/perl
শেল স্ক্রিপ্টে আপনি এর মতো স্টাফ করতে পারেন
#!/bin/bash
VARIABLE=42
echo "The variable is $VARIABLE" # echo appends a newline
echo "I'm now going to Google"
firefox http://www.google.com
মাধ্যমে স্ক্রিপ্ট সম্পাদনযোগ্য করতে ভুলবেন না
$ chmod +x my_script
এটি তখন কার্যকর করা যেতে পারে
$ ./my_script # from the current directory
$ ~/path/to/my_script # absolute path, ~ is your User directory.
ব্যাশ সিনট্যাক্সে কন্ডিশনাল এবং লুপস এবং সুইচ এবং প্রায় কোনও কিছুই থাকে। আপনি যদি কম কর্মক্ষমতা ঘৃণা করেন বা আপনার যদি আরও ভাল সিন্টেক্স প্রয়োজন হয় তবে আপনি সহজেই পার্ল বা পাইথনের কয়েকটি লাইন শিখিয়ে নিতে পারেন।
আপনি কি টাইপ করেছেন তা দেখে
এই সমাধানগুলি করার আগে আপনি কী করতে চান তা নির্ভর করে। যদি এটি না হয় তবে আপনি ইতিহাসের ফাইলটি দেখতে ( ~/.bash_history
ডিফল্টরূপে) বা history
আদেশটি ব্যবহার করতে পারেন ।
$ history 5
চলমান সংখ্যা সহ 5 টি সর্বশেষ কমান্ড তালিকাভুক্ত করে। আমার ক্ষেত্রে, এটি দেয়
1892 function foo() { cd $1 ; ls ; }
1893 foo ..
1894 history
1895 history 15
1896 history 5
ফাংশন বা শেল স্ক্রিপ্ট লিখতে আপনি সহজেই এই কমান্ড তালিকাটি ব্যবহার করতে পারেন।
একটি দ্রুত হোমব্রু সমাধান
ম্যাক্রো রেকর্ডিংয়ের জন্য এখানে একটি সমাধান। আকর্ষণীয় প্রসেসিংয়ের জন্য এটি দুটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন এবং একটি ইনলাইন পার্ল স্ক্রিপ্ট ব্যবহার করে।
function create-marker() { echo "Starting the recording" ; }
function process-marker() { history | perl -ne's/^\s*\d*\s*//; chomp; push @commands, $_; }{ pop @commands; push @macro, pop @commands until $commands[-1] eq "create-marker" or !@commands; print "$_\n" for reverse @macro;' ; }
এই অধিবেশন
$ create-marker
Starting the recording
$ cd ~
$ ls
# omitted
$ firefox http://www.google.com
$ process-marker
নিম্নলিখিত আউটপুট তৈরি করে:
cd ~
ls
firefox http://www.google.com
তারপরে আপনি সহজেই এটিকে একটি নতুন স্ক্রিপ্টে অনুলিপি করতে পারেন।
দ্রষ্টব্য: আমার কাছে ম্যাক নেই এবং এটি উবুন্টুতে পরীক্ষা করা হয়েছে। পাথ পৃথক হতে পারে তবে ধারণাগুলি যথাযথ।