Основные команды, не работающие т.е.: - удар: ls: Никакой такой файл или каталог

Я не могу бесцеремонно думать о способе сделать это с заполнением клавишей Tab, кроме возможно, чтобы также сохранить копию имени файла без расширения, таким образом, можно добавить "bak.php" сразу. Но моим решением этого был бы маленький сценарий оболочки, который берет имя файла в качестве входа и копирует его в "firstpart.bak.extension".

8
20.09.2019, 22:55
2 ответа

Я просто даю идею, а не полный сценарий. Необходимо внести изменения в соответствии с требованиями.

Для контроля загрузки ЦП и памяти используется команда ps . Я полагаю, что флаги -C и -o поддерживаются на сервере AIX . Тем не менее, вы можете найти соответствующий синтаксис из man ps на вашем компьютере.

ps -C program_name -o %cpu,%mem

Теперь, чтобы он выполнялся каждые 10 минут в течение 6 раз на сервере, я бы поставил следующий сценарий. Я предполагаю, что вам нужно следить раз в 10 минут в течение часа или около того.

i=6
filename=$(echo memory_monitoring_`date +%F_%T`)
touch $filename
while [ $i -ge 1 ]
do
    sleep 600 #sleep for 10 minutes. 
    ps -C program_name -o %cpu,%mem >> "$filename"
    i=$((i-1)) 
done

Таким образом, в основном, с помощью приведенного выше сценария я создаю новый файл каждый раз, когда мне нужно следить за памятью. После этого я выполняю сценарий в течение 1 часа, поэтому вы видите, что i имеет значение 6. sleep 600 предназначен для контроля памяти каждые 10 минут.

Если требуется оптимизация, можно добавить команду mail , чтобы отправить созданный файл по электронной почте и использовать его в целях аудита.

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

-121--114408-

Изменения, внесенные в PATH , скорее всего, являются временными. Закройте оболочку с помощью exit и снова откройте ее.

Если вы отредактировали файл, устанавливающий PATH для вновь открытых оболочек, укажите полный путь к командам для исправления измененного (например, /usr/bin/vim ).

-121--46729-

Сбросьте свой путь прямо сейчас (т.е. до любого выхода из системы) с помощью:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Полный ПУТЬ не восстанавливается, но основные утилиты снова будут доступны.

Вот пример того, что происходит:

У вас была переменная PATH (обозначаемая как $ PATH при чтении из нее)

Что-то вроде:

$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin

Вы пытались добавить к нему, но случайно использовали

PATH=PATH:other_dir

вместо

PATH=$PATH:other_dir

, и в результате ваш путь стал

PATH:other_dir

, а затем все утилиты, такие как ls и sed, не работают

Вы можете исправить минимальный набор, сделав

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

, что особенно полезно, если файлы точек входа портят ваш PATH
Проверьте файлы .bashrc и/или .bash_profile на наличие изменений PATH.

Как сказал Грег, вы также можете просто регистрация (или более безопасный вариант, открыть новое окно в случае, если открытие нового окна сломано!), а затем эхо $ PATH из нового окна.

То же самое происходит при выполнении path = без значений. Он «стирает» ваш текущий путь и вызывает эти проблемы.стронг текста

Что касается почему , когда у вас есть эти проблемы cd works и ls не работает:

  • cd является «встроенной» командой, которая не нуждается в вашем PATH для поиска программы
  • ls является программой и должна использовать PATH для поиска места.

Вы можете увидеть это с помощью:

$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$

Нет ошибки означает, что команда является builtin

Перед «перемещением» (или выходом из системы)...

Проверьте наличие изменений ( особенно для .bashrc, .profile и т.д., выполняющих команды настройки PATH) путем открытия нового окна или создания исходного профиля ~/.bash _ для его запуска. Кроме того, рекомендуется сохранять окно и редактор (при изменении файла .bash_profile) открытыми, если изменения не работают, и не допускать открытия новых окон для редактирования файла. Хотя вы по-прежнему можете использовать TextEdit или другой простой редактор для изменения файла (например, избегая командной строки и vi). Будьте осторожны, чтобы НЕ перезагрузиться, если/когда ваша оболочка сломана или вы даже не сможете войти в систему. и это действительно очень плохо (без другой учетной записи su от вас заложены). Со мной случилось! Мой «дополнительный счет» был спасителем жизни и настоятельно рекомендован для всех (сделайте это сейчас!)

19
27.01.2020, 20:08

Изменения, которые вы сделали в Путь , вероятно, временные. Закройте оболочку, которую вы находитесь в состоянии EXIT и откройте его.

В случае, если вы отредактировали файл, который устанавливает путь для вновь открытых оболочек, укажите полный путь к командам, чтобы исправить все, что вы изменились (например, / usr / bin / vim ).

8
27.01.2020, 20:08

Теги

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