정보통신공학과 노선변경기
리눅스 기초 1일차 ls, ln, cat, more, less, grep, head, tail, touch, cp, md5sum, mkdir, rm, rmdir 명령어 본문
리눅스 기초 1일차 ls, ln, cat, more, less, grep, head, tail, touch, cp, md5sum, mkdir, rm, rmdir 명령어
HEONPOLI 2021. 5. 10. 22:13Tmp=> 응용프로그램 동작 시 발생하는 정보 임시저장하는 장소,
var => 시스템 운영중 발생하는 정보 임시저장..
*상대경로, 절대경로
1) 상대경로
. : 현재 디렉토리 .. : 상위 디렉토리 ./../ è 현재 경로의 상위경로를 뜻한다.
2) 절대경로
/home/user è 디렉토리명을 모두 명시하는 것을 절대경로라 한다.
cd - 직전에 사용된 디렉토리로 이동
*ls :(list를 보여주는 명령어) 디렉토리의 정보를 볼 때 사용
[option]
-l => 리스팅하여 나타냄
-d=> 디렉토리 내부의 내용이 아닌, 디렉토리 그 자체의 정보 보여준다.
-I => 파일의 identity node를 확인하기 위해 사용(숫자로 나타내어진다.) 같은내용을 갖고있는 파일임에도 inode가 다르다면 다른 파일이되는것을 확인할 수 있다. I node가 같다?= 같은파일이다.
-a => 숨김파일까지 모두 볼 때 사용
-R => 하위 디렉토리의 정보들을 모두 보여준다.
-F => 파일의 속성정보를 보여준다..(자주 안쓰는 옵션)
(MAC time == modify access change time)
-lt => modified time, -lut => access time, -lct => change time 나타내어준다.
dwxr-xr-x 2 user user ...… =>ls -l 의 결과중 한부분으로 권한을 나타내는 것(사용자 부분 설명시에 다시 한다)
wxr ==> 앞의 세자리,파일의 소유자에 대한 권한
r-x ==> 두번재 세자리, 파일의 그룹에 대한 권한
r-x ==> 세번째 세자리, 파일의 other에 대한 권한
숫자 2 => 이 파일의 link count, 만약 2라면 이 파일 안에는 더 이상 다른 파일이 존재하지 않는다는 뜻. 디렉토리는 2부터 시작(자신과 자기 위에 하나), 만약 숫자 4=> 하위에 디렉토리 2개 더 있다는 뜻.파일은 일반적으로 1 이다.
리눅스는 계정별 파일컨트롤이 가능한 시스템이다.. 윈도우는 사용자에게 파일권한이 모두 넘어가있는 반면 리눅스는 아니다.
*파일의 내용을 확인하는 명령어 cat, more, less, grep, head, tail
1.cat : 파일의 내용출력
[option] -n => line number 표시
cat 에서의 > 의미: 표준출력을 어떻게 하는가가 생략 되어있음(1>)
cat > aa : >(ridirection)aa라는 파일이 없다면 생성하고, 기존에 존재하는 파일에는 overwrite(덮어씌우기) 한다. 엔터를 칠 때 출력이 넘어간다. >>(append) 내용 추가할 때 사용.
cat < aa > bb : aa의 내용을 cat 명령어에 넣어주고 그것을 다시 bb로 넣어주므로 aa와 bb가 동일하게 만들어진다.
cat < aa >> bb : 표준입력을 aa에서 받아서 bb로 append 하므로, aa와 bb는 다른 내용이된다. append한다 ex) aa 의 내용: hihi , bb의 내용: haha 라면 cat < aa >> bb è
cat < aa >> bb è bb의 내용:haha
hihi 로 append 된다
2. head, default => 파일의 내용 위에서부터 10줄 출력
cat -n aaa | head ==> aaa파일의 출력 내용을 위에서부터 10줄 출력, |(파이프) 앞의 내용을 뒤의 명령어 맞게출력
cat -n aaa | head -5 (or -n +5) ==> head 뒤의 숫자에 맞는 줄 수 출력
3. tail => 파일 내용 끝에서부터 10줄 출력
cat -n aaa | tail ==> aaa파일의 출력 내용을 뒤에서부터 10줄 출력
cat -n aaa | tail -n 5 ==> 뒤부터 5줄 출력
[option] -f ==> 지속성과 관련된 옵션, tail -f aaa 하면 aaa 파일의 변화되는 항목들을 바로바로 확인가능(로그파일 확인에 주로 사용), 모니터링 한다고 생각하면됨
**cat -n aaa | tail -n +20 è 끝에서부터 20번째 줄 까지 출력
** aaa 파일의 10~20번째 줄 출력 ==>cat -n aaa | head -n +20 | tail -n +10
4. more => 파일의 내용을 페이지 단위로 보여줌, pipe와 엮어서 쓰기에 적합하다,
ex) ls -al | more 파일 정보를 more 명령어에 맞게 출력하여 보여준다.
5. less => 파일내용 빈공간의 내용을 문자로 임의로 채워넣기때문에 느리고, 다른 명령어와 엮어서 쓰기에 부적합 용량이 커진다.
*grep:
grep, fgrep, egrep 3가지 종류의 grep이 있음
형식: grep [option] [pattern] [파일위치]
[option]
-i ==> 대소문자 구분하지 않게한다.
-l ==> 패턴이 검색되는 파일의 이름을 출력
-v ==> ls | grep -v ccc => 현재 디렉토리내에 있는 파일 중ccc라는 단어 들어가는 파일제외하고 출력
-c ==> grep -c root /etc/passwd => etc/passwd 안에 root라는 단어가 들어가는 갯수 출력
-n ==> grep -n root /etc/passwd => etc/passwd 안에 root단어가 들어가는 줄을 줄번호와 함께 표기
[정규 표현식 메타문자]
^ : 시작부분 지정 grep ^root aaa => root 로 시작하는 줄 출력, [^a-z] ==>소문자 알파벳이 들어가는 줄 제외한다는 의미, ^[0-9] => 숫자로 시작하는 걸 의미
ex) ls /proc | grep [^a-z] ,,,, ls /proc | grep ^[0-9]
$ : 끝부분 지정 grep bash$ aaa => bash로 끝나는 줄 출력
[0-9]: 숫자표현, [a-z]: 소문자 표현, [A-Z]: 대문자 표현
fgrep 사용 => aaa 파일에 ^root 내용 추가하고 검색할 시에
grep ^root aaa 하면 root로 시작하는 걸 찾아주고
fgrep ^root aaa 하면 ^root 그대로 시작하는걸 찾아준다.
Egrep 사용 => egrep ‘^root|bash$’ aaa => or를 사용하여 root로 시작하고 bash로 끝나는 줄
검색가능
ex) grep setup aaa | grep gnome => aaa파일 안에서 setup을 검색하고 그 줄에 gnome이 있는 내용출력
ls -l aa 1> /dev/pts/1 ==> 터미널 정보 dev/pts/1 로 aa의 ls-l 결과를 출력시킨다.
ls /aaaaaa 2> /dev/pts/1 ==> tty 명령어로 확인된 터미널 dev/pts/1로 에러를 출력해준다.
*touch
0byte파일을 새로 생성하여 준다.
*cp: 복사 관련 inode, block, hard disk 에서의 동작..
파일이름을 이용하여 inode 정보를 확인(파일을 보관하고 있는 디렉토리 이 정보를 갖고있다) 하고 하드디스크에 데이터블록 영역에 접근하고 다른 데이터블록 영역에 붙여놓고 파일이름과 새로운 inode를 할당하는것이 copy 명령어의 과정
cp aa bb ==> 다른 inode를 갖는 aa와 bb이기 때문에 cp는 용량이 증가하는 명령어이다.
alias cp='cp -i' ==> default가 inode 또한 같이 복사시키는 것 (터미널 한번 열려있을 때에만 유효)
삭제=>파일이름과 inode를 끊어놓는것, 파일 이름만 삭제되고 inode는 남아있는다.
*md5sum: 무결성을 보장하는 명령어, 이게 같다면 같은파일.. but 내용은 같지만 inode가 다르면 다른파일
*mkdir => 디렉토리 생성
mkdir kbs mbc sbs ==> kbs mbc sbs 디렉토리 생성
mkdir -p kbs/mbc/sbs ==> p 옵션을 사용하면 kbs/mbc/sbs 모두 같이 그 순서로 생성하여준다.
디렉토리도 inode가 부여되고, 디렉토리 많아지면 PC성능저하된다.
Cp kbs dddd ==> kbs 디렉토리를 dddd로 복사한다. 내부의 디렉토리 또한 모두 복사.
삭제명령어
*rmdir => 디렉토리 하위가 다 비어있어야 삭제가능하다.
*rm => 파일, 디렉토리 모두 삭제 가능하다.
[option]
-r : 디렉토리 삭제
-rf: 전체 강제 삭제 ex) rm-rf / ==>/밑의 모든 파일, 디렉토리 강제삭제
'Sub2_리눅스 기초' 카테고리의 다른 글
리눅스 기초 4일차 Shell programming (0) | 2021.05.10 |
---|---|
리눅스 기초 3일차 UMASK, SHELL, CUT, AWK (0) | 2021.05.10 |
리눅스 기초 2일차 mv, 하드링크, 심볼릭링크, vi에디터, permission (0) | 2021.05.10 |