'학습자료/리눅스'에 해당되는 글 28건

  1. 2012.06.15 :: fstab[펌]
  2. 2012.06.15 :: 리눅스 LVM[펌]
  3. 2012.03.13 :: [펌]리눅스에서 Semaphore 사용시 주의점
  4. 2012.03.13 :: [링크]Semaphore
  5. 2012.03.12 :: [링크]Pthread API Reference
  6. 2012.03.12 :: pthread 기본
  7. 2012.01.17 :: 리눅스 기본
  8. 2012.01.13 :: shell 프로그래밍 기초
학습자료/리눅스 2012. 6. 15. 10:22

ㅁ /etc/fstab

ㅇ 리눅스 파일시스템의 마운트 설정정보 파일

[파일시스템장치] [마운트포인트] [파일시스템종류] [옵션] [덤프] [파일점검옵션]

1. 파일시스템 장치 / 레이블명

2. 마운트 포인트 / 디렉토리명

3. 파일시스템 형식 (ext2, ext3, iso9660, swap ...)

4. 옵션 ([Read Only] or [Read Write])

5. dump => fsck (Y/N)

6. 파일점검옵션 -> 0, 1, 2

ex> /dev/sys /sys sysfs defaults 0 0

/dev/hda3 /users ext3 defaults,usrquota 1 1

#cat /etc/fstab

/파일시스템 /마운트포인트 /파일시스템 /옵션 /dump /파일점검옵션

[file system device name]

/etc/fstab 의 첫 번째로 설정되는 항목으로 파일시스템의 장치명을 설정한다.

즉, /dev/sda1, /dev/sda2 등과 같은 파일 시스템 장치명의 위치이다. 첫 번째 항목에는

" 파일시스템장치명" 으로 표시할 수도 있고, "레이블(Lable)"으로 표시할 수 도 있다.

[mount point]

파일시스템이 마운트 될 위치.

마운트 포인트로서 /etc/fstab 의 두번째 항목이다.

"특정 파일시스템 장치를 어디에 마운트 시킨다." 라고 할 때에 " 어디 " 라는 부분에 해당되는 것이 " 마운트 포인트 " 이다. 디렉토리명이라고 할 수 있다.

[file system type]

파일시스템의 종류를 설정하는 항목으로 /etc/fstab 의 세 번째 항목이다.

파일시스템의 종류는 다음과 같다.

1. ext

초기리눅스에서 사용되었던 파일시스템 타입으로서 현재는 사용하지 않음.

2. ext2

현재도 사용되고 있으며 긴 파일명을 지원하는 것이 특징이다.

3. ext3

저널링파일시스템으로서 ext2에 비해 파일시스템 복구기능과 보안부분을

크게 향상시킨 것으로 기본 파일시스템 타입으로 사용되고 있다.

4. ext4

ext3 다음버전의 리눅스 표준 파일시스템으로서 16TB까지만 지원하던 ext3 타입보다 훨 씬 더 큰 용량까지 지원하며, 삭제파일복구 기능 및 파일 시스템 점검 속도가 크게 빨라진 파일 시스템이다.

5. iso9660

DVD 또는 CD-ROM 의 데이터를 읽고자 할 때에 마운트시에 사용하는 파일

시스템으로서 DVD와 CD-ROM 의 표준 파일시스템으로서 Read Only 로 사용.

6. nfs

Network File System 으로서 원격서버를 마운트 할 때 사용함.

7. swap

스왑파일시스템으로서 스왑공간으로 사용되는 파일시스템에 사용됨.

8. ufs

UNIX File System 으로서 UNIX System 5 계열에서는 표준 파일시스템이다.

9. vfat

Windows 95 / 98 에서 사용, 또는 NTFS 를 지원하기 위한 파일시스템

10. msdos

MS-DOS 파티션을 사용하기 위한 파일시스템

11. hpfs

HPFS 에 대한 파일시스템

12. ntfs

Windows NT / 2000 의 NTFS 파일 시스템을 사용하기 위한 파일시스템

13. sysv

UNIX System V 를 지원하기 위한 파일시스템

14. hfs

Mac 컴퓨터의 hfs 파일시스템을 지원하기 위한 파일시스템

15. ramdisk

RAM 디스크를 지원하는 파일시스템

16. 그외

