티스토리 뷰
1. Directory 구조
(1) Directory의 구조
* Directory는 folder이다.
ls /User/junho 같이 사용하며, Mac OS에서는 open . 을 사용하여 해당 위치에 대한 default viewer를 열 수 있다.
/User/junho/ruby/projects 같은 경우, ~/ruby/project와 동일하다.
~는 Home directory를 뜻하고, 이는 과거 초장기의 몇 키보드에서 ~와 home키가 같이 되어 있었기 때문에 ~가 home directory를 가리키게 된 것이다.
(2) sudo 명령어
먼저 opt directory란 로컬 시스템 관리자 용으로 예약되어 있기 때문에, 해당 /opt에 대한 기본 사용 권한은 소유권 root에 있다.
따라서 $ touch /opt/foo 를 실행하면 permission denied라고 뜨는데, 이는 normal user는 /opt를 modify할 권한이 없다. 이때 이 modify를 허가 해 주는 명령어가 sudo이다.
※ 주의 : 모든 unix directories는 root directorydml sub-category이고, backslash가 아닌 /(forward slash)를 사용한다.
2. Directory 생성
(1) Directory 생성
file을 만드는것은 touch를 사용하거나, 안의 내용을 >(redirect character)를 통해 만들었다.
Directory를 생성하는 명령어는 mkdir 명령어이다.
Directory를 복사하는 명령어는 파일과 마찬가지로 mv를 사용한다.
예를들어 text_files라는 directory에 해당 위치의 txt파일을 옮기려 한다면, mv *.txt text_files/ 라 입력 하면 된다.
또한 ls의 -d를 사용하여 디렉토리에 대한 정보를 -l 옵션과 같이 사용해서 알 수 있다.
mkdir -p 옵션을 통해 mkdir -p foo/bar/baz 등 한번에 subcategory들을 만들 수 있다.
(2) Directory 변경 : cd(change directory) 명령어를 사용한다.
cd text_files/ 를 통해 현재의 directory(home)에서 text_files로 이동할 수 있고,
pwd(print working dirctory) 명령어를 통해 현재 파일 위치를 알 수 있다.
3. Navigating Directories
(1) cd명령어를 통해 directory 변경
..는 상위 디렉토리, .(dot)는 현재 디렉토리를 가리킨다.
따라서 cd .. , cp ~/text_files/등으로 directory 변경이 가능하다.
cd - 는 이전 위치했던 directory로 이동하기 때문에 directory switching 할때 많이 쓴다.
(2) cp명령어를 통한 directory 복사
cp ~/text_files/sonnets.txt . 를 통해서 . (현재 디렉토리)에 text_files 폴더안의 sonnets.txt를 복사 할 수 있다.
(3) find 명령어를 통해 파일 이름 검색
find <directory> -name '*.txt' : txt로 끝나는 파일 이름을 dirctory에서 찾아 보여 준다.
find 명령어에도 많은 옵션들이 있지만 -name을 통해 이름 검색하는것이 대부분이다.
(4) command를 결합시키기
:나 &&를 통해 command를 결합 시킬 수 있다.
command를 combining 시키는 것은 unix 프로그램인 configure와 make를 사용하여 software를 설치 할 때 자주 사용한다.
예를들어 $ ./configure ; make ; make install 과같은 방식으로.
&&와 ;의 차이점은 ;은 이전 command의 성공 여부 상관없이 모두 실행되지만, &&는 이전 command가 성공해야 실행 되므로 이전 command가 다음 command에 영향을 줄 수 있기 때문에 &&를 주로 쓴다.
cd - 와 &&를 결합해서 많이 쓴다고 한다.
4. Directory 복사, 삭제 및 이름 변경 (renaming, copying and deleting)
Directory에 대한 복사(cp), 삭제(rm), grep 명령어는 -r(recursive) 옵션을 사용 한다.
(1) 복사 : cp -r <복사할디렉토리> <붙혀넣을디렉토리> 를 통한 dircetory 복사
(2) 이름변경 : mv를 통해서. 따로 옵션 필요 없으며 파일 이름 변경과 사용 동일하다.
※ / (trailing slash)의 유무에 대한 차이
: /는 mv나 cd 명령어를 사용할 때에는 중요하지 않다. cd foo나 cd foo/나 동일하게 적용된다.
하지만 cp명령어에서는 끝 trailing slash의 유무가 중요한데, 예를들어 text_files를 복사한다고 했을때,
cp -r ../text_files . 와 cp -r ../text_files/ . 는 차이가 있다.
전자는 text_file directory 전체를 현재 위치에 복사하는 것이지만 후자는 text_file안의 파일들을 현재 위치에 복사하는 것이다.
따라서 안 파일들을 복사 할 때에는 cp -r ../text_files/ . 를 사용하는 것 보다, cp -r ../text_files/* . 를 통해 명시해 주는 것이 좋다.
(3) 삭제 : rmdir 명령어를 통해서 directory를 삭제 할 수 있다. 하지만 rmdir이 적용 되는 것은 directory가 비었을 때만 적용이 되므로, rmdir보다는 대부분 안의 content까지 삭제 가능한 rm -r 명령어를 많이 사용 한다.
하지만 rm -rf 명령어는 directory 뿐만 아니라 파일도 모두 삭제 하므로 사용할때 정말 조심해야 한다.
(4) Directory에서 grep의 활용
grep의 -r 명령어를 통해서 찾는 내용과 일치하는 파일의 위치를 알 수 있다.
grep -ri <string> <directory>를 사용하면 directory 내에서 string이 포함된 파일이 있는 파일의 위치를 알려준다.
(보통 찾는 단어의 대소문자 구별하지 않기 때문에 -ri형태로 많이 쓴다.)
따라서 특정 내용이 어느 파일에 있는지 모를때 쓰면 유용하다.

<추가 정리 할 것 : http에 대하여>
출처 : https://websetnet.net/ko/linux-what-is-opt-directory-and-how-to-open-opt-directory/
https://www.learnenough.com/command-line-tutorial
Learn Enough Command Line to Be Dangerous
A tutorial introduction to the Unix command line
www.learnenough.com
'Programming > Command Line' 카테고리의 다른 글
Github SSH 원격 접속을 통한 토큰 없이 push하기 (0) | 2022.01.07 |
---|---|
기본적인 Git 사용법 (0) | 2022.01.05 |
Command Line - Inspecting Files (0) | 2021.07.05 |
Command Line - Manipulating files (0) | 2021.07.02 |
Command Line Basics (0) | 2021.07.01 |
- Total
- Today
- Yesterday