Удаление определенных строк из файла в командной строке Linux

В категорії Підказки от 8 Лютого, 2022. Автор admin

Удаление n-ой строки из файла

sed -i '7d' filename

-i: Эта опция включает редактирование на месте. По умолчанию sed отображает только вывод. С опцией -i он изменяет фактический файл, не отображая его на дисплее.
7d: Здесь 7 – это номер строки, а d указывает на удаление строки.
filename: Это файл, который вы хотите изменить. Вы также можете указать абсолютный или относительный путь, если файл находится в другом каталоге.

Більше »

Теги: ,

Полезные alias Linux

В категорії Статьї от 2 Серпня, 2016. Автор admin

Alias Linux – это, по сути, ярлыки команд Linux. Команда alias позволяет пользователю запускать любую команду или даже группу команд, в том числе с опциями, параметрами и файлами, вводом одного слова или даже символа. Это очень удобно во многих ситуациях, например чтобы не вводить полностью команду при обновлении или же очень быстро перемещаться по каталогам.

Чтобы посмотреть какие псевдонимы linux команд уже заданны в вашей системе просто выполните:

$ alias

В выводе вы увидите что-то подобное:

alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -l'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'

Команда покажет все alias команд linux определенные для текущего пользователя. Вывод очень сильно зависит от вашего дистрибутива. Общий синтаксис команды выглядит следующим образом:

$ alias имя=”значение”

$ alias имя=”команда аргумент1 аргумент2″

$ alias имя=”/путь/к/исполняемому/файлу”

Вы можете создавать новые псевдонимы, просто выполняя эту команду в терминале. Но созданные таким образом алиасы linux будут работать только в этом терминале и только до его закрытия.

Давайте для примера создадим alias linux для такой часто используемой команды, как clear (очистить вывод терминала):

$ alias c='clear'

Теперь, чтобы очистить терминал достаточно выполнить:

$ с

Удалить созданный alias можно с помощью команды unalias:

$ unalias c

Но как я уже сказал, такие alias команд linux сохраняются только до закрытия терминала. Поэтому их необходимо создавать в начале каждой терминальной сессии. Для этого можно записать все нужные команды в ~/.bashrc. При запуске терминала, каждый раз выполняется этот скрипт, чтобы установить переменные окружения и подготовить оболочку. Таким образом добавив нужные строки в конец файла мы получим работающие alias linux в каждом терминале.

Продолжим создание alias для команды clear:

$ vi ~/.bashrc

Добавьте эту строку в конец файла:

alias c='clear'

Затем сохраните и закройте редактор (:wq). Чтобы проверить работоспособность запустите новый терминал. Если вы хотите чтобы ваши алиасы linux были доступны для всех пользователей, необходимо использовать файл /etc/bashrc.

Поскольку .bashrc, это обычный bash скрипт, перед нами открываются большие возможности. Например мы можем добавить alias команд с использованием sudo, если текущий пользователь не root:

if [ $UID -ne 0 ]; then
alias reboot='sudo reboot'
alias update='sudo apt-get upgrade'
fi

Так же само, мы можем менять команды алиасов в зависимости от дистрибутива:

_myos="$(uname)"

case $_myos in
Linux) alias foo='/path/to/linux/bin/foo';;
FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;;
SunOS) alias foo='/path/to/sunos/bin/foo' ;;
*) ;;
esac

Чтобы удалить alias достаточно просто удалить запись о нем, из того файла в который вы ее добавили. Мы рассмотрели основы добавления alias linux, теперь давайте перейдем к списку полезных алиасов linux.

Більше »

Теги: , , ,

Запуск скриптов в фоновом режиме

В категорії Без рубрики, Статьї от 14 Березня, 2015. Автор admin

Для возможности выполнения bash-подобных скриптов в Linux в с целом и в OpenWrt-версии оболочки busybox в частности существует легкая в применении инфраструктура: необходимо лишь добавить к строке запускаемого скрипта символ “&“. Но есть и менее очевидные частности.

Реализация простого запуска некоторого скрипта /srv/tools/script.sh в фоне:

# /srv/tools/script.sh &

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

Для запуска скрипта без связи с сессией пользователя следует использовать утилиту nohup:

# nohup /srv/tools/script.sh &

В этом случае запущенный скрипт останется работать даже при отключении от сервера, но весь выводимый скриптом текст будет записываться в файл nohup.log, создаваемый в текущем каталоге, о чем nohup непосредственно и информирует сообщением nohup: appending output to nohup.out. При этом данный файл будет создан даже в том случае, если у скрипта никогда не будет никакого вывода.

Чтобы nohup.log никогда не создавался, перенаправляем stdout скрипта в /dev/null:

nohup /srv/tools/netstat.sh >/dev/null &

Все, теперь лишних файлов более не создается и скрипт останется работать при отключении от консоли.

Теги: ,