본문 바로가기
대외활동/시스템프로그래밍

리눅스 명령어 정리 & 예제

by hoshi03 2024. 8. 17.

• 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