본문 바로가기

반응형

[OS]Operating System/[Linux]

(19)
[Linux] 사용자, shell 개요Linux 시스템에는 관리자 작업을 위한 전용 그래픽 유틸리티를 갖추고 있다.하지만 아래와 같은 이유로 command line 모드에서 인터페이스를 사용할 수 있어야 한다.대부분의 시스템 명령어들은 모든 Linux 배포판에서 공통으로 사용되며, 그래픽 도구의 경우 그렇지 않을 수 있다.시스템이 올바르게 시작되지 않더라도 백업 명령 인터프리터에는 여전히 접근할 수 있을 수 있다.원격 관리는 SSH 터미널이 있는 command line에서 수행된다.서버 자원을 보존하기 위해, 그래픽 인터페이스는 설치되지 않거나 필요할 때에만 실행된다.관리 작업은 스크립트를 통해 수행된다.명령어를 통해 관리자는 Linux 터미널에 연결하여 리소스와 파일을 관리하고 스테이션, 터미널 및 연결된 사용자 등을 식별할 수 있다...
[Linux] Linux Partition 리눅스 파티션리눅스 파티션은 디스크 공간의 분할을 의미한다.리눅스 운영 체제는 특정 기능을 수행하는 다양한 디렉토리가 있는 계층적 파일 시스템 구조를 사용한다.하드 디스크 드라이브의 공간을 별도의 데이터 영역으로 분할하여 관리할 수 있다.즉 하나의 물리 저장 장치를 시스템 내부에서 여러 디스크 공간으로 나누는 작업을 리눅스 파티셔닝이라고 한다.리눅스 파티션 종류Primary Partition (주 영역 파티션)물리적 파티션 최대 4개Extend Partition (확장 영역 파티션)논리적 파티션 최대 1개Logical Partition(논리 영역 파티션)Extend Partition 안에 만들 수 있는 파티션으로, SCSI 한 개 당 최대 15개 (12개 이상은 권하지 않음)리눅스 파티션 구성root 파..
[Linux] 파일 이동 및 이름 바꾸기 mv 명령어파일과 디렉토리를 한 디렉토리에서 다른 디렉토리로 이동하거나 이름을 바꾸기 위해 mv 명령어를 사용한다.새로운 이름을 지정하지 않으면 기존 이름이 유지된다.mv [옵션] [이동 할 파일] [이동 될 위치]이동할 파일이 여러개인 경우: mv [이동 할 파일1] [이동 할 파일2] [이동할 파일3] ... [이동 될 위치]mv 명령어 예시intro 파일이 manual/chap1 디렉토리로 이동되고, intro 이름이 manul 디렉토리의 chap1로 변경된다.mv intro manual/chap1동일한 이름을 유지하고, 파일을 다른 디렉토리를 유지하려면 아래와 같이 사용한다.mv chap3 manual그러면 chap3 파일이 manul/chap3로 이동한다.또한 동일한 디렉토리에 위치하고, 파일명..
[Linux] retry logic in script linux command로 script를 (특히 jenkins 배치잡으로) 실행할 때 배치잡이 실패하는 경우 횟수 조건을 줘서 retry 하도록 하는 command를 알아본다. #!/bin/bashslack_webhook_url = retry_limit=3# secondstimegap=60job_step_result=$?echo "job_step_result: $job_step_result"if [[ $job_step_result -ne 0 ]]; then for i in $(seq 1 $retry_limit); do echo "retry $i time, waiting $timegap sec..." # message to slack message="retry $..
[Linux] bash shell - 조건문 사용법 Bash shell - if문#!/bin/bashif [ 조건식 ] # 조건식에는 아래 비교 연산자를 활용then 명령어elif [ 조건식 ]then 명령어else 명령어fi# 아래처럼 줄여서 사용도 가능하다.if [ 조건식 ]; then 명령어elif [ 조건식 ]; then 명령어else 명령어fi# 이중 괄호로 조건식을 묶으면 산술 연산자(>, 조건문산술연산자-eq : 두 수가 같음(equal) if [ "$a" -eq "$b" ]-ne : 두 수가 같지 않음(not equal) if [ "$a" -ne "$b" ]-gt : 왼쪽이 오른쪽보다 더 큼(greater than) ..
[Linux] shell code - [], [[]], (), (()) 차이 예를 들어 shell script에서 if문을 사용할 때, 일반적으로 []를 주로 사용했을 것이다.결론을 먼저 말하자면 []는 sh 기반이고, [[]]는 bash 기반으로 동작하는 차이가 있다.또한 []는 옛날 리눅스 환경의 잔해이다.[[]]는 []의 개선된 버전으로, 좀 더 직관적으로 표현하는 방식이 [[]]이다. 차이점[] 표현[[]] 표현바이너리 처럼 작용한다.bash에 따라 다르다.기본적으로 'not'연산자를 지원하지 않는다.단일 조건만 지원한다.대괄호 내에서 논리 연산자를 사용할 수 있다.test와 동의이다.새롭게 개선된 버전이며, 프로그램이 아닌 키워드이다. 개선점대괄호 안에 &&, ||와 같은 and, or 조건을 사용할 수 있다.큰따옴포 ""를 사용하지 않아도 된다.정규 표현식 사용시 패턴..
[Linux] shell script - python exit code exit code?종료 코드란 명령 또는 스크립트가 실행된 수 수신된 코드값이다. 종료 코드는 명령/스크립트의 결과에 대한 단서(성공/실패/기타 조건)를 보고하는 시스템이다.동의어로, '종료 상태', '반환 코드', '종료 상태 코드'가 있다.누군가 요청하지 않는 한 종료 코드는 스스로 출력하지 않는다.종료 코드는 코드 디버깅에 사용된다.종료 코드는 다양한 시스템 통합에 유용하다.python~shell exit codeshell로 python script를 실행하게 되면 python script 실행 결과에 대한 exit code를 반환해 볼 수 있을 것이다.이때 python은 'Sucess Exit Code'값으로 '0', 'Failure Exit Code'값으로 '1'을 반환한다.또는 사용자 지정 종..
[Linux] $?의 의미 $? 의 의미bash shell에서 가장 최근에 실행한 명령어의 종료 상태(status)를 가진 변수이다.또는 가장 최근에 실행한 함수의 return값을 가진 변수를 의미한다.% echo hellohello% echo $?0# 최근 명령어의 종료 상태가 정상% true% echo $?0% false% echo $?1주의할 점$? 는 앞서 언급했듯이 '가장 최근 실행 결과'를 저장하는 변수임을 잊으면 안된다.다시말해서, 가장 최근 실행 결과 코드가 무엇인지 출력하기 위해 다음과 같은 실수를 저지르면 안된다.잘못된 사용 예상황: shell을 통해 script 구동 후 결과에 따라 if문으로 처리하기python3.9 ./test.pyecho "result code: $?"if [[ $? -ne 0 ]]; th..

반응형