"পিএস-ইউ" আসলেই একটি খারাপ সিনট্যাক্স?


75

আইএমএইচও ps -uএকটি খুব দরকারী আউটপুট দেখায়, এর থেকে আরও ভাল ps -u $USER:

$ ps -u
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
elastic   234897  0.0  0.0 105980  1336 pts/2    S+   Oct10   0:00 /bin/bash ./run.sh collector-json-1.conf
elastic   234899 48.7  7.1 10087120 4433104 pts/2 Sl+ Oct10 2804:11 /usr/java/jdk1.7.0_09_x64/bin/java -Xmx6144m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatin
:

তুলনা করা

$ ps -u $USER
    PID TTY          TIME CMD
 234897 pts/2    00:00:00 run.sh
 234899 pts/2    1-22:44:04 java
:
  1. তবে, কেন এটি "খারাপ সিনট্যাক্স"? /usr/share/doc/procps-3.2.8/FAQবেশি সাহায্য করে না
  2. সঠিক একই আউটপুট অর্জনের জন্য "সঠিক সিনট্যাক্স" কী হবে?

ক্ষেত্রে এটি গুরুত্বপূর্ণ:

$ uname -a
Linux h22k34.local 2.6.32-042stab044.17 #1 SMP Fri Jan 13 12:53:58 MSK 2012 x86_64 x86_64 x86_64 GNU/Linux

5
এবং এখন শক্ত অংশটির জন্য: কোন উত্তরটির চেকমার্ক পাওয়া উচিত?
sjngm

আসলে আমি ভেবেছিলাম আমাকে আপনার, ব্যবহারকারীদের সিদ্ধান্ত নেওয়া উচিত। উচ্চতর upvotes এর সাথে এটি পাওয়া উচিত। তবে, আপনি এটিকে আর সহজ করে
তুলছেন না

6
যখন উভয় উত্তর সমানভাবে ভাল হয়, আমি উভয়কেই উত্সাহিত করি এবং নিম্ন প্রতিলিপি সহ ব্যবহারকারীকে চেকমার্কটি দিই, বিশেষত যখন পার্থক্যটি 100 কে-র বেশি হয়।
ফ্রাঙ্ক থমাস

1
@ ফ্র্যাঙ্ক থমাস সম্পন্ন হয়েছে :)
sjngm

এসআইএসভি-ভিত্তিক সিস্টেমে (বা যেগুলির psজিনিসগুলি এই লাইন থেকে আসে) আমি প্রায়শই ব্যবহার করি ps -fu $USER... ps -fআউটপুট ফর্ম্যাটিং যা কিছুটা ps uবিন্যাসের অনুরূপ , তবুও নির্দিষ্ট-ব্যবহারকারীর জিনিসটি পেয়ে যাচ্ছি । যদি আপনি একই সাথে উভয় চেয়েছিলেন।
lindes-hw

উত্তর:


130

সঠিক বাক্য গঠন যা একই আউটপুট দেয় , তা হ'ল:

ps u

এর জন্য আধুনিক সিনট্যাক্স psএকটি জগাখিচুড়ি হওয়ার একটি ভাল কারণ রয়েছে । .তিহাসিকভাবে, এর দুটি বেমানান সংস্করণ ছিল ps। শীর্ষস্থানীয় ড্যাশযুক্ত বিকল্পগুলি এর এ্যান্ডটিটি টি ইউনিক্স সংস্করণ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছিল ps। শীর্ষস্থানীয় ড্যাশ ছাড়াই বিকল্পগুলি বিএসডি থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছিল। psলিনাক্স ডিস্ট্রিবিউশনগুলির সাধারণভাবে ব্যবহৃত সংস্করণটি হ'ল জিএনইউ যা উভয় বিকল্পের সেটকে একসাথে একত্রিত করেছে, পাশাপাশি নিজস্ব বিকল্পগুলির সেটও যুক্ত করেছে যা একটি শীর্ষস্থানীয় ডাবল ড্যাশ দিয়ে শুরু হয়।

