리눅스 환경에서 프로그래밍을 하기전에 리눅스 명령어를 잘 알고 있으면 코드를 이해하는데 많은 도움이 됩니다. 우리가 배우는 리눅스 명령어도 결국 C로 짜여진 프로그램이기 때문에 명령어 이름 또는 용어가 라이브러리의 System관련 함수 이름들과 비슷하기 때문입니다.
현재경로의 파일을 출력하는 명령어.
- 모든 파일(숨김파일포함)을 출력하며 list 형태로 출력하는 방법
$ ls -al
- ls 결과가 한줄로 출력됩니다.(나중에 스크립트를 짤 때 사용할 수 있는 패턴입니다.)
ls -1
- 현재경로의 exr 파일을 출력.
$ ls *.exr
- 현재경로에서 1000 프레임의 시퀀스만 검색
$ ls filename.1???.exr
. 문자는 현재경로라는 뜻을 가진 문자입니다.
.. 문자는 상위경로라는 뜻을 가진 문자입니다.
리눅스의 모든 경로는 언제나 현재경로와 상위 경로를 가지기 때문에 ls -al 명령어를 타이핑하면 항상 이 두개의 문자가 먼저 출력됩니다.
$ ls -al
경로를 이동하는 명령어입니다.
- 현재 경로로 이동하는 명령은 아래와 같습니다.
$ cd .
- 상위 경로로 이동하는 명령어입니다.
$ cd ..
- 홈디렉토리로 이동하는 명령어입니다. 사용자는 홈디렉토리에서 작업을 많이 하기 때문에 자주 사용됩니다.
$ cd ~
홈디렉토리 경로를 의미하는 문자입니다.
$ echo ~현재 위치한 경로를 출력합니다.
$ pwd
경로를 구분하는 문자입니다.
/home/username 형태로 리눅스에서는 경로를 표기합니다.
유닉스, 리눅스는 /문자로 폴더를 구분합니다.
윈도우즈는 \ 문자를 경로의 문자로 사용합니다.
- 상위의 상위 경로로 이동하는 명령어는 아래와 같습니다.
$ cd ../..
파일을 복사할 때 사용하는 명령어입니다.
자주 사용하는 옵션은 -f 이며 강제로 덮어쓰기 할 때 사용합니다.
- 홈디렉토리에 있는 test.mov 파일을 /project/review 폴더에 복사하는 예제
$ cp ~/test.mov /project/review
$ cp -f ~/test.mov /project/review # 강제로 덮어쓰기
파일 또는 폴더를 이동할 때 사용합니다.
- /project/foo경로를 /backup 경로로 이동하는 예제입니다.
$ mv /project/foo /backup
디렉토리를 만드는 명령어입니다. -p 옵션을 붙히면 중간에 경로가 존재하지 않더라도 중간 경로까지 만들어줍니다.
$ mkdir ~/project
$ mkdir -p ~/project/foo/bar
.문자를 파일명 또는 디렉토리명 앞에 붙히면 숨김 파일 또는 숨김 폴더가 됩니다.
- 홈디렉토리이 숨겨진 secretdir 폴더를 생성하는 예제입니다.
$ mkdir ~/.secretdir
$ ls -al ~ # ls -al 명령을 이용해야 숨김폴더가 보입니다.
파일을 지울 때 사용합니다. 파일을 지우는 명령어는 프로그래밍 영역을 포함하여 신중히 다루어야 합니다.
-r 옵션은 하위의 모든 경로, -f 는 강제의 의미를 가집니다.
-rf 옵션을 붙히면 하위 모든 경로를 제거합니다.
$ rm foo
$ rm -rf ~/project/foo
디렉토리를 삭제하는 명령어입니다. 내부에 파일이 존재하면 폴더가 삭제되지 않습니다. 보통 노련한 서버관리자는 실수로 생기는 책임을 위해 디렉토리를 제거할 때 rm 명령어보다는 rmdir을 사용합니다.
$ rmdir /project/foo
디스크의 용량을 체크하는 명령어입니다. 하드디스크의 용량이 얼마나 남아있는지 확인할 때 사용합니다.
$ df
$ df -h # 사람이 읽기 쉽게 단위를 변환해 줍니다.
디렉토리 경로의 용량을 체크합니다. -h 옵션을 붙히면 사람이 읽기 쉬운 단위로 변환해서 출력해줍니다.
- 현재 경로의 용량을 체크하는 예제입니다.
$ du .
$ du -h .
- 홈디렉토리에 있는 project 디렉토리 경로의 용량을 체크하는 예제입니다.
$ du -h ~/project
파일내용을 터미널에 출력시킬 때 사용합니다.
- 홈디렉토리에 .bashrc 파일의 내용을 출력하는 예제입니다.
$ cat ~/.bashrc
출력 내용이 많을 때 페이지로 묶어서 출력시켜주는 명령어입니다. | 문자는 리눅스에서 파이프 문자입니다.
|문자를 기준으로 이전 명령어 결과를 다음 명령어의 input에 넣어주는 특징이 있습니다.
$ cat test.txt | more
파일의 앞의 10줄만 출력합니다. 많은 코드들을 상단에 코드에 대한 설명이 있기 때문에 활용하기 head 명령을 활용하기 좋습니다.
$ cat test.txt | head
파일의 뒤쪽 10줄만 출력합니다. 특정파일에 log가 시간순서대로 쌓인다면 보통 맨 마지막 로그를 많이 확인하게 될 때 활용하기 좋습니다.
$ cat test.log | tail
명령어가 어느 경로에 있는지 출력해주는 툴입니다.
$ which ls
/usr/bin/ls
명령어의 위치, 맨페이지 위치를 같이 출력해주는 툴
$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
입력받은 명령어가 어떤 명령어인지 설명하는 명령어입니다.
$ whatis ls
ls (1) - 경로의 내용을 나열한다.
ls (1p) - list directory contents
보통은 다음 두가지 경우에 자주 사용하는 명령어 입니다.
- 0 바이트 짜리 파일을 생성할 때 사용합니다.
- 존재하는 파일의 경우 touch 명령을 통해서 생성시간을 현재 시간으로 변경할 때 사용합니다.
$ touch ~/test.txt
$ ls -al ~/test.txt
몇초 있다가...
$ touch ~/test.txt
$ ls -al ~/test.txt # 파일 생성에 대한 시간이 갱신된것을 확인할 수 있습니다.
입력받은 문자를 출력(STDOUT)하는 명령어입니다.
$ echo "hello linux"
리눅스는 보통 관리자가 아닌 일반 사용자로 로그인하여 사용합니다. 관리자가 꼭 필요한 경우에만 관리자로 로그인하여 사용하는 습관을 들이면 좋습니다. 관리자로 로그인하기 위해서는 su 명령어를 실행해야 합니다.
$ <- 사용자 커서
$ su
# <- 관리자 커서
# exit
$ <- 사용자로 돌아옵니다.
다른 사람들을 위해서 guest 계정을 만들어봅시다.
id, pw 모두 guest 입니다.
$ su
# adduser guest
# passwd guest
# exit
$ exit
컴퓨터를 재부팅합니다.
$ su
# reboot
컴퓨터를 끕니다.
$ su
# shutdown now
