목차
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_two
cp -i test_one test_two
cp -i test_one /home/christine/Documents/
.
사용으로 현재 디렉토리에 파일 복사cp -i /etc/NetworkManager/NetworkManager.conf .
cp -R Scripts/ Mod_Scripts
ls -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 fzll
mv fzll Pictures/
mv /home/christine/Pictures/fzll /home/christine/fall
rm -i fall
: 파일을 삭제할 것인지 확인 후 삭제rm -i f?ll
: f?ll 에 해당하는 파일들을 삭제할 것인지 모두 확인 후 삭제rm -f fall
: 파일을 삭제할 것인지 확인하지 않고 바로 삭제 [주의]mkdir New_Dir
mkdir -p New_Dir/Sub_Dir/Under_Dir
rmdir New_Dir
: New_Dir 디렉토리가 빈 디렉토리 일때만 가능rm -i New_Dir/my_file
rmdir New_Dir
rm -ri New_Dir
rm -rf New_Dir
file my_file
file New_Dir
file sl_data_file
file my_script
file /bin/ls
cat 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줄 출력참고링크