Как красиво отображать столбцы в файлах, разделенных табуляцией?

техническая осуществимость

Конечно, системный администратор с привилегиями root может получить доступ ко всему, что происходит на машине. Один из примеров, который я мог придумать, - это использование VNC в графическом сеансе для мониторинга текущего сеанса X, например с x11vnc .Консольный сеанс можно прочитать с помощью терминальных устройств в системах unix / linux. Если не использовать какой-либо из этих подходов, в настройках по умолчанию для root-доступа доступна в основном вся память машины.

Если системный администратор желает показать, что он наблюдает за экраном, то это можно связать с настраиваемым скриптом для «отправки сообщения электронной почты / чата и входа в систему» ​​за один шаг или просто выполнить «echo -e '\ a '", чтобы компьютер издал звуковой сигнал.

обнаружение «наблюдаемого»

Конечно, как опытный пользователь, вы можете следить за входящими подключениями к машине. Пользователи, вошедшие в систему, могут быть видны, например, для ssh / telnet-пользователей с помощью команды "who". Затем открытые порты сообщают, как вообще можно получить доступ к машине извне. На более низком уровне будет мониторинг сетевого трафика, отслеживающий входящий / исходящий трафик на предмет «подозрительных» пакетов.

этическая перспектива

По сути, root-доступ предполагает фундаментальное признание доверия, которое пользователи должны оказывать системному администратору. Вероятно, это веская причина, по которой у «начальника» не должно быть корневого доступа к машине коллеги, а должно быть третье лицо, доверенный системный администратор. Хорошие системные администраторы будут спрашивать пользователей, прежде чем они получат доступ к каким-либо личным данным, включая живые пользовательская сессия. Мое личное мнение заключается в том, что здесь более уместно предварительное общение, то есть спрашивать наблюдаемого пользователя лично, по телефону, в чате, по электронной почте и т. Д., Прежде чем устанавливать соединение. Программное обеспечение, предназначенное для «удаленной поддержки», обычно имеет средства информирования пользователя, если он не запрашивает разрешения, например с окном состояния, сообщающим, что кто-то подключен.

4
08.06.2018, 08:34
1 ответ

Si las columnas de entrada están separadas con un espacio en blanco simple (Espacio ASCII 0x20 y/o tabulador 0x09 )y ninguna columna en blanco, es tan simple como:

<infile column -t
c1     c2               c3               c4
ABC    0                1.0231321321213  92
BBBBB  12321.00002131   19912132.        0
CC     0.0999813221321  0                0

Sin embargo, columnno procesa Retorno de carro (ASCII 0x0d o \r), Avance de formulario (ASCII 0x0c o\f)o Tabulador vertical (ASCII 0x0b o\v)como delimitadores.
Si las columnas se pueden separar con algún "espacio en blanco"([[:space:]]similar a[ \t\r\f\v]:espacio, tabulación horizontal, retorno de carro,desde el feed o la pestaña vertical (no la nueva línea )), deberá contraer (y convertir )todos los espacios en blanco en un solo espacio delimitador (de forma predeterminada ). No es posible utilizar el carácter de nueva línea como delimitador de línea y como delimitador de columna.

Excepto por el carácter de nueva línea, este trabajo:

<infile sed 's/[[:space:]]\+/ /g' | column -t

Es posible reducir los delimitadores de espacios en blanco dentro del rango […].

Si las columnas en el archivo fuente están separadas con un solo carácter (como tabulaciones ), es posible usar la expansión ANSI C del shell($'…')(si el shell en ejecución tiene tal capacidad )para declarar el carácter utilizado como delimitador.
Entonces, usandocolumn:

<infile column -s $'\t' -t

El delimitador de salida para la columna siempre es un espacio.

Si es necesario aceptar varios delimitadores consecutivos (útil cuando hay una columna en blanco ), existe la opción (GNU )-nque deshabilita la fusión de múltiples delimitadores adyacentes de entrada en un solo delimitador.

<infile column -s $'\t' -tn

si el archivo de origen no está separado con un solo carácter sino con múltiples caracteres, aún puede definirlos dentro de $'...'sin el uso adicional de sedpara convertirlos en un solo carácter; como Espacio o Tabulaciones con:

<infile column -s $'\t ' -tn
4
27.01.2020, 20:57

Теги

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