[Tab버튼] : 자동완성
clear : 터미널 화면 지우기 Ctrl+L
su - : Root 사용자로 변경
su 유저명 : 유저 변경
ps -ef : 모든 프로세스를 풀 포맷으로 표시
pstree : 부모와 자식 프로세스 관계를 트리 형태로 보여줌
kill -9 [pid] : 프로세스를 강제로 종료
ls -l
== ll
)ls -rlt
최근 파일 상세정보를 아래에 출력되도록 하여 로그파일 조회 시 유용
# 해당 경로의 파일 및 디렉토리 리스트 표시 (.은 현재위치)
find [path]
# 해당 경로에서 key확장자를 가진 파일 검색
find [path] -name "*.key"
diff : 두 파일의 차이점
-c 차이점 출력
cmp : 두 파일이 동일한지
-s 0같음 1다름 2접근불가
comm : diff와 cmp의 기능을 결합
head : 파일 첫 10줄 출력
tail : 파일 마지막 10줄 출력
-f 실시간 출력 (cf. -100f 실시간으로 100줄 출력)
-n 라인수 (ex. -100)
wc : word count 사용자가 지정한 파일의 행, 단어, 문자수 세기
-l 행
-w 단어
-c 문자
grep '로그에서 찾고싶은 내용' batch.log | wc -l
ls -l | grep ^- | wc -l
pwd : present working directory 현재 위치 확인
cd : change directory 위치 이동
~
home 디렉토리
..
한 단계 상위 디렉토리
-
이전 위치
cp : copy 복사
-r 하위 디렉토리 및 파일까지 모두 복사
-p 소유자, 그룹, 권한 등의 정보까지 복사
mv : move 이동 및 이름 변경
rm : remove 제거
-r 비어있지 않은 디렉토리 삭제
-f 강제 삭제
chmod : 파일의 권한 변경
-R 하위 디렉토리 및 파일까지 적용
대상
소유자 (user) | 소유그룹 (group) | 그 외 사용자 (others) |
---|---|---|
u | g | o |
권한
- | 읽기 (read) | 쓰기 (write) | 실행 (execute) |
---|---|---|---|
문자 | r | w | x |
8진수 | 4 | 2 | 1 |
위 대상에 대한 3가지 권한을 변경할 수 있다.
권한은 문자를 붙여 쓰거나 (ex. rwx
)
숫자를 더해서 (ex. 7
) 표현한다.
행위
지정 | 추가 | 제거 |
---|---|---|
= | + | - |
# 사용자에게 모든 권한, 그룹과 그 외 사용자에게 쓰기와 실행 권한 부여
# drwxr-xr-x
chmod -R 755 디렉토리명
# 소유자, 그룹에 읽기쓰기 권한 추가
chmod ug+rw 파일명
디렉토리 권한
r : 내부 파일 리스트 읽기
w : 파일 추가, 이름 변경, 삭제
x : 디렉토리에 접근 (cd 명령으로 working directory 이동)
chown : 파일의 소유 변경
-R 하위 디렉토리 및 파일까지 적용
# 소유 변경
chown -R username:usergroup 파일명
awk : 데이터 조작 ('패턴' 검색 or 데이터를 활용한 '{액션}')
$필드번호 : 데이터의 열 선택
if [ 조건 ];then 명령 fi :
-n 문자열 내용이 있는지 (str.length != 0)
grep : global regular expression print 특정 문자열 찾기
-r 하위 디렉토리까지 (reculsive)
-i 대소문자 구분x (intensive)
-v 제외 (--invert-match)
-c 라인수
pid=`ps -ef | grep test.jar | grep -v 'grep' | awk '{print $2}'`
pgrep : ps -ef
+ grep
+ | grep -v 'grep'
+ awk '{print $2}'
pid=`pgrep test.jar`
2>&1
: 표준 에러를 표준 출력으로 리다이렉팅하여 내보낸다. ( 표준에러 로그를 표준출력 로그를 적는 곳에 같이 적는다.)1>dev/null
: /dev/null은 Unix와 Linux 시스템에서 'null device'를 나타낸다. 이 장치로 보내진 데이터는 모두 무시된다. 따라서, /dev/null로 리다이렉션하는 것은 해당 출력을 버리는 것과 같다.
/검색할 문구
: 앞으로 검색?검색할 문구
: 뒤로 검색%s/검색할 문구//n
: 갯수
-bash: ifconfig: command not found
CentOS7부터는 기본 탑재 명령어가 아님
ifconfig 명령어가 포함된 net-tools package 설치!>> su - Password: >> yum install net-tools
netstat : network statistics 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보
-a : 모든 네트워크 상태
ss : socket statistics 네트워크 연결 및 소켓 상태 조회 (netstat과 비슷)
-t : tcp포트
-u : udp포트
ping : Packet Internet Groper 목적지 IP 주소의 통신 가능 여부 확인
traceroute : 지정 호스트에 도달할 때까지 통과하는 경로와 각 경로에서의 지연 시간 추적 (윈도우 tracert)
nslookup : name server lookup 특정 도메인이 DNS 서버에 잘 적용되었는지 확인
curl : client url 프로토콜을 이용해 데이터 송수신
# 핑테스트 (IP나 도메인 입력)
ping 123.456.7.89
# GET 요청
curl https://google.com/search?q=question
방화벽 구동 확인
>> firewall-cmd --state
열린 포트 확인
>> firewall-cmd --zone=public --list-all
포트 개방
>> firewall-cmd --permanent --zone=public --add-port=22/tcp
적용
>> firewall-cmd --reload
nmtui : 네트워크 설정
system-config-[ ] : 시스템 설정 (date, language, users, keyboard, printer, users 등)
timedatectl : 타임존 설정
타임존 확인
>> timedatectl
타임존 서울로 변경
>> timedatectl set-timezone Asia/Seoul
PID 파일
: PID(Process Identifier)가 적혀 있는 파일
- 생성 이유 : 실행 및 중단을 제어하기 위한 스크립트 등록 시 사용
(애플리케이션을 백그라운드 프로세스로 실행했다면, 프로세스를 종료할 때 PID를 알아야 함.
직접ps -ef | grep java
로 확인하여 kill 할 수 있지만 자동화를 위함)- 생성법 : application.yml에 spring.pid.file 경로 지정
-> @SpringBootApplication 적용한 main()에 객체 생성 후 .listeners(new ApplicationPidFileWriter()) 설정- 삭제 : DisposableBean.destroy()에서 파일 유무 확인 후 삭제
* * * * * * *
초 분 시 일 월 요일 연도(생략가능)
?
: 특정값 없음(일, 요일에만 사용)*
: 모든값/
: 초기값/증가치,
: 특정값 구분-
: 범위
45 45 1 * * ?
매일 1시 45분 45초마다
30 0/30 0/1 * * ?
매일 0시 30초에 시작하여 30분마다
service crond status
service crond start
service crond stop
service crond restart