티스토리 뷰
자주 사용하면서도 항상 구글링을 해서 찾았던 리눅스 명령어들을 이제서야 정리를 좀 해보려고 한다.
각 기본 명령어에 대한 설명은 여기에서 매우 자세하게 설명하여, 참고했다.
1. ls (List segments) : 현재 위치의 파일 목록 조회
- ls -l : 파일의 상세정보
- ls -a : 숨김 파일 표시
- ls -t : 파일들을 생성시간순(제일 최신 것부터)으로 표시
- ls -rt : 파일들을 생성시간순(제일 오래된 것부터)으로 표시
- ls -f : 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시
('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등등,,,)
2. cd (Change directory) :디렉터리 이동
- cd [디렉터리 경로] : 이동하려는 디렉터리로 이동 (경로 입력 시 '[', ']'부분은 빼고 입력!)
- cd ~ : 홈 디렉터리로 이동
- cd / : 최상위 디렉터리로 이동
- cd . : 현재 디렉터리
- cd .. : 상위 디렉터리로 이동
- cd - : 이전 경로로 이동
3. touch : 0바이트 파일 생성, 파일의 날짜와 시간을 수정
- touch filename : filename의 파일을 생성
- touch -c filename : filename의 시간을 현재시간으로 갱신
- touch -t 202110291608 filename : filename의 시간을 날짜 정보(YYYYMMDDhhmm)로 갱신
(20211029160 => 2021.10.29.16:08) - touch -r oldfile newfile : newfile의 날짜 정보를 oldfile의 날짜 정보와 동일하게 변경
4. mkdir (Make dirctory) : 디렉터리 생성
- mkdir dirname : dirname이라는 디렉터리 생성
- mkdir dir1 dir2: 한 번에 여러 개의 디렉터리 생성
- mkdir -p dirname/sub_dirname : dirname이라는 디렉터리 생성, sub_dirname이라는 하위 디렉터리도 생성
- mkdir -m 700 dirname : 특정 퍼미션(권한)을 갖는 디렉터리 생성
<파일의 퍼미션>
8진수 | 2진수 | 권한 | 의미 |
0 | 000 | --- | 아무 권한 없음 |
1 | 001 | --x | 실행 권한만 있음 |
2 | 010 | -w- | 쓰기 권한만 있음 |
3 | 011 | -wx | 쓰기,실행 권한 있음 |
4 | 100 | r-- | 읽기 권한만 있음 |
5 | 101 | r-x | 쓰기,실행 권한 있음 |
6 | 110 | rw- | 읽기,쓰기 권한 있음 |
7 | 111 | rwx | 모든 권한 있음 |
예를 들어 '777'의 경우 이진수로 111111111이고 rwxrwxrwx라는 의미를 가지므로 파일 소유자, 소유 그룹, 일반 사용자에게 읽기, 쓰기, 실행의 모든 권한을 주는 설정이다.
5. cp (Copy) : 파일 복사
- cp file1 file2 : file1을 file2라는 이름으로 복사
- cp -f file1 file2 : 강제 복사(file2라는 파일이 이미 있을 경우 강제로 기존 file2를 지우고 복사 진행)
- cp -r dir1 dir2 : 디렉터리 복사. 폴더 안의 모든 하위 경로와 파일들을 복사
6. mv (Move) : 파일 이동
- mv file1 file2 : file1 파일을 file2 파일로 변경
- mv file1 /dir : file1 파일을 dir 디렉터리로 이동
- mv file1 file2 /dir : 여러 개의 파일을 dir 디렉터리로 이동
- mv /dir1 /dir2 : dir1 디렉터리를 dir2 디렉터리로 이름 변경
7. rm (Remove) : 파일 삭제
- rm file1 : file1을 삭제
- rm -f file1 : file1을 강제 삭제
- rm -r dir : dir 디렉터리 삭제 (디렉터리는 -r 옵션 없이 삭제 불가)
8. cat (Catenate) : 파일의 내용을 화면에 출력, 리다이렉션 기호('>')를 사용하여 새로운 파일 생성
- cat file1 : file1의 내용을 출력
- cat file1 file2 : file1과 file2의 내용을 출력
- cat file1 file2 | more : file1과 file2의 내용을 페이지별로 출력
- cat file1 file2 | head : file1과 file2의 내용을 처음부터 10번째 줄까지만 출력
- cat file1 file2 | tail : file1과 file2의 내용을 끝에서부터 10번째 줄까지만 출력
9. redirection ('>', '>>') : 화면의 출력 결과를 파일로 저장
'>' 기호 : 기존에 있는 파일 내용을 지우고 저장
'>>' 기호 : 기존 파일 내용 뒤에 덧붙여서 저장
'<' 기호 : 파일의 데이터를 명령에 입력
- cat file1 firle2 > file3 : file1, file2의 명령 결과를 합쳐서 file3라는 파일에 저장
- car file4 >> file3 : file3에 file4의 내용 추가
- cat < file1 : file1의 결과 출력
- cat < file1 > file2 : file1의 출력 결과를 file2에 저장
10. alias : 자주 사용하는 명령어들을 별명으로 정의하여 쉽게 사용할 수 있도록 설정
alias 별명 = '명령어 정의'
ex) alias lsa = 'ls -a' : lsa를 실행하면 -a 옵션을 갖는 ls를 실행합니다.
unalias lsa
unalias lsa : lsa라는 alias를 해제
11. pwd : 현재 사용하고 있는 디렉토리 경로 확인
- pwd: 현재 작업 중인 디렉토리 경로를 표시
- pwd -P: 심볼릭 링크를 무시하고 실제 디렉토리 경로를 출력
12. su (switch user): 현재 계정을 로그아웃 하지 않고 다른 계정으로 전환하는 명령어
- su : root 사용자로 변경한다.
- su -: root 사용자로 변경하면서 환경변수까지 적용한다.
- su username: username 유저로 변경한다.
- su -username: username 유저로 변경하면서 환경변수까지 적용한다.
13. chown: 파일 또는 폴더의 소유자 변경
chown [옵션] [소유자:소유그룹] [파일 또는 폴더]
- chown -R: 하위 경로의 소유자를 모두 변경한다.
- chown -f: 소유자 변경이 안될 때 오류 메시지를 표출
- chown -c: 변경된 파일을 자세히 표출
- chown -v: 작업 상태를 출력
- chown user1 test.txt : test.txt 파일의 소유자를 user1으로 변경
- chown :users test.txt: test.txt 파일의 소유 그룹을 users로 변경
14. chmod: 파일 권한 변경
해당 명령어는 파일의 read, write, excute 권한을 소유자, 그룹, 그 외 사용자에게 나누어서 부여할 수 있는 명령어이다.
아래 그림은 파일을 사용하는 주체의 종류와 권한의 종류를 나타낸 그림이다. 이는 ls -l 로 파일의 상세 정보를 띄웠을 때 나타나는 권한 정보와 동일하니 반드시 순서를 익혀야 한다.
chmod [OPTION] [MODE] [FILE]
OPTION
-v : 모든 파일에 대해 모드가 적용되는 진단(diagnostic) 메시지 출력.
-f : 에러 메시지 출력하지 않음.
-c : 기존 파일 모드가 변경되는 경우만 진단(diagnostic) 메시지 출력.
-R : 지정한 모드를 파일과 디렉토리에 대해 재귀적으로(recursively) 적용.
MODE
파일에 적용할 모드(mode) 문자열 조합.
u,g,o,a : 소유자(u), 그룹(g), 그 외 사용자(o), 모든 사용자(a) 지정.
+,-,= : 현재 모드에 권한 추가(+), 현재 모드에서 권한 제거(-), 현재 모드로 권한 지정(=)
r,w,x : 읽기 권한(r), 쓰기 권한(w), 실행 권한(x)
X : "디렉토리" 또는 "실행 권한(x)이 있는 파일"에 실행 권한(x) 적용.
s : 실행 시 사용자 또는 그룹 ID 지정(s). "setuid", "setgid".
t : 공유모드에서의 제한된 삭제 플래그를 나타내는 sticky(t) bit.
0~7 : 8진수(octet) 형식 모드 설정 값.
예제는 아래와 같다.
- chmod g+w text.txt: text.txt에 대한 write 권한을 그룹에게 준다.
- chmod o-r text.txt: text.txt에 대한 read권한을 그 외 사용자에게서 뺏는다.
- chmod 777 text.txt: text.txt에 대하여 소유자, 그룹, 그 외 사용자에게 모든 권한을 부여한다.(rwx:111 -> 7)
15. grep: 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 출력해주는 명령어
- grep [옵션] [패턴] [파일명]
[옵션]
-A num, --after-context=num: 특정 문자열로부터 num 이후의 라인까지 출력
-B num, --before-context=num: 특정 문자열로부터 num 이전의 라인까지 출력
-C num, --context=num: 특정 문자열로부터 num 이전,이후의 라인까지 출력 (-A num -B num 과 같다)
--colour, --color=[when]: 특정 문자열을 특정 색으로 표시 ([when] = never, always, auto)
-d action, --directories=action: 특정 디렉토리에서 특정 문자열 검색
-e pattern, --regexp=pattern: 여러 특정 문자열로 검색, 한 번에 2개 이상의 특정 문자열로 검색할 때 사용
-i, --ignore-case: 특정 문자열을 대소문자 구분 없이 검색
-v, --invert-match: 특정 문자열을 제외한 나머지 행을 검색
-w, --word-regexp: 다른 문자열이 포함되지 않은 특정 문자열'만' 검색, 특정 문자열을 하나의 단어로 취급
- grep 'error' text.txt: text.txt에서 error 라는 문자열 찾기
- grep 'error' text.txt text2.txt: text.txt, text2.txt에서 error 라는 문자열 찾기
- grep 'error' *: 현재 디렉토리 내에 있는 모든 파일에서 'error' 문자열 찾기
16. find: 파일 시스템에서 파일을 검색하는 데 사용되는 명령어
find [옵션] [경로] [표현식]
[옵션]
- P: 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용
- L: 심볼릭 링크에 연결된 파일 정보 사용
- H: 심볼링 링크를 따라가지 않으나, Command Line Argument를 처리할 때는 예외
- D: 디버그 메시지 출력
[표현식]
- name : 해당 이름의 파일을 찾음. 해당 이름에는 정규 표현식을 활용할 수 있음
- type : 지정된 파일 타입에 해당하는 파일 검색
- user : 해당 유저에게 속한 파일 검색
- empty : 빈 디렉토리 혹은 크기가 0인 파일 검색
- delete : 검색된 파일 혹은 디렉토리 삭제
- exec : 검색된 파일에 대해 지정된 명령 실행
- path : 지정된 문자열 패턴에 해당하는 경로에서 검색.
- print : 검색 결과를 출력. 검색 항목은 newline으로 구분. (기본 값)
- print0 : 검색 결과를 출력. 검색 항목은 null로 구분.
- size : 파일 크기를 사용하여 파일 검색.
- mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
- maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
- atime : n일 이내에 액세스된 파일을 찾음.
- ctime : n일 이내에 만들어진 파일을 찾음.
- mtime : n일 이내에 수정된 파일을 찾음.
- cnewer file : 해당 파일보다 최근에 수정된 파일을 찾음
[예시]
- find . -name "*test*" : 현재 디렉토리에서 test가 포함되는 파일 찾기
- find . -name "*.txt": 현재 디렉토리에서 .txt 확장자 모두 찾기
- find . -type d: 현재 디렉토리에서 모든 디렉토리 찾기
- find . -name "*test*" -type d: 현재 디렉토리에서 test가 들어가는 디렉토리 찾기
- find . -type f: 현재 디렉토리에서 모든 파일 찾기
17. ps: 현재 돌아가고 있는 프로세스를 확인할 수 있는 명령어
ps [옵션]
[옵션]
- -e: 모든 프로세스 출력
- -f: 풀 포맷으로 보여준다. (UID, PID 등)
- -l: 긴 포맷으로 보여준다.
- p, -p: 특정 PID의 프로세스를 보여준다.
- -u: 특정 사용자의 프로세스를 보여준다.
[예시]
- ps -ef: 모든 프로세스를 풀 포맷으로 출력
- ps -ef | grep 'tomcat' : tomcat 이라는 이름을 가지고 있는 모든 프로세스를 출력
18. tail: 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력해주는 명령어
tail [옵션] [파일명]
[옵션]
- -f : tail을 종료하지 않고 파일의 업데이트 내용을 실시간으로 계속 출력한다.
- -n (라인 수) : 파일의 마지막줄부터 지정한 라인수까지의 내용을 출력한다.
- -c (바이트 수) : 파일의 마지막부터 지정한 바이트만큼의 내용을 출력한다.
- -q : 파일의 헤더와 상단의 파일 이름을 출력하지 않고 내용만 출력한다.
- -v : 출력하기전에 파일의 헤더와 이름 먼저 출력한 후 파일의 내용을 출력한다.
[예시]
- tail -f mylog.log | grep 192.168.15.86: mylog.log 파일에서 192.168.15.86을 찾아서 출력
- tail mylog1.log mylog2.log: mylog1.log, mylog2.log 각 파일의 마지막 부분을 출
'Support' 카테고리의 다른 글
레지스터 호환 in x86-64 아키텍처 (0) | 2024.05.26 |
---|---|
[troubleshooting] 듀얼 모니터 환경에서 스트리밍 오류 (1) | 2024.02.10 |
[DOS & Batch] batch file Ref (0) | 2022.04.18 |
[Log4j2] Config 파일 <log4j2.xml> (0) | 2022.04.14 |
[git] 현재 개발 중인 프로젝트에서 gitignore 추가가 안될 때 (0) | 2021.07.28 |
- redux-thunk
- 이탈리안 레스토랑
- 파니노구스토
- react-native
- 정보보안기사 #실기 #정리
- Promise
- javascript
- 맛집
- AsyncStorage
- Async
- redux
- await
- 인천 구월동 맛집
- react
- 인천 구월동 이탈리안 맛집
- Total
- Today
- Yesterday