Linux 명령어 모음
December 02, 2023
유닉스
-
true unix
- 현재 유닉스는 상표이다.
- mac os 도 비싼 과정을 거쳐 유닉스로 인정받게 되었다.
-
unix like(유닉스 계열)
- 표준을 대부분 만족하지만, 공식적으로 유닉스로 인정받지 않은 것
- 리눅스
Operating Systems: Timeline and Family Tree
- 1971년 유닉스 메뉴얼
리눅스
-
1980년대 자유 소프트웨어 운동
- 리눅스 등 등장
-
리눅스 커널
- 리누스 토발즈가 자신의 이름을 딴 리눅스라는 커널을 개발하였다. 커널은 하드웨어와 소프트웨어 간 상호작용을 가능하게 해주는 OS의 일부분을 의미한다.
-
커널은 운영체제가 아니다.
- 메모리 관리, 태스크 스케줄링, 하드웨어 관리를 담당하는 프로그램이다.
- 리눅스라는 용어는 커널 그 자체를 가리키기도 하지만, 리눅스 생태계에 속하는 모든 소프트웨어를 가리키는 말이다.
-
리눅스 배포판(linux distributions)
- 리눅스 기반 운영 체제는 리눅스 배포판을 가리킨다.
- 리눅스 배포판은 리눅스 커널에 GNU 도구들과 기타 다른 결과물들이 합쳐진 결과물이다.
- 1000개가 넘는 배포판이 있다. 우분투나 페도라, 데비안 등이 있다.
-
터미널, 쉘, Bash 살펴보기
- 쉘은 운영체제의 인터페이스이다.
- 터미널은 쉘을 실행하는 애플리케이션이다.
- 쉘은 여러가지 종류가 있다. Bash, Zsh, Fish 라는 것도 있고, 윈도우는 PowerShell 이 있다.
-
대부분의 리눅스 기반 시스템에서 기본 쉘 프로그램은 Bash이다.
- Bash는 ‘Bourne-Again SHell’의 약자이다.
- Bash는 모든 유닉스와 유닉스 계열 OS에서 동작한다.
커맨드 구조
```html
command -options arguments
```
-
ncal 2023
- 2023년의 모든 달력 표시
-
ncal 12 2023
- 2023년 12월 달력 표시, 두 개의 인자를 전달하며 공백으로 구분함
-
sort color.txt
- 파일 내 정렬
- 옵션을 줄 때는 항상 - 를 붙인다. 소문자와 대문자를 구분한다.
-
여러 옵션 묶어쓰기
ncal -3 -h -j
는ncal -3hj
처럼 옵션을 합쳐서 한번에 쓸 수도 있다. 둘은 같은 효과이다.
-
옵션 이름 길게 풀어 쓰기
--
를 쓰면 길게 풀어 쓴다는 의미이다. 모든 옵션이 긴 이름을 지원하는 것은 아니다.date --universal
=date -u
명령어 메뉴얼 및 검색
-
man
- manual 의 약자, 메뉴얼을 보고 싶은 명령어를 man 커맨드에 인자로 넘긴다. ex)
man cal
- q 를 누르면 나갈 수 있다.
- b 를 누르면 이전 페이지로 이동할 수 있다.
- f 를 누르면 다음 페이지로 이동할 수 있다.
- 시놉시스를 통해 사용방법 확인할 수 있다. 브라켓([]) 으로 감싸져 있는 것은 옵셔널이다.
- [-d number] 이런 옵션이면 -d 옵션이 number 인자와 함께 오는 것을 기대하는 것이다.
/
를 입력하면 검색을 할 수 있다.
- manual 의 약자, 메뉴얼을 보고 싶은 명령어를 man 커맨드에 인자로 넘긴다. ex)
-
명령어 검색 :
man -k 검색어
- 이름은 같지만, 서로 다른 섹션에 다르게 기록되어 있는 정보들을 확인해야 할 때도 있다.
-
명령어의 종류 확인
type {command}
-
명령어의 위치 확인
which {command}
-
쉘에 직접적으로 내장되어 있는 명령어라면 man 대신 help 명령어 사용
help {command}
네비게이션
-
open /
- 최상위 루트 디렉터리를 연다.
/
는 루트 디렉터리를 의미한다.
-
open ~
- 현재 로그인한 사용자의 홈 디렉터리를 연다.
~
는 홈 디렉터리를 의미한다.
-
pwd
- print working directory의 약자
- 이 터미널이 열려 있는 현재 위치의 경로
-
ls
- list 약자, 현재 디렉터리 컨텐츠 목록 표시
-
ls -l
- 권한 등 자세한 정보 표시
-
ls -a
.
으로 시작하는 숨겨진 파일과 폴더까지 다 표시해준다.
-
ls -la
- 숨겨진 파일까지 자세한 정보 표시
-
cd 하위디렉터리명
- change directory의 약자
cd ..
: 부모 디렉터리로 이동
-
상대경로와 절대경로
- 상대경로는 현재 디렉터리를 기준으로 한 경로이다.
-
절대경로는 현재 위치에 상관없이 컴퓨터에 있는 모든 위치를 참조하고 실행할 수 있다.
/
로 시작하는 경로이다.
-
touch 파일명
- 해당 디렉터리에 없던 파일명을 인자로 전달하면 새 파일을 생성한다
- 기존 파일을 인자로 전달하면 기존 파일의 타임스탬프(접근 및 수정시간)를 업데이트한다. 마치 아주 손 끝으로 약하게 건들듯이(touch)
-
file 파일명
- 특정 파일의 파일 타입을 확인할 수 있다.
-
이름 지을 때 주의
- 쉘에서 특정 역할을 담당하는 문자는 사용해서는 안된다.
-
/
\
?
%
*
:
|
"
<
>
.
,
;
공백
touch “my website”
touch my/ website
(역슬래시는 뒤에 오는 문자가 특별한 의미를 지니지 않고 평범한 문자로 취급하도록 한다)
-
mkdir 폴더명
- make directory 의 약자
-
mkdir -p 자식폴더명/손자폴더명
- 손자폴더를 만들면서, 그 부모인 자식폴더가 없으면 자식폴더까지 만든다.
Nano
- nano는 명령창을 나가지 않고 명령 창에서 직접 파일을 열고 수정할 수 있는 프로그램이다
- 비슷한 텍스트 에디터로 Vim이나 Emacs가 있다.
- Nano’s ANOther editor 의 약자이다.
-
nano 파일명
- nano 텍스트에디터 실행
^
은 컨트롤을 의미한다.- 나가려면 컨트롤 X
- 검색하려면 컨트롤 W
- 메뉴얼 보려면 컨트롤 G
-
rm 파일명
- 파일 제거
-
rm -r 폴더명
- 폴더 제거
-
mv <source> <destination>
- 파일이나 폴더 이동
-
mv 현재파일명 수정할파일명
- 파일 이름 수정’
-
cp 파일명 복사할위치
- 파일 복사
-
cp -r 디렉터리명 복사할위치
- 디렉터리 복사
유용한 단축키
-
전체 라인 지우기
ctrl + L
-
최상 라인으로 이동
ctrl + A
-
최하 라인으로 이동
ctrl + E
-
한 글자 씩 이동
- 앞으로:
ctrl + F
- 뒤로:
ctrl + B
- 앞으로:
-
한 단어 씩 이동
- 앞으로:
alt + F
, 맥은option + F
- 뒤로:
alt+ B
, 맥은option + B
- 앞으로:
-
뒤바꾸기
- 글자:
ctrl + T
- 단어:
option + T
- 글자:
-
삭제
- 이전 모두:
ctrl + u
- 이후 모두:
ctrl + K
- 이전 단어:
option + w
- 이후 단어:
option + d
- 이전 모두:
-
제일 앞으로
ctrl + A
-
삭제한 단어 부활
ctrl + Y
-
명령어 히스토리 보기
history
history | less
-
히스토리에 있는 명령어 실행하기
!히스토리숫자
-
히스토리 검색
ctrl + r
: 검색어를 입력하고,ctrl + r
을 반복하여 누르면 다른 검색결과 확인 가능
- 해당 히스토리는
~./bash_history
에 저장되어 있음 -
히스토리 지우기
history -c
-
cat 파일명
- concatanate 의 약자, 파일을 읽어서 출력
-
cat 파일1 파일2
- 파일들을 결합해서 출력
-
less 파일명
- 다른 방식의 파일 보기
-
tac 파일명
- cat 스펠링의 역순
- 수직으로 라인들을 거꾸로 출력
-
rev 파일명
- 수평적으로 거꾸로 출력
-
head 파일명
- 첫 10줄 출력
- head -n 출력할라인수 파일명
-
tail 파일명
- 끝 10줄 출력
-
tail -f 파일명
- 끝 라인 뒤에 변경되는 내용 팔로우
-
sort 파일명
- 정렬
-
sort 파일명 -nk 몇번째필드
- 해당 필드 기준으로 숫자 정렬