• alias로 단축 명령어 등록
clear 명령을 c를 입력하면 실행 가능하게 등록하고 , 등록한 c를 취소한다
alias c = clear
unalias c
alias rm=‘rm -i <- 그냥 파일을 삭제해버리는 rm을 rm -i 명령어로 한번 체크하게 만든다
• grep
grep 검색할내용 검색할 위치
grep user /etc/passwd 이렇게 하면 user를 포함하는 라인을 /etc/passwd 파일에서 검색한다
• 파이프
• .bashrc
로그인 할때마다 수행되는 파일 bash에 사용자가 설정하는 alias 파일을 등록하는 명령어
echo "alias c=clear" >> ~/.bashrc 로 등록하고
source ~/.bashrc 하면 재로그인 없이 즉시 반영된다
-- rm 명령어 좀더 안전하게 쓰기
echo "alias rm='rm -i'" >> ~/.bashrc
source ~/.bashrc
• 비밀번호 관리
chage [옵션] 계정명
chage -d 0 user <- 다음 로그인시 user 계정 비밀번호 변경하게 만든다
• ls 옵션
-h <- 보기 쉽게 파일 크기를 kb, mb 등으로 표시해준다
-d <- 디렉토리를 나열한다 ls -ld 옵션 등으로 디렉토리의 정보를 확인할 떄 유용하다
-S <- 크기 순으로 나열하는 옵션
a 옵션으로 보는 숨김 파일은 .으로 시작하는 파일
ls -l | head -n 3
현재 폴더의 파일들의 상세 정보중 위에서부터 3줄만 보기
• 압축, 묶기
리눅스에서 압축/해제 명령어
tar 파일
tar cvf test.tar t1.txt t2.txt <- tar 파일로 묶기
tar xvf test.tar <- 묶인 test.tar 풀기
tar.gz 파일
tar zcvf test2.tar.gz t1.txt t2.txt <- tar.gz로 압축
ar zxvf test2.tar.gzz <- tar.gz 파일 압축 풀기
• 파일 권한
맨 앞자리는 파일의 경우에는 -, 폴더의 경우에는 d
3자리씩 묶어서 생성자, 그룹, 타그룹
-rw-rw-r--
drw-rw-r--
chmod 명령어를 이용해서 권한을 변경할 수 있다
일반 666
실행파일 777
디렉토리 777
일반 파일 rw-r--r--
실행 파일 rwxr-xr-x
디렉토리 rwxr-xr-x
이렇게 변경하려면
umask 022를 해주면 된다
등록해서 사용하라면 echo "umask 022" >> ~/.bashrc
• 리눅스 명령어 예제
1. 내 컴퓨터 명(호스트명)을 확인하는 명령은 무엇입니까?
hostname
2. 로컬 시스템의 IP 주소가 무엇인지 알아보는 명령은?
ip addr show
ifconfig 명령어로도 가능하나 위의 ip addr show 명령어 사용하는걸 권장
hostname -I 현재 사용자의 ip 가져오기
3. 원격 시스템 server1.example.com과 연결이 잘 되어 있는지 확인해보려고 합니다. 어떤 명령을 수행해야 합니까?
ping 명령어를 사용해서 가져온다
ping www.naver.com 형태로 명령을 보내면 된다
4. 시스템에 대한 호스트명, 커널 버전 및 시스템 사양에 대해 확인할 수 있는 방법은?
uname -a
hostnamectl
5. 현재 시스템에 연결되어 있는 네트워크의 상태 정보를 확인하려고 합니다. 수행해야 할 명령은?
netstat -antuln?
ip addr show ? ifconfig?
6. 현재 시스템에 로그인되어 있는 사용자 계정의 목록과 수행하는 작업을 확인하려고 한다 수행할 명령은?
w
who
7. 인터넷에서 bash-4.5.tar.gz 파일을 다운받아 시스템에 설치하려고 한다. 적절한 명령은?
wget https://kernel.com/bash-4.5.tar.gz
tar zxvf bash-4.5.tar.gz
cd bash-4.5
./configure
make
sudo make install
8. 현재 설치된 리눅스 커널의 릴리즈 번호를 확인하려고 한다. 적절한 명령은?
uname -r
9. 사용자의 홈 디렉토리에 있는 디렉토리 목록만 확인하려고 합니다. 관련 명령을 작성해 봅시다
ls -d /home/$USER/*/
10. 일반 사용자 계정 중 하드 디스크를 가장 많이 사용하는 사용자 3명을 조사하려고 합니다. 관련 명령을 작성하십시오.
du -sh /home/* | sort -rh | head -n 3
사용자별로 사용량을 확인하기 위해서 /home/* 형태로 사용자끼리 구분
11. 리눅스 파일시스템 전체에서 파일명이 ‘.conf’ 확장자로 끝나는 파일들을 검색해보십시오.
sudo find / -type f -name '*.conf'
12. /tmp 디렉토리에서 사용자 ubuntu 사용자가 생성한 파일들을 검색하십시오.
find /tmp -user ubuntu
13. 시스템의 로그파일들이 모여 있는 /var/log 디렉토리 아래에 있는 로그 파일 중 최근 6개월(180일) 동안 로그 메시지가 저장되지 않은 파일들을 찾아보십시오.
sudo find /var/log -type f -mtime +180
14. 사용자 ubuntu 의 홈 디렉토리 아래에 있는 파일 중 파일의 크기가 0인 파일을 찾아보십시오.
find /home/ubuntu -type f -size 0
15. 리눅스 파일시스템 전체에서 파일명이 ‘.conf’ 확장자로 끝나는 파일들을 검색하고 그 파일의 크기를 조사하십시오.
find / -type f -name "*.conf" -exec ls -lh {} \;
-exec ls -lh {} \; 는 각 파일마다 개별적으로 ls -lh 명령을 수행한다
16. ubuntu 사용자의 홈 디렉토리 아래에서 최근 하루 동안 수정한 파일을 찾아 ~/backup 디렉토리로 복사하십시오.
mkdir ~/backup
find /home/ubuntu -type f -mtime -1 -exec cp {} ~/backup/ \;
17. 시스템의 로그 파일 중 auth.log 파일에서 su 명령에 관한 로그 메시지를 뽑아내는 명령을 작성하십시오
grep 'su' /var/log/auth.log
18. /etc/passwd 파일에는 사용자 정보가 등록되어 있습니다. 그런데 이 중에는 실제 로그인하지는 않고 단지 시스템 관리를 목적으로 생성된 계정들이 있습니다. 이 계정들을 제외하고 실제로 로그인하는 계정만 확인하려고 합니다. 수행 명령을 작성하십시오
-vE '/nologin|/false' /etc/passwd
19. 현재 리눅스 서버에서 수행되고 있는 프로세스 중 웹 서버 대몬(apache2)이 동작 중인지 확인하고 없는 경우 설치하십시오. 설치 후 웹 서버 연동이 되는지 확인하십시오
systemctl status apache2 <- 확인
sudo apt-get install apache2 <- 설치
sudo systemctl start apache2 <- 실행
curl http://localhost <- 연동확인
curl -vvv http://localhost <- 연동확인, 굉장히 상세한 정보
20. 위에서 설치한 웹 서버로 주고 받는 패킷들만 수집 및 확인하는 명령을 수행하십시오.
sudo tcpdump -i any -nn port 22
'대외활동 > 시스템프로그래밍' 카테고리의 다른 글
리눅스 쉘 스크립트 조건문 (0) | 2024.08.21 |
---|---|
리눅스 쉘 프로그래밍 (0) | 2024.08.20 |
0812 리눅스 (0) | 2024.08.12 |
0808 Qt 메세지박스, 자료구조 (0) | 2024.08.08 |
0807 QT 에디터 & 액션 (0) | 2024.08.07 |