2019. 12. 8. 11:54ㆍcoding
Directory
cd [directory]
- 디렉토리 변경
- 경로명을 입력하지 않으면 home 디렉토리로 간다.
ls [options] [directory or file]
- 디렉토리의 내용이나 파일 권한을 보여줌
- -a (all) : hidden 파일의 목록 (.으로 시작되는 파일 목록) 도 보여줌
- -i (inode) : 각 디렉토리와 파일의 inode 정보를 보여준다.
- -l (long) : 긴 형식으로 파일의 정보를 보여줌 (File mode, Link count, Username, Groupname, bytes, last modified)
- Filetype : -(정규), d(디렉토리), c(문자), b(블록), l(소프트링크), p(FIFO), s(소켓)
- 접근권한 (-rw-r—r—...등)
- Links : 디렉토리나 파일에 연결된 (linked) 파일 수
- 소유자, 그룹, 파일크기(byte), 최종수정날짜, 파일이름
- -f (format) : 긴 디렉토리는 /를, 실행 파일은 *를, 심볼릭 링크된 파일은 | 를 붙여서 보여준다.
- -d (working directory) : 지정한 디렉토리 자체에 대한 정보를 보여준다.
- -R (recursive) : 하위 디렉토리의 목록도 보여준다.
- -n : user/group id's
- -r : reverse order
- -t : time sequence
- -u : time sequence - last access
- -c : time sequence - inode date
- -p : identify directories
- -1 : print one column
- -x : 복수 열로 출력
- a*? -F? -ld?
mkdir [options] directory
- 디렉토리 생성
pwd
- 작업 디렉토리 출력 (print working directory) : 현재 디렉토리의 절대경로명 출력
rmdir directory
- 디렉토리 삭제
- rmdir command cannot delete a directory unless it is empty
File
chgrp [options] group file
- 파일의 소유 그룹 변경
- chgrp newgroup filename → 사용자 그룹을 newgroup으로 변경
chmod [options] file
- 파일이나 디렉토리의 접근 권한 변경
- 권한 수정은 소유자나 superuser만 가능
- 파일이 삭제되거나 내용이 변경되지 않도록 하려면 디렉토리와 파일에 쓰기 권한을 주지 않아야 한다.
- [options] : [who[operator]permission][..] → 이때 operator는 -,+,=
- chmod g=rw,o= file1 → group에 대한 권한은 rw로 하고 other는 권한이 없는 것으로 한다.
- chmod u+x,g-w,o+rwx file1 → user에게는 x권한 추가하고, group에게는 w권한 삭제, other에게는 rwx권한 부여
- 수치 표현 지원 (read:4, write:2, excute:1) → 따라서 rwx는 7, rw는 6, r은 4
- chmod 777 file1 → u,g,o에게 모두 rwx 권한 부여
chown [options] owner[:group] file
- 파일의 소유자 변경, super 유저가 사용.
- 파일의 소유자가 바뀌게 되면 새로운 소유자나 super user만 mode 변경 가능
- owner:group 을 이용하면 owner와 group을 동시에 변경할 수 있다.
- chown user2 /home/user2/file → 소유자가 user2로 변경
cp [options] file1 file2
- file1을 file2로 복사, file2가 존재하면 덮어씀
- 경로만 지정하면 동일한 파일명으로 복사
- 경로와 함께 다른 파일명을 붙여주면 다른 파일명으로 복사
- -i : target file이 존재할 경우, 덮어쓸 것인지 물어본다 (interactive)
- -r : 하위 디렉토리까지 복사 (recursive)
- cp f1 f1.copy → f1.copy 라는 파일이 현재 디렉토리에 생성
- cp -r /usr/* /home → /usr 밑의 모든 파일이 home 디렉토리에 복사
- cp f1 memo/f1.copy → memo 디렉토리에 f1.copy 파일 생성
- -p : preserve access time and permissions
- 성공적인 파일 복사를 위한 규칙 (source → destination)
- The source must exist
- destination path default 는 현 디렉토리
- destination이 존재하지 않으면 새로 생성, 존재하면 대치
- source 가 multiple or dir → destination은 디렉토리여야 함
- destination 이 source 와 같은 디렉토리이면 destination 파일 이름은 달라야 함
- cp file1 file2 → working directory 에 file1과 같은 file2가 생성
- cp DirA/file1 DirB → DirA에 있는 file1이 file1 이름으로 DirB에 생성
- cp -r DirC DirD → DirC 밑의 모든 디렉토리와 파일이 DirD에 복사
mv [options] file1 file2
- file1을 file2로 이동
- source 파일의 디렉토리와 target 파일의 디렉토리가 일치하면 파일의 이름을 바꿔준다.
- -i : target 파일이 이미 존재할 때, 덮어쓸 지 물어본다.
- -f : force
rm [options] file
- 파일이나 디렉토리 삭제, -r은 디렉토리와 그 내용도 삭제
- 옵션을 주지 않으면 삭제시 물어보지 않고 지운다.
- -i : 정말 지울 것인지 물어본다.
- -r : 서브 디렉토리도 삭제한다 (recursive)
- -f : force
- The rm command does not delete a file → instead it unlinks it meaning the data is still on disk but the link to it is removed
- Depending on the filesystem you are using it is more less difficult to recover files removed with rm
ln [options] source target
- source 에 대한 링크 target 생성 (To share a single file with multiple users, a link can be used)
- A reference to a file stored elsewhere on the system → A way to establish a connection to a file to be shared
- 링크란 여러개의 파일이 하나의 데이터를 참조하도록 하는 것이며, 데이터만 참조하므로 디스크의 공간을 효율적으로 사용할 수 있다.
- 하드 링크 : 일반 파일을 링크할 때 주로 이용, 옵션 없이 ln 명령으로 링크한다. 생성된 링크 파일은 원래 파일의 inode (index node - 파일에 대한 정보가 저장된 레코드)를 그대로 참조하기에 원 파일이 지워져도 아무런 문제가 되지 않는다.
- 심볼릭 링크 : 주로 디렉토리를 링크할 때 사용한다. ln -s 명령으로 링크시키며, 생성된 링크 파일은 원래의 파일명을 참조하게 된다. 원 파일이 삭제되면 inode도 삭제되어 심볼릭 링크 파일이 의미가 없어진다.
- cp 명령은 별도의 데이터 블럭을 생성하지만 ln 링크 파일은 데이터 블럭을 별도로 생성하지 않는다. 따라서 공유할 필요가 있는 파일을 링크하거나 절대경로가 긴 디렉토리를 간편한 이름으로 참조할 경우 링크를 사용하게 된다.
- -i : interactive
- -f : force
umask [mode]
- 새롭게 생성될 파일의 사용 권한을 설정하게 해준다. (기존 파일에는 영향 없음)
- 777에서 원하는 사용 권한을 뺀 값으로 설정한다.
- 새롭게 만들어질 파일의 사용 권한을 r—r—r—(444)로 설정하려면 $ umask 333 → 원래의 default값으로 변경하려면 $ umask 000
split -n filename1 filename2
- 큰 텍스트 파일을 n라인수로 잘라 filename2 뒤에 aa부터 zz까지 순차적으로 파일을 생성
- split -10 /etc/passwd pass → ls pass*를 하면 passaa passab passac... 이렇게 확인
cut [option] filename
- 특정 형식의 파일에서 원하는 칼럼 및 필드를 추출
- cut -c1-8 who.txt > longname.txt → who.txt의 1-8칼럼(c)까지 잘라서 longname.txt로 저장한다.
- cut -d: -f1 /etc/passwd > name.passwd → /etc/passwd 파일에서 필드 구분자 (d)를 : 로 하고 첫번째 필드(f)를 추출하여 name.passwd로 저장한다.
- cat /etc/passwd | grep unix | cut -d: -f1,3 > passwd.unix → /etc/passwd 에서 unix라는 단어가 들어가는 라인을 추출하고 그 라인에서 필드 구분자를 : 으로 하여 첫번째 필드와 세번째 필드를 추출하여 passwd.unix 라는 파일로 저장한다.
paste -dx filelist
- 여러개의 파일을 조합하여 레코드 형식으로 보여준다. (x는 구분자)
- paste -d: a b c > abc → 필드 구분자를 : 로 하여 파일 a,b,c 의 내용을 파일 abc로 만든다.
wc [option] filename
- 파일 내의 단어 수, 라인 수, 문자 수에 대한 정보
- 옵션 없이 명령하면 -l(line), -w(word), -c(character) 순서대로 출력
- ls /etc | wc -l → /etc 내의 파일 개수
grep [option] "pattern" [file]
- 주어진 문자열로 하나 이상의 파일 내용을 라인 단위로 검색한다.
- -i : 대소문자를 구별하지 않는다.
- -n : pattern을 포함하고 있는 라인을 라인 번호와 함께 보여준다.
- -v : pattern이 들어있지 않은 줄들을 보여준다.
- ps -ef | grep unix | grep sh → ps 명령에 의해 전체 프로세스 목록 중에서 unix가 있는 라인을 추출하고 그 결과에서 sh를 포함하고 있는 라인을 추출하여 출력한다.
bc
- 계산기
Display Commands
cat [options] file
- 파일을 concatenate (파일내용 보기 / 파일 결합하기)
- 파일은 절대경로 또는 상대경로로 지정할 수 있다.
- -v : 파일에 포함되어 있는 제어 문자도 보여준다.
- -e : 각 라인의 끝을 $로 보여준다. (반드시 -v와 함께 사용한다.)
- -t : 탭 문자를 ^i 로 보여준다.
- -vet : 화면상에 표시 불가능한 문자들을 보여준다.
cal [month[year]]
- 그냥 cal → 현재 달의 달력이 출력, cal 2019 → 해당 년도의 전체 달력이 출력
echo [text string]
- 문자열을 stdout 으로 echo
- echo 'date' 는 date라는 문자가 출력, echodate(틱) 은 date 로 출력되는 값이 출력 (날짜와 시간이 출력)
- echo 'hello' 와 echo hello 는 동일하게 출력된다.
head [-number] file
- 파일의 처음 10줄을 출력
- head -15 /etc/profile → 15줄을 출력
finger [username]
- 사용자에 대한 정보를 출력
- finger → 사용자 목록과 정보 출력, finger user → user에 대한 정보 출력
tail [options] file1
- 파일의 마지막 몇 라인을 출력
more [options] file1
- 파일을 페이지 기반으로 탐색 (cat 은 한꺼번에 출력)
less [options] file1
- 파일을 페이지 기반으로 탐색
- space bar → 다음 화면 보기, return → 한 라인 더보기
- q → 종료, b → 한 화면 앞으로 가기, /word → word 검색
man [keyword]
- 명령어의 사용법 (manual)을 보여줌
- spacebar → 다음페이지, return key → 다음 라인, q → 종
sleep time
- time(초) 단위로 잠시 프로세스를 멈춘다.
- sleep 10 ; cal 1997 → 10초 동안 멈춘 후 cal 1997을 실행한다.
System Resource Commands
whereis [options] command
- command 라는 이름을 가진 실행, 소스, 매뉴얼 페이지 위치에 대한 정보 출력
which command
- 명령어나 alias 의 경로정보 출력
- which는 실행할 수 있는 명령(유틸리티) 의 경로를 출력 /bin/..
- whereis 는 유틸리티의 경로를 출력 /usr/bin ...등
who [am i]
- 누가 로그인을 했고, 어떤 프로세스가 수행중인지 정보 출력
- 시스템에 로그인한 사용자와 단말기 포트, 로그인 시간 등 출력
- who am i → 현재 사용자 본인의 로그인 이름
- whoami → 시스템이 로컬단말기 포트와 연관시킨 사용자이름
chsh username login_shell
- 사용자의 로그인 쉘 변경
date [options]
- 현재 날짜와 시간 출력
df [options] [resource]
- 디스크 블록과 inode 정보 출력
du [options] [dir or file]
- 사용중인 디스크 공간의 양 출력
hostname
- 현재 시스템의 이름 출력
kill [options] [-SIGNAL] [pid#] [%job]
- (pid#)를 가진 프로세스나 (%n) 정보를 가진 프로세스에게 시그널을 보냄. 디폴트 시그널은 kill
ps [options]
- 실행중인 프로세스의 상태 보여줌
script file
- exit 이 실행될 때 까지 화면에 나타나는 모든 것을 file에 기록
uname [option]
- 현재 사용중인 unix 시스템에 대한 정보를 알려준다 (unix name)
- unix 이름, 버전, 현재 사용중인 하드웨어 이름, host 이름 등 출력
- -a : 모든 정보 다 출력
stty [argument]
- 현재 표준 입력 장치에 대한 터미널 입출력 옵션 보거나 설정 (set tty)
- stty erase ^h → 명령어 입력시 한글자를 지울때 ctrl + h를 사용하도록 설정함
- stty -echo → 입력되는 문자가 화면에 나타나지 않게 한다.
- stty echo → 입력되는 문자가 화면에 나타나게 한다.
Working with Files
cmp [options] file1 file2
- 두개의 파일 비교, 다른 부분 출력 (text, binary files)
diff [options] file1 file2
- 두개의 파일 비교, 다른 부분 출력 (text only)
file [options] file
- 파일의 타입 출력
find dir [options] [actions]
- 타입이나 조건에 맞는 파일 검색
- -name filename : 파일 이름으로 찾는다.
- -atime +n : access time 이 n일 이전인 파일을 찾는다.
- -atime -n : access time 이 n일 이내인 파일을 찾는다.
- -mtime +n : n일 이전에 변경된 파일을 찾는다.
- -mtime -n : n일 이내에 변경된 파일을 찾는다.
- -perm nnn : 파일 권한이 nnn인 파일을 찾는다.
- -type x : 파일 타입이 x인 파일들을 찾는다.
- -size n : 사이즈가 n 이상인 파일들을 찾는다.
- -user username : username 으로 찾는다.
- -print : 찾은 파일의 절대 경로명을 화면에 출력한다.
sort [options] [field number] file1 ..
- 선택된 옵션에 따라 파일의 내용 정렬
- -n : 숫자 값을 기준으로 파일을 정렬한다 (number)
- -r : 정렬 순서를 역으로 한다 (-d : 사전순으로 한다)
- -tx : 필드 구분자를 x로 한다 (treatment)
- -f : 대소문자 구분 없이 정렬한다.
- sort -nt: -k3 < /etc/passwd → /etc/passwd 파일을 : 을 필드 구분자로 하고 세번째 필드를 기준으로 하여 숫자 기준으로 정리하여 보여준다.
-
- : 0개 이상의 문자들과 대체
- [] : [] 안의 한 문자와 대치 ([ab]cd → acd나 bcd를 검색)
- ^/$ : 라인의 처음이나 끝만 검색하게 함
- . : 한 문자와 대치 (b.t 면 가운데 하나의 문자가 어느것이어도 됨을 의미)
uniq [options] file1
- 파일에서 중복된 내용 제거하여 중복된 라인은 한줄만 출력
- 파일 내에서 서로 떨어져 있는 중복 라인을 검색하려면 sort로 정렬하여 검사해야 한다.
- -d : 중복된 라인만 출력
File Archiving, Compression
compress / Uncompress [options] file[.Z]
- 파일 압축 또는 풀기, 압축 파일 확장자는 .Z
- 압축된 파일의 내용을 보려면 zcat이라는 명령어를 사용한다.
gzip / unzip [options] file[.gz]
- 파일 압축 또는 풀기, 압축 파일 확장자는 .gz
od [options] file
- 이진 파일의 dump
tar -key [f device_file] [files...]
- 파일 백업 및 복원하기 (tape archive and restore)
- 특정 디렉토리 아래의 모든 파일을 하나로 묶어주거나 테이프로 백업해주기도 하고, 기록된 파일을 디스크로 복원한다.
- -c : 새로운 tar 파일을 만든다 (create)
- -x : tar 파일에서 추출한다 (extract)
- -t : tar 파일에 기록된 파일의 목록을 출력시킨다 (title)
- -v : 백업하거나 복원할 때 파일 이름을 화면에 보여준다 (verify)
- -cvf : 디스크의 파일을 테이프로 백업
- -tvf : 테이프에 기록된 파일의 목록을 출력
- -xvf : 테이프에 백업된 파일들을 디스크로 재저장
'coding' 카테고리의 다른 글
vi editor cheat sheet / vi 명령어 정리 (0) | 2019.12.08 |
---|---|
File Directory & Linking Files (0) | 2019.12.08 |
Linux Shell 명령어 정리 (0) | 2019.12.08 |
styled-component 와 css 잘 사용하기 (0) | 2019.12.08 |
[C 프로그래밍] 주소록 프로그램 만들기 (0) | 2019.06.13 |