- 서버에서 자주 사용하는 OS
- Free, 오픈 소스
- 안정성, 신뢰성
mkdir (디렉토리명)
test 디렉토리가 생성된 것을 확인할 수 있습니다.
ls (옵션)
옵션
-a
: .으로 시작하는 파일, 폴더를 포함해 전체 파일 출력
-l
: 퍼미션, 소유자ㅡ 만든 날짜, 용량까지 출력
-h
: 용량을 사람이 읽기 쉽도록 GB, MB 등 표현 '-l'과 함께 사용
ls : 하위 디렉토리인 test가 나타난다.
ls ~ : 상위 디렉토리의 집합이 나타난다.
ls -a : 파일, 폴더를 포함한 전체 파일명을 출력한다.
ls -al : -a 와 -l을 합친것 (a와 l의 순서가 바뀌어도 무관)
ls -lh : -l 과 -h를 합친것으로 용량의 단위가 나오는 것을 볼 수 있다.
pwd
현재 폴더 경로를 절대 경로로 보여줌
cd (디렉토리명)
test 디렉토리로 이동한 것을 볼 수 있다.
Tab
을 통해 자동완성할 수 있다. 위의 예에서는 하위 디렉토리로 test 뿐이므로
cd t
까지 입력한 상태에서Tab
을 누르게 되면cd test/
가 입력된다.
echo (텍스트) or (`쉘 커맨드`) #`쉘 커맨드`의 `는 backtick으로 키보드 좌측 상단 esc 밑의 키
echo 'hi' : hi 출력
echo `pwd` : 현재 절대경로 출력
vi (파일명.확장자)
해당 파일명을 가진 파일이 없다면 생성하고 편집, 있다면 해당 파일 편집
실행하게 되면 이렇게 편집창으로 들어오게되는데 3가지의 Mode가 있다.vi 편집기의 Mode
Insert Mode
- Command Mode 에서i
를 누르면 Insert Mode로 변경 가능
- 파일을 수정할 수 있는 모드
Command Mode
- vi 실행시 기본모드
dd
: 현재 위치한 한 줄 삭제
i
: INSERT 모드로 변경
x
: 커서가 위치한 곳으로 글자 1개 삭제
yy
: 현재 줄을 복사
p
: 현재 커서가 있는 줄 바로 아래에 붙여 넣기
k
: 커서 위로
j
: 커서 아래로
l
: 커서 오른쪽으로
h
: 커서 왼쪽으로
Last Line Mode
- ESC를 누른후 콜론(:)혹은 /를 누르면 나오는 모드
:w
: 현재 파일명으로 저장
:q
: vi 종료(저장되지않음)
:q!
: vi 강제 종료(!는 강제의 의미)
:wq
: 저장한 후 종료
/문자
: 문자 탐색, 탐색한 후n
을 누르면 계속 탐색 실행
:set nu
: vi 라인 번호 출력(:set nu!
로 삭제할 수 있음)
bash (파일명)
test.sh 가 실행된 결과를 확인할 수 있다.
sudo (명령어)
관리자 권한으로 (명령어)를 실행
관리자 권한으로 실행하는 만큼 신중하게 사용해야한다.
cp (copy파일/폴더) (paste파일/폴더)
-r
: 디렉토리를 복사할 때 디렉토리 안에 파일이 있으면 재귀적으로 모두 복사
-f
: 복사할 때 강제로 실행
test.sh
를 복사하여test_.sh
로 붙여넣음
상위폴더를 이동하여test
폴더를test_
폴더로 복사함(폴더 안의 파일을 재귀적으로 모두 복사)
mv (파일/폴더에서) (파일/폴더로)
파일, 폴더 이동하기(또는 이름 바꿀 때도 활용)
test_.sh
를test1.sh
로 이름을 바꿈
cat (파일1) (파일2) .. (파일n)
파일의 내용을 순차적으로 출력(1n)
파일이 1개일때도 출력된다.cat (파일1) (파일2) .. (파일n) > (파일k) cat (파일1) (파일2) .. (파일n) >> (파일k)
파일을 저장(OVERWRITE)하고 싶은 경우
>
를 사용한다.
파일을 추가(APPEND)하고 싶은 경우>>
를 사용한다.
history # !N 으로 N번째 History 재실행가능
최근에 입력한 쉘 커맨드 History 출력
!366
: 366번째 커맨드인cat new_test.sh
를 실행
find (파일명)
해당 파일명을 가진 파일을 찾음
export (변수명)=값
변수를 불러올땐$
를 앞에 붙여줘야한다. ex) echo $water
이러한 변수는 터미널이 꺼지면 사라지게 되는데 매번 쉘을 실행할 때 마다 환경변수를 저장하고 싶으면 .bashrc 혹은 .zshrc에 저장하면됨
alias (별칭)=('명령어')
터미널에서 alias라고 치면 현재 별칭으로 설정된 것을 볼 수 있음
alias ll3='ls -h'
를 선언해서ll3
와ls -hl
과 같은 결과가 나오는 것을 확인할 수 있다.
head -n (k) (파일) tail -n (k) (파일)
파일의 앞/뒤 (k)줄 출력
head -n 3 new_test.sh
: new_test.sh 파일 앞 3줄 출력
sort (파일)
파일을 오름차순으로 정렬(파일은 변하지 않음)
sort fruits.txt
:fruits.txt
파일을 오름차순으로 정렬(fruits.txt
파일은 변하지 않음)
sort -r
: 내림차순으로 정렬
sort -n
: Numerical Sort
uniq (파일)
중복된 행이 연속으로 있는 경우 중복 제거(파일은 변하지 않음)
sort와 함께 사용되는 경우가 많음
cat fruits.txt|sort|uniq
: fruits.txt를 출력하는데, 먼저 정렬을 하고 중복제거
uniq -c
: 중복 행의 개수 출력
grep (패턴) (파일명)
grep -c
: 대소문자 구분 없이 찾기
grep -w
: 정확히 그 단어만 찾기
grep -v
: 특정 패턴 제외한 결과 출력
grep -E
: 정규 표현식 사용
cut -d (구분자) -f (잘라낼 필드)
cat cut_file | cut -d : -f 1,7
: 구분자는:
필드는1,7
을 출력
Redirection
: 프로그램의 출력을 다른 파일이나 스트림으로 전달
>
: 파일이 없으면 생성하고 저장 (Overwrite)
>>
: 맨아래에 추가 (Append)
Pipe
: 프로그램의 출력을 다른 프로그램의 입력으로 사용하고 싶은 경우
(A)|(B)
: A의 출력을 B의 입력으로 전달