텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
작업 명령은 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하고, 출력 또한 문자열의 형태로 주어집니다.
터미널은 키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있다.
또한 GUI가 개발되기 이전부터 컴퓨터를 조작하기 이해 사용되었기 때문에, GUI가 할 수 있는 모든 작업은 CLI로도 가능하다.
CLI 입출력을 가능하게 해주는 소프트웨어나 하드웨어를 터미널(terminal), 사용자가 입력한 명령어를 해석해 주는 소프트웨어를 셸(shell)이라고 한다.
CLI의 명령줄 대기모드를 가리키는 것으로써, 터미널 화면에서 글자가 입력되는 한 줄의 공간을 prompt라고 한다
사용자는 이 명령 프롬프트에 정해진 명령어를 사용해서 원하는 명령을 입력합니다. 그러면 명령어를 해석해주는 셸이라는 것이
입력 받은 명령어를 해석하여 적절한 결과를 터미널에 출력해줍니다.
현재 작업중인 폴더 위치를 보여준다
폴더를 만들어 라는 명령을 컴퓨터한태 시킨다
* 예시 : mkdir helloWorld //현재 위치에 helloWorld 폴더 생성
특정 폴더에 포함된 파일이나 하위 폴더의 리스트를 출력
ls 에는 자주 사용하는 욥선 L과 A가 있다.
ls-l : l은 폴더나 파일의 포맷을 전부 표현해! 라는 의미이다. 가장 첫 글자가 d로 시작하는 경우 폴더를, -로 시작하는 경우는 파일을 나타낸다. 폴더의 경우
cd 명령어를 통해 진입할 수 있지만, 파일은 불가능하다.
ls -a: 숨어있는 폴더나 파일을 포함하여 모두 터미널에 출력
a는 " all " 이라는 의미로, 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 보여준다.
ls -al or ls -la
대쉬 ( - ) 뒤에 오는 옵션의 순서는 기능에 영향을 미치지 않는다.
macOS에서 현재 위치를 GUI로 실행하는 명령어
원하는 폴더로 진입하기
예시 : cd helloWorld
파일 생성하기
리눅스의 타임스탬프 종류
atime :최종 접근 시간
mtime : 최종 수정 시간
ctime : 최종 상태 변경 시간
touch -a filename : 현재 시간으로 파일의 접근 시간, 변경 시간을 수정한다.
touch -c filename : 현재 디렉토리의 파일명과 같은 파일이 없으면 파일을 만들지 않는다.
touch -t [YYYYMMDDhhmm.SS] filename : 파일의 접근 시간과 수정 시간을 설정 시간으로 수정한다.
* 예시 : touch hi.txt
touch -d ‘YYYY-MM-DD hh:mm:ss’ filename : 지정한 시간으로 접근 시간과 수정시간을 설정하고, 변경 시간은 현재 시간으로 수정된다.
touch -r filename1 filename2 : filename2의 접근 시간과 수정 시간을 filename1의 시간으로 수정하고, 변경 시간은 현재 시간으로 수정된다.
touch -m filename : 수정 시간과 변경 시간을 현재 시간으로 수정한다.
touch filename1, filename2, filename3, … : 여러 개의 파일을 생성한다.
옵션을 2개 이상 조합하여 사용할 수 있다.
터미널에 텍스트 출력
터미널창에 텍스트를 출력해주는 명령어
echo-n text : 마지막에 붙는 개행 문자를 출력하지 않는다.
echo-e text : 문자열에서 백 슬래시와 이스케이프 문자를 작음따옴표 ( " )로 묶어 인식한다.
echo-E text : 문자열에서 백 슬래시와 이스케이프 문자를 비활성화한다.
* 예시 echo Heloo
실행 결과를 파일로 저장
명령어 > 파일이름
ls 명령어의 결과를 LsResult.txt파일에 작성하여 저장한다.
* 예시 ls> LsResult.txt
* 예시 : echo MyEmail@address.com > Email.txt
파일의 내용을 터미널에 출력하기
cat -n filename : 모든 라인 앞에 번호를 출력한다.
cat -b filename : 비어있지 않은 라인 앞에만 번호를 출력한다.
cat -E filename : 라인의 마지막에 $ 기호를 출력한다.
cat -T filename : 탭 문자를 ^I로 바꿔서 출력한다.
cat -s filename : 두 번 이상 연속된 빈 라인은 출력하지 않는다.
cat -v filename : 탭과 줄 바꿈을 제외한 non-printing 문자를 ^ 또는 M-를 사용하여 표시한다.
cat -e filename : 줄 바꿈을 포함한 non-printing 문자를 ^ 또는 M-를 사용하여 표시한다.
* 예시 : cat hi.txt
폴더나 파일 삭제하기
명령어 rm으로 삭제한 폴더나 파일은, 휴지통을 거치지 않고 삭제된다.
rm 명령어의 경우 옵션을 사용하지 않으면, 디렉토리를 삭제할 수 없다.
rm 명령어의 옵션
rm -f name : 강제로 디렉토리나 파일을 삭제한다. 대상이 없을 경우 메시지를 표시하지 않는다.
rm -r directoryname : 디렉토리 하위의 모든 파일을 삭제한다.
rm -d : 하위 내용이 비어있는 모든 디렉토리를 삭제한다.
rm -i name : 삭제할 때 사용자에게 삭제 여부를 묻는다.
rm -l name : 3개 이상의 파일을 삭제하거나 삭제할 디렉토리 내부가 비어있지 않은 경우 삭제 여부를 묻는다.
rm -v name : 삭제되는 대상의 정보를 출력한다.
옵션을 2개 이상 조합하여 사용할 수 있다.
* 예시 : rm bye.txt
폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 변경
에시 : mv bye.txt hello.txt // bye.txt 파일명을 hello.txx로 변경
폴더나 파일을 복사
cp [원본 파일 이름], [복사 파일 이름]
rm 명령어를 사용할 떄 처럼, 폴더를 복사하기 위해서는 옵션 r과 f를 사용해야한다
* 예시 : cp helloWorld.txt hiComputer.txt
// helloWorld.txt 파일을 복사한 hiComputer.txt 파일 생성
예시 cp -rf bye hi // bye 폴더를 복사한 hi 폴더 생성
현재 로그인된 사용자를 확인
관리자 권한을 획득하는 명령어
* sudo를 이용해 생성한 폴더나 파일의 소유자는 root(관리자권한)