내 컴퓨터에서 실행 중인 모든 서비스를 인쇄하려고 합니다. 이를 위해 나는 명령을 사용합니다
a=$(sudo systemctl list-units --type service --all | grep running | awk -v OFS='\t' '{ print $1, $2, $4 }')
위 명령의 출력은 다음과 같습니다.
abrt-xorg.service loaded running
abrtd.service loaded running
accounts-daemon.service loaded running
atd.service loaded running
auditd.service loaded running
avahi-daemon.service loaded running
bolt.service loaded running
chronyd.service loaded running
colord.service loaded running
crond.service loaded running
cups.service loaded running
dbus.service loaded running
firewalld.service loaded running
gdm.service loaded running
grafana-server.service loaded running
gssproxy.service loaded running
influxdb.service loaded running
irqbalance.service loaded running
ksmtuned.service loaded running
libstoragemgmt.service loaded running
libvirtd.service loaded running
lvm2-lvmetad.service loaded running
첫 번째 열은 서비스 이름, 두 번째 열은 로드 상태, 세 번째 열은 실행 상태입니다...
각 열의 출력 위에 헤더가 필요합니다.
column name loading status running status
어떻게 해야 하나요...도와주세요
나는 명령을 실행했다systemctl list-unit-files
결과 출력은 다음과 같습니다
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
dev-hugepages.mount static
dev-mqueue.mount static
proc-fs-nfsd.mount static
답변1
BEGIN
awk
제목을 인쇄하려면 명령에 사용하십시오 .
systemctl list-units --type service --all | awk 'BEGIN{print "Unit State Status"};$4 ~ /^running$/{print $1,$2,$4}' | column -t
column -t
읽기 쉬운 출력을 얻기 위해 파이프로 연결할 수 있습니다 . 열 4가 일치하는지 확인하는 awk
대신 사용할 수도 있습니다 .grep
running
다른 의견에서 언급했듯이 실행 중인 서비스를 사용 하거나 필터링하는 systemctl list-units --type service --state=running
대신 실행할 수도 있습니다 .grep
awk