মাইএসকিউএল কমান্ড লাইন রঙ প্রম্পট


22

আমি মাইএসকিউএল কমান্ড লাইন রঙ প্রম্পটে রঙ যুক্ত করতে চাই।

আমার এখন পর্যন্ত একটি স্ক্রিপ্টে আছে (ডাটাবেস.শ):

mysql -uroot -hlocalhost -A --prompt="\u@\h:\d> "

আমি চাই rootকরা লাল , @হতে নীল , localhostহতে সবুজ এবং databaseহতে সায়ান :

root@localhost:database>

আমার স্ক্রিপ্টে এটি করা সম্ভব?



1
আমি এটি দেখেছি কিন্তু এটি কাজ করে না
এস্কোমাজি

হ্যাঁ আমি মনে করি এটি আপনার নিয়মিত শেল প্রম্পটে একইভাবে সম্ভব। আপনার সেরা বাজি সম্ভবত কিছু মোড়ক বা আরও উন্নত মাইএসকিউএল-ক্লায়েন্ট।
মাইককে

1
আপনার সেটআপ এএনএসআই এস্কেপ কোডগুলি সমর্থন করে? যদি তা হয় তবে আপনি সেগুলি নিম্নলিখিত উপায়ে ব্যবহার করতে পারেন: - প্রম্পট = "^ [[1; 33 মিলি পার্ট হ'ল রঙে রয়েছে ^ [[0 মিঃ \ u @ \ এইচ: \ d>"
হেনেস

উত্তর:


14

এমন লোকদের কথা শুনবেন না যারা বলে যে আপনি পারবেন না। এখানে:

$ alias colormysql=$(echo -e 'mysql --prompt="\x1B[31m\\u\x1B[34m@\x1B[32m\\h\x1B[0m:\x1B[36m\\d>\x1B[0m "')

তারপর:

$ colormysql -hHOSTNAME -uUSERNAME -pPASSWORD ...

এটি কেন কাজ করে সে সম্পর্কে আপনি আরও কিছু ব্যাখ্যা দিতে পারেন তবে আপনি কেবল এএনএসআই কোডগুলি পাস করতে পারবেন না?
ব্রায়ান এজি

