agencies

리눅스 기초 셸 스크립트 및 명령어 본문

Ⅰ. 프로그래밍

리눅스 기초 셸 스크립트 및 명령어

agencies 2024. 2. 15. 11:25

터미널 콘솔에서 시스템 종료 명령어

shutdown -P +10
> 10분 후에 종료(P는 Poweroff)

shutdown -r 22:00
> 오후 10시에 재부팅(R은 Reboot)

shutdown -c
> 예약된 shutdown을 취소(C는 Cancel)

shutdown -k +15
> 현재 접속한 사용자에게 15분 후에 종료된다는 메시지를 보내지만 실제로는 종료 안 됨

halt -p

재부팅 명령어

reboot
shutdown -r now
init6

로그아웃

logout
exit

가상콘솔

 

우분투는 총 7개의 가상 콘솔을 제공한다. 즉 컴퓨터 한 대에 모니터 일곱 개가 연결된 효과를 낼 수 있다.

[ctrl] + [alt] + F7 현재의 X윈도(그래픽 모드)

그래픽 모드

[ctrl] + [alt] + F1 ~ F6 콘솔모드

콘솔 모드

 

 

런레벨

init 명령어 뒤에 붙는 숫자를 런레벨이라고 부른다.

0은 종료, 1은 시스템 복구 모드, 3은 텍스트 모드, 5는 그래픽 모드, 6은 재부팅을 의미함

 

런레벨 모드를 확인하려면 다음의 경로를 참고한다.

 

※ 텍스트 모드에서 startx 명령어를 입력하면 그래픽 모드를 보여준다.

 

 

지금까지 입력한 명령어를 확인하려면 history 명령을 입력합니다.

히스토리에 기억된 명령어는 history -c로 삭제할 수 있습니다.

 

 

vi 에디터 명령모드

x 현재 커서가 위치한 글자 삭제
dd 한줄 삭제
숫자 dd 숫자만큼의 행 삭제
yy 행 복사
p 복사한 행 붙여넣기
/문자열 (엔터) 해당 문자열을 찾음
n 찾은 문자 중에서 다음 문자로 이동
:set number vi 에디터 앞에 행 번호 표시

 

폴더만 확인 ls -l | grep "^d" 명령어

 

텍스트 형식으로 작성된 파일 중

head -3 앞 3행만 출력

tail -5 마지막 5행만 출력

more +10 10행부터 출력

> 스페이스바: 다음 페이지

> b 앞 페이지

> q 종료

less +10 10행부터 출력

 

 

adduser 명령어로 사용자를 생성할 수 있다

userdel 명령어로 사용자를 삭제할 수 있다

* userdel -r 명령어는 해당 유저의 홈 디렉토리까지 삭제한다

groupadd 새로운 그룹을 생성할 수 있다

groupmod 그룹의 속성을 변경할 수 있다

groupdel 그룹을 삭제한다

gpasswd 그룹의 암호를 설정하거나 그룹 관리를 수행한다

* gpasswd [그룹명] 해당 그룹의 암호를 지정

* gpasswd -A [유저명] [그룹명] 해당 그룹에 해당 유저를 관리자로 지정

* gpasswd -a [유저명] [그룹명] 해당 그룹에 해당 유저를 추가

* gpasswd -d [유저명] [그룹명] 해당 그룹에서 해당 유저를 제거

 

adduser --gid [그룹ID] [사용자]

새로운 사용자를 생성하면서 입력한 그룹ID에 추가

 

 

chown [유저명].[그룹명] [파일명] 을 통해 소유자와 소유그룹을 한번에 변경할 수 있음

 

 

ln 하드링크 생성

ln -s 심볼릭 링크 생성

* 심볼릭 링크는 바로가기 기능과 유사(원본이 삭제되면 x)

 

 

파일압축

xz [파일명] 파일명.xz 형태로 만든다

xz -d [파일명.xz] 압축을 풀어준다

xz -l [파일명.xz] 파일이름.xz 압축 파일에 포함된 파일 목록과 압축률 등을 출력한다

xz -k [파일명] 압축 후에 기존 파일을 삭제하지 않고 그대로 둔다

 

gzip [파일이름]

gunzip [파일이름]

 

zip [파일이름]

unzip [파일이름]

 

tar 묶음 파일을 만들어 주거나 묶음을 풀어준다

* tar는 압축이 아님

c 새로운 묶음을 만든다

x 묶인 파일을 푼다

t 묶음을 풀기 전에 묶인 경로를 보여줌

C 묶음을 풀 때 지정된 디렉토리에 압축을 푼다

 

 

찾기 명령어

find 옵션

-name

-perm

-size

 

which 절대 경로를 포함한 위치를 검색한다

whereis 실행 파일 소스(자세히) 보여준다

locate 빠르고 유용함

* updatedb 명령어를 자주 사용해야 하는 단점이 존재

 

updatedb


* 셸은 사용자가 입력한 명령을 해석해 커널에게 전달하거나, 커널의 처리 결과를 사용자에게 전달하는 역할을 한다.

 

실행결과

 

if else 문

실행결과

 

case 문

 

실행결과

 

실행결과

 

for 문

실행결과

* bad for loop variable 오류가 발생한다면 #!/bin/sh로 설정이 되어 있을 가능성이 높으니 bash로 변경합니다.

 

while 문