10 полезных трюков с командной строкой Linux для новичков. Часть 2
Помню, когда я впервые начал использовать Linux и привык к графическому интерфейсу Windows, я искренне ненавидел терминал Linux. В то время мне было трудно запомнить команды и правильно использовать каждую из них. Со временем я осознал красоту, гибкость и удобство использования терминала Linux, и, честно говоря, не проходит и дня без его использования. Сегодня я хотел бы поделиться некоторыми полезными приемами и советами для новичков в Linux, которые помогут им облегчить переход на Linux или просто помочь им изучить что-то новое (надеюсь).
- 5 интересных советов и приемов командной строки в Linux — часть 1
- 5 полезных команд для управления типами файлов Linux – часть 3
Цель этой статьи — показать вам несколько полезных приемов, как профессионально использовать терминал Linux с минимальным количеством навыков. Все, что вам нужно, — это терминал Linux и немного свободного времени для тестирования этих команд.
1. Найдите правильную команду
Выполнение правильной команды может иметь жизненно важное значение для вашей системы. Однако в Linux так много разных командных строк, что их часто трудно запомнить. Так как же найти нужную команду? Ответ: примерно. Все, что вам нужно для запуска, это:
# apropos <description>
Здесь вам следует изменить «описание» на фактическое описание команды, которую вы ищете. Вот хороший пример:
# apropos "list directory"
dir (1) - list directory contents
ls (1) - list directory contents
ntfsls (8) - list directory contents on an NTFS filesystem
vdir (1) - list directory contents
Слева вы можете увидеть команды, а справа их описание.
2. Выполнить предыдущую команду
Много раз вам придется выполнять одну и ту же команду снова и снова. Хотя вы можете несколько раз нажимать клавишу Вверх на клавиатуре, вместо этого вы можете использовать команду истории. Эта команда выведет список всех команд, которые вы ввели с момента запуска терминала:
# history
1 fdisk -l
2 apt-get install gnome-paint
3 hostname linux-console.net
4 hostnamectl linux-console.net
5 man hostnamectl
6 hostnamectl --set-hostname linux-console.net
7 hostnamectl -set-hostname linux-console.net
8 hostnamectl set-hostname linux-console.net
9 mount -t "ntfs" -o
10 fdisk -l
11 mount -t ntfs-3g /dev/sda5 /mnt
12 mount -t rw ntfs-3g /dev/sda5 /mnt
13 mount -t -rw ntfs-3g /dev/sda5 /mnt
14 mount -t ntfs-3g /dev/sda5 /mnt
15 mount man
16 man mount
17 mount -t -o ntfs-3g /dev/sda5 /mnt
18 mount -o ntfs-3g /dev/sda5 /mnt
19 mount -ro ntfs-3g /dev/sda5 /mnt
20 cd /mnt
...
Как вы увидите из вывода выше, вы получите список всех команд, которые вы выполнили. В каждой строке есть номер, обозначающий строку, в которую вы ввели команду. Вы можете вызвать эту команду, используя:
!#
Где # следует заменить фактическим номером команды. Для лучшего понимания посмотрите пример ниже:
!501
Эквивалентно:
# history
3. Используйте полночный командир.
Если вы не привыкли использовать такие команды, как cd, cp, mv, rm, вы можете использовать < Strong>Полночная команда. Это простая в использовании визуальная оболочка, в которой вы также можете использовать мышь:
Благодаря клавишам F1 – F12 вы можете легко выполнять различные задачи. Просто проверьте легенду внизу. Чтобы выбрать файл или папку, нажмите кнопку «Вставить».
Короче говоря, полуночная команда называется «mc». Чтобы установить mc в вашей системе, просто запустите:
$ sudo apt-get install mc [On Debian based systems]
# yum install mc [On Fedora based systems]
Вот простой пример использования Midnight Commander. Откройте mc, просто набрав:
# mc
Теперь используйте кнопку TAB для переключения между окнами – слева и права. У меня есть файл LibreOffice, который я перенесу в папку «Software»:
Чтобы переместить файл в новый каталог, нажмите кнопку F6 на клавиатуре. MC теперь попросит вас подтвердить:
После подтверждения файл будет перемещен в новый каталог назначения.
Подробнее: Как использовать файловый менеджер Midnight Commander в Linux
4. Выключение компьютера в определенное время.
Иногда вам придется выключить компьютер через несколько часов после окончания рабочего времени. Вы можете настроить компьютер на выключение в определенное время, используя:
$ sudo shutdown 21:00
Это заставит ваш компьютер выключиться в указанное вами время. Вы также можете указать системе выключиться через определенное количество минут:
$ sudo shutdown +15
В этом случае система выключится через 15 минут.
5. Показать информацию об известных пользователях
Вы можете использовать простую команду, чтобы составить список пользователей вашей системы Linux и некоторую базовую информацию о них. Просто используйте:
# lslogins
Это должно принести вам следующий результат:
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 0 0 Apr29/11:35 root
1 bin 0 1 bin
2 daemon 0 1 daemon
3 adm 0 1 adm
4 lp 0 1 lp
5 sync 0 1 sync
6 shutdown 0 1 Jul19/10:04 shutdown
7 halt 0 1 halt
8 mail 0 1 mail
10 uucp 0 1 uucp
11 operator 0 1 operator
12 games 0 1 games
13 gopher 0 1 gopher
14 ftp 0 1 FTP User
23 squid 0 1
25 named 0 1 Named
27 mysql 0 1 MySQL Server
47 mailnull 0 1
48 apache 0 1 Apache
...
6. Поиск файлов
Поиск файлов иногда может оказаться не таким простым, как вы думаете. Хорошим примером поиска файлов является:
# find /home/user -type f
Эта команда выполнит поиск всех файлов, расположенных в папке /home/user. Команда find чрезвычайно эффективна, и вы можете передать ей дополнительные параметры, чтобы сделать поиск еще более подробным. Если вы хотите найти файлы размером больше заданного, вы можете использовать:
# find . -type f -size 10M
Приведенная выше команда будет искать в текущем каталоге все файлы размером более 10 МБ. Обязательно не запускайте команду из корневого каталога вашей системы Linux, так как это может привести к увеличению количества операций ввода-вывода на вашем компьютере.
Одна из наиболее часто используемых комбинаций, с которой я использую find, — это опция «exec», которая по сути позволяет вам выполнять некоторые действия по результатам команды find.
Например, предположим, что мы хотим найти все файлы в каталоге и изменить их разрешения. Это можно легко сделать с помощью:
# find /home/user/files/ -type f -exec chmod 644 {} \;
Приведенная выше команда будет рекурсивно искать все файлы в указанном каталоге и выполнит команду chmod для найденных файлов. Я уверен, что в будущем вы найдете еще много применений этой команды, а пока прочитайте 35 примеров команды «find» и ее использования в Linux.
7. Создавайте деревья каталогов с помощью одной команды
Вы, наверное, знаете, что новые каталоги можно создавать с помощью команды mkdir. Итак, если вы хотите создать новую папку, вы запустите что-то вроде этого:
# mkdir new_folder
Но что, если вы хотите создать 5 подпапок в этой папке? Запуск mkdir 5 раз подряд не является хорошим решением. Вместо этого вы можете использовать опцию -p следующим образом:
# mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}
В итоге у вас должно получиться 5 папок, расположенных в new_folder:
# ls new_folder/
folder_1 folder_2 folder_3 folder_4 folder_5
8. Скопируйте файл в несколько каталогов.
Копирование файлов обычно выполняется с помощью команды cp. Копирование файла обычно выглядит так:
# cp /path-to-file/my_file.txt /path-to-new-directory/
Теперь представьте, что вам нужно скопировать этот файл в несколько каталогов:
# cp /home/user/my_file.txt /home/user/1
# cp /home/user/my_file.txt /home/user/2
# cp /home/user/my_file.txt /home/user/3
Это немного абсурдно. Вместо этого вы можете решить проблему с помощью простой однострочной команды:
# echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1 cp /home/user/my_file.txt
9. Удаление файлов большего размера
Иногда файлы могут достигать очень больших размеров. Я видел случаи, когда размер одного файла журнала превышал 250 ГБ из-за плохих навыков администрирования. Удаление файла с помощью утилиты rm в таких случаях может быть недостаточным из-за того, что необходимо удалить очень большой объем данных. Эта операция будет «тяжелой», и ее следует избегать. Вместо этого вы можете использовать действительно простое решение:
# > /path-to-file/huge_file.log
Конечно, вам нужно будет изменить путь и имена файлов на те, которые соответствуют вашему случаю. Приведенная выше команда просто запишет в файл пустой вывод. Проще говоря, он очистит файл, не вызывая большого количества операций ввода-вывода в вашей системе.
10. Запустите одну и ту же команду на нескольких серверах Linux
Недавно один из наших читателей спросил на нашем форуме LinuxSay, как выполнить одну команду для нескольких компьютеров Linux одновременно с помощью SSH. IP-адреса его машин выглядели так:
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
Итак, вот простое решение этой проблемы. Соберите IP-адреса серверов в один файл под названием list.txt один под другим, как показано выше. Затем вы можете запустить:
# for in $i(cat list.txt); do ssh user@$i 'bash command'; done
В приведенном выше примере вам нужно будет заменить «user» на фактического пользователя, под которым вы будете вести журнал, и «bash команда» на фактическую команду bash, которую вы хотите выполнить. . Этот метод лучше работает, когда вы используете аутентификацию без пароля с ключом SSH на своих компьютерах, поскольку в этом случае вам не придется вводить пароль для вашего пользователя снова и снова.
Обратите внимание, что вам может потребоваться передать некоторые дополнительные параметры команде SSH в зависимости от настроек вашего Linux-сервера.
Заключение
Приведенные выше примеры действительно просты, и я надеюсь, что они помогли вам осознать красоту Linux и то, как можно легко выполнять различные операции, которые в других операционных системах могут занять гораздо больше времени.