এই সম্পাদকটি কি ক্রন্টব দ্বারা খোলা হয়?


41

আমি ক্রন্টব সম্পাদনা করতে চাই। এটি ভাই বলে মনে করা হয়, তবে এটি যেমনটি আপনি দেখতে পাচ্ছেন তেমন নয়:

root@euve252628:~# crontab -e

0

0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php

?

:wq

?

হ্যাঁ, এটা আমাকে একটা দিয়েছে ?। এবং কেন এটি আমাকে একটি শূন্য দেয়?

যখন আমি একটি টাইপ করি qএবং টিপুন Enter- এটি প্রস্থান করে। আমাকে কীভাবে সংরক্ষণ করতে হবে তা জানতে হবে, কারণ এটি ক্লাসিক vi নয়।


5
সম্ভবত ed: ডিফল্টরূপে, এটি একটি অক্ষর গণনা দেয় (যা দেবিয়ান ভিত্তিক সিস্টেমে সাধারণত 888"খালি" ক্রোনট্যাব টেমপ্লেটের অক্ষরের সংখ্যা হয়ে থাকে)। আপনি যদি 0 এর একটি গণনা দেখতে পান তবে আপনার অবশ্যই এটি পরিবর্তন করা উচিত। দেখুন নিম্নলিখিতরূপে crontab পরিবর্তন -e কমান্ডটি সঠিকভাবে কাজ করছে না
steeldriver

31
এড, ম্যান! ম্যান এড: gnu.org/fun/jokes/ed-msg.html
জুস্ট 14

6
@juhist বরং একটি মন্তব্য চেয়ে হওয়া উচিত উত্তর।
মিষ্টান্ন

1
আপনি সাধারণত EDITORঅন্য কোনও কিছুতে ওভাররাইড করতে চাইলে, আপনি যদি আসলে এড ব্যবহার করতে আগ্রহী হন তবে এটি একটি দুর্দান্ত ভূমিকা: অভ্যাসমেন্ট.জিেক.এনজি
জিওনগ চিয়ামিভ

@ সমন্বয় করুন, যাইহোক, স্ট্যাক এক্সচেঞ্জে স্বাগতম! যদি আপনি এমন একটি উত্তর খুঁজে পান যা আপনার প্রশ্নের সেরা উত্তর দেয় তবে আপনি তার পাশের চেকমার্কে ক্লিক করে এটি গ্রহণ করতে পারেন।
জোল

উত্তর:


65

যে ed

ডিফল্টরূপে এর প্রম্পটটি খালি স্ট্রিং। আপনি যদি প্রস্থান করতে চান, কেবল প্রবেশ করুন q। সঙ্গে উপসর্গ করবেন না :। আপনার যদি সংরক্ষণে রক্ষিত পরিবর্তনগুলি থাকে তবে এটির সাথে জবাব দেওয়া হবে ?। আপনি "আপনি কি নিশ্চিত?" হিসাবে ব্যাখ্যা করতে পারেন এবং qআবার আদেশ দিয়ে নিশ্চিত করতে পারেন। উপায় দ্বারা এটি যে কোনও আদেশ বুঝতে পারে না তা এটির জবাব দেবে ?। এটি একমাত্র ত্রুটি বার্তা এটি জানেন।

তার কমান্ড কী তেজ / চ / প্রাক্তন / কিন্তু, উপর ভিত্তি করে তৈরি কমান্ড তাই ভালো g/re/p, %s/vi/&m/g, 1,3d, /pattern/,$d, w, q, wqশুধু তেজ মত হবে।

কমান্ড পছন্দ i, aএবং cসন্নিবেশ মোডে যান। সন্নিবেশ মোড ত্যাগ করতে এবং কমান্ড মোডে ফিরে যেতে, কেবল একটি লাইন প্রবেশ করুন যা কেবলমাত্র একটি .। অন্য লাইনে "সরানোর" জন্য, কেবল লাইন নম্বরটি প্রবেশ করুন, বর্তমান লাইনের মতো একটি অফসেট +2বা -1to লাইনে যাওয়ার জন্য আদেশ হিসাবে একটি রেজেক্স। .কমান্ড মোডে বর্তমান লাইন। আপনি কোথায় আছেন তা জানতে আপনি এটি ব্যবহার করতে পারেন। $শেষ লাইন মানে।