$(foo)foo এর ফলাফল কার্যকর করে, এক্ষেত্রে প্রতিধ্বনির ফলাফল। প্রতিধ্বনি-ইকো escape x1b কে একটি পালানোর চরকে প্রসারিত করে। \ X1b [31 মি একটি টার্মিনাল কন্ট্রোল কোড যা বর্তমান রঙটি লালকে সেট করে। এবং তাই এগিয়ে। \ x1b [0 মি ডিফল্ট টার্মিনাল রঙে রঙটি দেয়।
ইরংজে ডট কম

1
রঙগুলি পরীক্ষা করার সময়, আমি আপনার mysql --prompt="`echo -e '\033[01;32m\\d\033[01;34m >\033[00m '`"
পুনরায় উপন্যাসের

4
এছাড়াও রঙ কোডগুলি সংযুক্ত থাকা এস্কেপ কোডগুলি যুক্ত করা এই কাজটি সঠিকভাবে করে তোলে (ইতিহাসে নেভিগেট করা আপনার প্রম্পটকে গোলযোগ না করেই কাজ করবে): $ ওরফে রঙমাইস্কেল = $ (ইকো-ই 'মাইএসকিএল - প্রম্পট = "\ 001 \ x1 বি [31 মি \ 002 \\ তোমার দর্শন লগ করা \ ২001 \ x1B [34m \ 002 @ \ ২001 \ x1B [32m \ 002 \\ জ \ ২001 \ x1B [0 মিনিট \ 002: \ ২001 \ x1B [36m \ 002 \\ ঘ> \ ২001 \ x1B [0 মি \ 002 "')
ডেভিড সান্তামারিয়া

2
@ সাইপ্রিয়ানগুয়েরা - যথাযথ সমর্থনের জন্য ক্রমগুলি ব্যবহার করে \001এবং তার \002চারপাশে @ ডেভিড-সন্তামারিয়ার মন্তব্যগুলি উপরে দেখুন কপিরাইট-পেস্ট করার সাথে একরকম রেন্ডারিংয়ের সমস্যা উপস্থিত রয়েছে যা ব্রাউজার থেকে, যেখানে কমান্ডের অংশটি ক্লিপবোর্ডে দেওয়া হচ্ছে (যেখানে এবং মুদ্রনবিহীন অক্ষর রয়েছে, সম্ভবত শব্দ- থেকে সিআর / এনএল) মোড়ানো)। readline$ alias colormysql=$(echo -e 'mysql --prompt="\001\x1B[31m\002\\u\001\x1B[34m\002@\001\x1B[32m\002\\h\001\x1B[0m\002:\001\x1B[36m\002\\d>\001\x1B[0m\002 "')\002:\001\002:\<200c><200b>001<200c><200b>
ডসকি

8

বর্ণযুক্ত মাইএসকিএল প্রম্পট সেট আপ করার ক্ষেত্রে ওয়াকথ্রু।

পদক্ষেপ 1. একটি সেট প্রম্পট দিয়ে কীভাবে সাধারণত লগইন করবেন তা বুঝুন:

eric@dev ~ $ mysql --host=yourhost.com -u username --prompt="foobar> " -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 711
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

foobar> 

পদক্ষেপ 2. বুঝতে পারবেন কীভাবে আপনি 'ওরফে' প্রতিধ্বনি মাধ্যমে একটি ব্যাখ্যাযুক্ত বাক্যটি পাইপ করতে পারেন:

যা উপরের 1 ধাপ হিসাবে ঠিক একই কাজ করে:

eric@dev ~ $ alias penguins=$(echo -e 'mysql --host=yourhost.com -u dev --prompt="foobar> " -p')
eric@dev ~ $ penguins
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 713
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

foobar> exit
Bye
eric@dev ~ $

পদক্ষেপ 3. কীভাবে ইকো-বর্ণযুক্ত বর্ণটি মূল্যায়ন করে তা বুঝতে:

এই রঙ "foobar>" প্রম্পট লাল:

alias penguins=$(echo -e 'mysql --host=yourhost.com -u dev --prompt="\x1B[31mfoobar>\x1B[0m " -p')
penguins

এটার মত:

এখানে চিত্র বর্ণনা লিখুন

পদক্ষেপ ৪. এখানে কী চলছে তা নিয়ে আপনি যদি বিভ্রান্ত হন:

অভিব্যক্তি দেখুন: \x1B[31mfoobar>\x1B[0m

এর তিনটি অংশ রয়েছে:

code               what it means:

\x1B[31m           Start colorizing, 31m is red.
foobar>            prompt text
\x1B[0m            Stop colorizing.

পদক্ষেপ ৪. উন্নত, প্রম্পটটিকে আসল সুন্দর করতে দেয়:

eric@dev ~ $ alias penguins=$(echo -e 'mysql --host=yourhost.com -u dev --prompt="\x1B[31m\\u\x1B[34m@\x1B[32m\\v\x1B[0m:\x1B[36m\\d>\x1B[0m " -p')
eric@dev ~ $ penguins

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি বিভ্রান্ত হন যে এই বিশাল কোডটি কী করে:

\x1B[31m\\u\x1B[34m@\x1B[32m\\v\x1B[0m:\x1B[36m\\d>\x1B[0m

ব্যাখ্যা:

Code         Note
\x1B[31m     Start colorizing red
\\u          escape the backslash for passage through echo, and print username
\x1B[34m     Start colorizing dark blue
@            literal at sign
\x1B[32m     Start colorizing green
\\v          escape the backslash for passage through echo, print server version
\x1B[0m      Stop colorizing
:            literal colon
\x1B[36m     Start colorizing cyan
\\d>         Backslash for passage through echo, print default db and >
\x1B[0m      Stop colorizing.

তাই বাহ! অনেক কোড।


1
টার্মিনাল কোডগুলি কীভাবে সঠিকভাবে পালানো যায় সে সম্পর্কে কোনও ধারণা যাতে readlineলাইন দৈর্ঘ্য সম্পর্কে বিভ্রান্ত না হয় এবং mysqlকমান্ড লাইনে একাধিক লাইন সম্পাদনা করা সম্ভব হয়? (একাধিক লাইন লেখার চেষ্টা করুন, তারপরে ব্যাকস্পেস টিপুন এবং ধরে রাখুন)
সিআরপিএন

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

0

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

আমি আমার সাথে নিম্নলিখিতগুলি যুক্ত করেছি .bashrcযা আমার মেশিনে কৌশলটি করে:

export MYSQL_PS1=$(echo -e "\033]0;\u@\h [\d]\007\u@\h [\d]> ")

এটি যা করে তা ভেরিয়েবলের echo -eকাঁচা পালানোর অক্ষর (প্রতীকী পরিবর্তে) তৈরি করতে ব্যবহার করা হয় MYSQL_PS1। এটি রঙগুলির সাথেও কাজ করা উচিত।


-2

এটি বেশ দুর্ভাগ্যজনক উত্তর, তবে আপনি পারবেন না।


এএনএসআই এস্কেপ সিকোয়েন্সগুলির ব্যবহার সম্পর্কে, মাইএসকিউএল কেবল নিম্নলিখিতগুলিকে অনুমতি দেয় :

আপনি ব্যাকস্পেস, ট্যাব, নিউলাইন, ক্যারেজ রিটার্ন উপস্থাপনের জন্য বিকল্প মানগুলিতে "\ বি", "\ টি", "\ এন", "\ আর", "\", এবং "\ গুলি" অব্যাহতি সিকোয়েন্সগুলি ব্যবহার করতে পারেন, ব্যাকস্ল্যাশ এবং স্পেস অক্ষর।


সেমিজেডমিলারের উত্তরের বিষয়ে, জিআরসি কেবলমাত্র "পেজার" এর মাধ্যমে মাইএসকিউএল এর শেল থেকে আউটপুট প্রদর্শন করতে কাজ করে।


সেরা আপনি কাজ করতে পারে ব্যবহার rlwrap ভালো: rlwrap -a -p'GREEN' mysql -uroot -hlocalhost -A --prompt="\u@\h:\d> "। এটি আপনাকে পুরোপুরি প্রম্পটকে রঙিন করার কারণে সূক্ষ্ম-দানাযুক্ত নিয়ন্ত্রণ দেয় না। এছাড়াও সাবধান থাকুন কারণ এটি ক্লিয়ারটেক্সটে পাসওয়ার্ড প্রদর্শন করে।


এটি পুরানো। প্রম্পট বিকল্পের জন্য সম্ভাব্য মানগুলির একটি হোস্ট রয়েছে। এখানে দেখুন: dev.mysql.com/doc/refman/5.6/en/mysql-commands.html
ইরংজি ডটকম


এটি ঠিক ভুল হিসাবে পুরানো হয় না। এক কিছুর জন্য, এএনএসআই এস্কেপ সিকোয়েন্সগুলি মাইএসকিউএল থেকে সম্পূর্ণ স্বতন্ত্র কিছু এবং অন্যটির জন্য সেগুলি অবশ্যই ব্যবহার করা যেতে পারে, যেমন এখানে অন্যান্য উত্তরগুলিতে পুরোপুরি প্রদর্শিত হয়েছে।
জেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.