기본 셸 확인

  • 프롬프트 모양 참조
    기본 프롬프트 : $
    C셸의 기본 프롬프트 : %
  • 사용자 정보 확인 : /etc/passwd 파일
    사용자 정보의 가장 마지막에 나온 /bin/bash가 기본 셸

기본 셸 바꾸기

명령어 : chsh

  • 기능 : 사용자 로그인 셸을 바꾼다
  • 형식 :chsh [옵션][사용자명]
  • 옵션 : -s shall: 지정한 셸(절대 경로)로 로그인 셸을 바꿈
    -l : /etc/shells 파일에 지정된 셸을 출력한다
  • 사용 예 : chsh -s /bin/sh user1

로그인 셸과 서브 셸

  • 프롬프트에서 다른 셸을 실행할 수 있는데 이를 서브 셸이라 함
  • 서브 셸은 또 다른 서브 셸 생성 가능
  • 서브 셸을 종료하는 명령은 ^d(+d), exit 등 사용
  • 로그인 셸에서 로그아웃하면 접속 해제

셸 내장 명령

  • 셸은 자체적으로 내장 명령을 가짐

  • 셸 내장 명령은 별도의 실행 파일이 없고 셸 안에 포함

  • 일반 명령의 경우 : 실행 파일은 바이너리 파일이므로 cat 명령으로 파일의 내용을 확인할 수 없다.

배시 셸의 출력 명령

명령어:echo

  • 기능 : 화면에 한 줄의 문자열을 출력
  • 형식 : echo [-n][문자열]
  • 옵션 : -n : 마지막에 줄 바꿈을 하지 않는다.

명령어:printf

  • 기능: 자료를 형식화하여 화면에 출력
  • 형식: printf [옵션][인수]
  • 옵션: %d, \n등 C언어 printf 함수의 형식을 지정
  • 사용 예 : printf "%d +%d = %d\n" 10 10 20 // 10 + 10 = 20

특수문자 사용하기

  • 주요 특수문자는 *,?,|,;,[ ], ~, '',"",`` 등

특수문자 *(별표)

  • 임의의 문자열을 나타내는 특수문자로 0개 이상의 문자로 대체

ls * : 현재 디렉터리의 모든 파일과 서브 디렉터리를 나열, 서브 디렉터리의 내용도 출력

cp /tmp 현재 디렉터리의 모든 파일을 /tmp 디렉터리 아래로 복사
ls -F t
: t,tmp,temp와 같이 파일명이 t로 시작하는 모든 파일의 이름과 파일 종류를 출력한다. t도 해당.

cp *txt ../ch3 확장자가 txt인 모든 파일을 상위 디렉터리 아래의 ch3 디렉터리로 복사.

ls -l h*d : 파일명이 h로 시작하고 d로 끝나는 모든 파일의 상세 정보를 출력.

특수문자 ?와 []

-하나의 문자를 나타내는 데 사용

  • ?는 길이가 1인 임의의 한 문자를 , []는 괄호 안에 포함된 문자 중 하나를 나타냄

ls t?.txt : t다음에 임의의 한 문자가 오고 파일의 확장자가 txt인 모든 파일의 이름을 출력

ls -l tmp[135].txt : tmp 다음에 1,3,5중 하나가 오고 파일의 확장자가 txt인 모든 파일의 이름 출력

ls -l tmp[1-3].txt 1-3은 1부터 3까지의 범위이며 존재하면 모두 출력한다.

ls [0-9] 파일명이 숫자로 시작하는 모든 파일의 목록을 출력한다.
ls [A-Za-z]
[0-9] 파일명이 영문자로 시작하고 숫자로 끝나는 모든 파일의 목록을 출력한다.

특수문자 ~와 -

  • ~와-는 디렉터리를 다타내는 특수문자

  • ~만 사용하면 현재 작업중인 사용자의 홈 디렉터리 표, 다른 사용자의 로그인 id와 함께 사용하면 해당 사용자의 홈 디렉터리 표시

  • -는 cd 명령으로 디렉터리를 이전하기 직전의 작업 디렉터리를 표시

cd *t.txt ~/ch3 확장자가 txt인 모든 파일을 현재 작업중인 사용자의 홈 디렉터리 아래 tmp 디렉터리로 복사한다.

cp ~user2/linux.txt user2라는 사용자의 홈 디렉터리 아래에서 linux.txt파일을 찾아 현재 디렉터리로 복사한다.

cd - 이전 작업 디렉터리로 이동한다.

특수문자 ;과 |

  • ;과 |는 명령과 명령을 연결
  • ;은 연결된 명령을 왼쪽부터 차례대로 실행
  • |는 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달

date| ls|pwd 왼쪽부터 차례대로 명령을 실행한다. 즉 날짜를 출력한 후 현재 디렉터리의 파일목록을 출력하고, 마지막으로 현재 작업 디렉터리의 절대 경로를 보여준다.

ls -al /|more 루트 디렉터리에 있는 모든 파일의 상세 정보를 한 화면씩 출력한다. 이 명령의 결과가 more 명령의 입력으로 전달되어 페이지 단위로 출력되는 것이다.

특수문자 '',""

  • 작은따옴표와 큰 따옴표는 문자를 감싸서 문자열로 만들어줌
  • ''는 모든 특수문자를 , ""는 $, ``,\를 제외한 모든 특수문자를 일반 문자로 간주하여 처리.

echo 'SHELL:문자열그자체로출력echo"SHELL' : 문자열 그 자체로 출력 echo "SHELL' : 셸 환경 변수인 SHELL에 저장된 값인 현재 셸의 종류가 화면에 출력된다. /bin/bash

특수문자 ``

  • 셸은 ''로 감싸인 문자열을 명령으로 해석. 명령의 실행결과로 전환

echo "Today is date" : date가 명령으로 해석됨

ls/suer/bin/uname -m : 명령의 실행 결과를 문자열로 바꾸어 파일명으로 사용한다.

**특수문자 **

  • 특수문자 바로 앞에 사용되는데 해당 특수문자를 인반 문자처럼 처리.

ls -l t* t*라는 이름을 가진 파일의 상세 정보를 출력.

특수문자 >,<,>>

-입출력의 방향을 바꾸는 특수문자.

ls -l > res : ls -l 명령의 실행결과를 화면이 아닌 res 파일에 저장.

0개의 댓글