adfs, autofs, coda, coherent, cramfs, devpts, dfs, jfs, minix, ncpfs, proc, qnx4, reiserfs, romfs, smbfs, tmfs, udf, ufs, umsdos, xenix, xfs 등이 있다.

※ 리눅스 시스템에서 지원 가능한 파일 시스템을 확인하려면 /proc/filesystems 를 보면된다.

[options]

파일시스템을 용도에 맞게 사용하기 위한 파일시스템 속성을 설정하는 옵션으로 네번째 항목

1. default

rw, nouser, auto, exec,suid 속성을 모두 가지는 속성으로,

가장 일반적인 시스템에서 사용되는 속성이다.

2. auto

부팅시 자동으로 마운트 된다.

3. exec

실행파일이 실행되는 것을 허용하는 파일 시스템이다.

4. suid

SetUID 와 SetGID 의 사용을 허용하는 파일 시스템이다.

5. ro

읽기 전용(Read Only)으로 파일시스템으로만 사용된다.

6. rw

읽고 쓰기(Read Write) 파일시스템으로 사용된다.

7. user

일반 계정사용자들도 마운트를 할 수 있는 파일시스템이다.

8. nouser

일반 계정 사용자들은 마운트 할 수 없는 파일시스템으로

오직 root 만이 mount 할 수 있다.

9. noauto

부팅시 자동마운트 되지 않게 한다.

10. noexec

실행파일을 실행되지 못하게 하는 파일시스템

11. nosuid

SetUID 와 SetGID 의 사용을 허용하지 않는 파일시스템

12. usrquota

개별 계정사용자의 Quota 설정이 가능한 파일시스템

13. grpquota

그룹별 Qouta 설정이 가능한 파일 시스템

[dump]

/etc/fstab 파일의 다섯번째 항목으로 0 또는 1 값만 가질 수 있다.

1은 데이터 백업등을 위해 dump 가 가능한 파일시스템이다.

0은 dump 명령으로 덤프되지 않는 파일시스템이다.

[file check options]

/etc/fstab 의 여섯번째 항목으로 0 또는 1 그리고 2 값만 사용할 수 있다.

0 은 부팅시 실행되는 fsck 실행되지 않는 설정이다.

1 은 루트파일시스템을 의미한다.

2 는 루트파일 시스템을 제외한 나머지 파일시스템을 의미한다.

여기서 설정된 파일시스템의 순서를 기준으로 부팅 시 선행되는 fsck의 순서가 결정된다.

ㅁ Exercise

ㅇ /dev/hda1 /root/33 exe3 defaults 1 2

Q> fstab 에서 일어날 수 있는 에러상황

상황 1. fstab 파일에 수정오류 발생 된 경우.

A> 보통은 Login Prompt(Console Windows) 까지 가기 때문에 거기에서 복구할 수 있다.

(Repair filesystem) # mount -o remount rw /

(Repair filesystem) # mount -o remount,rw /
# vi /etc/fstab

상황 2. fstab 파일이 삭제되어 boot 가 안되는 경우.

A> 보통은 위의 화면처럼 boot system mount 중에 멈춘다.

하지만 이것은 grup 이 망가진 것은 아니므로 /etc/fstab 만 새로 생성해주면 된다.

=> single mode 로 진입한다.

single mode 진입하는 방법은 아래를 참조한다.

http://blog.naver.com/goisimasyou/30069542377

=> 이 때, 기다리면 single consloe window 가 나오는데 다음을 따라한다.

sh-3.2#fdisk -l [장치(device)명 확인 할 것]

sh-3.2#mount -o remount rw /

sh-3.2#touch /etc/fstab

sh-3.2#vi /etc/fstab

sh-3.2#exit

#mknod /dev/sda2

#chroot/mnt/sysimage /etc/fstab

이것은 임시 방편이므로, 일부 시스템은 비정상적인 운용 환경을 가질 수 밖에 없다.

따라서, 정상적인 시스템을 운용하고 싶다면, 다시 부팅 되어 시스템에 접근이 가능하므로

/etc/fstab 의 모든 mount 내용을 전부 재기입 하여 주는 것이 좋다.

시스템 관리자라면,

안정적인 서버 운용을 위해 백업 데이터로 /etc/fstab 덮어 쓰는 것이 현명하다.

상황 3. HDD 추가

[파티션(parted), 포멧, 마운트]

마운트포인트 : /mnt/net5

