복사, 붙여넣기

cp(copy) 커맨드는 아규먼트로 파일이나 디렉토리 경로 두 개를 받는다.

첫번째 아규먼트는 복사할 대상의 경로, 두번째 아규먼트는 복사할 위치이다.

여기서 두번째 아규먼트 이미 존재할 경우 그 안으로 복사, 아니라면 두번째 아규먼트 이름을 가진 파일 또는 디렉토리가 생성된다.

  • cp [원본 파일 이름] [옮길 파일 이름]
  • cp [원본 파일 위치/원본 파일 이름] [옮길 파일 위치/옮길 파일 이름]
  • cp [원본 파일 이름] [옮길 파일 위치]
  • cp -r [디렉토리명] [옮길 파일 위치]

동일 디렉토리 안에서 파일 복사하기

reports $ ls /* reports 디렉토리가 현재위치, 리스트를 보여줘 */
Aug  Jul  Oct  Sep

$ cd Jul /* Jul 디렉토리로 이동 */
$ ls /* 리스트 보여줘 */
finances.txt  performance.txt

$ cat finances.txt /* finance 파일 내용 보여줘 */
2024 Jul Finance Report%
$ cat performance.txt /* performance 파일 내용 보여줘 */
2024 Jul Performance Report% 

$ cp finances.txt finances2.txt
/* cp = 복사하겠다. finances파일을 finances2 라는 이름으로 */

$ ls /* 리스트를 확인해보니 복사가 잘 되어있다. */
finances.txt  finances2.txt  performance.txt

$cat finances2.txt /* finances2 파일의 내용을 살펴보자 */
2024 Jul Finance Report%

다른 디렉토리로 파일 복사하기

/* Jul 디렉토리 안에 있는 상태에서 Aug로 파일을 복사해보자. */

Jul $ ls ../Aug
finances.txt  performance.txt

cp 커맨드는 mv 커맨드와 비슷하게 목적지에 똑같은 이름의 파일이 있으면 덮어쓴다. 덮어쓰기를 방지하고 싶다면 이 때도 i 옵션을 사용하면 된다.

Jul $ cp -i finances.txt ../Aug
/* Jul 안에 있는 finances 파일을 Aug 디렉토리로 복사하라는 의미 */
overwrite ../Aug/finances.txt? (y/n [n])?
/* 파일을 덮어쓸 것인지 묻는다. */

디렉토리 복사하기

Jul $ cd .. /* Jul 디렉토리에서 부모 디렉토리로 이동 */
reports $ ls
Aug  Jul  Oct  Sep
$ cp Jul Jul_copy /* Jul 디렉토리를 Jul_copy로 복사하기 */
cp: Jul is a directory (not copied)
/* 복사가 되지 않는다는 멘트가 출력된다. */

디렉토리를 복사할 땐 r(recursive)옵션을 사용해야 한다.

$ cp -r Jul Jul_copy
$ ls
Aug  Jul  Jul_copy  Oct  Sep

삭제

rm(remove)커맨드는 삭제할 파일 또는 디렉토리 경로를 아규먼트로 받는데 경로를 여러개 줄 수 있다.

  • rm [지울 파일 이름]
  • rm -r [지울 디렉토리명]

파일 지우기

$ ls
reports  warning
$ cd warning
$ ls
test1.txt  test2.txt

$ rm test1.txt
$ ls
text2.txt

디렉토리 지우기

warning $ cd ..
$ ls
reports  warning

$ rm warning
rm: warning: is a directory
/* 디렉토리를 지우려고 하니 오류가 발생한다. */

복사 할 때와 마찬가지로 디렉토리를 지울 때는 r 옵션을 사용해야 한다.

$ rm -r warning
$ ls
reports

mv나 cp는 목적지에 똑같은 이름을 가진 파일이나 디렉토리가 있으면 그걸 덮어쓰기 때문에 덮어쓰기 전에 확인을 하기 위해서 i 옵션을 사용했다. rm에도 i 옵션이 있는데 각 파일을 지우기 전에 확실히 지울것인지를 물어본다.

