linux 명령어
1. 파일 시스템 탐색 기본 명령어
pwd, cd, ls, file, less
1) pwd
- 작업 디렉토리의 위치 확인
[vagrant@host1 ~]$ pwd
/home/vagrant
2) cd [디렉토리명]
- 현재 작업 디렉토리의 위치 이동
[vagrant@host1 ~]$ cd ..
[vagrant@host1 home]$
[옵션]
.. : 상위 디렉토리로 이동. 예를 들어 현재 위치가 /user/jtaewu라면 /user로 이동
. : 현재 위치한 폴더로 이동. 사실상 기능은 새로고침과 동일
- : 이전에 위치했던 폴더로 이동. 윈도우의 뒤로 가기와 동일.
/ : ROOT 디렉토리로 이동
~ : 홈 디렉토리로 이동
3) ls
- 디렉토리내 있는 파일 리스트 출력
[vagrant@host1 ~]$ ls
git
디렉토리를 지정하여 파일 목록을 출력 가능
옵션을 사용하지 않으면 숨김 파일은 나오지 않음
디렉토리명을 생략하면 현재 위치한 디렉토리의 파일 목록을 출력
[옵션]
/ : root에 있는 파일 목록 출력
-l : 파일들을 나열할때 자세히 출력
-a : 경로안의 모든 파일을 나열 (숨김파일도 포함)
-R : 위치한 디렉토리 하부 디렉토리의 파일까지 모두 출력
-h : 파일크기를 해석파기 편하게 출력
-r : 출력 결과를 내림차순으로 정렬
-t : 출력 결과를 파일이 수정된 시간을 기준으로 정렬
4) file [파일명]
- 지정된 파일의 타입을 확인
[vagrant@host1 ~]$ file git
git: directory
[옵션]
-C : 매직파일의 포맷을 검사하는 옵션
-f 목록파일 : 많은 파일들을 한번에 확인하기 위하여 파일리스트인 목록파일을 만들어서 그 안에 입력된 모든 파일을 한꺼번에 확인하는 옵션
-m 매직파일 : 지정된 매직파일로 대상파일을 확인하는 것.
5) less [파일명]
- 파일의 내용을 한 화면에 출력
[vagrant@host1 ~]$ less git
total 0
drwxrwxr-x. 5 vagrant vagrant 66 Nov 21 09:03 ./
drwx------. 5 vagrant vagrant 136 Nov 21 10:02 ../
drwxrwxr-x. 3 vagrant vagrant 123 Nov 22 08:07 bitcamp-ncp/
drwxrwxr-x. 3 vagrant vagrant 66 Nov 21 09:19 bitcamp-ncp2/
drwxrwxr-x. 4 vagrant vagrant 65 Nov 21 01:29 bitcamp-study/
git (END)git (END)
[옵션]
-? : less에서 사용할 수 있는 명령들에 대한 도움말 출력
-c : 필요 시 전체 화면을 다시 갱신
-i : 대소문자를 구분하여 탐색
-s : 연속되는 공백 라인은 하나의 행으로 처리
-x [숫자] : 수치를 지정해서 탭 간격 조정, Default값 8
행번호 : 지정된 행 다음부터의 내용을 출력
--help : 해당 명령어의 도움말을 보여주고 실행이 종료
--version : version 정보를 출력하고 실행이 종료
[less 실행 중 명령어]
Space : 줄 번호를 출력하는 옵션
f : 다음 페이지로 표시하는 명령
Enter : 행 단위로 표시하는 명령
/[String] : 표시되는 파일에 내용 기준 이후에 내용의 문자열을 찾는 명령
?[String] : 표시되는 파일에 내용 기준 이전에 내용의 문자열을 찾는 명령
q : less 명령어를 종료하는 명령
2. 파일과 디렉토리 조작 명령어
cp, mv, mkdir, rm, ln
1) cp [복사할 파일명] [붙여넣을 파일명]
- 파일이나 디렉토리 복사
[vagrant@host1 ~]$ cp -r git new_git
[vagrant@host1 ~]$ ls
git new_git
cp 명령어의 옵션을 제외한 인자 값은 생략이 불가
경로를 지정하지 않으면 현 위치를 Defualt로 함
복사할 때 새로운 이름을 지정하여 복사 가능
다양한 옵션을 사용하여 기존의 파일이나 디렉토리를 보호하는 등의 행동 가능
[옵션]
-i : 복사 될 파일의 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 물어봄
-b : 복사 될 파일의 이름이 이미 존재할 경우, 백업파일을 생성
-f : 복사 될 파일의 이름이 이미 존재 할 경우, 강제로 덮어쓰기
-r : 하위 디렉토리 까지 모두 복사
-a : 원본 파일의 속성, 링크 정보까지 모두 복사
-p : 원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사
-v : 복사 진행 상태를 출력
2) mv [이동할 파일] [이동될 위치]
- 파일이나 디렉토리 이동
[vagrant@host1 ~]$ mv new_git git
[vagrant@host1 ~]$ ls
git
[vagrant@host1 ~]$ cd git
[vagrant@host1 git]$ ls
bitcamp-ncp bitcamp-ncp2 bitcamp-study new_git
mv 명령어의 옵션을 제외한 인자 값은 생략이 불가
경로를 지정하지 않으면 현 위치를 Defualt로 함
이동 시킬 때 새로운 이름을 지정하여 이동 가능
현재위치에 이름만 바꿔서 이동시켜 파일의 이름바꾸기로 응용 가능
다양한 옵션을 사용하여 기존의 파일이나 디렉토리를 보호하는 등의 행동 가능
[옵션]
-b : 이동 될 파일이 존재하면 백업파일을 생성
-i : 이동 될 파일의 이름이 이미 존재할 경우, 사용자에게 덮어쓰기 여부를 물어봄
-b : 이동 될 파일의 이름이 이미 존재할 경우, 백업파일을 생성
-f :이동 될 파일의 이름이 이미 존재 할 경우, 강제로 덮어쓰기
-n :이동 될 파일의 이름이 이미 존재 할 경우, 덮어쓰기를 하지 않음
-r : 하위 디렉토리 까지 모두 이동
-v : 이동 진행 상태를 출력
3) mkdir [디렉토리명]
- 새 디렉토리 생성
[vagrant@host1 ~]$ mkdir new
[vagrant@host1 ~]$ ls
git new
경로를 지정하지 않으면 현 위치를 Defualt로 함
생성할 디렉토리를 여러개 나열하여 한번의 명령어로 복수의 디렉토리를 생성 가능
[옵션]
-m : 디렉토리를 생성할 때 권한을 설정 (defualt : 755)
-p : 상위 경로도 함께 생성
-v : 디렉토리를 생성하고 생성된 디렉토리에 대한 메시지를 출력
4) rm
- 파일이나 디렉토리 삭제
[vagrant@host1 ~]$ rm -r new
[vagrant@host1 ~]$ ls
git
경로를 지정하지 않으면 현 위치를 Defualt로 함
비어있지 않은 디렉토리는 -r 옵션 없이는 삭제 불가
한번 삭제한 파일에 대한 취소 명령어는 존재하지 않으니 삭제시 신중할 것!
[옵션]
-f : 강제로 파일이나 디렉토리를 삭제하고 대상이 없는 경우에는 메시지를 출력하지 않음
-r : 디렉토리 내부의 모든 내용을 삭제합니다.
-d : 비어있는 디렉토리들만 제거
-i : 매번 삭제할 때마다 사용자에게 삭제할 것인지 물어봄
-l : 3개의 이상의 파일을 삭제하거나 디렉토리 내부가 비어있지 않을 때만 삭제할 것인지 물어봄
-v : 삭제되는 대상의 정보를 출력
5) ln [원본파일명] [링크명]
- 링크파일 생성
[vagrant@host1 ~]$ ln a.txt hardlink
[vagrant@host1 ~]$ ls
a.txt git hardlink
하드링크 또는 심볼릭링크 생성 가능
옵션없이 사용하면 Default로 하드링크 생성
[옵션]
-s : 심볼릭 링크 생성
-S : 백업파일 생성 시 원하는 접미사 지정
-v : 링크 생성 정보를 자세히 출력
-b : 대상파일 존재 시 백업파일 생성 후 생성
-f : 대상파일 존재 시 삭제 후 생성
-i : 대상파일 존재 시 대상파일 삭제할 것인지 물어봄
3. 명령어를 다루는 명령어
type, which, man, apropos, info, whatis, alias
1) type [명령어명]
- 지정된 명령어의 타입 (쉘 내장인지 외부 유래인지 앨리어스인지)을 확인
[vagrant@host1 ~]$ type test
test is a shell builtin
[vagrant@host1 ~]$ type cp
cp is /usr/bin/cp
[vagrant@host1 ~]$ type find
find is /usr/bin/find
2) which [명령어명]
- 명령어의 위치 확인
[vagrant@host1 ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
[옵션]
-a : 검색 가능한 모든 경로에서 해당 명령어 검색
3) man [명령어명]
- 명령어의 사용법 확인
[vagrant@host1 ~]$ man rm
RM(1) User Commands RM(1)
NAME
rm - remove files or directories
.
.
.
[man 실행 중 명령어]
q : 나가기
h : man 사용법 확인
Enter : 한 줄씩 넘기기
Space : 한 페이지씩 넘기기
[옵션]
-k : apropos와 같은 기능
4) apropos [검색어]
- 검색어와 관련있는 명령어의 사용법 출력
[vagrant@host1 ~]$ apropos git
git (1) - the stupid content tracker
git-add (1) - Add file contents to the index
git-am (1) - Apply a series of patches from a mailbox
.
.
.
5) info [명령어]
- 일부 명령어의 사용법 확인
[vagrant@host1 ~]$ info git
File: *manpages*, Node: git, Up: (dir)
GIT(1) Git Manual GIT(1)
NAME
git - the stupid content tracker
.
.
.
man에 비해 검색되는 명령어가 한정적
6) whatis [명령어]
- 명령어의 기능 간략하게 확인
[vagrant@host1 ~]$ whatis pwd
pwd (1) - print name of current/working directory
pwd (1p) - return working directory name
7) alias [별명]=’명령어’
- 명령어를 간단한 이름으로 사용할 수 있도록 별명 설정
[vagrant@host1 ~]$ alias p='pwd'
[vagrant@host1 ~]$ p
/home/vagrant
인자 값을 넣지 않으면 현재 등록되어있는 모든 alias 출력
unalias [별명] : 별명 삭제