Другие опции:
pgrep -xq processname
ps -eo comm= | sed 's|.*/||' | grep -xq processname
sed 's|.*/||'
удаляет dirname части на OS XВ GNU/Linux ps -o comm
усекает названия команды к 15 символам и pgrep
и ps -C
только соответствуйте первым 15 символам.
ps -C
(соответствуйте названиям команды), не поддерживается на OS X.
В OS X ps -o comm
печатает полные пути команд и ps -co comm
только названия команды печати. В GNU ps -o comm
только названия команды печати и -c
имеет другое значение.
pgrep OS X не включает процессы предка (как удар, Терминал или launchd) без -a
. pgrep GNU включает их по умолчанию, и он не поддерживает -a
.
grep -x
и pgrep -x
не подразумевать -F
, так использование -Fx
если имя процесса может содержать regex символы.
find . -name '*_*'
Благодаря Стефане Чазеласу, как отмечено в комментариях выше!
-121--174894- Если ваш терминал все еще открыт, введите ENV
: он будет отображать все ваши переменные среды. Если это новая установка или если вы никогда не делали никаких изменений, наиболее важные переменные - путь
(это всегда существует) и ld_library_path
(может не существовать, я не привык OSX).
Например:
$ env
...
PATH=/usr/bin:/bin:/home/user/bin:/sbin
...
Это также общее значение для источника .bashrc
в этом файле.
Затем вы можете редактировать ваш .bash_profile
, чтобы добавить такую строку:
# Source your .bashrc
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
# Export the interesting env variables you
# displayed from env command previously
export PATH=/usr/bin:/bin:/home/user/bin:/sbin
Это не реальное решение, поскольку это не реальная «резервная копия», но имейте в виду, что так же, как долго ваш терминал Открыть, вы можете знать вашу среду переменные, а главное назначение .bash_profile
- установить эти переменные.
Кроме того, у вас могут быть несколько псевдонимов: в вашем открытом терминале типа псевдоним
для отображения всех определенных псевдонимов. Вы можете скопировать и вставить Ouput AS - в вашем .bash_profile
. (Очевидно, что если эти псевдонимы доступны в вашем .Bashrc
.bashrc
. Вам не нужно определять их в вашем .bash_profile
, поскольку вы источнили .bashrc
ранее. )
Я перезаписал текстовый файл (VQ1.txt) с тестовыми данными за 12 ч: ( Представление о том, что unix сохраняет предыдущую версию файла в формате text.txt ~, заставил меня заглянуть в папку, содержащую перезаписанный файл с $ -ll В полном списке указан файл VQ1.txt ~ с моими «потерянными» данными!
$ cat VQ1.txt~
Start time at: Thu Apr 2 18:07:23 PDT 2015
User, KW: 12hrFA_OEM_HelloVoiceQ
Test Case:
Detection: 1, 1, 04-03 01:07:00.673 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 2, 1, 04-03 01:09:04.813 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 3, 1, 04-03 04:09:26.023 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 4, 1, 04-03 04:11:29.893 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 5, 1, 04-03 07:12:27.013 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 6, 1, 04-03 07:14:30.803 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 7, 1, 04-03 08:37:13.113 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 8, 1, 04-03 10:21:23.533 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 9, 1, 04-03 10:23:27.733 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 10, 1, 04-03 13:23:47.893 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
Detection: 11, 1, 04-03 13:25:52.203 D/MultiKeywordBdctReceiver( 1743): vs status 258 : 2 : 1
12hrFA_OEM_HelloVoiceQ,
KW detect count: 11
-121--10108- CTRL + D здесь бессмысленно - это просто другой байт. Это связано с тем, что последовательный терминал не настроен на его обработку. В частности, вы находитесь в необработанном режиме или неканоническом режиме ввода . Смотрите флаг -иканон
на выходе stty -a
? Это его ошеломляет. Вот как POSIX описывает терминал должен учитывать символ EOF:
read ()
возвращается отсчет байтов, представляющий собой указание конца файла. Если установлено значение ICANON , то при обработке символ EOF будет удален. Но вы не работаете с каноническим терминалом - вы работаете с терминалом, который будет передавать любые/все данные любому читателю, если его попросят, если есть хотя бы один байт. Терминал не буферизирует ввод по строкам - и поэтому он не может заменить байт EOF пустым чтением - вместо этого он просто толкает байт, который cat
только побуждает его продолжать чтение.
При наборе ICANON должна быть включена каноническая обработка. Это обеспечивает возможность стирания и уничтожения функций редактирования, а также сборки входных символов в строки, разделенные NL , EOF и EOL , как описано в Canonical Режима Input Processing .
Если ICANON не наборы, запросы на чтение удовлетворяются непосредственно из входной очереди. Считывание не выполняется до тех пор, пока не будет получено не менее байт MIN или не истечет время ожидания TIME между байтами. Значение времени представляет десятые доли секунды. Для получения дополнительной информации см. Обработка ввода в неканоническом режиме .
Похоже, вы неявно спрашиваете, есть ли место в оперативной памяти, где хранится содержимое этого файла. Ответ: «нет». Файл просто считывается и выполняется во время запуска оболочки, а затем отбрасывается. Оболочка Unix не нуждается в непрерывном доступе к сценариям запуска.
В ответ apaul некоторые содержимого файла по-прежнему доступны для извлечения.
Существует небольшая вероятность того, что в освобожденной оперативной памяти есть фрагменты самого файла, которые еще не были перераспределены или возвращены в ОС,но это, вероятно, не стоит вашего времени, чтобы попытаться создать программу для выгрузки содержимого ОЗУ в файл диска, а затем просунуть его, чтобы попытаться найти содержимое вашего файла.
Возьмите полученные уроки и извлеките из них уроки:
Подумайте дважды, прежде чем нажать Enter по команде с участием >
вместо > >
, так же, как вы, надеюсь, научились быть осторожными с помощью команд rm
.
Установите Time Machine , быстрее всего.
Когда-то не было недавнего резервного копирования - это печальная, но слишком распространенная история. Теперь это непростительно. Apple ушла и сделала это так легко, как вы могли разумно спросить.
Это только что случилось со мной, и я выздоровел следующим образом...
Определенные переменные и функции:
$ declare > definitions.bash.txt
Псевдонимы:
$ alias > aliases.bash.txt
Глупый скрипт сделал это с моим bashrc, поэтому я запустил следующее, чтобы получить большую часть моего файла.
# Retrieve functions definitions
$ declare >.bashrc.new
# Retrieve aliases
$ alias >>.bashrc.new
# Retrieve env
$ echo "export $(env | grep ^PATH=)" >>.bashrc.new
Здесь большая часть вашего .bashrc
практически реконструирована. Теперь вам просто нужно внести небольшие коррективы, чтобы убедиться, что он соответствует вашим лучшим практикам. ;)
Классная команда для поиска определения ваших пользовательских функций:type my_function >>.bashrc.new
.
Кроме того, не забудьте просмотреть возвращаемое значение env
, чтобы включить во вновь созданный файл то, что вы считаете важным.