5/4 리눅스 기초 실습
- -
*vi 편집기
last line mode / Shift + : ->(대기모드로 넘어갈때 esc)-> command mode 대기모드 ->edit mode(i a s d..등 명령어)
rm -r 만든거 지우기
docs.google.com/document/d/1uzd_ptVlFQfn1ImEx6f8teph53XzDag7CmZXmkz99Po/edit
링크 이해
user@user-B85M-DS3H-A:~$ ls -l aaaa -rw-rw-r-- 1 user user 0 5월 4 11:01 aaaa user@user-B85M-DS3H-A:~$ touch aaaa user@user-B85M-DS3H-A:~$ ls -il aaaa 6033379 -rw-rw-r-- 1 user user 0 5월 4 11:08 aaaa user@user-B85M-DS3H-A:~$ cp aaaa bbbb user@user-B85M-
docs.google.com
student@student-B85M-DS3H-A:~$ ls
Documents bbbb dddd 공개 비디오
'VirtualBox VMs' ccc eeee 다운로드 사진
aaaa cccc examples.desktop 문서 음악
bbb ddd mbc 바탕화면 템플릿
student@student-B85M-DS3H-A:~$ rm -r aaaa bbb bbbb ccc cccc ddd dddd eeee mbc
student@student-B85M-DS3H-A:~$ ls
Documents examples.desktop 다운로드 바탕화면 사진 템플릿
'VirtualBox VMs' 공개 문서 비디오 음악
student@student-B85M-DS3H-A:~$ :
student@student-B85M-DS3H-A:~$ vi aaa
student@student-B85M-DS3H-A:~$
student@student-B85M-DS3H-A:~$ cp /etc/passwd aaa
student@student-B85M-DS3H-A:~$ cp -i /etc/passwd aaa
cp: 'aaa'를 덮어쓸까요? y
student@student-B85M-DS3H-A:~$ vi aaa
*종료 단축키들
esc + :q!(저장하지 않고 나가기)
:w (filename)
Shift누르고 z + z
:wq 저장 후 종료
:set nu -> 숫자로 정렬해서 보고싶을때
:set nonu -> 정렬한거 취소하고 그냥 보고싶을때
*ndmd
D -> 커서가 있는 위치부터 뒤로
dw ->
d$ -> 뒷부분 다 지우기
dgg -> 앞라인 빼고 삭제(?맞나?;)
d^ -> 앞쪽으로 삭제
dG -> 아래로 삭제
:n,md (ex) 10,20d
X 앞에거 삭제
*copy & paste
nymy
nymw
y$
ygg
y^
yG
:n,my (ex) 10,20y
*cut
ncmc
ncmw
c$
c^
cgg
cG
:n,mc
:10,20c
paste p
ex)
:1,$ -> 처음부터 끝까지 지울때
:10y
:3,5c
:1,$s/nologin/hahaha/gc -> nologin을 hahaha라는 글자로 바꿔줌
:set list
:set nolist
:set -> 환경변수에 대한거 보여줌
:n ->앞에 파일로 갈때
:N -> 뒤 파일갈때
:w 저장
:N! 저장하지 않고 나갈때때
:P
df -hTP | sed 's/%//g' ->
r | read | 2^2 |
w | write | 2^1 |
x | execute | 2^0 |
- | none | 0 |
student@student-B85M-DS3H-A:~$ vi aaa
student@student-B85M-DS3H-A:~$ ls -l .aaa.sw
ls: '.aaa.sw'에 접근할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
student@student-B85M-DS3H-A:~$ ls -l .aaa.sw*
-rw-r--r-- 1 student student 12288 5월 4 15:29 .aaa.swo
-rw-r--r-- 1 student student 12288 5월 4 14:52 .aaa.swp
student@student-B85M-DS3H-A:~$ rm .aaa.sw*
student@student-B85M-DS3H-A:~$ vi aaa
student@student-B85M-DS3H-A:~$ vi aaa
student@student-B85M-DS3H-A:~$ vi bbb
student@student-B85M-DS3H-A:~$ vi aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-rw-r--r-- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$
-> 컨트롤 제트 눌러버려서 계속 파일이 쌓임..결국 지우고 다시 설정한 것. 컨트롤 제트 절대 누르지 말기
student@student-B85M-DS3H-A:~$ sudo ls -l /dev/ | grep ^srw
[sudo] student의 암호:
student@student-B85M-DS3H-A:~$ stat /dev/*
-> 소켓파일만 찾아보기 실습
<강의 구글독스>
ls -l aaaa
-rw-rw-r-- 1 user user 0 5월 4 11:01 aaaa
touch aaaa
ls -il aaaa
6033379 -rw-rw-r-- 1 user user 0 5월 4 11:08 aaaa
cp aaaa bbbb
ls -il aaaa bbbb
6033379 -rw-rw-r-- 1 user user 0 5월 4 11:08 aaaa
6033380 -rw-rw-r-- 1 user user 0 5월 4 11:08 bbbb
diff aaaa bbbb
md5sum aaaa bbbb
d41d8cd98f00b204e9800998ecf8427e aaaa
d41d8cd98f00b204e9800998ecf8427e bbbb
echo "aaaa" > aaaa
ls -il aaaa bbbb
6033379 -rw-rw-r-- 1 user user 5 5월 4 11:09 aaaa
6033380 -rw-rw-r-- 1 user user 0 5월 4 11:08 bbbb
diff aaaa bbbb
1d0
< aaaa
md5sum aaaa bbbb
e5828c564f71fea3a12dde8bd5d27063 aaaa
d41d8cd98f00b204e9800998ecf8427e bbbb
ls -li aaaa
6033379 -rw-rw-r-- 1 user user 5 5월 4 11:09 aaaa
ln aaaa cccc
ls -il aaaa cccc
6033379 -rw-rw-r-- 2 user user 5 5월 4 11:09 aaaa
6033379 -rw-rw-r-- 2 user user 5 5월 4 11:09 cccc
user@user-B85M-DS3H-A:~$
echo "bbbb" >> aaaa
user@user-B85M-DS3H-A:~$
diff aaaa cccc
md5sum aaaa cccc
7c438cbff62ba78d44b5b31ed043549b aaaa
7c438cbff62ba78d44b5b31ed043549b cccc
user@user-B85M-DS3H-A:~$
ls -l aaaa
-rw-rw-r-- 2 user user 10 5월 4 11:12 aaaa
rm -f cccc
ls -l aaaa
-rw-rw-r-- 1 user user 10 5월 4 11:12 aaaa
ln aaaa cccc
ls -il aaaa cccc
6033379 -rw-rw-r-- 2 user user 10 5월 4 11:12 aaaa
6033379 -rw-rw-r-- 2 user user 10 5월 4 11:12 cccc
ln aaaa dddd
ln -s aaaa eeee
ls -il aaaa cccc dddd eeee
6033379 -rw-rw-r-- 3 user user 10 5월 4 11:12 aaaa
6033379 -rw-rw-r-- 3 user user 10 5월 4 11:12 cccc
6033379 -rw-rw-r-- 3 user user 10 5월 4 11:12 dddd
6033381 lrwxrwxrwx 1 user user 4 5월 4 11:35 eeee -> aaaa
user@user-B85M-DS3H-A:~$
echo "aa" >> eeee
ls -il aaaa cccc dddd eeee
6033379 -rw-rw-r-- 3 user user 13 5월 4 11:36 aaaa
6033379 -rw-rw-r-- 3 user user 13 5월 4 11:36 cccc
6033379 -rw-rw-r-- 3 user user 13 5월 4 11:36 dddd
6033381 lrwxrwxrwx 1 user user 4 5월 4 11:35 eeee -> aaaa
diff eeee aaaa
md5sum eeee aaaa
d5fce8737cf1af6466231e5129f23a73 eeee
d5fce8737cf1af6466231e5129f23a73 aaaa
ls /etc/rc3.d
S01acpid S01bluetooth S01cups-browsed S01irqbalance S01rsyslog S01unattended-upgrades
S01anacron S01console-setup.sh S01dbus S01kerneloops S01saned S01uuidd
S01apport S01cron S01gdm3 S01plymouth S01speech-dispatcher S01virtualbox
S01avahi-daemon S01cups S01grub-common S01rsync S01spice-vdagent S01whoopsie
ls -l /etc/rc*.d/*rsync
lrwxrwxrwx 1 root root 15 4월 16 13:23 /etc/rc2.d/S01rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 15 4월 16 13:23 /etc/rc3.d/S01rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 15 4월 16 13:23 /etc/rc4.d/S01rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 15 4월 16 13:23 /etc/rc5.d/S01rsync -> ../init.d/rsync
user@user-B85M-DS3H-A:~$
ls -l /etc/init.d/rsync
-rwxr-xr-x 1 root root 4355 2월 14 2020 /etc/init.d/rsync
vi 에디터 삭제 복사 잘라내기 붙여넣기
==================================================
delete
ndmd
ndmw
d$
d^
dgg
dG
:n,md
:10,20d
-------------------------------------------------------------------------------------------
copy & paste yank
nymy
nymw
y$
y^
ygg
yG
:n,my
:10,20y
----------------------------------------------------------------------------------------
paste p
-------------------------------------------------------------------------------------------
cut
ncmc
ncmw
c$
c^
cgg
cG
:n,mc
:10,20c
paste p
r read 2 ^ 2
w write 2 ^ 1
x execute 2 ^ 0
- none 0
2^0 1
2^1 2
2^2 4
2^3 = 0 ~ 7
000 ~ 111
000 001 010 011 100 101 110 111
0 ~ 7
--- --x -w- -wx r-- r-x rw- rwx
퍼미션 심볼릭 넘버릭
rwx- 0 ~ 7
r 4 , w 2 , x 1 , - 0
4 r--
5 r-x
7 rwx
--------------------------------------------
$ ls -l aaa
-rw-r--r-- 1 user user 2501 5월 4 13:37 aaa
rw-r--r-- 644 user group other
653 rw-r-x-wx
$ ls -l aaa
-rw-r--r-- 1 user user 2501 5월 4 13:37 aaa
$ ls -n aaa
-rw-r--r-- 1 1000 1000 2501 5월 4 13:37 aaa
uid gid
execute는 uid를 이용하지않고 EUID를 이용한다. 일반적으로는 파일의 소유자 UID를 EUID로 받아서 실행시 권한을 받지만 SETUID같은 스페셜 퍼미션을 이용하여 UID와 EUID를 다르게 받아서 적용할 수 있다.
ex) root
user
=> 일반 사용자가 다른 영역인 root에서는 실행 권한이 없음. EUID(실행권한)가 없음 -> EUID를 상속받게 되는 낮은 UID로 실행
∴일반적으로 파일의 실행은 EUID로 실행한다.
student@student-B85M-DS3H-A:~$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1273 4월 19 10:24 /etc/shadow
student@student-B85M-DS3H-A:~$ which passwd
/usr/bin/passwd
student@student-B85M-DS3H-A:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 59640 3월 23 2019 /usr/bin/passwd
student@student-B85M-DS3H-A:~$ passwd
student에 대한 암호 변경 중
(현재) UNIX 암호:
-> euid의 원리이해를 위한 실습
student@student-B85M-DS3H-A:~$ ls -l aaa
-rw-r--r-- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod 664 aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-rw-rw-r-- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod g-w aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-rw-r--r-- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod u-w,g+w,o-r aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-r--rw---- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod ug-r aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-----w---- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod a+r aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-r--rw-r-- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod u-w+r aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-r--rw-r-- 1 student student 2410 5월 4 15:36 aaa
student@student-B85M-DS3H-A:~$ chmod u+wx aaa
student@student-B85M-DS3H-A:~$ ls -l aaa
-rwxrw-r-- 1 student student 2410 5월 4 15:36 aaa
codechacha.com/ko/linux-c*hmod/
Linux - chmod 명령어 사용 방법 (권한, 모드 변경)
chmod는 파일이나 디렉터리의 권한 등의 모드를 변경합니다. 파일에 모든 권한을 줄 수도 있고, 특정 권한만 추가하거나 제거할 수도 있습니다. 재귀적으로(Recursive) 하위 폴더의 파일들의 권한을
codechacha.com
-> (별표빼기) chmod 명령어 풀이
u+x,go=rw | 소유자에게 실행권한을 추가하고 그룹, 기타 사용자에게 읽기, 쓰기 권한 지정 |
a=rw | 모든 사용자에게 읽기, 쓰기 권한 지정 |
g-w | 그룹 소유자의 쓰기 권한 제거 |
*file read file read file의 data block 을 통해 실제 디스크의 데이터 섹터로 접근 후 그 내용을
표준 출력 또는 지정된 터미널로 출력 하는 것
file write file의 data block 을 통해 실제 디스크의 데이터 섹터에 접근 후 표준 입력 또는 입력된 데이터를 접근 한 섹터에 write 하는 과정
file execute file 의 data block 통해 접근한 데이터 섹터의 파일 내용에 access 하는 것
*directory read (ls 지정된 디렉토리의 데이터를 읽어오는 명령어)
directory write 파일의 생성 복사 삭제 이동 이름바꾸기
mkdir > >> touch cp mv rm rmdir
(새로운 파일이 생성될때 아이노드와 파일네임 생김 -> 파일의 삭제 등은 디렉토리의 쓰기 권한임)
directory execute리 디렉토리 block 통해 접근한 데이터 블록(파일네임과 아이노드 있음)에 access 하는 것
∴ 파일과 디렉토리의 실행은 access
'Linux' 카테고리의 다른 글
5/11 접근제어리스트(ACL) 설정 관리 (0) | 2021.05.11 |
---|---|
5/10 사용자 및 그룹 관리 (0) | 2021.05.10 |
5/6 리눅스 기초 3 (0) | 2021.05.06 |
5/6 Umask (0) | 2021.05.06 |
5/3~4 리눅스 기초 (0) | 2021.05.03 |
소중한 공감 감사합니다