$ cd reports
$ ls
Aug  Jul  Jul_copy  Oct  Sep

$ rm -ri Jul_copy
/* 확실히 지울건지 묻는 i 옵션과, 디렉토리를 지우기 위한 r 옵션을 같이 사용했다. */
examine files in directory Jul_copy? y
/* Jul_copy 안에 있는 파일들을 하나씩 살펴볼건지 묻는다. yes를 하고 살펴보면 */

remove Jul_copy/finance2.txt? y
/* 각 파일을 지울것인지 묻는다. */
remove Jul_copy/performance.txt? y
remove Jul_copy/finance.txt? y
remove Jul_copy? y /* 디렉토리 자체를 지울건지도 묻는다. */

$ ls
Aug  Jul  Oct  Sep

디렉토리를 지울 때는 안에 뭐가 있는지 알고 지우기 때문에 i옵션이 그렇게 유용하지는 않지만 파일 하나씩 확인하며 지우고 싶다면 i 옵션을 사용할 수 있다. 반대로 파일을 지울것인지 확인하지 않고 바로 지우는 f옵션도 있다. 예를들어 읽기 전용 파일을 지울 때는 보통 이 파일을 지울 것인지 물어보는데 f옵션을 사용하면 물어보지 않고 바로 지운다.

그래서 특히 디렉토리를 지울 때는 rm -rf path/to/dir 등 r과 f 옵션을 같이 쓰는 경우가 많다.

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

옮기기 , 이름 변경하기 : mv  (0) 2024.12.07
파일 내용 살펴보기  (0) 2024.12.07
CLI 텍스트 에디터 : Vim  (1) 2024.12.07
디렉토리와 파일 생성하기  (0) 2024.12.07
필수 디렉토리  (1) 2024.12.07

mv 커맨드는 아규먼트로 파일이나 디렉토리 경로 두 개를 받는다.

첫번째 경로는 작업할 대상의 경로, 두번째 경로는 이동할 목적지 또는 변경할 이름이다.

여기서 두번째 경로가 이미 존재하는 디렉토리의 경로일 경우 디렉토리 안으로 이동되고 그렇지 않으면 이름이 변경된다.

  • mv [원본 파일 이름] [바뀔 파일 이름]
  • mv [원본 디렉토리 이름] [바뀔 디렉토리 이름]
  • mv [이동할 디렉토리 이름] [이동할 디렉토리가 도착할 디렉토리 이름]
  • mv [옮길 디렉토리의 부모 디렉토리/옮기고자 하는 디렉토리] [옮기는 위치]
  •  

이미 존재하는 파일의 이름 바꾸기

reports $ ls
Jul  Aug  Sep

$ cd Sep /* sep 디렉토리로 이동 */
$ ls /* Sep 디렉토리의 리스트 확인 */
finances.txt    performane.txt

/* performane.txt를 performane2.txt 파일로 변경해주자 */
$ mv performane.txt performane2.txt 
/* performane.txt = 작업할 대상, performane2.txt = 변경할 이름 */

$ ls 
finances.txt    performane2.txt

이미 존재하는 디렉토리의 이름 바꾸기

Sep $ cd ..
/* 한단계 위에 있는 부모 디렉토리로 이동 */
$ ls
/* 부모 디렉토리로 이동한 뒤 리스트 확인 */
Jul  Aug  Sep

$ mv Sep Oct
/* 이미 있는 Sep이라는 디렉토리를 Oct로 이름 변경 */
$ ls
Jul  Aug  Oct

디렉토리 옮기기

$ mv Jul Aug
/* Jul 디렉토리를 Aug 디렉토리 안으로 이동한다는 뜻 */
$ ls
Aug  Oct

$ ls Aug
Jul  finance.txt  performance.txt

옮긴 디렉토리 다시 꺼내오기

$ ls
Aug  Oct

$ ls Aug
Jul  finance.txt  performance.txt

