update
설치 되어있는 패키지들의 새로운 버젼이 있는지 확인할 때 해당 명령어를 사용합니다.
=> 이미 있는 패키지 내 시스템 정보 중 최신것을 불러오는 것!
upgrade
위에 있는 apt-get update를 통해서 확인한 패키지들의 최신 버전에 따라서 패키지들의 버전을 업그레이드 해주는 명령어입니다.
=> 최신 패키지를 다시 다운로드하는 것! (위험 💥) - 기존 패키지의 라이브러리가 호환이 안되 기존 어플리케이션이 오류가 날 수 있음!
#apt-get upgrade -y
apt-get update -y
💥 주의) sudo 명령어가 꼭 필요!
apt-get install vim
apt-get install net-tools
# ifconfig
# su:switch user
su - [계정명]
# sudo:superuser do
sudo [명령어]
# 리눅스 시스템 확인
cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"
# 리눅스 커널 버전 확인
cat /etc/issue
# Ubuntu 20.04.3 LTS \n \l
# 사용가능한 shell 리스트 확인
cat /etc/shells
# 현재 작업 shell 확인
echo $SHELL
# 로그인 shell 변경
cat /etc/passwd
sudo chsh [username]
# 메뉴얼
man
# 현재 위치
pwd
# 현재 사용자 이름
whoami
# 현재 시간
date
# 그전 디렉토리로 돌아가기
cd -
# 파일 내용 찾기
grep -nir "world" .
tree
# 현재 실행 중인 프로세스들과 해당 프로세스들이 사용하는
# CPU 및 메모리 사용량을 실시간으로 확인
top
# 시스템 전체 메모리 사용량과 사용 가능한 메모리 양을 보여줌, 단위 KB
free
# 단위 GB
free -h
https://www.cubrid.com/tutorial/3794195
✅ ps 와 top의 차이점
# 디스크 사용량을 보여주는 명령어
df -h
# > (덮어쓰기) : 리다이렉션
echo "dsg" > test.txt
# >> (덧붙이기)
echo "dsg" >> test.txt
# | : 파이프
ps -ef | grep "[찾는 단어]"
netstat -antup | grep LISTEN
systemctl
: 특정 데몬을 실행 중지, 재시작하는 명령어입니다.
sudo systemctl status [프로그램명]
sudo systemctl start [프로그램명]
sudo systemctl restart [프로그램명]
sudo systemctl stop [프로그램명]
restart vs reload
restart
: 프로세스 재시작임으로 이미 재시작할 프로그램에 접속할 사용자들은 다시 재연결해줘야 합니다.reload
: conf 설정파일을 다시 읽어 변경된 설정정보를 반영합니다. 이미 연결된 사용자들은 계속 사용하고 이후 연결요청된 사용자들은 변경된 설정파일대로 동작하게 됩니다
설정변경 시 실제 서비스 할 때는 restart 보다는reload
를 제일먼저 고려해야 될 것 같습니다.
# netstat 설치
sudo apt install net-tools
netstat -ano | grep "찾는 단어"
# 프로제스 종료
kill -9 [pid]
# 이걸 더 추천
ps -ef | grep "[찾는 단어]"
# 아래 끝까지 다 찾아봄
tail -f [파일 내지 로그파일]
# ifconfig 보다 좋아
ip addr
# 둘 다 private ip주소를 가리킴
✅ curl 이란?
HTTP 요청을 보내고 웹 서비스 및 리소스와 상호작용하는 다목적 명령줄 도구입니다. "Client for URLs"의 약자로서, 주로 Linux 및 macOS와 같은 Unix 계열 운영 체제에서 사용되며, 다음과 같은 다양한 HTTP 관련 작업을 수행하는 데 사용됩니다.
# curl [ip주소]
curl localhost:8080/api/v1/memo
ping [ip주소]
open [ip주소]
mv test.txt test.sh
# 기본 설정 권한
# owner | group | other 로 구분되어 지는 것임
-rw-r--r--
# 전체에게 권한 부여
sudo chmod a+x testfile2
#개별단위 권한 부여
sudo chmod g+rw/go+rwx testfile2
# 숫자로도 표기 r=4, w=2, x=1, 4+2+1 = 7, 777은 owner, group, other에게 rwx권한을 다주었다는 뜻!
sudo chmod 777 [파일]
# 폴더에 줄때는 -R써야!
sudo chmod -R 700 bin/
ps –ef | grep 'abcdefg'
sudo find . -name "[찾는 단어]"
find . -type f -name "*.txt"
find . -type d -name "*.txt"
# 파일 생성
touch file.txt
# /app/bin 디렉토리의 original.txt라는 파일을 /app/logs에 copy.txt라는 파일로 복사
cp /app/bin/original.txt /app/logs/copy.txt
# 프로젝트를 만들시 -p
mkdir -p /test/projects
rm -rf [파일 or 디렉토리]
## tar -xvf <압축파일명.tar>
tar -xvf abc.tar
## tar -zxvf <압축파일명.tar.gz>
tar -zxvf abc.tar.gz
## unzip <압축파일.zip>
## EXAMPLE1 : 현재 디렉토리에 압축 해제
unzip abc.zip
## EXAMPLE2 : 특정 디렉토리에 압축 해제
unzip abc.zip -d <경로>
# 파일 내용
cat file.txt
John 30
Sarah 25
Adam 40
# 파일에서 두 번째 필드 추출하기
awk '{print $2}' file.txt
awk로 축출한 내용을 보면,
30
25
40
그전에 리눅스에 jdk 설치가 되어야 동작된다!
참고 블로그)
https://velog.io/@mooh2jj/LinuxUbuntu-OpenJDK-11-설치-삭제
java -jar [jar.파일]
nohup java -jar abcdefg.jar &
nohup 명령어는 터미널 세션이 종료되어도 백그라운드에서 실행되는 프로세스가 종료되지 않도록 보장합니다. nohup 명령어를 사용하지 않으면, 터미널 세션이 종료되면 해당 세션에서 실행한 프로세스도 함께 종료되어 버립니다.
code . -r
1)
command > output.txt 2>&1
해석)
command의 표준 출력과 표준 오류 출력을 output.txt 파일로 리다이렉션하며, 2>&1
은 표준 오류 출력을 표준 출력으로 리다이렉션합니다. 결과적으로 모든 출력은 output.txt 파일에 저장
2) 활용 사례
nohup docker run -p 8080:8080 mooh2jj/cpu-bound-application-1 > /dev/null 2>&1 &
해석)
2>&1
: 표준 오류 출력 (stderr)을 표준 출력 (stdout)으로 리다이렉션하는 것을 의미
> /dev/null 2>&1
: 표준 출력 및 표준 오류를 /dev/null로 리다이렉션합니다. 이는 명령어 출력을 터미널에 표시하지 않고 버릴 수 있도록 합니다.
맨 마지막 &
: 프로세스를 백그라운드에서 실행한다는 뜻. 이 명령어는 해당 프로세스를 실행하는 동안 다른 작업을 수행할 수 있도록 해줍니다.
결과적으로 모든 출력은 nohup.out
파일에 저장