다른 글 안보게 최대한 정리..
관리자 권한으로 명령을 실행합니다.
sudo apt update
파일이나 디렉토리를 삭제합니다.
- -r (recursive) : 디렉토리와 그 내용을 재귀적으로 삭제
sudo rm -rf
- -f (force) : 확인 없이 강제로 삭제합니다.
sudo rm file.txt
현재 디렉토리의 내용을 나열합니다.
- l (long listing format) : 파일의 상세 정보를 표시
ls -l
- a (all) : 숨김 파일을 포함한 모든 파일을 표시
ls -a /home/user
ls -la /home/user
- h (human-readable) : 파일 크기를 사람이 읽기 쉬운 형태로 표시
ls -lh /home/user
- t (time) : 파일을 수정 시간 순으로 정렬
ls -lt /home/user
- 특정 확장자를 가진 파일만 표시
ls *.txt
- 특정 디렉토리의 내용 표시
ls /var/log
- -R (Recursive) : 하위 디렉토리 내용까지 재귀적으로 표시, 디렉토리 구조를 트리 형태로 보여줌
ls -R
작업 디렉토리를 변경합니다.
cd /home/user
현재 작업 중인 디렉토리의 전체 경로를 표시합니다.
새 디렉토리를 생성합니다.
- -p (parents) : 필요한 경우 상위 디렉토리도 함께 생성
mkdir -p /home/user/documents/projects/new_project
파일이나 디렉토리를 복사합니다.
- -r (recursive) : 디렉토리와 그 내용을 재귀적으로 복사
cp -r source_directory/ destination_directory/
파일이나 디렉토리를 이동하거나 이름을 변경합니다.
- 이동
mv file.txt /home/user/documents/
- 변경
mv old_name.txt new_name.txt
파일의 내용을 표시하거나 여러 파일을 연결합니다.
- 내용 표시
cat file.txt
- 파일 연결
cat file1.txt file2.txt > combined.txt
파일 내에서 지정된 패턴을 검색합니다.
주요 옵션: -i: 대소문자 구분 없이 검색 -r: 디렉토리 내 모든 파일에서 재귀적으로 검색
- "문자" : 파일에서 특정 문자열 검색 (단어가 포함된 전체 라인을 출력합니다.)
grep "error" log.txt
- -i (ignore case) : 대소문자 구분 없이 검색 (단어가 포함된 전체 라인을 출력합니다.)
grep -i "warning" *.log
- -n (Number) : 매칭되는 라인 번호 표시
grep -n "message" context.txt
- -v (Invert) : 매칭되지 않는 라인 표시
grep -v "success" tomcat.log
- -r (recursive) : 디렉토리 내 모든 파일에서 재귀적으로 검색
grep -r "deprecated" /home/user/project/
- -C (Context) 숫자 : 매칭된 문자열 주변의 컨텍스트 표시, 지정된 수의 라인(앞뒤 컨텍스트)을 함께 출력합니다.
grep -C 3 "exception" error.log
파일이나 디렉토리의 권한을 변경합니다.
- rwx r-x r-x
chmod 755 file.txt
- u (user) : 소유자, x (execute) : 실행
chmod u+x program
- g (group) : 그룹, w (write) : 쓰기,
-R (recursive) :하위 디렉토리와 파일들에도 동일한 권한 변경을 적용
chmod -R g+w directory/
파일이나 디렉토리의 소유자를 변경합니다.
- user: 새로운 소유자의 사용자 이름, group: 새로운 그룹 이름, file.txt: 변경할 파일
chown user:group file.txt
- newuser: 새로운 소유자의 사용자 이름, newgroup: 새로운 그룹 이름, directory/: 변경할 디렉토리
-R (recursive) :하위 디렉토리와 파일들에도 동일한 권한 변경을 적용
chown -R new_user:new_group /directory/....
실행 중인 프로세스 목록을 표시합니다.
- aux : 모든 프로세스의 상세 정보 표시
ps aux
- e (every) : 모든 프로세스를 표시, f (full) : 프로세스에 대한 전체 정보를 표시
ps -ef | grep nginx
파일이나 디렉토리를 찾습니다.
- 현재 디렉토리에서 특정 이름의 파일 찾기
. : 현재 디렉토리를 검색 시작점으로 지정합니다. 현재 디렉토리와 그 하위 모든 디렉토리를 검색합니다.
find . -name "*.txt"
- 특정 디렉토리에서 n일 이내에 수정된 파일 찾기
-mtime (modification time) : 파일의 수정 시간을 기준으로 검색합니다.
find /home/user -mtime -7
- 빈 디렉토리 찾기
type: 파일 유형을 지정합니다.
d (directory) : 디렉토리, f (file) : 일반 파일, l (link) : 심볼릭 링크
find . -type d -empty
- 특정 크기 이상의 파일 찾기 (예: 100MB 이상)
find / -size +100M
이전의 라인 편집기와 달리 전체 화면을 사용하는 효율적인 텍스트 편집 기능을 제공
:w : 저장
:q : 종료 (변경사항 없을 때)
:wq 또는 :x : 저장 후 종료
:q! : 저장하지 않고 강제 종료
vi의 개선된 버전으로, 더 많은 기능을 제공합니다.
sudo vi /directory/.../file/txt
사용하기 쉽고 직관적인 인터페이스를 목표로 합니다.
sudo nano /directory/.../file/txt
심볼릭 링크(symbolic link)의 대상을 표시
- 모든 심볼릭 링크를 재귀적으로 따라가 최종 목적지를 찾음
-f (full, follow) : 전체 경로(full path)를 반환, 심볼릭 링크를 따라간다(follow)는 의미
readlink -f /path/to/symlink
sudo reboot
sudo systemctl daemon-reload
sudo apt-get update
sudo apt-get upgrade
sudo ufw allow 8080/tcp
whoami
java -version
update-java-alternatives --list
readlink -f /usr/bin/javac
sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin/:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
sudo update-alternatives --config java
sudo /usr/local/tomcat10/bin/startup.sh
sudo systemctl start tomcat
sudo service tomcat start
sudo systemctl restart tomcat
sudo service tomcat restart
sudo systemctl status tomcat
sudo systemctl status tomcat.service
sudo systemctl stop tomcat
sudo pkill -9 -f tomcat
sudo systemctl enable tomcat
sudo systemctl disable tomcat
sudo tail -f /usr/local/tomcat10/logs/catalina.out
tomcat 9.0 버전 로그
sudo cat /var/log/tomcat9/catalina.out
sudo journalctl -u tomcat.service
sudo truncate -s 0 /usr/local/tomcat10/logs/catalina.out
sudo sh -c '> /usr/local/tomcat10/logs/catalina.out'
tomcat 9.0 버전 로그 clear
sudo truncate -s 0 /var/log/tomcat9/catalina.out
sudo vi /usr/local/tomcat10/conf/server.xml
UTF-8 설정하기 : URIEncoding="UTF-8"
path 설정하기 : <Context docBase="프로젝트명" path="/" reloadable="true"/>
sudo vi /usr/local/tomcat10/conf/tomcat-users.xml
<role rolename="tomcat"/>
<role rolename="admin"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat"
roles="tomcat,admin,manager-gui,manager-script,manager-jmx,
manager-status,admin-gui,admmin-script"/>
sudo vi /usr/local/tomcat10/webapps/manager/META-INF/context.xml
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
이부분 주석 처리하기
sudo vi /etc/profile
export CATALINA_HOME=/usr/local/tomcat10
source /etc/profile
echo $CATALINA_HOME
sudo vi /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 10 Web Application Server
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Environment=CATALINA_PID=/usr/local/tomcat10/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat10
Environment=CATALINA_BASE=/usr/local/tomcat10
ExecStart=/usr/local/tomcat10/bin/startup.sh
ExecStop=/usr/local/tomcat10/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
톰켓 10.1.25v 다운로드
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.25/bin/apache-tomcat-10.1.25.tar.gz
압축 해제
sudo tar xzvf apache-tomcat-10.1.25.tar.gz
디렉토리 변경
sudo mv apache-tomcat-10.1.25 /usr/local/tomcat10
설치된 톰켓 정보 확인
sudo /usr/local/tomcat10/bin/version.sh
tomcat.service 파일 설정시 여기서 보여지는 데이터와 일치해야한다.
sudo apt remove tomcat10
sudo apt-get remove --purge tomcat10
sudo apt-get autoremove
sudo rm -f /usr/local/tomcat10/temp/tomcat.pid
sudo su chmod 755 /usr/local/tomcat10/webapps
sudo su chmod -R 755 /usr/local/tomcat10/webapps
sudo chown -R tomcat:tomcat /usr/local/tomcat10/webapps
sudo chmod -R 755 /usr/local/tomcat10/webapps
이게 보안에 더 좋다.
📌 -R : 이 옵션은 "recursive"의 약자로, 디렉토리와 함께 그 안의 모든 파일과 하위 디렉토리의 권한도 함께 변경합니다.
ACL 패키지 설치
sudo apt-get install acl
/usr/local/tomcat10/webapps 디렉토리에 대한 기본 ACL 설정하기
sudo setfacl -Rdm u:
whoami
:rwx /usr/local/tomcat10/webapps
현재 존재하는 모든 파일과 디렉토리에 ACL 적용
sudo setfacl -Rm u:
whoami
:rwx /usr/local/tomcat10/webapps
-R: 재귀적으로 적용
-d: 기본 ACL 설정 (새로 생성되는 파일/디렉토리에 적용)
-m: ACL 수정
u::whoami:rwx: 현재 사용자에게 읽기, 쓰기, 실행 권한 부여
sudo chown -R tomcat:tomcat /usr/local/tomcat10
sudo chmod +x /usr/local/tomcat10/bin/*.sh
chmod 744 /usr/local/tomcat10/conf/tomcat-users.xml
sudo chmod 644 /etc/systemd/system/tomcat.service
sudo chown -R tomcat:tomcat /usr/local/tomcat10
sudo mkdir -p /usr/local/tomcat10/logs
sudo chown -R tomcat:tomcat /usr/local/tomcat10/logs
sudo ls -l /경로
sudo ls -l /etc/systemd/system/tomcat.service
sudo chmod +x /파일경로
sudo chmod +x /usr/local/tomcat10/bin/*.sh
cd /usr/local/tomcat10/webapps
ls -l
rm -rf
rm 파일명
sudo rm -rf /usr/local/tomcat10
sudo rm -rf /etc/경로
sudo mkdir -p /경로
apt-cache search (검색어)
exit
sudo apt-get install mysql-server
mysql -V
mysql -u 계정이름 -p -h 엔트포인트 주소
mysql -u admin -p -h database-1......ap-northeast-2.rds.amazonaws.com
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt install jenkins -y
sudo systemctl start jenkins
sudo systemctl restart jenkins
sudo systemctl status jenkins
sudo systemctl enable jenkins
sudo apt-get install tomcat9
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo apt-get install unzip
sudo passwd root
date
sudo timedatectl set-timezone Asia/Seoul