본문 바로가기

CentOS/Study

(196)
[Study38]Linux에서의 프로세스 정보 및 관리 이해 - 프로세스 관리 프로세스 관리 (백그라운드와 포그라운드 관리 - &, bg, fg, jobs) 명령어를 입력하여 프로그램을 실행하면, 해당 프로세스가 실행되는 동안 사용자는 다른 명령어를 입력할 수 없습니다. 이는 셸 프롬프트가 해당 프로세스의 실행을 위해 사용 중이기 때문입니다. 그러나 명령행 끝에 &(앰퍼샌드)를 붙이면, 해당 프로세스는 백그라운드에서 실행되며, 사용자는 여전히 다른 명령을 입력할 수 있습니다. 즉, 쉘 프롬프트는 떨어지지 않습니다. 이렇게 백그라운드에서 실행되는 프로세스는 사용자에게 보이지 않습니다. 백그라운드에서 실행되는 프로세스를 확인하려면 $ jobs 명령어를 사용하여 확인할 수 있습니다. 또한, 포그라운드로 전환하기 위해서는 $ fg 명령어를 사용할 수 있습니다. 반대로, 포그라운드에서 실행..
[Study37]Linux에서의 프로세스 정보 및 관리 이해 - 프로세스 정보 / PID / PPID 프로세스란? 프로세스는 컴퓨터 시스템에서 실행 중인 프로그램을 가리킵니다. 이는 프로그램이 메모리에 로드되어 실제로 실행되고 있는 상태를 말합니다. 각 사용자의 실행 단계에서 공유되는 응용 프로그램은 각각 하나의 프로세스를 가지게 됩니다. 프로세스는 운영 체제의 제어를 받아 실행(running), 대기(waiting), 중단(stopped), 좀비(zombie) 등의 상태 중 하나에 있게 됩니다. 이러한 상태는 프로세스가 자원을 얻을 수 없거나, 어떤 이벤트를 기다리고 있거나, 실행을 멈춘 상태 등을 나타냅니다. 프로세스는 여러 가지 자원을 사용합니다. 해당 명령을 수행하기 위해 CPU를 점유할 수 있으며, 명령어와 데이터를 저장하기 위해 물리적인 메모리를 사용합니다. 또한 프로세스는 입출력 장치, 파일..
[Study36]Linux Bash 셸 기술로 생산성 향상 - 환경파일(Environment File) 사용자 환경 파일(Bash Initialization) 사용자의 Bash 초기화 파일은 셸이 시작될 때 실행되는 스크립트입니다. 이 파일은 사용자가 로그인할 때마다 실행되며, 사용자가 수행하는 작업에 대한 환경을 설정합니다. 초기화 파일에는 다양한 환경 변수 및 함수를 정의할 수 있으며, 사용자의 편의성을 높이기 위해 에일리어스(alias)를 설정할 수도 있습니다. 또한 초기화 파일에는 셸 프롬프트와 관련된 설정도 포함됩니다. 이러한 설정을 사용하면 사용자는 콘솔 창에서 불필요한 정보를 제거하거나, 프롬프트의 색상과 스타일을 변경할 수 있습니다. [1] 환경 파일이 읽혀지는 순서 [1-1] 로그인시에 읽혀지는 환경 파일 로그인할 때 환경 설정 파일이 읽혀집니다. 환경 파일은 사용자가 로그인 할 때 필요한..
[Study35]Linux Bash 셸 기술로 생산성 향상 - 히스토리(history) history 명령어 사용자가 로그인 하게 되면 사용자의 명령어를 저장하기 위해서 Stack 공간이 할당된다. Stack 공간은 ksh 쉘을 사용하고 있다면, 기본값은 1000개의 명령어를 저장할 수 있는 공간이 할당된다. bash 쉘은 1000개의 명령어를 저장 할 수 있다. 또한 sh 쉘은 히스토리 기능이 없다. 위에서 언급한 sh 쉘의 제한 사항 외에도, 명령어의 크기 및 사용 빈도가 저장 가능한 명령어 수에 영향을 미칠 수 있습니다. 또한 일부 쉘은 스택 공간의 할당량 조정을 허용하여 더 많은 명령어를 저장할 수 있도록 할 수 있습니다. 사용자는 이러한 제한 사항을 인식하고 명령어 히스토리를 관리하기 위한 조치를 취해야 합니다. 이는 주기적으로 오래된 또는 사용되지 않는 명령어를 삭제하거나, 더 ..
[Study34]Linux Bash 셸 기술로 생산성 향상 - 변수(Variable) 변수(Variable) 변수는 하나의 값을 저장하기 위해 사용하는 것으로, 스크립트에서 가장 많이 사용되는 요소 중 하나입니다. 변수는 다음과 같이 종류가 있습니다. - 지역변수(Local Variable): 변수가 선언된 스크립트 또는 함수에서만 사용 가능한 변수입니다. 지역 변수는 VAR=5와 같은 형식으로 선언됩니다. - 환경변수(Environment Variable): 모든 프로세스에서 사용할 수 있는 변수입니다. export VAR=5와 같은 형식으로 선언합니다. - 특수변수(Special Variable): 스크립트나 셸에서 미리 정의되어 있는 변수로, 사용할 때마다 특정한 의미를 가집니다. 예를 들어, $$는 현재 프로세스의 PID를 나타내고, $?는 최근에 실행된 명령어의 종료 코드를 나타..
[Study33]Linux Bash 셸 기술로 생산성 향상 - 배쉬쉘 기능(Bash Shell Funtion) 배쉬쉘의 기능(bash Shell Function) 배쉬쉘은 리눅스와 유닉스 운영체제에서 가장 많이 사용되는 쉘입니다. 배쉬쉘은 다양한 기능을 제공하며, 이 중 함수(function)라는 기능은 특히 유용합니다. 함수는 일련의 명령어를 하나의 명령어로 만들어 사용할 수 있게 해줍니다. 이는 코드의 중복을 방지하고, 작성한 코드를 재활용할 수 있게 해줍니다. 또한, 함수 내에서 변수를 사용할 수 있으며, 이를 통해 함수의 재사용성을 높일 수 있습니다. 함수를 사용하려면, 우선 함수를 정의해야 합니다. 함수를 정의할 때는 함수의 이름과 실행할 코드를 정의해야 합니다. 이후, 함수를 호출하면 정의한 코드를 실행합니다. # set -o/* 쉘 자체의 기능 전체 목록 확인 */ # set -o vi /* 쉘 자체..
[Study32]Linux Bash 셸 기술로 생산성 향상 - 파이프(Pipe) 파이프 파이프(Pipe)는 앞에 실행한 명령어의 출력 결과를 뒤에 실행하는 명령어의 입력 값으로 넣어 주는 기능입니다. 이를 통해 파이프(|)를 사용하면 여러 명령어를 동시에 연결하여 사용할 수 있습니다. 예를 들어, ls -al 명령을 사용하게 되면 모든 파일을 보여주므로 한 화면을 넘는 많은 파일을 보여 주게 됩니다. 이때 "ls -al | more" 를 쓰게 되면 ls 명령에 대한 결과를 more 명령을 통해 확인해 볼 수 있습니다. 이처럼 파이프를 사용하면 출력 결과를 보다 효과적인 방식으로 다룰 수 있습니다. 파이프는 여러 가지 명령어와 함께 사용할 수 있습니다. 예를 들어, ps -ef 명령어를 사용하면 프로세스의 모든 정보를 출력합니다. 그런데 이 결과가 많아서 한 화면을 넘는 경우 "ps ..
[Study31]Linux Bash 셸 기술로 생산성 향상 - 리다이렉션(Redirection) 방향 재지정 (Redirection) 파일 기술자(File Descriptor)는 각 프로세스를 위해 쉘에 의해 생성됩니다. 파일을 열면, 쉘이 해당 파일을 나타내는 특별한 숫자를 만들어 냅니다. 이것이 파일 기술자입니다. 파일 기술자는 파일을 열 때 할당되는 번호로, 각 파일에 대해 할당된 파일 기술자는 다릅니다. 파일 기술자는 프로세스의 열린 파일을 구분할 때 사용되는 식별 번호입니다. 파일 기술자는 파일을 열 때 자동으로 할당되며, 이는 C 언어에서 파일을 다룰 때 유용하게 사용됩니다. 파일 기술자를 사용하여 프로세스에서 파일의 입출력 채널을 지정할 수 있습니다. 리다이렉션은 출력 채널을 다른 곳으로 변경하는 기술입니다. 일반적으로 출력은 모니터로 전송되지만 리다이렉션을 사용하면 파일이나 다른 출력..