У системі Linux змінні середовища користувача грають важливу роль у налаштуванні робочого оточення та поведінки програм. Ефективне керування цими змінними дозволяє налаштовувати систему під свої потреби та забезпечувати зручне використання програм. У нашому повному посібнику ми детально розглянемо процес керування змінними середовища користувача в Linux та покажемо, як ефективно налаштовувати ці змінні. Розуміння змінних середовища користувача: Змінні середовища користувача в Linux – це спеціальні значення, які впливають на поведінку програм та робоче оточення користувача. Розуміння цих змінних та їхнього впливу дозволяє краще налаштовувати систему та використовувати програми з більшим комфортом. Керування змінними середовища користувача: Ми розглянемо різні способи керування змінними середовища користувача в Linux.
Використовуючи команди export та unset, ви зможете встановлювати та змінювати значення змінних середовища. Ми також покажемо, як налаштовувати ці змінні за допомогою файлів налаштувань, таких як ~/.bashrc або /etc/profile. Популярні змінні середовища та їх використання: Ми розглянемо деякі популярні змінні середовища користувача в Linux, такі як PATH, HOME, LANG та інші. Ви дізнаєтесь, як правильно налаштовувати ці змінні для зручного використання програм та мови в системі Linux. Заключні вказівки: Керування змінними середовища користувача в Linux є важливою частиною налаштування системи та комфорту користувача. Використовуючи наш повний посібник, ви отримаєте всю необхідну інформацію та навички для ефективного налаштування змінних середовища користувача в системі Linux. Налаштуйте свою систему так, як вам потрібно, і насолоджуйтеся зручним використанням програм.
Ви можете переглянути всі змінні середовища за замовчуванням, ввівши env у ваш термінал з будь-якого каталогу.
Наприклад:
kali >env XDG_VTNR=7 SSHAGENT_PID=922 XDG_SESSION_ID=2 XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/root GLADE_PIXMAP_PATH=:echo TERM=xterm SHELL=/bin/bash snip USER=root snip PATH=/usr/local/sbin :usr/local/bin:/usr/sbin:/sbin/bin snip HOME=/root snip
Змінні середовища завжди великі, як у HOME, PATH, SHELL тощо. Це лише змінні середовища за замовчуванням, які надходять у вашу систему. Користувач також може створювати власні змінні, і, як ви побачите, нам потрібна інша команда, щоб включити їх у вихідні дані.
Для перегляду всіх змінних середовища, включаючи змінні оболонки, локальні змінні та функції оболонки, такі як будь-які користувацькі змінні та псевдоніми команд, використовуйте команду set. Ця команда перерахує всі змінні середовища, унікальні для вашої системи, що в більшості випадків дасть вам вихід до тих пір, поки ви не зможете переглянути все це на одному екрані. Ви можете попросити переглянути кожну змінну, рядок за рядком, більш доступним способом, використовуючи set та трубопровід до команди more, наступним чином:
kali >set|more BASH=/bin/bash BASHOPTS=checkwinsize:cmdlist:complete_fullquote:expand_aliases:extglob..... BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() snip
Тепер список змінних буде заповнювати один екран, рядок за рядком, а потім зупинятися. Коли ви натискаєте клавішу ENTER, термінал переходить до наступного рядка, переходячи до наступної змінної, щоб ви могли прокручувати, натискаючи або утримуючи клавішу ENTER. Як ви пам’ятаєте з глави 2, кожного разу, коли ви використовуєте команду more для виводу, ви можете ввести q, щоб вийти (або вийти) і повернутися до командного рядка.
Хоча використання набору з більшою кількістю дає більш керовані результати, ніж перегляд величезного шматка імен змінних, які ви отримуєте лише з набором, це все одно може бути досить нудним, якщо ви шукаєте певну змінну. Замість цього ви можете використовувати команду фільтрації grep, щоб знайти цікаву змінну.
Давайте візьмемо змінну HISTSIZE як приклад. Ця змінна містить максимальну кількість команд, які зберігатиме ваш файл історії команд. Це будь-які команди, які ви раніше вводили в командний рядок у цьому сеансі, і їх можна відкликати за допомогою клавіш зі стрілками вгору та вниз. Зауважте, що HISTSIZE зберігає не самі команди, а лише їх кількість, яку можна зберегти.
З’єднайте встановлений вихід за допомогою grep, щоб знайти змінну HISTSIZE, наприклад:
kali >набір | grep HISTSIZE HISTSIZE =1000
Як бачите, ця команда знаходить змінну HISTSIZE і відображає її значення. Значення за замовчуванням для цієї змінної, ймовірно, встановлено на 1000 у вашій системі. Це вказує на те, що термінал буде зберігати ваші останні 1,000 команд за замовчуванням.
Тепер давайте подивимося, як змінити значення змінної. Як зазначалося, змінна HISTSIZE містить значення кількості команд для зберігання в архіві історії. Іноді ви не хочете, щоб ваша система зберігала минулі команди, можливо, тому, що ви не хочете залишати жодних доказів вашої активності у власній системі або цільовій системі. У цьому випадку ви можете встановити змінну HISTSIZE на 0, щоб система не зберігала жодної з ваших попередніх команд. Оскільки ця змінна має одне значення, щоб змінити її, потрібно призначити їй нове значення знайомим способом, показаним у списку 71.
kali >HISTSIZE=0
Лістинг 71: Зміна значення HISTSIZE
Тепер, коли ви намагаєтеся використовувати клавіші зі стрілками вгору і вниз, щоб згадати свої команди, нічого не відбувається, тому що система більше не зберігає їх. Це приховано, хоча може бути незручно.
Коли ви змінюєте змінну середовища, ця зміна відбувається лише в цьому конкретному середовищі; у цьому випадку це середовище є сеансом оболонки bash. Це означає, що коли ви закриваєте термінал, будь-які внесені вами зміни втрачаються, а значення повертаються до значень за замовчуванням. Якщо потрібно зробити зміни остаточними, потрібно скористатися командою export . Ця команда експортує нове значення з вашого поточного середовища (оболонка bash) до решти системи, роблячи його доступним у кожному середовищі, поки ви не зміните та не експортуєте його знову.
Змінні – це рядки, тому, якщо ви працюєте обережно, непогана ідея зберегти вміст змінної в текстовому файлі перед тим, як змінювати її. Наприклад, оскільки ми збираємося змінити змінну PS1, яка керує інформацією, що відображається в підказці, спочатку запустіть таку команду, щоб зберегти наявні значення в текстовому файлі в домашньому каталозі поточного користувача:
kali >echo $HISTSIZE> ~/valueofHISTSIZE.txt
Таким чином, зміни завжди можна скасувати. Якщо ви хочете бути ще обережнішими та створити текстовий файл з усіма поточними налаштуваннями, ви можете зберегти результат встановленої команди в текстовий файл за допомогою такої команди:
kali >set> ~/valueofALLon01012017.txt
Після того, як ви змінили змінну, як ми зробили в списку 71, ви можете зробити зміну постійною, ввівши export, а потім ім’я змінної, яку ви змінили, як показано тут:
kali >експорт HISTSIZE
Тепер змінна HISTSIZE все одно буде встановлена на 0, коли ви вийдете з цього середовища та ввійдете інше середовище. Якщо ви хочете скинути змінну HISTSIZE до 1,000, просто введіть це:
kali >HISTSIZE=1000 kali >exportHISTSIZE
Цей фрагмент коду встановить значення вашої змінної HISTSIZE на 1,000 та експортує її в усі ваші середовища.
Ваш запит оболонки, інша змінна середовища, надає вам корисну інформацію, таку як користувач, яким ви працюєте, і каталог, в якому ви зараз працюєте. Типовий запит оболонки в Kali має такий формат:
username@hostname:current_directory
Якщо ви працюєте як кореневий користувач, це призведе до наступного запиту за замовчуванням:
root@kali:current_directory
Змінити ім’я можна в запиті оболонки за замовчуванням, встановивши значення для змінної PS1. Змінна PS1 має набір заповнювачів для інформації, яку потрібно відобразити в підказці, включаючи наступне:
\u Ім’я поточного користувача
\h Ім’я хоста
\W Базове ім’я поточного робочого каталогу
Це дуже корисно, якщо у вас є оболонки в декількох системах або ви ввійшли як кілька облікових записів. Встановивши різні значення \u і \h для різних оболонок або облікових записів, ви можете з першого погляду визначити, хто ви і яка ваша поточна система.
Давайте трохи розважимося і змінимо підказку в вашому терміналі. Наприклад, можна ввести наступне:
kali >PS1=”Найкращий хакер світу: #”
Кращий хакер світу: #
Тепер кожен раз, коли ви використовуєте цей термінал, вам будуть нагадувати, що ви «Кращий хакер у світі». Але будь-який наступний термінал, який ви відкриєте, все одно матиме командний рядок за замовчуванням, оскільки змінна PS1 містить значення лише для сеансу терміналу. Пам’ятайте, що поки ви не експортуєте змінну, вона підходить лише для цього сеансу. Якщо вам дуже подобається цей новий командний рядок і ви хочете бачити його в кожному терміналі, вам потрібно експортувати його.
Наприклад:
kali >експорт PS1
Це зробить зміни постійними протягом усіх сесій. Як щодо того, щоб трохи веселіше? Скажімо, ви дійсно хочете, щоб ваш термінал виглядав як підказка Windows cmd. У цьому випадку ви можете змінити ім’я запиту на C: і зберегти \w, щоб запит відображав ваш поточний каталог, як показано в списку 72.
kali >exportPS1='C:\w>' C:/tmp>
Лістинг 72: Зміна запиту та показ поточного каталогу. Ваша підказка показує поточний каталог може бути загалом корисною, особливо для новачка, тому це слід враховувати, коли ви змінюєте змінну PS1.
Однією з найважливіших змінних у вашому середовищі є ваша змінна PATH, яка контролює, де у вашій системі ваша оболонка буде шукати команди, які ви вводите, такі як cd, ls та echo. Більшість команд розташовані в підкаталозі sbin або bin, наприклад
/usr/local/sbin або usr/local/bin. Якщо оболонка bash не знайде команду в одному з каталогів вашої змінної PATH, вона поверне команду помилки, яку не знайдено, навіть якщо ця команда існує в каталозі, а не у вашому PATH. Ви можете дізнатися, які каталоги зберігаються у вашій змінній PATH, використовуючи echo на її вмісті.
Наприклад:
Калі >відлуння $PATH /usr/local/sbin:usr/local/bin:/usr/sbin:/sbin/bin
Це каталоги, де ваш термінал буде шукати будь-яку команду. Наприклад, коли ви вводите ls, система знає, що потрібно шукати в кожному з цих каталогів команду ls, а коли знаходить ls, система її виконує. Кожен каталог розділяється двокрапкою (:), і не забудьте додати символ вмісту $ до PATH.
Ви, ймовірно, можете зрозуміти, чому важливо знати, що міститься у вашій змінній PATH: якщо ви завантажили та встановили новий інструмент, скажімо, newhackingtool, у каталог /root/newhackingtool, ви можете використовувати команди з цього інструменту лише тоді, коли ви перебуваєте в цьому каталозі, оскільки цей каталог не знаходиться у змінній PATH. Кожного разу, коли ви хочете використовувати цей інструмент, вам спочатку доведеться перейти до /root/newhackingtool, що трохи незручно, якщо ви хочете часто використовувати інструмент.
Щоб мати можливість використовувати цей новий інструмент з будь-якого каталогу, вам потрібно додати каталог, що містить цей інструмент, до змінної PATH .
Щоб додати newhackingtool до змінної PATH , введіть наступне:
kali >PATH=$PATH:/root/newhackingtool
Це призначає вихідну змінну PATH плюс каталог /root/newhackingtool новій змінній PATH, тому змінна містить все, що вона робила раніше, плюс новий каталог інструментів. Якщо ви ще раз перевірите вміст змінної PATH, ви побачите, що цей каталог був доданий до кінця PATH
Як показано тут:
Калі >відлуння $PATH /usr/local/sbin:usr/local/bin:/usr/sbin:/sbin/bin:/root/newhackingtool
Тепер ви можете виконувати програми newhackingtool з будь-якого місця вашої системи, замість того, щоб переходити до його каталогу. Оболонка bash буде виглядати у всіх каталогах, перерахованих для вашого нового інструменту!
Однією з помилок, яку зазвичай роблять нові користувачі Linux, є призначення нового каталогу, такого як /root/newhackingtool, безпосередньо змінній PATH таким чином:
kali >PATH=/root/newhackingtool kali >echo$PATH /root/newhackingtool
Якщо ви використовуєте цю команду, ваша змінна PATH міститиме лише каталог /root/newhackingtool і більше не міститиме системні двійкові каталоги, такі як /bin, /sbin, та інші, які містять критичні команди. Коли ви потім перейдете до використання будь-якої з системних команд, ви отримаєте команду помилки, яку не знайдено, як показано далі, якщо ви спочатку не перейдете до каталогу системних двійкових файлів під час виконання команди:
Калі >CD bash: cd: команда не знайдена
Пам’ятайте, що потрібно додавати до змінної PATH, а не замінювати її. Якщо ви сумніваєтеся, збережіть вміст змінної де-небудь, перш ніж змінювати її.
Ви можете створити власні користувацькі, визначені користувачем змінні в Linux, просто призначивши значення новій змінній, яку ви називаєте. Це може бути корисно, коли ви виконуєте більш просунуті сценарії оболонки або виявляєте, що часто використовуєте довгу команду, яку ви втомлюєтеся вводити знову і знову. Синтаксис простий: введіть ім’я вашої змінної, потім символ присвоєння (=), а потім значення, яке потрібно ввести в змінну.
Як показано тут:
kali >MYNEWVARIABLE
Злом – найцінніший набір навичок у 21-му столітті»
Це призначає рядок змінній MYNEWVARIABLE. Щоб побачити значення в цій змінній, використовуйте команду echo та символ вмісту $ з іменем змінної
Як ми це робили раніше:
Калі >відлуння $MYNEWVARIABLE
Хакерство – найцінніший набір навичок у 21 столітті
Так само, як і змінні нашого системного середовища, користувацькі змінні повинні бути експортовані, щоб зберегти їх до нових сеансів. Якщо ви бажаєте видалити цю нову змінну або будь-яку змінну, скористайтеся командою “Зняти “. Завжди думайте, перш ніж видаляти системну змінну, тому що ваша система, ймовірно, буде працювати набагато інакше згодом.
kali >unsetMYNEWVARIABLE kali >echo$MYNEWVARIABLE kali >
Як бачите, коли ви вводите unset MYNEWVARIABLE, ви видаляєте змінну разом з її значенням. Якщо ви використовуєте echo для тієї самої змінної, Linux тепер поверне порожній рядок.
Ви можете знайти змінні середовища іноземними, але варто з ними познайомитися. Вони контролюють, як виглядає, діє та відчувається ваше робоче середовище в Linux. Ви можете керувати цими змінними, щоб адаптувати своє середовище до своїх потреб, змінюючи їх, експортуючи їх і навіть створюючи власні. У деяких випадках вони можуть бути корисними для замітання ваших слідів як хакера.
Ми використовували матеріали з книги “LINUX BASICS FOR HACKERS”, які написав William Pollock