Як дасягнуць тэрмінала SysAdmin, ужываючы сцэнарыі Shell

El Абалонка сцэнарыяў, Гэта адносіцца да выкананне складаных заказаў на Тэрмінал GNU / Linux (кансоль), вельмі карысна аўтаматызаваць звычайныя і важныя мерапрыемствы ў рамках нашага Аперацыйная сістэма GNU / Linux, што дазваляе нам аптымізаваць нашы Рэсурсы і час.

Выбар_007

Такім чынам, выкарыстанне яго з тэрмінала дазваляе нам выконваць складаныя камандныя каманды ўручную альбо аўтаматычна праз сцэнарыі альбо як запраграмаваныя працэдуры ў аўтаматычна загружаных файлах альбо запланаваных задачах у Аперацыйнай сістэме. GNU / Linux. І для Сярэдні карыстальнік, прасунуты альбо SysAdmin el расклад (аўтаматызаваць) задачы, папярэджанні і / або паведамленні на хосце (ПК / серверы) для захавання Гадзіны працы Для ручнога выканання альбо асабіста гэта нешта асноўнае і неабходнае для добрай працы вашай прафесіі высокага ўзроўню.

Далей мы пакажам, як дадзеныя (значэнне / параметр) раней захоўваецца ў зменнай камандай Bash Shell альбо сумяшчальны, ён можа быць адлюстраваны ў тэрмінале вашай аперацыйнай сістэмы GNU / Linux практычна і проста. У дадатак да наладкі тэрмінала тэрмінала.

Першы крок: адрэдагуйце .bashrc вашага карыстальніка

Рэдагуйце абраны рэдактар ​​(vi, nano і г.д.) Файл .bashrc вашага карыстальніка, які павінен знаходзіцца ў доме яго, гэта значыць, напрыклад: "/ Галоўная / мой_карыстальнік".

Устаўце змест кожнага з наступных радкоў і ўсіх тых дадатковых, якія вы лічыце зручным паказаць карыстальніку пры выкананні карыстацкага тэрмінала:

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.: &lt;"$NOMBRE_SISTEMA"&gt; / &lt;"$VERSION_SISTEMA"&gt;        "
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 &amp;&gt; /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

Выйдзіце і з тэрмінала. Пачніце яго зноў і выпрабуйце змены. Ён павінен выглядаць аналагічна паказанаму ніжэй на наступных малюнках:

Крок 1: Запуск тэрміналаКрок 2: Рэдагуйце карыстальніка .bashrcКрок 3: Змест, устаўлены ў карыстальніка .bashrcКрок 4: Каранёвы лагінКрок 5: Каранёвы лагінКрок 6: Рэдагуйце каранёвы файл .bashrcКрок 7: Рэдагуйце каранёвы файл .bashrcКрок 8: Рэдагуйце каранёвы файл .bashrcКрок 9: Дэманстрацыйны прыклад новага кліенцкага тэрміналаКрок 10: Дэманстрацыйны прыклад новага кліенцкага тэрміналаКрок 11: Дэманстрацыйны прыклад новага кліенцкага тэрмінала

Крок чацвёрты (неабавязкова): Настройка псеўданімаў

Памятаеце, што выкарыстанне псеўданімаў у .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 і мова бас-шкарлупіна для больш высокага ўзроўню тэрмінала. Тое ж самае можна дасягнуць пры запуску аддаленых сеансаў праз ssh, што мы ўбачым пазней у іншых будучых публікацыях.

Я спадзяюся, што гэтыя малыя "Парады" палегчыць ім выкананне асноўных, але карысных аптымізацый, якія звычайна прызначаны толькі для экспертаў Тэхналогіі, вылічальная тэхніка, свабоднае праграмнае забеспячэнне і GNU / Linux.

НАПАМЯНЕННЕ: Калі які-небудзь камандны радок не можа выканаць альбо адлюстроўвае правільнае значэнне, абавязкова правярайце кожны раздзел каманднага радка ўручную, каб паспрабаваць наладзіць значэнні альбо сінтаксіс некаторых зменных.


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

9 каментарыяў, пакіньце свой

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны.

*

