দীর্ঘ বৈশিষ্ট্যযুক্ত ইউজারনেমগুলির জন্য পিএস অক্স একটি প্লাস চিহ্ন দেখায়


18

আমি এর থেকে একটি আউটপুট পাওয়ার চেষ্টা করছি ps auxযাতে এটির মতো দেখতে:

giovanni     28331  4381  0 15:43 ?       00:00:00 sshd: giovanni@pts/1
giovanni     28346 28331  0 15:43 pts/1   00:00:00 -bash
giovanni     28646 28346  0 15:43 pts/1   00:00:00 ./example.sh

তবে উবুন্টু 14.04 এলটিএসে এই কমান্ডটি চালানো পরিবর্তে নিম্নলিখিতটি দেয়:

giovan+     28331  4381  0 15:43 ?       00:00:00 sshd: giovanni@pts/1
giovan+     28346 28331  0 15:43 pts/1   00:00:00 -bash
giovan+     28646 28346  0 15:43 pts/1   00:00:00 ./example.sh

তাহলে আমি কীভাবে এই প্লাস চিহ্নগুলি সরিয়ে ফেলব এবং পরিবর্তে আমাকে পুরো ব্যবহারকারীর নামটি প্রদর্শন করতে আদেশটি নির্দেশ দেব?


1
এটি আকর্ষণীয়, আমার ব্যবহারকারীর
জেমি

উত্তর:


24

অনুসারে man ps, ps -aux" স্ট্যান্ডার্ড (ইউএনআইএক্স) সিনট্যাক্স ব্যবহার করে সিস্টেমে প্রতিটি প্রক্রিয়া দেখতে হয় "। আউটপুট প্রদর্শন করার জন্য কোনও ব্যবহারকারী-সংজ্ঞায়িত ফর্ম্যাট সেট করার কোনও উপায় আমি খুঁজে পাইনি।

ইন বাসদ সিনট্যাক্স তবে তোমার মত কলামের প্রস্থ সেট করতে পারেন: user:<width>। নিম্নলিখিতটি আপনাকে একই তথ্য দিতে হবে, ব্যবহারকারীর কলামের প্রস্থটি 20 (বা অন্য কোনও মান) এ সেট করে:

ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm

দীর্ঘ নাম সহ আউটপুট:

USER                   PID %CPU %MEM    VSZ   RSS TT       STAT  STARTED     TIME COMMAND

.........................................................................................

root                  3826  0.0  0.1  77828  4788 ?        Ss   08:15:55 00:00:00 cupsd
lp                    3831  0.0  0.0  63156  2224 ?        S    08:15:56 00:00:00 dbus
lp                    3832  0.0  0.0  63156  2220 ?        S    08:15:56 00:00:00 dbus
root                  4822  1.7  5.1 446964 210416 tty8    Ss+  08:38:00 00:03:27 Xorg
root                  4923  0.0  0.1 174652  4412 ?        Sl   08:38:02 00:00:00 lightdm
tantemarievanhier     5181  0.0  0.1 544216  4796 ?        Sl   08:38:08 00:00:00 gnome-keyring-d
tantemarievanhier     5228  0.0  0.0  40492  2740 ?        Ss   08:38:08 00:00:00 init
tantemarievanhier     5369  0.0  0.0  41816  3064 ?        Ss   08:38:09 00:00:02 dbus-daemon
tantemarievanhier     5376  0.0  0.0  10616   316 ?        Ss   08:38:09 00:00:00 ssh-agent

7 এ কলামের প্রস্থ নির্ধারণ:

ps axo user:7,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm

USER     PID  %CPU %MEM    VSZ   RSS TT       STAT  STARTED     TIME COMMAND

.........................................................................................

tantem+  6623  0.0  0.0 287228  3820 ?        Sl   08:39:00 00:00:00 unity-webapps-s
tantem+  6679  0.0  0.4 676856 18640 ?        Sl   08:39:20 00:00:00 update-notifier
tantem+  6721  0.0  0.1 541224  7056 ?        Sl   08:40:20 00:00:00 deja-dup-monito
tantem+  6743  0.0  0.5 810616 21888 ?        Sl   08:41:55 00:00:00 unity-scope-hom
tantem+  6758  0.0  0.2 717256 10352 ?        Sl   08:41:55 00:00:00 unity-files-dae
tantem+  6760  0.0  0.5 607208 22920 ?        Sl   08:41:55 00:00:00 unity-scope-loa
tantem+  6784  0.0  0.2 350676  9060 ?        Sl   08:41:56 00:00:00 unity-music-dae

সুবিধার কারণে, আপনি নিম্নলিখিত লাইনটি যুক্ত করতে পারেন ~/.bashrc:

alias psaux='ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm'

সুতরাং এটি ps auxহ'ল "স্বাভাবিক" আউটপুট, যখন psauxআপনাকে পুরো নাম- সংস্করণ দেয়।

