일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스
- spring
- 리눅스
- m:n
- 백준
- @Autowired
- 오블완
- 기본키 전략
- 파이썬
- 런타임 상수
- 쉘 스크립트
- 무한정 대기
- application layer
- DTO
- @SubscribeMapping
- 은행원알고리즘
- 컴파일 타임 상수
- compgen
- JPA
- intelij spring config
- allocationSize
- 편향된 지수
- API
- 커밋 되돌리기
- BindingResult
- 쿠키
- 티스토리챌린지
- Git
- 알고리즘
- JDBC
- Today
- Total
둘셋 개발!
[Linux] 리눅스 기본 명령어 본문
본 내용은 'KT 리눅스 쉘 스크립트 프로그래밍 교육'에 기반한 내용입니다.
✏️ 쉘 종류 확인및 변경
- 리눅스 시스템에서 사용가능한 Shell 목록 확인하기
cat /etc/shells
chsh -l
두 명령어는 같은 기능이다.
쉘을 확인해봤더니 sh, bash 두 가지의 쉘이 사용가능하다고 나왔다.
sh은 ‘본쉘’이라 부르고 최초의 유닉스 쉘이다.
bash는 본쉘의 확장버전으로 만든 Unix 쉘로 Linux, Mac의 기본 쉘로 사용된다.
- default shell 확인
다음은 현재 사용자의 default shell을 확인하는 명령어 이다. 즉 쉘에 접속했을 때 할당되는 shell이다.
echo $SHELL
기본은 sh이다.
다음은 특정 사용자의 default shell을 확인하는 명령어 이다.
cat /etc/passwd | grep [사용자]
- 현재 세션에서 사용중인 shell 확인
echo $0 # 현재 세션에서 사용중인 shell 종류 확인 1
echo $$ #현재 세션에서 사용중인 shell 종류 확인 2
- default shell 변경
chsh -s /bin/sh #sh로 변경
나는 현재 root로 접속했고 /etc/passwd의 내용 중에 root가 사용 중인 쉘의 종류를 확인했다.
그리고 chsh(change shell) 명령어를 통해 sh(본쉘)로 변경했다.
사진과 같이 bash에서 sh로 변경된 걸 확인할 수 있다.
/etc/passwd에 직접 들어가서 수정도 가능하다.
✏️ Function 확인및 명령어 확인 기능
다음은 내가 스크립트를 통해 만든 function을 확인할 수 있는 명령어 이다.
typeset -f
다음은 ‘사용할 수 있는 명령어’를 확인하는 명령어 이다.
compgen -c # 모든 명령어를 확인 (c: command)
compgen -b # 내장 명령어를 확인 (b: built in)
compgen -a # 별칭 확인 (a: alias)
참고로 compgen은 bash 쉘에서만 사용 가능하다.
그리고 명령어를 찾고 싶다면 다음과 같이 하면 된다.
compgen -c | grep -i [찾고자 하는 명령어]
✏️ 사용했던 명령어 확인하기
1. 화살표 이용하기
키보드의 화살표를 사용해서 전에 사용했던 명령어들을 볼 수 있다.
내가 애용한다.🐱
2. history
history
해당 명령어를 입력하면 번호와 함께 전에 사용했던 명령어들이 나온다.
여기서 느낌표와 함께 번호를 입력하면, 입력한 번호에 해당하는 명령어가 실행된다.
3. reverse-i-search
ctrl + r 을 누르고, 전에 사용했던 명령어를 검색할 수 있다.
나는 ch까지만 검색했더니 chsh -l이 나왔다.
✏️ 명령어와 연산을 구분!!!
소괄호가 2개 있으면 수식이고, 소괄호가 1개 있으면 명령어 이다.
✏️ Job Control 기능
커널에서 돌아가고 있는 job(프로세스)을 제어할 수 있는 기능은 다음과 같다.
1. 일시 중지
ctrl + z
2. 실행 중지
ctrl + c
3. background로 실행중인 프로세스 종료
kill %번호
네트워크 상태점검하는 ping을 이용했다.
ping 8.8.8.8을 하다가 중간에 ctrl + c 를 눌러 일시정지를 했다. (화면에는 안보임)
그리고 다시 foreground로 불러오기 위해 fg를 입력해서 다시 화면에 출력하도록 하였다.
그리고 ctrl + c 를 눌러 종료하였다.
sleep 명령어를 사용해서 60초 동안 대기를 하는 프로세스를 백그라운드로 실행하게 했다.
jobs로 확인해보니 해당 Running 상태인 것을 확인할 수 있다.
그 뒤 해당 프로세스의 pid (process id)인 1305을 kill (종료) 했더니, 종료되었다.
지금까지 리눅스에서 자주 사용하는 명령어들을 알아보았다.
cd, vi, mkdir, cat 등 아주아주 기본적인 명령어들만 알고 있는데, 이번 교육을 통해 다양한 명령어들을 배운다...!