что такое ЗШ эквивалент экспорта -Ф Баша

Так как я начал использовать ЗШ. Мне нравится все в порядке. Кажется очень крутой и скользкий, и тот факт, что текущий рабочий каталог и фактические командной строки находятся на разных линиях это конечно хорошо, но в то же время, я замечаю, что ЗШ может быть немного медленнее, чем Баш, особенно при печати текста на экране.

Что мне понравилось больше всего было то, что ЗШ была совместимой с все функции, которые я определил в моем .bashrc следующее.

Хотя одно нарекание. Функции все работают отлично, но я не могу выяснить, как система экспорта работает.

У меня были некоторые из этих .bashrc и функций, экспортируемых, так что я мог использовать их в другом месте, например в скрипты и внешние программы, с Экспортно-Ф.

В ЗШ, экспорт, кажется, не даже о нем говорили. Это автозагрузку? Эти две вещи одинаковы? Мне тяжело в этом разобраться.

+902
Christopher Thomson 25 мар. 2018 г., 17:22:27
37 ответов

Используя compgen - это, безусловно, хороший. Кроме того, и что будет работать с любым оболочка POSIX, вы можете проверить команды в переменной$PATH с:

(ИФС=:; комплект -Ф; ЛС -- $путь | топ команда grep$)

С ЗШ:

тип -М '*вверху'

Вы также можете запрос к базе данных такой:

человек -КС1:8 топ$
+979
krainboltgreene 03 февр. '09 в 4:24

Я недавно пытался использовать следующий код, чтобы отправить вставить pastebin.com:

https://github.com/mefuckin/pastebin-shell/blob/master/pbin

Что я заметил, с этого сценария является то, что он не появляется, чтобы отправить api_user_key. Линия 183 и он перечислил:

--данные "api_user_key=$api_user_key" \

поэтому я, хотя это просто вопрос с указанием его стоимости, как:

api_user_key="значение"

и что бы отправить его в API. Однако, я уверен, что это часть кода (код, который начинается на 174):

[ $logintopastebin не-ne 0 ] && auth_user
api_paste_code=$( кошка )
скручиваемость -0 --шоу-ошибка \
 --данные "api_dev_key=$api_dev_key" \
 --данные "api_option=вставить" \
 --данные "api_paste_code=$api_paste_code" \
 --данные "api_paste_format=$api_paste_format" \
 --данные "api_paste_private=$api_paste_private" \
 --данные "api_paste_expire_date=$api_paste_expire_date" \
 --данные "api_user_key=$api_user_key" \
 --данные-функция urlencode "api_paste_name=$api_paste_name" \
 --данные-функция urlencode "api_paste_code=$api_paste_code" \
"$api_url/api_post.php"

Это часть кода означает, что все эти аргументы будут отправлены к API?

+948
Mafii 30 окт. 2015 г., 22:24:25
Другие ответы

Связанные вопросы


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

Я не могу сказать, как портативный это, но я пытался охватить все основания. Я постарался скопировать два файла в моем тестировании на основе вашей информации. Если вы наткнетесь на специальные вопросы персонажа с помощью sed, они могут быть esacped во второй строке функции клинлайн.

#!/бин/Баш

# сравнить два файла и возвращать строки в
первый файл # которые отсутствуют во второй файл

