'Study'에 해당되는 글 93건
- 2015.03.27 [08] passwd, shadow, group, gshadow, useradd, passwd, skel
- 2015.03.27 [07] vi(2), 유용한 vi 명령어 메모
- 2015.03.27 [06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집)
- 2015.03.27 [05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal
- 2015.03.27 [04] cp, mv, mkdir, rmdir, rm
- 2015.03.27 [03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear
- 2015.03.27 [02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁
- 2015.03.27 [01] CentOS 6.6 설치, 주요 디렉토리 설명, swap 1
- 2015.03.27 C언어 HW 05
- 2015.03.27 C언어 HW 04
- 2014.11.17
* 사용자(user) 추가 시 생성되는 것들 p64
1) /etc/passwd
2) /etc/shadow
3) /etc/group
4) /etc/gshadow
5) /home/ => $HOME
6) /var/spool/mail/
1. passwd : 사용자 정보파일
# tail -4 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash
samadal - 사용자명
: - 구분자
x - Password
500 - UID
500 - GID
madalgyo - comment, 별칭, 별명
/home/samadal - $HOME
/bin/bash - shell(명령어 해석기)
* linux shell 종류
# cat /etc/shells
/bin/sh // 최초로 개발된 쉘(bourn)본쉘, 복구 기본쉘
/bin/bash // 리눅스에서 가장 많이 사용하는 쉘, 오픈소스 기본응용 쉘
/sbin/nologin // 로그인되지 않은것, 시스템 쉘
/bin/dash // 데비안, 우분투 os 기본
/bin/tcsh // 확장C쉘, tomcat(java)화장 기능 쉘
/bin/csh // C쉘, C language 전용 기능 쉘
/bin/ksh // korn(콘)쉘, 유닉스에서 가장 많이 사용, 본쉘과 호환
2. shadow
예전엔 passwd 파일에 pw가 포함되어있었지만 보안상 shadow에 넣음
# tail -4 /etc/shadow
gdm:!!:16372::::::
sshd:!!:16372::::::
tcpdump:!!:16372::::::
samadal:$6$C1riYf4XBWlZXfcq$Kea4.kf0YnPpitJXPgC8ncwao2WhE3ccgOrt7inkXJBFqE61gRlkBIqP0N7ILgBXanh.aVmp8/NEdpo2FNAUs1:16372:0:99999:7:::
samadal - 사용자명
: - 구분자
$6$C1riYf4X.... - SHA512
16372 - 1970.1.1 기준으로의 생성 날자
0 - 패스워드 변경 가능 날짜(if 1, pw변경 후 1일 뒤에 pw변경 가능)
99999 - 패스워드 사용 가능 날짜(약 270년)
7 - 패스워드 변경 만료일
NULL - 기능정지, 기능+사용정지 기능 지정 가능
NULL - 사용 기간 설정 (~까지)
NULL - 예약만 되어있고 사용하지 않는 칸
* /etc/login.defs 에 shadow와 관련된 사항들이 적혀있다.
3. group
# tail -4 /etc/group
stapdev:x:158:
tcpdump:x:72:
slocate:x:21:
samadal:x:500:
samadal - 그룹명
: - 구분자
x - Password
500 - GID
NULL - 해당 그룹원 명단
4. gshadow
# tail /etc/gshadow
rpcuser:!::
nfsnobody:!::
gdm:!::
sshd:!::
stapusr:!::
stapsys:!::
stapdev:!::
tcpdump:!::
slocate:!::
samadal:!!::
samadal - 그룹명
: - 구분자
!! - 쓰레기값
5. home directory
# ls -l /home/ <- 아파트
합계 15
drwx------. 2 root root 12288 2014-10-30 01:51 lost+found
drwx------. 4 samadal samadal 1024 2014-11-17 12:43 samadal
집주인 동, 호수
6. mail
# ls -l /var/spool/mail/
합계 0
-rw-rw----. 1 rpc mail 0 2014-10-30 01:52 rpc
-rw-rw----. 1 samadal mail 0 2014-10-30 01:59 samadal
* /etc/skel <- 사용자 생성될 때 file이나 dir 자동으로 생성될 수 있도록 해줌
7. useradd
useradd [option] [argument] ... [user]
[in /etc/passwd]
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash 사용자 지정 skel
[option] : -u -g -c -d -s -m -k
ex)
user 생성시 각 6개 항목이 제대로 만들어 졌는지 확인
# useradd user1
/etc/passwd 확인
# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash
user1:x:501:501::/home/user1:/bin/bash
/etc/shadow 확인
# tail -3 /etc/shadow
tcpdump:!!:16372::::::
samadal:$6$C1riYf4XBWlZXfcq$Kea4.kf0YnPpitJXPgC8ncwao2WhE3ccgOrt7inkXJBFqE61gRlkBIqP0N7ILgBXanh.aVmp8/NEdpo2FNAUs1:16372:0:99999:7:::
user1:!!:16391:0:99999:7:::
/etc/group 확인
# tail -3 /etc/group
slocate:x:21:
samadal:x:500:
user1:x:501:
/etc/gshadow 확인
# tail -3 /etc/gshadow
slocate:!::
samadal:!!::
user1:!::
/home/ 디렉터리 확인
# ll /home/
합계 16
drwx------. 2 root root 12288 2014-10-30 01:51 lost+found
drwx------. 4 samadal samadal 1024 2014-11-17 12:43 samadal
drwx------ 4 user1 user1 1024 2014-11-17 13:51 user1
/var/spool/mail 확인
# ll /var/spool/mail/
합계 0
-rw-rw----. 1 rpc mail 0 2014-10-30 01:52 rpc
-rw-rw----. 1 samadal mail 0 2014-10-30 01:59 samadal
-rw-rw---- 1 user1 mail 0 2014-11-17 13:51 user1
* passwd 명령어로 사용자 비밀번호 변경해야 해당 사용자 사용 가능
ex)
testuser 라는 별명을 지정해주고 본쉘 적용시키는 user 추가
# useradd -c testuser -s /bin/sh user2
# tail -4 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash
user1:x:501:501::/home/user1:/bin/bash
user2:x:502:502:testuser:/home/user2:/bin/sh
# ll /home/
합계 17
drwx------. 2 root root 12288 2014-10-30 01:51 lost+found
drwx------. 4 samadal samadal 1024 2014-11-17 12:43 samadal
drwx------ 4 user1 user1 1024 2014-11-17 13:51 user1
drwx------ 4 user2 user2 1024 2014-11-17 13:56 user2
ex3)
Home directory를 /linux/gangnam 으로 주기
user3이 들어갈 아파트를 생성
# mkdir /linux/
# ls -ld /linux/
drwxr-xr-x 2 root root 4096 2014-11-17 13:57 /linux/
/linux/gangnam 이라는 동, 호수를 지정
# useradd -s /bin/tcsh -d /linux/gangnam user3
# tail -4 /etc/passwd
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash
user1:x:501:501::/home/user1:/bin/bash
user2:x:502:502:testuser:/home/user2:/bin/sh
user3:x:503:503::/linux/gangnam:/bin/tcsh
# ll /home/ /linux/
/home/:
합계 17
drwx------. 2 root root 12288 2014-10-30 01:51 lost+found
drwx------. 4 samadal samadal 1024 2014-11-17 12:43 samadal
drwx------ 4 user1 user1 1024 2014-11-17 13:51 user1
drwx------ 4 user2 user2 1024 2014-11-17 13:56 user2
/linux/:
합계 4
drwx------ 4 user3 user3 4096 2014-11-17 13:59 gangnam
8. passwd
passwd : 현재 사용자의 passwd 변경 명령어
passwd user : user의 passwd 변경 명령어, 관리자는 pw 규칙 무시 가능
[문제 1]
/etc/skel/ 에 있는 모든 내용을 /etc/samskel/에 복사후
사용자 지정 skel 명령어를 이용 /etc/samskel로 user5 생성
단, 디렉터리 자체를 복사하면 안된다.
user5 생성 후 정상 로그인 되는지 확인하고
-bash-4.1 $ 이면 실패, [user5@samadal ~]$ 이 되도록 생성.
실패했을 경우 user55, user555.... 로 만드세요
오답 1)
# cp /etc/skel/* /etc/samskel/
# useradd -m -k /etc/samskel/ user5
=> -bash-4.1 & 로 뜸
오답 2)
# useradd -m -k /etc/samskel/ -s /bin/tcsh user55
=> [user55@samadal ~]$ 로 뜸
오답의 이유 : skel directory에 숨김파일도 있기 때문.
# ll -a /etc/skel/
합계 40
drwxr-xr-x. 4 root root 4096 2014-11-17 14:47 .
drwxr-xr-x. 119 root root 12288 2014-11-17 14:56 ..
-rw-r--r--. 1 root root 18 2014-10-16 22:52 .bash_logout
-rw-r--r--. 1 root root 176 2014-10-16 22:52 .bash_profile
-rw-r--r--. 1 root root 124 2014-10-16 22:52 .bashrc
drwxr-xr-x. 2 root root 4096 2010-11-12 09:54 .gnome2
-rw-r--r--. 1 root root 171 2014-10-18 07:43 .kshrc
drwxr-xr-x. 4 root root 4096 2014-10-30 01:51 .mozilla
숨김파일 및 숨김 디렉터리도 모두 복사한 후
# useradd -m -k /etc/samskel/ user555555
하면 성공. 즉 skel 디렉터리 안에 있는 숨김 녀석들도 모두 생성 해줘야 함.
[문제2]
/usertest/test(사용자)/public/(자동생성디렉토리)
생성 후 정상 로그인되는지 확인 필요
실패시 testt, testtt ,,,
# mkdir /usertest/
# mkdir /etc/skel/public/
# useradd -d /usertest/testtt testtt
# passwd testtt
'Study > CentOS' 카테고리의 다른 글
[10] userdel, groupadd, groupdel, 계정 잠그기 (0) | 2015.03.27 |
---|---|
[09] useradd -D, usermod (0) | 2015.03.27 |
[07] vi(2), 유용한 vi 명령어 메모 (0) | 2015.03.27 |
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
- 2014.11.14 수업
1. vi
1) 라인명령모드
행번호 출력하기
:set nu = :se nu // set number
행번호 삭제
:set nonu = :se nonu // set no number
치환 명령어
:[범위]s/[old]/[new]
ex)
5번째 행 치환
:5s/passwd/samadal
20~23행 치환
:20,23/PASS/madal
문서 전체 치환
:%s/MAX/dalma
g:중복문자도 모두 치환
:56s/i/a/g
외부명령어 실행
:! [command] // 잠시 vi 멈추고 외부 명령어 실행, alias작동 안함
:.! [command] // 내 커서가 있는 곳에 결과물 입력
ex)
:!ifconfig
:.!ifconfig
화면 분할
Ctrl + n w // 수평으로 화면 분할
Ctrl + w w // 창 이동
Ctrl + w q or :q // 창 닫기
:f // 현재 편집중인 파일 정보 보여줌
:e // 문서 열어주는 기호. e! 하면 강제로 염
:w [경로] // 저장
:w >> [filename] // 결과물을 다른 파일에 추가
:nr [filename] // n라인 다음줄 밑에 [filename] 내용을 삽입
ex) :3r ./b // 3라인 다음줄에 ./b 파일 내용 삽입
:nr! [command] // n라인 다음줄에 [command] 결과물 삽입
ex) :5r! ls -d // 5라인 다음줄에 ls -d 결과물 삽입
:n(숫자) // n번째 행으로 이동
vi a b c 처럼 동시에 여러개의 창을 띄웠을 경우
:n // 다음 파일 보기
:N // 이전 파일 보기
:args // 내가 열어놓은 파일 목록 보기
:nn // n번째 뒤 파일 보기
ex):3n // 3번째 뒤 파일 보기
vi 내에서 복사
5,12 co 2 // 5~12 줄을 2번째 밑에 복사. 이동은 co -> m
[문제]
/home/samadal/ 에 있는 모든 파일 삭제
:!rm ./*
20번째 라인 밑에 자세한 출력내용(samadal 디렉터리에 있는 모든 파일들(a, b, c, d, e))을 삽입
:!touch ./a ./b ./c ./d ./e
파일 안에 있는 내용 변경 : etc(madal), rc(sam)
:%s/etc/madal/g
:%s/rc/sam/g
5~12번째 라인을 2번째 라인 밑에 복사
:5 8yy :2 p or :5,12 co 2
지금까지 작업한 모든 내용을 /test/sam.test 파일로 저장
:!mkdir /test/
:w /test/sam.test
/home/.sam.test 파일로 저장
:w /home/.sam.test
/backup/madal 파일로 저장
:w /backup/madal
빈문서 파일을 연 후 /backup/madal 파일 열기
:enew!
:e /backup/madal
2014.02.04 추가
유용한 vi명령어 (출처 : http://koreahojin.egloos.com/512216)
삽입
I: 줄의 제일 앞에서 입력
A: 줄의 제일 끝에서 입력
콤보 command
4w: 4단어 skip후 이동
4b: 4단어 skip후 이동
4j,h,k,l: 커서이동시 지정한 수만큼 건너뛰므로 이동을 좀 더 빨리 할 수 있다.
줄의 결합(J)
2줄이 있고, 2째줄을 1째줄 끝에 붙이고 싶다면, 1째줄에서 J를 입력하면 된다.
커서이동
0: 줄의 처음
^: 줄의 처음(글자가 시작되는 처음)
$: 줄의 끝
w: 단어단위 이동
e: w와 같으나 단어의 끝으로 이동
b: w의 반대방향으로 이동
H, M, L: 커서를 화면 상,중,하로 이동
검색(/후 검색할 단어입력)
n: 뒤로 검색
N: 앞으로 검색
매크로
ab aa aaaa: aa를 입력하면 aaaa로 자동변환
치환
s/pattern/replace: 현재줄의 첫번째 matching pattern치환
s/pattern/replace/g: 현재줄의 모든 matching pattern치환
%s/pattern/replace/g: 모든 줄의 치환
line,lines/pattern/replace: 해당 범위의 치환
저장
w>> file: 지정한 파일에 추가
윈도 split
vi내에서 위아래로 윈도가 분활되면서 2개의 파일을 동시에 open/편집할 수 있다.
ex-mode(:프롬프트상태)에서 'sp 파일이름'
윈도우가 전환은 Ctrl+ww
기타
1). d의 경우 command모드로 계속 남아 있으나 c는 삭제후 insert모드로 변환한다.
cc, c$, cw등은 유용하게 사용될 수 있다.
2) .은 마지막 명령을 되풀이한다.
visual모드
윈도의 텍스트 에디터와 같이 선택부분이 반전되면서 복사,삭제등을 할 수 있다.
v로 visual모드로 집입하여 커서키를 사용해 원하는 부분을 선택한다.
복사는 y, 삭제/잘라내기는 d로 할 수 있다.
vi설정(vim설정)
자신의 홈디렉토리에 .vimrc를 생성하고 다음과 같이 할 수 있다.
set ai
set ts=4
set nu
각각 auto-indent, tab stop, numbering
윈도에서 작업중 vi에 붙여넣기시 계단현상발생 방지
:set paste
위치기억(UltraEdit의 ALT-F2, F2와 동일한 기능)
m{a-z}: 현재위치를 {a-z}로 북마크함
`{a-z}: 기억해둔 {a-z}로 이동. 보통 한개만 등록했다면 그냥 ``를 사용하면 된다.
레코딩
설정파일의 주석추가/삭제시 유용하게 사용할 수 있다.(이미 vi에 매크로기능이 있지만, 레코딩이
UltraEdit의 매크로기능과 유사하다.)
q{a-z}: {a-z}로 레코딩 시작. {a-z}만 가능한게 아니고 실제 {0-9a-zA-Z"}를 적기 번거로워 이렇게
표시만 한 것이다.
q: 레코딩 종료
@{a-z}: 레코딩 내용 적용(@@를 하면 바로 이전의 레코딩내용을 적용, N@@은 N으로 지정한
숫자만큼 적용)
'Study > CentOS' 카테고리의 다른 글
[09] useradd -D, usermod (0) | 2015.03.27 |
---|---|
[08] passwd, shadow, group, gshadow, useradd, passwd, skel (0) | 2015.03.27 |
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
- 2014.11.13 수업
1. find
find [경로] [-옵션] [이름]
[경로] -name [이름] : 이름 검색
[경로] -newer [이름] : 이름의 파일 이후에 수정, 변경한 것 검색
-> touch 명령어와 함께 사용하면 효과적
* 추가 옵션
-exec rm{} \; : 찾아서 삭제하라는 추가 옵션
-type f : 파일 타입 검색하라는 추가 옵션
-type d : 디렉터리 타입 검색하라는 추가 옵션
ex)
# ll
합계 1
-rw-r--r-- 1 root root 0 2014-11-13 12:50 inittab
-rw-r--r-- 1 root root 884 2014-11-13 12:45 test
최근파일 검색
# find /home/ -newer test
/home/samadal
/home/samadal/inittab
검색하여 삭제
# find . -name "test*" -exec rm {} \;
# ll
합계 0
-rw-r--r-- 1 root root 0 2014-11-13 12:50 inittab
파일 타입 검색
# find / -name samadal -type f
/var/spool/mail/samadal
디렉터리 타입 검색
# find / -name samadal -type d
/home/samadal
[연습문제] p14
1) /down/ directory 생성
2) /down/ 에 test1, test2 생성
3) /down/ 에 test1, test2 를 /tmp에 각각 test3, test4로 복사
4) /down/test/ directory 생성
5) /down/test/ directory를 /tmp 로 이동
6) find 명령어를 통해 파일명 앞부분에 "test"문자열이 섞인 파일을 검색하면서 삭제
(단, /tmp/와 /down/ 만 부분검색 하고 명령어는 한줄로)
# mkdir /down
# touch /down/test1 /down/test2
# ll /down
합계 0
-rw-r--r-- 1 root root 0 2014-11-13 13:01 test1
-rw-r--r-- 1 root root 0 2014-11-13 13:01 test2
# cp /down/test1 /tmp/test3
# cp /down/test2 /tmp/test4
# mkdir /down/test
# mv /down/test/ /tmp
부분 검색, 파일만 검색, 삭제 진행.
(사실 rm 은 파일만 지우기 때문에 구지 -type f 필요 없음)
# find /tmp /down -name "test*" -type f -exec rm {} \;
2. shutdown
시스템 종료
shutdown -h now = init 0 = halt = poweroff
시스템 재시작
shutdown -r now = init 6 = reboot
ex)
10분 뒤 종료
# shutdown -h +10
Broadcast message from root@samadal.madalgyo
(/dev/pts/0) at 13:24 ...
The system is going down for halt in 10 minutes!
Ctro+c 눌러서 취소. shutdown -c 로도 가능.
^Cshutdown: Shutdown cancelled
shutdown 명령어를 실행할 구체적인 시간 설정
# shutdown -r 13:30
Broadcast message from root@samadal.madalgyo
(/dev/pts/0) at 13:26 ...
The system is going down for reboot in 4 minutes!
3. vi
vi [파일명]
1) 라인명령모드
명령모드에서 :, /, ? 로 접근하게 되는 모드.
:q 종료
:q! 강제종료
/ 글자 검색(위->아래)
? 글자 검색(아래->위)
2) 명령모드
기본 모드. 여러 명령어 옵션 실행 가능
h : 왼
j : 아래
k : 위
l : 오른
w : 단어의 처음, 왼->오, 공간 인식, 특수기호 인식 // forward
b : 단어의 처음, 오->왼, 공간 인식, 특수기호 인식 // back
W : 단어의 처음, 왼->오, 공간인식
B : 단어의 처음, 오->왼, 공간인식
e : 단어의 끝, 왼->오, 공간인식, 특수기호 인식 // end
E : 단어의 끝, 왼->오, 공간인식 // 각각의 대문자는 특수기호 인식 하지 않고 넘어간다.
^, 0 : HOME
$ : END
gg, [[ : 문서의 제일 처음으로 이동
G, ]] : 문서의 제일 마지막으로 이동
H : 화면의 처음 (Head)
M : 화면의 중간 (Middle)
L : 화면의 마지막 (taiL)
책갈피
m + a~z : 지정
A~Z
` + a~z : 이동 (쉬프트 안누른 ~)
+ A~Z
`` : 마지막 위치 이동
x : delete -> backspace
X : backspace (no delete)
dd : 행 삭제
숫자 + dd : 숫자 행만큼 삭제
u : 되돌리기
Ctrl + r : 앞으로
v : visual mode, 블럭지정
3) 입력(INSERT)모드
키보드로 내용물을 직접 입력하는 모드. 명령모드에서 아래들의 특정 키를 눌러 모드 진입 가능.
i : 커서 앞에서 입력
I : 맨 앞 행에서 입력
a : 커서 뒤에서 입력
A : 맨 뒤 행에서 입력
o : 커서 아래쪽에 행 삽입하여 입력
O : 커서 위쪽에 행 삽입하여 입력
s : 커서 내용 삭제한 뒤 커서 앞에서 입력
S : 행 삭제한 뒤 입력
r : 커서 내용 변경(한글자)
R : 수정 모드로 변경(한글의 insert)
4) 응용
커서 뒤에 모두 지우기 : d + $, D, n + x
커서 앞에 모두 지우기 : n + X, d + ^ , d + 0
단어지우기 : d + e, d + w
단어 복사하기 : y + e, y + w
* 집에서 FTP 사용하는 방법(방화벽 허용)
방화벽 - 허용되는 프로그램 - 다른프로그램 허용 - 찾아보기
- windows - system32 - ftp.exe - 열기 - 추가 - 목록 중 개인, 공용 추가 하기
'Study > CentOS' 카테고리의 다른 글
[08] passwd, shadow, group, gshadow, useradd, passwd, skel (0) | 2015.03.27 |
---|---|
[07] vi(2), 유용한 vi 명령어 메모 (0) | 2015.03.27 |
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal
| Study/CentOS 2015. 3. 27. 16:52- 2014.11.12 수업내용
※ Limadal_20141106_Class1_32bit 의 VMware 이미지.
root / .$hooni203
samadal / samadal
1. alias
[명령어 설명]
특정 문장 및 명령어에 대한 단축키 설정. 1회성으로 터미널 닫으면 없어짐
ex) alias 1='clear'
저장되어 있는 명령어의 목록 확인 : alias
※ ls -l : ll 으로 기본 설정되어있음.
※ alias에 저장 된 명령을 지울 때 : unalias [source]
ex) unalias 1
2. touch
[명령어 설명]
크기가 0이면서 현재 시간 정보가 있는 파일을 생성한다.
똑같은 명령어 쓰면 시간만 변경된 새 파일로 변경됨
기존에 있는 파일 이름을 쓰면 시간만 현재 시간으로 바뀜
touch [target]
-t [년월일시분] [target] // 파일의 시간 정보 변경 가능
ex)
alias 에 저장되어 있는 단축키 = ls -l
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 12:59 inittab
# touch ./testfile
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 12:59 inittab
-rw-r--r-- 1 root root 0 2014-11-12 13:00 testfile
다시 touch 하면 시간이 바뀜
# touch ./testfile
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 12:59 inittab
-rw-r--r-- 1 root root 0 2014-11-12 13:01 testfile
파일에서 시간만 바뀜
# touch ./inittab
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 13:02 inittab
-rw-r--r-- 1 root root 0 2014-11-12 13:01 testfile
touch -t 년월일시분 대상
# touch -t 199908200422 ./testfile
# ll
합계 1
-rw-r--r-- 1 root root 884 2014-11-12 13:02 inittab
-rw-r--r-- 1 root root 0 1999-08-20 04:22 testfile
3. head
[명령어 설명]
파일의 내용 중 처음부터 아래로 10줄 출력
head [option] [source]
-n(number) [source] : 처음부터 n개 출력
ex)
위에서 3개만 출력
# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/ksh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
4. tail
[명령어 설명]
파일의 내용중 마지막부터 위로 10줄 출력
tail [option] [source]
-n(number) [source] : 아래부터 n개 출력
ex)
# tail -3 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
samadal:x:500:500:madalgyo:/home/samadal:/bin/bash
5. more
[명령어 설명]
내용이 많은 파일을 화면단위로 끊어서 출력한다
엔터 : 1줄 씩 내림
스페이스 : 1페이지 씩 내림
more [source]
q : 종료
ex)
# more /etc/passwd
more을 단독으로만 쓰면 파일만 볼 수 있다.
따라서 목록을 보여주는 다른 명령어와 함께 사용해야 한다.
# ls -l /etc/ | more
합계 1740
drwxr-xr-x. 5 root root 4096 2014-10-30 01:52 ConsoleKit
-rw-r--r--. 1 root root 4439 2014-07-17 00:02 DIR_COLORS
-rw-r--r--. 1 root root 5139 2014-07-17 00:02 DIR_COLORS.256color
-rw-r--r--. 1 root root 4113 2014-07-17 00:02 DIR_COLORS.lightbgcolor
drwxr-xr-x. 5 root root 4096 2014-10-30 01:54 NetworkManager
drwxr-xr-x. 2 root root 4096 2014-10-30 01:54 PackageKit
-rw-r--r--. 1 root root 45 2014-02-12 21:04 Trolltech.conf
drwxr-xr-x. 6 root root 4096 2014-10-30 01:54 X11
drwxr-xr-x. 3 root root 4096 2014-10-30 01:54 abrt
drwxr-xr-x. 4 root root 4096 2014-10-30 01:57 acpi
--More--
more 명령어의 단점 : 앞 페이지를 볼 수 없는 단점이 있다.
6. less
[명령어 설명]
more은 앞쪽 재검색이 불가능한 반면 less는 재검색이 가능한 명령어이다.
엔터 및 k : 1줄 아래로
j : 1줄 위로
q : 종료
스페이스 : 1페이지 아래로
역시나 ls -l /etc/ | less 처럼 사용 가능하다.
※ more는 명령어, less는 프로그램 이다.
7. nl (number line)
[명령어 설명]
총 몇행인지 궁금할 때 사용하는 명령어
행 번호를 붙여 출력하라는 명령어.
ex)
# nl /etc/passwd | less
nl 역시 파일에만 쓸 수 있는 명령어지만 명령어 조합으로 디렉터리에도 사용 가능하다.
# nl /etc/
nl: /etc/: 디렉터리입니다
맨 위 합계 표시도 갯수에 들어가는 것 주의
# ls -l /etc/ | nl
8. | (파이프)
명령어 | 명령어 | 명령어 처럼 서브 명령어를 여러개 사용 가능.
파이프를 쓰면 맨 뒤에서부터 적용된다.
* 파이프를 사용 할 떄에는 명령어의 성격을 생각하며 사용해야 한다.
ex)
less가 작동하지 않음. nl로 행번호 붙여서 출력한 뒤에 less를 진행할 수 없기 때문.
# ls -l /etc/ | less | nl
9. cat
[명령어 설명]
파일 내용 "출력"
ex) cat /etc/passwd = cat < /etc/passwd
파일 내용 "입력"
ex) cat /etc/passwd > /testfile
파일 "생성"
ex) cat > ./test -> 내용입력 -> ctrl+d (정상종료)
* ctrl+c : 강제 종료, ctrl+z : 강제정지
파일 내용 "추가"
ex) cat >> ./test
아래쪽에 추가하여 기재 가능
파일 내용 "병합"
ex) cat ./a ./b > ./c)
a 밑에 b가 합쳐져서 c 만듬
행번호 붙여 cat 출력
# cat -n /etc/passwd
10. ftp 접속 (p183)
[실습 순서]
1) window에서 index.html 파일 생성 : d드라이브에서 파일 새로 만들기
2) 실행(win_key+r) -> cmd -> 드라이브 변경(d:)
3) ftp 리눅스ip 입력(ex. ftp 192.168.1.142)
4) 계정, password 입력 -> 오류시 quit 입력 // 기본적으로 root 는 ftp 사용 불가
5) login successful 메시지 확인
6) put [source] : 업로드 명령어 & get [source] : 다운로드 명령어
11. date, rdate
[명령어 설명]
date : 현재의 자신의 서버 시간을 확인하는 명령어.
rdate : 타임서버 관련 명령어
date [월일시분년] : 해당 시간으로 서버 시간을 변경
ex )
현재 시간 확인
# date
2014. 11. 12. (수) 14:56:39 KST
옵션 시간으로 내 서버 시간 변경
# date 082013201999
1999. 08. 20. (금) 13:20:00 KST
# date
1999. 08. 20. (금) 13:20:02 KST
time.bora.net 서버의 현재 시간 확인
# rdate -p time.bora.net
rdate: [time.bora.net] Wed Nov 12 14:59:35 2014
# date
1999. 08. 20. (금) 13:21:43 KST
time.bora.net 서버 시간으로 내 서버 시간을 맞춤
# rdate -s time.bora.net
# date
2014. 11. 12. (수) 15:00:45 KST
12. clock
[명령어 설명]
clock : 자세한 시간 보여줌. (nano second 까지)
ex)
# clock
2014년 11월 12일 (수) 오후 10시 00분 48초 -0.924519 seconds
13. cal (calendar)
[명령어 설정]
달력을 출력하는 명령어.
ex)
현재 시각 기준의 달력 출력. date 설정에 따라 바뀜
# cal
2015년 달력 출력
# cal 2015
1999년 08월 20일 달력 출력
# cal 20 08 1999
'Study > CentOS' 카테고리의 다른 글
[07] vi(2), 유용한 vi 명령어 메모 (0) | 2015.03.27 |
---|---|
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |
- 2014.11.11 수업 내용
1. cp (copy)
파일 및 디렉토리에 관한 첫번째 명령이이기 때문에 최대한 많은 예제를 넣었다.
1) 명령어 설명
cp : 파일 및 디렉토리 복사, 이름 변경 가능
cp [-option] [source] [source] [source] .... [target]
* wild card : 모든 것을 의미한다.
-r : 디렉토리 복사, 하위디렉터리 및 파일 모두 복사
-p : 원본파일의 소유주, 그룹, 권한, 시간을 그대로 복사
최상위 / 에 backup 디렉토리 생성
# mkdir /backup/
현재 있는 /home/samadal/ 의 디렉토리 내용 확인
# ls
a
폴더 생성된 것 확인
# ls -ld /backup/
drwxr-xr-x. 2 root root 4096 2014-11-11 12:43 /backup/
/etc/inittab 파일을 /backup/ 디렉토리로 복사
# cp /etc/inittab /backup/
# ls -l /backup/
합계 4
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
login.defs 파일 복사
# cp /etc/login.defs /backup/
# ls -l /backup/
합계 8
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
grub.conf 파일 복사
# cp /boot/grub/grub.conf /backup/
전체 확인
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
[실습1] - /bakcup/ 디렉터리에 있는 파일을 /home/samadal 로 복사
항상 원본 소스와 대상 디렉터리가 있는지 확인하는 습관!
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
절대경로로 복사
# cp /backup/grub.conf /home/samadal/grub.conf
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
# ls -l
합계 4
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
상대경로로 복사
# cp /backup/inittab ./
# ls -l
합계 6
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
이름 변경해서 복사 가능.
# cp /backup/login.defs ./login
확인
# ls -l
합계 9
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
*
디렉토리명 뒤에 / 붙이는 습관이 없다면 디렉토리로의 복사 중 오타가 났을 경우
해당 디렉토리로 복사가 되는 것이 아닌 변경된 파일 명으로 엉뚱한 곳에 저장이 될 수도 있다.
[실습2] - saladal로 복사한 파일들을 /home/test/c/ 로 복사
원본, 상대 디렉터리 확인
# ls -l
합계 9
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
# ls -ld /home/test/c/
drwxr-xr-x. 3 root root 1024 2014-11-10 13:50 /home/test/c/
복사 시작
# cp ./grub.conf /home/test/c/
# ls -l /home/test/c/
합계 4
drwxr-xr-x. 2 root root 1024 2014-11-10 13:50 d
-rw-------. 1 root root 739 2014-11-11 13:01 grub.conf
# cp /home/samadal/inittab ../test/c/
# ls -l /home/test/c/
합계 6
drwxr-xr-x. 2 root root 1024 2014-11-10 13:50 d
-rw-------. 1 root root 739 2014-11-11 13:01 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:02 inittab
# cp ./login ../test/c/login.defs
# ls -l /home/test/c/
합계 9
drwxr-xr-x. 2 root root 1024 2014-11-10 13:50 d
-rw-------. 1 root root 739 2014-11-11 13:01 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:02 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:03 login.defs
[실습3] - /bakcup/의 파일들을 /home/test/c/d/ 로 복사!
- 생략
[연습문제]
/home/test/c/d/ 안에 있는 모든 내용을
/home/samadal/a/b/ 디렉터리에 복사
# ls -l /home/test/c/d/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:05 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:06 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:06 login
# ls -ld /home/samadal/a/b/
drwxr-xr-x. 2 root root 1024 2014-11-10 13:47 /home/samadal/a/b/
# cp /home/test/c/d/grub.conf /home/samadal/a/b/
# ls -l /home/samadal/a/b/
합계 2
-rw-------. 1 root root 739 2014-11-11 13:14 grub.conf
# cp /home/test/c/d/inittab ./a/b/
# ls -l /home/samadal/a/b/
합계 4
-rw-------. 1 root root 739 2014-11-11 13:14 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:15 inittab
# cp ../test/c/d/login ./a/b/
# ls -l ./a/b/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:14 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:15 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:15 login
*
복사할 대상이 많은 경우 - Wild card(*) 를 사용하면 된다.
ex)
# cp /home/test/c/d/* ./a/b/
2) cp 명령어 옵션
안되는 예)
# cp /backup/ ./
cp: omitting directory `/backup/'
* -r
안에 있는 모든 것을 복사하는 옵션
# cp -r /backup/ ./
# ls -l
합계 11
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
drwxr-xr-x. 2 root root 1024 2014-11-11 13:27 backup
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
# ls -l ./backup/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:27 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:27 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:27 login.defs
* -p
소유자 및 시간도 그대로 복사하는 옵션
복사를 하게 되면 복사한 계정으로 새로운 소유권이 지정되며 시간도 복사한 시간으로 변경된다.
소유권 및 시간까지 그대로 복사.
# cp -p ./.kshrc ./ksh
# ls -al ./.kshrc
-rw-r--r--. 1 samadal samadal 171 2014-10-16 01:02 .kshrc
# ls -l
-rw-r--r--. 1 samadal samadal 171 2014-10-16 01:02 ksh
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
2. mv (move)
1) 명령어 설명
mv [source] [source] [source] [target]
파일 및 디렉토리 이동, 이름 변경 가능. 옵션 있긴 하지만 사용할일 거의 없다.
[실습1]
/backup/ 에 있는 파일을 /home/samadal/a/ 로 이동
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
# ls -l ./a/
합계 2
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
# mv /backup/grub.conf ./a/
ls 명령으로 동시에 2개를 볼 수 있다.
# ls -l /backup/ ./a/
./a/:
합계 4
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
/backup/:
합계 8
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
...
이동 + 이름 변경
# mv /backup/login.defs ./a/login
# ls -l /backup/ ./a/
./a/:
합계 9
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
/backup/:
합계 0
[문제]
./a/ 디렉토리에 있는 3개의 파일(grub.conf, inittab, login)을 /backup/ 디렉토리로 이동
# ls -l /backup/ ./a/
./a/:
합계 9
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
/backup/:
합계 0
와일드카드 (*)는 조심히 써야한다.
# mv ./a/* /backup/
# ls -l /backup/ ./a/
./a/:
합 0
원본 디렉터리에 있던 /b/ 디렉터리도 함께 옮겨졌다.. *는 조심히 쓸 것!
/backup/:
합계 16
drwxr-xr-x. 2 root root 4096 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
mv는 옵션 없이도 디렉터리를 자유롭게 이동 가능하다.
# mv /backup/b/ ./a/
# ls -l /backup/ ./a/
./a/:
합계 2
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
/backup/:
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
3. mkdir (make directory)
1) 명령어 설명
디렉토리 생성
mkdir [option] [target]
-p : 하위디렉터리 생성 시 상위디렉터리 생성
ex)
# mkdir /backup/
4. rmdir (remove directory)
1) 명령어 설명
디렉토리 삭제(빈 디렉터리만 삭제)
rmdir [option] [source]
-p : 디렉터리 삭제시 상위디렉터리도 삭제(단, 빈 디렉터리만 삭제 가능)
ex)
상위 디렉터리까지 생성
# mkdir -p /a/b/c/d/e/f/g/
# ls -ld /a/b/c/d/e/f/g/
drwxr-xr-x. 2 root root 4096 2014-11-11 14:22 /a/b/c/d/e/f/g/
최상위인 / 까지 삭제 시도함
# rmdir -p /a/b/c/d/e/f/g/
rmdir: failed to remove directory `/': 장치나 자원이 동작 중
a 부터는 빈 디렉터리였기 때문에 a 부터 모두 삭제 됨
# ls -l /a/
ls: cannot access /a/: 그런 파일이나 디렉터리가 없습니다
5. rm (remove)
1) 명령어 설명
파일 및 디렉터리 삭제(삭제 시 사용자에게 물어보며 삭제)
rm [option] [source]
-f : 삭제 시 사용자에게 물어보지 않고 삭제
-r : 디렉터리 삭제 및 하위 디렉털, 파일 삭제
(단, 삭제시 사용자에게 물어보며 삭제)
ex)
# ls -l /home/test/c/d/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:05 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:06 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:06 login
# rm /home/test/c/d/grub.conf
rm: remove 일반 파일 `/home/test/c/d/grub.conf'?
y 혹은 yes 를 눌러야만 삭제 됨
# rm /home/test/c/d/grub.conf
rm: remove 일반 파일 `/home/test/c/d/grub.conf'? y
# ls -l /home/test/c/d/
합계 5
-rw-r--r--. 1 root root 884 2014-11-11 13:06 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:06 login
* 해커들이 맨 마지막에 하는 명령어 : rm -rf /
'Study > CentOS' 카테고리의 다른 글
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
---|---|
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |
[01] CentOS 6.6 설치, 주요 디렉토리 설명, swap (1) | 2015.03.27 |
- 2014.11.10 수업 내용
1. Linux 명령어 구조
명령어 -option--sub_option Path
* 옵션끼리는 -을 반복하여 적지 않아도 된다. ex) ls -alh
2. pwd
pwd (print working directory) : 현재 작업 중인 디렉토리의 절대 경로를 보여준다.
ex)
# pwd
/etc/sysconfig/network-scripts
* 현재의 위치가 어디인지 알기 위해 수시로 명령어를 실행하는 습관을 들여야 한다.
① 절대경로 : 최상위 디렉토리인 / 부터 시작하는 위치. 절대적인 위치.
② 상대경로 : 현재 작업하고 있는 디렉토리에서의 상대적인 위치.
ex) 현재 위치 : ./
3. cd
cd (change directory) : 디렉토리 변경. 원하는 디렉토리로 이동한다.
ex)
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
① ./ : 현재 디렉토리
② ../ : 상위 디렉토리
③ ~ : 로그인 된 사용자의 홈 디렉토리로 이동
ex)
[root@localhost ~]# cd ~
[root@localhost ~]# pwd
/root
④ ~계정명 : 지정된 계정의 홈 디렉토리로 이동
ex)
[root@localhost ~]# cd ~samadal
[root@localhost samadal]# pwd
/home/samadal
4. ls
ls (list segment) : 디렉토리의 목록 보기
ls 는 자주 쓰는 명령어이기 때문에 주요 옵션에 대해 자세히 알아두는 것이 좋다.
ex) /home/samadal 에서의 ls
[root@localhost samadal]# ls
a Desktop Documents Downloads Music Pictures Public Templates Videos
① -a (all) : .(숨김파일)을 포함한 경로 안의 모든 파일과 디렉토리 표시
ex) /home/samadal 에서의 ls -a
[root@localhost samadal]# ls -a
. .bash_logout .dbus .gconf .gstreamer-0.10 .kshrc Pictures Templates
.. .bash_profile Desktop .gconfd .gtk-bookmarks .local Public Videos
a .bashrc Documents .gnome2 .gvfs .mozilla .pulse .xsession-errors
.abrt .cache Downloads .gnote .ICEauthority Music .pulse-cookie
.bash_history .config .esd_auth .gnupg .imsettings.log .nautilus .ssh
② -l (list) : 지정한 디렉토리의 내용을 자세히 출력
ex) /home/samadal/ 에서의 ls -l
# ls -l
total 18
drwxr-xr-x. 3 root root 1024 Nov 10 14:02 a
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Desktop
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Documents
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Downloads
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Music
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Pictures
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Public
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Templates
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Videos
-a 옵션과 함께 쓰면 좋다.
ex) /home/samadal/ 에서의 ls -al
[root@localhost samadal]# ls -al
total 78
drwx------. 27 samadal samadal 1024 Nov 10 17:55 .
...
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Templates
drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Videos
-rw-------. 1 samadal samadal 2368 Nov 10 17:55 .xsession-errors
* 맨 앞에 d 라고 되어 있는 것은 디렉토리, - 로 되어 있는 것은 파일이다.
③ -d : 지정된 디렉토리의 정보 출력
ex) /home/samadal/ 에서의 -ld 옵션
[root@localhost samadal]# ls -ld /home/samadal/
drwx------. 27 samadal samadal 1024 Nov 10 17:55 /home/samadal/
상위 폴더에 파일 및 디렉토리의 개수가 적다면 상위 폴더에서 ls -l 로 해당 디렉토리의 정보를 볼 수도 있지만
특정 디렉토리의 정보만 필요할 때 사용하면 좋을 것 같다.
④ -F : 파일 형식을 알리는 문자를 각 파일 뒤에 추가한다.
/ : 디렉토리
-> and @ : symbolic link(바로가기). -> 는 -l 옵션과 함께 썼을때 나오며 '사본 -> 원본'의 형식이다.
* : 실행파일
⑤ -R : 하위 경로와 그 안에 있는 모든 파일들도 같이 나열
ex) /home/samadal/ 에서의 ls -R
[root@localhost samadal]# ls -RF
.:
a/ Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/
./a:
b/
./a/b:
./Desktop:
...
./Templates:
./Videos:
⑥ -h : 사용자가 보기 편한 단위로 용량 표시. -l 명령어에서 맨 위 total이 용량에 관한 숫자인데 뒤에 단위를 붙여준다.
(보여지는 용량의 합이 total의 값과 다르지만 이유에 대해선 추 후 공부 예정)
이 외에도 UID(user id), GID(group id)를 보여주는 -n 옵션이 있다.
* -l 옵션 시 첫 열에 나와있는 문자들의 모음이 '허가권'에 관련된 내용이지만 추 후 필요할 때 다시 공부 예정
5. clear
clear : 화면을 깨끗하게 해주는 명령어.
'Study > CentOS' 카테고리의 다른 글
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
---|---|
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |
[01] CentOS 6.6 설치, 주요 디렉토리 설명, swap (1) | 2015.03.27 |
- 2014.11.10
1. Linux의 특징
1) 권한을 갖는다
소유권 / 허가권
2) 다중 사용자 환경을 지원한다.
multi user mode & multi tasking 지원
3) 대소문자를 구별한다.
4) 확장자가 따로 존재하지 않는다.
Windows 에서 사용하는 확장자의 개념이 없다.
2. Prompt의 구조
1) Prompt 란?
명령어를 입력 받아 실행할 수 있는 상태
2) Linux의 prompt 구조
기본형)
[root@localhost ~]#
[user@localhost ~]$
① [, ] : prompt의 구분기호. 서버 정보와 계정 상태를 나타냄
② root 및 user : 서버에 로그인한 사용자 계정 명
③ @ : 계정명과 서버 이름의 구분 기호
④ localhost : 리눅스 시스템의 호스트명, 즉 서버의 이름 (HOSTNAME)
(/etc/sysconfig/network)
⑤ ~ : 현재 작업 디렉토리의 위치. 경로의 마지막 경로명
⑥ # 및 $ : 관리자(root)의 경우 #, 일반 사용자의 경우 $
3. Putty 설정
1) ifconfig로 내 ip 확인
# ifconfig
2) putty 설정 하기
① ifconfig 로 알게 된 ip 주소를 Host Name에 입력
② Window - Lines of scrollback(이전 화면 저장 줄 수) : 20000
└ Appearance - Cursor appearance : Cursor blinks_check (커서 깜빡임)
- Font setting - Change : 글꼴_Consolas, 크기 설정
└ Font quality : Clear Type
└ Behaviour : Full screen on Alt-Enter_check (전체화면)
└ Translation - Remote character set : UTF-8
└ Colours - 배경은 어둡게, 글씨는 밝게 (검정 배경에 녹색 글씨 추천)
'Study > CentOS' 카테고리의 다른 글
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
---|---|
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[01] CentOS 6.6 설치, 주요 디렉토리 설명, swap (1) | 2015.03.27 |
- 2014.11.07 ~ 08 수업내용
※ VMware 는 개인적으로 구하여 진행
1. CentOS 설치
1) 파티션
사용자 레이아웃 선택하여 진행
20G 용량 기준이며, 포맷 형식은 기본 형식으로 진행
파티션 용량(mb)
/boot - 200
swap - 4096 (파티션은 아님)
/usr - 6000
/var - 2000
/home - 200
/ - 나머지
2) 설치 종류 선택
Desktop - 추가기능 지금선택
기반시스템 - 레거시 유닉스 호환성 - ksh~~
└ 서버 - FTP 서버
3)
설치 완료
reboot 설정 완료 직전 발생하는 kdump 오류 : 가상으로 돌리기 때문에 뜨는 오류. 상관할 필요 없음
4) VMware를 더 편하게 사용하기 위한 tool 설치 가능.
VM 상단 메뉴 중 VM - Install VMware Tools 클릭하면 VMware Tool이 마운트 된다.
vmware~.tar.gz 파일 안에 있는 vmware-install.pl 을 실행하여 엔터로 넘어가다가
5~6번째 쯤에 있는 ...kenel [no] 에서 yes를 입력 후 계속 엔터를 쳐 설치를 마친 뒤 재시작 하면 완료.
2. 주요 디렉토리 설명
1) / : 최상위 디렉토리
2) /boot/ : 부팅과정에서 필요한 정보 파일 (≒ boot.ini)
3) /bin/ : 기본적인 명령어. (≒ windows)
4) /root/ : root 의 홈 디렉토리 (≒ usersadministrator)
5) /lost+found/ : 각 파티션마다 1개씩 있는 것.
6) /selinux/ : 방화벽을 감싸는, 2차 보안 툴
7) /home/ : 관리자 이외의 사용자의 홈 디렉토리가 생성되는 곳. 추 후 보안을 위해 다른 곳으로 이동해야 함
8) /etc/ : 관리자용 명령어 모음.
9) /lib/ : 각종 언어를 위한 라이브러리
10) /mnt/ : 원격 장치들이 지정된 위치
11) /dev/ : 인터페이스를 담당하는 파일들이 있는 위치
12) /media/ : cdrom 등을 적용시키기 위한 곳
13) /sbin/ : 시스템 운영 관리를 위한 명령 파일. 용량이 큰 명령어는 /usr/sbin/ 에 있다. (≒ dll 파일들)
14) /usr/ : 용량이 크고 자주 사용되지 않는 파일들. (≒ Program files)
15) /proc/ : 메모리, cpu, disk 등의 정보를 담고 있는 곳.
16) /tmp/ : 잠시 사용되는 임시 파일
17) /var/ : log 등이 있으며 자주 변경되는 시스템 파일들을 가지고 있음.
3. swap : 가상메모리
swap 은 '교환하다' 라는 뜻이다.
할당된 물리적 메모리가 부족할 시 사용하지 않는 load 된 메모리를 swap 메모리로 이동한 뒤 필요한 작업을 수행한다.
후에 swap 에 load되어 있는 메모리를 사용할 시, 물리 메모리에 있는 내용과 '교환'한다.
'Study > CentOS' 카테고리의 다른 글
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
---|---|
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |
[ hw05 ]
---------------------------------------------------------------------
#1
#include <stdio.h>
void pr99(int a, int b);
int main()
{
int i, j;
printf("구구단 몇단을 출력할까요? : ");
scanf("%d", &i);
printf("%d단\n", i);
for(j=1;j<10;j++)
{
pr99(i, j);
}
return 0;
}
void pr99(int a, int b){
printf("%d * %d = %d\n", a, b, a*b);
}
---------------------------------------------------------------------
#2 ~ #3
문제 이해를 못했음
---------------------------------------------------------------------
#4
#include <stdio.h>
void swap(char *p);
int main()
{
char a[26];
char *p;
int i;
int j=65;
p = &a[0]; // 이렇게 a[26]와 *p 를 따로 선언해서 받는게 아니라,, *p 에다가 바로 i문으로 돌려서 입력하는 방법은..?
for(i=0;i<26;i++)
{
a[i] = j;
j++;
}
for(i=0;i<26;i++)
printf("%c",a[i]);
printf("\n");
for(j=0;j<25;j++)
{
swap(p);
for(i=0;i<26;i++)
{
printf("%c",a[i]);
}
printf("\n");
}
return 0;
}
void swap(char *p){
char temp;
int i;
temp = *p; // 1번째 주소를 일단 temp에 저장.
for(i=0;i<25;i++)
{
*(p+i) = *(p+i+1); // 뒷 주소를 앞에다가 저장.
}
*(p+25) = temp; // 마지막 넘을 temp에 있는 것으로 저장.
}
---------------------------------------------------------------------
#5 ?? // 이것 역시 문제 이해 못함..ㅎㅎ
100a + 10b + c + 100c + 10a + c = 100b + 10d + d
---------------------------------------------------------------------
[ hw04 ]
---------------------------------------------------------------------
#1
#include <stdio.h>
int main()
{
float a1, a2, b1, b2, c1, c2;
while(1)
{
printf("a1x + b1y = c1\na2x + b2y = c2\n");
printf("위 식들의 계수를 각각 입력하세요.(a1, b1, c1, a2, b2, c2)");
scanf("%f, %f, %f, %f, %f, %f", &a1, &b1, &c1, &a2, &b2, &c2);
if (a1 == 0 && a2 == 0)
printf("a1 과 a2 모두 0일 수 없습니다. 다시 입력하세요.");
else if (b1 == 0 && b2 == 0)
printf("b1 과 b2 모두 0일 수 없습니다. 다시 입력하세요.");
else
break;
}
/*
x 1 b2 -b1 c1 // 행렬식으로 계산 중
y a1b2-a2b1 -a2 a1 c2
1 b2c1-b1c2
a1b2-a2b1 a1c2-a2c1
*/
printf("x, y = %f, %f", ((b2*c1)-(b1*c2))/((a1*b2)-(a2*b1)), ((a1*c2)-(a2*c1))/((a1*b2)-(a2*b1)));
// 한번에 코딩한 것은 자랑.ㅋㅋ
return 0;
}
---------------------------------------------------------------------
#2
#include <stdio.h>
int main()
{
int op;
float x, y; // 근데 다른 이전의 문제에선 정수로 받아서 결과만 실수로 내주면 되는 것 같더니.. 이번엔 안된다.
printf("계산할 연산을 입력하세요.\n(1 : +, 2 : -, 3 : *, 4 : /) : ");
scanf("%d", &op);
printf("계산할 두 정수를 입력하세요 : ");
scanf("%f, %f", &x, &y);
switch(op)
{
case 1 : printf("'+' 연산의 결과값 : %0.0f\n", x+y); break; // op를 char 형식으로 받고 case '+' 이런 식으로 하고싶었는데
case 2 : printf("'-' 연산의 결과값 : %0.0f\n", x-y); break; // 안되는 듯함. 문자로 받아서 하는 방법은 없나요?
case 3 : printf("'*' 연산의 결과값 : %0.0f\n", x*y); break;
case 4 : while(1) // case 문에다가 while 문을 넣어보고 싶었음.
{
if (y == 0)
{
printf("/ 연산에서는 y(젯수)가 0이 될 수 없습니다. y의 값을 다시 입력하세요. : ");
scanf("%f", &y);
}
else
{
printf("'/' 연산의 결과값 : %f\n", x/y);
break;
}
} break;
}
return 0;
}
---------------------------------------------------------------------
#3
#include <stdio.h>
int main()
{
int a, b, c, max;
printf("3개의 정수값을 입력하세요(a, b, c) : ");
scanf("%d, %d, %d", &a, &b, &c);
if (a > b)
{
if (a > c)
max = a;
else
max = c;
}
else
{
if (b > c)
max = b;
else
max = c;
}
a = max % 2; // max 값에 이미 최대값이 들어가있기 때문에 이미 사용된 a 를 이용
if (a == 0)
printf("%d는 짝수입니다.\n", max);
else
printf("%d는 홀수입니다.\n", max);
return 0;
}