카테고리 없음

리눅스 명령어 cheat sheet

곽빵 2022. 11. 4. 14:18

 

커맨드 기능 & 개념설명 기타
whoami 현재 사용자를 확인  
pwd 현재 내가 있는 폴더의 절대 경로  
ls -al 현재 디렉터리의 숨김 파일까지 전체 표시  
cat ${file} file의 내용 출력  
chmod -R 777 ${directory} directory의 하위에 있는 모든 파일들의 권한을 777로 변경  
rm -rf ${file or directory} 하위 디렉터리 포함 강제 삭제 option
-r : 하위 디렉터리를 포함한 모든 파일 삭제
-f : 강제로 파일이나 디렉토리 삭제
ls > text.txt text.txt에 ls의 출력결과를 저장하겠다. > 는 리눅스의 리다이렉션의 명령어로써 ls로 출력되는 표준 출력 스트림의 방향을 text.txt로 변경시킨다.
head < text.txt head는 파일의 첫 10줄말 출력
head < text.txt는 표준 입력 스트림을 text.txt로 해서 text.txt의 첫 10줄을 콘솔에 출력
 
ls >> text.txt 기존에 내용의 밑으로 내용이 추가된다. ( > 한개만 하면 덮어씌워짐)  
grep ${option} ${pattern} ${file or directory} 검색하는 명령어

pattern이나 파일명중 하나만 오면되고 옵션은 생략가능
option
-i : 영문의 대소문자 구별하지 않는다.
-v : pattern을 포함하지 않는 라인 출력 
-n : 검색 결과의 각 햏의 선두에 행 번호를 넣는다.
-l : 파일명만 출력
-c : 패턴에 일치하는 라인의 개수만 출력
-r : 하위 디렉토리까지 검색한다.
find -name nginx.conf 현재 디렉터리 안에 있는 모든 파일중에 이름이 nginx.conf인 친구의 pwd를 출력  
ls -al | grep bash 현재 디렉터리 안에 있는 모든 파일중에 bash라는 이름을 포함하고 있는 파일을 출력하겠다. | 은 리눅스의 파이프라는 개념인데 ls -al의 표준 출력을 그 다음 명령어의 표준 입력으로써 사용겠다 
ls >> text.txt & ls >> text.txt 작업을 백그라운드에 실행 하겠다는 명령어이다. 리눅스는 기본적으로 여러개의 프로세스를 실행 시킬 수 있는데 우리가 흔히들 보는 터미널창에 나오는게 foreground process이고 background process라는 친구도 있는데 이건 명령어의 마지막에 & 을 붙임으로써 실행된다.
ps ${option}

(주로 ps aux 를 많이 쓴다?)
프로세스 상태 확인 option
-a : 시스템을 사용하는 모든 사용자의 프로세스 출력
-u : 프로세스 소유자에 대한 상세 정보 출력 
-l : 프로세스 관련 상세 정보 출력
-x : 터미널에 로그인한 후 실행한 프로세스가 아닌 프로세스들도 출력함. (주로 데몬 프로세스 까지 확인하기 위해 사용)
-e : 해당 프로세스와 관련된 환경 변수 정보도 출력
-f : 프로세스 간 관계 정보도 출력

데몬프로세스는 사용자 모르게 시스템 관리를 위해 실행 되는 프로세스
kill -9 57 pid가 57인 친구를 강제종료한다.  
ps aux | grep ${프로세스명}
kill -9 ${pid}
종료시키고 싶은 프로세스를 찾아 종료시키기  
cp ${a} ${b}
cp -rf bus bus2
a를 b에 복사시킨다. (파일이 없으면 새로만든다.)

-rf는 rm때와 같으므로 하위 디렉터리를 강제로 전부 복사 하겠다
 
ln ${a} ${b} a와 가리키는 파일을 똑같이 b도 가리키게 한다. 하드링크
a와 b는 동일한 파일을 가리킨다. 그러므로
cp와 다르게 a의 파일을 수정하면 b도 수정됨

동일한 파일을 가진 이름을 하나 더 만든 것이라 전체 파일 용량은 달라지지 않는다.
ln -s ${a} ${b} windows os의 바로가와 동일한 기능으로 
a로 가기위한 바로가기 b를 만든다.
소프트(심볼릭) 링크
rm a로 a를 삭제하면 b는 해당 파일 접근 불가
sudo apt-get install ${package}

sudo apt-get remove ${package}

sudo apt-get --purge remove ${package}
패키지 설치

패키지 삭제

패키지삭제(설정파일 포함)
 
sudo usermod -aG docker ${USER} 현재 유저를 docker 그룹에 포함시킨다.  
id -nG 현재 유저가 속한 그룹을 표시한다.  
mv ${file1} ${file2} 파일을 그대로 이동시킨다라는 명령어 이지만 이름 바꾸기 할 때도 자주 사용된다.  
     
     
     

알아두면 좋은 개념

리다이렉션 (redirection)
표준 스트림 흐름을 바꿀 때 사용하고 > , < 을 사용해서 주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때  많이 사용된다.

// 대표적인 리다이렉션 사용 example
// >>는 기존의 내용을 유지하면서 그 밑에 출력(기입)하겠다.
echo 'eval "$(nodenv init -)"' >> ~/.zshrc

파이프 (pipe)
두 프로세스 사이에서 한 프로세스의 출력 스트림을 또다른 프로세스의 입력 스트림으로 사용할 때 쓰여진다.

// 현재 디렉터리 안에 있는 모든 파일중에 bash라는 이름을 포함하고 있는 파일을 출력하겠다.
ls -al | grep bash