Имя_программы=${0##*/}
Пид=$$
CHK_FILE="$1"
REF_FILE="$2"
D_BUG="$3"
TMP_FILE="/tmp/и REF_${пид}.ТМП"
заявляю-хватает='()'
М=0

scriptUsage() {
кошка <<конечными потребителями

 $Имя_программы <file_to_check> <reference_file> [-д|--отладка]

 Линии в file_to_check' нет в reference_file'
 печатаются на стандартный вывод.

 file_to_check: проверяется файл 
 reference_file: в файл проверяется на
 -д|--отладки: запустите скрипт в режиме отладки (опционально)
 -ч|--помочь: распечатать эту справку 

Конечными потребителями
}

файл # удалить Temp на любой выход
ловушка РМ $TMP_FILE > /dev/нуль выход 2>&1' 


# - проверить аргументы
 [[ $CHK_FILE == "-ч" || $CHK_FILE = = "у" ]] && { scriptUsage; выход 0; }
 [[ -N $в CHK_FILE && -Н $REF_FILE ]] || { >&2 Echo "а не хватает аргументов!"; scriptUsage; выход 1; }
 [[ $D_BUG = = "д" || $D_BUG == "--отладка" ]] && сэт-х
 [[ -с $CHK_FILE ]] || { >&2 Echo "файл $CHK_FILE не найден"; покинуть 1; }
 [[ -с $REF_FILE ]] || { >&2 Echo "файл $REF_FILE не найден"; покинуть 1; }
#--


# = файл= изменение температуры 3 правила сравнения матч 
 файл # скопируйте Реф темп для редактирования
 КП "$REF_FILE" $TMP_FILE || { >&2 эхо "не удалось создать временный файл"; покинуть 1; }
 # Правило 3 - Игнорировать пустые строки
 СЕПГ -я '/\^ы*$$TMP_FILE/д' 
 # Правило 1 - игнорировать начала/конца строки пробелами
 СЕПГ -я с/^[[:пробел:]][[:пробел:]]*//;с/[[:пробел:]][[:пробел:]]*$//' $TMP_FILE
 # Правило 2 - вкладка мульти пространство как единое пространство
 СЕПГ -я/[[:пробел:]][[:пробел:]]* $TMP_FILE/ /г' 
#==


функция # чтобы очистить линию, чтобы соответствовать 3 правилам
# & побег '/' и '.' для последующих команду sed 
клинлайн() {
 ВАР=$(Эхо "$1" | е с/^[[:пробел:]][[:пробел:]]*//;с/[[:пробел:]][[:пробел:]]*$//;с/[[:пробел:]][[:пробел:]]*/ /г')
 Эхо $VAR в | Е С/\//\\\//Г;с/\./\\\./г'
}


проверить файл ### разбираем 
хотя ИФС=" читать -линия р || [[ -n $в строке ]]
делать
 если [[ -Z в строке$]]
тогда
далее
еще
 CLN_LINE=$(клинлайн "$строка")
 Нашли=$(СЕПГ -Н "/$CLN_LINE/{р;г}" $TMP_FILE)
 [[ -Z от $нашли ]] && отсутствует[$м]="$строка" && ((м++))
Нашли=""
интернет
сделано < "$CHK_FILE"
###


#++ напечатать недостающие строки(ы) (при наличии)
 если (( $м > 0 ))
тогда
 функции printf "\н отсутствует линия(ов) найдено:\Н"
 #*СМ. НИЖЕ НА ЭТОЙ
 для (( Р=0; $р<$м; р++ ))
делать
 функции printf "%з\п" "${отсутствует[$п]}"
сделано
Эхо
еще
 функции printf "\Н **без пропуска строки нашли**\н\н"
интернет
#* используя для P в ${отсутствует[@]}' причин:
#* "Расположенные линии", чтобы стать:
#* "Интервал"
#* "Линии", когда напечатано в stdout!
#++
+933
Asa 1 мая 2017 г., 12:02:46

Лучший выход заключается в том, что похоже, что Nvidia не работает с доменом Dom0 Xen В но может быть есть обходной путь, который существует с участием (пере)сборку драйверов NVIDIA с IGNORE_XEN_PRESENCE=параметр г':

https://wiki.centos.org/HowTos/Xen/NvidiaWithXen

https://devtalk.nvidia.com/default/topic/691565/geforce-driver-problem-on-centos-6-4-with-xen-installed/

+901
veducm 21 июн. 2011 г., 18:54:42

Вам не нужно туннель по SSH. Вы можете СШ посреднику хост по SSH , чтобы где-нибудь еще вам нужно.

Вы можете даже сделать это в одну команду, заставляя выделения псевдо-телетайп с помощью флаг:

мне@внутри$ СШ -Т-посредника СШ внешних
Последняя авторизация: Пт сен 21 14:13:25 2012 от посредника
мне@внешними$ выход
Подключение к внешним закрыт.
Подключение к посреднику закрыт.
мне@внутри$ 

Единственным недостатком является то, что у вас есть несколько сеансов СШ. Но я не могу понять, почему это было бы проблемой.

+859
user46324 29 сент. 2011 г., 21:45:21

Я унаследовал сервер RedHat и я пытаюсь найти ключевой файл SSL, который был использован для создания собственной самоподписанный сертификат, поэтому я могу сделать КСО.

От того, что ковыряюсь я сделал, я не могу найти его в любом из привычных местах. Очевидно, что веб-браузер знает, где это, потому что я получаю предупреждение системы безопасности сообщений, но как я могу найти его на сервере?

+854
Mdsharfuddin Sharfuddin 15 апр. 2015 г., 15:59:57

Моя машина генерирует много трафика, все из того же источника порта, с множеством различных направлений (выяснил это путем запуска iftop -П, и от моего роутера журналы).

Как найти процесс, который генерирует этот трафик?

+850
Timo Denk 13 мая 2015 г., 12:39:08

Как называется программа или скрипт, который открывает и читает файл /etc/hosts и при необходимости разрешение имен? и он отличается для каждого Linux и дистрибутив ОС UNIX?

Я читал на man-странице для хозяев и попытался гденаходится ищете бинарного с именем hosts, но гденаходится выводит имена файлов, как /и т. д./хостов.allow и /etc/hosts на.отрицать. Я был под впечатлением, что хозяева.allow и hosts.отрицать были config для TCPWrappers и теперь я более запутанной, чем когда я начал.

+802
Markus Dresch 4 авг. 2016 г., 05:25:01

Получил он.

команду dmsetup переименовать sdo5_crypt sdn5_crypt
СЕПГ -я -е с/sdo5_crypt/sdn5_crypt/г' в /etc/crypttab можно найти
обновления-пакет initramfs-У-К все
+755
Ministeria 3 сент. 2010 г., 21:49:08

В macOS-это Unix ОС и РМ означает "прощай". Графический интерфейс позволяет переместить файл в корзину (которую потом можно восстановить), но это не то, что вы сделали. Если у вас есть резервная копия (например, у вас есть машина времени работает), то вы спасены.

Уточнение

Строго говоря (как @ire_and_curses указывает) в РМ просто удаляет запись каталога для файла, а оставляя , что дисковые блоки это используется, нетронутыми. Если бы вы могли заморозить файловой системы, в котором файл был, есть продвинутые методы, с помощью которых вы можете попытаться заново открыть для себя содержание этих блоков. Есть также некоторые инструменты восстановления, которые могут быть приобретены, чтобы восстановить потери. Центральный вопрос заключается в том, что ничего повторно использует любой из дисковых блоков, представленных на ваш файл.

В macOS также имеет защищенный удалить команду (СРМ), которая за-пишет файл перед его отвязатьЭд делает ее безнадежной. Я использую отвязать термин, так как это основная система вызова, связанного с оболочки РМ команду. Это готовит почву для следующей части этой дискуссии ниже.

Заметка на полях

[ Я должен сразу же добавить, что даже если закончится-напишу тебе несколько раз диск, есть способы, чтобы прочитать, что было написано более десятка раз. Правильно дезинфицировать для уничтожения диск действительно требует кислотной ванне, большой молоток и измельчитель. ]

отцепитьИнг файл уменьшает файла инф ссылке-граф. Если это значение достигает нуля, то файл удаляется из папки файловой системы и ее блоков диска освобождается для повторного использования. Это только происходит, когда нет процессов, которые держат этот файл открытым. Это часто приводит в замешательство администраторам увидеть, что файловая система использует очень большие объемы пространства, которые не могут быть учтены путем простого суммирования блоков диска (что-то вроде дю). Чаще всего причина в том, что открытый файл был удален, так что он больше не представляет в своем каталоге. Причина в том, что дисковые блоки остаются команды inuse до последнего процесса, используя файл завершается.

Открываем файл и сразу же отключитьего-это вообще обычная практика для создания безопасной, временные файлы. Такие инструменты, как как lsof может разоблачить эти невидимые файлы, если вы ищите файлы со ссылкой граф (NLINK) ноль.

В Unix и Linux (которых в macOS-это фирменная ОС UNIX), в РМ образом в Unix-философии "сделай это" без лишнего шума, если это возможно. То есть, если у вас есть права на удаление файлов (т. е. каталог позволяет писать), то РМ делает только то, что вы просите. Возможно, вы захотите создать псевдоним оболочки РМ=РМ -я , что запрашивает подтверждение перед выполнением операции. Использование выключатель с РМ переопределения, в случае необходимости. Псевдоним РМ является наиболее полезным, когда вы делаете Глоб удаляет как РМ *.журнал. То есть, у вас есть возможность пропустить файл в списке.

+741
IamBatman 24 дек. 2010 г., 03:08:47

У меня есть файл, который использует | в качестве разделителя. Некоторые записи есть пустые ячейки || (внутри ничего нет). Я пытаюсь заменить их |""| с последующим СЭД команду:

СЕПГ -я/\|\|/\|"файл"|/г' 

Но результат не то, что я ожидал.

Входной файл

А|Б|В|Д|||Е

Желаемый результат:

А|Б|В|Д|""|""|Е

Обратите внимание, что начало и конец записи не имеют "|"

Любая помощь будет оценили.

+707
Al brown 8 янв. 2016 г., 22:48:59

ОК, вы воспитывающих несколько вопросов в ваших комментариях/ответах на другие ответы...

На исходный вопрос - по умолчанию файл/etc/АПТ/источников.список должен выглядеть примерно так

деб http://ftp.us.debian.org/debian/ стрейч основных 
деб http://security.debian.org/debian-security стрейч/главная обновления 

Вы в настоящее время стрейч-обновления каналов включен, но нет первичной стрейч канала.

Только эти 2 строки в мой файл/etc/АПТ/источников.список и ничего в файле/etc/АПТ/источников.список.д Я могу устанавливать синаптические на свежий сетевой установки базы "Системные утилиты" только Debian 9 скачали около 3 часов назад.

Положите ваши источники.список файл, что делать apt-получить обновления и посмотреть, если вы можете переустановить синаптической.

Это также, вероятно, исправить в Firefox-СОЭ, которая проходит обратно, и т. д.

+702
denismash123 31 авг. 2010 г., 16:13:09

Вам не обязательно видеть сообщения об ошибках в системе журнал, когда хром перехожу какие-то границы.

Попробуйте запустить хром с терминала (а не нажатием на значок), так что вы можете видеть любые возможные сообщения об ошибках в терминале.

То, что вы описываете очень похожа на этот багрепорт. Раствор следует увеличить лимиты (ограничение), а конкретно лимит открытых файлов (параметр ulimit -Н).

+621
kapeka 1 сент. 2013 г., 00:18:59

Я на данный момент не имеют в системе RHEL для проверки официальных РЕПО. Что вы должны сделать, это следующее:

  • убедитесь, что у вас есть активная подписка (подписка-менеджер списка --доступное --все)
  • проверьте, если Юм repolist , вы получите список всех репозиториев (которые вы уже сделали)
  • проверьте файл/etc/Юм.РЕПО.д/ каталогов .файлы РЕПО. Если каталог не пуст, проверьте, если файлы не были включены=0. Если они это сделают, изменить включена=1 или просто удалить строку
  • если у вас нет никаких .файлы РЕПО в Юм.РЕПО.D, а затем воссоздать их - как сказал, Я не имею в системе RHEL под рукой сейчас, но минимальным является следующим:

    [хранилище]
    имя=repository_name
    автоопределения=repository_url
    

Проверьте здесь для получения дополнительной информации о добавлении репозитория.

+615
Techdumbo 6 февр. 2015 г., 04:29:26

У меня есть файл YAML это около 25К строк и у меня есть около 450 экземпляров, где мне нужно вставить между двумя строками.

Вот пример записи в файл:

- изменений:
 идентификатор: 1554756073258-367
 автор: [email protected]
изменения:
 - createTable:
столбцы:
 - столбец:
ограничения:
 значение null: ложные
 имя: имя
 тип: тип varchar(50)
 имятаблицы: bazTable
- изменений:
 идентификатор: 1554756073258-812
 автор: [email protected]
изменения:
 - createTable:
столбцы:
 - столбец:
ограничения:
 значение null: ложные
 имя: имя
 тип: тип varchar(50)
 имятаблицы: barTable
- изменений:
 идентификатор: 1555517850-1
 автор: [email protected]
изменения:
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: variable_id
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: имя
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: способ
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: экземпляр
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: машина
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: сообщение
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: действие
 - dropDefaultValue:
 имятаблицы: fooTable
 имя_столбца: состояние
 - dropDefaultValue:
 имятаблицы: fooTable
- изменений:
 идентификатор: 1555509481-1
 автор: [email protected]
предпосылки:
 - onFail: MARK_RAN
 - tableExists:
 имятаблицы: randomTable

Что я пытаюсь сделать, это вставить эти три линии между автор: и изменения:

предпосылки:
 - onFail: MARK_RAN
 - tableExists:
 имятаблицы: 

Загвоздка в том, что я только хочу сделать это, когда запись начинается с - возврате, заканчивается имя_таблицы: и содержит createTable: между этими двумя строками.

Ниже мне бы хотелось, чтобы это выглядело.

- изменений:
 идентификатор: 1554756073258-812
 автор: [email protected]
предпосылки:
 - onFail: MARK_RAN
 - tableExists:
 имятаблицы: bazTable
изменения:
 - createTable:
столбцы:
 - столбец:
ограничения:
 значение null: ложные
 имя: имя
 тип: тип varchar(50)
 имятаблицы: bazTable

Я до сих пор пишу следующую команду, которая выводит на экран все разделы, которые начинаются, заканчиваются, и содержать мою указанных строк

СЭД -п/изменений/{:а;н; /имя_таблицы/!ба; /createTable/п}; файл'.и YAML

Я просто не могу выяснить, как получить его отредактировать файл и добавить недостающие части.

+598
jcipoll1 7 окт. 2011 г., 04:02:39

Я хотел бы использовать nawk:

nawk "начать{srand печати}"
+587
David Bradshaw 6 февр. 2014 г., 13:49:50

В Мак ОС Х, если не трогать некоторое время, он будет блокировать экран и необходимо использовать пароль для разблокировки, но такой журнал не записал последнюю команду. Я хочу знать, если кто-то пытался взломать мой макбук, когда я не перед ним. Есть ли способ я могу войти такие попытки?

+515
Akhil T Mohan 3 окт. 2018 г., 20:56:59

В соответствии с жизненным циклом документа, общий объем общей памяти, доступной в системе равно делать*РАЗМЕР_СТРАНИЦЫ. После того, как я завершил установку компилятора RHEL6, значение по умолчанию параметра ядра делать до 4294967296, который означает, что общее количество страниц разделяемой памяти, которая может быть использована широкая система 4294967296, а размер страницы-4096B. Таким образом, исходя из Формулы, размер общей памяти

4294967296*4096/1024/1024/1024/1024=16ТБ

которых гораздо больше, чем размер оперативной памяти(8 ГБ) Операционная система.Как ОС может найти 16ТБ памяти выделить?

Таким образом, размер с/dev/ГИМ фактически равен размеру общей памяти? Если нет, то как я могу получить фактический размер общей памяти?

+461
bogster 16 мая 2017 г., 04:37:03

У меня процесс П , который породил процесс принадлежит пользователю root. После П создается setguid() и setuid() вызывается и работает как пользователей у.

Процесс П пытается создать файл F и в папке Ф (в файловой системе), который является root и имеет следующие привилегии:

drwxrwx--- 2 корень

Вызов функции выглядит так:

открыть(путь , O_CREAT | O_RDWR , 0660);

Если я выполнить команду ПС-Э-о УМК,по uid,euid так,руид,с SUID,гид,эгид,rgid,sgid бит результатом является следующее:

/мой/процесс 500 500 500 500 500 500 500 500

Это подтверждает, что процесс П не запущен как root однако довольно странно, даже если процесс запускается от имени пользователя у файла Ф , это создать в папке Ф , которая должна быть только запись root и его группы:

-в "rw"---- 1 у

Так что файл находится в собственности у.

Если я пытаюсь делать то же с Баша я получаю "отказано в доступе", как ожидалось:

$ касания /ф/ф
прикосновение: не трогать `/ф/ф': отказано в доступе

Если я установить папку Ф разрешений:

drwx------ 2 корень корень

тогда вызов метода Open() завершается с ошибкой "отказано в доступе", как ожидалось.

Почему П создать файл в этой папке при написании разрешение корневую группу?

На ПС команда показывает, что все UID и GID устанавливаются соответствующие идентификаторы пользователей, так как это возможно?

Эти группы из корня и у:

группам корень
корень : корень

$группах U
У : У Г

Так У И Г в качестве вторичных группы

$крышкой -г корня
корня(uid=0)
синхронизация(Уид=5)
отключения(Уид=6)
остановке(Уид=7)
оператор(Уид=11)

$крышкой -г У
У(с uid=500)

$лид-г г
У(с uid=500)

Это показывают, что только у члена г

+400
rog8811 13 окт. 2018 г., 17:04:26

За исключением того, что КШ не любит неэкранированный восклицательный знак в командной строке, команда выглядит хорошо и не может быть сделано лучше

+388
Benjamin Alexander De Mers 6 мая 2011 г., 00:02:40

Я думаю, что тебе нужен экспедитор порт.

Настроить порт экспедитор на публичных V2 и слушает порт 80и пересылка в ч порт 8080. СШ может быть использован для этого, как он делает это безопасно, как долго, как вы можете по SSH в домашней сети (номер порта не имеет значения, можно настроить SSH на любой порт, который вы любите).

Там могут быть и другие портовые экспедиторы, в том числе и беззалоговые. по SSH через SSH и как бы сверху.


см http://en.wikipedia.org/wiki/Port_forwarding

+344
cecilia 28 дек. 2017 г., 15:28:34

Попробовать batterymon-клон:

Клон BatteryMon, простой в GNOME апплет для мониторинга состояния батареи. Это добавляет поддержку i18n, на основе distutils строить инфраструктуру и т. д. Главная страница оригинальное программное обеспечение на http://code.google.com/p/batterymon/

В пакета текущим доступна.

+327
brazenest 12 сент. 2012 г., 01:42:34

Как перенаправить стандартный вывод в несколько файлов журналов? Следующее не работает:

some_command 1> output_log_1 output_log_2 2>&1
+325
KellyR 8 окт. 2011 г., 09:16:54

У меня есть конфигурационный файл, содержащий следующее:

переменная1 = 25
variable2 = 36

Я хочу разобрать этот файл в bash-скрипт и установить каждому соответствующему переменную нужное значение в мой сценарий. Как мне это сделать? У меня есть код на дне, но все это будет показывать контент. Я хочу на самом деле набор переменных и их значений в мой сценарий, а затем проверить, является ли определенная переменная выполняет условие, например (псевдокод):

если "переменная1 = 25", затем Эхо "подтвердить"

ИФС="="
пока читала-р значение имени 
делать
Эхо "содержимое $название ${значения//\"/}"
сделано < имя_файла
+306
Masum Khandaker 30 мар. 2010 г., 13:32:59

Так ответ был, что минимальных установок и RHEL не включать KSH, который является моей оболочки по умолчанию. Я использую КШ из-за проблем совместимости с Windows для машин, которые не имеют Баш. Почему миминум установить не установить все основные снаряды-это то, что озадачивает меня. Я думаю, что я заслуживают того, чтобы быть правда в ад не проверяя надежности журнала. Я предполагал, что нечто подобное было бы в сообщения журнала.

+281
Ken Holmes 4 мая 2012 г., 00:37:03

Почему корневого раздела должен быть установлен в /MNT вместо /? Если я устанавливаю Арч на собственный неиспользуемый раздел, я теперь понимаю, почему ты смонтируйте раздел в /MNT. Не будет ли это означать, что вы не могли получить доступ к файловой системе на /(ничего, кроме тугриков) ?? это было давало мне покоя на некоторое время, и я не смог найти достойного ответа.

+249
prince kavetuna 28 июн. 2019 г., 04:45:48

Используя node.js вы можете запустить один поток , который выполняет баш скрипт каждые 200 миллисекунд не важно, сколько времени на ответ требуется, чтобы вернуться, потому что ответ придет через функцию обратного вызова.

ВАР утиль = требуют('утиль')
в exec = требуют('child_process').старпома

метод setInterval(функция(){
 полный путь ребенка = метод exec('баш скрипт',
 функция (ошибок, стандартный вывод, стандартный вывод) {
 консоль.журнала('stdout в:' + стандартный вывод);
 консоль.журнала('поток stderr:' + поток stderr);
 если (ошибка !== значение null) {
 консоль.журнала('ошибка старпома:' + ошибка);
}
});
},200);

Этот JavaScript выполняется каждые 200 миллисекунд, а ответ получил через функцию обратного вызова функции (ошибок, стандартный вывод, стандартный вывод).

Таким образом, вы можете контролировать, что он никогда не превышает 5 вызовов в секунду независимо от того, как медленно или быстро идет выполнение команды или сколько он должен ждать ответа.

+233
user292252 6 дек. 2014 г., 11:04:11

Я создал программу, которая отправляет необходимые команды на клавиатуре для того, чтобы сообщить дополнительные ключевые события:

https://github.com/tuxmark5/ApexCtl

+225
SaiVinay007 5 мар. 2010 г., 21:27:45

Я уверен, что проблема в том, что ваш .bashrc и гулкую вещи. Никогда не печатать ничего из .bashrc и когда он не работает на терминале, так как это нарушит программ, которые используют SSH для автоматических действий (по rsync, ГИТ, ...).

На самом деле, ты не должен делать ничего из .bashrc и , если он не работает на терминале. Поставить это в начало файла:

если ! [Т-1 ]; тогда возврат; интернет

Интернет .bashrc и файл предназначен для интерактивных оболочек. Есть бзик в bash, что делает его загрузить этот файл для всех rsh и SSH-авторизации, независимо от того, что они интерактивные. Это иногда полезно, поскольку это позволяет установить переменные окружения для неинтерактивного сеанса SSH, но это совершенно разные вещи с интерактивной установки (приглашения, назначения клавиш, псевдонимов и т. д.). В полной общности .bashrc и может быть два не связанных между собой разделов:

если [Т-1 ]; тогда
 # Материал для интерактивной в bash (определяется здесь как снаряды выполнив в терминале).
 # Подскажите, клавиш, псевдонимов, настройки терминала, ...
 # Это ОК, чтобы распечатать вещи до терминала здесь (например, установить название терминала).
еще
 # Переменные среды для SSH сессий.
 # Ничего не печатать здесь.
интернет

Примечание: для интерактивного входа через SSH, если bash-это Ваш логин оболочки, он читает .файл , но не .bashrc следующее. Вы хотите, чтобы источник .bashrc и в вашем .файл (если оболочка является интерактивной).

+214
Tofusoul 3 июл. 2017 г., 05:27:38

У меня есть текстовый файл с несколькими строками. В каждой строке у меня есть даты в следующем формате:

12/2/2015
15/9/2013
08/3/2011
02/5/2005
.
.
.

Я хочу создать папку для каждой строки в текстовый файл, используя простой для петли следующим образом:

#!/бин/Баш -Ф
для F в $(Сат ./file.txt ); делать 
команды mkdir ${Ф}
сделано

Этот код не работает, потому что у меня есть характер / в формат даты. Как я могу создать папки и удалить этот символ из имени папки, в то же время? Таким образом, вывод имен папок будет такой:

1222015
1592013
0832011
0252005
.
.
.
+187
user1712927 12 июн. 2019 г., 11:37:39

Я собираюсь быть честным здесь: на данный момент у вас никого нет, включая самого себя, одолжение, создав свой собственный, полностью настроенный дистрибутив. Некоторые существующие дистрибутивы созданы механизмы по созданию кастомизированных версий, я рекомендую вам начать с одной из них и добавлять/изменять отдельные пакеты по мере необходимости.

+185
user28594 4 мар. 2011 г., 05:13:02

Вы, кажется, используете флэш-накопитель USB 2.0. В этом форм-факторе, невозможно получить параметры вспышки, запрашивая устройства с USB на мосты не имеют поддержки для передачи команд запроса.

Больше технических подробностей:

http://sg.danny.cz/sg/sdparm.html

Инструмент флэш-стенд можно использовать для того, чтобы угадать параметры устройства, наблюдая за ее характеристики, но по моему опыту, трудно сделать окончательные выводы

https://github.com/bradfa/flashbench

+155
Sana Akthar 11 окт. 2011 г., 02:54:39

В Fedora 16 был конец жизни на 2013-02-12, почти 2 года назад. В репозиториях для этой версии, возможно, были приняты в автономном режиме.

Вы должны установите поддерживаемую версию.

+83
user5520049 7 нояб. 2018 г., 15:22:22

Не уверен, что вы имеете в виду.

системный вызов mknod ФОО Б 8 0

Создаст файл устройства под названием фу как блочное устройство с основным 8 и незначительных 0. Если вы хотите найти одного или какой-либо из файлов в каталоге/dev , которые имеют тот же тип, крупные и мелкие, можно сделать (с ЗШ):

  • Для блочного устройства 8:0:

    $ zmodload ЗШ/стат
    $ Общ -лд в /dev/**/*(-Д%быть:'zstat -ч с $ответить && (($х[rdev] == 8<<8+0))':)
    lrwxrwxrwx 1 корень 6 августа 23 05:28 /Дев/блок/8:0 -> ../ПДД
    lrwxrwxrwx 1 корень 9 августа 23 05:28 в /dev/диск/автор-ИД/Ата-KINGSTON_SNV455S234GB_07MA10014418 -> ../../ПДД
    БРВ-РВ---- 1 корень диска 8, 0 23 августа 05:28 /Дев/СДА
    
  • для char устройства 226:0:

    $ Общ -лд в /dev/**/*(-Д%се:'zstat -ч с $ответить && (($ы[rdev] == 226<<8+0))':)
    lrwxrwxrwx 1 корень 12 августа 23 05:28 /Дев/голец/226:0 -> ../из DRI/card0
    КВР-РВ----+ 1 корень видео 226, 0 23 августа 05:28 /Дев/Дри/card0
    

Обратите внимание, что все, что может создавать файлы в каталоге/dev. В очень давние времена, это был скрипт создания статических файлов там. В какой-то момент даже была специальная файловая система-ля /тез.

На современных версиях Linux, это как правило в udev , основываясь на входном сигнале от ядра.

Имя он выбирает для базового устройства файл основан на DEVNAME поставляются в ядре. в udev правила могут меняться, но, как правило, нет, и некоторые в udev правила будут добавить больше симлинки для удобства (как , например, /dev/диск/С... из них).

Вы можете доехать из основных:мелкие ядра DEVNAME , глядя на:

$ СЭД -н 'с/^DEVNAME=//Р' /системы/Дев/блок/8:0/uevent
ПДД
$ СЭД -н 'с/^DEVNAME=//Р' /системы на/dev/голец/226:0/uevent
из DRI/card0

Вы также можете получить эту информацию от udev из базы данных mikeserv показал.

+47
Timimimy 23 нояб. 2019 г., 05:08:49

Я наткнулся на странную проблему. Может кто-то знает ответ. Я пользуюсь им-checkzone , чтобы проверить мой файл зоны.

Следующий файл зоны будет отображаться игнорируя вне зоны данных , когда я использовать полные доменные имена:

$ТТЛ 30
@ В localhost в СОА. admin.example.com. (
2017072702 ; серийный
3 ; обновить
1 ; повторить
2 ; истекает
1М) ; отрицательное TTL с
 В НС на localhost.;
www.example.com. В 192.168.111.45
www.example.com. В АААА на fe80::22c9:d0ff:1ecd:c0ef
foo.example.com. В 192.168.121.11
bar.example.com. В ВИМЯ www.example.com.
;генерировать 100 хостов
$Создать хост 1-100$.example.com. В 10.20.45.$

Однако относительные имена таких сообщений не отображается в файл зоны:

$ТТЛ 30
@ В localhost в СОА. admin.example.com. (
2017072702 ; серийный
3 ; обновить
1 ; повторить
2 ; истекает
1М) ; отрицательное TTL с
 В НС на localhost.;
www в 192.168.111.45
www в АААА на fe80::22c9:d0ff:1ecd:c0ef
ФОО в 192.168.121.11
бар в ВИМЯ www.example.com.
;генерировать 100 хостов
$Создать хост 1-100$ в 10.20.45.$

Может кто-нибудь объяснить, почему это так?

Команду я ввожу следующие команды sudo имени-checkzone www.example.com в /var/имени/пример.ком.зоны.

Выходной файл, содержащий полные доменные имена (FQDN) выглядит следующим образом:

в /var/имени/пример.ком.зоны:11: игнорирование вне зоны данных (foo.example.com)
в /var/имени/пример.ком.зоны:12: игнорирование вне зоны данных (bar.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host1.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host2.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host3.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host4.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host5.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host6.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host7.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host8.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host9.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host10.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host11.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host12.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host13.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host14.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host15.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host16.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host17.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host18.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host19.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host20.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host21.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host22.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host23.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host24.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host25.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host26.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host27.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host28.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host29.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host30.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host31.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host32.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host33.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host34.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host35.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host36.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host37.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host38.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host39.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host40.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host41.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host42.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host43.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host44.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host45.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host46.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host47.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host48.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host49.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host50.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host51.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host52.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host53.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host54.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host55.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host56.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host57.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host58.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host59.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host60.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host61.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host62.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host63.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host64.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host65.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host66.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host67.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host68.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host69.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host70.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host71.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host72.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host73.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host74.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host75.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host76.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host77.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host78.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host79.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host80.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host81.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host82.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host83.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host84.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host85.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host86.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host87.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host88.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host89.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host90.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host91.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host92.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host93.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host94.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host95.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host96.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host97.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host98.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host99.example.com)
в /var/имени/пример.ком.зоны:14: игнорирование вне зоны данных (host100.example.com)
www.example.com/IN зоны: загружен серийный 2017072702
ОК

Выходной файл, содержащий относительно доменных имен следующим образом:

www.example.com/IN зоны: загружен серийный 2017072702
ОК
+45
biruk matebe 6 мая 2011 г., 13:17:39

Насколько я знаю, это просто замена цепи. Сначала он удаляет все пробелы через с/^[[:пробел:]]// и это закономерно применять с/[[:пробел:]]$// убрать все пробелы.

+30
Trentongold55 Gold55 11 мая 2016 г., 18:33:32

Мне нужно вручную отредактировать файл/etc/тени для изменения пароля root внутри образа виртуальной машины.

Существует ли инструмент командной строки, которая принимает пароль и выдает /и т. д./тень совместимый хэш пароля на стандартный выход?

+15
Akagi201 5 янв. 2019 г., 21:01:39

Показать вопросы с тегом