DevOps/Linux

[Linux] 리눅스 자주 사용하는 명령어 정리

kmindev 2023. 9. 15. 16:44

1. cd: 디렉터리 이동

$ cd [PATH] # 이동하려는 디렉터리로 이동
$ cd ~ # 홈 디렉터리로 이동
$ cd / # 최상위 디렉터리로 이동
$ cd . # 현재 디렉터리
$ cd .. # 상위 디렉터리로 이동
$ cd - # 이전 경로로 이동

 

2. ls: 현재 위치의 파일 목록 조회

$ ls -l ** # ** 파일의 상세정보
$ ls -a # 숨김 파일 표시
$ ls -t # 파일들을 생성시간순(제일 최신 것부터)으로 표시
$ ls -rt ** # 파일들을 생성시간순(제일 오래된 것부터)으로 표시
$ ls -f # 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등)
$ ll # 숨긴 파일과 함께 파일 상세정보 조회(ls -alF)

 

3. rm: 파일 삭제

$ rm [file1] # file1을 삭제
$ rm -f [file1] # file1을 강제 삭제
$ rm -r [dir] # dir 디렉터리 삭제 (디렉터리는 -r 옵션 없이 삭제 불가)

 

4. cp: 파일 복사

$ cp [file1] [file2] # file1을 file2라는 이름으로 복사
$ cp -f [file1] [file2] # 강제 복사(file2라는 파일이 이미 있을 경우 강제로 기존 file2를 지우고 복사 진행)
$ cp -r [dir1] [dir2] # 디렉터리 복사. 폴더 안의 모든 하위 경로와 파일들을 복사

 

5. mv: 파일 이동

$ mv [file1] [dir1] # file1을 dir1로 이동
$ mv [file1] [file2] # file1을 file2 이름으로 변경

 

6. rmdir: 디렉터리 삭제

$ rmdir d1 # 디렉터리를 삭제

 

7. mkdir: 디렉터리 생성

$ mkdir d1 # d1 디렉터리 생성

 

8. grep: 파일에서 특정 문자열이나 정규표현식을 포함한 행을 출력

$ grep [옵션][패턴][파일명]

 

옵션

  • -c : 일치하는 행의 수를 출력한다.
  • -i : 대소문자를 구별하지 않는다.
  • -v : 일치하지 않는 행만 출력한다.
  • -n : 포함된 행의 번호를 함께 출력한다.
  • -l : 패턴이 포함된 파일의 이름을 출력한다.
  • -w : 단어와 일치하는 행만 출력한다.
  • -x : 라인과 일치하는 행만 출력한다.
  • -r : 하위 디렉터리를 포함한 모든 파일에서 검색한다.
  • -m 숫자 : 최대로 표시될 수 있는 결과를 제한한다.
  • -E : 찾을 패턴을 정규표현식으로 찾는다.
  • -F : 찾을 패턴을 문자열로 찾는다.

 

9. chmod: 파일 권한을 부여하는 명령어

  • 사용자 권한
    • chmod 0 0 0 : 왼쪽부터 소유자, 그룹, 기타 사용자에게 권한 부여

read, write, execute 권한

 

 

10. ps : 현재 실행중인 프로세스 목록을 보는 명령어

$ ps -e # 모든 프로세스 출력
$ ps -f # 풀포맷으로 출력, uid(user ID), pid(process ID), ppid(parent ID), TTY(프로세스와 연결된 터미널) 등
$ ps -l # 긴 포맷으로 출력, 풀포맷 + F(프로세스 플래그), S(프로세스 상태), PRI(우선순위) 
$ ps -p # 특정 PID의 프로세스를 출력
$ ps -u # 특정 사용자의 프로세스 출력
$ ps -ef | grep 프로세스명 # ps | grep 조합으로 많이 쓰임.  프로세스명을 포함하는 모든 프로세스를 출력

 

11. cat: 파일의 내용을 화면에 출력, 리다이렉션 기호’>’를 사용하여 파일 생성

$ cat file1 # file1의 내용을 출력
$ cat file1 file2 # file1과 file2의 내용을 출력
$ cat file1 file2 | more # file1과 file2의 내용을 페이지 별로 출력
$ cat file1 file2 | head # file1과 file2의 내용을 처음부터 10번째 줄까지만 출력
$ cat file1 file2 | tail # file1과 file2의 내용을 끝에서부터 10번째 줄까지만 출력

 

12. alias: 명령어에 별칭을 부여

$ alias # 현재 등록되어 있는 모든 alias 출력
$ alias lss=’ls -asl’ # 별칭 설정
$ unalias lss # 별칭 삭제

 

13. 명령어와 조합하여 쓰는 기호

&: 백그라운드 실행(단 터미널과 세션이 끊기면 종료 ⇒ nohub 사용하면 계속 실행할 수 있음)

$ command1 & # command1을 백그라운드에서 실행

 

>: 명령어의 출력을 파일로 리다이렉션할 수 있다.

$ command1 > output.txt # command1의 출력결과를 output.txt로 리다이렉션

 

<: 파일로부터 입력을 받는다.

$ command1 < input.txt # input.txt 파일로부터 입력을 받는다.

 

>>: 출력을 파일에 추가

$ command1 >> output.txt # command1의 출력결과를 output.txt파일에 추가

 

!: 명령어의 결과를 부정

$ ! command1 # command1의 명령을 부정

 

$(): 명령어의 출력을 변수에 할당하거나 스크립트 내에서 다른 명령어의 결과를 삽입

$ result=$(command1) # command1의 결과를 result에 삽입

 

;: 여러 개의 명령어를 한 줄에 연속해서 실행할 때 사용

$ command1 ; command1 # command1을 실행한 다음 command2를 실행

 

|: 앞에서 나온 명령 결과를 두 번째 명령에서 사용

$ command1 | command2 # command1의 출력을 command2의 입력으로 보냄

 

&&: 첫 번째 명령이 에러 없이 정상적으로 종료 했을 경우에만 두 번째 명령을 실행

$ command1 && command2 # command1이 성공하면 command2를 실행

 

||: 첫 번째 명령의 결과에서 에러가 발생하더라도 각각의 모든 명령을 수행

$ command1 || command2 # command1이 실패하면 command2를 실행

 

14. systemctl: 서비스 제어 명령어

$ systemctl start [서비스명] # 서비스 시작
$ systemctl  stop  [서비스명]  # 서비스 중지
$ systemctl  status  [서비스명]  # 서비스 상태 확인 
$ systemctl  restart  [서비스명] # 서비스 재시작
$ systemctl  reload  [서비스명] # 서비스를 중지하지 않고 설정 값을 반영
$ systemctl  enable  [서비스명] # 시스템이 재부팅하면서 자동으로 서비스 실행하도록 등록, 관련 서비스를 /etc/systemd/system/[target]/ 경로에 링크파일을 생성한다.
$ systemctl  disable  [서비스명] # enable 된 서비스를 해제
$ systemctl  list-units --type=service # 모든 서비스 목록 보기
$ systemctl  list-unit-files --type service # 모든 서비스의 현재활성화 상태 보기 
$ systemctl  daemon-reload # enable 된 서비스(데몬)들을 즉시 반영
$ systemctl  kill [서비스명] # 서비스와 관련된 프로세스까지 종료
$ systemctl  reset-faild # 서비스를 disable 했는데도 계속 보이면 리셋 시키는 명령