fstab 에 자동마운트 설정

Q> 재부팅후 자동마운트 되는 상황체크후 추가된 하드디스크 제거

Give root password for maintenance (or type Control - D to continue) :

유지 보수를 하려면 root password 를 입력(Read Only mode)하고,

<CTRL>+<D> 하면 reboot 된다.

현재 상황을 복구 하려면, /dev/hdd1 을 재장착 하거나,

/etc/fstab 의 해당장치의 명령줄을 삭제하면 된다.

Read Only Mode 일때는

(Repair filesystem) 1 #mount -o remount rw /

명령을 사용하여 (Read-Write mode) 로 변환후 작업을 진행하면 된다

 

 

[펌] http://blog.naver.com/goisimasyou/30069898523

'학습자료 > 리눅스' 카테고리의 다른 글

[링크] systemctl  (0) 2012.09.21
lsof를 이용하여 공유메모리 를 확인하는 방법[펌]  (0) 2012.09.20
리눅스 LVM[펌]  (0) 2012.06.15
[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Semaphore  (0) 2012.03.13
posted by cozyboy
:
학습자료/리눅스 2012. 6. 15. 09:47

  • 용량이 다른 여러개의 하디드디스크(달라도 된다는 말)를 하나의 하드디스크처럼 사용한다는 개념
  • 이렇게 하나로 묶인 하드디스크는 자동적으로 앞쪽부터 데이터가 채워지게 되므로 각각 연결하여 사용하는 것보다는 훨 편할 것 같다는...

설정방법 및 순서
  • 먼저 필요한 용어들의 개념
    • Physical Volume(PV:물리 볼륨) : /dev/sda1, /dev/sdb1, /dev/sdc1
    • Volume Group(VG:볼륨 그룹) : Physical Volume을 합쳐서 1개의 물리적 그룹으로 만드는 것
    • Logical Volume(LV:논리 볼륨) : Volume Group을 나눠서 논리적 그룹으로 나눔(1개 이상)

  • 전체 구성도

  • vmware에 하드디스크를 여러개 연결한다 ( 테스트를 위해 3개정도)
  • fdisk -l을 사용하여 하드디스크가 연결되었는지 확인한 후
  • fdisk /dev/sd?(해당 하드디스크 장치명)을 사용하여 fdisk 진입
  • 파티션을 생성한 후 중요한 작업 ->>>>>>> t 명령으로 파일시스템 유형을 변경
    • Hex Code : 8e ----->> Linux LVM
    • Hex Code : L ------>> 선택 가능한 파일시스템 정보가 출력됨
  • 위와 같이 연결된 하드디스크를 LVM 타입으로 파티션을 생성한다


제 LVM으로 연결하는 순서만 남았음


  • 여러개의 하드디스크 하나하나를 각각 물리볼륨으로 생성한다
  • pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 ...
    • pvdisplay , pvscan으로 확인
  • 생성된 물리볼륨들을 하나로 묶어서 하나의 볼륨 그룹으로 생성한다
    • vgcreate <생성될 볼륨그룹명> <생선된 물리볼륨> <생선된 물리볼륨> ....
  • vgcreate myVG /dev/sdb1 /dev/sdc1 /dev/sdd1
    • vgdisplay, vgscan으로 확인
  • 생성된 볼륨그룹은 이제 하나의 하드디스크로 볼 수 있으며, fdisk를 사용하여 파티션을 생성한 것처럼 lvcreate를 사용하여 필요한 만큼 나눈다
    • lvcreate -L <용량:MB,GB> -n <생성될 볼륨그룹의 파티션 이름> <볼륨그룹 이름>
      • lvcreate -L 500MB -n myLG1 myVG
  • 이렇게 생성된 볼륨그룹의 파티션은 mkfs 를 사용하여 포맷해 준다
    • mkfs -t ext3 /dev/myVG/myLG1
  • 위의 과정을 진행하여 여러개의 하드디스크가 하나로 묶여서 필요한 각가의 파티션이 생성되었다. 이제 필요한 디텍터리에 마운트 작업을 한 후 사용하면 끝
    • mount /dev/myVG/myLG1 /data1
    • 확인 : df -h or mount
  • mount 명령을 사용하면 재부팅 후 자동적으로 마운트 되지 않기 때문에 /etc/fstab에 마운트 내용을 적어주면 재부팅 후에도 자동적으로 마운트되어 사용할 수 있다.
설정된 lvm을 해제하는 작업
  • 위에서 설정한 반대 순서로 진행하게 된다
  • lvremove <생성된 볼륨그룹 파티션>
  • vgremove <생성된 볼륨그룹 이름>
  • pvremove <생성된 물리볼륨 경로> [생성된 물리볼륨 경로] ..
위와같이 하면 lvm 설정 및 해제 끝

 

'학습자료 > 리눅스' 카테고리의 다른 글

lsof를 이용하여 공유메모리 를 확인하는 방법[펌]  (0) 2012.09.20
fstab[펌]  (0) 2012.06.15
[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Semaphore  (0) 2012.03.13
[링크]Pthread API Reference  (0) 2012.03.12
posted by cozyboy
:
학습자료/리눅스 2012. 3. 13. 09:54

리눅스에서 Semaphore 사용시 주의점

최근 시스템에 문제가 있어서 디버깅을 하다가 디버거를 붙였다 나오면, 세마포어가 비정상 release 되는것처럼 보이는 희한한 버그를 발견했다.

조사해 보니 세마포어가 release되는게 아니라 sem_wait() 에서 EINTR을 받고 sem_wait() 가 -1을 리턴하는 문제였다.

일부 시그널 핸들러에 의해 이렇게 되는 경우가 있다고 하는데, 따라서 세마포어를 쓸때는 그냥 쓰지 말고 다음과 같이 wrapper 함수를 하나 만들어서 쓰는게 좋을것 같다.

void sema_wait_nointr(sem_t *sem)
{
int sema_result;

sema_result = sem_wait(sem);
while ((sema_result == -1) && (errno == EINTR))
{
sema_result = sem_wait(sem);
}
}


위 문제는 다음의 코드로 확인해 볼수 있다.

<sema_test.c>

#include <stdio.h>
#include <semaphore.h>

sem_t sema_block;

int main()
{
sem_init(&sema_block, 0, 0);

while (1)
{
int sem_result;
sem_result = sem_wait(&sema_block);
printf("Semaphore is released! : %d\n", sem_result);
perror("Semaphore error! ");
}
}

위 파일을 컴파일한후 실행 시켜보자.

$ gcc sema_test.c -l pthread
$ ./a.out &
[1] 15965
$ pstack 15965
#0 0x00b44402 in __kernel_vsyscall ()
#1 0x006f314e in sem_wait@GLIBC_2.0 () from /lib/libpthread.so.0
#2 0x0804847d in main ()
Semaphore is released! : -1
Semaphore error!: Interrupted system call


pstack 명령으로 허무하게 세마포어가 그냥 뚤려버리는것을 볼수가 있다.

혹시나 싶어 mutex 를 가지고 테스트 해보니 mutex 에서는 이런 문제가 발생하지 않는다.

* 3월 31일 추가
- 다른 child process 나 thread 에서 system() 과 같은 함수를 수행해도 (아마도 수행완료후 SIGCHLD 발행시?)
똑같은 증상이 나타나는것을 확인했다.

[출처]http://cityelf.egloos.com/9370134

'학습자료 > 리눅스' 카테고리의 다른 글

fstab[펌]  (0) 2012.06.15
리눅스 LVM[펌]  (0) 2012.06.15
[링크]Semaphore  (0) 2012.03.13
[링크]Pthread API Reference  (0) 2012.03.12
pthread 기본  (0) 2012.03.12
posted by cozyboy
:
학습자료/리눅스 2012. 3. 13. 09:54
[한빛] 리눅스에서의 세마포어1
http://www.hanb.co.kr/network/view.html?bi_id=1398

[한빛] 리눅스에서의 세마포어2
http://www.hanb.co.kr/network/view.html?bi_id=1399

[joinic] POSIX Semahpore & System V Semaphore
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/IPC/semaphores


 


 

'학습자료 > 리눅스' 카테고리의 다른 글

리눅스 LVM[펌]  (0) 2012.06.15
[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Pthread API Reference  (0) 2012.03.12
pthread 기본  (0) 2012.03.12
리눅스 기본  (0) 2012.01.17
posted by cozyboy
:
학습자료/리눅스 2012. 3. 12. 10:50

'학습자료 > 리눅스' 카테고리의 다른 글

[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Semaphore  (0) 2012.03.13
pthread 기본  (0) 2012.03.12
리눅스 기본  (0) 2012.01.17
shell 프로그래밍 기초  (0) 2012.01.13
posted by cozyboy
:
학습자료/리눅스 2012. 3. 12. 10:22

기본 쓰레드 함수


2.1. pthread_create / 2.2. pthread_join


thread 를 처음 배우면서 시작하는 것이 pthread_create / pthread_join 이겠지요?

Main 함수 하나에서 2개의 thread 를 pthread_create 함수로 생성합니다.

각각의 thread 함수는 t_function 을 인자로 받으며 함수를 실행합니다.

t_function 은 while(1) 로 무한 loop 를 돌고 있내요.

그리고 pthread_join( 0, 1) 로 인해 Main 함수에서 2개의 thread 가 종료될 때까지 wait 하게 되내요.

결국 1개의 기다리는 Main 함수와 2개의 무한 Loop 를 도는 thread 가 실행 됩니다... 강제 종료 될 때까지 .. ^^

main 에서 join 을 하지 않는 경우, main 함수가 그냥 끝나기 때문에 thread 가 계속 동작하는것을 보기 위해 join을 합니다.

아니면 .. getchar() 정도로 사용자 입력을 기다리다가 끝내버려도 되겠죠?

사실 join 함수가 하는 일은 쓰레드자원을 해제 시켜주는 거라고 하내요. 해제 시켜주기 위해 ..

일이 끝날때 까지 계속 기다리는거다 .. 라고 생각하려 합니다.


위 예제에서는 thread 가 무한 loop 를 돌고 있지만 , thread 가 항상 loop 를 돌지는 않겠죠.

문제는 thread 가 종료하는 경우에도 메모리는 반환되지 않는다고 합니다.

이럴 경우에는 pthread_detach() 함수를 사용하면 된다고 하내요.


2.4. pthread_exit


pthread_create 로 만들어진 thread 함수가 3초간 loop 를 돌다가 pthread_ext() 함수를 호출합니다.
thread 를 빠져나온다는 말 이겠죠? 3초 후 join 으로 기다리던 main 함수도 종료가 되면서 프로그램이 정상 종료됨을 알 수 있습니다.

뭔가 thread 를 완전히 close 시킬 때 사용하면 되겠내요.

pthread_exit 는 현재 호출되어서 실행중인 쓰레드를 종료시킬때 사용한다. 기본적으로 POSIX 에서는 다른쓰레드가 강제로 다른 쓰레드를 종료 시킬수 없으며, 쓰레드가 스스로 pthread_exit 를 호출하여 종료하는수밖에 없다.

쓰레드가 이 시스템콜을 호출하면 커널은 쓰레드를 없애게된다. pthread_exit 의 결과는 pthread_join() 을 통하여 최종적으로 없어지게 된다.

[joinic 함수 형태 참고]
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/3/pthread_exit?cx=002661009167463862046%3A8oq6cxlfibu&cof=FORID%3A9&q=pthread_exit&sa=Search&ie=EUC-KR#1257

2.5. pthread_cleanup_push


2.4. 예제와 거의 동일 한 예제내요. 다만 pthread_cleanup_push 라는 함수를 호출해 주고 있는대 ..

pthread_cleanup_push 함수로 특정 함수를 인스톨 하면

pthread_exit() 를 호출 할 때 알아서 인스톨 된 함수를 한번 호출해 주면서 thread 를 종료한다고 합니다.

음 .. 객체의 소멸자 같은 기능이내요.

thread 에서 동기화를 위해 걸어두었던 mutex lock 이나 메모리 해제를 주로 하면 되겠습니다. ^^

[첨가] : http://www.morenice.kr/78
pthread_cleanup_push 는 스택형식으로 관리 되어 여러개의 함수를 등록할 수 있고 thread가 종료되면 제일 마지막에 등록된 함수부터 자동으로 호출됩니다. 또한 pthread_cleanup_pop 함수를 통해 등록된 함수들을 스택 제일 마지막에 있는 함수부터 등록 해제 할 수 있습니다.

참고사항으로 pthread_cleanup_push와 pop은 함께 사용해야 합니다.
예를 들어, 아래 예제 함수와 같이 함수내에 두개가 꼭 쌍으로 있어야 합니다

[joinic 함수 형태 참고]
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/3/pthread_cleanup_push
joinic pthread_cleanup_push 설명, 예제,

2.7. pthread_self

thread 가 실행 중인 함수 안에서 pthread_self() 라고 외치면 thread 고유의 id 를 얻을 수 있습니다.

동일한 함수를 실행중인 thread 를 구분해야 할 경우 혹은 클래스마다 thread 를 가지고 있는 경우 객체 할당이 될 때 id 를 가지고 있어도 좋겠내요.


[펌] :
http://libmarco.tistory.com/54


[참고 사이트]
joinic 리눅스 표준라이브러리 (pthread 함수 외 다수 libs):
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/3

'학습자료 > 리눅스' 카테고리의 다른 글

[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Semaphore  (0) 2012.03.13
[링크]Pthread API Reference  (0) 2012.03.12
리눅스 기본  (0) 2012.01.17
shell 프로그래밍 기초  (0) 2012.01.13
posted by cozyboy
:
학습자료/리눅스 2012. 1. 17. 09:53

http://linuxmanpages.com
맨페이지

http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/man
시스템 라이브러리 정리, 한글 man 페이지

http://www.viper.pe.kr/docs/make-ko/make-ko_toc.html
http://wiki.kldp.org/KoreanDoc/html/GNU-Make/
한글 Make 설명

http://wiki.falinux.com
C 라이브러리 함수[설명 및 예제]

http://korea.gnu.org/manual/

GNU Korea 매뉴얼 페이지

http://busybox.net
리눅스 시스템 프로그래밍 오픈 소스


http://lxr.linux.no/

리눅스 소스 제공 사이트


'학습자료 > 리눅스' 카테고리의 다른 글

[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Semaphore  (0) 2012.03.13
[링크]Pthread API Reference  (0) 2012.03.12
pthread 기본  (0) 2012.03.12
shell 프로그래밍 기초  (0) 2012.01.13
posted by cozyboy
:
학습자료/리눅스 2012. 1. 13. 14:47

http://blog.naver.com/jamesy?Redirect=Log&logNo=60140853570
배쉬 쉘구조

http://nick_jenny.blog.me/30087755915
쉘스크립트(if, for, while, 함수)  :  함수사용법 설명 중 함수 이름뒤에 ()표시를해야합니다.

http://blog.naver.com/timberx?Redirect=Log&logNo=30036391951
예제로 알아보 는 bash for문

http://bear.sage.kr/34
case문 사용


htp://blog.naver.com/titan79th?Redirect=Log&logNo=140022155339
sh, bash, csh, ksh (걍 궁금해서)

sh는 bone shell이라고 불리우며 가장 기본적인 쉘입니다.

쉘이란 커널과 사용자를 연결해주는 하나의 매개체 역할을 한다고 보시면 됩니다.

가장 기본이 되는 쉘이 바로 sh입니다.

쉘은 여러가지 형태로 만들어 지지만 크게 csh 계열과 ksh계열로 분리가 됩니다.

csh는 c 언어를 기초로 만들어진 쉘입니다.(관리자 중심)

ksh는 korn shell이라고 불리며 사용자 중심으로 만들어진 쉘입니다.

csh는 후에 tcsh(확장c쉘) 로 확장 됩니다

리눅스는 bash 라는 쉘을 사용하며 이 의미는 born again shell의 의미를 가지고 있습니다.

bash는 csh의 관리적인 측면과 ksh의 사용자 편의성 측면을 모두 고려하여 만들어진 쉘입니다.

참고로 sun사의 solaris 는 ksh를 사용합니다.

그외 타 유닉스들도 각자 자기에 맞는 쉘을 사용하고 있습니다.

 

마지막으로 유닉스(리눅스포함)는 대부분의 쉘을 호환하여 사용할 수 있습니다.

예를 들면 리눅스에서 bash쉘을 사용하다가 csh로 바꾸거나 ksh로 바꾸는등 자기에게 맞는 쉘을 선택해서 사용할 수 있습니다.




'학습자료 > 리눅스' 카테고리의 다른 글

[펌]리눅스에서 Semaphore 사용시 주의점  (0) 2012.03.13
[링크]Semaphore  (0) 2012.03.13
[링크]Pthread API Reference  (0) 2012.03.12
pthread 기본  (0) 2012.03.12
리눅스 기본  (0) 2012.01.17
posted by cozyboy
: