묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결리눅스 쉘 스크립트
환경변수 PWD, OLDPWD 관련하여 질문드립니다.
안녕하세요 강사님.환경변수 PWD, OLDPWD에 관하여 질문드립니다. 쉘을 두개 띄워놓고 해당 환경변수를 출력하면 각 쉘에서 나온 값이 다르게 나오더라고요.어떻게 서로 다른 쉘에서 같은 문자의 환경변수가 다른 값을 갖는지 궁금합니다. 아래는 구글링을 좀 하면서 서로 다른 값을 가질수 있는 방법을 생각해본것인데 맞게 추론한것인지 궁금합니다. export로 로컬 환경변수를 생성 또는 수정할 수 있다. 그렇다면 혹시 PWD, OLDPWD는 로컬 환경 변수로 동작하는 것이 맞을까요?그리고 만약 로컬 환경변수가 맞다면 cd를 실행하면 cd 프로그램(프로세스?)에서 환경변수를 바꾸는 것인지, cd 프로그램은 쉘의 자식 프로세스인데 자식 프로세스가 부모 프로세스의 로컬 환경변수를 바꿀 수 있는지 궁금합니다.
-
미해결리눅스 쉘 스크립트
함수 return 값과 출력하는 값 동시에 가져오기
안녕하세요 강사님.함수 return 값을 받고 싶은 경우 함수를 실행하고 $? 로 받을 수 있고, 함수가 출력하는 값을 받고 싶은 경우 함수를 $()로 실행하고 $?로 받는 것으로 이해했습니다.그렇다면 함수를 한번만 실행하고 return 값과 출력 값을 모두 받을수 있는 방법이 있을까요? 두개의 값을 모두 얻고 싶으면 함수를 두번 다르게 실행하여 값을 얻는 것밖에 생각나지 질문 드립니다.
-
미해결리눅스 필수 유틸리티 4종 마스터 - awk, sed, grep, find
그룹 정규표현식 질문
s002_정규표현식 강의에서 마지막 예문admin$ echo "Give me liberty, or Give me death" |grep -P '(Give).+\1' 로 Give 에 괄호로 그룹지정을 해주셨다고 하셨는데 왜 마지막 Give까지 매칭이 되는지 궁금합니다 아니면 강의 후반에 해당 내용이 자세히 다뤄지는지 문의드립니다
-
미해결리눅스 쉘 스크립트 마스터
BASH_REMATCH 변수가 어디서 나온거죠?
관련 답변 읽어보았으나 여전히 이해가 안되서 질문드립니다. 어디서 BASH_REMATCH 변수가 나오는건지 모르겠습니다.$LANG =~ $locale이 되면 자동으로 BASH_REMATCH가 생성되는건지 어쩐건지 설명 없이 바로 그냥 저 변수에 2번째 요소와 1번째 요소를 호출하는게 이해가 안됩니다. 그리고 =~도 무슨 말씀인지 모르겠습니다. 대체로 명령어 실행했을 때 현상 만을 설명해주시고 원리 설명이 없어서 이해가 너무 어렵습니다. 참고할만한 정규표현식 관련 사이트 같은게 있으면 추천 좀 부탁드립니다.
-
해결됨시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script
강의 자료 제공 가능할까요?
복습하기가 어렵네요.. ㅜㅠ
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
버츄얼박스 설치에러
안녕하세요 버츄얼박스 최신버전을 다운로드 했다가 다시 올려주신 버츄얼박스 버전으로 다운로드를 하는데 설치에러가 나오면서 다운로드가 되지않습니다. 이럴 경우 어떻게 해결할수 있을까요?
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
스크립트 실행 결과 미표시
텔레그램봇으로 알림이 안뜨는건 nginx의 용량이 안차서 그런것 같은데 혹시 고의적으로 용량을 늘릴 수 있는 방법 있을까요?
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
맥북 지원
안녕하세요. 맥북의 m시리즈로는 아직 수강을 할수 없는걸까요?
-
해결됨시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script
codeonweb 관련 질문
직장에서는 가상머신, 집에서는 웹 기반으로 실습하려는데 codeonweb에 가입하려면 초대코드? 토큰이 필요하다고 하네요ㅠ 토큰을 받을 수 있을까요?
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
[해결방법] 네트워크 어댑터 에러 메시지
안녕하세요.이곳에서 실습환경 새로운 공지도 보았고여러 문의글과 댓글도 보았는데 저도 안되는 쪽이 였어요 1) 네트워크 에러 해결방법 VM 3개 전부 -> 네트워 -> 어댑터2, 어댑터3 -> '네트워크 어댑터 사용하기'이거를 사용 안함에 체크해버리고다시 VM을 키면 정상적으로 켜짐하지만 이 상태에서는 당연 네트워크 환경이 달라서 스크립트 실습이 안될테니부팅된 VM 3개를 다시 꺼준다음어댑터2, 어댑터3을 다시 사용함으로 바꾸어주고 다시 vm 키면앞으로는 에러메시지 발생 안하고 VM 이 잘 켜집니다. 2) 버추어 박스의 리눅스에 마우스를 클릭하면 윈도우로 마우스가 빠져나오지 못할 때 버추어박스에서 '마우스잡기' 라는 기능이 있어요!오른쪽 CTRL 키를 누르면 마우스가 빠져나옵니다. 만약 키가 먹통이여서 윈도우로 마우스가 빠져나오지 않는다면단축키 설정에서 '키보드 잡기' 의 단축키를 ctrl + alt 로 변경해주세요 ======================================================= 공지와 압축파일 안에 있는 메모장에 수정할 사항 의견 드립니다."이렇게 만든 가상머신은 vagrant를 사용할 수 없으니 가상머신을 시작하면 열리는 창에서실습을 진행하시면 됩니다."↑↑↑↑"이제 제공되는 ova파일에는 vagrant 를 사용하여 서버 구축하는 단계가 필요 없이 세팅이되었으니 바로 실습을 진행하시면 됩니다.".... 라고 이렇게 수정해주시면 수강생 분들이 잠시 혼자 갸우뚱하지 않을 듯합니다. 여러 IT 관련해서 강의 제작하시는 업체나 개인분들 보면서클라우드 외에는 인프라쪽에 정말 많이 도움되는 강의는 없었다고 생각했어요돈 되는 개발자용 강의만 만들어도 될텐데.....얼마나 많이 팔릴지 모르는건데 인프라쪽에도 도움되는 아주 좋은 내용을 선정해서이렇게 강의로 내주셔서 감사하게 생각해요.인프라와 리눅스 관련된 좋은 강의 기다릴게요~
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
DB 백업 스크립트 실행 오류
[스크립트 경로][root@cent2 backup]# pwd /root/backup [root@cent2 backup]# [root@cent2 backup]# ls db_backup.sh [스크립트 파일 내용]#!/bin/bash ## 변수 설정 HOST="$(/usr/bin/hostname)" LOG="/tmp/backup.log" PUSH="/root/monitor/telegram_example.sh" DATE="$(/bin/date +%Y.%m.%d)" # 백업할 디렉토리/파일 지정 BAK_LIST="/etc/my.cnf.d" # 백업 디렉토리 BAK_PATH="/mnt/BACKUP/${HOST}" # 백업 파일명 BAK_FILE="${BAk_PATH}/${DATE}_${HOST}.tgz" # DB백업디렉토리 DB_BAK_PATH="/root/backup/xtrabackup_backupfiles" # DB백업파일명 DB_BAK_FILE="${BAK_PATH}/${DATE}_${HOST}_DB.tgz" ## 스토리지에 마운트 /usr/bin/mount /mnt ## 로그파일 생성 /usr/bin/touch "${LOG}" ## 백업 디렉토리 확인 if [ -e "${BAK_PATH}" ] then # 백업디렉토리가 존재한다면 /bin/echo "백업디렉토리가 존재합니다." else /usr/bin/mkdir -p "${BAK_PATH}" fi ## --- 로그기록 시작 { /bin/echo /bin/echo "===== 백업 시작 시각 : " /bin/date /bin/echo ## 백업 # DB dump /usr/bin/mariabackup \ --backup \ --no-lock \ --target-dir="${DB_BAK_PATH}" # DB apply logs /usr/bin/mariabackup \ --prepare \ --target-dir="${DB_BAK_PATH}" # p: 퍼미션 유지 P: 절대경로 유지 /usr/bin/tar czpPf "${BAK_FILE}" ${BAK_LIST} # db백업 디렉토리 압축 /usr/bin/tar czpPf "${DB_BAK_FILE}" ${DB_BAK_PATH} # 백업파일 정보 NAME="$(/usr/bin/ls -al "${BAK_FILE}" | awk '{print $9}')" SIZE="$(/usr/bin/ls -al "${BAK_FILE}" | awk '{print $5}')" /bin/echo "===== 백업파일 정보: " /bin/echo " | 파일명 : ${NAME} " /bin/echo " | 파일크기 : ${SIZE}Byte " /bin/echo # DB 백업파일 정보 NAME="$(/usr/bin/ls -al "${DB_BAK_FILE}" | awk '{print $9}')" SIZE="$(/usr/bin/ls -al "${DB_BAK_FILE}" | awk '{print $5}')" /bin/echo "===== DB 백업파일 정보: " /bin/echo " | 파일명 : ${NAME} " /bin/echo " | 파일크기 : ${SIZE}Byte " /bin/echo # 백업종료시각 /bin/echo /bin/echo "===== 백업 종료 시각 : " /bin/date /bin/echo }>|"${LOG}" ## --- 로그기록 끝 ## 스토리지에 언마운트 /usr/bin/umount /mnt ## 텔레그램으로 백업 로그를 전송 "${PUSH}" "${HOST}" "$(/usr/bin/cat "${LOG}")" ## 로그파일 삭제 /usr/bin/rm -f "${LOG}" [발생 에러][root@cent2 backup]# [root@cent2 backup]# ./db_backup.sh 백업디렉토리가 존재합니다. [00] 2023-10-17 13:55:08 Connecting to MySQL server host: localhost, user: not set, password: not set, port: not set, socket: not set [00] 2023-10-17 13:55:08 Failed to connect to MySQL server: Access denied for user ''@'localhost' (using password:NO). /usr/bin/mariabackup based on MariaDB server 10.3.35-MariaDB Linux (x86_64) /usr/bin/mariabackup: Can't change dir to '/root/backup/xtrabackup_backupfiles/' (errno: 2 "No such file or directory") [00] 2023-10-17 13:55:08 can't my_setwd /root/backup/xtrabackup_backupfiles/ /usr/bin/tar: /root/backup/xtrabackup_backupfiles: Cannot stat: No such file or directory /usr/bin/tar: Exiting with failure status due to previous errors [root@cent2 backup]# [root@cent2 backup]# 에러가 발생하는데 어디를 수정해야할까요?
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
실습환경 공지사항 8-1 네트워크 에러 질문 드립니다.
안녕하세요. 실습환경 만들기 8-1 네트워크 에러 발생 시 해결 방법에 대해 질문 드립니다.아래 글에서 먼저 질문을 올려주신 분들의 답변을 참고해서 해결 방법을 따라해 보았는데..제시해주신 두 가지 방법 모두 해결되지 않아서 질문 올립니다. VirtualBox 버전은 6.1.32 버전으로 설치하였고, 8-1 설정처럼 사용 안 함을 선택하여 종료한 후 다 시 우클릭하여 사용으로 선택해준 후에 각 서버를 시작 하였습니다. ==================================================아래는 다른 분이 질문 해주신 글에서 댓글로 제시해주셨던 답변 입니다.첫번째VirtualBOX를 삭제재부팅VirtualBOX를 재설치재부팅가상서버를 시작 두번째VirtualBOX를 실행좌측의 가상서버 Cent1을 마우스 우클릭'Discard Saved State... Ctrl+J' 메뉴를 눌러 저장된 상태를 삭제가상서버를 시작==================================================추가로 제시해 준 두 번째 방법 3. 'Discard Saved State... Ctrl + J' 메뉴는 마우스 우클릭 시에 보이지 않아서 사진 추가로 첨부 드립니다.위와 같은 상황에서 추가 해결 방안이 있으시면 답변 부탁 드리겠습니다.저도 추가로 다시 한 번 찾아보면서 재설치도 해보겠습니다.감사합니다.
-
해결됨리눅스 쉘 스크립트 마스터
${object%%:*}, ${object#*:}는 어떤 뜻인가요
안녕하세요."배열과 glob 그리고 루프문" 강의를 듣고 실습중인데아래 KEY와 VALUE 쪽에 ${object%%:*}, ${object#*:} 여기서 쓰인 기호들 뜻이 궁금합니다 root@eb0201ac5fe0:/home/test# ARRAY=( "sky:blue" "snow:white" "night:black") root@eb0201ac5fe0:/home/test# root@eb0201ac5fe0:/home/test# for object in "${ARRAY[@]}" ; do > KEY=${object%%:*} > VALUE=${object#*:} > printf "%s's color is %s.\n" "$KEY" "$VALUE" > done sky's color is blue. snow's color is white. night's color is black. root@eb0201ac5fe0:/home/test#
-
해결됨시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script
Ubuntu / Network Interface SysConfig 파일 찾는 법
실무에서 자주 사용하는 명령어_네트워크 관련 명령어에서 Network Interface를 확인하는 명령어를 알려주셨습니다.CentOs : /etc/sysconfig/network-scripts/Ubuntu : /etc/network/interfaces하지만 AWS EC2 Ubuntu@20.04에서는 netplan 모듈로 Network Interface 설정이 관리되고 있습니다.따라서, /etc/netplan 하위에 있는 *.yml 파일을 보면 해당 설정을 볼 수 있습니다! 아래와 같은 이름으로 있습니다. 01-network.yaml 10-wifi.yaml 50-cloud-init.yaml(Linux 배포판 공급사에 따라서 조금 다를 수 있을 것 같습니다...)
-
해결됨시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script
Ubuntu / Bareword "test0" not allowed while "strict subs" / 해결법
저처럼 실습환경 따로 구성하기 귀찮아서 AWS EC2 Ubuntu@20.04 같은 환경에서 하시는 분들은 apt install rename 후에 아래 명령어가 오류가 뜰 것 같습니다.파일 : ls -1test01 test02 test03명령어rename test0 test test0?오류 : Bareword "test0" not allowed while "strict subs" in use at line 1, in: test0일반적으로 Ubuntu Shell에서 뜨지 않는 에러인데,,,,아마 강사님이 사용하시는 운영체제인 CentOS의 rename모듈이 Perl (언어)에서 만들어졌고 해당 모듈에서 문법이 달라진 것 같습니다.따라서 아래 문법으로 진행하시면 성공할 수 있습니다.rename 's/test0/test/' test0?test0 이 변경전 문자열, test 이 변경할 문자열, test0? 이 대상 문자열역순으로 돌리시려면 아래로 입력하시면 됩니다.rename 's/test/test0' test0?
-
미해결리눅스 쉘 스크립트 마스터
./euid.sh
.이 부분에서 euid라는 쉘 스크립트를 어떤 사용자로 실행하는 것인지 나타내주고.run as root 는 root계정으로 실행을 하라고 답변을 받은거다 라고 생각하면 되는건가요?
-
미해결리눅스 필수 유틸리티 4종 마스터 - awk, sed, grep, find
우분투 가상환경으로 실습자료가 다운이 안되시는분들!!
저도 안되서 직접 해결했습니다 우분투 가상환경에서 파이어폭스로 인터넷 진입 후네이버 > 인프런 들어가셔서 자료 다운받기xftp로 밀어넣기 파일질라 프로그램으로 밀어넣기등의 방법이 있습니다 참고 바랍니다!
-
미해결리눅스 필수 유틸리티 4종 마스터 - awk, sed, grep, find
큰따옴표 안에서 큰따옴표 의미
s009_GREP 4:43 부근강의에서 "인용부호 사이에 들어가 있는 문자중에서 특별히 다음과 같은 문자에 한해서만 해석을 하게 돼 있습니다." 라고 말씀하셨는데.. 다음과 같은 문자가 '큰따옴표, 백슬러시, 달러, 백틱' 4가지로 이해가 됩니다.큰따옴표 안에서 백슬러시, 달러, 백틱은 설명해주셨는데 큰따옴표 안에서 큰따옴표가 또다른 의미가 있나요? 강의 잘 듣고 있습니다. 감사합니다~
-
미해결리눅스 쉘 스크립트 마스터
touch 'Gone with the wind.mp3' 입력 결과가 다릅니다
안녕하십니까,"인용문" 강의에서$ touch 'Gone with the wind.mp3'명령을 입력하면강의에서는 작은따옴표 없이 Gone with the wind.mp3 파일이 생성되는데, 제 터미널에선'Gone with the wind.mp3' 파일명으로 작은따옴표가 함께 생성이 됩니다. 원인이나 작은따옴표 없이 생성하려면 어떻게 해야할지 궁금합니다. 참고로 현재 우분투 20.04버전에서 실습중입니다.감사합니다.
-
미해결리눅스 쉘 스크립트 마스터
스크립트에서 %는 무엇을 의미하나요?
1.스크립트에서 %는 무엇을 의미하나요?2.그리고 bat 파일로 되어 있는 것도 쉘 스크립트처럼 읽을 수 있는 건가요?