কম্পিউটার

আপনার গো-টু কমান্ড লাইন ভাষা হিসাবে পাইথন দিয়ে ব্যাশকে কীভাবে প্রতিস্থাপন করবেন

বাশের সাথে আমার কিছুটা প্রেম এবং ঘৃণার সম্পর্ক রয়েছে। আমি টার্মিনালে অনেক সময় ব্যয় করি এবং ব্যাশ আমার ডিফল্ট "প্রোগ্রামিং ভাষা"। কখনও কখনও আমি লোকেদের বলি যে খুঁজে, গ্রেপ এবং xargs তাদের পরিকাঠামো চালায় এবং তারা হাসে এবং হাসে যতক্ষণ না তারা বুঝতে পারে যে আমি গুরুতর।

কিছু পাইথন বাছাই করা সিস্টেম প্রশাসকদের জন্য একটি নিখুঁত পছন্দ। টার্মিনালে যে কোনও কিছুর সাথে মোকাবিলা করতে হয় তবে ব্যাশ ব্যবহার করতে চান না বা ব্যাশের জন্য খুব জটিল প্রয়োজন রয়েছে এমন কারও জন্য এটি দুর্দান্ত। একবার একটি কাজ অতিক্রম করে যায়

find $(pwd) -name "*.txt" | xargs -I {} echo "do stuff with {}"

এটা পাইথন ভেঙ্গে আউট সময়!

কমান্ড লাইন ভাষাতে যেতে পাইথন ব্যবহার করার অনেক সুবিধা রয়েছে।

  • পাইথনের অনেক সুন্দর লাইব্রেরি আছে যা কিছুতেই সাহায্য করতে পারে। এর মধ্যে রয়েছে সিস্টেম অপারেশন, ফাইল পড়া, তালিকা তালিকা, লুপ লেখা, প্রস্থান কোড পরীক্ষা করা ইত্যাদি।
  • আইডিই সহ স্বয়ংসম্পূর্ণ। সিরিয়াসলি। কে কিছু মুখস্থ করতে চায়?
  • রোবস্ট টেস্টিং স্যুট যদি এটি আপনার জিনিস হয় (এবং যদি এটি না হয়, তাহলে আপনার এটিকে আপনার জিনিস হিসাবে বিবেচনা করা উচিত)।
  • iPython কনসোল। এটা দারুন. এটা আশ্চর্যজনক. আমি এটা পছন্দ করি।
  • অধিকাংশ সিস্টেমে পাইথন পাওয়া যায়, এবং এটি না থাকলে আপনি এটি মিনিকোন্ডা দিয়ে পেতে পারেন।
  • ট্রাই অ্যান্ড ক্যাচ ব্লকের সাথে শক্তিশালী ত্রুটি পরীক্ষা করা।
  • আপনি যদি বিভিন্ন অপারেটিং সিস্টেমে কাজ করেন তাহলে আপনি পাইথন লাইব্রেরিগুলি ব্যবহার করতে পারেন যা হুডের নীচে সমস্ত কিছুর সাথে মোকাবিলা করবে৷
  • যদিও আপনার কোনো প্রোগ্রামিং ক্ষমতা নাও থাকে তাহলে শুরু করার জন্য পাইথন একটি সহজ ভাষা।

আসুন শুরু করা যাক

শুরু করার জন্য, প্রথমে আপনাকে পাইথন ইনস্টল করতে হবে অথবা মিনিকোন্ডা দিয়ে এটি ইনস্টল করতে হবে।

আপনার iPython ইনস্টল করা আছে কিনা তা পরীক্ষা করুন

which python
which ipython

এই দুটি সফল হলে, আপনি ব্যবসা করছেন! আপনার যদি পাইথন থাকে, কিন্তু iPython না থাকে তবে আপনাকে এটি ইনস্টল করতে হবে। আপনি এটি একটি সিস্টেম প্যাকেজ হিসাবে ইনস্টল করতে পারেন, তবে আমি সত্যিই সুপারিশ করছি যে আপনি এটিকে মিনিকোন্ডা দিয়ে ইনস্টল করুন৷

মিনিকোন্ডা ইনস্টল করুন

আপনার OS এর জন্য ইনস্টলারটি এখানে নিন। আমি পাইথন 3 ইনস্টল করার পরামর্শ দিই৷

তারপর এটি একটি সাধারণ ইনস্টলেশন।

bash Miniconda3-latest-Linux-x86_64.sh

প্রম্পটগুলি অনুসরণ করুন এবং আপনার কাছে Miniconda3 ইনস্টল হবে। একবার আপনি এটি ইনস্টল করার পরে আপনি একটি আপডেট চালাতে চাইবেন, কারণ এটি প্রযুক্তি এবং অবশ্যই আপনি একটি আপডেট চালাতে চান।;-)

conda update conda
conda config --add channels conda-forge
conda update -y --all
conda install -y ipython

সমস্যা নিবারণ