*

  1. Адказны за дадзеныя: Мігель Анхель Гатон
  2. Прызначэнне дадзеных: Кантроль спаму, кіраванне каментарыямі.
  3. Легітымнасць: ваша згода
  4. Перадача дадзеных: Дадзеныя не будуць перададзены трэцім асобам, за выключэннем юрыдычных абавязкаў.
  5. Захоўванне дадзеных: База дадзеных, размешчаная Occentus Networks (ЕС)
  6. Правы: у любы час вы можаце абмежаваць, аднавіць і выдаліць сваю інфармацыю.

  1.   ёпкай сказаў

    Псеўданімы - лепшыя. Я не лічу дрэнным некаторыя, якія па змаўчанні ўключаюць у bashrc: la (ls -a) і ll (ls -l). У апошні дадаю параметр -h.

    Іншыя практычныя псеўданімы:
    s = 'судо'
    cd1 = 'cd ..'
    cd2 = 'кд ../ ..'
    rmd = 'rm -r' (я выкарыстоўваю яго для выдалення каталогаў з файламі)
    shutdown = 'sudo shutdown -h now'
    del = 'trash-put' (перамясціць файлы ў сметніцу, каманда пакета trash-cli)

  2.   тон сказаў

    Паколькі я бачыў гэты псеўданім у мінулым годзе на Reddit, ён быў маім улюбёным:
    псеўданім fuck = 'sudo $ (гісторыя -p !!)'

  3.   Марцін сказаў

    Артыкул і знешні выгляд кансолі вельмі добры. Некаторыя ўклады:
    - У Ubuntu псеўданімы можна змясціць у асобны файл (.bash_aliases) у астатніх дыстрыбутывах, якіх я не ведаю, але ён робіць гэта, дадаючы наступныя радкі ў .bashrc:
    калі [-f ~ / .bash_aliases]; потым
    . ~ / .bash_aliases
    fi
    Гэта дазваляе мець больш упарадкаваныя псеўданімы, і для такіх непамятлівых, як я, вы можаце дадаць гэты псеўданім, які паказвае файл са спісам псеўданімаў:
    псеўданім lsalias = 'больш ~ / .bash_aliases'
    - У мяне таксама рэдка выкарыстоўваецца тэкставы файл каманды (які я звычайна не памятаю), які называецца command_utiles.txt, і ён гатовы з наступным псеўданімам: alias cutil = 'больш ~ / command_utiles.txt'
    - Іншыя псеўданімы, якія я выкарыстоўваю:
    псеўданім cdu = 'cd ~'
    псеўданім lof = 'ls -lSr | больш' # Паказвае падрабязна файлы, адсартаваныя па памеры
    псеўданім lod = 'du -sk * | sort -rn '# Паказаць каталогі, адсартаваныя па памеры
    alias deo = 'du -sh' # Ацаніце месца, якое займае пазначаны рэж
    псеўданім psa = 'ps -eafw | больш '# Паказаць усе працэсы з дадатковымі
    псеўданім psg = 'ps -eafw | grep '# Паказаць пазначаны працэс
    - І, нарэшце, альтэрнатыва для карыстальнікаў, якую я зрабіў:
    SYSTEM_NAME = $ (cat / etc / os-release | grep NAME | grep -v "ВЕРСІЯ" | 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}' | рэха 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 ~ | сартаваць -r | awk '{раздрукаваць $ 1}')

    ачысціць
    printf% 130s | tr »» «=»
    выкінуў ""
    рэха «ДАТА:«date +%c --date='+1 year'
    рэха «КЕРНЕЛ:«uname -o»<«uname -r«> <«uname -m«>»
    рэха "РАЗМЕРКАВАННЕ:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    рэха "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Ядра," $ CACHE_CPU "Кэш"
    рэха «ВЫКАРЫСТАНАЯ ПРАСТОРА:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    выкінуў ""
    ############################
    рэха "КАРЫСНЫЯ КАМАНДЫ:"
    echo »- Усталюйце RPM у сістэме пакетаў DEB: alien -c -i package.rpm»
    рэха »- Рэкурсіўна мяняць карыстальніка і групу файлаў: карыстальнік 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
    рэха »- ПАКАЗАЦЬ псеўданімы lsalias»
    printf% 130s | tr »» «=»
    выкінуў ""
    выкінуў ""
    # PS1 = »[\ e [33; 1m] ┌─ ([\ e [34; 1m] \ u @ \ h [\ e [37; 1m]) * * * * \ d - \ t * * * * {[\ e [31; 1m] \ w [\ e [33; 1m]} \ n└──┤ [\ e [32m] # »
    PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «

    1.    абадон с сказаў

      чаму лепш не напісаць уласны артыкул?

  4.   абадон с сказаў

    ГЭТА ПАДРУЧНІКІ, ЯКІЯ ЯМ ХОЧУ !!!!!!!!!

  5.   Інжынер Хасэ Альберт сказаў

    Ну, я вельмі рады, што вам спадабалася і падалі!

    Заўтра я спадзяюся апублікаваць яшчэ адзін артыкул! Схілы.

  6.   карыстальнік-арх сказаў

    Прывітанне і бясконцая падзяка за абмен гэтай інфармацыяй.
    Я мала ведаю пра адміністраванне GNU / Linux (я проста эмпірычны і цікаўны карыстальнік без акадэмічнай падрыхтоўкі), але памятаю, як чытаў на якім-небудзь сайце пра праблемы бяспекі з эскалацыяй прывілеяў; некаторыя каманды і канвееры ў сцэнарыі .bashrc, мне здаецца, яны маглі б палегчыць працу хакера ці ўзломшчыка.
    З павагай і вельмі ўдзячны.

  7.   Інжынер Хасэ Альберт сказаў

    З дапамогай Shell Scripting аптымізацыя тэрмінала простая, паглядзіце, як далёка вы можаце пайсці, зрабіўшы добры Shell Scripting.

    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

  8.   Луг сказаў

    Выдатны падручнік! Любая кніга, якую вы рэкамендуеце на Linux, каб даведацца сцэнарыі абалонкі, канфігурацыі, бяспеку сервера? Дзякуй