어제 문제
/home/itwill/linux_ex 로 이동한 뒤
- shell/dir1 디렉토리 생성(단, shell 디렉토리도 함께 생성되도록)
mkdir -p shell/dir1 - 위 디렉토리로 이동한 후 file1.log file2.log 생성
cd shell
cd dir1
touch file1.log
touch file2.log - linux_ex 디렉토리 소유자 확인
cd ..
cd ..
ls -ld . - 홈디렉토리 하위 모든 파일 목록 확인
cd ..
ls -a - linux_ex 디렉토리의 하위의 shell 디렉토리 삭제
cd linux_ex
rm -rf shell - linux_ex/ch2 디렉토리로 이동하여 /etc/passwd 파일을 현재 디렉토리에 복사
cd ch2
cp /etc/passwd . - 위에서 3라인 출력
head -3 passwd
수업 내용
[파일 내용 보기]
- cat : 전체 보기. -n : 행번호 함께 출력
- more : 파일 앞에서부터 한 화면에 나오는 만큼만 보기
- (enter : 1라인씩 이동, space : 1화면씩)
- less : 뒤에서부터 보기
- head : 파일 앞에서부터 [옵션]라인 수만큼 보기. default=10
- tail : 뒤에서부터 보기.
** tail 옵션
-10 : 밑에서부터 10라인 출력
+10 : 10번째 라인부터 끝까지 출력
-f : 파일출력을 계속해서 보기(로그 모니터링 시 필요)
[cp]
파일이나 디렉토리 복사
** 문법
cp [옵션] 대상1 대상2 대상3
** 옵션
-i : 대화식 옵션
-r : 디렉토리 복사
파일복사 예)
cp /etc/passwd aaa -> aaa라는 이름으로 복사
cp /etc/passwd test -> test 디렉토리가 있다면 test 하위에 같은 이름으로 복사
cp /etc/passwd test/bb -> test디렉토리가 있다면 test하위에 bb라는 이름으로 복사
디렉토리 복사 예)
cp -r test test2 -> test2 디렉토리가 없다면 test2 이름의 디렉토리로 복사(만약 test2가 있으면 안에 test2/test 이런식으로 생성됨)
여러 파일 한 번에 디렉토리로 복사 예) 마지막인수가 존재하는 디렉토리명이어야 함
cp passwd test.log test -> test디렉토리에 passwd, test.log 복사(이미 있으면 덮어씀)
[mv]
파일 및 디렉토리 이름 변경 / 이동
mv 대상1 대상2
** 옵션
-i : 확인 받기
[touch]
빈 파일 생성 / 수정시간 변경
** 옵션
-t 시간 : 수정시간 변경
ex) touch -t 11081500 파일명 -> 파일의 수정시간을 11월 8일 15시00분으로 변경
[grep]
특정 문자열이나 패턴을 가진 행을 찾는다
** 문법
grep [옵션] 패턴 파일명
** 옵션
-w : 정확한 패턴 전달
-i : 대소구분 X
-v : 제외
-n : 행번호 출력
-l : 파일 내용에 패턴이 포함된 파일명 출력
예)
grep root /etc/passwd -> root 단어가 포함된 라인 모두 출력(위치 상관없음)
grep ^root /etc/passwd -> root로 시작하는 단어가 포함된 라인 모두 출력
grep bash$ /etc/passwd -> bash로 끝나는 단어가 포함된 라인 모두 출력
grep -w ^root /etc/passwd -> 정확히 root로 시작하는 라인 모두 출력(rooto같은건 출력X, root: 같은것만 출력)
grep -v root /etc/passwd -> root라는 단어가 들어간 라인은 제외
grep -i root /etc/passwd -> root라는 단어의 대소구분 없이 포함된 라인 출력
grep -rl root -> 현재디렉토리와 하위디렉토리에서 root 라는 단어가 들어있는 파일명 출력
[find]
파일이나 디렉토리를 찾는 명령어
** 문법
find 위치 [옵션]
** 옵션
-name 이름 : 특정 이름가진 파일 검색
-maxdepth 숫자 : 숫자만큼의 depth까지 범위에서만 검색. 모든 하위 디렉토리를 검색하지 않음.
-type 형식 : 디렉토리(d)인지 일반파일(f)인지 지정해서 검색.
-mtime +0 : 마지막 수정시간이 현재기준 24시간이 지난 파일들 검색. +1=48시간이 지난, -1=24시간이 지나지않은, …
-exec 명령어 {} \; : 찾은 파일에 대한 명령 처리 시 사용(중요!)
[vi]
삭제 : x, X
치환 : r,
– :s/찾을문자열/뭘로바꿀지 (커서에서 제일먼저나오는 것 1개만 변경),
– :s/찾을문자열/뭘로바꿀지/g (커서 있는 라인 전체),
– :행번호1,행번호2s/찾을문자열/뭘로바꿀지/g : 1에서부터 2까지 문자열 변경,
– :%s/찾을문자열/뭘로바꿀지/g : 전체에서 문자열 변경,
– :
실행취소 : u, U
입력 : a, i, o
라인단위 복사 : yy
라인단위 잘라내기 : dd
라인단위 붙여넣기 : p, P
행번호 출력/끄기 : :set nu, :set number, :set nonu
특정 행번호로 이동 : 행번호숫자입력+G
마지막 행으로 이동 : G
첫 행으로 이동 : 1G
100라인 이동 : :100
현재 행의 마지막으로 이동 : $
현재 행의 처음으로 이동 : ^
한 화면 위로 이동 : ctrl + b
한 화면 아래로 이동 : ctrl + f
찾기 : /검색어, n = 다음, N = 이전