셸 스크립팅을 적용하여 SysAdmin 터미널을 얻는 방법

El 쉘 스크립팅, 그것은 복잡한 주문 실행GNU / Linux 터미널 (콘솔), 우리의 일상적이고 중요한 활동을 자동화하는 것은 매우 유용합니다. GNU / Linux 운영 체제, 이를 통해 자원과 시간.

Selection_007

따라서 터미널에서 사용하면 복잡한 명령을 스크립트를 통해 수동 또는 자동으로 실행하거나 자동 로드 파일 내에서 프로그래밍된 루틴 또는 운영 체제 내에서 예약된 작업을 실행할 수 있습니다. GNU / 리눅스. 그리고 중간, 고급 또는 SysAdmin 사용자 el 일정(자동화) 저장할 호스트(PC/서버)의 작업, 경고 및/또는 알림 시간 / 노동 수작업 또는 직접 대면 실행은 높은 수준의 전문가로서 작업을 잘 수행하는 데 기본적이고 필수적인 것입니다.

다음으로 방법을 보여드리겠습니다. 데이터(값/매개변수) 이전에 명령에 의해 변수에 저장됨 배쉬 쉘 또는 호환 가능하면 실용적이고 간단한 방법으로 GNU/리눅스 운영 체제의 터미널에 표시될 수 있습니다. 터미널 프롬프트를 조정하는 것 외에도.

XNUMX단계: 사용자의 .bashrc 편집

선택한 편집기(vi, nano 등)로 다음을 편집합니다. .bashrc 파일 예를 들어 다음과 같이 사용자의 집에 있어야 합니다. "/home/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.: &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 그리고 언어 bash 쉘 터미널의 고급 수준을 위해. ssh를 통해 원격 세션을 시작할 때도 동일한 결과를 얻을 수 있습니다. 이에 대해서는 추후 게시물에서 확인할 수 있습니다.

이 작은 사람들이 "팁" 기본적이지만 유용한 최적화를 쉽게 수행 할 수 있도록합니다. 일반적으로 기술, 컴퓨팅, 자유 소프트웨어 및 GNU / Linux.

조언: 명령 줄이 실행되지 않거나 올바른 값을 표시하는 경우 명령 프롬프트의 각 섹션을 수동으로 테스트하여 일부 변수의 값 또는 구문을 조정하십시오.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   이쁘다

    별칭이 가장 좋습니다. bashrc에 기본적으로 포함된 la(ls -a) 및 ll(ls -l)이 나쁘지 않은 것 같습니다. 마지막 항목에 -h 매개변수를 추가합니다.

    기타 편리한 별칭:
    s = '스도'
    cd1 = 'cd..'
    cd2 = 'cd ../..'
    rmd = 'rm -r' (파일이 있는 디렉토리를 제거하는 데 사용함)
    종료 = 'sudo 종료 -h 지금'
    del = 'trash-put'(파일을 휴지통으로 이동, trash-cli 패키지 명령)

  2.   음정

    작년에 Reddit에서 이 별칭을 본 이후로 제가 가장 좋아하는 것입니다.
    별칭 fuck='sudo $(history -p !!)'

  3.   마틴

    콘솔에 제공하는 기사와 모양이 매우 좋습니다. 일부 기여:
    – 우분투에서 별칭은 내가 모르는 나머지 배포판의 별도 파일(.bash_aliases)에 배치할 수 있지만 .bashrc에 다음 줄을 추가하여 수행합니다.
    if [-f ~ / .bash_aliases]; 그때
    . ~ / .bash_aliases
    fi
    이렇게 하면 별칭을 더 많이 정렬할 수 있으며 저와 같이 잊어버리는 사람들을 위해 별칭을 나열하는 파일을 표시하는 이 별칭을 추가할 수 있습니다.
    aliases lsalias='more ~/.bash_aliases'
    – 나는 또한 commandos_utiles.txt라는 드물게 사용되는 명령(일반적으로 기억하지 못함)의 텍스트 파일을 가지고 있으며 다음 별칭으로 나열합니다. alias cutil='more ~/commandos_utiles.txt'
    – 내가 사용하는 추가 별칭:
    별칭 cdu='cd ~'
    alias lof='ls -lSr |more' # 파일을 크기별로 정렬하여 자세히 표시
    별칭 lod='du -sk * | sort -rn' # 크기별로 정렬된 디렉토리를 보여줍니다.
    alias deo='du -sh' # 표시된 디렉토리가 차지하는 공간 추정
    별칭 psa='ps -eafw | more' # more가 포함된 모든 프로세스 표시
    별칭 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 버전= | sed -n '1p' | sed 's/VERSION=//' | sed 's/»//g')
    CPU_MANUFACTURER=$(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)
    CPU_NUCLEO=$(grep "cpu 코어" /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 '{print $1}')

    선명한
    printf %130s |tr » » «=»
    던졌다 ""
    echo "날짜: "date +%c --date='+1 year'
    에코 "커널: "uname -o» <«uname -r«> <«uname -m«> »
    echo "배포: "$SYSTEM_NAME" "$SYSTEM_VERSION" "
    echo "CPU: "$CPU_MODELO", "$CPU_NUCLEO" 코어, "$CACHE_CPU" 캐시"
    echo "사용된 공간: "$DATA_USER
    printf %130s |tr » » «=»
    던졌다 ""
    ####################
    echo "유용한 명령: "
    echo » – DEB 패키지 시스템에 RPM 설치: alien -c -i package.rpm»
    echo » – 사용자 및 파일 그룹을 재귀적으로 변경: chown -hR user:group [file or dir]»
    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;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.   잉. 호세 앨버트

    쉘 스크립팅을 사용하면 터미널을 쉽게 최적화할 수 있습니다. 좋은 쉘 스크립팅을 수행하여 얼마나 멀리 갈 수 있는지 확인하십시오.

    LPI-SB8 테스트 ScreenCast (LINUX POST INSTALL-SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Screencast 참조 : https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   넓은 땅

    훌륭한 튜토리얼! 쉘 스크립팅, 구성, 서버 보안을 잘 배우기 위해 Linux에 대해 추천하는 책이 있습니까? 감사합니다