Blog

Mac Terminal 명령어

ls
ls 옵션
-a (모든 파일 표시)
-d (.의 포함된 파일이아닌 .자체에 대한 정보 출력/ ls -dl)
-F (dir의 경우 / 추가)
-reverse (reverse는 출력항목을 역순 정렬, 시간 알파벳)
-s 파일 크기순정렬
ls -t 시간순 정렬
-h 파일크기 바이트아닌 사람이 알기 쉬운 단위로
-d 디렉토리 정보확인 (ls -dh)

ls -l /usr / ~ (/usr, root, home dir 세 디렉토리 확인)

ls자세히보기 정보
파일접근권한 / 하드 링크 수 / 파일 소유자의 사용자이름 / 파일을 소유한 그룹이름 / 파일 크기 / 파일 마지막 수정날짜,시간 / 파일명

file filename (간단한 파일 정보 출력)

less filename (파일내용 보기)

less 조작키
b/spacebar (페이지단위 위,아래 이동)
up/down (줄단위 위,아래 이동)
g/G (페이지 처음,끝 이동)
/string (/아래방향으로 입력된 문자열 찾기)
n (검색어 n개의 n+1번째로 하나씩 이동)
h (도움말)
q (종료)

와일드카드
* (모든문자)
? (모든 하나의 문자)
[string] (string이 포함된 문자)
[!string] (string이 포함되지 않은 문자)
[[:class:]] (지정된 class에 해당하는 문자)
class
:alnum: (모든 알파벳, 숫자, 문자)
:alpha: (모든 알파벳 문자)
:digit: (모든 숫자)
:lower: (모든 소문자)
:upper: (모든 대문자)

ex)
g* (g로 시작하는 모든파일)
g*.txt (g로 시작하는 모든 txt 파일)
Data??? (Data로 시작하면서 뒤에 정확히 3개의 문자만 있는 파일)
[abc]* (a,b,c로 시작하는 모든 파일)
BACKUP.[0-9][0-9][0-9] (BACKUP으로 시작하면서 뒤에 정확히 세 개의 숫자로 된 파일)
[[:upper:]]* (대문자로 시작하는 모든 파일)
[![:digit:]]* (숫자로 시작하는 모든 파일)
*[[:lower:]123] (파일명이 소문자로 끝나거나 1,2,3으로 끝나는 파일

파일,디렉토리 조작
cp (파일 및 디렉토리복사)
mv (파일 및 디렉토리 이동)
mkdir (디렉토리 생성)
rm (파일 및 디렉토리 삭제)
ln (하드 링크 또는 심볼릭 링크)

cp 옵션
-a (파일 및 dir뿐만 아니라 소유자 및 권한 정보와 같은 속성까지 모두 복사)
-i (기존 파일을 덮어쓰기 전에 확인 메시지를 보여주는 옵션, 안전을 위해 사용)
-r (dir과 그 안의 내용까지 복사할 때 쓰는 옵션, dir복사시 사용)
-u (어떤 dir에 있는 파일을 다른 dir로 복사할 때, 그 dir에는 없거나 최신 버전인 파일만을 복사하기 위해서 사용)
-v (복사 완료되었다는 메시지를 보여주는 옵션)

ex)
cp file1 file2 (file1을 file2로 복사 file2가 없으면 새로 생성)
cp -i file1 file2 (덮어쓰기전 확인메시지 출력)
cp file1 file2 dir1 (file1,file2를 dir1으로 복사, dir1은 미리 존재해야 함)
cp dir1/* dir2 (dir1의 모든 파일을 dir2로복사, dir2는 미리 존재해야 함)
cp -r dir1 dir2 (dir1디렉토리와 하위 모든 내용을 dir2로 복사한다. dir2가 없으면 새로 생성된다)

rm 옵션
-i (삭제하기전 확인 메시지 출력)
-r (하위디렉토리도 삭제)
-f (파일이 없더라도 실행됨, 존재하지 않는파일 무시)
-v (삭제확인 메시지 출력)

커맨드라인 단축키
clear (화면지우기)
history (히스토리보기 history | less 치면 less로 히스토리보기가능 less단축키 사용하여 화면탐색가능)
ctrl-A (줄 맨 앞으로 커서 이동)
ctrl-E (줄 맨 뒤로 커서 이동)
ctrl-L ( ==clear )
ctrl-d ( ==delete )
ctrl-k (현재커서부터 해당 줄 끝까지 텍스트 지우기)
ctrl-u (현재커서부터 해당 줄 맨 앞 텍스트 지우기)
ls project (project 디렉토리를 다 치지않고 ls pro까지만 치고 tab키누르면 자동완성)

Permission
id – 사용자 id표시
chmod – 파일 모드변경
umask – 기본 파일 퍼미션설정
su – 다른 사용자로 쉘 실행
sudo – 다른 사용자로 명령어 실행
chown – 파일 소유자 변경
chgrp – 파일 그룹 소유자 변경
passwd – 사용자 비밀번호변경경

ls -l 출력결과의 처음 10개문자는 파일 속성을 나타낸다
-rwxr-xr-x 1/3/3/3 단위로
파일의종류/Owner/Group/Other로 구분할 수 있다.

파일의 종류
– – (일반파일)
d – (디렉토리)
l – (심볼릭 링크, 항상 777)
c – (문자 특수 파일, 터미널이나 모뎀깥이 바이트의 열로 데이터를 처리하는 디바이스를 나타냄)
b – (블록 특수 파일, 하드드라이브나 CD-ROM드라이브 같은 블록 단위의 데이터 처리하는 디바이스 나타냄)

퍼미션 속성
속성 (파일/디렉토리)
r – (파일의 열기와 읽기허용 / 실행 속성이 설정되어 있으면 디렉토리의 내용물을 나열할 수 있게끔 허용)
w – (파일 쓰기, 잘라내기 허용, 이름변경,삭제는 안됨 파일삭제나 이름변경은 디렉토리 속성에 의해 결정된다 / 실행 속성이 설정되어 있으면 디렉토리 내의 파일들을 생성,삭제,이름변경이 가능)
x – (파일이 프로그램으로 처리되고 실행되도록 허용, 스크립트 언어에서 작성된 프로그램파일은 읽기 가능으로 설정되어 있어야만 실행가능 / 디렉토리에 들어올 수 있도록 허용한다 ex) cd directory )

2진법 파일모드
0 —
1 –x
2 -w-
3 -wx
4 r–
5 r-x
6 rw-
7 rwx

다른 사용자 ID와 그룹 ID로 쉘 실행
su -l (슈퍼유저로 변경)
sudo (다른 사용자가 슈퍼유저로 명령을 실행할 수 있음)

chown 파일 소유자와 그룹 변경
chown [owner][:[grout]]file
jaewon (파일의 소유권을 현 소유자에서 jaewon으로 변경)
jaewon:users (파일의 소유권을 현 소유자에서 jaewon으로 변경하고 파일 그룹 소유자를users 그룹으로 변경)
:admins (파일 그룹 수유자를 admins 그룹으로 변경한다. 파일 소유자는 바뀌지 않는다)
jaewon: (파일 소유자가 현 소유자에서 jaewon으로 변경되고 그룹 소유자는 jaewon의 로그인 그룹으로 변경)

chgrp 그룹 소유권 변경
예전 유닉스에서 chown명령어가 그룹 소유권이 아닌 파일 소유권만 변경할 수 있어서 그룹 소유권 변경을 위한 명령어 독립명령어가 chgrp이다
chown과 동일한 방식으로 작동함

passwd 패스워드변경