- ls 명령어 : ls (파일 리스트보기), ls -l(리스트 + 세부사항, ll로만 입력해도 똑같이 실행된다.), ls -a(숨김파일까지), ls -al(숨김파일+세부사항)
- file 명령어 : file 내용 정보
- pwd 명령어 : 현재 작업 위치
- cd 명령어 : 현재 작업위치 이동, Change Directory
- cd~
: /home으로 이동, root이용자는 /root
- cd
-
: 최상위 폴더 이동- cat 명령어 : 파일 내용 확인
- more 명령어 : cat을 했을 때, 내용이 너무 길다면, 한페이지씩 볼 수 있도록 사용
- echo 명령어 : 인자로 입력받는대로 출력, > fileA 해서 fileA도 추가 할 수 있다.
- head 명령어 : 위에서 10번째 줄까지만 출력, 몇번째 줄까지 출력할지 옵션으로 정할 수 있음
- tail 명령어 : head와 반대로 끝에서 10줄 출력
- wc 명령어 : 내용에 대한 세부 정보를 보여주는 명령어
- wc -l : 파일의 line수
- wc -c : 파일의 byte수
- wc -m : 파일의 char수
- wc -w : 파일의 word수
- cp 명령어 : 파일을 복사함
- 다만 dir은 내부 sub파일들이 있기 때문에
- cp -r dirA dirAA :이렇게 -r옵션을 줘서 recursive하게 내부 파일들도 같이 복사해줘야 한다.
- touch 명령어 : 빈파일 생성
- mkdir 명령어 : 빈 directory 생성
- mkdir dirY/dirZ : dirY의 하위폴더 dirZ만들기
- 그러나 dirY조차 없는 폴더라면, mkdir -p dirY/dirZ 해서 만들어준다.
- mv 명령어 : mv fileA dirA 하면 fileA를 dirA로 옮겨준다
- 그러나 mv fileA fileB하면 fileB가 폴더가 아니기 때문에, 그냥 이름 변경이 된다.- rm 명령어 : 파일, 디렉토리를 삭제한다.
- rm -f : (force) 물음 없이 삭제한다.
- rm -r : 디렉토리안에 sub파일이 있다면 이 명령어로 삭제해야 한다.
- rm -rf : -r옵션은 파일 하나하나 다물어보기 때문에 rf를 같이 써준다.
- rmdir 명령어로 디렉토리를 삭제할 수도 있다. (내용없어야함)
- 디스크 공유
- 디스크 공간을 효율적으로 이용하기 위해, 똑같은 파일을 여러곳에 두지 않고, 링크로연결하여 사용한다.
- fileA와 hardA가 링크되어 서로 같은 내용을 가지고 있어 하나가 바뀌면 다른 것도 바뀐 것을 볼 수 있다.
-echo word > fileA
: fileA내용을 지우고 word가 들어감
-echo word >> fileA
: fileA내용 다음에 word가 들어감
- 링크 둘중 하나가 지워져도 내용은 남아있다.
- ln -s fileA symbolA : fileA에 symbolA라는 심볼릭 링크를 생성,
-s
옵션으로 심볼릭 링크로 만들어 준다.- fileA에 내용을 넣고 cat symbolA하면 내용이 잘 나온다.
- fileA를 삭제하면
ls -il
했을 떄, symbolA가 빨간색이 되고 -> fileA가 깜빡인다.- 그 후
cat symbolA
하면 없는 파일이라고 나온다.- 다시 fileA를 생성하면
cat symbolA
가 실행된다.- 반대로 symbolA를 삭제하고
cat fileA
하면 잘 나온다.
- grep 'root' /etc/passwd : 'root'패턴으로 검색해준다.
- 옵션들
- grep -n 'root' /etc/passws : 줄번호 달기
- grep -v 'root' /etc/passws : 반대로 root를 제외하고 검색해줌
- grep -l 'root' /etc/passws : root패턴이 있는 디렉토리 안의 파일들을 보여줌
- grep -c 'root' /etc/passws : root가 있는 줄 개수 보여주기
- grep -w 'kosa' /etx/password : -w 옵션은 word단위로 검색해준다.
- grep '^kosa' /etc/passwd : 'kosa'로 시작되는 line을 검색해줌
- grep 'j.k' /etc/passwd : j.k j와 k위치가 맞고 글자수도 맞는 단어를 검색해줌
- grep 'login$' /etc/passwd : login으로 끝나는 line을 검색해준다.
- egrap 'N(o|e)+' /etc/passwd
- N뒤에 o 혹은 e글자가 붙은 단어를 검새한다.
- egrep '(root|kosa):x' /etc/passwd :
root
혹은kosa
에 :x 까지 붙어있는 것 검색
- egrap -c '(svm/vmx)' /proc/cpuinfo
- svm : amd cpu에서 가상화 도구이다. (Secure Virtual Machine)
- vmx: intel cpu의 가상화 도구이다.
- 즉, 현재 가상화가 되어있는지 확인할 수 있는 명령어이다.
- VM이 가상화가 적절히 세팅하려면 조금 손이 타기 때문에 현재 우리는 0이 나올 것이다.
- find / -name hosts : hosts 이름을 가진 모든파일 검색
- find / -name hosts -type f : hosts이름을 가진 file검색
- find / -name hosts -type d : hosts이름을 가진 directory검색
- find / -name fileA -type f -exec rm {} \; : fileA라는 이름의 파일을 찾고 rm해준다.
- find / -name fileC -type f -ok rm {} \; :
- find ~ -mtime -2 : 최근
~
폴더에 있는 파일들 중, 2일동안 수정이 일어났던 파일들을 출력
-find ~ -mtime -2 | more
로 more명령어로 볼 수 있도록 한다.- find /usr/bin -size +3000000c -1s
-/usr/bin
에 size가 3000000c -> 3Mb이상인 파일들을 찾는다.
- 또, -ls옵션으로 ls -l처럼 long하게 보여준다.
- nano, edit, vim 등 여러 편집기가 있지만, VM에는 vi편집기를 사용한다. 따로 설치해도 되지만, vi가 있는데 굳이 설치해야 하는지 생각해 보아야 한다.
- vi numbers : numbers를 편집한다.
- 'i'키 눌러insert
모드진입 -> 글 입력 ->esc
키로 기본모드 진입 ->:wq
로 저장 밎 종료- a : 텍스트 귀에 커서를 위치시키고
insert
모드- i : 텍스트가 현재 위치에 위치시키고
insert
모드- o : 커서가 위치한 줄의 아래에 새로운 줄을 추가하고 거기서
insert
모드- G : 파일의제일 마지막 줄로 이동
- 1G : 파일의 제일 첫번째 줄로 이동
- nG : 파일의 n번쨰 줄로 이동
- x : 커서가 위치한 부분의 글자를 삭제한다.
- dd : 커서가 위치한 line을 삭제
- u : 명령어 실행 전으로 되돌린다.
- yy : 한 줄을 복사하여 임시 버퍼 공간에 저장한다.
- p : 임시 버퍼 공간에 저장된 텍스트를 커서의 아랫줄에 붙여 넣는다.
:%s/old/new/g
: old에 있는것을 new로 바꾸라는 명렁어
- 치환명령어, 매우 중요하다.- :set nu 화면에 줄 번호를 출력한다.
:n,nd
: n번째 줄부터, n번쨰 줄까지 삭제한다.:n
: n번 째 줄로 이동한다.:wq
,:x
: 둘다 똑같이 저장 후 나오는 명령어다.:q!
: 위에서 이것 저것 한것을 저장하지 않고 강제로 나가는 명령어 이다./
: find기능이다. 어떤 word를 찾을떄 사용된다.
8진수 권한 체계
- 읽기 (r) 4 : 파일의 내용을 확인하거나 복사 할 수 있음, 디렉토리 내용 확인 가능
- cat 명령어를 할 수 있느냐- 쓰기 (w) 2 : 파일의 내용을 수정할 수 있음, 디렉토리 내에 파일을 추가하거나 삭제 가능.
- vi 편집기로 편집할 수 있느냐- 실행 (x) 1 : 실행파일의 경우 실행할 수 있음, 디렉토리 접근 및 내용 확인 가능.
- eXcute, RUN할 수 있느냐
- 소유자 : 제작자
- 소유 그룸 : 제작자가 속한 그룹
- 게스트 사용자 : 그룹 외의 다른 사용자들
- 권한을 줄때, (r, w, x : 4, 2, 1) 이 숫자로 권한을 부여하게 된 다.
- rwx : 4 + 2 + 1 = 7
- r-x : 4 + 1 = 5
- rw- ; 4 + 2 = 6
- -wx : 2 + 1 = 3
- --x : 1 = 1
- permision이 777이면 모든 사용자에게 모든 권한을 준것이다.
- 누가 삭제하던 상관없는 파일이다. (too open)
- chmod 명령어 : 파일의 권한을 변경해준다.
- 위 test.txt는 chmod로 666 (-rw -rw -rw)
- 만약 chmod를 아무나 사용할 수 없으면 권한이 의미가 없다.
- 소유자만 chmod를 사용할 수 있다.
Symbolic 권한 체계
chmod u-rw test.txt
: User(소유자) 의 권한을 -rw (6)으로한다.chmod g-rw test.txt
: Group(그룹) 의 권한을 -rw (6)으로 한다.chmod 0-rw test.txt
: Others(게스트, 외부사용자) 의 권한을 -rw (6)으로 한다.- ls -n
- chmod 400 keypair.pem
- cd dirA : 현재 위치의 dirA
- cd ~ : 계정의 home으로 간다. (root유저는 root)
- cd ~kosa : kosa계정의 home으로 이동
- cd ~root : root계정의 root폴더로 이동
- cd - : 방금 전 폴더로 이동
- ls ~+ : 현재 위치의 ls
- ls ~- : 직전 위치의 ls
파일 이름 대체 문자
- ls fi* : fi로 시작하는 파일 검색
- ls d??A : d로 시작하고 A로 끝나는 4글자 인 이름을 가진 파일로 ls를 한다.
인용부호 메타문자
- echo $USER : root로 출력됨
- echo '$USER' : $USER문자로 출력됨
- echo "$USER" : root로 출력됨
- echo "/$UESR" : /(문자)root로 출력됨
- date
- echo 'data'
- echo "The current time is
date
" : ~에서 shift안누르면 나오는 ` 기호로 date를 감싸면 echo중에서도 date출력이 나온다.
- 파일에 있는 내용들을 출력을 하는 등, 재지정 하고 싶을때 사용
- 파일 내용을 가져오는??
- cat 0< /etc/hosts : 0이 표준입력의 의미다.
- 우리가 cat을 사용할 떄
0<
이 항상 사용되고 있었다.- 즉, /etc/hosts의 문자들을 cat에 입력한다 -> cat이 화면으로 출력한다 는 의미인 것 같다.
- ps : 현재 실행중인 프로세스 목록 표시
- ps 1> process_list : ps의 출력 내용이
1>
표준출력 재지정을 받고, process_list파일로 저장된다.- cat process_list하면 ps에서 나온 출력내용이 화면으로 안나오고 process_list로 나온다.
- 숫자는 생략이 가능하다.
- 또,
>
하면 file에 내용이 지워지고 다시 생성되지만,>>
하면 기존 내용에 추가된다.
- root 계정으로
echo "TEST" > /tmp/test.txt
해서 test.txt파일을 만든다.
-find /tmp -type f -exec grep TEST {} \; -print
- 제대로 출력되는 TEST 하나를 찾을 수 있다.
find /tmp -type f -exec grep TEST {} \; -print 2> /dev/null
- 에러를 모두 버리고, 출력되는 것만 출력했다.
find /tmp -type f -exec grep TEST {} \; -print 1> test.txt 2>&1
- 반대로 에러만 다른 폴더로 저장할 수 있다.
-/dev/null
: 쓰레기통 같은 곧이다. 표준 에러들을 여기다 버린다는 뜻이다.
ls -l /etc | wc -l
: etc의 라인의 개수를 출력cat /etc/ssh/sshd_config | grep -n "22"
: sshd_config 에서 22가 들어가는 곳의 줄 번호를 같이 출력해라.ps -ef
: 현재 실행중인 모든 프로세스 출력ps -ef | more
: 그냥 ps -ef 만 하면 너무 많으니 more로 같이본다.
history
: 입력한 명령어들의 기록을 볼 수 있다.
- `history 5' : 가장 최근 5개까지 명령어 출력
- history | head -3
- history | tail - 5
!1
: history에서 1번째 명령어 다시실행!10
: history에서 10번째 명령어 다시 실행
MyName="HueonKi Jo"
vi bash_profile
: 여기서 마지막에 MyName=Cocudeny
를 입력한다.source .bash_profile
: reboot나 exit할 필요 없이 source해서 다시시작 해준다.Alias
: 여기서 변수의 별명을 지어줄 수 있다.
ps
: 현재 실행중인 프로세스 확인ps -f
: 현재 프로세스에서 상세정보 보여주기
pstree
: ps를 트리구조로 보여줌
ps -ef
: 전체 실행중 프로세스 출력
-ps -ef | more
: 너무 기니까 more로 보기
-ps -ef | grep bash
: 출력된 프로세스들중 bash찾기
프로세스 ID관련- 프로세스 켜진것이 많을 떄, 다시 해보자
pgrep -x bash
: bash의 PID출력pgrep -l bash
: PID를 이름과 같이 출력pgrep -u 1000
: uid가 1000인 사용자 찾기 (확인 안됨)pgrep -lt pts/1
: 터미널 프로세스 출력 (확인 안됨)
--t
: 터미널
pts/1
: 터미널 이름
sleep 1000 &
: sleep 1000초를 백그라운드에서 실행pgrep -1 sleep
: sleep 프로세스의 PID를 검색kill [PID]
: [PID]인 프로세스(sleep)을 kill한다.
sleep 2000 &
pgrep -; sleep
pkill sleep
: 프로세스의 이름을 가지고 kill
sleep 60
: (foreground 실행)sleep 60 &
: background 실행jobs
: 현재 Background실행 중인 프로세스 보기fg %1
: Background에 있는 애를 foreground로 바꿔준다.