সুতরাং, ps uবিএসডি-স্টাইল এবং ps -u $USERএটি এ টি ও স্টাইল। জিএনইউ psআপনাকে চালনার অনুমতি দেয় ps -uএবং সতর্কতা ব্যতীত একই আউটপুট পায় যা ps uদেখায় যে জিএনইউ খারাপ পরিস্থিতি সেরা করার চেষ্টা করছে।


আসলে, জগাখিচির ভাল কারণ নেই। বেশ কয়েকটি খারাপ রয়েছে এবং লিনাক্সের ম্যানুয়াল পৃষ্ঠা দ্বারা "জিএনইউ" এবং "বিএসডি" এর উদ্বেগজনক দ্বৈতত্ত্ব রয়েছে a Unix.stackexchange.com/a/511530/5132 দেখুন ।
জেডিবিপি

84

psকমান্ড ঐতিহাসিকভাবে বাসদ এবং সিস্টেম ভী ইউনিক্স মধ্যে দুর্দান্তভাবে বিভিন্ন সিনট্যাক্স ছিল।

  • ইন বাসদps , uবিকল্প (কোন ড্যাশ) কোন প্যারামিটার নেয় এবং অতিরিক্ত কলাম সঙ্গে "ব্যবহারকারী-ভিত্তিক আউটপুট" দেখায়।

  • ইন SunOSps , -uবিকল্প (ড্যাশ দিয়ে) প্যারামিটার হিসাবে একটি ব্যবহারকারী নাম নেয় এবং শুধুমাত্র, কিন্তু প্রদর্শনের বিন্যাস পরিবর্তন না করে ব্যবহারকারীকে মালিকানাধীন প্রসেস অন্তর্ভুক্ত করা হয়েছে।

(অন্য একটি সাধারণ উদাহরণ হিসাবে, বিএসডি eঅর্থ "পরিবেশ দেখান", সানোস -eঅর্থ "প্রত্যেকের প্রক্রিয়াগুলি দেখান"))

লিনাক্স প্রোপস ps দুটি স্টাইল সমর্থন করার চেষ্টা করে। তাই আপনি যদি 'ড্যাশ' বিকল্প ব্যবহার -u, এটা SunOS "ফিল্টার এই ব্যবহারকারী" বিকল্প, বলে আশা করা হবে না বর্ধিত কলাম বিকল্প। দু'জনই প্রায়শই পর্যাপ্ত বিভ্রান্ত হয়ে যায়, তবে, প্রোপসগুলি আপনি যা করতে চান তা করার চেষ্টা করে - যদি ব্যবহারকারীর নামটি অনুপস্থিত থাকে তবে এটি ধরে নেবে আপনি এটি একটি BSD বিকল্প দিয়েছেন তবে সানোস সিনট্যাক্স ব্যবহার করেছেন।

(অনেক বিভিন্ন রূপগুলো আসলে ছিল psযে procps "ব্যক্তিত্ব" এর একটি প্রকৃত টেবিল দ্ব্যর্থক আচরণ বলপূর্বক একটিই শৈলী বা অন্য বা এখনও অন্য হিসেবে ব্যাখ্যা করা - ছাড়াও "UNIX95", "CMD_ENV" মত নব, "_XPG", "I_WANT_A_BROKEN_PS" ...)


29
"I_WANT_A_BROKEN_PS" হাহ।

42
... প্রথমে, আমি ভেবেছিলাম এটি একটি রসিকতা। তবে নুওও ...
ইজকাটা

9
হুম, এটি দেখা যাচ্ছে যে, ওপি যে সতর্কতাগুলি দেখছে তা হ'ল "অস্পষ্ট ব্যবহার "টি আড়াল করার ঠিক এটি বিকল্প।
অভিকর্ষ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.