Основные linux-команды для новичка / Хабр
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Содержание
Где я? Как понять, где находишься
Команда pwd:
pwd --- мы ввели команду
/home/test --- ответ системы, мы находимся в домашней директории пользователя test
Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
Как понять, что находится в папке
Команда ls позволяет просмотреть содержимое каталога:
Хотя лучше использовать команду сразу с флагом «l»:
ls -l
Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.
У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».
См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)
Как перейти в другую директорию
С помощью команды cd:
cd <путь к директории>
Путь может быть абсолютным или относительным.
По абсолютному пути
Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
cd /home/student/log
Ну вот, мы переместились из домашней директории (обозначается как ~) в /home/student/log.
По относительному пути
Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в
cd log --- перейди в папку log из той директории, где ты сейчас находишься
Если мне из надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
cd city/msk/2017/cat_1
Я не пишу /home/student/photo, так как я уже там.
В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки:
cd ~/log
Эта команда будет работать отовсюду. И переместит нас в /home/user/log.
Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:
С автодополнением
Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:
— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).
cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.
Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.
Подняться наверх
Подняться на уровень выше:
cd ..
Если нужно поднять на два уровня выше, то
cd ../..
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.
См также:
Путь к файлу в linux
Как создать директорию
Используйте команду mkdir:
mkdir test --- создает папку с названием «test» там, где вы находитесь
Можно и в другом месте создать папку:
mkdir /home/test --- создает папку «test» в директории /home, даже если вы
сейчас не там
Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
Как создать каталог в Linux с помощью команды mkdir
Как создать файл
Командой touch:
touch app.log
Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
Как отредактировать файл
Вот честное слово, лучше делать это через графический интерфейс!
Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
- nano — более простая программа, рассчитана на новичков
- vim — более сложная, но позволяет сделать кучу всего
Начнем с nano. Указываете имя команды и путь в файлу:
nano test_env.json
Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
- Ctrl+O — чтобы сохранить
- Ctrl+X — для выхода
Самое приятное в nano — это подсказки внизу экрана, что нажать, чтобы выйти.
А вот с vim с этим сложнее. В него легко зайти:
vim test_env.json
vi test_env.json (предшественник vim)
Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает:
Делюсь секретом, для выхода надо набрать:
- :q — закрыть редактор
- :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)
Двоеточие запускает командный режим, а там уже вводим команду «q» (quit).
Исходно, когда мы открываем файл через vim, то видим его содежимое, а внизу информацию о файле:
Когда нажимаем двоеточие, оно печатается внизу:
Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда!!!
На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.
Если нужно выйти, сохранив изменения, используйте команду
:w — сохранить файл;
:q — закрыть редактор;
Ну а про возможности редактирования см статьи ниже =)
См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как выйти из редактора Vi или Vim? — зачем нажимать Esc
Как перенести / скопировать файл
Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?
Скопировать файл
Команда:
cp что_копировать куда_копировать
Если мы находимся в директории /opt/app/log:
cp app.log /home/olga
В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в
Можно сразу переименовать файл:
cp app.log /home/olga/app_test_2020_03_08.log
В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.
Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:
Никаких ошибок, система просто выполнила команду.
См также:
Копирование файлов в linux
Скопировать директорию
Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
cp -r путь_к_папке путь_к_новому_месту
Например:
cp /opt/app/log /home/olga
Так в директории /home/olga появится папка «log».
Переместить файл
Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
cp app.log /home/olga
↓
mv app.log /home/olga
Можно использовать относительные и абсолютные пути:
mv /opt/app/logs/app.log /home/olga — абсолютные пути указаны, команда сработает из любого места
Можно сразу переименовать файл:
mv app.log /home/olga/app_2020_03_08.log — перенесли лог в /home/olga и переименовали
Переместить директорию
Аналогично перемещению файла, команда mv
mv /opt/app/log/ /home/olga/bakup/
Как удалить файл
С помощью команды rm (remove):
rm test.txt — удалит файл test.txt
Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:
rm * — удалит все файлы в текущей директории
Если нужно удалить папку, надо добавить флаг -r (recursive):
rm -r test_folder
Если вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:
А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да…» (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):
rm -rf test_folder --- просто все удалит без разговоров
Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!
Опция -v показывает имена удаляемых файлов:
rm -rfv test_folder --- удалит папку со всем содержимым, но выведет имена удаляемых файлов
Тут вы хотя бы можете осознать, что натворили )))
См также:
Как удалить каталог Linux
Как изменить владельца файла
Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.
Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.
Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:
chown testbase:testbase test.txt — сменить владельца файла
chown -R testbase:testbase user — сменить владельца папки
В итоге был владелец root, а стал testbase. То, что надо!
См также:
Команда chown Linux
Как установить приложение
Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
- yum — red hat, centos
- dpkg, apt — debian
См также:
5 Best Linux Package Managers for Linux Newbies
Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.
И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.
mc
Ничего страшного, установите это приложение через yum:
yum install mc
Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:
И система заканчивает установку.
Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:
См также:
Как устанавливать программы для Linux
Yum, шпаргалка — всякие опции и плагины
Как запустить приложение
Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.
Чтобы запустить скрипт, нужно указать полный путь к нему:
/opt/cdi/jboss/bin/standalone.sh — запустили скрипт standalone.sh
Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
./standalone.sh — запустили скрипт, если мы в той же директории
Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
standalone.sh --- запустили скрипт standalone.sh, путь к которому прописан в PATH
См также:
Запуск скрипта sh в Linux — подробнее о скриптах
Если же приложение запускается как сервис, то все еще проще:
service test start — запустить сервис под названием «test»
service test stop — остановить сервис
Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:
chkconfig test on
Она добавит службу в автозапуск.
Как понять, где установлено приложение
Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?
Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):
whereis newman
Как создать архив
Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:
tar -cvzf archive.tar.gz /home/test
В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.
Для распаковки меняем флаг «c» на «x» и убираем «z»:
tar -xvf archive.tar.gz
Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.
Давайте разберемся, что все эти флаги означают:
- c — создать архив в linux
- x — извлечь файлы из архива
- v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
- f — файл для записи архива
- z — сжатие
Для упаковки используется опция c — Create, а для распаковки x — eXtract.
Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:
yum install rar
yum install unrar
Говорит, нет такого пакета:
No package rar available.
Error: Nothing to do
Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz
tar xzf rarlinux-x64-5.4.0.tar.gz
cd rar
make install
Устанавливаем:
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
И применяем:
unrar x test.rar
См также:
Установка RAR на Linux
Как посмотреть использованные ранее команды
Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!
Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:
↑ (стрелочка «наверх») — показать последнюю команду
history — показать последние 1000 команд
Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).
Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.
Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.
См также:
История команд Linux — больше о возможностях history
Как посмотреть свободное место
Сколько места свободно на дисках
df -h
Сколько весит директория
du -sh
du -sh * --- с разбиением
Как узнать IP компьютера
Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.
Чтобы узнать IP машины, используйте команду:
hostname -I
Также можно использовать ifconfig:
ifconfig — выведет кучу инфы, в том числе ваш внешний IP
ip a — аналог, просто иногда Ifconfig дает очень много результата, тут поменьше будет
См также:
Displaying private IP addresses
Как узнать версию OS
Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?
Используйте команду:
cat /etc/*-release
На этой виртуалке стоит CentOs 7.
Если нужна версия ядра:
uname -a
См также:
Как узнать версию Linux
Как узнать, как работает команда
Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:
man ls
Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.
Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))
Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!
Если man у программы нет, используйте флаг -h (—help):
ls -h
Как создать много тестовых папок и файлов
Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
mkdir -p test/dir--{000..100}
touch test/dir--{000..100}/file-{A..Z}
Вот и все, дальше можно играться с ними!
Теперь пояснения:
- mkdir — создать директорию
- touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)
А выражения в скобках играют роль функции, которая выполняется в цикле и делает ручную работу за вас:
- {000..100} — пробежится по всем числам от 0 до 100
- {A..Z} — пробежится по всем буквам английского алфавита от A до Z
Как я пробовала эту команду. Сначала посмотрела, где нахожусь:
$ pwd
/home/test
Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).
Ага, в домашней директории. Создам себе песочницу:
mkdir olga
Вот в ней и буду творить!
mkdir -p olga/dir--{000..100}
touch olga/dir--{000..100}/file-{A..Z}
А потом можно проверить, что получилось:
cd olga
ls -l
Как-то так! Имхо, полезные команды.
Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!
И, главное, тестировщику полезно — может пригодиться для тестов.
Как протестировать IOPS на Linux
Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.
Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.
Используем утилиту fio — https://github.com/axboe/fio/releases.
1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка
cd /tmp
wget https://github.com/axboe/fio/archive/fio-3.19.tar.gz
tar xvzf fio-3.19.tar.gz
rm fio-3.19.tar.gz
cd fio-fio-3.19
2) Должны стоять пакеты для сборки
apt-get install -y gcc make libaio-dev | yum install -y make gcc libaio-devel
3) Собираем
make
4) Тестируем
./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1
Какие должны быть результаты:
- Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
- Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.
Свежесть определяется на момент написания статьи в 2017 году.
Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.
И это все?
Разумеется, нет =))
Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.
Вот вам еще пара ссылочек от меня:
Для понимания структуры папок рекомендую статью «Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе»
Книги и видео по теме
Видео:
ПО GNU/Linux — видео лекции Георгия Курячего — очень хорошие видео-лекции
Книги:
Командная строка Linux. Уильям Шоттс
Скотт Граннеман. Linux. карманный справочник
Где тренироваться
Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))
А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.
У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.
Чтобы подключиться к машине, используйте инструменты:
- Putty — командная строка
- WinSCP — графический интерфейс
См также:
WinSCP — что это и как использовать
DEB пакеты (Debian, Ubuntu и тому подобное) | |
dpkg -i package.deb | установить / обновить пакет |
dpkg -r package_name | удалить пакет из системы |
dpkg -l | показать все пакеты, установленные в систему |
dpkg -l | grep httpd | среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd» |
dpkg -s package_name | отобразить инфрмацию о конкретном пакете |
dpkg -L package_name | вывести список файлов, входящих в пакет, установленный в систему |
dpkg —contents package.deb | отобразить список файлов, входящих в пакет, который ешё не установлен в систему |
dpkg -S /bin/ping | найти пакет, в который входит указанный файл. |
APT — средство управление пакетами (Debian, Ubuntu и тому подобное) | |
apt-get install package_name | установить / обновить пакет |
apt-cdrom install package_name | установить / обновить пакет с cdrom’а |
apt-get update | получить обновлённые списки пакетов |
apt-get upgrade | обновить пакеты, установленные в систему |
apt-get remove package_name | удалить пакет, установленный в систему с сохранением файлов конфигурации |
apt-get purge package_name | удалить пакет, установленный в систему с удалением файлов конфигурации |
apt-get check | проверить целостность зависимостей |
apt-get clean | удалить загруженные архивные файлы пакетов |
apt-get autoclean | удалить старые загруженные архивные файлы пакетов |
Просмотр содержимого файлов | |
cat file1 | вывести содержимое файла file1 на стандартное устройсво вывода |
tac file1 | вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.) |
more file1 | постраничный вывод содержимого файла file1 на стандартное устройство вывода |
less file1 | постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п. |
head -2 file1 | вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк |
tail -2 file1 | вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк |
tail -f /var/log/messages | выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста. |
Манипуляции с текстом | |
cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый |
cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан |
grep Aug /var/log/messages | из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug» |
grep ^Aug /var/log/messages | из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug» |
grep [0-9] /var/log/messages | из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие цифры |
grep Aug -R /var/log/* | отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug», во всех файлах, находящихся в директории /var/log и ниже |
sed ‘s/stringa1/stringa2/g’ example.txt | в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода. |
sed ‘/^$/d’ example.txt | удалить пустые строки из файла example.txt |
sed ‘/ *#/d; /^$/d’ example.txt | удалить пустые строки и комментарии из файла example.txt |
echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’ | преобразовать символы из нижнего регистра в верхний |
sed -e ‘1d’ result.txt | удалить первую строку из файла example.txt |
sed -n ‘/string1/p’ | отобразить только строки содержашие «string1» |
sed -e ‘s/ *$//’ example.txt | удалить пустые символы в в конце каждой строки |
sed -e ‘s/string1//g’ example.txt | удалить строку «string1» из текста не изменяя всего остального |
sed -n ‘1,8p;5q’ example.txt | взять из файла с первой по восьмую строки и из них вывести первые пять |
sed -n ‘5p;5q’ example.txt | вывести пятую строку |
sed -e ‘s/0*/0/g’ example.txt | заменить последовательность из любого количества нулей одним нулём |
cat -n file1 | пронумеровать строки при выводе содержимого файла |
cat example.txt | awk ‘NR%2==1’ | при выводе содержимого файла, не выводить чётные строки файла |
echo a b c | awk ‘{print $1}’ | вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции |
echo a b c | awk ‘{print $1,$3}’ | вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции |
paste file1 file2 | объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m |
paste -d ‘+’ file1 file2 | объединить содержимое file1 и file2 в виде таблицы с разделителем «+» |
sort file1 file2 | отсортировать содержимое двух файлов |
sort file1 file2 | uniq | отсортировать содержимое двух файлов, не отображая повторов |
sort file1 file2 | uniq -u | отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода) |
sort file1 file2 | uniq -d | отсортировать содержимое двух файлов, отображая только повторяющиеся строки |
comm -1 file1 file2 | сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1’ |
comm -2 file1 file2 | сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2’ |
comm -3 file1 file2 | сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах |
Преобразование наборов символов и файловых форматов | |
dos2unix filedos.txt fileunix.txt | конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата каретки) |
unix2dos fileunix.txt filedos.txt | конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки) |
recode ..HTML < page.txt > page.html | конвертировать содержимое тестового файла page.txt в html-файл page.html |
recode -l | more | вывести список доступных форматов |
Часто используемые команды Ubuntu ~ Заметки убунтолога
Файловые команды
ls – список файлов и каталогов
ls -la – форматированный список со скрытыми каталогами и файлами
cd dir – сменить директорию на dir
cd – сменить на домашний каталог
pwd – показать текущий каталог
mkdir dir – создать каталог dir
rm file – удалить file
rm -r dir – удалить каталог dir
rm -f file – удалить форсированно file
rm -rf dir – удалить форсированно каталог dir
cp file1 file2 – скопировать file1 в file2
cp -r dir1 dir2 – скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2
ln -s file link – создать символическую ссылку link к файлу file
touch file – создать file
cat > file – направить стандартный ввод в file
less file – вывести содержимое file
head file – вывести первые 10 строк file
tail file – вывести последние 10 строк file
tail -f file – вывести содержимое file по мере роста, начинает с последних 10 строк
Управление процессами
ps – вывести ваши текущие активные процессы
ps aux — вывести все процессы
ps aux | grep -v grep | grep -i %name — найти процесс %name (можно использовать частичное название)
top – показать все запущенные процессы
kill pid – убить процесс с id pid
killall proc – убить все процессы с именем proc
bg – список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg – выносит на передний план последние задачи
fg n – вынести задачу n на передний план
Права доступа на файлы
chmod octal file – сменить права file на octal, раздельно для пользователя, группы и для всех добавлением:
4 – чтение (r)
2 – запись (w)
1 – исполнение (x)
Примеры:
chmod 777 – чтение, запись, исполнение для всех
chmod 755 – rwx для владельца, rx для группы и остальных.
Дополнительные опции: man chmod.
SSH
ssh user@host – подключится к host как user
ssh -p port user@host – подключится к host на порт port как user
ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
Поиск
grep pattern files – искать pattern в files
grep -r pattern dir – искать рекурсивно pattern в dir
command | grep pattern – искать pattern в выводе command
locate file – найти все файлы с именем file
Системная информация
date – вывести текущую дату и время
cal – вывести календарь на текущий месяц
uptime – показать время работы с момента включения
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о user
uname -a – показать информацию о ядре
cat /proc/cpuinfo – информация ЦПУ
cat /proc/meminfo – информация о памяти
man command – показать мануал для command
df – показать инф. о использовании дисков
du – вывести “вес” текущего каталога
du -sh каталог — вывести «вес» определенного каталога в human readable виде
free – использование памяти и swap
whereis app – возможное расположение программы app
which app – какая app будет запущена по умолчанию
Архивация
tar cf file.tar files – создать tar-архив с именем file.tar содержащий files
tar xf file.tar – распаковать file.tar
tar czf file.tar.gz files – создать архив tar с сжатием Gzip
tar xzf file.tar.gz – распаковать tar с Gzip
tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 – распаковать tar с Bzip2
gzip file – сжать file и переименовать в file.gz
gzip -d file.gz – разжать file.gz в file
Сеть
ping host – пропинговать host и вывести результат
whois domain – получить информацию whois для domain
dig domain – получить DNS информацию domain
dig -x host – реверсивно искать host
wget file – скачать file
wget -c file – продолжить остановленную закачку
nmap -v -A scanme.nmap.org — сканировать узел
Установка пакетов
Установка из исходников:
./configure
make
make install
dpkg -i pkg.deb – установить пакет (Debian)
Привилегированный запуск приложений
sudo комманда — запуск команды под именем привилегированного пользователя
gksu комманда — тоже самое, разница в том что появляется графическое окно с просьбой ввести пароль
в обоих случаях вводится пароль вашего текущего пользователя.
Остальные команды
crontab -e – редактировать список задач cron
Горячие клавиши Ubuntu | Losst
Unity — довольно неплохая оболочка рабочего стола, у нее красивый внешний вид и минимальное количество настроек. Как раз то что нужно новичкам. Но если вы пользовались Unity, то наверное, заметили что, для того чтобы добраться к определенной функции или программе, необходимо совершить очень много действий мышью. Например, если вы хотите запустить ту или иную программу вам нужно открыть Меню запуска, набрать в поиске ее имя и т д. Это не всегда удобно.
Есть способ оптимизировать такое поведение — горячие клавиш Ubuntu. Вообще, сочетания клавиш Ubuntu, это отличный инструмент оптимизации рабочего процесса, запомнив один раз несколько комбинаций, вы будете делать различные действия намного быстрее.
В этой статье мы рассмотрим существующие горячие клавиши в Ubuntu, а также поговорим о том, как настроить свои горячие клавиши и в частности, как запускать приложения сочетаниями клавиш.
Содержание статьи:
Сочетания клавиш Ubuntu
Вообще, все основные горячие клавиши Ubuntu можно посмотреть при первом запуске Ubuntu. Система выдаст вот такое окно, в котором все подробно расписано:
Но для тех кто его пропустил, а также тем, кому интересны более тонкие подробности разберем какие же бывают сочетания клавиш Ubuntu и как их использовать. Для удобства разобьем сочетания клавиш на категории.
Оболочка
- Super (Win) — Запустить или закрыть меню Dash
- Super + 1 — 9 — Запустить или сделать активным приложение с панели Unity указанным номером.
- Super + Shift + 1 — 9 — Запустить новую копию приложения с панели Unity
- Super + T — открыть корзину
- Alt + F1 — Установить фокус ввода на значок меню запуска приложений. Затем можно его открыть нажав Enter или перемещаться по панели Unity с помощью стрелок.
- Ctrl + Alt + T — Запустить терминал
- Зажать Super — показывает номера приложений на панели
- Alt — открыть строку запуска приложений
Dash
- ЛКМ — запустить приложения
- ПКМ — информация о приложении
- Ctrl+Tab — переход к следующей линзе поиска
- Ctrl + Shift + Tab — переход к предыдущей линзе поиска
- Alt+F2 — выполнить команду, можно вводить полный путь к программе.
- Super + A — открыть поиск приложений
- Super + F — открыть поиск по файлам и каталогам
- Super + M — открыть поиск музыки
- Super + V — открыть поиск видео
Панель
- Alt + F10 — открыть меню первого элемента системного лотка. Перемещаться по элементам потом можно с помощью клавиш со стрелками.
- Esc — закрыть меню без выполнения действий.
Управление окнами
- Ctrl + Super + D — показать рабочий стол
- Super + W — Показать окна со всех рабочих столов
- Super + D — свернуть или развернуть все окна
- Alt + Пробел — открыть меню окна
- Alt + Tab — переключение между приложениями. Вы можете зажать Alt и нажимать Tab для переключения.
- Alt + ` — показать превью программы при переключении по Alt + Tab.
- Ctrl + Super + вверх — развернуть текущее окно на весь экран
- Ctrl + Super + вниз — минимизировать или восстановить текущее окно.
- Ctrl + Super + вправо — развернуть текущее окно вправо
- Ctrl + Super + влево — развернуть текущее окно влево
- Alt + F8 — изменить размер текущего окна
- Alt + F4 — закрыть текущее окно
- Alt + F7 — переместить текущее окно
Перемещение окон
- Ctrl + Alt + Numpad 7 — Поместить окно в верхний левый угол
- Ctrl + Alt + Numpad 8 — Поместить окно вверху по центру
- Ctrl + Alt + Numpad 9 — Поместить окно в верхнем правом углу.
- Ctrl + Alt + Numpad 5 — Поместить окно по центру экрана
- Ctrl + Alt + Numpad 1 — Поместить окно в нижний левый угол
- Ctrl + Alt + Numpad 2 — Поместить окно внизу по центру
- Ctrl + Alt + Numpad 3 — Поместить окно в нижний правый угол
- Ctrl + Alt + Numpad 0 — Свернуть текущее окно
Управление рабочей средой
- Super + S — режим приборной доски, вы можете управлять всеми окнами на всех рабочих столах.
- Shift + Alt + вверх — режим приборной доски только для текущего рабочего стола
- Ctrl + Alt + вверх, вниз, вправо, влево — переключение между рабочими столами
- Ctrl + Alt + L — заблокировать экран
Снимки экрана
- PrtScr — сделать снимок экрана.
- Alt + PrtScr — сделать снимок текущего окна.
- Shift + PrtScr — сделать снимок области под мышкой.
Система
- Ctrl + Alt + Delete — завершение текущей сессии
- Ctrl + Alt + Backspace — перезапуск Х сервера
Настройка сочетаний клавиш Ubuntu
Теперь вы точно не потеряетесь в Ubuntu, сочетания клавиш помогут вам, даже если вы не сможете пользоваться мышкой. Но теперь давайте рассмотрим как настроить дополнительные комбинации клавиш в Ubuntu. Это можно сделать с помощью стандартной утилиты настроек.
Откройте настройки системы:
Выберите пункт Клавиатура:
Перейдите на вкладку Комбинации клавиш:
Здесь настройка сочетаний клавиш в Ubuntu раскидана по разным категориям. Вы можете как настроить дополнительные комбинации, так и изменить горячие клавиши для уже существующих действий.
Запуск приложений и выполнение команд Ubuntu по сочетанию клавиш
Вот мы и подошли к тому о чем говорили в начале статьи. С помощью того же меню можно настроить горячие клавиши Ubuntu 16.04 для любого действия.
Для этого нажмите кнопку +:
В открывшемся окне введите название действия, чтобы вы могли знать что это такое, в строке команда, напишите путь к программе или скрипту которую нужно выполнить:
Затем нажмите кнопку Применить. Дальше нажмите на надпись Выключено, чтобы задать сочетание клавиш, по которому будет выполняться эта команда.
Готово, после выбора сочетания клавиш можете сразу проверить как это работает.
Узнать адрес исполняемого файла нужного приложения можно немного поэкспериментировав в терминале или посмотрев его ярлык в папке /usr/share/applications:
Здесь найдите нужное приложение, сделайте на нем клик правой кнопкой мыши и выберите Свойства:
Здесь вы можете увидеть имя приложения, и команду для его запуска:
Выводы
Теперь вы знаете все что нужно чтобы настроить и полноценно использовать в Ubuntu комбинации клавиш. Если у вас остались вопросы, пишите комментарии!
Оцените статью:
Загрузка…Полезные команды Linux
Терминал Linux очень гибкий и полезный инструмент. С помощью него можно сделать что угодно и во многих случаях даже намного эффективнее чем в графическом интерфейсе. Команды можно объединять между собой, перенаправлять вывод одной команды, на вход другой, комбинировать их различным образом. Это делает их применение еще более эффективным. В сегодняшней статье я хочу поделиться несколькими полезными командами linux, которые я открыл для себя во время использования Linux и которыми до сих пор пользуюсь для автоматизации рутинных действий.
В качестве командной оболочки используется самая популярная — bash. Также для некоторых задач нам понадобится демон планирования выполнения задач cron.
Некоторые из этих команд упрощают выполнение той или иной задачи, некоторые полностью выполняют нужные действия за пользователя. Возможно, не все они будут вам полезны, так как, некоторые команды нужны только веб-мастерам, другие системным администраторам, а еще одни обычным домашним пользователям. Но давайте перейдем к списку полезные команды для линукс.
Содержание статьи:
Создание папок в терминале
Для создания папки в терминале используется команда mkdir. Вот так она выглядит:
mkdir имя_папки
Но не все знают о ее дополнительных возможностях. Чтобы создать несколько вложенных папок используйте команду p:
mkdir -p /mnt/foo/bar/
Создать несколько папок за один раз:
mkdir /mnt/{foo,bar,doc,man}
Создать папку и перейти в нее:
mkdir /home/foo/doc/bar && cd $_
Кстати, синтаксис фигурных скобок поддерживают и другие команды для linux терминала.
Ожидать завершения команды и выключить компьютер
Это скорее не команда, а небольшая стандартная функция оболочки Bash, о которой не все знают. Иногда нам нужно оставить на выполнение какую-нибудь долго работающую утилиту, например, обновление системы, а самим куда-то отойти. И при этом мы хотим чтобы после завершения работы утилиты компьютер автоматически выключился. Можно просто объединить команды с помощью стандартного синтаксиса Bash. Для объединения используются символы && и ||. Первый — выполнить другую команду если первая завершилась успешно, второй если первая завершилась ошибкой.
Например, обновить систему и если все хорошо выключить PC:
su -
apt-get update && apt-get upgrade && shutdown -h now
Или выключить компьютер если обновление не удалось:
apt-get update && apt-get upgrade || shutdown -h now
Или выключить независимо от того произошла ошибка или нет:
apt-get update && apt-get upgrade ; shutdown -h now
Здесь приведена команда обновления Ubuntu, но в других дистрибутивах нужно заменить эту команду на свою.
Повторить последнюю команду
Если мы уже начали говорить о возможностях Bash пойдем дальше. Символ !! означает выполнить последнюю команду. Часто ли у вас случалось такое, что вы набираете команду нажимаете Enter и понимаете, что для ее работы нужно было использовать sudo? Тогда приходиться набирать ту же команду только уже правильно. Но можно пойти другим путем, выполнить:
sudo !!
Кроме символа !! В Bash есть еще несколько указателей на команды:
- !^ — первый аргумент предыдущей команды;
- !$ — последний аргумент предыдущей команды;
- !* — все аргументы предыдущей команды;
- !-2 — вторая с конца команда;
- *— содержимое текущего каталога.
А вот так можно сохранить последнюю выполненную команду в скрипт:
echo "!!" > foo.sh
Вызвать последнюю команду которая начиналась с символов
И еще о возможностях Bash. Например, вы помните что подключались в последний раз к определенному узлу по ssh, и теперь вам нужно подключиться к нему снова. Чтобы не вводить полностью команду можно набрать знак «!» и символы с которых начиналась команда:
!ssh
Будет выполнена последняя команда, которая начиналась на ssh.
Посмотреть ip адрес
Часто возникает необходимость быстро узнать ip адрес своей машины. Для этого есть легко запоминающаяся команда, использующая curl и сайт ifconfig.me:
curl ifconfig.me
Форматирование вывода
Многие команды Linux выводят данные, разделяя столбцы пробелами. Одна из них mount. И естественно, в этом выводе трудно что-либо разобрать. Для разделения столбцов табуляциями используйте утилиту column:
mount | column -t
Динамический просмотр лога
Допустим, есть у нас лог файл в который пишется определенная информация и мы хотим видеть все изменения сразу, на лету. Тогда используйте команду tail с опцией -f:
$ tail -f /адрес/лог/файла
Будет выведено 8 последних строк из лога файла, а затем они будут постоянно обновляться.
Очистить терминал
Вывод команд, если во время их разработки были допущены некоторые ошибки может сломать форматирование строк терминала. Или просто может понадобится стереть всю лишнюю информацию. Для этого есть аж две полезные команды linux, первая:
reset
Вторая:
clear
Первая только переводит курсор вверх страницы, вторая добавляет несколько пустых строк.
Подключение RAM диска
Если вам нужно немного дискового пространства с высокой скоростью работы, в Linux можно легко подключить немного оперативной памяти в корневую файловую систему:
mount -t tmpfs tmpfs /mnt -o size=1024m
В папку /mnt будет подключен RAM диск размером 1024 мегабайт.
Узнать архитектуру системы
Этой простой командой можно быстро узнать разрядность системы:
getconf LONG_BIT
Или так:
arch
Открыть файл на определенной строке
Это не команда, а просто малоизвестная функция консольных редакторов. Очень полезная для программистов. Вот, например, сообщает программа, что у вас ошибка в 55 строке, вместо того чтобы самому искать ту сроку просто набираете:
nano +55 /sourcefile
или
vim +55 /sourcefile
И оказываетесь сразу на нужной строке.
Время выполнения команды
Хотите узнать сколько времени выполняется та или иная команда? Просто добавьте перед ней вызов утилиты time. Например:
time ls ~/
drwxr-xr-x 8 user user 4096 дек 6 14:13 Фильмы
drwxr-xr-x 13 user user 4096 июл 20 2014 Фото
real 0m0.059s
user 0m0.003s
sys 0m0.003s
Эту команду также можно использовать в качестве секундомера. Просто выполните:
$ time read
А затем нажмите Ctrl+D когда нужно будет узнать сколько времени прошло.
Автоматическое удаление старых файлов
Все мы часто качаем файлы из интернета, это торренты, фильмы, музыка и т д. И все это со временем накапливается в папке загрузки если ненужное вовремя не удалять, а нужное не перемещать в другие папки. Тогда папка загрузок начинает напоминать огромную свалку где вообще нереально что-то найти. У себя я всегда время от времени сортировал и удалял файлы, но когда видел такое у знакомых брался за голову. Есть способ упростить очистку папки загрузок.
Утилита find позволяет находить все файлы, созданные позже определенной даты и выполнять с ними нужное действие. Все нужные файлы будем вовремя рассортировывать и перемещать по папкам назначения, а все что останутся в загрузках будут через два дня автоматически удаляться. Знание что файлы будут удалены заставит их вовремя переместить куда нужно.
Вот так выглядит сама команда:
find /home/user/Downloads/ -type f -mtime +180 -exec 'rm -f {}'
Если не хотите полностью удалять файлы можно перемещать их в корзину:
find /home/user/Downloads/ -type f -mtime +180 -exec 'mv {} ~/.Trash'
Подробнее о работе find можно почитать тут. Для полной автоматизации добавим выполнение этой команды каждый день в расписание cron:
crontab -e
0 0 * * * find /home/user/Downloads/ -type f -mtime +180 -exec 'rm -f {}'
Теперь давние файлы будут автоматически удаляться каждый день.
Убить все процессы из консоли
Если у вас небольшое количество оперативной памяти на компьютере и вы любите открывать очень много вкладок в Chromium, то программа а вместе с ней и окружение рабочего стола могут прочно зависать. Браузер создает для каждой вкладки отдельный процесс, поэтому пока планировщик памяти ядра поймет кто виноват в сбое и что нужно делать уйдет много времени, а пытаться убить каждую вкладку по отдельности очень долгое занятие. Есть команда, с помощью которой можно из терминала одним махом закрыть все вкладки:
ps aux | grep chromium | awk '{print $2}' | xargs kill -TERM
Или намного проще:
killall chromium
Здесь мы получаем список всех процессов в ps, выбираем из них chromium, потом отбираем второй столбец, то есть PID, и с помощью xargs вызываем kill для каждой вкладки. Точно таким же способом можно уничтожить любое приложение создающее много процессов.
Завершение
Вот и подошли к концу наши полезные команды для линукс. Если вы знаете другие полезные команды linux, поделитесь ими в комментариях!
Оцените статью:
Загрузка…10 базовых команд Linux для новичков, примеры. Linux статьи
Не каждому пользователю Linux нужно уметь работать в командной строке. Но рано или поздно настанет момент, когда нужно будет выполнить в терминале какие-нибудь минимальные действия. Случаи могут быть абсолютно разные — настройка системы, восстановление, копирование данных при сбое и так далее.
Поэтому я решил составить данную подборку команд для новичков в Linux, которые могут пригодиться каждому.
1. ls
Команда ls (если выполнить ее без аргументов) используется для вывода списка файлов в текущей директории.
Чтобы вывести список файлов в директории /home/vasya/.ssh выполните:
ls /home/vasya/.ssh
2. cd
Команда cd используется для перехода по дереву директорий (перехода в другую папку).
Например, чтобы перейти в директорию /home/vasya/.local нужно выполнить
cd /home/vasya/.local
3. mv
Команда mv используется для перемещения (или переименования) файлов и директорий.
Например, чтобы переместить директорию /home/vasya/documents в директорию /home/vasya/secret выполните:
mv /home/vasya/documents /home/vasya/secret
4. cp
Команда cp создает копию файла или директории.
Чтобы скопировать файл messages.log в файл messages.log.bak выполните:
cp messages.log messages.log.bak
Чтобы скопировать директорию, необходимо после команды добавить аргумент -r. Например, скопируем директорию drivers в display-drivers:
cp -r drivers display-drivers
5. sudo
Команда sudo используется для выполнения других команд от имени суперпользователя. Но пользоваться ей нужно аккуратно, так как можно повредить систему.
Например, если вы попытаетесь создать копию файла в «системной» директории /etc, то получите предупреждение Permission denied. Поэтому в данном случае команду нужно выполнять от имени суперпользователя, например:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
6. touch
Командой touch можно создать пустой файл.
Например, создадим пустой файл path.dat:
touch path.dat
7. find
Команда find предназначена для поиска файлов. Да, это не самая простая команда, но ее знание очень полезно. Для начала достаточно запомнить как искать файлы и директории по имени или по маске (части имени).
Например, найдем в текущей директории все файлы (и директории), имя которых начинается на document, и заканчивается .odt (это могут быть файлы document-history.odt, document1.odt, document.odt, document-linux.odt):
find . -name "document*.odt"
Пояснение: символ точки после команды означает, что осуществляем поиск в текущей директории (и во всех директориях внутри текущей). После аргумента -name в кавычках записывается имя файла или маска (шаблон), по которой мы ищем. Символ звездочка в маске означает, что вместо звездочки могут быть любые символы.
8. cat
Команда cat выводит содержимое указанного файла на экран.
Например, чтобы просмотреть содержимое файла /var/log/auth.log выполните:
cat /var/log/auth.log
9. nano
На самом деле nano это консольный текстовый редактор. Но иногда, это один из немногих способов отредактировать файл из командной строки (например, когда графический интерфейс не грузится или отсутсвует).
Например, чтобы создать или отредактировать существующий файл ftp.cfg выполните:
nano ftp.cfg
Откроется текстовый редактор. Внесите изменения в файл. Затем нажмите сочетание клавиш Ctrl+x и введите y, чтобы сохранить изменения и выйти (или введите n, чтобы закрыть файл без сохранения изменений).
10. mkdir
Команда mkdir создает пустую директорию.
Например, чтобы создать директорию backup, выполните:
mkdir backup
rm и rmdir
Это одиннадцатые команды в моей подборке, так как я считаю, что новичкам про них нужно узнавать в последнюю очередь. Команда rm служит для удаления файлов. rmdir предназначена для удаления директорий.
Например удалим файл veryimportantfile.dat:
rm veryimportantfile.dat
Для удаления директории воспользуемся командной rmdir. Например, удалим директорию photos:
rmdir photos
apt или apt-get
И еще одна важная команда для тех, кто использует Ubuntu. apt — это менеджер пакетов, который служит для установки и удаления программ (пакетов), обновления системы.
Например, чтобы установить консольный файловый менеджер Midnight Commander, выполните:
sudo apt install mc
Если apt недоступен, то используйте apt-get:
sudo apt-get install mc
Что-то еще?
Уверен, что не написал еще массу важных команд. Поэтому добавляйте в комментарии другие must have команды, которые, на ваш взгляд, будут очень полезны для новичков.
20 приёмов работы в командной строке Linux, которые сэкономят уйму времени
Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:
Приёмы работы в командной строке Linux и экономия времени
Вам когда-нибудь доводилось видеть, как коллега использует некие простые команды Linux для решения задач, решение которых занимает у вас несколько строк? Должно быть, когда подобное случалось, вы только и могли сказать себе: «Ну ничего ж себе! Я и не знал, что это можно сделать так просто».
В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.
Нельзя сказать, что эти советы по Linux предназначены только для начинающих. Вполне возможно, что даже опытные пользователи найдут здесь что-нибудь полезное, то, о чём они не знали несмотря на то, что пользовались Linux многие годы. Linux изучают на основе опыта. Тут сгодится и собственный опыт, и опыт других людей.
Прежде чем мы начнём, хочется отметить, что некоторые из приведённых здесь методов зависят от настройки командной оболочки.
0. Автозавершение команд с использованием клавиши Tab
Я начну с кое-чего вполне очевидного, но весьма важного: с автозавершения команд с помощью клавиши
Tab
.Когда вы начинаете набирать что-то в терминале Linux, вы можете нажать клавишу Tab
, после чего будет выведена подсказка, содержащая набор вариантов продолжения ввода, начинающихся с только что введённых символов.
Например, собираясь скопировать файл с именем my_best_file_1.txt
, вы можете просто ввести cp m
и нажать Tab
для того, чтобы увидеть возможные варианты продолжения команды.
Использование клавиши Tab для автозавершения ввода
Клавишу Tab
можно использовать и для автозавершения команд.
1. Переход в последнюю рабочую директорию
Представьте, что вы работали в директории, до которой не так уж и просто добраться, а потом перешли в другую директорию, расположенную совершенно в другом месте. Потом вы поняли, что вам нужно вернуться в предыдущую директорию. В этом случае достаточно воспользоваться следующей командой:
cd -
Она позволит вам оказаться в последней рабочей директории. Теперь в подобных ситуациях вам не нужно больше будет вводить длинные пути, или пользоваться копированием и вставкой.
Простое переключение между директориями
2. Возврат в домашнюю директорию
Этот приём тоже весьма очевиден. Вы можете использовать нижеприведённую команду для того, чтобы вернуться в домашнюю директорию из любого места:
cd ~
Однако, в домашнюю директорию можно вернуться ещё быстрее — с помощью команды
cd
.В большинстве современных дистрибутивов Linux оболочка предварительно настроена на именно такое восприятие команды cd
. Это сэкономит вам пару нажатий клавиш на клавиатуре.
Самый быстрый способ перехода в домашнюю директорию
3. Вывод на экран содержимого директории
Возможно, вы зададитесь вопросом о том, в чём состоит тонкость использования команды для вывода содержимого директории. Все знают, что для этой цели служит команда
ls -l
.Но в том-то всё и дело. Практически все используют команду ls -l
для вывода содержимого директорий, в то время как то же самое можно сделать с помощью следующей команды:
ll
Работоспособность этой команды зависит от дистрибутива Linux и от настройки оболочки, но весьма вероятно, что вы сможете воспользоваться ей в большинстве дистрибутивов.
Использование команды ll вместо команды ls -l
4. Вызов нескольких команд в одной строке
Представьте, что вам нужно последовательно выполнить несколько команд. Наверное, вы вводите одну команду, потом ждёте, когда она завершится, дальше — вводите следующую?
В подобной ситуации полезным окажется разделитель команд ;
(точка с запятой). При таком подходе вы можете ввести несколько команд в одной строке. При этом, в отличие от обычного ввода команд, для выполнения следующей команды не надо ждать завершения предыдущей.
command_1; command_2; command_3
5. Выполнение нескольких команд в одной строке и условие на успешное завершение предыдущей команды
Только что мы рассмотрели способ вызова нескольких команд в одной строке. Это экономит время. Но что если вам нужно, скажем, при вызове двух команд, чтобы следующая команда была выполнена только в том случае, если предыдущая завершится без ошибок?
Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать make
?
В подобной ситуации можно использовать разделитель &&
. Этот разделитель позволяет гарантировать то, что следующая команда будет выполнена лишь в том случае, если предыдущая отработает успешно.
command_1 && command_2
Вот хороший пример использования
&&
:sudo apt update && sudo apt upgrade
6. Простой поиск и использование ранее введённых команд
Представьте себе, что вы, пару минут или пару часов назад, вводили длинную команду, и вам снова нужна эта команда. Причём, проблема заключается в том, что вспомнить точно эту команду вы не можете.
В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш Ctrl + R
для запуска обратного поиска и ввести что-то, имеющее отношение к команде. Система просмотрит историю команд и покажет команды, соответствующие введённому запросу.
Ctrl + R search_term
По умолчанию показан будет лишь один результат. Для того, чтобы увидеть больше результатов, соответствующих запросу, вам понадобится использовать комбинацию клавиш
Ctrl + R
снова и снова. Для того, чтобы выйти из режима обратного поиска, нажмите Ctrl + C
.Обратный поиск по истории команд
Обратите внимание на то, что в некоторых оболочках Bash для перебора результатов поиска можно пользоваться клавишами Page Up
и Page Down
.
7. Разблокировка терминала после случайного нажатия Ctrl + S
Возможно, вы привыкли пользоваться комбинацией клавиш
Ctrl + S
для сохранения файлов. Но если нажать эти клавиши в терминале Linux, вы его заблокируете.Если раньше вы, для того, чтобы исправить положение, вынуждены были закрывать и снова запускать терминал — теперь может вздохнуть спокойно, больше вам этого делать не придётся. Для того, чтобы привести терминал в рабочее состояние, просто воспользуйтесь комбинацией клавиш Ctrl + Q
.
8. Перемещение к началу или концу строки
Представьте себе, что вы вводите длинную команду и где-нибудь посередине понимаете, что должны что-нибудь изменить в её начале. Вероятно, вы используете клавиши-стрелки для того, чтобы сначала переместиться в начало строки, а потом вернуться в конец.
Конечно, в подобной ситуации можно использовать клавиши Home
и End
, но, как вариант, с помощью комбинации клавиш Ctrl + A
можно перейти в начало строки, а с помощью комбинации Ctrl + E —
в конец.
Перемещение к началу или концу строки
Мне такой способ кажется удобнее, чем использование клавиш Home
и End
, особенно когда я работаю на ноутбуке.
9. Чтение лог-файлов в режиме реального времени
Когда вам нужно проанализировать файлы журналов, в которые, во время анализа, пишет данные какое-нибудь работающее приложение, вы можете использовать команду
tail
с опцией -f
.tail -f path_to_Log
Кроме того, вы можете использовать команду
grep
в её обычном виде для отображения только тех строк, которые вас интересуют:tail -f path_to_log | grep search_term
Также тут можно задействовать опцию
F
. Это приведёт к тому, что утилита tail
продолжит работать даже в том случае, если просматриваемый лог-файл будет удалён. При таком подходе, если этот файл снова будет создан, tail
продолжит выводить данные из него на экран.10. Чтение сжатых лог-файлов без их распаковки
Серверные журналы обычно сжаты с помощью
gzip
для экономии места на диске. Это может привести к некоторым неудобствам при анализе логов разработчиками или системными администраторами. Вам может понадобиться использовать команду scp для копирования файла в свою локальную директорию, а после этого извлечь файл из архива для того, чтобы его просмотреть, так как у вас может не быть разрешения на запись туда, где хранится интересующий вас файл.Тут нам на помощью приходит группа команд, имя которых начинается с буквы «z». Эти команды являются альтернативой обычным командам, которые используются для работы с файлами журналов. Среди них — less
, cat
, grep
, и другие.
Итак, используя команды zless
, zcat
, zgrep
и подобные им, вам не придётся явным образом распаковывать сжатые файлы. Подробности об этих командах можно посмотреть здесь.
Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.
11. Использование команды less для чтения файлов
Если вам нужно просмотреть файл, особенно — большой, можно попробовать команду
cat
, но гораздо лучше поискать что-нибудь другое. Дело в том, что cat
выведет на экран весь файл, что не так уж и удобно.Для просмотра файлов можно воспользоваться редакторами вроде Vi или Vim, работающими в терминале, но если вам просто нужно прочесть файл, очень кстати окажется команда less
.
less path_to_file
Во время сеанса работы с
less
можно искать нужные фрагменты текста по ключевым словам, перемещаться по страницам, выводить данные с номерами строк, и так далее.12. Повторное использование последнего элемента из предыдущей команды с помощью !$
Во многих ситуациях очень кстати оказывается возможность использования аргумента предыдущей команды.
Предположим, вам нужно создать директорию, а потом в неё перейти. Тут можно воспользоваться опцией !$
, вводя команду перехода после команды создания директории.
Применение !$ для использования аргумента последней команды
Ещё лучше то же самое делается с помощью сочетания клавиш Alt +.
(точка). Точку можно использовать несколько раз для перебора опций последней команды.
13. Использование предыдущей команды в текущей команде с помощью !!
С помощью
!!
можно вызвать всю предыдущую команду. Этот приём оказывается особенно полезным, когда вам нужно выполнить команду и оказывается, что для её выполнения нужны привилегии суперпользователя. Например, на рисунке ниже показана ситуация, в которой команда sudo !!
позволяет сэкономить немало времени.Воспользуйтесь!!! для подстановки последней команды в качестве аргумента
14. Использование псевдонимов для исправления ошибок ввода
Возможно, вы уже знакомы с командой
alias
. Её можно использовать для исправления ошибок во введённых командах.Например, может случиться так, что вы часто вводите gerp
вместо grep
. Если с вредной привычкой справиться никак не удаётся, запишите псевдоним в свой файл bashrc
следующим образом:
alias gerp=grep
Теперь вам не придётся перенабирать эту команду если вы введёте её имя неправильно.
15. Копирование и вставка в терминале Linux
Этот совет несколько неоднозначен, так как он зависит от дистрибутива Linux и от терминала.
Но обычно команды копирования и вставки можно вызывать следующим образом:
- Выделите текст, который надо скопировать, и щёлкните правой кнопкой мыши для его вставки (работает в Putty и других SSH-клиентах для Windows).
- Выделите текст, который надо скопировать, после чего щёлкните центральной кнопкой мыши (колесом прокрутки) для того, чтобы его вставить.
- Используйте комбинации клавиш
Ctrl + Shift + C
для копирования, иCtrl + Shift + V
для вставки.
16. Завершение работы команды или процесса
Возможно, то, что я тут хочу посоветовать, совершенно очевидно, однако, всё равно об этом расскажу. Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавиши
Ctrl + C
для того, чтобы её остановить.17. Использование команды yes для автоматизации интерактивных команд или скриптов
Если вам приходится работать с некоторыми командами или скриптами, которые предусматривают взаимодействие с пользователем, и вы знаете, что будете вводить
Y
в ответ на каждый вопрос программы, можете автоматизировать этот процесс с помощью команды yes
. Делается это так:yes | command_or_script
18. Очистка содержимого файла без удаления самого файла
Если вы хотите очистить содержимое текстового файла, не удаляя сам файл, можете использовать следующую команду:
> filename
19. Выяснение наличия в директории файлов, содержащих определённый текст
Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:
grep -Pri Search_Term path_to_directory
Однако я советую всем, кому нужен поиск в Linux, разобраться как следует с командой
find
.20. Вызов справки для любой команды
Хочу завершить этот материал одним весьма очевидным, но, тем не менее, очень важным «трюком», который заключается в вызове справки для команды или инструмента командной строки.
Практически все средства командной строки содержат справочную информацию, раскрывающую особенности их использования. Обычно чтение справки помогает разобраться с основами команды. Вызвать справку можно так:
command_tool --help
Итоги: делитесь полезными советами!
Я намеренно не включил в этот материал команды вроде fuck, так как они не из тех стандартных средств, которые можно найти буквально повсюду. То, о чём я тут рассказал, может принести пользу при работе практически со всеми дистрибутивами Linux и оболочками командной строки без необходимости установки новых программ.
Уважаемые читатели! Возможно, вы уже знакомы с некоторыми из приведённых здесь методов использования команд Linux, а может и знаете их все. В любом случае, приглашаем вас поделиться вашими любимыми приёмами в комментариях.
Командная строка Linux для начинающих
В этом разделе мы собираемся создать несколько реальных файлов для работы. Чтобы избежать случайного захвата любых ваших реальных файлов, мы собираемся начать с создания нового каталога, вдали от вашей домашней папки, который будет служить более безопасной средой для экспериментов:
mkdir / tmp / tutorial
cd / tmp / учебник
Обратите внимание на использование абсолютного пути, чтобы убедиться, что мы создали каталог tutorial внутри / tmp .Без косой черты в начале команда mkdir
попытается найти каталог tmp внутри текущего рабочего каталога, а затем попытается создать внутри него каталог tutorial . Если он не может найти каталог tmp , команда завершится ошибкой.
Если вы не догадались, mkdir
— это сокращение от « m a k e dir ectory». Теперь, когда мы в безопасности в нашей тестовой области (дважды проверьте с помощью pwd
, если вы не уверены), давайте создадим несколько подкаталогов:
mkdir dir1 dir2 dir3
В этой команде есть несколько отличий.До сих пор мы видели только команды, которые работают сами по себе ( cd
, pwd
) или имеют один элемент после ( cd /
, cd ~ / Desktop
). Но на этот раз мы добавили три вещи после команды mkdir
. Эти вещи называются параметрами или аргументами , и разные команды могут принимать разное количество аргументов. Команда mkdir
ожидает по крайней мере один аргумент, тогда как команда cd
может работать с нулем или единицей, но не более.Посмотрите, что произойдет, если вы попытаетесь передать команде неправильное количество параметров:
mkdir
cd / etc ~ / Рабочий стол
Вернуться в наши новые каталоги. Приведенная выше команда создаст три новых подкаталога внутри нашей папки. Давайте посмотрим на них с помощью команды ls
( l i s t):
ls
Если вы выполнили несколько последних команд, ваш терминал должен выглядеть примерно так:
Обратите внимание, что mkdir
создал все папки в одном каталоге.Это не создавало dir3 внутри dir2 внутри dir1 или любую другую вложенную структуру. Но иногда бывает удобно сделать именно это, и у mkdir
есть способ:
mkdir -p dir4 / dir5 / dir6
ls
На этот раз вы увидите, что в список добавлено только dir4 , потому что dir5 находится внутри него, а dir6 находится внутри него.Позже мы установим полезный инструмент для визуализации структуры, но у вас уже есть достаточно знаний, чтобы это подтвердить:
cd dir4
ls
cd dir5
ls
CD ../..
Используемый нами «-p» называется опцией или переключателем (в данном случае это означает «также создать каталоги p arent»). Параметры используются для изменения способа работы команды, позволяя одной команде вести себя по-разному.К сожалению, из-за причуд истории и человеческой природы параметры могут принимать разные формы в разных командах. Вы часто будете видеть их как отдельные символы, которым предшествует дефис (как в этом случае), или как более длинные слова, которым предшествуют два дефиса. Односимвольная форма позволяет комбинировать несколько параметров, хотя не все команды допускают это. И что еще больше запутывает ситуацию, некоторые команды вообще не идентифицируют свои параметры четко, независимо от того, является ли что-то одним из вариантов, определяется исключительно порядком аргументов! Вам не нужно беспокоиться обо всех возможностях, просто знайте, что варианты существуют, и они могут принимать разные формы.Например, все следующие слова означают одно и то же:
# Не вводите их, они здесь только для демонстрационных целей.
mkdir --parents --verbose dir4 / dir5
mkdir -p --verbose dir4 / dir5
mkdir -p -v каталог4 / каталог5
mkdir -pv dir4 / dir5
Теперь мы знаем, как создать несколько каталогов, просто передав их в качестве отдельных аргументов команде mkdir
. Но предположим, что мы хотим создать каталог с пробелом в имени? Давайте попробуем:
mkdir другая папка
ls
Вам, вероятно, даже не нужно было вводить ее, чтобы угадать, что произойдет: две новые папки, одна называется , другая , а третья называется папка .Если вы хотите работать с пробелами в именах каталогов или файлов, вам нужно экранировать их . Не волнуйтесь, из тюрьмы никто не вырвется; экранирование — это вычислительный термин, который относится к использованию специальных кодов, чтобы сообщить компьютеру, что нужно обрабатывать определенные символы иначе, чем обычно. Введите следующие команды, чтобы опробовать различные способы создания папок с пробелами в имени:
mkdir "папка 1"
mkdir 'папка 2'
папка mkdir \ 3
mkdir "папка 4" "папка 5"
mkdir -p "папка 6" / "папка 7"
ls
Хотя командную строку можно использовать для работы с файлами и папками с пробелами в именах, необходимость экранировать их кавычками или обратной косой чертой немного усложняет задачу.Часто можно сказать человеку, который много использует командную строку, просто по именам файлов: они будут использовать буквы и цифры и использовать подчеркивания («_») или дефисы («-») вместо пробелов.
Создание файлов с использованием перенаправления
Наша демонстрационная папка начинает наполняться каталогами, но в них не хватает файлов. Давайте исправим это, перенаправив вывод команды таким образом, чтобы вместо вывода на экран он попал в новый файл. Во-первых, напомните себе, что сейчас показывает команда ls
:
ls
Предположим, мы хотим записать вывод этой команды в виде текстового файла, который мы можем просмотреть или изменить дальше.Все, что нам нужно сделать, это добавить символ «больше» («>») в конец нашей командной строки, за которым следует имя файла для записи:
ls> output.txt
На этот раз на экран ничего не выводится, потому что вместо этого вывод перенаправляется в наш файл. Если вы просто запустите ls
самостоятельно, вы увидите, что файл output.txt был создан. Мы можем использовать команду cat
, чтобы посмотреть ее содержимое:
cat output.текст
Хорошо, значит, это не точно , что отображалось на экране ранее, но оно содержит все те же данные, и это в более удобном формате для дальнейшей обработки. Давайте посмотрим на другую команду, echo
:
echo "Это тест"
Да, echo
просто снова выводит свои аргументы (отсюда и название). Но совместите его с переадресацией, и вы получите способ легко создавать небольшие тестовые файлы:
echo "This is a test"> test_1.текст
echo "Это второй тест"> test_2.txt
echo "Это третий тест"> test_3.txt
ls
Вы должны cat
каждый из этих файлов, чтобы отметить их содержимое. Но cat
— это больше, чем просто программа для просмотра файлов — его название происходит от «con cat enate», что означает «связывать вместе». Если вы передадите более одного файла в cat
, он выведет каждое из них, одно за другим, в виде единого блока текста:
cat test_1.txt test_2.txt test_3.текст
Если вы хотите передать несколько имен файлов одной команде, есть несколько полезных сочетаний клавиш, которые могут сэкономить вам много времени при вводе, если файлы имеют похожие имена. Знак вопроса («?») Может использоваться для обозначения «любого отдельного символа» в имени файла. Звездочка («*») может использоваться для обозначения «нуля или более символов». Иногда их называют «подстановочными знаками». Несколько примеров могут помочь, все следующие команды делают одно и то же:
cat test_1.txt test_2.txt test_3.txt
cat test _ ?. txt
кошка test_ *
Требуется больше экранирования
Как вы могли догадаться, эта возможность также означает, что вам нужно экранировать имена файлов с помощью? или символы * в них тоже. Обычно лучше избегать любых знаков препинания в именах файлов, если вы хотите управлять ими из командной строки.
Если вы посмотрите на результат ls
, вы заметите, что единственные файлы или папки, начинающиеся с «t», — это три тестовых файла, которые мы только что создали, так что вы можете даже упростить эту последнюю команду до cat t *
, что означает «объединить все файлы, имена которых начинаются с t и за которыми следует ноль или более других символов».Давайте воспользуемся этой возможностью, чтобы объединить все наши файлы в один новый файл, а затем просмотреть его:
cat t * >common.txt
кот комбинированный.txt
Как вы думаете, что произойдет, если мы выполним эти две команды во второй раз? Будет ли компьютер жаловаться, потому что файл уже существует? Добавит ли он текст в файл, чтобы он содержал две копии? Или полностью заменит? Попробуйте посмотреть, что произойдет, но чтобы не вводить команды снова, вы можете использовать клавиши Стрелка вверх, и Стрелка вниз, , чтобы перемещаться вперед и назад по истории команд, которые вы использовали.Нажмите Стрелка вверх пару раз, чтобы перейти к первому cat
, и нажмите Введите , чтобы запустить его, затем повторите то же самое еще раз, чтобы перейти ко второму.
Как видите, файл выглядит так же. Это не потому, что его оставили нетронутым, а потому, что оболочка очищает все содержимое файла перед тем, как записать в него выходные данные вашей команды cat
. Из-за этого вы должны быть особенно осторожны при использовании перенаправления, чтобы случайно не перезаписать нужный файл.Если вы все же хотите добавить, а не заменить содержимое файлов, удвойте знак «больше»:
cat t * >> Commander.txt
echo "Я добавил строку!" >> Combined.txt
кот комбинированный.txt
Повторите первую cat
еще несколько раз, используя для удобства Стрелку вверх и, возможно, добавьте еще несколько произвольных команд echo
, пока ваш текстовый документ не станет настолько большим, что он не поместится полностью. терминал сразу, когда вы используете cat
для его отображения.Чтобы увидеть весь файл, нам теперь нужно использовать другую программу, которая называется пейджером (потому что она отображает ваш файл по одной «странице»). Старый стандартный пейджер назывался или
, потому что он помещает строку текста внизу каждой страницы с надписью «-More-», чтобы указать, что вы еще не прочитали все. В наши дни есть гораздо лучший пейджер, который вы должны использовать вместо этого: поскольку он заменяет на
, программисты решили назвать его минус
.
за вычетом комбинированного.txt
При просмотре файла через минус
вы можете использовать клавиши Стрелка вверх , Стрелка вниз , Page Up , Page Down , Home и End для перемещения по файлу. Дайте им возможность увидеть разницу между ними. По завершении просмотра файла нажмите q – q uit минус
и вернитесь в командную строку.
Примечание о регистре
Системы Unix чувствительны к регистру, то есть они учитывают «A.txt »и« a.txt »как два разных файла. Если бы вы запустили следующие строки, вы бы получили три файла:
echo "Нижний регистр"> a.txt
echo "Верхний регистр"> A.TXT
echo "Смешанный регистр"> A.txt
Как правило, следует избегать создания файлов и папок, имена которых зависят только от регистра. Это не только поможет избежать путаницы, но и предотвратит проблемы при работе с разными операционными системами. Windows, например, нечувствительна к регистру , поэтому она будет рассматривать все три имени файла, указанные выше, как один файл, что может вызвать потерю данных или другие проблемы.
У вас может возникнуть соблазн просто нажать клавишу Caps Lock и использовать верхний регистр для всех имен файлов. Но подавляющее большинство команд оболочки пишутся в нижнем регистре, поэтому вам часто придется включать и выключать его по мере ввода. Большинство опытных пользователей командной строки, как правило, в основном придерживаются строчных имен для своих файлов и каталогов, чтобы им редко приходилось беспокоиться о конфликтах имен файлов или о том, какой регистр использовать для каждой буквы в имени.
Хорошая практика именования
Когда вы учитываете как чувствительность к регистру, так и экранирование, хорошее практическое правило — сохранять имена файлов в нижнем регистре, только с буквами, цифрами, подчеркиванием и дефисом.Для файлов обычно также есть точка и несколько символов в конце, чтобы указать тип файла (называемое «расширением файла»). Это руководство может показаться ограничительным, но если вы в конечном итоге будете использовать командную строку с какой-либо частотой, вы будете рады, что придерживались этого шаблона.
полезных команд для Ubuntu Linux
Полезные команды для Ubuntu Linux
sudo <команда>
sudo = суперпользователь-DO
Выполнить команду от имени пользователя root
судо su
su = суперпользователь / пользователь переключателя
Чтобы открыть оболочку от имени другого пользователя (включая root)
su — user2
Для переключения пользователя на user2
whoami
Чтобы получить текущее имя пользователя
chmod
изменяет файловый режим (разрешение) каждого заданного файла / папки
sudo chmod 777 abc.sh
чавн
изменить владельца файла и группу
sudo chown имя пользователя: каталог группы
рекурсивно изменять все файлы и папки
sudo chown -R имя пользователя: каталог группы
лс
Вывести содержимое папки
ls -la
список в длинном списке мода + скрытые файлы
мкдир
Для создания нового каталога
путь компакт-диска
, чтобы сменить каталог.
cd / home / techbrij / projects
перейти в родительский каталог
кд ..
для перехода в домашний каталог пользователя
кд ~
сенсорный
создать файл, если он не существует, обновить отметку времени, если файл существует.
коснитесь myfilename.sh
кот
отображает содержимое файла
кот pq.txt
отображает содержимое файла с номерами строк
кот -n pq.txt
объединить два или более простых файла
кот стр.txt q.txt >> pq.txt
cp [опции] источник назначения
для копирования файлов и каталогов.
cp myFile.txt / home / techbrij /
рекурсивная копия (включая скрытые файлы):
cp -R devFolder bakFolder
mv [параметры] источник назначения
Переместить все текстовые файлы в текущем каталоге в подкаталог bak
мВ *.txt бак
Переименовать каталог brij в techbrij:
мв brij techbrij
хвост [параметры] [имена файлов]
По умолчанию, tail возвращает последние десять строк файла
хвост techbrij.txt
для печати последних 15 строк
хвост -15 техбрий.txt
дата
распечатать текущую дату и время
для установки даты и времени
date —set = ’21 мая 2016 13:57 ‘
л.с.
показывает все процессы, связанные с текущим пользователем и сеансом терминала
Чтобы получить более полное представление о процессах
пс, доп.
Для поиска в списке процессов
ps -ef | grep searchkeyword
ps -ef | узел grep
пгреп
для получения PID процесса
pgrep bash
pgrep -f ‘ssh пример.com ‘
убить
, чтобы убить процесс
убить -9 2405
kill -9 ‘pgrep ping’
nohup имя-команды и
Для запуска команды в фоновом режиме
nohup myscript.sh &
кв.
apt = Advanced Package Tool
Для установки myPackage
apt-get install myPackage
Для обновления пакетов
apt-get обновление
деготь
Для создания tar.gz архивный файл
tar cvzf Myfile.tar.gz / home / techbrij
Чтобы распаковать файл tar или распаковать файл tar.gz
tar -xvf Myfile.tar
для вывода содержимого файла tar.gz.
tar -tvf Myfile.tar.gz
ifconfig
показать информацию о сети
iwconfig
показать информацию о беспроводной сети
SSH
Для безопасного входа в удаленные системы
удаленный_хост SSH
ssh имя_удаленного_пользователя @ удаленный_узел
ssh -p номер_порта удаленный_хост
Для запуска агента ssh и установки переменной среды
eval «$ (ssh-agent -s)»
ssh-add ~ /.ssh / id_rsa
Для безопасного копирования файлов
scp исходный_файл user @ destination_host: destination_path
scp techbrij.txt [email protected]: / home / techbrij
, если доступ к узлу назначения уже настроен
scp techbrij.txt xxx.xxx.xxx.xxx:~/
для рекурсивного копирования папки
scp -r назначение папки
scp -r / home / techbrij / root @ xxx.xxx.xxx.xxx:~/
Вставить в терминал
Shift + Insert
Открыть терминал
Ctrl + Alt + T
Для переключения приложений
Alt + Tab
Переключение между окнами из одного приложения
Alt + `
Всплывающее окно команд
Alt + F2
Заблокировать экран
Ctrl + Alt + L
прозрачный
Очищает текущий экран.
который <имя команды>
Найти путь приложения
который svn
какой узел
наутилус
Открыть проводник
история
печатает историю выполненных команд в терминале
pwd
pwd = распечатать рабочий каталог
md5sum
Для проверки целостности файлов
md5sum myfilename.deb
.10 основных команд Linux, которые должен помнить каждый новичок в Linux — LinuxAndUbuntu
Linux оказывает большое влияние на нашу жизнь. По крайней мере, на вашем телефоне Android установлено ядро Linux . Однако начало работы с Linux впервые доставит вам дискомфорт. Потому что в Linux вам обычно следует использовать команды терминала, а не просто щелкать значок запуска (как вы это делали в Windows). Но не волнуйтесь, мы дадим вам , 10 основных команд Linux, и важные команды, которые помогут вам начать работу.
10 основных команд Linux, которые помогут новичкам приступить к работе
Когда мы говорим о командах Linux, на самом деле мы говорим о самой системе Linux. Эти 10 базовых команд Linux не сделают вас гением или экспертом по Linux, а помогут начать работу с Linux. Это поможет новичкам Linux выполнять повседневные базовые задачи в Linux с помощью этих основных команд Linux или, я бы сказал, лучших команд Linux (из-за их использования).
Итак, давайте начнем со списка из 10 основных команд Linux:
1.sudo
Этот SuperUserDo — самая важная команда, которую будут использовать новички в Linux. Эта команда sudo нужна каждой отдельной команде, для которой требуется разрешение root. Вы можете использовать sudo перед каждой командой, требующей прав root —
$ sudo su
2. ls (список)
Как и в случае с другим, вы часто хотите видеть что-нибудь в своем каталоге. С помощью команды list терминал покажет вам все файлы и папки каталога, в котором вы работаете.Допустим, я нахожусь в папке / home и хочу видеть каталоги и файлы в / home.
/ дом $ ls ls in / home возвращает следующее - имад потеряно + найдено
3. CD
Смена каталога (cd) — это основная команда, которая всегда используется в терминале. Это одна из самых основных команд Linux. Использовать это просто. Просто введите имя папки, в которую вы хотите перейти из текущего каталога. Если вы хотите подняться, просто поставьте двойные точки (..) в качестве параметра.
Допустим, я нахожусь в каталоге / home и хочу переместиться в каталог usr, который всегда находится в / home. Вот как я могу использовать команды cd —
/ home $ cd usr / home / usr $
4. мкдир
Просто смена каталога еще не завершена. Иногда вам нужно создать новую папку или подпапку. Для этого вы можете использовать команду mkdir. Просто укажите имя папки после команды mkdir в вашем терминале.
~ $ mkdir имя папки
5.cp
копирование и вставка — важная задача, которую нам нужно выполнить для организации наших файлов. Использование cp поможет вам скопировать и вставить файл из терминала. Сначала вы определяете файл, который хотите скопировать, и вводите место назначения для вставки файла.
$ cp src des
Примечание. Если вы копируете файлы в каталог, требующий прав root для любого нового файла, вам нужно будет использовать команду sudo .
6.RM
rm — это команда для удаления вашего файла или даже вашего каталога. Вы можете использовать -f, если для удаления файла требуются права root. А также вы можете использовать -r для рекурсивного удаления для удаления вашей папки.
$ rm myfile.txt
7. apt-get
Эта команда отличается от дистрибутива к дистрибутиву. В дистрибутивах Linux на основе Debian для установки, удаления и обновления любого пакета используется менеджер пакетов Advanced Packaging Tool (APT). Команда apt-get поможет вам установить программное обеспечение, необходимое для работы в вашем Linux.Это мощный инструмент командной строки, который может выполнять установку, обновление и даже удаление вашего программного обеспечения.В других дистрибутивах, таких как Fedora, Centos, есть разные менеджеры пакетов. В Fedora было yum , а теперь dnf .
$ sudo apt-get update $ sudo dnf update
8. grep
Вам нужно найти файл, но вы не помните его точное местоположение или путь. grep поможет вам решить эту проблему. Вы можете использовать команду grep, чтобы найти файл по заданным ключевым словам.
$ пользователь grep / etc / passwd
9. кот
Как пользователю, вам часто нужно просматривать текст или код из вашего скрипта. Опять же, одна из основных команд Linux — это команда cat. Он покажет вам текст внутри вашего файла.
$ кошка CMakeLists.txt
10. poweroff
И последний — poweroff . Иногда вам нужно poweroff прямо с вашего терминала. Эта команда выполнит задание.Не забудьте добавить sudo в начало команды, так как для выполнения poweroff ему нужны права root.
$ судо poweroff
Заключение
Как я уже упоминал в начале статьи, эти 10 базовых команд Linux не сделают вас сразу же фанатом Linux. Это поможет вам начать использовать Linux на этой ранней стадии. С помощью этих базовых команд Linux начните использовать Linux и поставьте цель изучать 1-3 команды ежедневно. Итак, все для этой статьи.Надеюсь, это вам помогло. Поделитесь с нами интересными и полезными командами в разделе комментариев ниже и не забудьте поделиться этой статьей со своими друзьями.
.команд Linux — LinuxConfig.org
- Ubuntu
- Назад
- Ubuntu 20.04
- Ubuntu 18.04
- Debian
- RHEL / CentOS
- Fedora
- Кали
- Домой
- Linux Вакансии
- Форумы
- Учебники по Linux
- Системный администратор
- Программирование / сценарии
- Мультимедиа
- Команды Linux
Искать…
- Детали
- Любос Рендек
- Команды Linux
- 1. Введение
- 1.1. Кому следует прочитать это руководство
- 1.2. Что такое командная строка GNU / Linux
- 1.3. Что такое команды Linux
- 2. Основные команды Linux для файловой системы и навигации
- 2.1. Аргументы, опции и параметры командной строки
- 2.2. Навигация по файловой системе
- 2.3. Вывод содержимого каталога
- 2.4. Создание каталога
- 2.5. Создание файлов и чтение содержимого файла
- 2.6. Переименование или перемещение файлов и каталогов
- 2.7. Копирование файлов и каталогов
- 2.8. Удалить файлы и каталоги
- 2.9. Поиск файлов или каталогов
- 3. Основные команды администрирования Linux
- 3.1. Выполнение команд с правами администратора
- 3.2. Установка программного обеспечения
- 3.3. Проверка использования дискового пространства
- 3.4. Сжатие файлов и каталогов
- 3.5. Выключение и перезагрузка
- 4. Расширенные команды Linux
- 4.1. Устранение проблем с Интернетом / сетевым подключением
- 4.2. Смена прав и прав собственности
- 4.3. Проверьте версию ядра системы
- 1. Введение