El Сценарії Shell, Це стосується виконання складних замовлень на Термінал GNU / Linux (консоль), дуже корисно автоматизувати рутинні та важливі заходи в рамках нашого Операційна система GNU / Linux, що дозволяє нам оптимізувати наш Ресурси та час.
Тому його використання з терміналу дозволяє нам виконувати складні командні команди вручну або автоматично за допомогою сценаріїв або як запрограмовані процедури під час автоматичного завантаження файлів або запланованих завдань в Операційній системі. GNU / Linux. І для Середній користувач, Розширений або SysAdmin el розклад (автоматизувати) завдання, попередження та / або повідомлення на хості (ПК / сервері) для збереження Години / Праця При ручному виконанні або особисто, це щось основне і важливе для гарного виконання вашої роботи як професіонала високого рівня.
Далі ми покажемо, як a дані (значення / параметр) попередньо збережені у змінній командою Баш Шелл або сумісний, він може відображатися в терміналі вашої операційної системи GNU / linux практичним і простим способом. На додаток до налаштування підказки терміналу.
Перший крок: відредагуйте .bashrc вашого користувача
За допомогою обраного вами редактора (vi, nano тощо) відредагуйте файл .bashrc файл вашого користувача, який повинен знаходитись в будинку того самого, тобто, наприклад: "/ Головна / my_user".
Вставте вміст кожного з наступних рядків та всіх додаткових, які ви вважаєте зручними для показу користувачеві під час виконання користувацького терміналу:
sleep 3
clear
########################### PARÁMETROS DE MONITOREO ###########################
NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')
FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
clear
printf %80s |tr " " "="
echo ""
echo " ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA "
echo " EMPRESA INSTITUCIÓN XYZ "
echo " RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo " ESTE EQUIPO TIENE INSTALADO "
echo " "
echo "TIPO DE S.O.: <"`uname -o`"> "
echo "NOMBRE / VERSIÓN DEL S.O.: <"$NOMBRE_SISTEMA"> / <"$VERSION_SISTEMA"> "
echo "KERNEL / ARQUITECTURA: <"`uname -r`"> / <"`uname -m`"> "
echo "INFO DEL CPU: ("$FABRICANTE_CPU") / ("$MODELO_CPU") / ("$NUM_CPU") / ("$NUCLEO_CPU") / ("$CACHE_CPU")"
printf %80s |tr " " "="
echo ""
echo ""
PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]# "
`
Другий крок: Відредагуйте кореневий файл .bashrc
Знову ж із вже використаним редактором редагування .bashrc файл Дель корінь суперкористувача який повинен знаходитись у межах шляху / кореня його.
Вставте вміст кожного з наступних рядків та всіх додаткових, які ви вважаєте зручними для показу користувачеві під час виконання користувацького терміналу:
########################### PARÁMETROS DE MONITOREO ###########################
alias cc='clear'
PROXY=$(route -n | sed -n '3p' | awk '{print $2}')
IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | grep nameserver | sed -n '1p' | awk '{print $2}')
DOMINIO=$(cat /etc/resolv.conf | sed '1 d' | grep search | sed -n '1p' | awk '{print $2}')
DATA_USUARIO1=$(du -sh /home/ | sort -r | awk '{print $1}')
DATA_ROOT=$(du -sh /root | awk '{print $1}')
DATA_VAR=$(du -sh /var | awk '{print $1}')
MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}')
MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}')
MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}')
MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}')
MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}')
MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}')
PART1_TOTAL=$(df -h | sed '1 d' | grep disk | awk '{print $2}')
PART1_USADO=$(df -h | sed '1 d' | grep disk | awk '{print $3}')
PART1_DISPONIBLE=$(df -h | sed '1 d' | grep disk | awk '{print $4}')
PART1_PORCENTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $5}')
PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $6}')
CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2')
CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $13}' | sed 's/,//2')
CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $14}' | sed 's/,//2')
USER_ONLINE=$(top -n 1 -b | grep "load average:" | awk '{print $8}')
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}')
TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}')
###############################################################################
if ping -c 1 8.8.8.8 &> /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi
set -o vi
printf %80s |tr " " "="
echo ""
echo " ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA "
echo " EMPRESA INSTITUCIÓN XYZ "
echo " RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo " PARÁMETROS ACTUALES DE FUNCIONAMIENTO "
echo " "
echo "MEMORIA TOTAL: ("$MEM_TOTAL") - MEMORIA USADA: ("$MEM_USADA") - MEMORIA LIBRE: ("$MEM_LIBRE")"
echo "DISCO PRINCIPAL: ("$PART1_TOTAL") - ESPACIO USADO: ("$PART1_USADO") - ESPACIO LIBRE: ("$PART1_DISPONIBLE") - %: ("$PART1_PORCENTAJE") - PARTICION: ("$PART1_PUNTOMONTAJE")"
echo "CARGA PROMEDIO DEL SISTEMA: 1 MIN ("$CARGA_1MIN") - 5 MIN ("$CARGA_5MIN") - 15 MIN ("$CARGA_15MIN")"
echo "USUARIOS CONECTADOS: ("$USER_ONLINE") - PROCESOS ZOMBIES: ("$PROC_ZOMBIE")"
echo "TIEMPO ARRANQUE/ENCENDIDO: ("$TIEMPO_ENCENDIDO") "
echo "ESPACIO USADO: /home = ("$DATA_USUARIO1") /root = ("$DATA_ROOT") /var = ("$DATA_VAR")"
printf %80s |tr " " "="
echo ""
echo ""
PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]$ "
Третій крок: відредагуйте кореневий файл .bashrc
Вийти і термінал. Почніть знову і випробуйте зміни. Це має виглядати приблизно так, як показано нижче, на наступних зображеннях:
Крок четвертий (необов’язково): Налаштування псевдонімів
Пам'ятайте, що використання псевдонімів у .bashrc це також може заощадити вам багато часу на написання. Розкоментуйте ті, які за замовчуванням приходять у .bashrc, такі як:
alias ls='ls $LS_OPTIONS'
<strong>alias ll='ls $LS_OPTIONS -l'
<strong>alias l='ls $LS_OPTIONS -lA'
alias rm='rm -i'
І додайте ті, які вважаєте необхідними, оскільки це часто використовувані команди, такі як:
alias cc='clear'
Важливо дізнатися більше про самоучку змінні, псевдоніми .bashrc і мова bash shell для більш просунутого рівня терміналу. Те саме можна досягти при запуску віддалених сеансів через ssh, що ми побачимо пізніше в інших майбутніх публікаціях.
Сподіваюся, ці малі "Поради" полегшити їм виконання базових, але корисних оптимізацій, які, як правило, призначені лише для людей, які є експертами Технології, обчислювальна техніка, вільне програмне забезпечення та GNU / Linux.
НАПАМ’ЯТАННЯ: Якщо будь-який командний рядок не може виконати або відображає правильне значення, не забудьте перевірити вручну кожен розділ командного рядка, щоб спробувати відкоригувати значення або синтаксис деяких змінних.
Псевдоніми - найкращі. Я не думаю погано щодо деяких, які за замовчуванням включають в bashrc: la (ls -a) та ll (ls -l). Нарешті я додаю параметр -h.
Інші практичні псевдоніми:
s = 'sudo'
cd1 = 'cd ..'
cd2 = 'кд ../ ..'
rmd = 'rm -r' (я використовую його для видалення каталогів з файлами)
shutdown = 'sudo shutdown -h now'
del = 'trash-put' (переміщення файлів у кошик, команда пакета trash-cli)
Оскільки я бачив цей псевдонім минулого року на Reddit, він був моїм улюбленим:
псевдонім fuck = 'sudo $ (історія -p !!)'
Стаття та зовнішній вигляд консолі дуже хороший. Деякі внески:
- В Ubuntu псевдоніми можуть бути розміщені в окремому файлі (.bash_aliases) в інших розподілах, яких я не знаю, але це робиться, додаючи такі рядки в .bashrc:
якщо [-f ~ / .bash_aliases]; тоді
. ~ / .bash_aliases
fi
Це дозволяє мати більш упорядковані псевдоніми, а для таких забудькуючих, як я, ви можете додати цей псевдонім, який відображає файл із списком псевдонімів:
псевдонім lsalias = 'більше ~ / .bash_aliases'
- У мене також є рідко використовуваний текстовий файл команди (який я зазвичай не пам'ятаю), який називається command_utiles.txt, і він готовий із наступним псевдонімом: alias cutil = 'more ~ / command_utiles.txt'
- Більше псевдонімів, які я використовую:
псевдонім cdu = 'cd ~'
alias lof = 'ls -lSr | more' # Детально відображає файли, відсортовані за розміром
псевдонім lod = 'du -sk * | sort -rn '# Показати каталоги, відсортовані за розміром
alias deo = 'du -sh' # Оцініть простір, який займає вказаний каталог
псевдонім psa = 'ps -eafw | more '# Показати всі процеси з додатковими
псевдонім psg = 'ps -eafw | grep '# Показати вказаний процес
- Нарешті, альтернатива для користувачів, яку я зробив:
SYSTEM_NAME = $ (cat / etc / os-release | grep NAME | grep -v "VERSION" | sed -n '1p' | cut -f2 -d \ »)
SYSTEM_VERSION = $ (cat / etc / os-release | grep VERSION = | sed -n '1p' | sed 's / VERSION = //' | sed 's / »// g')
MANUFACTURER_CPU = $ (grep "vendor_id" / proc / cpuinfo | sed q | awk '{print $ 3}')
CPU_MODEL = $ (grep "назва моделі" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
NUM_CPU = $ (grep "процесор" / proc / cpuinfo | sort -r | sed q | awk '{print $ 3}' | echo
expr $NUM_CPU + 1
)NUCLEO_CPU = $ (grep "ядра процесора" / proc / cpuinfo | sed q | awk '{print $ 4}')
CACHE_CPU = $ (grep "розмір кешу" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
USER_DATA = $ (du -sh ~ | sort -r | awk '{print $ 1}')
ясно
printf% 130s | tr »» «=»
викидати ""
ехо «ДАТА:«
date +%c --date='+1 year'
ехо «КЕРНЕЛ:«
uname -o
»<«uname -r
«> <«uname -m
«>»ехо "РОЗПОДІЛ:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
echo "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Ядра," $ CACHE_CPU "Cache"
echo «ВИКОРИСТАНИЙ ПРОСТІР:« $ DATA_USUARIO
printf% 130s | tr »» «=»
викидати ""
############################
echo "КОРИСНІ КОМАНДИ:"
echo »- Встановити RPM в пакетній системі DEB: alien -c -i package.rpm»
echo »- Рекурсивно змінювати користувача та групу файлів: користувач chown -hR: група [файл чи каталог]»
echo »- копія, що зберігає дозволи: cp -ax джерело призначення»
echo »- Показати активні сховища: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
echo »- Додати сховище: apt-add-repository ppa: repository»
echo »- БАЧИТИ БІЛЬШЕ КОМАНДІЙ Cutil»
echo »- ПОКАЗАТИ ПСИХІМИ lsalias»
printf% 130s | tr »» «=»
викидати ""
викидати ""
# PS1 = »[\ e [33; 1м] ┌─ ([\ e [34; 1м] \ u @ \ h [\ e [37; 1м]) * * * * \ d - \ t * * * * {[\ e [31; 1м] \ w [\ e [33; 1м]} \ n└──┤ [\ e [32м] # »
PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «
чому краще не написати власну статтю?
ОТЕ ТЕ ПІДРУЧНИКИ, ЯКІ Я ПОДОБАЮ !!!!!!!!!
Ну, я дуже рада, що вам сподобалося і подали!
Завтра я сподіваюся опублікувати ще одну статтю! Схили.
Привіт і нескінченна вдячність за обмін цією інформацією.
Я не маю великих знань про адміністрування GNU / Linux (я просто емпіричний і допитливий користувач без академічної підготовки), але я пам’ятаю, як читав на якомусь веб-сайті про проблеми із безпекою з ескалацією привілеїв; деякі команди та конвеєри в скрипті .bashrc, мені здається, вони могли б полегшити роботу хакера чи зломщика.
З повагою та дуже вдячний.
Оскільки сценарій Shell Scripting оптимізує термінал, просто подивіться, як далеко ви можете пройти, виконавши хороший сценарій Shell.
LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
(lpi_sb8_adecuación-audiovisual_2016.sh / 43 Кб)
Див. Скрінкаст: https://www.youtube.com/watch?v=cWpVQcbgCyY
Чудовий підручник! Будь-яка книга, яку ви рекомендуєте на Linux, щоб добре навчитися сценаріям оболонки, конфігураціям, безпеці сервера? Дякую