리눅스

이경현·2025년 11월 11일

drwxr-xr-x

-rw-r--r--

리눅스 파일 디렉터리 권한 표시

총 10 자리 각각의 의미

1번째 : 파일 타입

  • 일반파일(-)
  • 폴더 (d)
  • 링크 (l) : 바로가기 파일 정도
  • 블록 디바이스(b) : 하드디스크, usb 등 블록단위로 입출력?
  • 문자 디바이스(c) : 키보드, 마우스, 터미널 등 문자 단위 입출력
  • 파이프 (p) : 프로세스 간 통신용 특수 파일
  • 소켓(s) : 네트워크 통신에 쓰이는 파일

2~4 소유자권한 rwz
r : read 읽기권한
w : write 쓰기권한
x : exe 실행권한

  • : 없음 해당 권한 없음

5~7 번째 의미 그룹권한

8~10 번째 : 기타 사용자 권한


chmod
change mode 접근권한변경 명령어

chmod u(권한을 변경할 대상 소유자, 그룹, 기타사용자)+w(부여할 권한 읽기 쓰기 실행하기 rwx) note.txt (대상 디렉터리 파일명.확장자)

권한 대상
u - 소유자
g - 그룹 사용자
o - 기타 사용자
a - 모두 all


grep 명령어
특정 파일에서 지정한 문자열이나 정규표현식 등을 포함한(내가 찾고싶어하는) 행을 출력해주는 명령어

tail, ls 등 다양한 명령어와 조합하여 응용되는 경우가 많다

잘 다룰줄 알아야 하는 리눅스 명령어 중 하나

문자열로 찾기

	grep [옵션][패턴][파일명]
    // 문자열 찾기
	grep '찾을 문자(열)' 파일명
    // 여러파일에서 같은 문자열 찾기
    grep '찾을 문자(열)' 파일명1 파일명2
    // 현재 디렉토리 내에 있는 모든 파일에서 문자열 찾기
    grep '찾을 문자(열)' *
    // 특정 확장자를 가진 파일에서 문자열 찾기
    grep '찾을 문자(열)' *.확장자(log,bat 등)
   

정규표현식으로 찾기

# 특정 파일에서 문자열이 포함된 행을 찾는다.
grep '^[ab]' 파일명 

# 특정 파일에서 a로 시작하는 모든 단어를 찾는다.
grep '^a' 파일명 

# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어를 찾는다.
grep 'a...z' 파일명 

# 특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep [a-c] 파일명

# 특정 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.
grep [aA]pple 파일명 

# 특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep '^[ab]' 파일명 

# 특정 파일에서 apple로 시작되고 0나 9의 숫자로 끝나로 시작되는 모든 행을 찾는다.
grep 'apple'[0-9] 파일명

리눅스 너무 많으니
서버 업로드/서버 재기동 할 때 자주쓰는 명령어 위주로 ~

grep 명령어 익히기

cd, ls, ls -l 기본 파일 명령어는 스킵


ps -ef | grep 찾을문자열 |grep -v grep

  • ps > process status : 현재 실행중인 모든 프로세스의 목록을 보여준다
  • ef 는 옵션 e : 모든사용자(every) f : 자세한 (full-fomat) 정보표시(UID,PID,PPID등)

*파이프 |
파이프는 앞의 출력 결과를 뒤 명령어의 입력으로 전달하는 기능.....

grep은 텍스트에서 특정 문자열을 포함한 줄 찾기 기능

합쳐보면
ps -ef | grep linux
-> 실행중인 모든 프로세스 중에서 linux 가 포함된 줄만 출력한다.
라는 의미

| grep -v grep
-> -v(invert 반전)

grep -v grep
-> grep 들어간 줄 빼고 출력
라는 의미

파이프는 연결의 의미 조건을 붙이는 정도?
실행중인 프로세스 상세출력 + 리눅스만 걸러서 출력 + grep 은 빼고 출력
-> 이런 의미