কোনো প্যাকেজ ইন্সটল করতে সমস্যা হলে এখানে কিছু টিপস আছে।

  • চালান conda clean --all এবং আবার চেষ্টা করুন।
  • আপনি সঠিক চ্যানেল ব্যবহার করছেন তা নিশ্চিত করুন।
  • conda update -y --all চালান
  • আপনার গ্লোবাল কনডা স্পেসে যতটা সম্ভব কম ইনস্টল করার চেষ্টা করুন। পরিবর্তে বিভিন্ন কাজ এবং প্রকল্পের জন্য পরিবেশ তৈরি করুন, যা আমরা পরবর্তীতে পাব।

কন্ডা দিয়ে পরিবেশ তৈরি করুন

আপনি যদি কখনও virtualenv, pipenv (এটা কি একটা জিনিস?), Rbenv, plenv, anyenv বা বছরের পর বছর ধরে পপ আপ হওয়া অন্যান্য বিভিন্ন envs ব্যবহার করে থাকেন, তাহলে এটি আপনার কাছে খুব পরিচিত শোনাবে। ধারণাটি হল যে বিভিন্ন প্রকল্পের নিজস্ব বিচ্ছিন্ন সফ্টওয়্যার পরিবেশ থাকা উচিত।

conda create -n my-project ipython package1 package2 package2

আপনি যদি আমার মতো হন এবং iPython সহজে উপলব্ধ করতে চান তবে নিশ্চিত করুন যে আপনি এটি যেকোন নতুন পরিবেশে ইনস্টল করেছেন!

সিস্টেম অ্যাডমিনিস্ট্রেশনের জন্য পাইথন লাইব্রেরি

উদাহরণে যাওয়ার আগে আসুন কিছু সহজ প্যাকেজকে তাদের ডক্স সহ তালিকাভুক্ত করি।

প্যাকেজে আমার যাওয়া হল ওএস প্যাকেজ। আপনি এটিকে ডিরেক্টরি তালিকাভুক্ত করতে, ফাইলগুলি বিদ্যমান কিনা তা পরীক্ষা করতে, সিমলিঙ্কগুলি বিদ্যমান কিনা তা পরীক্ষা করতে, ডিরেক্টরি তৈরি করতে, সিস্টেম কমান্ডগুলি চালাতে, পরিবেশগত ভেরিয়েবলগুলি পেতে এবং সেট করতে এবং আরও অনেক কিছু করতে ব্যবহার করতে পারেন। এটা দারুণ!

সিস্টেম কমান্ড চালানোর জন্য আমার দ্বিতীয় প্যাকেজ যা সহজ পাইথন লাইব্রেরি হিসাবে বিদ্যমান নেই সেটি হল সাবপ্রসেস মডিউল।

শুটিলের ফাইল অপারেশন আছে যা OS লাইব্রেরিতে নেই।

pprint লাইব্রেরি চমৎকার ইন্ডেন্টেশন সহ জটিল ডেটা স্ট্রাকচার প্রিন্ট করে।

পাইটেস্ট লাইব্রেরি আপনাকে আপনার পাইথন কোড পরীক্ষা করতে দেয়, কারণ আসুন এটির মুখোমুখি হই, প্রথম (কয়েক) বার কিছুই সঠিকভাবে কাজ করে না।

আমি কিভাবে আমার কোড এক্সিকিউট করব?

অবশেষে ! কোড!

আপনার গো-টু কমান্ড লাইন ভাষা হিসাবে পাইথন দিয়ে ব্যাশকে কীভাবে প্রতিস্থাপন করবেন

যখন আপনি সিস্টেম প্রশাসনের জন্য পাইথন ব্যবহার করছেন তখন আপনি সরাসরি iPython কনসোলে ডুব দিতে পারেন, অথবা স্ক্রিপ্ট লিখতে পারেন এবং তারপর python name-of-script.py দিয়ে চালাতে পারেন .

আপনি যদি আপনার স্ক্রিপ্ট লিখতে পছন্দ করেন তবে আপনার কাছে অনেক পছন্দ আছে এবং এটি সত্যিই ব্যক্তিগত পছন্দের বিষয়। আমি PyCharm ব্যবহার করি, যা অর্থপ্রদান করা হয়, কিন্তু ভিজ্যুয়াল স্টুডিও কোড এবং এটম সমানভাবে চমৎকার বিনামূল্যের পছন্দ।

আমি খুঁজে পেয়েছি যে এটি আমি যা কাজ করছি তার উপর নির্ভর করে। কখনও কখনও আমি শুধু iPython কনসোল খুলি এবং টাইপ করা শুরু করি, এবং অন্য সময় আমার আরও শক্তিশালী কিছু পরীক্ষা এবং যা নয় তা প্রয়োজন৷

আপনি যদি হয় iPython কনসোল বা আমি উপরে তালিকাভুক্ত কোনো সম্পাদক ব্যবহার করেন, তাহলে আপনার স্বয়ংসম্পূর্ণ হবে। স্বয়ংসম্পূর্ণ সন্ত্রস্ত! iPython-এর সাহায্যে আপনার ফাংশন টাইপ করা শুরু করুন এবং আপনার পছন্দের সম্ভাব্য ফাংশনগুলির একটি তালিকা পেতে ট্যাব টিপুন৷

