update
설치 되어있는 패키지들의 새로운 버젼이 있는지 확인할 때 해당 명령어를 사용합니다.
=> 이미 있는 패키지 내 시스템 정보 중 최신것을 불러오는 것!
upgrade
위에 있는 apt-get update를 통해서 확인한 패키지들의 최신 버전에 따라서 패키지들의 버전을 업그레이드 해주는 명령어입니다.
=> 최신 패키지를 다시 다운로드하는 것! (위험 💥) - 기존 패키지의 라이브러리가 호환이 안되 기존 어플리케이션이 오류가 날 수 있음!
$ sudo apt-get -y update && sudo apt-get -y upgrade
💥 주의) sudo 명령어가 꼭 필요!
# su:switch user
$ su - [계정명]
# root 로 이동
$ sudo -s
# 계정 exit
$ exit
# sudo:superuser do
sudo [명령어]
curl ipinfo.io
# 리눅스 시스템 확인
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
✳️
--help
: 각 명령어마다 옵션을 알려주는 옵션!
# 현재 위치
pwd
# 현재 사용자 이름
whoami
# 현재 시간
date
# 그전 디렉토리로 돌아가기
cd -
# 파일 내용 찾기
grep -nir "world" .
$ sudo snap install tree
$ tree
$ 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 -nltp | grep "찾는 단어"
# 프로제스 종료
kill -9 [pid]
# 이걸 더 추천
lsof -i:[찾는 포트]
ps -ef | grep "[찾는 단어]"
pgrep "[프로세스 이름]"
# 아래 끝까지 다 찾아봄
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주소]
nslookup [ip주소]
open [ip주소]
mv test.txt test.sh
# 기본 설정 권한
# owner | group | other 로 구분되어 지는 것임
# r(4) w(3) x(1)
-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 "[찾는 단어]"
# 현재 디렉토리와 그 하위 디렉토리에서 확장자가 .txt인 모든 파일을 찾습니다.
$ find . -type f -name "*.txt"
# 파일 타입이 디렉토리인 항목만 찾습니다.
$ find . -type d -name "*src"
# 파일 생성
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로 리다이렉션합니다. 이는 명령어 출력을 log 없이 터미널에 표시하지 않고 버리는 겁니다.
맨 마지막 &
: 프로세스를 백그라운드에서 실행한다는 뜻. 이 명령어는 해당 프로세스를 실행하는 동안 다른 작업을 수행할 수 있도록 해줍니다.
결과적으로 모든 출력은 nohup.out
파일에 저장
환경변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임입니다.
echo $HOME
# /home/ubuntu
export : 환경변수를 만들어 주는 명령어
export LOVE="i love you"
echo $LOVE
# i love you 출력
export 한 것을 영구히 저장하고 싶다면?
.bashrc 파일에 저장하면 됩니다.
.bashrc 파일은 환경변수를 저장하는 리눅스 설정파일입니다. 이 설정 파일은 내가 어떤 shell을 사용하는지에 따라 달라집니다. ubuntu라면 bashrc만 알고 있으면 됩니다.
vi ./.bashrc
설정할 내용이 아래 다음 코드에 추가합니다.
source
.bashrc 파일은 컴퓨터를 부팅할 때 적용됩니다. 강제 적용 시키고 싶다면 source 명령어를 사용하면 됩니다.
source ./.bashrc