যাইহোক, আপনি যদি এটি সম্পর্কে আরও জানতে চান তবে এটি লিনাক্সে জিএনইউ প্রোগ্রাম হওয়ায় এর বেশিরভাগ ডকুমেন্টেশন এর info edপরিবর্তে রয়েছে man ed

মন্তব্যগুলি যুক্ত (এড দ্বারা স্বীকৃত নয়) সহ এখানে একটি উদাহরণ সেশন রয়েছে:

$ ed
i                    # insert (on current line)
vi
.                    # end insert
%s/vi/&m/g           # substitute vi for vim globally in all lines
i                    # insert (on current line)
first line
.                    # end insert
$a                   # append on last line
last line
.                    # end insert
%p                   # print all lines
first line
vim
last line
2                    # move to line 2 and print it
vim
/line                # move forward to line matching /line/ and print it
last line
-1                   # move 1 line backwards and print it
vim
?line                # move backward to line matching /line/ and print it
first line
+1                   # move 1 line forward and print it
vim
g/line/p             # print lines matching /line/ (grep)
first line
last line
p                    # print (current line)
last line
.                    # move to current line and print it
last line
c                    # change (current line)
final line
.                    # end insert
%p                   # print all lines
first line
vim
final line
/vim/,$c             # change from line matching /vim/ to last line
that's all
.                    # end insert
%p                   # print all lines
first line
that's all
wq                   # write and quit
?                    # write what?
h                    # help with last error message
No current filename
wq                   # write and quit to check error message
?
H                    # help with all error messages
No current filename
wq                   # write and quit to check error message
?
No current filename
wq file.txt          # write file.txt and quit
22                   # wrote 22 bytes

সম্পাদনা: মহাকর্ষের উল্লেখের মতো, আরও সহায়ক ত্রুটি বার্তাগুলি hবা এর সাথে সক্রিয় করা যেতে পারে H। এছাড়াও, কমান্ডের সীমার অংশের ,পরিবর্তে %"সমস্ত লাইন" উল্লেখ করার সরকারী উপায় ed। জিএনইউতে ed, এর জন্য ব্যবহারের সম্ভাবনাটি %সমর্থিত তবে infoম্যানুয়ালটিতে উল্লেখ নেই not ব্যবহারের %সব লাইনের জন্য দৃশ্যত দ্বারা আবিষ্কৃত হয় ex, আপাতদৃষ্টিতে কারণ, সেখানে ,মানে .,.বদলে 1,$মত ed

সম্পাদনা 2: একটি আলাদা সম্পাদক সেট করা হচ্ছে

উল্লিখিত অন্যান্য উত্তরের মতো, আপনি যদি কোনও আলাদা সম্পাদক নির্দিষ্ট করতে চান তবে আপনি পরিবেশ EDITORবা VISUALভেরিয়েবলগুলি সেট করে এটি করতে পারেন । এই উত্তরে উভয়ের মধ্যে পার্থক্যটি ব্যাখ্যা করা হয়েছে ।

আপনি যদি এটি কোনও একক আদেশের জন্য সেট করতে চান তবে আপনি এটি করতে পারেন:

EDITOR=vi crontab -e

অথবা আপনি যদি শেল সেশনে সমস্ত প্রোগ্রাম চালু করতে চান এটি ব্যবহার করতে চান:

export EDITOR=vi
crontab -e

আপনি যথাক্রমে বাশের জন্য এটি ব্যবহারকারী বা সিস্টেম সেটিং হিসাবে থাকতে চাইলে আপনি exportইন ~/.profileবা সংরক্ষণ /etc/profileকরতে পারেন। এডিটরটি সেট করার ইউনিক্স পোর্টেবল উপায়; আপনি যে কোনও বিতরণে এটি করতে পারেন।

উবুন্টুতে update-alternativesকমান্ডও রয়েছে। বর্তমান ডিফল্ট সম্পাদকটি দেখা যেতে পারে update-alternatives --display editorএবং আপনি update-alternatives --config editorএটি সেট করতে ব্যবহার করতে পারেন :

$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.

2
আধুনিক সংস্করণগুলি ইংরেজি ত্রুটি বার্তাগুলি জানে, আপনার কেবল hতাদের জিজ্ঞাসা করার জন্য (বা Hএটি স্থায়ীভাবে সক্ষম করার জন্য) আপনার প্রয়োজন use
মাধ্যাকর্ষণ

