12 советов при работе с Linux.
Linux продолжает быть одной из самых популярных операционных систем для серверов, облачных вычислений и IoT-устройств. Знание команд позволяет эффективно управлять и настраивать эти системы.
В этой статье я собрал 12 советов по работе с Linux из собственной практики, которые помогут начинающим пользователям улучшить свои навыки в работе с этой мощной операционной системой.
Надеюсь, что эти трюки помогут вам стать более эффективным и уверенным пользователем Linux. В своем канале я делюсь множеством полезных советов, инструментов и гайдов для всех, кто работает с Linux и интересуется хакингом. А здесь папка полезных материалов для програмистов, поехали.
1. Команда find
Если вы хотите очистить пустые каталоги, команда find может помочь сделать эту работу:
$ find . -type d -empty -exec rmdir -v {} +
Параметр -type d ищет каталоги, -empty выбирает пустые, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед удалением.
В качестве альтернативы можно использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete
2. Добавляем временные метки
Вы можете включить временные метки в истории команд bash, чтобы увидеть, когда вы выполняли предыдущие команды. Это может быть полезно для отслеживания того, над чем и когда вы работали.
Чтобы добавить временные метки в историю, просто установите переменную окружения HISTTIMEFORMAT следующим образом:
$ export HISTTIMEFORMAT="%F %T "
Теперь, просматривая историю или выполняя поиск, вы увидите рядом с каждой командой временную метку, указывающую, когда она была выполнена:
$ history | tail -n 5
Или чтобы сэкономить пару нажатий клавиш:
$ history 5
Формат “%F %T” показывает дату и время, но вы можете настроить его по своему вкусу.
Примечание: Это не ставит исторические метки времени на команды, которые вы выполняли до установки HISTTIMEFORMAT.
3.Последний аргумент предыдущей команды.
Предположим, вы читали файл с помощью команды cat и решили отредактировать его с помощью Vim или любого другого редактора на ваш выбор.
Вместо того чтобы набирать имя файла целиком, вы можете использовать символы !$ или !*, которые поместят в вашу строку последний аргумент(ы) последней команды.
Например:
$ cat /etc/scripts/matrix/matrix.sh
Чтобы отредактировать файл с помощью Vim, вы должны выполнить команду:
$ vim !$
Здесь я использовал !$ в качестве аргумента, который заменит только последний аргумент предыдущей команды.
Если вам нужны все аргументы, используйте !*.
4. Nohup
Когда вы запускаете программу в терминале или по SSH, она будет завершена, как только закончится терминальная сессия или оборвется соединение.
Чтобы избежать этого и сохранить работу программы и всех ее процессов, используйте команду nohup, сокращение от “no hangup“. Она игнорирует все сигналы о зависании, позволяя процессу продолжаться, даже если терминальная сессия прервана.
Например, чтобы сжать большой объем данных с помощью команды tar и гарантировать, что сжатие продолжится, даже если вы случайно закроете окно терминала, используйте следующую команду:
$ nohup tar -cf archive.tar file1 file2
Команда nohup также создает файл с именем nohup.out для хранения вывода команды.
$ cat nohup.out
В качестве альтернативы можно использовать tmux, disown или screen.
5. Команда kill
В Linux вы можете использовать команду pgrep, чтобы найти PID определенного процесса на основе его имени, шаблона или других критериев.
$ pgrep name
Если вы хотите завершить процесс, используйте команду kill, например:
$ kill -9 5272 5525 5550 5461
Или используйте подстановку команд, чтобы получить идентификаторы процессов и убить их в одной строке:
$ kill -9 $(pgrep firefox)
В качестве альтернативы можно использовать команду pidof.
Наример:
$ kill -9 $(pidof firefox)
6. Совет по Vim 💡
Закончили редактировать файл конфигурации, но не можете сохранить изменения, потому что нужно было открыть его с помощью sudo?
Не нужно начинать все сначала.
Сначала используйте Esc, а затем напишите
w !sudo tee /dev/null %
7. Команда ls
Эта команда- отличный инструмент командной строки для листинга файлов и каталогов в Linux. Однако lsd – это еще лучшая современная альтернатива команде ls. Она предоставляет иконки и цветной вывод, а также представляет информацию в более наглядном и читабельном формате.
$ lsd -lah
Если команда lsd не предустановлена в вашей системе, обратитесь к документации по установке системы, чтобы получить инструкции по ее установке.
8. Добавление файлов при создании нового пользователя
Каталог /etc/skel (skel – производное от “skeleton”) содержит стандартные файлы и каталоги запуска для среды оболочки bash.
Система автоматически копирует эти стандартные файлы в каталог HOME каждого пользователя, которого вы создаете.
Вы также можете добавить в каталог /etc/skel свои файлы, которые вы хотите автоматически копировать при создании нового пользователя. Это могут быть ваши dotfiles и файлы конфигурации оболочки.
$ sudo useradd -m demouser
9. Команда echo в Linux
echo – это простая команда, но в то же время часто используемая встроенная команда оболочки Bash. Она имеет только одно назначение – выводить строку текста в терминал, но применяется очень часто в различных скриптах, даже для редактирования конфигурационных файлов.
Проверьте текущую используемую оболочку с помощью:
echo $0
Проверьте оболочку по умолчанию с помощью:
echo $SHELL
10. Быстрый запуск команд
Если вам приходится подключаться по ssh к удаленному серверу только для того, чтобы выполнить команду и выйти из системы вы можете сэкономить немного времени 👉🏼⏱️
ssh remote_host "команда для запуска"
11. Узнаем время работы команды
Если вы хотите определить, сколько времени займет выполнение определенной команды или скрипта, используйте команду time.
Синтаксис
$ time <пишем команду>
пример:
$ time find / -perm -u=s -type f &>/dev/null
Команда также показывает использование системных ресурсов процесса, что делает его полезным инструментом для оценки эффективности конкретной команды.
12. Защищаем файл от перезаписи
Вы можете предотвратить случайную перезапись существующих файлов, включив опцию оболочки “noclobber” с помощью встроенной команды set:
$ set -o noclobber
но эта опция может быть отменена командой '>|'.
Чтобы отключить опцию, используйте команду 'set +o option-name':
$ set +o noclobber
Noclobber будет применен к каждому файлу в системе. Если вы хотите использовать только определенные файлы, воспользуйтесь атрибутом append.
Атрибут append в Linux – это атрибут файла, который не позволяет изменять файл, но позволяет добавлять в него новые данные.
Чтобы установить атрибут append для файла, вам нужно использовать команду chattr с опцией +a, и у вас должны быть права root.
Например, чтобы установить атрибут append для файла с именем keys.txt, выполните следующие действия:
$ sudo chattr +a key.txt
Чтобы удалить атрибут append из файла, используйте -a в команде chattr:
$ sudo chattr -a key.txt
Этот атрибут может быть полезен для файлов журналов или других файлов, которые должны постоянно обновляться, но не перезаписываться или удаляться.
Заключение.
Знание Linux в 2024 году может быть полезным как для карьеры в IT-сфере, так и для повседневной работы с компьютерами и устройствами.
Знание простых и эффективных приемов, поможет сэкономить вам много времени и нервов.
Спасибо за внимание! Делитесь своими советами и полезными командами в комментариях.