drwxr-xr-x
-rw-r--r--
리눅스 파일 디렉터리 권한 표시
총 10 자리 각각의 의미
1번째 : 파일 타입
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
*파이프 |
파이프는 앞의 출력 결과를 뒤 명령어의 입력으로 전달하는 기능.....
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 : 자바 시스템 프로퍼티 지정옵션
-jar run.jar : run.jar 파일을 실행하라(스프링에서 컴파일 되어 있는 파일)
1> /dev/null : 표준 출력을 버리는 리다이렉션?
1> : 표준출력 이라는 의미(일반메시지)
/dev/null : 블랙홀? 아무곳에도 기록되지 않는다
2>&1 : 표준 출력과 표준에러 메시지를 합치겠다는 의미
명령을 실행하되 터미널을 점유하지 않는다
즉시 프롬프트로 돌아올 수 있다
즉 터미널 실행 후 터미널을 닫고 다른 작업을 할 수 있다는 의미!
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
exit
root 계정에서 이전 사용자로 돌아간다
./stop
./ 현재 디렉터리 라는 뜻 ~
정리하고 추가하기