2
(এছাড়াও, %একটি উপস্থিত হতে পারে প্রাক্তন উদ্ভাবন সরকারিভাবে। Ed ব্যবহারসমূহ ,সব লাইন মানে, যদিও কিছু সংস্করণে গ্রহণ %হিসাবে ভাল।)
grawity

এটি সঠিক তবে পরিবেশ EDITORVISUALভেরিয়েবলেরও উল্লেখ করা উচিত ।
ক্রাইলিস -হান ধর্মঘট-

গ্রাফিক সম্পাদনা মোড থেকে বেরিয়ে আসার জন্য আপনাকে প্রথমে ":" টিপতে হবে না বাদে বেশিরভাগ কমান্ডগুলি edএকই হিসাবে রয়েছে vi। আমি ইউনিক্স শিখেছি যখন "সত্যিকারের প্রোগ্রামাররা" জিইআইআই ব্যবহার করে সময় নষ্ট করেনি - একটি 80x25 "সবুজ স্ক্রিন" টার্মিনাল প্রায় পাশাপাশি সম্পাদনা করার জন্য আইবিএম 029 কার্ড পাঞ্চ কাজ করে, তবে যথেষ্ট নয়;)
অ্যালেফজারো

@ ক্রাইলিস EDITORএবং VISUALএটি আসলে প্রাসঙ্গিক নয়। মূলত প্রশ্নটি ছিল: এই সম্পাদকটি কী এবং আমি কীভাবে এটি ব্যবহার করব? (এটি 0এবং এটি কী এবং ?আমি কীভাবে সংরক্ষণ করব?)।
JoL

39

এই সম্পাদকটি কীভাবে তা সন্ধান করবেন

চাপুন Ctrl+ Z। এটি সম্পাদককে স্থগিত করে এবং আপনাকে শেল প্রম্পট দেয়। প্রম্পটে, psএই টার্মিনালে কী প্রক্রিয়াগুলি চলছে তা দেখতে চালান ।

bash-4.3$ crontab -e
1077
^Z
[1]+  Stopped                 crontab -e
bash-4.3$ ps
  PID TTY          TIME CMD
26295 pts/10   00:00:00 bash
26297 pts/10   00:00:00 crontab
26298 pts/10   00:00:00 sh
26299 pts/10   00:00:00 ed
26302 pts/10   00:00:00 ps

bashআসল শেলটি, crontabপ্রত্যাশিত, shএটিই একটি অন্য শেল যা অবশ্যই ডাকা হবে crontabএবং psএটি চলমান psকমান্ড। যে পাতা ed( একই নামের প্যাকেজ দ্বারা সরবরাহিত )।

আপনি চিন্তা না পারেন, তাহলে কিভাবে সম্পাদক প্রস্থান করার জন্য, আপনি এই সময়ে এটি হত্যা করতে kill 26302বা kill %1

এড কি?

এড হ'ল একটি প্রাচীন সম্পাদক, মনিটরের আগে (সাধারণ) জিনিস ছিল। এটি এমন কম্পিউটারগুলির জন্য ডিজাইন করা হয়েছিল যার ইন্টারেক্টিভ আউটপুট পেরিফেরিয়ালটি টেলিপ্রিন্টার ছিল ।

0শুরুতে এটি প্রদর্শন ফাইলে লাইনের সংখ্যা। স্পষ্টতই এটি গুরুত্বপূর্ণ তথ্য।

?এর অর্থ হল যে আপনি কী টাইপ করেছেন তা এড বুঝতে পারে নি। লাইন প্রিন্টারগুলি ধীরে ধীরে, তাই এড ত্রুটি বার্তাগুলির মতো অর্থহীন তথ্য প্রদর্শন করতে সময় এবং কালি নষ্ট করে না। একটি পুরানো রসিকতা (আমি এর মূলটি জানি না) যায়:

কেন থম্পসনের একটি অটোমোবাইল রয়েছে যা তিনি ডিজাইনে সহায়তা করেছিলেন। বেশিরভাগ অটোমোবাইলের বিপরীতে, এটির গতিবেগ, না গ্যাস গেজ, না আধুনিক চালককে জর্জরিত এমন অসংখ্য বোকা বাতি রয়েছে। বরং, ড্রাইভার যদি ভুল করে, ড্যাশবোর্ডের মাঝখানে একটি দৈত্য "?" আলোকিত করে। থম্পসন বলে, "অভিজ্ঞ ড্রাইভারটি সাধারণত জানবে কী সমস্যা হয়েছে।"