$mv Aug/Jul .
/* Aug디렉토리 안에 있는 Jul디렉토리를 .(현재위치)로 옮기겠다 */

$ ls
Aug  Jul  Oct

$ ls Aug
finance.txt  performance.txt /* Jul 디렉토리 사라짐 */

+주의사항

mv 커맨드는 똑같은 이름의 파일이 목적지에 있을 경우 아.묻.따 덮어쓴다.

$ ls
reports  warning

$ cd warning
/* warning 디렉토리로 이동 */

warning $ ls /* 리스트 확인 */
test1.txt  test2.txt

$ cat test1.txt /* test1.txt 파일의 안을 전체 다 보여줘 */
test file 1%
$ cat test2.txt
test file 2%

$ mv test1.txt test2.txt
/*test1 파일을 test2 파일에 덮어쓴다.*/

$ ls
tset2.txt

$ cat test2.txt
test file 1%
/* tset1의 파일이 덮어써지면서 안에 test2에 있던 내용이 test1의 내용으로 덮어써졌다. */

이런 현상을 방지하고 싶다면 i(interactive)옵션을 활용하면 된다. 만약 충돌이 있으면 사용자에게 어떻게 할 것인지를 묻는 것.

$ touch test1.txt /* test1 파일 생성 */
$ ls /* 리스트 확인 */
test1.txt  test2.txt

$ mv -i test1.txt test2.txt /* i 옵션을 사용해서 mv 커맨드 사용 */
overwrite test2.txt? (y/n [n])
/* 파일을 덮어쓸 것인지 묻는 멘트가 출력 덮어쓰려면 y, 취소는 n을 입력하자 */

overwrite test2.txt? (y/n [n]) n /* 덮어쓰기 취소 */
not overwritten /* 덮어쓰지 않았다. */

$ ls
test1.txt  test2.txt

mv 커맨드를 안전하게 사용하고 싶다면 i 옵션을 꼭 활용하자

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

복사, 붙여넣기, 삭제 :cp, rm  (0) 2024.12.08
파일 내용 살펴보기  (0) 2024.12.07
CLI 텍스트 에디터 : Vim  (1) 2024.12.07
디렉토리와 파일 생성하기  (0) 2024.12.07
필수 디렉토리  (1) 2024.12.07
cat less head tail
파일을 조회할 때 굉장히 자주 사용하는 커맨드, 한꺼번에 출력 파일 내용을 페이지 단위로 나눠서 보여준다. 파일의 시작 부분 확인 파일의 끝 부분 확인
cat hello_world.txt less hello_world.txt head hello_world.txt tail hello_world.txt
내용을 전체 다 볼 수 있다. ⬆️,⬇️ : 한 줄 씩 이동가능
space, f : 다음페이지로
b : 이전페이지로
G : 마지막 페이지
g : 첫 페이지
q : 종료
파일의 처음 10줄이 보인다. 파일의 마지막 10줄이 보인다.
concatenate : 이어붙이다 파일 내용이 엄청 길다면 less로 나누어 보면 된다. head - n 5 hello_world.txt
파일의 처음 5줄이 보인다.
tail - 8 hello_world.txt
파일의 마지막 8줄이 보인다.
아규먼트를 이어서 써줄 수 있다.   출력할 줄 개수를 n 옵션의 아규먼트로 넘겨주면 된다.  

 

GUI 환경 : Microsoft Word, VS Code, Pycharm, 메모장 등 다양한 텍스트 에디터가 있다.
CLI 환경: Vim

Vim : ✅엄청나게 많은 기능과 단축키 ⛔모든걸 마우스 없이 키보드로 해결

$ mkdir ~/unix_practice
/* 유닉스 연습 디렉토리 생성 */
$ cd unix_practice
/* 유닉스 연습 디렉토리 이동 */
unix_practice $ vim
/* 아무 아규먼트 없이 실행하면 새로운 파일을 만들고, 파일 경로를 아규먼트로 주면 그 파일을 수정한다. */

vim 실행

여기서 글자를 작성하려고 키보드를 눌러봐도 글자는 작성되지 않는다. 지금은 입력모드가 아니기 때문에 텍스트를 입력할 수 없는데 Vim에는 네가지 모드가 있다.

일반모드
(Normal)
입력모드
(Insert)
비주얼모드
(Visual)
명령모드
(Command)
커서이동 텍스트 입력 텍스트 블록 지정 내용 저장
텍스트 붙여넣기   텍스트 복사 Vim 종료
작업취소      
esc i V, v :

사용자가 어떤 모드에 있는지에 따라 같은 키를 눌러도 다르게 해석된다. Vim을 처음 열면 일반모드로 실행되고, 다른 모드로 가려면 항상 일반모드를 거쳐야 한다.

모드별 이동할 때 단축키
입력(insert)모드로 변경 후 텍스트를 입력해보았다.

텍스트 복사, 잘라내기

입력(insert)모드로 글자를 작성 해준 뒤, 다시 일반모드로 나와준다. 그리고 복사를 시작하고 싶은 부분으로 커서를 이동한다. 이제 비주얼 모드로 전환하면 되는데, 줄 단위로 복사를 하고 싶으면 대문자 V, 글자 단위로 복사하고 싶으면 소문자 v를 사용한다.

만약 대문자 V를 이용해 줄을 복사하고, 커서를 움직여서 복사하고 싶은 줄들을 선택한 뒤, y 키를 누르면 복사가 된다. 그리고 커서를 원하는 위치에 두고 p를 누르면 복사가 된다.

잘라내기는 잘라내고 싶은 부분에 커서를 두고 V나 v + 커서를 움직여 잘라내고 싶은만큼 선택하고, d를 누르면 잘라내기가 된다. 붙여넣기는 똑같이 p를 누르면 된다.

한 줄씩 잘라내거나 복사할때는 비주얼모드로 갈 필요 없이 커서를 원하는 위치에 두고 yydd를 누르면 복사, 잘라내기가 가능하다. 여전히 붙여넣기는 p이다.

내용저장 및 Vim 종료

:(콜론)으로 명령모드에 들어왔다면 w와 q를 기억해주면 된다. w는 파일을 저장할 때 쓰이고, q는 Vim을 종료할 때 쓰인다.

새로운 파일을 작성중이라 파일에 이름이 없어 저장이 안된다는 의미이다. 그럴땐 오른쪽 사진처럼 파일의 이름을 만들어주면 된다.

만약 : w를 했는데 error가 난다면 이름을 만들어서 저장해주면 된다.

파일 저장이 잘 됐다는 표시

unix_practice $ ls
hello_world.txt reports

Vim을 유닉스 연습 디렉토리 안에서 실행했기 때문에 유닉스 연습 디렉토리에 파일이 저장됐다.

unix_practice $ vim hello_world.txt
/* 아무 아규먼트 없이 실행하면 새로운 파일을 만들고, 파일 경로를 아규먼트로 주면 그 파일을 수정한다. */

vim 후에 아규먼트를 주면 그 파일로 들어가 수정이 가능하고, 수정을 완료 한 뒤에는 :wq로 저장 후 Vim을 종료할 수 있다.

혹시 파일을 수정했는데 저장하지 않고 나가려고 한다면 이런식으로 에러가 뜨는데, 만약 저장을 안하고 Vim을 나가고 싶은 경우엔 !를 사용하면된다. :q! 그러면 변경사항이 저장되지 않고 Vim은 종료된다.

수정사항이 있는데 저장을 안하고 Vim을 종료하려고 할 경우

단축키 정리

  • 텍스트 입력: 입력 모드(i) → 텍스트 입력
  • 텍스트 한 줄 복사: 일반 모드 → 복사하고 싶은 줄에 커서 위치 → yy
  • 텍스트 한 줄 잘라내기: 일반 모드 → 잘라내고 싶은 줄에 커서 위치 → dd
  • 특정 영역 복사: 비주얼 모드(V는 줄 단위, v는 글자 단위) → 복사하고 싶은 영역 커서로 설정 → y
  • 특정 영역 잘라내기: 비주얼 모드(V는 줄 단위, v는 글자 단위) → 잘라내고 싶은 영역 커서로 설정 → d
  • 텍스트 붙여넣기: 일반 모드 → 붙여넣고 싶은 위치에 커서 위치 → p
  • 파일 저장: 명령 모드(:) → w + enter
  • 파일 저장 + vim 종료: 명령 모드(:) → wq + enter
  • vim 종료 (내용 저장되지 않음): 명령 모드(:) → q! + enter

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

옮기기 , 이름 변경하기 : mv  (0) 2024.12.07
파일 내용 살펴보기  (0) 2024.12.07
디렉토리와 파일 생성하기  (0) 2024.12.07
필수 디렉토리  (1) 2024.12.07
디렉토리 구조와 파일 경로  (1) 2024.12.07

mkdir (make directory)

mkdir이라는 커맨드를 사용해서 아규먼트로 새로 만들 디렉토리 경로를 주면 디렉토리를 생성할 수 있다. 절대경로와 상대경로 모두 사용 가능하다.

$ mkdir ~/unix_practice
$ mkdir unix_practice

홈 디렉토리 안에 unix_practice라는 디렉토리를 만들라는 커맨드이다.

$ mkdir Jul Aug Sep

이어 붙여 작성해서 여러 파일을 만들 수도 있다.

touch (touch file)

파일에 손을 대서 파일의 마지막 접근 시간이나 수정 시간을 업데이트 하는 커맨드이지만 파일이 없으면 파일을 생성하기 때문에 파일을 생성할 때도 쓰이는 커맨드이다.

sep $ touch finances.txt performance.txt

spe 파일 안에 finances와 performance 텍스트 파일을 총 2개 생성했다는 의미이다. 만약 여기서 Jul이라는 파일로 이동해서 추가로 파일을 만들어준다고 하면

sep $ touch Jul/finances.txt Jul/performance.txt

..으로 부모디렉토리에 올라가서 Jul 디렉토리로 이동할수도 있지만 이렇게 작성하면 Jul 디렉토리에 바로 파일을 만들어 줄 수있다.

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

파일 내용 살펴보기  (0) 2024.12.07
CLI 텍스트 에디터 : Vim  (1) 2024.12.07
필수 디렉토리  (1) 2024.12.07
디렉토리 구조와 파일 경로  (1) 2024.12.07
🔊명령어  (0) 2024.12.07

/bin

bin은 binary(바이너리)의 약자로, 컴퓨터가 실행할 수 있는 프로그램을 말한다. 커맨드를 입력하면 어떤 동작이 일어나는데 커맨드도 결국 어떤 프로그램입니다. 커맨드를 입력하면 커맨드에 해당하는 프로그램이 실행되는 것. 그리고 그 프로그램들의 일부는 바로 이 /bin 디렉토리 안에 있다.

$ ls -l /bin

/bin 디렉토리의 내용을 살펴보면, ls 같은 파일들이 보이는데, ls 커맨드를 입력하면 /bin 안에 있는 ls 프로그램이 실행되는 것이다.

/sbin

sbin은 bin과 비슷한데, 관리자 전용 프로그램들이 있다.

/etc

etc에는 컴퓨터 설정 파일들이 있는데, 각종 프로그램의 설정 파일, 관리자 권한 설정 파일 같은 것들이 있다.

/home 또는 /Users

/home(리눅스) 또는 /Users(맥 OS) 디렉토리에는 사용자들의 홈 디렉토리가 있다. 사용자의 홈 디렉토리는 사용자의 모든 파일을 저장해 놓는 곳이다.

/usr

usr은 사용자(user)에게 필요한 파일들을 저장하고 있다. /usr 안에도 각종 binary(프로그램 파일)를 저장하고 있는 bin 디렉토리가 있는데, /bin에는 컴퓨터가 시작하거나 자신을 수리하기 위해서 꼭 필요한 커맨드들이 있고, /usr/bin에는 컴퓨터가 필요하기보다는 사용자가 필요한 커맨드들이 있다. 그리고 /usr 안에는 local이라는 디렉토리가 있는데, 여기에는 사용자가 직접 설치한 프로그램과 관련된 파일들이 있다.

디렉토리 : 유닉스 운영체제에서는 폴더디렉토리라고 부른다. 디렉토리라는 용어에 익숙해지도록 하자.

유닉스 디렉토리 구조

  • 최상위 파일 안에는 여러 디렉토리와 파일이 존재한다.
  • 디렉토리 안에 디렉토리가 있을 때 안에있는 디렉토리를 하위 또는 자식 디렉토리라고 한다.
  • 바깥에 있는 디렉토리를 상위 또는 부모 디렉토리라고 한다.

root 최상위 디렉토리

루트 디렉토리는 유닉스 파일 시스템의 최상위 디렉토리로, 모든 파일과 디렉토리의 시작점이다. /로 표시되며, 시스템의 모든 파일과 디렉토리가 이 안에 위치한다

HOME 디렉토리

홈 디렉토리는 각 사용자의 개인 파일과 설정을 저장하는 디렉토리이다. /home 아래에 각 사용자의 이름으로 된 디렉토리가 생성되며, 사용자의 개인 파일이 여기에 저장된다. 사용자의 개인 파일들은 사용자 홈 디렉토리 안에 있고 컴퓨터에 설치된 프로그램이나 컴퓨터에 일반적으로 필요한 파일들은 홈 디렉토리 바깥에 존재한다.

사용자의 홈 디렉토리

개인컴퓨터엔 사용자가 하나일 테니지만 공유 컴퓨터엔 사용자 계정이 여러개 있을 수도 있다. 사용자마다 홈 디렉토리가 주어진다. 홈 디렉토리에는 각종문서나 바탕화면 파일, 다운로드 파일 등이 있다. ~로 표시한다. 특정 사용자의 home 디렉토리 까지의 경로를 줄여서 쓴 것이다.

파일 경로

/usr/bin 를 하나씩 풀어서 해석해보자면 / =root(최상위 폴더)의, usr/ = use폴더의, bin/ = bin폴더 라는 뜻이다.

taeho라는 사용자로 로그인 되어 있다면 home 디렉토리는 /home/taeho 라고 쓸 수 있고, 줄여서 ~로 표기할 수 있다. 만약 태호가 아닌 다른 사용자의 홈 디렉토리라도 ~로 표기되지만 문자열로 표기한다면 /home/codeit 이라고 할 수 있다. 그리고 줄여서 쓴 디렉토리 뒤에도 붙여서 사용할 수 있다. 

/home/taeho = ~
~/Documents = /home/taeho/Documents
~/Document/Projects = /home/taeho/Documents/Projects

절대경로

  • 디렉토리가 위치한 곳을 나타내는 가장 디테일하고 정확한 주소
  • 현재 위치해 있는 곳과 상관없이 늘 같은 의미 가짐

상대경로

  • 디렉토리가 위치한 곳을 현재 위치(워킹 디렉토리)를 기준으로 설명하는 것
  • 현재 위치에 따라 동일한 표현도 다른 의미로 사용 가능
  • 본인의 위치 : 
  • 부모의 위치(한 단계 위) : ..
  • 홈 : ~
$ cd ./Documents/Projects/Javascript

사실 상대경로를 사용할 때 앞에 ./는 안써줘도 된다.
경로가 /(루트)로 시작하지 않으면 자동으로 상대 경로로 인식하기 때문이다.

$ cd Documents/Projects/Javascript
$ cd Documents/Projects/Javascript 
에 위치해 있는데 Projects 안에 HTML 디렉토리로 이동하고 싶다면

$ cd ../HTML
혹은
$ cd ..
$ cd HTML

이렇게 이동할 수 있다.
$ cd Documents/Projects/Javascript
에서 Document의 형제 디렉토리인 Pictures 디렉토리로 이동하고 싶다면

$ cd ../../../Pictures
이렇게 이동해도 되지만 이럴땐 절대경로를 적는게 좀 더 쉽고 직관적이다.
$ cd ~/Pictures
홈에서 Pictures로 이동한다는 뜻이다.

 

+여담

만약 파일 / 디렉토리 이름에 공백이 있으면 어떻게 해야할까?

$ cd hello world
$ ls hello world

hello world가 두개의 아규먼트로 인식되기 때문에 실행했을때 오류가 난다. 이럴 때 해결방법은

1. '작은 따옴표' 사용

2. "큰 따옴표" 사용

3. \ 역슬래시 사용

$ cd 'hello world'
$ cd "hello world"
$ cd hello\ world

***파일이나 디렉토리 이름에는 애초에 공백을 사용하지 않는게 바람직하다.

이유? 공백이 들어가게 되면 커맨드를 입력할 때 쉽게 실수할 수 있고, 커맨드가 제대로 작동하도록 따로 신경을 써줘야 하기 때문이다. 공백 대신 _ 같은 기호를 사용하자.

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

디렉토리와 파일 생성하기  (0) 2024.12.07
필수 디렉토리  (1) 2024.12.07
🔊명령어  (0) 2024.12.07
아규먼트(argument) 와 옵션(option)  (0) 2024.12.04
터미널과 shell  (1) 2024.12.04

✔️ 터미널 이용 팁 (키보드)!

  • ⬆️ : 이전에 작성한 커맨드 입력
  • 커서 이동 :
  • (1) Ctrl + A : 가장 앞 부분 커서 이동
  • (2) Ctrl + E : 가장 뒷 부분 커서 이동
  • (3) Alt + ⬅️ / ➡️ : 단어 단위로 커서 이동
  • Ctrl + C : 실행하고 있는 작업취소 or 커맨드 입력중엔 취소 or 커맨드 실행되는 중에 누르면 작업취소
  • clear 커맨드 : clera을 누른 뒤 엔터 누르면 화면 깨끗해진다. 이전에 작성했던 커맨드 히스토리는 남아있다.
  • Tab(탭) : 지금 작성하고 있는 커맨드나 아규먼트를 자동완성 시켜준다.

🔊명령어

1. date : 현재 시간

2. cal (calendar 달력)

3. man (manual, 매뉴얼) : man 띄우고 검색해볼 커맨드를 아규먼트로 주면 된다.


  • ⬆️, ⬇️ : 한 줄씩 위아래로
  • space, f (forward) : 페이지 단위로 아래로 내린다.
  •  b (backward) : 페이지 단위로 올라간다.
  • q : 메뉴얼 페이지 나가기

  • NAME : 커맨드 이름, 커맨드의 역할 설명
  • SYNOPSIS : 사용할 수 있는 옵션과 아규먼트를 정리
  • [대괄호]로 감싸져 있다는건 필수가 아니고 옵셔널하다는 의미이다. (해당 옵션과 아규먼트를 써도 되고, 안써도 된다.)
  • 꼭 줘야 하는 아규먼트 들은 [대괄호]로 감싸져 있지 않다.
  • -(대시)가 붙은건 옵션이고 아닌것들은 아규먼트이다.
  • [[대괄호1] 대괄호2] : 대괄호1과 대괄호2 라는 아규먼트를 줘도 되는데 아규먼트를 하나만 입력하면 그건 대괄호1이 아닌 대괄호 2에 대한 아규먼트로 인식된다. 아규먼트를 줄 때 대괄호 1은 옵셔널하기 때문이다.
  • DESCRIPTION : 일반적인 설명(윗줄) + 각 옵션에 대한 설명 (아랫줄) + 커맨드에 대한 자세한 설명, 유의사항 등
  • SEE ALSO : 해당 커맨드와 비슷한 커맨드들
  • HITSTORY, AUTHORS, BUGS : 참고할만한 정보들

cal의 man

4. pwd (Print Working Directory) : 현재 위치해 있는 디렉토리(working directory)를 출력(print)

