Computer Theory/Os

리눅스와 자주사용하는 쉘 명령어

jheaon 2024. 6. 13. 11:47

 

이번에는 리눅스와 쉘 커맨드에 대해서 알아보고자 한다. 

 


Linux 

Linux는 서버에서 일반적으로 사용하는 Os 종류 중에 하나이다. 여러 버전이 존재하며 짧지 않은 역사로 안정성과 신뢰성, 등등의 장점을 가지고 있다. 

 

Shell 

사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램이다. 프롬프트(prompt)를 보여주며 사용자에게 명령을 입력받고 실행하는 역할을 한다. 

 

 

Shell 작동 흐름

쉘은 아래와 같은 작동흐름을 가지고 있다. 

  1. 실행가능한 프로그램 이름, 인자를 입력한다.
  2. 파일 시스템에서 실행 가능한 명령이 디스크 어느 부분에 있는지 찾고, fork()라는 system call을 호출함으로써 child process을 생성한다. 
  3. child process에서 execl(), execvp() 등 여러 system call을 통해 명령을 수행하는 process을 실행하며, shell 은 생성된 child process가 실행 완료 될 때까지 wait()을 통해 기다린다.
  4. wait()으로부터 정상적으로 반환값을 받으면, prompt를 다시 출력하고, shell은 사용자로부터 새로운 명령을 받기 위해 기다린다. 
  • Terminal : shell을 실행하기 위한 prompt로 문자로 구성된 명령을 입력받아 컴퓨터에 전달하는 역할
  • Hostname : 컴퓨터 네트워크에 접속된 장치에 할당된 이름, IP 대신 기억하기 쉬운 글자로 저장된다. 

 

현재 Hostname = j3hea

 

 

 

 

 

Shell Command

쉘 커맨드로는 여러 개의 종류가 있지만 아래는 자주 사용되는 쉘 커맨드 모음이다. 

man command, system call, function 등 다양한 리눅스 명령어의 사용법을 확인할 수 있다.
mkdir 디렉토리를 생성한다. (make directory)
ls 현재 위치한 디렉토리에 있는 폴더와 파일 확인할 때 사용하며, 여러 옵션을 통해 추가적인 정보를 확인할 수 있다.
pwd 현재 위치한 디렉토리를 출력한다. (print working directory)
cd 현재 디렉토리 위치를 다른 위치로 변경한다. (change directory)
rm 파일, 폴더 삭제에 사용한다. 
echo 변수 값, 문자열 등 텍스트를 출력한다.
bash shell script(쉘 스크립트)를 실행한다.
sudo 다른 사용자의 권한을 얻는 것(substitute user do)이며, 관리자 권한으로 특정 명령을 수행해야 할 때 사용한다.
cp 파일을 복사한다. (copy)
mv 파일을 다른 디렉토리 위치로 이동하며, 파일 이름을 변경할 때도 사용할 수 있다. (move)
clear console에 있는 명령어를 모두 지운다. (cls, clean screen) # ctrl + l 을 이용하여 사용 가능
cat 파일의 내용을 텍스트로 출력할 수 있으며, 인자를 여러 개 주어서 여러 파일을 붙여서 출력할 수 있다. (concatenate)
history 이전에 사용된 명령어 이력을 볼 수 있다.
find 폴더 또는 파일을 검색할 때 사용한다.
export 환경변수를 설정한다.
cut -f -d delimeter를 기준으로 잘라 field번째 값을 출력한다. (-d: delimeter, -f:field)
redirection (>, >>) 프로그램의 출력(stdout)을 다른 파일이나 스트림으로 전달한다.
pipe ( | ) 어떤 한 프로그램의 출력을 다른 프로그램의 입력으로 사용한다.
ps 현재 실행 중인 process를 확인할 수 있다. (process status) (-f: full format, -e: 모든 프로세스)
curl 웹 서버에 요청을 보낼 수 있으며, 주로 웹으로부터 파일을 다운로드받을 때 사용한다. (client URL)
grep 파일 또는 텍스트에서 특정 키워드가 포함된 줄만 출력한다. (g / re / p)
chmod 파일 권한을 변경한다. (change mode)
nohup 터미널 종료 후에도 계속 작업이 유지되도록 백그라운드로 process를 실행할 때 사용한다. (예: nohup helloword.py &)
scp ssh로 연결된 호스트 사이에 파일을 복사할 때 사용한다. (secure copy) (-r: 하위 디렉토리를 포함해서 재귀적으로 복사, -P: ssh 포트 지정 -i: SSH 설정을 활용해 실행)
df 현재 파일 시스템이 얼만큼의 디스크 용량을 차지하는지 확인할 수 있다. (disk file system)
wc 옵션에 따라 파일 또는 stdin의 바이트, 문자, 단어, 줄 수를 출력할 수 있다. (word count)