목차
1) 기본 bash 쉘 명령어
2) 파일시스템 구조
3) 파일,디렉토리 목록
4) 파일,디렉토리 관리
5) 파일 내용 보기
/etc/passwd 파일 : 모든 시스템 사용자 계정의 목록이 각 사용자에 대한 몇가지 기본 구성 정보와 함께 포함되어 있음
christine:x:501:501:Christine Bresnanhan:/home/christine:/bin/bash
/etc/passwd 에서 사용자 christine은 기본 쉘 프로그램으로 /bin/bash를 설정 = christine이 리눅스 시스템에 로그인 할 때마다 bash 쉘 프로그램이 자동 실행centos 리눅스 시스템
[christine@server01 ~]$ : christine(사용자)/server01(시스템)
man : 리눅스 시스템에 저장된 설명서 페이지에 접속 가능
man [특정명령이름] : 특정 명령어 설명서 항목 접속 가능 ex) man xterm
space bar click : 페이지 단위 검색
enter key click : 한줄 단위 검색
q : man 페이지 종료
man 1 hostname : hostname 명령어에 대한 섹션 1 man 페이지 접속 가능
man 1 intro : 섹션 1 내용 영역 자체에 대한 안내글 읽어볼 수 있음
리눅스는 가상 디렉토리라고 하는 단일 디렉토리 구조 안에 파일을 저장
/home/Rich/Documents/test.doc
공통적 리눅스 디렉토리의 이름은 파일시스템 계층 표준(FHS)을 기반으로 함
../ : 부모 디렉토리./ : 현재 디렉토리cd - : 이전 디렉토리로 이동[디렉토리이름]/[파일이름][실행파일이름]*ls -l my_script 입력 시, 해당 문자열과 일치하는 파일 목록 출력ls -l my_scr?pt 입력 시, 물음표위치를 제외하고 해당 문자열과 일치하는 파일 목록 출력ls -l my*ls -l my_s*t 입력 시, *(문자열) 제외하고 해당 문자열과 일치하는 파일 목록 출력ls -l my_scr[ai]pt 입력 시, []안에 a/i 중 하나이면 패턴이 일치한다고 판단ls -l f[a-i]ll 입력 시, []안에 알파벳 a~i 중 하나이면 패턴이 일치한다고 판단ls -l f[!a]ll 입력 시, a 가 아닌 것들 중 하나이면 패턴이 일치한다고 판단파일 생성 touch test_one
(파일 수정 시각을 변경하기 위해 쓸 수도 있음! 원래 생성되어있는 상태의 파일에서 touch test_one만 해주면 됨)
파일 사용시각을 확인하려면 ls -l --time=atime test_one
cp test_one test_twocp -i test_one test_twocp -i test_one /home/christine/Documents/. 사용으로 현재 디렉토리에 파일 복사cp -i /etc/NetworkManager/NetworkManager.conf .cp -R Scripts/ Mod_Scriptsls -Fd *Scripts => Mod_Scripts/ Scripts/cp *script Mode_Scripts/심볼릭 링크
ln -s data_file sl_data_file : sl_data_file이 data_file에 심볼릭 링크로 연결되어있음
ls -i *data_file로 이들의 inode 번호를 확인해서 물리적으로 분리되어있다는 사실을 알 수 있음
하드 링크
ln data_file sl_data_file
원파일에 대한 정보 및 그 파일이 어디에 있는지를 포함하고 있는 별개의 가상 파일을 만듬
하지만 ls -i *data_file로 이들의 inode 번호를 확인해보면 하드링크는 물리적으로 같은 파일임
mv fall fzllmv fzll Pictures/mv /home/christine/Pictures/fzll /home/christine/fallrm -i fall : 파일을 삭제할 것인지 확인 후 삭제rm -i f?ll : f?ll 에 해당하는 파일들을 삭제할 것인지 모두 확인 후 삭제rm -f fall : 파일을 삭제할 것인지 확인하지 않고 바로 삭제 [주의]mkdir New_Dirmkdir -p New_Dir/Sub_Dir/Under_Dirrmdir New_Dir : New_Dir 디렉토리가 빈 디렉토리 일때만 가능rm -i New_Dir/my_filermdir New_Dirrm -ri New_Dirrm -rf New_Dirfile my_filefile New_Dirfile sl_data_filefile my_scriptfile /bin/lscat test1 : 내용 보여줌cat -n test1 : 줄번호를 붙여줌cat -b test1 : 텍스트가 있는 줄에만 번호를 붙여줌cat -T test1 : 탭 문자가 표시되는 것을 원하지 않는다면 사용탭 = ^I 로 표시cat /dev/null > [파일명]로그파일은 되도록이면 안지우고 남겨두는것이 좋습니다
cat > [파일명]으로 덮어씌우는 것으로 사용하기cat >> [파일명]으로 내용추가하는 것으로 사용하기
리눅스 log rotate 설정이란?
운영 및 유지보수를 위해 log를 기록하는 것은 당연히 요구되는 기능
linux에서 구동되는 application에서 log file에 대한 관리(rotate, delete)를 따로 구현하고 싶지 않다면 logrotate라는 데몬을 활용하여 쉽게 rotate와 삭제 관리가 가능하다.
log rotate 에 대한 자세한 내용 블로그 링크
more [파일이름] : 데이터의 각 페이지를 표시한 후 멈춤tail -n 2 log_file : log_file의 마지막 2줄 출력tail -f log_file : 다른 프로세스가 파일을 쓰고 있을 때에도 파일의 내용을 들여다볼 수 있음 => 모니터링하기 좋은tail -F : 파일 변동 시 실시간으로 보여주되 로그파일처럼 특정 시간이 지난 후 파일이 변하게 되면 새로운 파일을 오픈하여 보여줌(다시 명령 실행할 필요가 없음)tail -200f : 파일의 마지막 200줄을 실시간으로 계속 출력head -5 log_file : log_file의 첫 5줄 출력참고링크