Как отобразить текущую информацию о машине в терминале?

Вы просили сценарий оболочки, но, надеюсь, awkподойдет:

find_thrust_torque.awk:

/^Total thrust =/ {thrust = $4}
/^Total torque =/ {torque = $4}
/^Time =/ {if (found) exit; if ($3 == time) found=1}
END {print torque " " thrust}

Протестируйте:

$ awk -v time=25 -f find_thrust_torque.awk file1
1.03723 -8.49093

$ awk -v time=26 -f find_thrust_torque.awk file1
1.03953 -8.51463
1
16.09.2017, 08:38
4 ответа

escribir en la terminal

hostnamectl

0
27.01.2020, 23:13

Существует множество способов, в зависимости от того, какая информация вам нужна, чтобы различать ваши машины.


dmidecode -t1показывает информацию о компьютере, на котором вы работаете, включая производителя и модель, например.

> dmidecode -t1 | grep Version
    Version: ThinkPad T520

uname -aвыводит системную информацию, такую ​​как имя хоста сетевого узла(-n)и версию ядра (-r).


lsb_release -aпоказывает конкретную информацию о распределении -, например.

> lsb_release -d
Description:    Ubuntu 16.04.3 LTS
2
27.01.2020, 23:13

Попробуйте команду uname -aИЛИ hostname, ip a...и т.д.

1
27.01.2020, 23:13

ИМХО, подсказка — лучший способ напомнить вам, где вы находитесь. Его можно использовать, чтобы напомнить вам о машине, текущем имени пользователя, каталоге и т. д. Подсказка всегда присутствует в командной строке, поэтому ее будет трудно игнорировать. Использование какой-либо другой команды для поиска текущего имени машины (, например hostname), очевидно, также будет работать, но вы забудете это сделать.


Задайте в качестве основного приглашения строку, содержащую имя хоста:

PS1="$(id -un)@$(hostname) \$ "

Это на моей текущей машине и для моего пользователя установит приглашение на

kk@client.local $ 

Вы можете использовать hostname -sвместо простого hostname, чтобы удалить доменную часть имени хоста.

Некоторые оболочки, такие как bash, имеют сокращенные обозначения, которые вы можете использовать для одного и того же. Дляbash(замените \Hна \h, чтобы получить более короткую версию имени хоста ):

.
PS1='\u@\H \$ '

Обратите внимание, что вexportPS1нет необходимости, так как он используется только текущим процессом оболочки.

Изменения этой переменной можно внести в файл инициализации оболочки. Для bashизмените ~/.bashrc. Прочтите руководство по вашей оболочке о PS1.


Для очень маленьких экранов вы можете придумать собственную динамическую подсказку:

case "$(hostname)" in
    bigserver*)  promptstr='bs'  ;;
    srv-*)       promptstr='srv' ;;
    accounting*) promptstr='a'   ;;
    web-dev-*)   promptstr='wd'  ;;
    *)           promptstr=$(hostname -s) ;;
esac

PS1="$promptstr \$ "

Или просто используйте первые три символа имени хоста:

HOSTNAME=$(hostname)
PS1="${HOSTNAME:0:3} \$ "

(для этого требуется оболочка, которая знает, как делать такого рода подстановку переменных, очевидно, но bashделает)

... или просто какой-то другой индикатор, чтобы напомнить вам, что вы больше не локальны, например, использовать *перед$(PS1='*$ ')удаленно, не используя этот индикатор локально. Или любой другой из множества возможных подсказок.

4
27.01.2020, 23:13

Теги

Похожие вопросы