как узнать текущий каталог в линукс
Определите ваш текущий рабочий каталог в Linux с помощью команды pwd
Главное меню » Операционная система Linux » Определите ваш текущий рабочий каталог в Linux с помощью команды pwd
Что такое текущий рабочий каталог
Текущий рабочий каталог – это каталог, в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
По умолчанию при входе в систему Linux в качестве текущего рабочего каталога указывается домашний каталог. Чтобы изменить рабочий каталог, используйте команду cd. Например, чтобы изменить текущий рабочий каталог /tmp, введите:
В некоторых дистрибутивах Linux, или если у вас настроено приглашение bash или zsh, путь к вашему текущему рабочему каталогу может быть показан в приглашении оболочки.
Команда pwd
Команда pwd обозначает печать рабочего каталога. Это одна из самых основных и часто используемых команд в Linux. После выполнения команда напечатает полный путь вашего текущего рабочего каталога.
Как видно из вывода ниже, встроенная оболочка имеет приоритет над автономным исполняемым файлом и будет использоваться всякий раз, когда вы печатаете pwd. Если вы хотите использовать автономную команду pwd, вам нужно будет указать полный путь к бинарному файлу /bin/pwd.
Как найти свой текущий рабочий каталог
Чтобы узнать, в каком каталоге вы сейчас находитесь, введите pwd в свой терминал:
Команда отобразит путь вашего текущего рабочего каталога:
Команда выполняет печать PWD переменной среды. Вы получите тот же вывод, если вы наберете:
Команда pwd может принимать только два аргумента:
Теперь, если вы перейдете в каталог /tmp/symlink и введете pwd в свой терминал:
Вывод покажет, что ваш текущий рабочий каталог /tmp/symlink.
Ваш текущий рабочий каталог – /tmp/directory это каталог, на который указывает символическая ссылка.
Заключение
К настоящему времени вы должны хорошо понимать, что является текущим рабочим каталогом и как использовать команду pwd, чтобы найти ваш текущий рабочий каталог.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Зачем нужна команда pwd и что такое текущая рабочая директория
Из этой статьи вы узнаете, как определить текущую рабочую директорию (current working directory) с помощью команды pwd.
Что такое текущая рабочая директория
Текущая рабочая директория — директория, в которой пользователь работает в данный момент. При взаимодействии с командной строкой вы всегда находитесь внутри директории.
По умолчанию, когда вы запускаете операционную систему Linux, текущим рабочим каталогом является домашняя директория. Изменить рабочую директорию можно с помощью команды cd.
Например, чтобы изменить текущую рабочую директорию на /tmp, используйте такую команду:
Путь к текущей рабочей директории может отображаться в оболочке командной строки.
Команда pwd
Команда pwd выводит текущую рабочую директорию. Это одна из базовых и самых популярных команд в Linux. При вызове pwd выводится полный путь к текущей рабочей директории.
Команда pwd встроена в большинство современных командных оболочек, в том числе в Bash. Её поведение отличается от выполнения /bin/pwd. С помощью команды type можно получить все места, где есть pwd:
Как показывает вывод, встроенная команда pwd имеет более высокий приоритет по сравнению с /bin/pwd. Поэтому она используется всякий раз, когда вы вводите в командую строку pwd. Если вы хотите использовать файл /bin/pwd, нужно указать в командной строке полный путь до него.
Как найти текущую рабочую директорию
Чтобы понять, в какой директории вы работаете в данный момент, введите в терминале pwd. Вывод может выглядеть так (название директории может отличаться):
Всё, что делает команда pwd — выводит значение переменной окружения PWD. Такой же вывод получится, если ввести в терминале:
Команда pwd принимает только два аргумента:
По умолчанию pwd ведёт себя так, как будто применена опция -L.
Чтобы понять, как работает аргумент -P, создадим директорию и симлинк, указывающий на эту директорию.
Когда вы зайдёте в директорию /tmp/symlink и введёте команду pwd, вывод будет таким:
Симлинк (англ. Symlink, symbolic link) — символическая ссылка. Этим термином обозначают файл, в котором содержится абсолютный или относительный путь к другому файлу или директории.
То есть получаем директорию, на которую указывает симлинк.
Заключение
Текущая рабочая директория — директория, из которой вы вызываете команды в терминале. Чтобы отобразить текущую рабочую директорию, нужно использовать команду pwd. Если у вас остались вопросы, добро пожаловать в комментарии.
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
фЕЛХЭЙК ЛБФБМПЗ
жБКМПЧБС УЙУФЕНБ ОЕ ФПМШЛП УЙУФЕНБФЙЪЙТХЕФ ДБООЩЕ, ОП Й СЧМСЕФУС ПУОПЧПК НЕФБЖПТЩ «ТБВПЮЕЗП НЕУФБ» Ч Linux. лБЦДБС ЧЩРПМОСЕНБС РТПЗТБННБ «ТБВПФБЕФ» Ч УФТПЗП ПРТЕДЕМЈООПН ЛБФБМПЗЕ ЖБКМПЧПК УЙУФЕНЩ. фБЛПК ЛБФБМПЗ ОБЪЩЧБЕФУС ФЕЛХЭЙН ЛБФБМПЗПН, НПЦОП РТЕДУФБЧМСФШ, ЮФП РТПЗТБННБ ЧП ЧТЕНС ТБВПФЩ «ОБИПДЙФУС» ЙНЕООП Ч ЬФПН ЛБФБМПЗЕ, ЬФП ЕЈ «ТБВПЮЕЕ НЕУФП». ч ЪБЧЙУЙНПУФЙ ПФ ФЕЛХЭЕЗП ЛБФБМПЗБ НПЦЕФ НЕОСФШУС РПЧЕДЕОЙЕ РТПЗТБННЩ: ЪБЮБУФХА РТПЗТБННБ ВХДЕФ РП ХНПМЮБОЙА ТБВПФБФШ У ЖБКМБНЙ, ТБУРПМПЦЕООЩНЙ ЙНЕООП Ч ФЕЛХЭЕН ЛБФБМПЗЕ — ДП ОЙИ ПОБ «ДПФСОЕФУС» Ч РЕТЧХА ПЮЕТЕДШ. фЕЛХЭЙК ЛБФБМПЗ ЕУФШ Х МАВПК РТПЗТБННЩ, Ч ФПН ЮЙУМЕ Й Х ЛПНБОДОПК ПВПМПЮЛЙ (shell) РПМШЪПЧБФЕМС. рПУЛПМШЛХ ЧЪБЙНПДЕКУФЧЙЕ РПМШЪПЧБФЕМС У УЙУФЕНПК ПВСЪБФЕМШОП ПРПУТЕДПЧБОП ЛПНБОДОПК ПВПМПЮЛПК, НПЦОП ЗПЧПТЙФШ П ФПН, ЮФП РПМШЪПЧБФЕМШ «ОБИПДЙФУС» Ч ФПН ЛБФБМПЗЕ, ЛПФПТЩК Ч ДБООЩК НПНЕОФ СЧМСЕФУС ФЕЛХЭЙН ЛБФБМПЗПН ЕЗП ЛПНБОДОПК ПВПМПЮЛЙ.
чУЕ ЛПНБОДЩ, ПФДБЧБЕНЩЕ РПМШЪПЧБФЕМЕН РТЙ РПНПЭЙ shell, ОБУМЕДХАФ ФЕЛХЭЙК ЛБФБМПЗ shell, Ф. Е. «ТБВПФБАФ» Ч ФПН ЦЕ ЛБФБМПЗЕ. рП ЬФПК РТЙЮЙОЕ РПМШЪПЧБФЕМА ЧБЦОП ЪОБФШ ФЕЛХЭЙК ЛБФБМПЗ shell. дМС ЬФПЗП УМХЦЙФ ХФЙМЙФБ pwd :
пФОПУЙФЕМШОЩК РХФШ УФТПЙФУС ФПЮОП ФБЛ ЦЕ, ЛБЛ Й РПМОЩК — РЕТЕЮЙУМЕОЙЕН ЮЕТЕЪ « / » ЧУЕИ ОБЪЧБОЙК ЛБФБМПЗПЧ, ЧУФТЕФЙЧЫЙИУС РТЙ ДЧЙЦЕОЙЙ Л ЙУЛПНПНХ ЛБФБМПЗХ ЙМЙ ЖБКМХ. нЕЦДХ РПМОЩН РХФЈН Й ПФОПУЙФЕМШОЩН ЕУФШ ФПМШЛП ПДОП УХЭЕУФЧЕООПЕ ТБЪМЙЮЙЕ: ПФОПУЙФЕМШОЩК РХФШ ОБЮЙОБЕФУС ПФ ФЕЛХЭЕЗП ЛБФБМПЗБ, Ч ФП ЧТЕНС ЛБЛ РПМОЩК РХФШ ЧУЕЗДБ ОБЮЙОБЕФУС ПФ ЛПТОЕЧПЗП ЛБФБМПЗБ. пФОПУЙФЕМШОЩК РХФШ МАВПЗП ЖБКМБ ЙМЙ ЛБФБМПЗБ Ч ЖБКМПЧПК УЙУФЕНЕ НПЦЕФ ЙНЕФШ МАВХА ЛПОЖЙЗХТБГЙА: ЮФПВЩ ДПВТБФШУС ДП ЙУЛПНПЗП ЖБКМБ НПЦОП ДЧЙЗБФШУС ЛБЛ РП ОБРТБЧМЕОЙА Л ЛПТОЕЧПНХ ЛБФБМПЗХ, ФБЛ Й ПФ ОЕЗП (УН. ТБЪДЕМ Filesystem_use.рЕТЕНЕЭЕОЙЕ РП ДЕТЕЧХ ЛБФБМПЗПЧ). Linux ТБЪМЙЮБЕФ РПМОЩК Й ПФОПУЙФЕМШОЩК РХФЙ ПЮЕОШ РТПУФП: ЕУМЙ ЙНС ПВЯЕЛФБ ОБЮЙОБЕФУС ОБ « / » — ЬФП РПМОЩК РХФШ, Ч МАВПН ДТХЗПН УМХЮБЕ — ПФОПУЙФЕМШОЩК.
пФДЕМЙФШ РХФШ Л ЖБКМХ ПФ ЕЗП ЙНЕОЙ НПЦОП У РПНПЭША ЛПНБОД dirname Й basebane УППФЧЕФУФЧЕООП:
дПНБЫОЙК ЛБФБМПЗ
рПУЛПМШЛХ ЛБЦДЩК РПМШЪПЧБФЕМШ ТБУРПМБЗБЕФ УЧПЙН УПВУФЧЕООЩН ЛБФБМПЗПН Й РП ХНПМЮБОЙА ТБВПФБЕФ Ч ОЈН, ТЕЫБЕФУС ЪБДБЮБ ТБЪДЕМЕОЙС ЖБКМПЧ ТБЪОЩИ РПМШЪПЧБФЕМЕК. пВЩЮОП ДПУФХР ДТХЗЙИ РПМШЪПЧБФЕМЕК Л ЮХЦПНХ ДПНБЫОЕНХ ЛБФБМПЗХ ПЗТБОЙЮЕО: ОБЙВПМЕЕ ФЙРЙЮОБ УЙФХБГЙС, ЛПЗДБ РПМШЪПЧБФЕМЙ НПЗХФ ЮЙФБФШ УПДЕТЦЙНПЕ ЖБКМПЧ ДТХЗ ДТХЗБ, ОП ОЕ ЙНЕАФ РТБЧБ ЙИ ЙЪНЕОСФШ ЙМЙ ХДБМСФШ.
йОЖПТНБГЙС П ЛБФБМПЗЕ
юФПВЩ ЙНЕФШ ЧПЪНПЦОПУФШ ПТЙЕОФЙТПЧБФШУС Ч ЖБКМПЧПК УЙУФЕНЕ, ОХЦОП ЪОБФШ, ЮФП УПДЕТЦЙФУС Ч ЛБЦДПН ЛБФБМПЗЕ. ъБРПНОЙФШ ЧУА УФТХЛФХТХ ЖБКМПЧПК УЙУФЕНЩ ОЕЧПЪНПЦОП Й ОЕ ОХЦОП: Ч МАВПК НПНЕОФ НПЦОП РТПУНПФТЕФШ УПДЕТЦЙНПЕ МАВПЗП ЛБФБМПЗБ РТЙ РПНПЭЙ ХФЙМЙФЩ ls (УПЛТБЭЕОЙЕ ПФ БОЗМ. «list» — «УРЙУПЛ»):
нЕЖПДЙК ЙУРПМШЪПЧБМ ЛМАЮ-F, ЮФПВЩ ПФМЙЮБФШ ЖБКМЩ ПФ ЛБФБМПЗПЧ. рТЙ ОБМЙЮЙЙ ЬФПЗП ЛМАЮБ ls Ч ЛПОГЕ ЙНЕОЙ ЛБЦДПЗП ЛБФБМПЗБ УФБЧЙФ УЙНЧПМ « / », ЮФПВЩ РПЛБЪБФШ, ЮФП Ч ОЈН НПЦЕФ УПДЕТЦБФШУС ЮФП-ФП ЕЭЈ. ч ЧЩЧЕДЕООПН УРЙУЛЕ ОЕФ ОЙ ПДОПЗП ЖБКМБ — Ч ЛПТОЕЧПН ЛБФБМПЗЕ УПДЕТЦБФУС ФПМШЛП РПДЛБФБМПЗЙ.
лТПНЕ ФПЗП, нЕЖПДЙК ТЕЫЙМ РПМХЮЙФШ ВПМЕЕ РПДТПВОХА ЙОЖПТНБГЙА П УПДЕТЦЙНПН УЧПЕЗП ДПНБЫОЕЗП ЛБФБМПЗБ:
рЕТЕНЕЭЕОЙЕ РП ДЕТЕЧХ ЛБФБМПЗПЧ
рПМШЪПЧБФЕМШ НПЦЕФ ТБВПФБФШ У ЖБКМБНЙ ОЕ ФПМШЛП Ч УЧПЈН ДПНБЫОЕН ЛБФБМПЗЕ, ОП Й Ч ДТХЗЙИ ЛБФБМПЗБИ. ч ЬФПН УМХЮБЕ ВХДЕФ ХДПВОП УНЕОЙФШ ФЕЛХЭЙК ЛБФБМПЗ, Ф. Е. «РЕТЕНЕУФЙФШУС» Ч ДТХЗХА ФПЮЛХ ЖБКМПЧПК УЙУФЕНЩ. дМС УНЕОЩ ФЕЛХЭЕЗП ЛБФБМПЗБ ЛПНБОДОПК ПВПМПЮЛЙ ЙУРПМШЪХЕФУС ЛПНБОДБ cd (ПФ БОЗМ. «change directory» — «УНЕОЙФШ ЛБФБМПЗ»). лПНБОДБ cd РТЙОЙНБЕФ ПДЙО РБТБНЕФТ: ЙНС ЛБФБМПЗБ, Ч ЛПФПТЩК ОХЦОП РЕТЕНЕУФЙФШУС — УДЕМБФШ ФЕЛХЭЙН. лБЛ ПВЩЮОП, Ч ЛБЮЕУФЧЕ ЙНЕОЙ ЛБФБМПЗБ НПЦОП ЙУРПМШЪПЧБФШ РПМОЩК ЙМЙ ПФОПУЙФЕМШОЩК РХФШ.
уОБЮБМБ нЕЖПДЙК ТЕЫЙМ РЕТЕНЕУФЙФШУС Ч ЛБФБМПЗ « /home », Й РПУНПФТЕФШ, ЮФП ЕЭЈ ЕУФШ Ч ЬФПН ЛБФБМПЗЕ, ЛТПНЕ ЕЗП ДПНБЫОЕЗП ЛБФБМПЗБ. пО ПВОБТХЦЙМ ЕЭЈ ПДЙО ЛБФБМПЗ — « shogun », Й ДПЗБДБМУС, ЮФП ЬФП ДПНБЫОЙК ЛБФБМПЗ зХТЕЧЙЮБ, ЧИПДОПЕ ЙНС ЛПФПТПЗП — « shogun ». лТПНЕ ФПЗП, ПО ЪБНЕФЙМ, ЮФП ЙЪНЕОЙМУС ЧЙД РТЙЗМБЫЕОЙС ЛПНБОДОПК УФТПЛЙ (РПДУЛБЪЛЙ shell) — УМПЧП « methody » ЪБНЕОЙМПУШ ОБ « home ». ч РТЙЗМБЫЕОЙЙ ЛПНБОДОПК УФТПЛЙ ЮБУФП ХЛБЪЩЧБЕФУС ФЕЛХЭЙК ЛБФБМПЗ shell — ЮФПВЩ РПМШЪПЧБФЕМА МЕЗЮЕ ВЩМП ПТЙЕОФЙТПЧБФШУС, Ч ЛБЛПН ЛБФБМПЗЕ ПО «ОБИПДЙФУС» Ч ДБООЩК НПНЕОФ.
». рПЬФПНХ ЮФПВЩ РЕТЕКФЙ Ч ДПНБЫОЙК ЛБФБМПЗ ЙЪ МАВПЗП ДТХЗПЗП, ДПУФБФПЮОП ЧЩРПМОЙФШ ЛПНБОДХ « cd
». рТЙ ЙУРПМОЕОЙЙ ЛПНБОДЩ УЙНЧПМ «
» ВХДЕФ ЪБНЕОЈО ЛПНБОДОПК ПВПМПЮЛПК ОБ РПМОЩК РХФШ Л ДПНБЫОЕНХ ЛБФБМПЗХ РПМШЪПЧБФЕМС.
рТЙ РПНПЭЙ УЙНЧПМБ «
» НПЦОП УУЩМБФШУС Й ОБ ДПНБЫОЙЕ ЛБФБМПЗЙ ДТХЗЙИ РПМШЪПЧБФЕМЕК: «
» Й ДЕМБЕФ ФЕЛХЭЙН ЛБФБМПЗПН ДПНБЫОЙК ЛБФБМПЗ РПМШЪПЧБФЕМС.
уПЪДБОЙЕ ЛБФБМПЗПЧ
рПМШЪПЧБФЕМШ, ЛПОЕЮОП, ОЕ ДПМЦЕО ИТБОЙФШ ЧУЕ УЧПЙ ЖБКМЩ Ч ПДОПН ЛБФБМПЗЕ. ч ДПНБЫОЕН ЛБФБМПЗЕ РПМШЪПЧБФЕМС, ЛБЛ Й Ч МАВПН ДТХЗПН, НПЦОП УПЪДБЧБФШ УЛПМШ ХЗПДОП НОПЗП РПДЛБФБМПЗПЧ, Ч ОЙИ — УЧПЙ РПДЛБФБМПЗЙ Й Ф. Д. дТХЗЙНЙ УМПЧБНЙ, РПМШЪПЧБФЕМА РТЙОБДМЕЦЙФ ЖТБЗНЕОФ (РПДДЕТЕЧП) ЖБКМПЧПК УЙУФЕНЩ, ЛПТОЕН ЛПФПТПЗП СЧМСЕФУС ДПНБЫОЙК ЛБФБМПЗ РПМШЪПЧБФЕМС.
нЕЖПДЙК ТЕЫЙМ ОБЧЕУФЙ ОЕЛПФПТЩК РПТСДПЛ Ч УЧПЈН ДПНБЫОЕН ЛБФБМПЗЕ Й РПНЕУФЙФШ ЧУЕ ЖБКМЩ У РТЙНЕТБНЙ Й ХРТБЦОЕОЙСНЙ Ч ПФДЕМШОПН РПДЛБФБМПЗЕ — « examples ». фЕРЕТШ, УПЪДБЧ ЛБФБМПЗ, ОХЦОП РЕТЕНЕУФЙФШ Ч ОЕЗП ЧУЕ ЖБКМЩ У РТЙНЕТБНЙ.
лПРЙТПЧБОЙЕ Й РЕТЕНЕЭЕОЙЕ ЖБКМПЧ
рЕТЕНЕЭЕОЙЕ ЖБКМБ ЧОХФТЙ ПДОПК ЖБКМПЧПК УЙУФЕНЩ Ч ДЕКУФЧЙФЕМШОПУФЙ ТБЧОПЪОБЮОП ЕЗП РЕТЕЙНЕОПЧБОЙА: ДБООЩЕ УБНПЗП ЖБКМБ РТЙ ЬФПН ПУФБАФУС ОБ ФЕИ ЦЕ УЕЛФПТБИ ДЙУЛБ, ЙЪНЕОСАФУС ЛБФБМПЗЙ, Ч ЛПФПТЩИ РТПЙЪПЫМП РЕТЕНЕЭЕОЙЕ. рЕТЕНЕЭЕОЙЕ РТЕДРПМБЗБЕФ ХДБМЕОЙЕ УУЩМЛЙ ОБ ЖБКМ ЙЪ ФПЗП ЛБФБМПЗБ, ПФЛХДБ ПО РЕТЕНЕЭЈО, Й ДПВБЧМЕОЙЕ УУЩМЛЙ ОБ ЬФПФ УБНЩК ЖБКМ Ч ФПФ ЛБФБМПЗ, ЛХДБ ПО РЕТЕНЕЭЈО. ч ТЕЪХМШФБФЕ ЙЪНЕОСЕФУС РПМОПЕ ЙНС ЖБКМБ — РПМОЩК РХФШ, Ф. Е. РПМПЦЕОЙЕ ЖБКМБ Ч ЖБКМПЧПК УЙУФЕНЕ.
йОПЗДБ ФТЕВХЕФУС УПЪДБФШ ЛПРЙА ЖБКМБ: ДМС ВпМШЫЕК УПИТБООПУФЙ ДБООЩИ, ДМС ФПЗП, ЮФПВЩ УПЪДБФШ НПДЙЖЙГЙТПЧБООХА ЧЕТУЙА ЖБКМБ Й Ф. Р. ч Linux ДМС ЬФПЗП РТЕДОБЪОБЮЕОБ ХФЙМЙФБ cp (УПЛТБЭЕОЙЕ ПФ БОЗМ. «copy» — «ЛПРЙТПЧБФШ»). хФЙМЙФБ cp ФТЕВХЕФ РТЙУХФУФЧЙС ДЧХИ ПВСЪБФЕМШОЩИ РБТБНЕФТПЧ: РЕТЧЩК — ЛПРЙТХЕНЩК ЖБКМ ЙМЙ ЛБФБМПЗ, ЧФПТПК — ЖБКМ ЙМЙ ЛБФБМПЗ ОБЪОБЮЕОЙС. лБЛ ПВЩЮОП, Ч ЙНЕОБИ ЖБКМПЧ Й ЛБФБМПЗПЧ НПЦОП ЙУРПМШЪПЧБФШ РПМОЩЕ Й ПФОПУЙФЕМШОЩЕ РХФЙ. еУФШ ОЕУЛПМШЛП ЧПЪНПЦОПУФЕК РТЙ ЛПНВЙОБГЙЙ ЖБКМПЧ Й ЛБФБМПЗПЧ Ч РБТБНЕФТБИ cp — П ОЙИ НПЦОП РТПЮЕУФШ Ч ТХЛПЧПДУФЧЕ.
оХЦОП ЙНЕФШ Ч ЧЙДХ, ЮФП Ч Linux ХФЙМЙФБ cp ОЕТЕДЛП ОБУФТПЕОБ ФБЛЙН ПВТБЪПН, ЮФП РТЙ РПРЩФЛЕ УЛПРЙТПЧБФШ ЖБКМ РПЧЕТИ ХЦЕ УХЭЕУФЧХАЭЕЗП ОЕ ЧЩЧПДЙФУС ОЙЛБЛПЗП РТЕДХРТЕЦДЕОЙС. ч ЬФПН УМХЮБЕ ЖБКМ ВХДЕФ РТПУФП РЕТЕЪБРЙУБО, Б ДБООЩЕ, ЛПФПТЩЕ УПДЕТЦБМЙУШ Ч УФБТПК ЧЕТУЙЙ ЖБКМБ, ВЕУРПЧПТПФОП РПФЕТСОЩ. рПЬФПНХ РТЙ ЙУРПМШЪПЧБОЙЙ cp УМЕДХЕФ ЧУЕЗДБ ВЩФШ ЧОЙНБФЕМШОЩН Й РТПЧЕТСФШ ЙНЕОБ ЖБКМПЧ, ЛПФПТЩЕ ОХЦОП УЛПРЙТПЧБФШ.
зПЧПТС П ЛПРЙТПЧБОЙЙ, ХНЕУФОП ЧУРПНОЙФШ ЫЙТПЛП ЙЪЧЕУФОПЕ ЧЩУЛБЪЩЧБОЙЕ, РТЙРЙУЩЧБЕНПЕ хЙМШСНХ пЛЛБНХ: «оЕ УМЕДХЕФ ХНОПЦБФШ УХЭОПУФЙ УЧЕТИ ОЕПВИПДЙНПЗП». уПЪДБООБС РТЙ РПНПЭЙ cp ЛПРЙС ЖБКМБ УЧСЪБОБ У ПТЙЗЙОБМПН ФПМШЛП Ч ЧПУРПНЙОБОЙСИ РПМШЪПЧБФЕМС, Ч ЖБКМПЧПК УЙУФЕНЕ ЙУИПДОЩК ЖБКМ Й ЕЗП ЛПРЙС — ДЧЕ УПЧЕТЫЕООП ОЕЪБЧЙУЙНЩЕ Й ОЙЮЕН ОЕ УЧСЪБООЩЕ ЕДЙОЙГЩ. рПЬФПНХ РТЙ ОБМЙЮЙЙ ОЕУЛПМШЛЙИ ЛПРЙК ПДОПЗП Й ФПЗП ЦЕ ЖБКМБ Ч ТБНЛБИ ПДОПК ЖБКМПЧПК УЙУФЕНЩ РПЧЩЫБЕФУС ЧЕТПСФОПУФШ ЪБРХФБФШУС Ч ЛПРЙСИ ЙМЙ ЪБВЩФШ П ОЕЛПФПТЩИ ЙЪ ОЙИ. еУМЙ ЪБДБЮБ УПУФПЙФ Ч ФПН, ЮФПВЩ ПВЕУРЕЮЙФШ ДПУФХР Л ПДОПНХ Й ФПНХ ЦЕ ЖБКМХ ЙЪ ТБЪОЩИ ФПЮЕЛ ЖБКМПЧПК УЙУФЕНЩ, ОХЦОП ЙУРПМШЪПЧБФШ УРЕГЙБМШОП РТЕДОБЪОБЮЕООЩК ДМС ЬФПЗП НЕИБОЙЪН ЖБКМПЧПК УЙУФЕНЩ Linux — УУЩМЛЙ.
жБКМ Й ЕЗП ЙНЕОБ: УУЩМЛЙ
цЈУФЛЙЕ УУЩМЛЙ
лБЦДЩК ЖБКМ РТЕДУФБЧМСЕФ УПВПК ПВМБУФШ ДБООЩИ ОБ ЦЈУФЛПН ДЙУЛЕ ЛПНРШАФЕТБ ЙМЙ ОБ ДТХЗПН ОПУЙФЕМЕ ЙОЖПТНБГЙЙ, ЛПФПТХА НПЦОП ОБКФЙ РП ЙНЕОЙ. ч ЖБКМПЧПК УЙУФЕНЕ Linux УПДЕТЦЙНПЕ ЖБКМБ УЧСЪЩЧБЕФУС У ЕЗП ЙНЕОЕН РТЙ РПНПЭЙ ЦЈУФЛЙИ УУЩМПЛ. уПЪДБОЙЕ ЖБКМБ У РПНПЭША МАВПК РТПЗТБННЩ ПЪОБЮБЕФ, ЮФП ВХДЕФ УПЪДБОБ ЦЈУФЛБС УУЩМЛБ — ЙНС ЖБКМБ, Й ПФЛТЩФБ ОПЧБС ПВМБУФШ ДБООЩИ ОБ ДЙУЛЕ. рТЙЮЈН ЛПМЙЮЕУФЧП УУЩМПЛ ОБ ПДОХ Й ФХ ЦЕ ПВМБУФШ ДБООЩИ (ЖБКМ) ОЕ ПЗТБОЙЮЕОП, Ф. Е. Х ЖБКМБ НПЦЕФ ВЩФШ ОЕУЛПМШЛП ЙНЈО.
рПМШЪПЧБФЕМШ Linux НПЦЕФ ДПВБЧЙФШ ЖБКМХ ЕЭЈ ПДОП ЙНС (УПЪДБФШ ЕЭЈ ПДОХ ЦЈУФЛХА УУЩМЛХ ОБ ЖБКМ) РТЙ РПНПЭЙ ХФЙМЙФЩ ln УПЛТБЭЕОЙЕ ПФ БОЗМ. «link» — «УПЕДЙОСФШ, УЧСЪЩЧБФШ»). рЕТЧЩК РБТБНЕФТ — ЬФП ЙНС ЖБКМБ, ОБ ЛПФПТЩК ОХЦОП УПЪДБФШ УУЩМЛХ, ЧФПТПК — ЙНС ОПЧПК УУЩМЛЙ. рП ХНПМЮБОЙА УУЩМЛБ ВХДЕФ УПЪДБОБ Ч ФЕЛХЭЕН ЛБФБМПЗЕ.
йОДЕЛУОЩЕ ДЕУЛТЙРФПТЩ
нЕЖПДЙК ТЕЫЙМ РПЙОФЕТЕУПЧБФШУС ОПНЕТБНЙ ЙОДЕЛУОЩИ ДЕУЛТЙРФПТПЧ ЖБКМБ « text » Й ЦЈУФЛПК УУЩМЛЙ ОБ ОЕЗП « text-hardlink » — ПО ПВОБТХЦЙМ, ЮФП ЬФЙ ОПНЕТБ УПЧРБДБАФ (« 127705 »), ФП ЕУФШ ЬФЙН ДЧХН ЙНЕОБН УППФЧЕФУФЧХЕФ ПДЙО ЙОДЕЛУОЩК ДЕУЛТЙРФПТ, Ф. Е. ПДЙО Й ФПФ ЦЕ ЖБКМ.
чУЕ ПРЕТБГЙЙ У ЖБКМПЧПК УЙУФЕНПК — УПЪДБОЙЕ, ХДБМЕОЙЕ Й РЕТЕНЕЭЕОЙЕ ЖБКМПЧ — РТПЙЪЧПДСФУС ОБ УБНПН ДЕМЕ ОБД ЙОДЕЛУОЩНЙ ДЕУЛТЙРФПТБНЙ, ЙНЕОБ ОХЦОЩ ФПМШЛП ДМС ФПЗП, ЮФПВЩ РПМШЪПЧБФЕМШ НПЗ МЕЗЛП ПТЙЕОФЙТПЧБФШУС Ч ЖБКМПЧПК УЙУФЕНЕ. (вЩМП ВЩ ПЮЕОШ ОЕХДПВОП ЪБРПНЙОБФШ НОПЗПЪОБЮОЩК ОПНЕТ ЛБЦДПЗП ОХЦОПЗП ЖБКМБ ЙМЙ ЛБФБМПЗБ.) вПМЕЕ ФПЗП, ЙНС (ЙМЙ ЙНЕОБ) ЖБКМБ ОЕ ХЛБЪБОЩ Ч ЕЗП ЙОДЕЛУОПН ДЕУЛТЙРФПТЕ. ч ЖБКМПЧПК УЙУФЕНЕ Ext2 ЙНЕОБ ЖБКМПЧ ИТБОСФУС Ч ЛБФБМПЗБИ: ЛБЦДЩК ЛБФБМПЗ РТЕДУФБЧМСЕФ УПВПК УРЙУПЛ ЙНЈО ЖБКМПЧ Й ОПНЕТПЧ ЙИ ЙОДЕЛУОЩИ ДЕУЛТЙРФПТПЧ. цЈУФЛХА УУЩМЛХ (ЙНС ЖБКМБ, ИТБОСЭЕЕУС Ч ЛБФБМПЗЕ) НПЦОП РТЕДУФБЧМСФШ ЛБЛ ЛБФБМПЦОХА ЛБТФПЮЛХ, ОБ ЛПФПТПК ХЛБЪБО ОПНЕТ ЙОДЕЛУОПЗП ДЕУЛТЙРФПТБ — ЙДЕОФЙЖЙЛБФПТ ЖБКМБ.
уЙНЧПМШОЩЕ УУЩМЛЙ
юФПВЩ ЙЪВЕЦБФШ ЬФЙИ ПЗТБОЙЮЕОЙК, ВЩМЙ ТБЪТБВПФБОЩ УЙНЧПМШОЩЕ УУЩМЛЙ. уЙНЧПМШОБС УУЩМЛБ — ЬФП РТПУФП ЖБКМ, Ч ЛПФПТПН УПДЕТЦЙФУС ЙНС ДТХЗПЗП ЖБКМБ. уЙНЧПМШОЩЕ УУЩМЛЙ, ЛБЛ Й ЦЈУФЛЙЕ, РТЕДПУФБЧМСАФ ЧПЪНПЦОПУФШ ПВТБЭБФШУС Л ПДОПНХ Й ФПНХ ЦЕ ЖБКМХ РП ТБЪОЩН ЙНЕОБН. лТПНЕ ФПЗП, УЙНЧПМШОЩЕ УУЩМЛЙ НПЗХФ ХЛБЪЩЧБФШ Й ОБ ЛБФБМПЗ, ЮЕЗП ОЕ РПЪЧПМСАФ ЦЈУФЛЙЕ УУЩМЛЙ. уЙНЧПМШОЩЕ УУЩМЛЙ ОБЪЩЧБАФУС ФБЛ РПФПНХ, ЮФП УПДЕТЦБФ УЙНЧПМЩ — РХФШ Л ЖБКМХ ЙМЙ ЛБФБМПЗХ.
хЪОБФШ, ЛХДБ ХЛБЪЩЧБЕФ УЙНЧПМШОБС УУЩМЛБ, НПЦОП РТЙ РПНПЭЙ ХФЙМЙФЩ realpath :
хДБМЕОЙЕ ЖБКМПЧ Й ЛБФБМПЗПЧ
ч Linux ДМС ХДБМЕОЙС ЖБКМПЧ РТЕДОБЪОБЮЕОБ ХФЙМЙФБ rm (УПЛТБЭЕОЙЕ ПФ БОЗМ. «remove» — «ХДБМСФШ»).
пДОБЛП ЕУМЙ нЕЖПДЙК ХДБМЙФ Й ЦЈУФЛХА УУЩМЛХ text-hardlink — Х ЬФПЗП ЖБКМБ ВПМШЫЕ ОЕ ПУФБОЕФУС ОЙ ПДОПЗП ЙНЕОЙ, ПО УФБОЕФ ОЕДПУФХРОЩН РПМШЪПЧБФЕМА ЖБКМПЧПК УЙУФЕНЩ Й ВХДЕФ ХОЙЮФПЦЕО.
хФЙМЙФБ rm РТЕДОБЪОБЮЕОБ ЙНЕООП ДМС ХДБМЕОЙС ЦЈУФЛЙИ УУЩМПЛ, Б ОЕ УБНЙИ ЖБКМПЧ. ч Linux, ЮФПВЩ РПМОПУФША ХДБМЙФШ ЖБКМ, ФТЕВХЕФУС РПУМЕДПЧБФЕМШОП ХДБМЙФШ ЧУЕ ЦЈУФЛЙЕ УУЩМЛЙ ОБ ОЕЗП. рТЙ ЬФПН ЧУЕ ЦЈУФЛЙЕ УУЩМЛЙ ОБ ЖБКМ (ЕЗП ЙНЕОБ) ТБЧОПРТБЧОЩ — УТЕДЙ ОЙИ ОЕФ «ЗМБЧОПК», У ЙУЮЕЪОПЧЕОЙЕН ЛПФПТПК ЙУЮЕЪОЕФ ЖБКМ. рПЛБ ЕУФШ ИПФШ ПДОБ УУЩМЛБ, ЖБКМ РТПДПМЦБЕФ УХЭЕУФЧПЧБФШ. чРТПЮЕН, Х ВПМШЫЙОУФЧБ ЖБКМПЧ Ч Linux ЕУФШ ФПМШЛП ПДОП ЙНС (ПДОБ ЦЈУФЛБС УУМЩМЛБ ОБ ЖБКМ), РПЬФПНХ ЛПНБОДБ rm ЙНС ЖБКМБ ХУРЕЫОП ХДБМЙФ ЖБКМ Ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ.
1чППВЭЕ ЗПЧПТС, Ч ОЕУЛПМШЛЙИ ТБЪОЩИ ЛБФБМПЗБИ ЖБКМПЧПК УЙУФЕНЩ НПЗХФ ПЛБЪБФШУС ЖБКМЩ У ЙНЕОЕН « text », ЙНЕООП РПЬФПНХ ЛПНБОДОБС ПВПМПЮЛБ ЧУЕЗДБ РЕТЕДБЈФ РТПЗТБННБН Й ХФЙМЙФБН «ФПЮОЩК БДТЕУ» ЖБКМБ Ч ЖБКМПЧПК УЙУФЕНЕ — РПМОЩК РХФШ.
2дПНБЫОЙК ЛБФБМПЗ ХЛБЪЩЧБЕФУС Ч ХЮЈФОПК ЪБРЙУЙ РПМШЪПЧБФЕМС, УН. МЕЛГЙА уЕБОУ ТБВПФЩ Ч Linux.
3чПФ РТЙНЕТ ХФЙМЙФЩ, ЛПФПТБС РП ХНПМЮБОЙА ТБВПФБЕФ У ЖБКМБНЙ Ч ФЕЛХЭЕН ЛБФБМПЗЕ.
4фБЛПЕ РПЧЕДЕОЙЕ ls ОБРПНЙОБЕФ РТЙОГЙР ТБВПФЩ ЖБКМПЧЩИ НЕОЕДЦЕТПЧ УП УЛТЩФЩНЙ ЖБКМБНЙ Ч УЙУФЕНБИ MS-DOS/Windows. тБЪОЙГБ Ч ФПН, ЮФП Ч MS-DOS/Windows УЛТЩФЩЕ ЖБКМЩ РТЕДХУНПФТЕОЩ ЖБКМПЧПК УЙУФЕНПК — ЖБКМ НПЦЕФ ЙНЕФШ БФТЙВХФ «УЛТЩФЩК» Й РТЙ ЬФПН ОБЪЩЧБФШУС ЛБЛ ХЗПДОП. ч Linux УЛТЩФЩЕ ЖБКМЩ — ЬФП ОЕ УЧПКУФЧП ЖБКМПЧПК УЙУФЕНЩ, Б ФПМШЛП УПЗМБЫЕОЙЕ РП ОБЙНЕОПЧБОЙА ЖБКМПЧ.
5лБФБМПЗЙ Ч Linux — ФПЦЕ ЖБКМЩ ПУПВПЗП ФЙРБ, УН. ТБЪДЕМ Filesystem..уЙУФЕНБ ЖБКМПЧ: ЛБФБМПЗЙ
6рТЙЮЙОБ ЬФПЗП ПЗТБОЙЮЕОЙС Ч ФПН, ЮФП ОПНЕТ ЙОДЕЛУОПЗП ДЕУЛТЙРФПТБ ХОЙЛБМЕО ФПМШЛП Ч ТБНЛБИ ПДОПК ЖБКМПЧПК УЙУФЕНЩ. ч ТБЪОЩИ ЖБКМПЧЩИ УЙУФЕНБИ НПЗХФ ПЛБЪБФШУС ДЧБ ТБЪОЩИ ЖБКМБ У ПДЙОБЛПЧЩН ОПНЕТПН ЙОДЕЛУОПЗП ДЕУЛТЙРФПТБ, Ч ТЕЪХМШФБФЕ ВХДЕФ ОЕЧПЪНПЦОП ХУФБОПЧЙФШ, ОБ ЛБЛПК ЙЪ ОЙИ ХЛБЪЩЧБЕФ ЦЈУФЛБС УУЩМЛБ.
7«тЕЛХТУЙЧОП» РП ПФОПЫЕОЙА Л ЛБФБМПЗБН ПВПЪОБЮБЕФ, ЮФП ДЕКУФЧЙЕ ВХДЕФ РТПЙЪЧЕДЕОП ОБД УБНЙН ЛБФБМПЗПН, ЕЗП РПДЛБФБМПЗБНЙ, РПДЛБФБМПЗБНЙ ЕЗП РПДЛБФБМПЗПЧ Й Ф. Д.
Основные linux-команды для новичка
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!
Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Содержание
Где я? Как понять, где находишься
Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
Как понять, что находится в папке
Команда ls позволяет просмотреть содержимое каталога:
Хотя лучше использовать команду сразу с флагом «l»:
Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.
У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».
См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)
Как перейти в другую директорию
С помощью команды cd:
Путь может быть абсолютным или относительным.
По абсолютному пути
Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
Ну вот, мы переместились из домашней директории (обозначается как
По относительному пути
Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будет такой:
Если мне надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
Я не пишу /home/student/photo, так как я уже там.
В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается
/. Дальше вы уже можете указывать подпапки:
Эта команда будет работать отовсюду. И переместит нас в /home/user/log.
Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:
С автодополнением
Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:
— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
— (tab) У меня кончились варианты, поехали сначала. Папка 1?
cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).
cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.
Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.
Подняться наверх
Подняться на уровень выше:
Если нужно поднять на два уровня выше, то
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.
Как создать директорию
Используйте команду mkdir:
Можно и в другом месте создать папку:
Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
Как создать файл
Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
Как отредактировать файл
Вот честное слово, лучше делать это через графический интерфейс!
Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
А вот с vim с этим сложнее. В него легко зайти:
Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?
Делюсь секретом, для выхода надо набрать:
Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:
Когда нажимаем двоеточие, оно печатается внизу:
Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда.
На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.
Если нужно выйти, сохранив изменения, используйте команду
Ну а про возможности редактирования см статьи ниже =)
Как перенести / скопировать файл
Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?
Скопировать файл
Если мы находимся в директории /opt/app/log:
В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.
Можно сразу переименовать файл:
В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.
Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:
Никаких ошибок, система просто выполнила команду.
Скопировать директорию
Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
Так в директории /home/olga появится папка «log».
Переместить файл
Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
Можно использовать относительные и абсолютные пути:
Можно сразу переименовать файл:
Переместить директорию
Аналогично перемещению файла, команда mv
Как удалить файл
С помощью команды rm (remove):
Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:
Если нужно удалить папку, надо добавить флаг -r (recursive):
Если вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:
А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да. » (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):
Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!
Опция -v показывает имена удаляемых файлов:
Тут вы хотя бы можете осознать, что натворили )))
Как изменить владельца файла
Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.
Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.
Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:
В итоге был владелец root, а стал testbase. То, что надо!
Как установить приложение
Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.
И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.
Ничего страшного, установите это приложение через yum:
Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:
И система заканчивает установку.
Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:
Как запустить приложение
Чтобы запустить скрипт, нужно указать полный путь к нему:
Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
Если же приложение запускается как сервис, то все еще проще:
Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:
Она добавит службу в автозапуск.
Как понять, где установлено приложение
Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?
Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):
Как создать архив
Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:
В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.
Для распаковки меняем флаг «c» на «x» и убираем «z»:
Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.
Давайте разберемся, что все эти флаги означают:
Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:
Говорит, нет такого пакета:
Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
Как посмотреть использованные ранее команды
Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!
Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:
Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).
Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.
Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.
См также:
История команд Linux — больше о возможностях history
Как посмотреть свободное место
Сколько места свободно на дисках
Сколько весит директория
Как узнать IP компьютера
Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.
Чтобы узнать IP машины, используйте команду:
Также можно использовать ifconfig:
Как узнать версию OS
Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?
На этой виртуалке стоит CentOs 7.
Если нужна версия ядра:
Как узнать, как работает команда
Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:
Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.
Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))
Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!
Если man у программы нет, используйте флаг -h (—help):
Как создать много тестовых папок и файлов
Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
Вот и все, дальше можно играться с ними!
Ага, в домашней директории. Создам себе песочницу:
Вот в ней и буду творить!
А потом можно проверить, что получилось:
Как-то так! Имхо, полезные команды.
Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!
И, главное, тестировщику полезно — может пригодиться для тестов.
Как протестировать IOPS на Linux
Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.
Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.
Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.
1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка
2) Должны стоять пакеты для сборки
Какие должны быть результаты:
Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.
И это все?
Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.
Вот вам еще пара ссылочек от меня:
Книги и видео по теме
Где тренироваться
Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))
А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.
У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.
Чтобы подключиться к машине, используйте инструменты: