정보보안전문가
- for문 한개로 구구단 2017.03.25
- cut 명령어 2017.03.25
- wc 명령어 2017.03.25
- ;의 역할,grep 명령어 2017.03.25
- 파일에 관련된 명령어 2017.03.25
- 실습 예제 복습 2017.03.25
- 각종 명령어 2017.03.25
- for문을 이용하여 다이아몬드 만들기 2017.03.24
- 디렉토리 생성과 사용(Snapshot 사용) 2017.03.19
- 파일의 종류와 명령어 2017.03.19
for문 한개로 구구단
cut 명령어
cut - 화면에 출력되는 필드 잘라내기
#cut [옵션] [파일]
-c 잘라낼 글자 위치를 설정
ex)# cut -c 1-3 cut_test (1~3번째 글자 까지만 보여준다.)
-f 잘라낼 필드를 지정
-d 필드와 필드를 구분하는 문자 (구분자) 지정 (기본값 tab)
ex)cut -d ":" -f 1,3 cut_test
이런식으로 구분된다.
'리눅스 ' 카테고리의 다른 글
lrzsz 패키지 설치 (0) | 2017.03.26 |
---|---|
파일링크 (0) | 2017.03.25 |
wc 명령어 (0) | 2017.03.25 |
;의 역할,grep 명령어 (0) | 2017.03.25 |
파일에 관련된 명령어 (0) | 2017.03.25 |
wc 명령어
wc (word count) 파일의 문자,라인,단어 수 출력
-c 문자 수
-l 라인 수
-w 단어 수
-L 가장 긴 문장의 길이 출력
#wc /etc/resolv.conf
#wc -l /etc/resolv.conf
#wc -w /etc/resolv.conf
[라인] [단어] [문자] 순으로 출력
'리눅스 ' 카테고리의 다른 글
파일링크 (0) | 2017.03.25 |
---|---|
cut 명령어 (0) | 2017.03.25 |
;의 역할,grep 명령어 (0) | 2017.03.25 |
파일에 관련된 명령어 (0) | 2017.03.25 |
실습 예제 복습 (0) | 2017.03.25 |
;의 역할,grep 명령어
;을 통해 명령어를 묶음
cp 명령어 + mkdir 명령어 = 명령어 x
[명령어1] ; [명령어2]
#cp a-file b-file ; mkdir test_dir
#ls ; pwd
#date ;ls ; pwd ; cat ;/etc/resolv.conf
grep(Globally find Regular-Expression and Print)(매우중요) (원하는 결과만 뽑는 것)
- 문자열 검색
grep [옵션] [패턴] [파일]
-i 대소문자 구별 x
-n 행번호 함께 출력
-v 패턴에 일치 하지 않는 행만 출력 (제외 용도)
-w 패턴이 전체 단어와 일치하는 행만 출력
이런 식으로 root에 관련된 것만 출력
ex) 3개의 파일 생성
#cat > abc
abc
#cat >abc1
abcc
#cat > abc2
abccc
메타 문자 종류 중에 *(asterisk) 와일드카드 문자를 이용하여 현재 경로에 있는 abc로 시작하는 모든 파일 확인
#ls abc*
#cat abc*
문제 (grep [패턴] [파일])
1. 현재 경로에 있는 abc로 시작하는 파일 중 abc로 시작하는 모든 패턴을 찾아라.
결과
abc:abc
abc1:abcc
abc2:abccc
#grep abc* abc* 잘못된 검색
#alias grep='grep --color=auto' //그랩 패턴 하이라이트
#grep abc* abc* = abc abc1 abc2 abc abc1 abc2 잘못된 것
#grep 'abc*' abc* == #grep abc* abc abc1 abc2 잘된 것(' '로 묶어줘야 한다.)
이 설정을 하면
이렇게 로그인을하면 자동으로 입력 된다.
파일에 관련된 명령어
#file - 파일의 형식을 확인
#file [파일명]
ex)#file /bin/ls //실행파일 (executable)
#file /etc/passwd //텍스트 파일 (ASCII text)
#file /root //디렉토리 (directory)
(중요한데 잘 안쓰임 근데 매우 중요)
#which -실행파일 및 alias 확인
#which [파일명]
ex) #which cp //명령어 실행 파일의 경로를 출력
#which date
#which ls
#which pwd
more- 화면 단위로 파일 내용 출력 비슷한것(#less)
#more [옵션] [파일]
+[N] 출력을 실작할 행 번호
space bar - 다읍 화면 출력
enter key - 한 줄씩 스크롤
ctrl + f 다음 화면으로 이동(space bar)
ctrl + b 이전 화면으로 이동
/[pettern] - 문자열 검색
n - 다음 일치하는 패턴
#cat /etc/services
한번에 출력
#more /etc/services
하나하나 확인가능
멈추기 q
head - 파일 내용의 첫 10줄만 출력
#head [옵션] [파일]
-[번호] 처음부터 [번호]까지 출력
#cat /etc/passwd
전부다 출력
#head /etc/passwd //첫 10줄만 출력
#head -15 /etc/passwd //처음부터 15줄만 출력
tail - 파일 내용의 마지막10줄 출력
tail [옵션] [파일]
-[번호] 마지막 부터 [번호]만큼 출력
★(매우중요)-f 실시간으로 파일의 내용을 확인
ex) tail /etc/passwd //마지막 10줄만 출력
#tail -3 /etc/passwd //마지막부터 3줄만 출력
#tail -f /var/log/secure //현재 원격 접속을 시도한 내용을 실시간으로 확인
이렇게 접속을하면 로그가 남는다.
'리눅스 ' 카테고리의 다른 글
wc 명령어 (0) | 2017.03.25 |
---|---|
;의 역할,grep 명령어 (0) | 2017.03.25 |
실습 예제 복습 (0) | 2017.03.25 |
각종 명령어 (0) | 2017.03.25 |
디렉토리 생성과 사용(Snapshot 사용) (0) | 2017.03.19 |
실습 예제 복습
실습 예제
1. /practice/file_test/ 디렉토리 생성.
2. /practice/file_test/ 디렉토리 아래 하위 디렉토리 생성. (단, 명령어 한줄이용)
/practice/file_test/bin_a/
/practice/file_test/bin_b/
3. /bin/ 경로에 있는 a로 시작하는 모든 파일을 /practice/file_test/bin_a/ 디렉토리에 복사.
/bin/ 경로에 있는 b로 시작하는 모든 파일을 /practice/file_test/bin_b/ 디렉토리에 복사.
4. /etc/resolv.conf 파일을 /practice/file_test/ 디렉토리로 복사.
5. /practice/file_test/resolv.conf 파일의 내용과 /etc/resolv.conf 파일이 동일한 내용 인지 확인.
6. /practice/backup 디렉토리 생성 후
/practice/file_test/resolv.conf 파일을 /practice/backup/ 으로 이동
7. /practice/backup 디렉토리에 아래와 같이 파일을 생성
- 빈 파일 생성
- 파일1 : yesterday_file
- 파일2 : now_file
파일1 생성 시 시스템 시간 기준 어제날짜로 생성 1. #touch -t [어제날짜시간] [파일명]
ex) touch -t 201703241010 file
파일2 생성 시 현재 시간으로 생성 1. #touch -t [오늘날짜시간] [파일명]
2. #touch [파일명]
실습 예제
1. 최상위 디렉토리 아래 practice 디렉토리 생성
2. 생성한 practice 디렉토리 아래 day1 ~ day7 까지 디렉토리 생성
-단, 명령어 한번으로 생성
3. 생성한 day1 디렉토리 아래 그림과 같이 디렉토리 생성
-단, 명령어 한번으로 생성
Linux
|
CentOS
|
6.8
|
2.6.32
4. 생성한 2.6.32 디렉토리로 이동
5. 현재 디렉토리 확인 후, CentOS 까지 이동
(1)절대 경로를 이용하여 이동 하기
(2)상대 경로를 이용하여 이동 하기
6. 생성한 practice 디렉토리 아래 생성한 day2 ~ day7 디렉토리 삭제
'리눅스 ' 카테고리의 다른 글
;의 역할,grep 명령어 (0) | 2017.03.25 |
---|---|
파일에 관련된 명령어 (0) | 2017.03.25 |
각종 명령어 (0) | 2017.03.25 |
디렉토리 생성과 사용(Snapshot 사용) (0) | 2017.03.19 |
파일의 종류와 명령어 (0) | 2017.03.19 |
각종 명령어
파일 옮기고 이름 바꿀 수있는 명령어? mv
mv {move} - 파일 디렉토리 이동
#mv [옵션] [소스(원본)] [타켓]
-f 파일 이동 시 대상 경로에 파일이 있다면 물어보지 않고 덮어 쓴다.
ex) #mv ls /practice/
ex) #mv ls_123 ls_456 (이름 변경) = ls_123 ->ls_456으로 바뀜(왼쪽은 원본 폴더명, 오른쪽은 변경하고자하는 폴더명)
ex )mv /practice/mv-test /practice/day1
옮기고자하는 폴더위치 옮기는 폴더위치
rm (remove) - 파일 삭제
#rm [옵션] [타켓]
-f 삭제시 물어보지 않고 삭제
-r, -R (recursive) 하위 디렉토리 및 파일을 포함하여 삭제
-i (interactice) 삭제 여부를 사용자에게 확인(기본값)
ex) rm -f 지울파일
cat (conCATenate) - 파일 내용 확인 (아주중요)
#cat [옵션] [파일]
-n(number)라인 번호를 포함하여 출력
30줄
-b(blank) 라인 번호 출력, 공백은 제외
공백 제외해서25줄
ex) #cat /etc/resolv.conf // /etc/resolv.conf 파일의 내용 확인
#cat /etc/passwd
#cat -b /etc/passwd
touch - 파일의 시간정보(timestamp) 변경
-t [timestamp]
timestamp 형식 : [ [CC]YY ]MMDDhhmm[.ss]
CCYY MM DD hh mm
ex) 2017년 03월 25일 13시 50분
파일에 적용되는 시간 정보
1. 접근 시간(access time) - 파일 열거나 접근(실행)한 시간
-#ls -lu [file]
2. 변경 시간(change time) - 파일의 정보(속성,퍼미션)가 변경된 시간
-#ls -lc [file]
3. 수정 시간(modify time) - 파일의 내용이 변경된 시간
-#ls -l
touch ex)
#cp /bin/ls /practice/
#ls -l
CCYYMMDDhhmm
#touch -t 201803251010 ls
#ls -l
빈 파일 생성 (크기가 0KB)
#touch [file]
ex) #touch file1
#touch file2
#touch file{3..5}
#touch file{6,7,8}
#ls -l
#cat file1
#cat file2
크기 수정 시간 파일명
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file1
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file2
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file3
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file4
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file5
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file6
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file7
-rw-r--r--. 1 root root 0 2017-03-25 04:53 file8
#stat [파일명] -파일의 자세한 정보 확인
ex) #stat file1
date - 시스템 시간 확인 /수정
-s "CCYY -MM-DD hh:mm:ss"
ex) #date //현재 시스템 시간 확인
ex) #date -s "2017-07-18 09:30" //날짜,시간 변경
ex) #date -s "12:30" // 시간 변경
ex) #date -s "20181010" // 날짜 변경 (시간 초기화)
실습 예제
1. /practice/file_test/ 디렉토리 생성.
#mkdir /practice/file_test/
2. /practice/file_test/ 디렉토리 아래 하위 디렉토리 생성. (단, 명령어 한줄이용)
/practice/file_test/bin_a/
/practice/file_test/bin_b/
1.#mkdir /practice/file_test/bin_a /practice/file_test/bin_b
(절대경로)
2.#mkdir bin_a bin_b(상대경로1)
2-1. #mkdir ./bin_a ./bin_b(상대경로2)
3. #mkdir bin_{a,b}
3. /bin/ 경로에 있는 a로 시작하는 모든 파일을 /practice/file_test/bin_a/ 디렉토리에 복사.
/bin/ 경로에 있는 b로 시작하는 모든 파일을 /practice/file_test/bin_b/ 디렉토리에 복사.
1. cp /bin/arch /bin/awk /practice/file_test/bin_a
현재경로가 bin_a일때 cp /bin/a* ./ (*=a로시작하는 모든)
2. cp /bin/basename /bin/bash /practice/file_test/bin_b
현재경로가 bin_a일때 cp /bin/b* ../bin_b(*=b로시작하는 모든)
4. /etc/resolv.conf 파일을 /practice/file_test/ 디렉토리로 복사.
5. /practice/file_test/resolv.conf 파일의 내용과 /etc/resolv.conf 파일이 동일한 내용 인지 확인.
#cat 사용
6. /practice/backup 디렉토리 생성 후
/practice/file_test/resolv.conf 파일을 /practice/backup/ 으로 이동
#mv 이동
7. /practice/backup 디렉토리에 아래와 같이 파일을 생성
- 빈 파일 생성
- 파일1 : yesterday_file
- 파일2 : now_file
파일1 생성 시 시스템 시간 기준 어제날짜로 생성 1. #touch -t [어제날짜시간] [파일명]
ex) touch -t 201703241010 file
파일2 생성 시 현재 시간으로 생성 1. #touch -t [오늘날짜시간] [파일명]
2. #touch [파일명]
'리눅스 ' 카테고리의 다른 글
파일에 관련된 명령어 (0) | 2017.03.25 |
---|---|
실습 예제 복습 (0) | 2017.03.25 |
디렉토리 생성과 사용(Snapshot 사용) (0) | 2017.03.19 |
파일의 종류와 명령어 (0) | 2017.03.19 |
Bash Shell의 명령어와 각종 간편 명령어 (0) | 2017.03.19 |
for문을 이용하여 다이아몬드 만들기
약 2시간 20분 고민 끝에 해냈다. 정말 멍청한듯..
디렉토리 생성과 사용(Snapshot 사용)
mkdir(Make DIRectory) - 디렉토리 생성
#mkdir [디렉토리명]
#mkdir [옵션] [디렉토리명]
#mkdir [디렉토리명1] [디렉토리명2] [디렉토리명3]
옵션 -p 하위디렉토리까지 한번에 생성
중괄호를 사용해 한번에 생성
rmdir( ReMove DIRectory) - 디렉토리 삭제
#rmdir [디렉토리명]
주의 사항 - 디렉토리내에 파일이 있는 경우 삭제되지 않는다.
- 즉,빈 디렉토리만 삭제 가능
- 디렉토리내에 파일들을 보호하기 위한 최소한의 장치
실습 예제
1. 최상위 디렉토리 아래 practice 디렉토리 생성
/root/practice <-- mkdir practice X
#mkdir /practice O
#cd /practice
2. 생성한 practice 디렉토리 아래 day1 ~ day7 까지 디렉토리 생성
-단, 명령어 한번으로 생성
#pwd
/practice
1. #mkdir day1 day2 day3 day4 day5 day6 day7
2. #mkdir day{1,2,3,4,5,6,7}
3. #mkdir day{1..7}
3. 생성한 day1 디렉토리 아래 그림과 같이 디렉토리 생성
-단, 명령어 한번으로 생성
Linux
|
CentOS
|
6.8
|
2.6.32
#mkdir -p /practice/day1/Linux/CentOS/6.8/2.6.32 // 절대 경로
#mkdir -p day1/Linux/CentOS/6.8/2.6.32 // 상대 경로
4. 생성한 2.6.32 디렉토리로 이동
#cd /practice/day1/Linux/CentOS/6.8/2.6.32 // 절대 경로
#cd day1/Linux/CentOS/6.8/2.6.32 // 상대 경로
5. 현재 디렉토리 확인 후, CentOS 까지 이동
(1)절대 경로를 이용하여 이동 하기
(2)상대 경로를 이용하여 이동 하기
#pwd
/practice/day1/Linux/CentOS/6.8/2.6.32
(1) #cd /practice/day1/Linux/CentOS
(2) #cd ../../
6. 생성한 practice 디렉토리 아래 생성한 day2 ~ day7 디렉토리 삭제
#rmdir day2
#rmdir day2 day3 day4 day5 day6 day7
#rmdir day{2,3,4,5,6,7}
#rmdir day{2..7}
cp (Copy) - 일반파일이나 디렉토리 복사
#cp [옵션] [소스(원본)] [타켓(사본)]
옵션 -R -r 디렉토리를 복사할 경우 하위 디렉토리 및 파일을
모두 포함하여 복사
-f 복사할 대상이 이미 있으면 강제로 덮어씌운다.
-v 명령어 실행과정 출력
-i 복사할 대상이 이미 있는 경우 사용자에게 덮어쓸지 질의
-p 해당 파일의 속성,시간정보 등을 유지하며 복사
복사 시 두인자가 모두 파일인 경우
#mkdir -p /practice/day1/
#cp /bin/ls /practice/day1/ls_backup
// ls 파일을 이름을 ls_backup으로 변경하면서 복사
#cd /practice/day1/
#ls
ls_backup
-이미 파일이 존재하면 덮어 쓸지 물어보고, 존재하지 않는다면 새롭게 생성된다.
#cp /bin/ls /practice/day1/ls_backup
#alias
복사 시 두번째 인자가 디렉토리인 경우
#cp /bin/ls /practice/day1/
복사본 위치
복사 시 인자를 여러개 지정할 경우
#cp /bin/cp /bin/pwd /practice/day1/
-단, 마지막 인자는 디렉토리이어야 한다.
디렉토리 복사하기
#cp /bin /practice/day1/bin_backup //에러
#cp -r /bin /practice/day1/bin_backup
// /bin 디렉토리를 /practice/day1/ 디렉토리 아래 이름을
bin_backup 으로 변경하면서 복사
Snapshot 사용(실수방지용,백업용)
실수를 하거나 했을 때 스냅샷을 한 구간으로 다시 돌아가게 해주는 것.
매니저를 클릭하면 된다.
'리눅스 ' 카테고리의 다른 글
실습 예제 복습 (0) | 2017.03.25 |
---|---|
각종 명령어 (0) | 2017.03.25 |
파일의 종류와 명령어 (0) | 2017.03.19 |
Bash Shell의 명령어와 각종 간편 명령어 (0) | 2017.03.19 |
환경 설치법 (0) | 2017.03.19 |
파일의 종류와 명령어
파일의 종류
파일 (file) - 관련 있는 정보들의 집합
- 파일을 효과적으로 관리하기 위해 디렉토리를 사용
-파일을 사용 목적에 따라 일반파일, 디렉토리, 링크파일(심볼릭 링크) ,장치파일 로 구분
일반 파일
-데이터를 저장하는 데 주로 사용
- 각종 텍스트 파일, 실행 파일, 이미지 파일등 리눅스에서 사용하는 대부분의 파일이다.
디렉토리
-리눅스에서는 디렉터리도 파일로 취급
-디렉터리 파일에는 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보가 저장
심볼릭 링크(링크 파일)
-원본 파일을 대신하여 다른 이름으로 파일명을 지정한 것
장치 파일
-리눅스에서는 하드디스크나 키보드 같은 각종 장치도 파일로 취급
-리눅스 시스템에 연결된 장치들을 관리하기 위한 특수 파일
리눅스 디렉토리 계층 구조
-리눅스에서는 파일을 효율적으로 관리하기 위해 디렉토리를 계층적으로 구성
최상위 디렉토리
- ' / ' 로 표시하며 모든 디렉토리의 상위 디렉토리
하위 디렉토리 (서브 디렉토리)
-디렉토리 아래 위치한 디렉토리
상위 디렉토리 (부모 디렉토리)
- ' .. ' 으로 표시하며, ' / ' 디렉토리를 제외한 모든 디렉토리는
상위(부모) 디렉토리가 있다.
작업 디렉토리 (현재 디렉토리)
- 현재 위치한 디렉토리 ' . ' 으로 표시
홈 디렉토리
- ' ~ ' 물결로 표시하며 각 사용자에게 할당된 디렉토리로 처음 사용자 계정 생성시 함께 생성된다.
기본 명령어
#pwd (print Working Directory) (매우중요 명령어)
- 현재 위치한 절대경로 확인
#ls (List Segment)(이것도 매우 자주 사용),리눅스는 확장자가 없다.
- 파일 및 디렉토리 목록 출력
옵션
-a 숨김파일을 포함한 경로안에 모든 내용 출력
-l List형태로 출력(#ll)
-F 파일의 형식을 알 수 있는 문자를 추가
-t 수정된 날짜를 기준으로 출력
-R 현재 위치를 기준으로 하위 디렉토리 및 파일을 출력
-h -l과 함께 사용하여 파일 크기를 사람이 보기 쉽게 출력
-S -l과 함께 파일 크기 기준으로 정렬한다.
#ls //명령어만 사용한 경우
#ls -l //명령어와 옵션을 사용한 경우
#ls /bin //명령어와 인자를 사용한 경우
#ls -l /bin //명령어 +옵션 +인자를 사용한 경우
옵션 끼리는 -을 반복하여 적지 않아도 된다.
ex)
#ls -l -a X
#ls -la 0
가장 큰 파일 확인
#ls -alhS
파일의 형식을 나타내는 문자
/ 디렉토리
* 실행 파일 #ls -F /bin
@ 링크파일
윈도우즈 리눅스
Abc
ABC 다같은 파일 다 다른 파일
abC
aBc
명령어가 기억이 안날 때
Help 옵션과 메뉴얼 페이지 사용하기
#[명령어] -h
#[명령어] --h //--help
#ls --help
#yum -y install man //인터넷에서 man 패키지 다운로드
#yum -y install man-pages-ko.noarch(한글버전)
#man [명령어] //해당 [명령어]의 메뉴얼 페이지 확인
복사 기능 만들기.
로그 남기는 법
로그 남기는 설정
#cd (Change Directory) - 디렉토리 이동
cd [디렉토리명/변수]
#cd /bin
디렉토리를 나타내는 특수 문자
#cd :로그인한 사용자의 홈디렉토리 이동
#cd ~
#cd /root :root 계정의 홈디렉토리 이동
#cd
#cd ~
#cd $HOME
#cd ~[계정명] : 해당 [계정명]의 홈 디렉토리로 이동
#cd - : 바로 이전의 작업 디렉토리로 이동
#cd . . : 상위 디렉토리로 이동
경로를 표현하는 방법
1. 절대 경로
- 최상위 디렉토리인 '/ ' 부터 시작하는 위치
-루트('/')디렉토리 부터 시작하여 특정 파일이나 디렉토리의 위치까지 이동하면서 거치는 모든 중간 디렉토리의 이름을 나열하여 표시
-특정 위치를 가리키는 절대 경로명은 항상 동일하다.
2. 상대 경로
- 현재 작업하고 있는 디렉토리에서의 상대적인 위치
- ' . ' 현재 디렉토리 ' ..' 상위 디렉토리
- '/' 이외에 문자로 시작한다.
-상대 경로 명은 현재 디렉토리가 어디냐에 따라 달라진다.
ex) #pwd
/home/alice
/home/bob 디렉토리 이동
1. 절대 경로 이동 방법
#cd /home/bob
2. 상대 경로 이동 방법
#cd ../bob
/home/alice/code 디렉토리 이동
절대 경로 : #cd /home/alice/code
상대 경로 : #cd ./code
#cd code
#cd /var/lig/audit
문제 -상대 경로를 이용하여 최상위 디렉토리 '/' 까지 이동
-pwd 명령어 입력 시 '/' 출력 확인
문제 2 - 바로 home으로 가기
색으로 파일을 구분하지말고 각종 특징으로 파악해라
'리눅스 ' 카테고리의 다른 글
실습 예제 복습 (0) | 2017.03.25 |
---|---|
각종 명령어 (0) | 2017.03.25 |
디렉토리 생성과 사용(Snapshot 사용) (0) | 2017.03.19 |
Bash Shell의 명령어와 각종 간편 명령어 (0) | 2017.03.19 |
환경 설치법 (0) | 2017.03.19 |