hann-blume
Linux - Commend 본문
기본 명령어
-- 명령어가 많으므로 찾고자하는 명령어는 ctrl+f 로 검색해서 보는것이 편리하다.
# pwd | 현재 위치를 확인해주는 명령어 |
리눅스 내에서 명령어를 이용하면 이곳 저곳의 디렉터리를 이동하게 되는데
경로 이동을 하게되면 pwd 명령어로 현재 위치를 확인하는 습관을 가지면 좋다.
# cd | 디렉터리 경로 이동 명령어 |
Change directory
문법= # cd [이동하고자하는 경로의 디렉터리]
ex) # cd /home
여기서 '경로'에는 두 가지의 방법 있다.
1. 절대경로
2. 상대경로
먼저 절대 경로는
항상 경로를 입력해줄 때 ' / ' 라는 최상위 디렉터리부터 경로가 시작된다.
앞 포스팅의 리눅스 디렉터리 구조를 보면 경로를 이해 할 수 있다.
ex) # cd /home/tstory
상대경로는
경로를 입력할 때 현재 자신이 위치한 경로부터 입력해주는 것이다.
ex) # cd ./tstory
TIP
./ 는 현재위치를 의미한다.
# cd ./ = 현재 위치로 재 이동
# cd ../ = 현재 위치에서 한 단계 상위 디렉터리로 이동
# cd ~ = 현재 접속중인 사용자의 홈 디렉터리로 이동
~는 '틸드' 라고 부른다
# ls | 디렉터리 안에 있는 내용을 확인하는 명령어 |
문법 = # ls [옵션] [경로]
# ls [옵션][경로1][경로2]
옵션
# -l (ls -l) |
현재 위치 디렉터리 내의 내용을 자세히 확인 디렉터리나 파일의 속성 정보를 같이 출력한다 |
# -a (ls -a) |
현재 위리치의 디렉터리 안의 숨겨진 것들까지 포함해서 출력한다 |
# -d (ls -d ) | 디렉터리 자체를 나타낸다. 즉 자기 자신 디렉터리 |
# -R (ls -R) |
지정한 경로 하위에 있는 세부 디렉터리들의 목록까지 전부 출력한다 |
# ./ (ls ./) | 현재 위치의 디렉터리 내의 내용을 확인한다. |
참고로 ls 명령어를 통해 디렉터리 내부를 확인할때 퍼미션 필드의 맨 앞쪽이
d 이면 디렉터리
- (하이픈) 이면 파일이다.
# cp | 파일 또는 디렉터리를 복한다 |
copy
문법 = # cp [옵션][원본][목적지]
다중cp
문법 = # cp[옵션][원본1][원본2]....[목적지]
절대 경로 일 경우
ex) # cp /backup/grub.cf /backup/inittab ./a/b/
상대경로일 경우
ex) # cd /backup
# cp /grub.cd /backup/inittab /a/b/
위의 사진에서 /bin에 있는 파일들을 asd라는 디렉터리로 복사를 했는데
이때 /bin뒤에 '*' 라는 것을 사용했다.
이는 와일드 카드라는 것인데
* = 모든 것들.
즉 /bin속의 전부를 의미한다
이렇게도 사용이 가능하다
*test = test로 끝나는 모든 것
test* = test로 시작하는 모든 것
*test* = test를 포함하는 모든 것
또 다른 와일드 카드
? = 문자 한자리를 대체한다.
ex)
?test = 앞에 한글자 있는
test? = 뒤에 한글자 있는
?test? = 앞뒤로 한글자 있는
추가적으로
cp는 원래 디렉터리는 복사가 불가하다. 따라서 디렉터리를 복사할 때는
-r 옵션을 함께 사용해주어야한다
# cp -r
-p 옵션
cp 명령어를 사용하게되면 원본으로부터 복사된 새로운 파일들이 생긴다.
해당 파일들의 허가권과 소유권을 보면 원본파일의 주인이 아닌 cp 명령어를 사용한
사용자의 허가권과 소유권으로 만들어진다.
하지만 -p옵션을 사용하면 복사하려는 파일이나 디렉터리의 속성값(허가권과 소유권)을
그대로 복사할 수 있다.
# mv | 파일 또는 디렉터리 이동 |
move
문법 = # mv [원본] [목적지]
# mv [원본1] [원본2] [목적지]
mv는 두 가지 특징이 있다.
첫째. 옵션이 없다.
둘째. 원본이 사라진다 -> cp와의 차이점
# mkdir | 디렉터리를 생성한다 |
# rmdir | 디렉터리를 삭제한다 |
make directory
remove directory
문법 = # mkdir [옵션][경로]
# rmdir [옵션][경로]
옵션을 사용하지 않는 경우 한번에 한개의 dir만 생성/삭제 할 수 있다.
옵션으로 -p 를 사용하면 동시에 여러개를 작업할 수 있다.
예를 들어
# mkdir -p [경로/1/2/3/4] 이렇게 작업하면
경로에 1에, 그하위2의 그하위의 3의 하위의4에 만든다. 라고 생각하면된다.
그럼 -p옵션을 사용하지않고 할때는
# mkdir [경로/1 경로/2 경로/3]
이렇게 사용한다. 즉 각각 다른 경로에 생성한다.
rmdir로 디렉터리를 삭제할 때는 해당 디렉터리가 비어있어야만 가능하다.
하지만 실제로 rmdir은 잘 사용하지 않는다. rmdir을 사용하는 것보다
다음에 나올 rm명령어를 사용하는 것이 훨씬 간단하고 수월하다.
# rm | 파일 또는 디렉터리를 삭제한다. |
remove
문법 = # rm [옵션] [경로]
rm을 사용할 때 옵션은 기본으로 -r을 달고 사용한다 생각하면 된다.
위의 사진을 보면 명령어를 사용하면 삭제할 것이냐고 우리에게 물어본다.
y를 입력하면 그제서야 삭제를 진행하는데 만약
디렉터리를 삭제할때 저렇게 -r옵션만 사용하면 디렉터리안에 몇개의 파일과 디렉터리가 있던
일일이 하나하나 다 물어본다. 너무 귀찮은 작업이 아닐 수 없다.
따라서 우리에게 물어보지 않고 즉시 삭제하는 옵션을 추가한다
-f = force 강제적인.
# rm -rf 이렇게 사용하면 우리에게 삭제여부를 물어보지 않고
즉시 삭제를 진행한다. 편리하지만 물어보지 않기 때문에 위험할 수 있다.
상황에 맞게 잘 사용하도록 한다.
그리고 삭제를 진행했으면 정말 삭제가 되었는지 ls 명령어로 확인하는 습관을 가지자.
우리가 rm 명령어를 사용할 때 와일드카드를 많이 사용하게되는데
주의할 점이 있다.
# rm -rf /*
이 명령어를 실수로 하게된다면 돌이킬수가 없다.
리눅스의 모든 시스템을 지워버리는 작업이다.
궁금하면 테스트로 만들어서 진행해보도록 하자.
엄청나게 많은 파일들이 보여지면서 모두 깔끔하게 삭제가 된다.
(솔직히 해보면 엄청 재밌다)
# touch | 빈 문서 생성. 크기 0 |
문법 = # touch [생성할 파일 이름][파일2]
touch명령을 사용할때
# touch [파일이름]
또는
# touch[경로/이름]
을 입력해주면 된다.
시스템 종료 및 재부팅 명령
종료 =# shutdown -h now
# init 0
# poweroff
# halt
재부팅 = # shutdown -r now
# init 6
# reboot
# man/help | # 도움말 기능 |
man = 메뉴얼 형태
문법 = # man [명령어]
help = 상세도움말 출력
문법 = # [명령어] --help
어떤 명령어는 man은 지원하지만 help를 지원하지 않을 수 있고
반대로 help는 지원하지만 man은 지원하지 않을 수 있다.
상황에 맞게 사용하면 된다.
# alias | 별칭 |
문법 = # alias [변수명]=['명령어']
alias는 긴 명령어를 짧은 명령어로 바꿔준다고 생각하면 된다.
단 alias는 재부팅할 경우 초기화 된다.
alias 해제 = unalias
문법 = # unalias [변수명]
# cat | 파일 안의 내용을 모두 출력하는 명령어 |
단 출력할 내용이 너무 많으면 화면에 다 보이지 않는
단점이 있다.
문법 = # cat [옵션] [경로/파일명]
cat의 5가지 옵션
1. '<' = 내용보기
# cat < /etc/passwd
2. '>' = 생성 후 저장
# cat /etc/passwd > /testfile
/etc/passwd의 내용을 /경로에 testfile을 만들고 그 속에 저장하겠다 라는 말이다.
만약 이미 testfile이 존재하고 안에 내용이 있다면 그위에 덮어씌어진다.
3. '>' = 출력 후 생성
위와 이용방법이 살짝다르다.
# cat > a
a라는 파일을 출력 후 생성한다. 마찬가지로 이미 a라는 파일이 있으면
원본이 사라지고 덮어씌어진다.
4. '>>' 내용 추가
# cat >> a
기존의 a의 마지막에 내용을 추가한다
5. '>' = 파일병합
# cat a b > c
a와 b를 c에 병합한다.
# cat b a > c
파일 병합에는 순서가 있다.
왼쪽이 우선시된다.
# head |
파일 내용 중 처음부터 아래로 10줄을 출력한다 n에 숫자를 명시해주면 그만큼만 출력한다 |
# tail |
일 내용 중 마지막부터 위로 10줄을 출력한다 n에 숫자를 명시해주면 그만큼만 출력한다 |
문법 = # head -n [경로/파일명]
# tail -n [경로/ 파일명]
# more |
파일 내용이 너무 많아 화면에 출력이 안될 경우 화면 단위로 끊어서 출력해준다. Enter를 누르면 다음 화면으로 계속 넘어간다 |
문법 = # more [경로/파일명]
more의 장점은 cat, tail, head 의 단점을 보완하여
내용의 전체내용을 확인 할 수 있다
단점은 '파일'만 가능하다는 것이다.
# less |
more와 비슷하지만 파일과 디렉터리 안에 있는 내용물을 페이지 단위로 출력해주는 명령어 |
문법 = # less [경로/파일 or 디렉터리명]
# nl | 줄번호를 출력하면서 파일 내용을 모두 출력해준다 |
number line
문법 = # nl [경로/파일명]
| | 명령어를 조합하여 사용할 때 아주 유용하다. |
파이프
ex) ls -l /etc/ | more
파이프를 중심으로 왼쪽 명령어는 결과를
오른쪽 명령어는 보조로 그 기능자체만 수행한다.
# ifconfig | head -2
# ls -l /etc/ | nl | more
이 파이프라인을 이용할 때 가장 많이 사용하는 것이
grep이라는 명령이다.
grep | 검색 (search라는 영단어와 비슷하다) |
ex ) cat /etc/passwd | grep tstory
내가 찾고자하는 것들만 뽑아서 보여준다. 아주 유용하고 자주 사용해야할
명령이기 때문에 꼭 기억해두어야 한다.
# find | 주어진 조건을 검색하여 이름을 찾는 명령어 |
문법 = # find [경로(범위)] [옵션] ["찾을 이름"]
지정한 경로에서 찾을 이름을 검색한다.
# find / -name "tstory*" | nl
와일드카드 사용도 가능하다
# find [경로] -name ["찾을이름"] -type
= type이 d = 디렉터리, f = 파일이다
# find [경로] -name["찾을이름"] -exec 명령어 { \;
exec는 실행이란 뜻이다.
명령어를 찾고 싶을 때도 있다.
# which | /usr/bin/ 에서 명령어의 실팽파일을 찾아주는 명령이다. |
문법 = # which [명령어]
여기까지 리눅스의 기본적인 명령어들에 대한 설명이 끝났다.
'Linux' 카테고리의 다른 글
Linux - 허가권/소유권 (0) | 2020.02.23 |
---|---|
Linux - user/group 생성, 변경 ,삭제 (0) | 2020.02.23 |
Linux - Vi Editor (0) | 2020.02.23 |
리눅스의 주요 디렉터리 구조 (0) | 2020.02.23 |
CentOS install (0) | 2020.02.23 |