TIL 20.12.08 - UNIX 명령어
1. Unix Command
CLI 명령어: Command Line Interface 명령어
터미널 명령어를 의미한다.
필수 명령어는 수십여개 이다.
man 페이지를 이용해서 사용방법을 알 수 있다. (메뉴얼 페이지)
Command completion = auto-completion : 명령행 완성 기능
<Tab>키를 이용하여 prompt에서 파일, 디렉터리명의 일부만으로 나머지를 완성할 수 있다.
여러 목록이 있을 때는 더블 탭을 이용해서 중복되는 것을 보여줌.
오타 방지 위해.
i18n
internationalization 국제화
현재 Linux/UNIX command는 i18n에 맞춰서 만들어져 있다.
-> LANG 환경변수 설정의 영향을 받는다. en_US 로케일을 사용하는 것이 좋다.
매뉴얼
맨 페이지보는 명령어: man
리눅스 명령어는 세대에 따라 다르다.
clear -> Ctrl + L
netstat은 ss로 대체, nslookup은 dig로 대체되었다.
커널 파라미터 변경할 때 sysctl
nohup -> systemd-run
Path:
pwd | print working directory |
cd | change directory |
/ | 루트 디렉토리 |
~ | 홈 디렉토리 |
- | 이전 경로 |
absolute path (절대 경로) : root directory( / )를 시작으로 하는 경로
relative path (상대 경로) : 현재 디렉토리( . )를 시작으로 하는 경로
ls 명령어
-a : all
-l : long
-t : sort by mtime 최신을 빨리
-r : reverse
file mode bit: UNIX의 파일 권한을 나타내는 3 + 9 bit 체계
숨겨진 3bit, 화면에는 9비트만 나타난다.
Octal mode: 8진수로 표기되는 UNIX file mode
3칸씩 각각의 rwx = owner, group, others 파트로 나뉜다.
r : readable = 2^2 = 4
w : writable = 2^1 = 2
x : executable = 2^0 = 1
ex. 640 => rw- r-- ---
directory인 경우: readable file list, writable file, accessible
mkdir : make directory
여러개 한 번에 만들고 싶으면 -p 추가.
rmdir : remove directory
디렉토리가 비어있는 경우에만 삭제 가능. 그래서 잘 안 씀
rm -rf 로 파일과 디렉토리를 함께 삭제하는 경우가 더 많다.
chmod : change mode
모드가 664이면 rw- rw- r--
디렉토리는 사실, 파일 리스트를 담고 있는 하나의 텍스트 파일과 같다.
따라서 dir의 r권한은 dir의 목록을 읽을 수 있다.
그러나 dir의 x권한이 있어야만 목록에 있는 링크에 access할 수 있다.
모드가 331이면 -wx -wx --x
ls 로 디렉토리에 접근 불가
cat명령어로 파일 안의 내용은 접근이 가능하다.
stat도 마찬가지.
그리고 명령어를 입력할 때, testdir/뒤에서 tab키가 불가능했다.
x권한이 있으면 access할 수 있다.
하지만 r권한이 없어서 파일명을 볼 수는 없다.
chmod +x 로 x권한을 전부 추가하고, chmod -x 로 x권한을 전부 뺄 수 있다.
cp : copy
mv : move, rename (같은 디렉토리로 move시키는 경우)
rm : remove
!$ : 가장 마지막에 입력한 명령어의 맨 뒷 부분을 가져올 때.
chown : change owner
chgrp : change group
이 두 명령어는 루트 유저만 가능하다.
File 관련 명령어
file <file> : 파일의 타입 확인. pdf파일인지, 동영상 파일인지 등.
magic 데이터
stat [option] <file> : status of file. file의 메타 데이터를 출력한다.
파일은 내용 + metadata로 구성되어 있다.
meta data는 내용이 아닌 수식하는 정보, ex. 파일 이름, 생성 시간, 권한 등
Access : 최근에 읽은 시각
Modify : 데이터가 변경된 시각 -> mtime (modification time)
Change : 메타데이터가 변경된 시각 -> ctime (change time)
파일이름이 .으로 시작되면 숨김파일
Alt + . : 이전 명령어의 맨 마지막 부분 가져오기
touch <file> : 파일의 메타 정보 업데이트. 만약 file이 존재하지 않는 경우, 빈 파일의 생성.
find directory [expression] : 어떤 조건을 검색할 수 있다. 그리고 조건이 맞는 파일에 대해 작업을 지시할 수도 있음.
n : 정확히 n인 경우를 검색
+n : n보다 크거나 같은 경우를 검색. n 포함.
-n : n보다 작거나 같은 경우를 검색. n 포함.
주요 검색 조건
-name filename : filename의 이름과 같은 파일을 검색.
-name * : 모든 이름을 검색.
-size n : 크기가 n 또는 n 이상 또는 n 이하인 파일을 검색.
-mtime n : 단위: 1day(=24hours)
검색 후 작업 지시
-exec 명령어 \; : 조건에 부합하는 파일을 찾을 때마다 실행됨.
-exec 명령어 \+ : 조건에 부합하는 파일을 찾아 한 번에 실행됨. 더 효율적이다. 하지만 파일의 개수가 너무 많으면 (수십만개) 실패한다.