আপনার গো-টু কমান্ড লাইন ভাষা হিসাবে পাইথন দিয়ে ব্যাশকে কীভাবে প্রতিস্থাপন করবেন

আমি স্বয়ংসম্পূর্ণ কতটা ভালোবাসি তা প্রকাশ করতে পারব না।;-)

সহায়তা পান

আপনি যেকোন লাইব্রেরির জন্য যেকোনও ডক পেজে যেতে পারেন, কিন্তু আপনি যদি লাইব্রেরি বা ফাংশনের নাম জানেন তাহলে আপনি সেটিকে iPython এ আনতে পারেন।

আপনার গো-টু কমান্ড লাইন ভাষা হিসাবে পাইথন দিয়ে ব্যাশকে কীভাবে প্রতিস্থাপন করবেন

আপনার গো-টু কমান্ড লাইন ভাষা হিসাবে পাইথন দিয়ে ব্যাশকে কীভাবে প্রতিস্থাপন করবেন

আপনি বেশিরভাগ IDE এবং টেক্সট এডিটরগুলিতেও সহায়তা মেনু আনতে পারেন, তবে এটি আপনার সম্পাদকের জন্য নির্দিষ্ট হবে৷

উদাহরণ

প্রথমে আপনাকে আপনার প্যাকেজগুলি আমদানি করতে হবে

import os
import subprocess
import shutil
from pprint import pprint

এখানে সাধারণ ফাইল এবং ডিরেক্টরি অপারেশনের কিছু উদাহরণ রয়েছে৷

# Get your current working directly
# This returns a string
my_cwd = os.getcwd()
print(my_cwd)
# List the contents of a directory
# This returns a list
dir_list = os.listdir()
for item in dir_list:
    print(item)
# Get the Absolute Path name of a file (file + current working dir)
os.path.abspath('some-file')
#Get the basename - returns file
os.path.basename('/path/to/file')
# Split a directory path - platform independent
os.path.split(os.getcwd())
# Out[17]: ('/Users', 'jillian')
# Check if a path exists
os.path.exists('/path/on/filesystem')
# Check if a path is a symlink
os.path.islink()

ফাইল এবং ডিরেক্টরি চারপাশে সরান

# Copy a directory
# cp -rf
shutil.copytree('src', 'dest')
# Copy a file
# cp -rf
shutil.copyfile('file1', 'file2')
# Move a directory
# mv
shutil.move('src', 'dest')

পাইথন লাইব্রেরির মাধ্যমে সবকিছু পাওয়া যাবে না, যেমন সিস্টেম লাইব্রেরি ইনস্টল করা, তাই কয়েকটি সিস্টেম কমান্ড চালান!

# Run an arbitrary system command
command = "echo 'hello'"
result = subprocess.run(command.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
#Print the stdout and stderr
print(result.stdout)
print(result.stderr)

ফাইলগুলিতে লিখুন!

# Write to a file (and create it if it doesn't exist)
# echo "hello" > hello.txt
f= open("hello.txt","w+")
f.write("hello!")
f.close()
# Append to a file
# echo "hello" >> hello.txt
f = open("hello.txt", "a+")
f.write("hello again!")
f.close()

কিছু ​​পরীক্ষা লিখুন!

পরীক্ষাগুলি বেশিরভাগই assert নামক একটি ফাংশন ব্যবহার করে কাজ করে, যা মূলত বলছে নিশ্চিত করুন যে এটি সত্য এবং যদি জোরে মারা না যায়।

def test_system_command():
    """Test the exit code of a system command"""
    command = "echo 'hello'"
    result = subprocess.run(command.split(' '), stdout=subprocess.PIPE)
    assert result.returncode == 0

এই ফাংশনটিকে test_my_code.py নামে একটি ফাইলে রাখুন এবং pytest test_my_code.py হিসাবে চালান .

রেপ আপ

পাইথনকে আপনার গো-টু ব্যাশ প্রতিস্থাপন হিসাবে ব্যবহার করার জন্য আমার প্রধান টিপস এবং কৌশলগুলির জন্য এটাই। পরের বার যখন আপনাকে bash-এ একটি লুপ লিখতে হবে, iPython কনসোল ভাঙার কথা বিবেচনা করুন এবং এর পরিবর্তে আপনি কী নিয়ে আসতে পারেন তা দেখুন!


  1. কিভাবে আপনার ল্যাপটপ ডিভিডি ড্রাইভকে HDD বা SSD দিয়ে প্রতিস্থাপন করবেন

  2. SSH কমান্ড লাইনের মাধ্যমে কীভাবে আপনার ওয়েবসাইট ব্যাক আপ করবেন

  3. কমান্ড লাইনের মাধ্যমে পাইথন ম্যাটপ্লটলিবের সাথে ইন্টারেক্টিভ প্লটিং

  4. কিভাবে আপনার অ্যান্ড্রয়েড ডিভাইসে LineageOS দিয়ে CyanogenMod প্রতিস্থাপন করবেন