❤️ pwd : 현재 내가 위치한 디렉토리 출력(print working directory)
❤️ echo : 뒤이어 입력한 내용을 출력합니다
❤️ ls : 현재 디렉토리 내의 파일 및 폴더들을 출력합니다.
-l : 각 파일 및 폴더의 권한, 소유자, 크기, 수정일시 등 자세한 정보를 출력합니다.
-h : 파일 크기를 바이트 수 대신 사람이 알아볼 수 있는 단위(1K, 234M, 2G 등)로 표시합니다.
-t: 파일 수정시간 순으로 정렬해서 출력합니다. 최신 파일이 위쪽으로 표시됩니다.
-r: 정렬 순서를 뒤집어 출력합니다. -rt의 형태로 쓰면 최신 파일이 아래쪽으로 표시되어 유용할 때가 있습니다
cd: Change Directory의 약자로, 뒤에 따라오는 폴더로 내가 있는 셸의 현재 위치를 이동시킵니다.
ps: 현재 터미널과 관련된 프로세스 목록을 출력합니다.
ps -ef: 모든 터미널에서 현재 실행중인 프로세스 목록 및 부가정보를 출력합니다.
grep: 입력으로 전달된 내용에서 특정 문자열을 포함한 라인만 선택해서 출력합니다. 파이프(|)를 통해 다른 명령문 실행결과와 결합해서 사용할 때 특히 유용합니다.
sudo: 이어지는 명령을 최고 관리자 권한으로 실행합니다.
kill: PID에 해당하는 프로세스에 시그널을 보냅니다.
which: 명령어의 전체 경로를 출력합니다.
$가 붙으면 환경 변수(environment variable)를 의미
export: 셸 변수나 함수를 현재 환경으로 내보냅니다.
env: 명령어가 제공된다면 해당 명령어를 새로운 환경에서 실행합니다. 명령어가 제공되지 않은 경우 현재 환경의 정보를 출력합니다.
❤️ apt-get: APT 패키지 관리자를 통해 공인 저장소에서 패키지를 가져다 설치하거나 제거합니다
❤️ cat: 하나 이상의 텍스트 파일을 순서대로 출력합니다.
chown: 대상 파일의 소유 사용자와 그룹을 변경합니다.
sort: 입력된 텍스트를 줄 단위로 정렬합니다. ex)cat fruits.txt | sort
- 셸 환경
👍history: 셸 명령어 이력을 출력합니다.
👍man: 프로그램의 매뉴얼 페이지를 출력합니다.
👌which: 명령어의 전체 경로를 출력합니다.
👌export: 셸 변수나 함수를 현재 환경으로 내보냅니다.
👌env: 명령어가 제공된다면 해당 명령어를 새로운 환경에서 실행합니다. 명령어가 제공되지 않은 경우 현재 환경의 정보를 출력합니다.- 텍스트 처리
❤️echo: 뒤이어 입력한 내용을 출력합니다.
❤️cat: 하나 이상의 텍스트 파일을 순서대로 출력합니다.
👍sort: 입력된 텍스트를 줄 단위로 정렬합니다.
👍less: 텍스트 파일의 내용을 자유롭게 조회하고 검색합니다.
👍head: 텍스트 파일의 앞 몇 줄만 출력합니다.
👍tail: 텍스트 파일의 마지막 몇 줄만 출력합니다.
👍cut: 텍스트를 구분자(delimiter)에 따라 나눕니다.
👍uniq: 텍스트 중 중복 값들을 제거합니다.
👍grep: 정규식을 활용해 텍스트를 검색합니다.
👍wc: 텍스트를 단어, 줄, 문자 등 단위로 셉니다.
👌comm: 텍스트 파일을 비교합니다.
👌zcat: 압축된 텍스트 파일을 출력합니다.
👌sed: 정규식을 활용해 텍스트를 변형합니다.
👌awk: 텍스트를 스캔하고 변형합니다.- 파일 제어 및 이동
❤️ls: 현재 디렉토리 내의 파일 및 폴더들을 출력합니다.
❤️cd: Change Directory의 약자로, 뒤에 따라오는 폴더로 내가 있는 셸의 현재 위치를 이동시킵니다.
❤️cp: 파일을 복사합니다.
❤️mv: 파일을 이동합니다.
❤️rm: 파일을 삭제합니다. 폴더를 삭제하기 위해서는 -r (recursive) 옵션을, 빈 폴더가 아니더라도 내부까지 삭제하려면 -f (force) 옵션을 함께 사용해야 합니다.
👍chown: 대상 파일의 소유 사용자와 그룹을 변경합니다.
👍chmod: 대상 파일의 권한을 변경합니다.
👍find: 파일을 찾습니다.
👍pwd: Present Working Directory의 약자입니다. 현재 내가 >위치한 디렉토리 위치를 출력합니다.
👌ln: 파일에 대한 링크를 생성합니다.
👌touch: 파일 접근 및 수정 시간을 변경합니다. 빈 파일을 만드는데도 사용할 수 있습니다.
👌tar: 파일 및 폴더를 하나의 아카이브 파일로 통합하고 압축합니다.
👌mount: 새로운 저장장치를 파일시스템으로서 추가합니다.
👌rename: 여러 파일들의 이름을 규칙에 따라 한번에 변경합니다.
👌df: 파일시스템의 남은 용량을 표시합니다.- 시스템 및 프로세스 제어
❤️sudo: 이어지는 명령을 최고 관리자 권한으로 실행합니다.
❤️apt-get: APT 패키지 관리자를 통해 공인 저장소에서 패 >키지를 가져다 설치하거나 제거합니다.
👍ps: 현재 프로세스 목록을 출력합니다.
👍kill: PID에 해당하는 프로세스에 시그널을 보냅니다.
👌fg: 배경에서 실행되는 작업을 전경(foreground)으로 가져옵니다.
👌bg: 작업을 배경(backgound)으로 보냅니다.
👌jobs: 전경 및 배경 작업의 목록을 표시합니다.- 기타
❤️ssh: 원격으로 셸에 접속합니다.
👍tmux: 여러 개의 셸 세션을 관리하고, 터미널 접속이 끊어지더라도 셸 세션을 유지합니다.
👍watch: 이어지는 명령을 주기적으로 실행하여 표시합니다.
👍curl: 주어진 URL과 통신합니다.
👍wget: 네트워크를 통해 파일을 다운로드합니다.
👍scp: SSH를 통해 원격으로 파일을 전송합니다.
👌ssh-keygen: SSH 공개키 비밀키 쌍을 생성합니다.
👌ssh-copy: SSH 공개키를 해당 서버에 등록합니다.
👌rsync: 원격으로 파일을 동기화합니다.
👌xarg: 명령어를 구성하여 실행합니다. 이전 명령에서 인자를 넘겨받아 실행하거나, 다중 프로세스를 사용하여 명령을 병렬로 실행하는 등의 작업이 가능합니다.
👌cron: 주기적으로 실행될 명령을 등록합니다.
👌htop: 프로세스 목록 및 자원 사용량을 시각적으로 표시합니다.
- 복사 및 붙여넣기 : Ctrl+Shift+C, Ctrl+Shift+V
- 위아래 화살표를 통해 이전에 실행한 명령들을 다시 입력할 수 있습니다.
- history 명령을 통해 기존에 실행한 명령들을 표시할 수 있습니다. 여기서 나오는 번호를 참고하여 !번호를 실행하면 해당 번호의 명령이 다시 실행됩니다.
- Ctrl+A, Ctrl+E를 통해 명령어의 앞, 뒤로 커서를 이동할 수 있습니다.
- clear 명령어 또는 Ctrl+L을 통해 기존에 터미널에 출력되었던 내용을 깨끗이 지울 수 있습니다.
- 실수로 Ctrl+z를 눌러 프로세스를 중지시켰다면, fg를 통해 다시 재개시킬 수 있습니다.
- 실수로 vi 편집기에 처음 들어갔다면, Ctrl+C 또는 Esc를 누른 뒤 :q!를 입력하고 엔터를 눌러 편집기를 종료할 수 있습니다.
- sudo apt install curl 및 curl parrot.live를 통해 춤추는 앵무새를 볼 수 있습니다. (클라우드에서는 작동이 안되니 우분투가 설치된 로컬 환경이 있다면 테스트해보세요!)
- >를 통해 명령어의 결과를 파일에 저장
- >>를 쓰면 명령어의 결과가 기존 파일 뒤에 추가
/home: 사용자별 홈 디렉토리들이 있는 곳
/root: 최고 관리자 계정의 홈 디렉토리
/mnt: 저장장치(HDD, SSD)가 붙는 위치
/media: 이동식 미디어(USB 드라이브)가 붙는 위치
/tmp: 재부팅 시 삭제될 임시 파일들을 저장하는 폴더
/dev: 컴퓨터에 연결된 하드웨어 및 가상 기기(device)들을 가리키는 파일들
/proc: 현재 실행 중인 프로세스들을 가리키는 파일들
/etc: 각종 설정 파일들
/bin: 실행 가능한 프로그램(binary)들
/sbin: 시스템 관리용 프로그램들
/usr: 다중 사용자 모드에서 사용 가능한 파일 및 프로그램들 (root 계정만 있는 단일 사용자 모드에서는 사용 불가)
/var: 캐시, 로그 등 시스템 구동 간 계속 내용이 바뀌는 파일들