pwd로 확인해보니 현재 위치는 root이다.

5. cd (Change Directory) : 다른 디렉토리로 이동

$ cd : 홈 디렉토리로 이동
$ cd ~ : 홈 디렉토리로 이동

$ cd .. : 현재 위치의 상위 디렉토리로 이동

$ cd /Users/username/Documents : 특정 디렉토리로 이동

6. ls (List) : 디렉토리 안에 무엇이 있는지 알려준다. 

$ ls : 현재 디렉토리의 목록

$ ls -l : 자세한 정보를 추가하여 목록을 보여준다. Long format

$ ls -a : 숨겨진 파일을 포함해서 목록을 보여준다. ALL

$ ls -al : 숨겨진 파일 + 자세한 정보

$ ls /Users/username/Documents : 지정된 디렉토리의 목록을 보여준다.

 

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

필수 디렉토리  (1) 2024.12.07
디렉토리 구조와 파일 경로  (1) 2024.12.07
아규먼트(argument) 와 옵션(option)  (0) 2024.12.04
터미널과 shell  (1) 2024.12.04
커맨드란?  (1) 2024.12.04

커맨드에서는 아규먼트를 줄 수도 있고 옵션을 줄 수도 있다.

Argument(인자) : 어느 대상에 대해 커맨드를 실행할지 정해주는 것

Option(옵션) : 커맨드가 실행되는 방식을 바꾸는 것. -(대시)와 특정 알파벳을 입력하면 된고 동시에 여러 옵션을 사용할 땐 붙여서 사용하면 된다.

cal -j 2024

cal :커맨드
-j :옵션
2024 :아규먼트

cal 커맨드를 j(날짜 대신 1월1일을 기준으로 몇번째 날인지 보여주는 옵션)라는 옵션을 써서 2024년도에 대해 실행한 것이다.
  • 옵션커맨드를 어떻게 실행할지 정하는 것 
  • 아규먼트커맨드의 대상 이라고 생각하면 쉽다.

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

필수 디렉토리  (1) 2024.12.07
디렉토리 구조와 파일 경로  (1) 2024.12.07
🔊명령어  (0) 2024.12.07
터미널과 shell  (1) 2024.12.04
커맨드란?  (1) 2024.12.04

터미널 : 인풋을 받고 아웃풋을 출력해주는 프로그램을 뜻한다. 보통생각하는 커맨드를 입력하는 '검은 화면'을 터미널이라고 할 수 있다.

shell : 커맨드를 해석해 주는 프로그램. 컴퓨터는 date같은 단어를 이해하지 못한다. 그래서 이런 커맨드를 컴퓨터가 이해할 수 있는 형태로 바꿔줘야 하는데 이것이 shell의 역할이다. shell이 date같은 커맨드를 컴퓨터가 이해할 수 있는 형태로 바꿔 전달해 주면,  컴퓨터가 실제로 커맨드를 '실행'하고 결과를 되돌려 주는 것이다.

shell은 여러 종류가 있고 종류에 따라 커맨드를 작성하는 방식이나 제공하는 인터페이스가 조금은 다를 수 있지만 대부분의 경우 아주 비슷하거나 똑같이 작동하기 때문에 크게 상관은 없다.

bash : shell의 한 종류로  Bourne agin shell이라고 부른다. 가장 보편적이고 많은 유닉스 운영 체제에서 기본 shell로 사용된다.

아무튼, shell과 터미널은 엄밀히 말하면 서로 다르지만, 커맨드를 입력하는 '검은 화면'을 그냥 shell이라고 부르는 경우도 많다.

 

'코린이 개념잡기 > 유닉스 커맨드' 카테고리의 다른 글

필수 디렉토리  (1) 2024.12.07
디렉토리 구조와 파일 경로  (1) 2024.12.07
🔊명령어  (0) 2024.12.07
아규먼트(argument) 와 옵션(option)  (0) 2024.12.04
커맨드란?  (1) 2024.12.04

+ Recent posts