যদি আপনি অনভিজ্ঞ বোধ করেন তবে আপনি কমান্ডটি দিতে পারেন H(সমস্ত কমান্ড কিন্তু একটিতে একটি অক্ষর (ডেটা আর্গুমেন্ট গণনা করা হচ্ছে না, কারণ কে টাইপিং পছন্দ করে)), এবং আপনি ত্রুটির বার্তা পাবেন। উদাহরণস্বরূপ, আপনি যদি কেবল চাপুন Enter...

?
H
Invalid address

সাফ, তাই না? (একটি খালি লাইনটি খালি কমান্ড - এটি একটি একটি অক্ষর নয় The খালি কমান্ডটি পরবর্তী লাইনে চলে যায় এবং এটি মুদ্রণ করে। আপনি যদি ফাইলটির শেষে থাকেন তবে সর্বদা খালি ক্ষেত্রে হয় ফাইল, পরবর্তী কোনও লাইন নেই, সুতরাং আপনি যে ঠিকানাটিতে সরানোর জন্য অনুরোধ করেছেন তা অবৈধ))

কিভাবে অন্য সম্পাদক পাবেন

crontabকমান্ড সবচেয়ে কমান্ড করে একটি টেক্সট এডিটর চালানোর মতো বিভিন্ন পরিবেশের পরীক্ষা VISUALএবং EDITOR(যাতে) একটি সিস্টেম ডিফল্ট ফিরে পতনশীল চালানোর জন্য কোন প্রোগ্রাম সিদ্ধান্ত নিতে। যদি এই ভেরিয়েবলগুলির মধ্যে কোনওটি সেট করা থাকে তবে edএটিকে পরিবর্তন করুন বা এটিকে সরিয়ে দিন।

উবুন্টুতে (এবং ডেবিয়ান এবং অন্যান্য) সিস্টেমে ডিফল্ট সম্পাদক হ'ল /etc/alternatives/editorএটি বিকল্প পদ্ধতির মাধ্যমে পরিচালিত হয় । ডিফল্টরূপে এটি ইনস্টল হওয়া "সেরা" সম্পাদককে বেছে নিয়েছে, যেখানে প্যাকেজ রক্ষণাবেক্ষণকারীদের দ্বারা নির্ধারিত অগ্রাধিকারগুলি দ্বারা "সেরা" সংজ্ঞায়িত করা হয়েছে। update-alternativesএকটি বিকল্প কনফিগার করতে ব্যবহার করুন । আপনি এর সাথে উপলভ্য সম্পাদক এবং তাদের অগ্রাধিকারগুলি প্রদর্শন করতে পারেন

update-alternatives --display editor

edঅগ্রাধিকার রয়েছে -100, যেখানে অন্য সমস্ত "বুদ্ধিমান" সম্পাদকগুলির ইতিবাচক অগ্রাধিকার রয়েছে, তাই কোনও সম্পাদক ইনস্টল না করা থাকলে এটি ডিফল্টরূপে ব্যবহার করার একমাত্র উপায়। উবুন্টুর একটি ডিফল্ট ইনস্টলেশন ন্যানোকে ডিফল্ট সম্পাদক হিসাবে অগ্রাধিকার 400 সহ ব্যবহার করে। বিকল্পটি সেট করা থাকলে edআপনি এটি দিয়ে এটি পরিবর্তন করতে পারেন

sudo update-alternatives --config editor

গিলস, উবুন্টু (এবং দেবিয়ান এবং অন্যদের) উচিত নয়, সিস্টেম ডিফল্ট সম্পাদকটি / ইত্যাদি / বিকল্পগুলি / সম্পাদককে উবুন্টুতে (এবং দেবিয়ান এবং অন্যদের) পুনরায় প্রতিস্থাপন করা উচিত , সিস্টেম ডিফল্ট সম্পাদকটি / ইউএসআর / বিন / সম্পাদক ?
হিমাইল

