1991년 Linus Torvals 가 개발한 운영체제이다.
리눅스는 시스템을 운영하는 데 가장 널리 사용되는 운영체제이며, 오픈소스다.
application — shell — kernel - hardware
리눅스의 핵심으로 프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행한다.
리눅스의 사용자 인터페이스로서 사용자와 커널 사이의 중간자 역할을 담당하는 프로그램이다.
셸은 사용자가 입력한 명령을 해석하여 커널에 넘겨준다. 그러면 커널이 명령을 수행한 후 수행 결과를 돌려주고, 셸은 다시 사용자가 이해 할 수 있는 형태로 바꿔서 출력한다.
💡
$ tldr 명령어
간단하게 해당 명령어에 대한 매뉴얼을 볼 수 있다.
pwd
현재 작업중인 디렉토리 정보 출력
cd
경로 이동
#홈 디렉토리 이동
$ cd
ls
디렉토리 목록 확인
cp
파일 또는 디렉토리 복사. 디렉토리는 -r을 붙여야 함
#file1 파일을 똑같이 복사하여 file2 생성 (있다면 덮어씀)
$ cp file1 file2
#file1과 file2을 dir1 안에 복사 (해당 파일명으로)
$ cp file1 file2 dir1/
#디렉토리 전체를 복사
$ cp -r dir1 dir2
mv
파일 또는 디렉토리 이동. 이름을 변경할 때도 쓰임
mkdir
디렉토리 생성. -p 옵션으로 하위 디렉토리를 한번에 생성 가능하다.
rm
파일이나 디렉토리를 삭제. 디렉토리를 삭제할 때는 -r, 강제로 삭제할 시 -f
touch
파일이나 디렉토리의 최근 업데이트 일자를 현재시간으로 변경한다.
해당 파일이 없으면 빈 파일을 만든다.
cat
파일의 내용을 출력
$ cat file1 file2 > file_new
$ cat file1 >> file2
#input 값이 file3에 저장된다. ctrl+d 로 종료
$ cat > file3
head
파일의 앞부분을 보고 싶은 줄 수 만큼 보여준다.
#기본값 10
$ head -3 file
tail
파일의 뒷부분을 보고 싶은 줄 수 만큼 보여준다.
-F 옵션으로 업데이트된 내용을 화면에 출력 👉 실시간 모니터링
find
특정 파일이나 디렉토리를 검색
#find 검색경로 -name 파일명
$ find ./ -name '*.jpg'
#현재 위치에서 디렉토리 타입 검색
$ find ./ -type d
#현재 위치에서 파일 타입 검색
$ find ./ -type f
#결과값 개수로 표시
$ find /home -type f -name '*log' | wc -l
alias
자주 쓰는 명령어를 쉽게 사용할 수 있도록 설정
sudo (super user do)
관리자 권한을 말하며, 명령어 앞에 사용할 수 있다.
mac’s package manager
homebrew
$ brew update
$ brew search 프로그램명
$ brew install 프로그램명
$ brew upgrade 프로그램명
$ brew uninstall 프로그램명
이전 명령어의 결과를 다음 명령어의 입력값으로 사용할 때 쓰인다. |
#현재 위치에서 'c' 문자열이 들어있는 파일이나 디렉토리 출력
$ ls | grep c
💡
grep
입력된 내용 중에 특정 문자열이 존재하는 줄을 출력
#[direction]
$ ls -l
#파일에 저장된 내용을 입력으로 받는다. [redirection]
$ cat < hello.txt
#standard output 값이 파일로 저장 [redirection]
$ ls -l (1)> result.txt
#standard error 값이 파일로 저장 [redirection]
$ ls -l 2> error.log
$ ls -al > result.txt 2> error.log
#>>: 결과값을 append
$ cat file1 >> file2
$ head -2 < test.txt > test2.txt
사용자가 입력한 명령을 해석하고 실행하는 프로그램
#사용 중인 shell의 위치를 알 수 있다.
$ echo $SHELL
/
최상위 디렉토리 root
/bin
기본적인 명령어가 저장된 디렉토리 ex. rm, mv …
/sbin
시스템관리자들이 사용하는 시스템관리자용 명령어가 저장된 디렉토리
/etc
설정파일이 존재하는 디렉토리
/usr
일반 사용자들이 주로 사용하는 디렉토리
/home
사용자의 home 디렉토리
shell 의 어떠한 설정 값을 가지고 있는 변수를 뜻하며, 쉘이 돌아가는 동안 계속 존재하며 사용된다.
shell이 시작할 때 자동으로 선언된다.
#환경변수 보는 명령어
$ env
PATH 환경변수는 명령어를 찾을 수 있는 경로들을 저장해놓은 환경변수이다.
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
💡
whereis
해당 명령어의 위치를 알 수 있다.$ whereis ls /bin/ls
shell 설정 파일에서 설정한다.
# .zshrc 파일
export PATH="/Users/user/wecode:$PATH"
파일 저장 후 나와서 적용을 시켜준다.
$ source ~/.zshrc
read
write
저장, 삭제, 이름변경
excute
접근
#아래 명령어로 권한 확인 가능
$ ls -l
#chmod: 권한을 변경하는 명령어
$ chmod u+x 파일 혹은 디렉토리명
$ chmod g-x 파일 혹은 디렉토리명
#8진수를 통한 권한 변경
$ chmod 755 test.sh
자기 자신의 컴퓨터를 가르키는 가상의 ip 주소 127.0.0.1