nohup /home/user_mdw/MDServer/microsoft-jdk-17/bin/java -Dfile.encoding=UTF-8 -jar run.jar 1> /dev/null 2>&1 &

nohup : no hang up 세션이 끊어져도 종료되지 않도록 실행한다.
터미널을 닫거나, SSH가 끊겨도 종료되지 않도록 하는 명령어
-> 터미널에 의존하지 않고 계속 실행해
라는 의미

/java : 실행할 명령어 전체

Dfile.encoding=UTF-8 :
-D : 자바 시스템 프로퍼티 지정옵션

  • file.encoding=UTF-8 : 인코딩을 UTF-8로 지정하겠다 > 자바프로그램이 한글과 같은 문자를 처리할 때 깨지지 않도록 설정해주는 것

-jar run.jar : run.jar 파일을 실행하라(스프링에서 컴파일 되어 있는 파일)

1> /dev/null : 표준 출력을 버리는 리다이렉션?

1> : 표준출력 이라는 의미(일반메시지)
/dev/null : 블랙홀? 아무곳에도 기록되지 않는다

2>&1 : 표준 출력과 표준에러 메시지를 합치겠다는 의미

& : 백그라운드 실행

명령을 실행하되 터미널을 점유하지 않는다
즉시 프롬프트로 돌아올 수 있다
즉 터미널 실행 후 터미널을 닫고 다른 작업을 할 수 있다는 의미!

nohup과 & 의 차이

no hang up(끊지마!) : 터미널이 닫혀도 죽지 않는다.
& : 백그라운드 실행을 통해 터미널을 점유하지 않는다.
둘다 계속 실행 이라는 점에서 공통점이 있지만 사용하는 이유와 동작 방식이 다르다.
nohup 은 터미널 종료(로그아웃) 후에도 유지
리눅스에서 프로세스는 부모프로세스(현재 터미널)에 종속되어 있음
그 터미널을 닫거나 SSH 접속을 끊으면 SIGHUP(hangup시그널)이 전달되어서 자식 프로세스도 모두 죽는다.
근데 nohup으로 실행을 하면 저 hangup시그널을 무시하기 떄문에 터미널이 닫혀도 프로세는 죽지 않는다
& 지금의 터미널을 점유하지 않도록 한다.
프로세스 실행 후 그 터미널을 바로 사용할 수 있다.
단순히 이 명령을 백그라운드에서 실행해 라는 의미
이 터미널을 점유하지 않고 바로 다음 명령어 다음 프로세스를 실행할 수 있도록 한다.
둘중에 하나만 사용하면 ?
nohup 만 사용 > 터미널을 닫아도 실행되지만 실행 터미널을 점유하고 있는 상태
&만 사용 > 터미널을 점유하고 있지 않아서 다른 프로세스 등 사용할 수 있지만 터미널을 닫으면 프로세스는 종료
터미널 점유 > 이득
터미널 종료해도 프로세스 죽지 않음
두가지 모두 가져가기 위해 nohup과 &조합으로 사용
변형 명령어
nohup java -jar run.jar > app.log 2>&1 & : 로그파일에 로그만 남긴다.
nohup java -jar run.jar 1>/dev/null 2>error.log & : 에러로그 파일에 에러만 남긴다.

su - root
현재 사용자에서 root 계정으로 전환하라
이후 비밀번호 입력해야함

systemctl status postgresql-17

  • systemctl 리눅스의 서비스 관리 명령
  • status 상태 확인
  • postgresql-17 포스트그리 17버전
    -> 포스트그리 17 버전의 현재 상태를 확인하라
    출력 결과
  • Active: active (running) 실행 중
  • Active: inactive (dead) 중지됨
  • failed 오류로 종료됨

exit
root 계정에서 이전 사용자로 돌아간다

./stop

./ 현재 디렉터리 라는 뜻 ~

정리하고 추가하기

0개의 댓글