বেশ বিস্তৃত (বাদে এটিতে EDITOR env ভেরিয়েবলের উল্লেখ নেই? তবে সম্ভবত উদ্দেশ্য হিসাবে, যাতে লোকেরা আপডেট-বিকল্পগুলির মাধ্যমে সিস্টেমে সেট করার উপযুক্ত উপায়টি ব্যবহার করে)। তবে পরিবর্তন হতে পারে: psসাথে pstree -sap $$ ? (কোন সম্পাদকটি চালু হয়েছিল, তা নির্ধারণ করা আরও সহজ, এটি এখন গাছের ফর্ম্যাটে রয়েছে)
অলিভিয়ার ডুলাক

@ হেইমাইল এটির /usr/bin/editorএকটি সিমিলিংক /etc/alternatives/editor। অ্যাপ্লিকেশনগুলি কল করার /usr/bin/editorবিষয়টি হ'ল আমি এড়িয়ে গিয়েছি।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

3
@ অলিভিয়ারডুলাক আমি উল্লেখ করেছি EDITORএবং VISUAL। প্রকৃতপক্ষে তারা সম্পাদক চয়ন করার সঠিক উপায় কারণ এটি কোনও ব্যবহারকারী পছন্দ, সিস্টেম-ব্যাপী পছন্দ নয় wide psজিনিসগুলিকে সরল রাখতে আমি এখানে আটকে থাকতে পছন্দ করি ।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
"... কম্পিউটারগুলি যার ইন্টারেক্টিভ আউটপুট পেরিফেরাল ছিল একটি লাইন প্রিন্টার" " একটি লাইন প্রিন্টার কোনও ইন্টারেক্টিভ ডিভাইস ছিল না - এটি প্রচুর পরিমাণে মুদ্রিত আউটপুট উত্পাদন করার জন্য তুলনামূলকভাবে উচ্চ গতির (এবং ব্যয়বহুল) ডিভাইস ছিল। আপনার অর্থ একটি "টাইপ টাইপ (যা পাঞ্চযুক্ত কাগজের টেপ I / O ডিভাইস হিসাবেও কাজ করতে পারে) বা আইবিএম" গল্ফবল "টাইপরাইটার এর মতো" একটি কীবোর্ড সহ একটি মুদ্রণ টার্মিনাল "mean
আলেফজেরো

12

আপনার প্রশ্ন থেকে দেখে মনে হচ্ছে আপনার ডিফল্ট এডিটোরটি নেই vimএবং আপনার বর্তমান ডিফল্ট সম্পাদক নিয়ে সমস্যা রয়েছে।

নীচের কমান্ডটি ডিফল্ট এডিটোর হতে হবে vim

export EDITOR=vim

ডিফল্ট সম্পাদক হিসাবে সেট করার পরে vim, চলমান আপনার সম্পাদক হিসাবে crontab -eব্যবহার করবে vim

নোট:

  1. আপনি যদি পছন্দ করেন তবে আপনি নিজের ডিফল্ট সম্পাদক হিসাবে পৃথক এডিটর চয়ন করতে পারেন
  2. আপনি ডিফল্ট এডিটর সেট করতে চান তাহলে vimস্থায়ীভাবে, আপনি আপনার উপরে কমান্ড যোগ করতে হবে ~/.bashrcবা ~/.profileবা অনুরূপ ফাইল।

4

ক্রন্টব সম্পাদনা করতে ষষ্ঠ সম্পাদককে ব্যবহার করতে, নীচের কমান্ডটি ব্যবহার করুন।

EDITOR="vi" crontab -e

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


এক মিলিয়ন! EDITOR = "vi" ক্রন্টব-এর সাথে এটি কাজ করে।
justme

3
@ গ্রনোস্টাজ এটি এখানে পোস্ট করা অন্য কোনও উত্তরের মতো নয়। একক কমান্ডের একক রান জন্য পরিবেশ পরিবর্তনশীল নির্ধারণ বর্তমান শেল ইনস্ট্যান্স থেকে চালিত পরবর্তী সমস্ত কমান্ডের জন্য রফতানি করার মত নয়। এই উত্তরটি স্থায়ীভাবে সেটিংস পরিবর্তন করার জন্য কার্যকর তবে প্রতি রান চালক সম্পাদককে নিয়ন্ত্রণ করার জন্য এটি সঠিক উত্তর।
এলিয়াহ কাগন

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