বিঃদ্রঃ:

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

ps axo pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm,user

দেয়:

 PID %CPU %MEM    VSZ   RSS TT       STAT  STARTED     TIME COMMAND         USER


 5181  0.0  0.1 544216  4548 ?        Sl   08:38:08 00:00:00 gnome-keyring-d tantemarievanhier
 5228  0.0  0.0  40492  2668 ?        Ss   08:38:08 00:00:00 init            tantemarievanhier
 5369  0.0  0.0  41816  3032 ?        Ss   08:38:09 00:00:07 dbus-daemon     tantemarievanhier

আউটপুটটি কীভাবে প্রদর্শন করতে হয়, স্বয়ংক্রিয়ভাবে USER কলামের প্রস্থ সেট করে

USER- কলামের প্রস্থ নির্ধারণ করার জন্য আরও একটি পরিশোধিত উপায় রয়েছে। যদি আমরা USER কলামের প্রস্থের জন্য খুব বেশি মান সহ কমান্ডটি চালিত করি তবে আমরা কলামের প্রস্থকে দীর্ঘতম ব্যবহারকারীর নামের সাথে সমন্বিত করে লাইনগুলি পুনর্বিন্যাস করতে একটি ছোট স্ক্রিপ্ট ব্যবহার করতে পারি।

তাই না

  • নীচের স্ক্রিপ্টটি অনুলিপি করুন, খালি ফাইলে এটি আটকে দিন, এটি সংরক্ষণ করুন psaux_alternative.py
  • এটি কার্যকর করা
  • আপনার একটি লাইন যুক্ত করুন ~/.bashrc:

    alias psaux='/path/to/psaux_alternative.py`
    

তারপরে, psauxটার্মিনাল উইন্ডোটিতে চলমান USER কলামের একটি স্বয়ংক্রিয় প্রস্থের সাথে আউটপুট প্রদর্শন করবে।

এই পান্ডুলিপি:

#!/usr/bin/env python3

import subprocess

command = "ps axo user:30,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm"
l = subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").split("\n")
minlen = sorted(set([30-len(item.split(" ")[0]) for item in l]))[0]
for line in l:
    print(line[:30-minlen]+line[30:])

এটি খুব সুন্দর কাজ, জ্যাকব আপনাকে অনেক ধন্যবাদ! তবে, আপনি কি মনে করেন এটি করার উপযুক্ত উপায় আছে? মানে আমরা যা করেছি তা কলামের প্রশস্ততা বাড়িয়ে দিচ্ছিল, তবে উবুন্টুকে বৃহত্তম ব্যবহারকারীর দৈর্ঘ্য অনুসারে স্বয়ংক্রিয়ভাবে এই প্রস্থটি বাড়িয়ে দেওয়ার কোনও উপায় নেই কি?
জিওভান্নি মাউনির

@ জিওভান্নি মাউনির এখন এটি একটি আকর্ষণীয় প্রশ্ন! এবং হ্যাঁ, এটি সম্ভব হওয়া উচিত। আমি সর্বশেষে আগামীকাল বা পরশু এটিতে ফিরে আসব।
জ্যাকব Vlijm

2
কাজটি করতে আমি একটি ছোট স্ক্রিপ্ট তৈরি করেছি এটি চালানো USER কলামের আউটপুট প্রস্থ স্বয়ংক্রিয় প্রস্থ প্রদর্শন করবে।
জ্যাকব Vlijm

জাকব! আপনাকে অনেক ধন্যবাদ!
জিওভান্নি মাওনির

@ জ্যাকবভিলিজম খুব সুন্দর! আমি আবার যে উদ্দেশ্যে আপনার স্ক্রিপ্ট দ্বারা প্রভাবিত করছি ...; ডি
বাইট কমান্ডার

1

আমিও একই সমস্যার মুখোমুখি হয়েছি। পিএস ম্যানুয়ালটি ওয়াইড-ডাব্লুএইচএন-কলম্বন সম্পর্কে আমাদের জানায়। সমান্তরাল গঠিত WIDE-RUSER-COLUMN এর সাথে স্মার্ট চেষ্টাটি চেয়েছিল ফলাফলটিতে শেষ হয়েছে:

$ ps -e -o ruser=WIDE-RUSER-COLUMN

আপনি দয়া করে আপনার উত্তরে এমন কিছু প্রসঙ্গ যুক্ত করতে পারেন যা আদেশটি ব্যাখ্যা করে? স্বাগতম এবং ধন্যবাদ
26sнιη

@ কাসিয়াএ এটি সম্পাদনা করা হয়েছে।
বাইট কমান্ডার

টুইটগুলি দেখুন বিটিডাব্লু, আমি সেই ব্যক্তি নই যিনি তার পক্ষে কম করেছেন :( +1 তার জন্য।
.সেস ২нιη
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.