📝사소한 팁
Tap
어느정도 치다가 Tap 누르면 자동 입력(로그가 있어야지 자동생성 됨)
방향키 위, 아래
최근에 입력한 명령어 불러오기 가능
ctrl + Insert
윈도우 내용 복사
Shift + Insert
윈도우 내용 붙여넣기
ctrl + alt + f2 ~ f6
가상 콘솔(가상 데스크톱)
📝리눅스 명령어
useradd 아이디
리눅스 계정 생성
passwd 아이디
생성한 계정의 패스워드 부여
pwd (print working directory)
현재 위치한 디렉토리 경로 출력
cd (change directory)
경로 이동 (cd 경로명)
../ = .. |
상위 디렉토리 |
/home |
home 디렉토리 |
ls (list)
현재 위치한 디렉토리 내의 목록을 확인 (ls -l 현 디렉토리 상세 목록 확인)
cat (concatenate)
파일 내용물 보기 (cat 파일명)
mkdir (make directory)
디렉토리 생성 (mkdir 디렉토리명)
touch
최신 수정일로 변경 만약 특정옵션이 사용되지 않는다면 파일의 크기가 0인 빈 파일을 생성한다.
(touch 파일명)
rm (remove)
파일 삭제 (remove 파일명)
파일과 디렉토리 전부 삭제 (rm -rf 디렉토리명)
rmdir (remove)
디렉토리 삭제
head
처음 10줄만 파일 내용보기 (head 파일명)
(head -n 표시할줄수 파일명 파일에서 처음 몇 줄을 볼지 정할 수 있다.)
예) haed -n 20 1.txt
tail
끝 10줄만 파일 내용 보기 (tail 파일명)
tail -n 표시할줄수 파일명 파일에서 마지막으로 부터 몇 줄을 볼지 정할 수 있다.)
예) tail -n 20 1.txt
find
문자로 파일, 폴더 찾기 (find 경로 -name 파일명 전체에서 파일명을 찾아준다.)
현재 경로로 부터 어디에 위치했는지 보여줌
예) find / -name '*error_log*'
예) find / -name "*.txt"
예) find / -name '*error_log*' 2> /dev/null (허가 거부시 무시하고 출력)
yum
프로그램, 모듈(라이브러리) 설치 (CentOS)
예 ) yum ~~~ 이런식
apt
프로그램, 모듈(라이브러리) 설치(Ubuntu)
예) apt ~~~ 이런식
ps
현재 실행중인 프로세스 목록을 보여준다.
ps만 단독으로 쓰는 경우는 없고 -ef라는 속성을 하나의 명령어처럼 잘 쓰인다.
ps -ef : 모든 프로세스 출력 , UID, PID, PPID 등을 보여준다
PID : 프로세스 식별번호
PPID : 부모 프로세스 ID
TIME : 총 CPU 사용 시간
UID : 프로세스 소유자의 이름
mv
파일명변경 또는 파일 옮기기
예) mv 1.txt 2.txt (mv 기존파일명 변경파일명)
예) mv /etc/1.txtx /etc/temp/2.txt(mv 파일경로/기존파일명 옮기길원하는경로/변경파일명)
rename
rename은 하나 혹은 하나 이상의 파일명을 일괄 변경할때 사용하는 명령어
예) rename test TEST *.txt (rename 변경전문자열 변경후문자열 변경대상파일명)
예) rename directory DIRECTORY directoy_text_? (?는 한 문자를 의미 디렉토리명도 바꿀 수 있다.)
cp (copy)
파일 혹은 디렉토리를 복사 (cp 복사할파일 복사된파일명)
디렉토리의경우 (cp -r 복사할디렉토리 복사될위치디렉토리)
예) cp a.txt b.txt c.txt test_dir/ (세개 파일을 한번에 복사)
cp *.txt test_dir/ (모든.txt 파일을 test_dir에 복사)
cp a.txt test_dir/b.txt (a.txt를 test_dir에 b.txt라는 이름으로 복사)
top
시스템의 상태를 전반적으로 가장 빠르게 파악 가능
chmod
파일 및 폴더 권한 바꾸기
chomod 777 : 모든 대상 모든 권한 허용
맨 앞 7은 user(사용자) 그 다음은 group 그 다음은 other(두 군데 속하지 못한 나머지)을 의미한다.
chmod -R 777 folder : folder와 folder 디렉토리 안에 모든 파일들의 권한을 777로 준다.
r = 4 , w = 2 , x = 1 |
7 |
모든 권한(rwx) |
6 |
읽고 쓰기(rw) |
5 |
읽고 실행(rx) |
4 |
읽기 (r) |
3 |
쓰고 실행(wx) |
2 |
쓰기(w) |
1 |
실행(x) |
chown
ls -l 하면 상세 설명이 나옵니다.
rw-r--r--. 1 root root 1419 Oct 6 23:42 countries.rc
root라는 사용자고 root라는 그룹에 들어가있다는 의미입니다.
chown으로 변경할 수 있습니다.
chown user1:user1 countries.rc 이 명령어를 치면
rw-r--r--. 1 user1 user1 1419 Oct 6 23:42 countries.rc 으로 변경됩니다.
chown -R user1:user1 folder : folder라는 이름의 폴더와 안의 모든 것들의 소유자와 소유그룹을 일괄 변환
echo
내용을 출력합니다. (echo 문자열)
ifconfig
리눅스 환경 아이피 확인 명령어
예 ) 설치파일을 리눅스로 작업해야하기 때문에 윈도우에 있는 설치파일을 리눅스환경에 옮기기
쉽게 파일질라를 이용해 옮기기 위해 연결할 리눅스 아이피가 필요하기 때문에 사용 된다
bg
bg 작업내용(ls, find ...) &
jobs
백그라운드 작업의 상태를 표시하는 명령어
kill
kill %작업번호(1, 2...) 백그라운드 작업을 종료
fg
fg %작업번호(1, 2....) 백그라운드 작업을 포그라운드로 전환
top
pid : 프로세스 id
user : 실행한 user
virt : 가상 메모리
res : 실제 사용 메모리
Ctrl + h → 스레드 파악
Ctrl + m → 메모리 내림차순 정렬
e → 표시 단위 변경
1 → CPU (하이퍼스레드, 물리, 논리 CPU 모니터링)
free -h
total : 전체 메모리
used : 사용중인 메모리
free : 남은 메모리 공간
buff/cache : 리눅스 명령어 history 등에 사용 (이미 했던 작업을 빠르게 접근하기 위해)
used에 일부가 포함되어 있습니다.
available : 사용 가능한 메모리
(buff/cache에서 빼내와서 이용할 수 있는 메모리 크기입니다. 이 값은 free에 일부 포함되어있습니다.)
du
du -sh (경로) 현 경로의 총 용량
du -h (경로) 현 경로의 각각의 용량 + 총 용량
df -h
서버 디스크 용량을 확인 (파티션 등등...)
scp [파일명] [원격지_id]@[원격지_ip]:[받는 위치]
서버에서 다른 서버로 파일 옮기기 예) scp file.txt root@192.168.0.20:/home/search
ifdown
해당 네트워크 끄기 (ifdown 인터페이스명)
예) ifup enp0s3)
ifup
해당 네트워크 키기 (ifdown 인터페이스명)
예) ifdown enp0s3
su
유저 바꾸기 (su 유저명) [현재 계정 로그아웃 하지 않고 다른 계정으로 전환]
예) su root
su - 유저명 (환경변수까지 적용)
예) su - root
sudo
현재 계정에서 root 권한을 이용하여 명령어를 실행할 떄 사용 (sudo su - user)
whoami
현재 사용자 확인
exit
이전 계정으로 돌아온다.
groups
해당 계정 그룹 확인
ping 8.8.8.8
8.8.8.8 : 구글 DNS 서버 IP주소
구글 DNS 서버에 신호를 보내 되돌아오는지 확인해 네트워크가 연결 됐는지 간접적으로 확인
cut -f1 -d: /etc/passwd
등록된 유저 확인
nmcli dev status
인터넷들의 연결상태를 볼 수 있습니다.
scppass (패스워드 없이 scp 사용)
sshpass -p ${password} scp /backup/backup.`date +%Y%m%d`.tar.gz ${호스트네임}@192.168.0.49:/home/backup/
chcpu -e ${CPU번호}
해당 CPU번호를 기동합니다. [하이퍼스레드]
chcpu -d ${CPU번호}
해당 CPU번호를 중지합니다. [하이퍼스레드]
ex) chcpu -d 0,3,5
📝vi명령어
vi
파일 편집 수행 (vi 파일명)
vim
파일 편집 수행 (vim 파일명) 편집기를 이쁘게 볼 수 있음
:set number
line 보기
:set nonu
라인 지우기
:$
문서 끝으로 이동
줄번호 + Shift + G
해당 줄로 이동
:/ , :?
특정 문자 찾아 이동 (:/ 찾을문자열)
특정 문자 찾아 이동 (:? 찾을문자열)
- 다음 문자찾기
n : 방향대로
N : 역방향대로
dd
한줄 지우기
현재 커서(여기부터 1행)로부터 N행 삭제 (N) dd)
:w
저장하기
새 파일명으로 저장 (:w 파일명) [작업 파일이 꺼지진 않는다.]
:f 파일명
파일 이름을 파일명으로 변경
예) :f abc.txt
:e!
마지막 저장 이후 모든 편집 취소
:wq
저장하고 종료
:q!
저장 없이 종료
+
다음 행으로 이동
-
이전 행으로 이동
w
단어 단위로 커서 이동 (오른쪽)
b
단어 단위로 커서 이동 (왼쪽)
a
현재 커서 바로 다음 위치 삽입
i
현재 커서 위치에 삽입
dw
커서 위치한 곳의 글자 1개 삭제
u
명령 취소
ctrl+ r
명령 취소 되돌리기
yy
한줄 복사
숫자 -
현재 위치로부터 숫자 만큼 윗줄 이동
숫자 +
현재 위치로부터 숫자 만큼 아랫줄 이동
:숫자
숫자에 적힌 행으로 이동
:%s/매칭문자열/치환문자열
매칭문자열을 치환문자열로 바꾼다.
:s/매칭문자열/치환문자열/g
현재 행 매칭문자열을 치환문자열로 전부 변경
:s/매칭문자열/치환문자열
현재 행 매칭문자열을 치환문자열로 한번만 변경(가장 앞의 것)
📝스케쥴러
at
1회성 예약 작업을 등록
at now+1 minutes → 현재 시각으로부터 1분 뒤에 실행시켜주세요
at 23:50 2022-11-23 → 2022년 11월 23일 23시 50분에 실행시켜주세요
at > ${작업문구}
at > ....
ctrl + d로 작업 종료
at -d ${작업번호}
작업 삭제
at -l
작업확인
crontab
반복적인 작업 등록
crontab -e
작업적기 (vi 형태로 열리게 된다.)
crontab -l
작업확인
crontab 정의
분 / 시 / 일 / 월 / 요일
* * * * *
(분) 0 - 59
(시) 0 - 23
(일) 1 - 31
(월) 1 - 12
(요일) 0 - 7 (0, 7 : 일요일, 1 : 월요일, 2 : 화요일 ...)
📝JDK (Java)
WAR 파일 생성
jar cvf ${war파일명} ${war로 만들 폴더}
예) jar cvf shppoing.war /home/shopping/*
WAR 파일 Deploy
jar xvf ${Deploy할 war파일명}
예) jar xvf shopping.war
📝그 외 리눅스 명령어
리눅스 포트개방
iptables -I INPUT 1 -p tcp --dport 11045(개방할 포트번호) -j ACCEPT (CentOS7 부터)
CPU 모델명 확인
grep -m 1 'model name' /proc/cpuinfo
model name : Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz
모든 CPU 정보 확인
cat /proc/cpuinfo
모든 CPU 개수 확인
grep -c processor /proc/cpuinfo
물리 CPU 수 확인
grep "cpu cores" /proc/cpuinfo | tail -1
하이퍼스레드 적용 확인
cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2
siblings : 8
cpu cores : 4
→ siblings가 cpu cores의 2배로 하이퍼스레딩이 적용된 걸 알 수 있다.
리다이렉션 (리눅스 기본 명령어들 사용 불가능)
cat tmp > tmp2 # tmp 내용을 tmp2에 overwrite 해서 넣어라
cat tmp >> tmp2 # tmp 내용을 tmp2에 append 해서 넣어라
wc -l < tmp2 # tmp2를 wc -l 방식으로 출력한다
| (파이프라인)
ps -ef | grep tomcat # ps -ef의 명령어로 나온 결과를 grep(글자찾기) tomcat으로 출력해라
연결자로 입력의 결과를 | 다음으로 넘겨서 처리하겠다는 의미입니다. (리눅스 명령어 사용가능)
일정기간 지난 파일 삭제 (ll로 나온 기준으로 제거하기 때문에 파일 경로에 파일 패턴 입력 해줘야한다. 안 그러면 다 사라짐)
find [디렉토리 or 파일 경로] -ctime +0 -exec rm -f {} \;
ps -ef 와 jobs의 차이
ps -ef : 모든 프로세스를 확인
jobs : 백그라운드 프로세스를 확인
A라는 사람이 root 계정으로 접근한 것과 B라는 사람이 root 계정으로 접근한 것은 다르다
그래서 A라는 사람이 접속한 root 계정의 jobs가 B 사람과 다르다.