폴더 = 디렉토리
현재 사용자의 홈 디렉토리를 ‘~’로 표시할 수 있음.
파일과 디렉토리를 둘러볼 때 사용하는 디맨드
- pwd: 현재 위치한 디렉토리(working directory) 확인 (print working directory)
- cd: change directory. 다른 디렉토리로 이동 (cd - : 이전 디렉토리 경로로 이동)
- ls: list. 디렉토리의 내용들을 쭉 리스트해서 보여줌.
절대 경로:
- 루트 디렉토리를 기준으로 어떤 파일이나 디렉토리의 고유한 경로를 표시하는 것
- ~: 홈 나타내는 경로
- 📢 dir과 /dir은 다른 경로를 나타냄. /dir은 루트 디렉토리 안에 있는 dir 디렉토리를 뜻함.
상대 경로:
- 현재 자신이 위치해 있는 디렉토리 기준으로 경로를 나타내는 것
- 현재 경로를 ‘.’으로 표시 (’/’로 경로 시작하지 않으면 ‘.’없어도 자동으로 상대 경로로 인식)
- 상위 디렉토리는 ‘..’임. 두번 상위 디렉토리는 ../..
- 상위 디렉토리로 올라가서 다른 경로로 가려면 cd ../(디렉토리이름)
ls 의 중요한 옵션들
- ls -a: 숨겨진 파일들을 보여줌. 보통 컴퓨터가 자동으로 설치한 파일들
- 숨겨진 파일들은 확장자가 없음(.txt같은. 물론 일반 파일들도 확장자 없을 수 있음)
- ls -l: (long format) 파일들의 추가 정보를 보여줌
- :/dev$ ls -al
total 4 (←디렉토리의 내용들의 용량)
drwxr-xr-x 8 root root 2940 Sep 11 18:46 block
-
d: directrory, -: 일반 파일
-
rwxr-xr-x: 권한 관련 내용. 조회, 실행, 수정 등
-
8: 이 파일과 연결된 링크의 개수
-
root: 파일의 소유자
-
root: 소유자가 속한 그룹
-
2940: byte (유닉스 파일 시스템과 관련된 용량으로, 실제 컴퓨터 용량과 다름)
-
Sep 11 18:46: 파일의 마지막 수정 날짜
-
block: 파일 이름
root 디렉토리 안에 존재하는 디렉토리들
/bin
: 'binaries’. 컴퓨터가 실행할 수 있는 프로그램. ls 프로그램도 /bin 안에 있음
/sbin
: 관리자 전용 프로그램들이 있음
/etc
: 컴퓨터 설정 파일(각종 프로그램 설정 파일, 관리자 권한 등) 존재
/home
(리눅스) 또는 /Users
(맥 OS) : 사용자들의 홈 디렉토리(사용자의 모든 파일을 저장해 놓는 곳)
- 참고로 맥 OS /home 에는 아무 파일도 없음
/usr
: 유저에게 필요한 파일들을 저장.
/bin
에는 컴퓨터가 시작하거나 자신을 수리하기 위해서 꼭 필요한 커맨드들이 있고, /usr/bin
에는 컴퓨터가 필요하기보다는 사용자가 필요한 커맨드들이 있음
디렉토리와 파일 만들기: mkdir, touch
- mkdir ~/unix_practice (or) mkdir unix_practice ← 홈 디렉토리 안에 디렉토리 만드는 커맨드
- mkdir Sep Jul Aug ← 3개 디렉토리 동시에 만듦
- touch finances.txt performance.txt ← 2개 파일 동시에 만듦
- touch Sep/finances.txt Sep/performance.txt ← Sep 디렉토리 안에 만들기
- 참고로, touch는 파일에 접근해서 파일에 마지막 접근 시간 등을 수정하는 커맨드인데, 파일이 없으면 직접 만들기 때문에 파일을 생성할 때도 쓰임
CLI 텍스트 에디터 vim(파일에 내용 작성하기)
- if GUI 환경이였다면? Micrisoft Word, VS code, PyCharm, 메모장 같은 기능
- CLI 전용 텍스트 에디터를 사용해야 함 → vim
- vim : 아무 argument 없이 실행하면 새 파일 만듦. argument 주면 그 파일을 수정함
- vim의 4가지 사용 모드
- 일반 모드(Normal Mode) :
- 처음 열면 실행되는 모드. 다른 모드로 갈 때도 항상 일반 모드를 거쳐야 함.
- 입력모드로 가려면 ‘i’, 비주얼 모드 ‘v,V’, 명령 모드 ‘:’ 로 갈 수 있음.
- esc 키 누르면 일반 코드로 돌아옴
- 입력 모드(Insert Mode) :
- 비주얼 모드(Visual Mode) :
- 글자 단위로 선택하려면 v, 문장 단위로 선택하려면 V.
- 텍스트 복사(y), 붙여넣기(p), 잘라내기(d)
- 텍스트를 한 줄씩 붙여넣거나 잘라낼 때는 비주얼 모드 킬 필요 없이 yy, pp 누르면 됨
- 명령 모드(Command Mode) :
- 파일 저장하기(:w), 종료하기(:q) + enter
- :w (파일이름).txt ← 이렇게 파일 이름 지정해줘야 저장 가능. 파일 수정할 때는 필요 없음.
- :q! ← 파일을 수정하지 않고(즉, 수정한 텍스트 저장 안하고) 나가기
파일 내용 살펴보기: cat, less, head, tail
- cat: concatenate(이어붙이다). 파일 조회.
- 알규먼트로 조회할 파일 입력하면 됨.
- 여러 파일을 알규먼트로 주면 이어서 두 파일 내용을 볼 수 있음
- less: 파일 내용을 페이지 단위로 보여줌
- 방향키 사용하면 됨.
- SPACE BAR or f 키로 다운페이지
- b로 이전 페이지
- ‘G’ 누르면 마지막 페이지로 이동
- ‘q’ 눌러서 종료)
- head, tail: 파일의 시작 부분이나 끝부분 확인할 때 사용
- head -n 5 (파일이름.txt)
- -n 사용해서 확인할 줄 개수 설정할 수 있음. 위처럼 하면 위에 5줄 보여줌.
파일과 디렉토리 옮기기, 이름 변경하기: mv
- mv path1(작업할 대상의 경로) path2(이동할 목적지 or 변경할 이름)
- path2 에서 이미 존재하는 경로일 경우 목적지가 이동하고, 경로가 없으면 path2로 이름이 변경됨
- -i option
- mv 커맨드를 사용 시 기존 파일을 덮어쓰는 문제가 발생할 수 있음
(ex: mv test1.txt test2.txt → test1 이 test2를 덮어써버림)
- 이렇게 충돌이 발생했을 시 대처를 위해 보통 -i 옵션과 함께 사용함
- mv -i test1.txt test2.txt → 파일을 덮어쓸지 말지 선택지 나타남
디렉토리와 파일 복사 붙여넣기: cp
- cp path1(복사할 대상의 경로) path2(복사할 위치)
- path2가 이미 존재한다면 그 안으로 복사됨
- 없다면 path2 이름을 가진 파일or디렉토리 생성
- -i option 사용 권장(overwrite 방지)
- 디렉토리를 복사할 때는 옵션 -r 을 함께 사용해줘야 작동함 (디렉토리 안에 존재하는 여러 파일을 한번에 복사하기 위해 사용함)
디렉토리와 파일 삭제하기: rm(remove)
- re (알규먼트)
- re -r (디렉토리)
- re -i (파일을 지울건지 확인 메세지 뜸. -ri 면 디렉토리에 있는 파일 하나씩 검토해줌)
- -f : 어떤 상황에서도 정말 지울건지 확인하지 않고 지움.