개인 학습용 자료로 GPT 찾아본 내용. 

부정확하면 다시 찾아보세요. 

 

------

 

set -o pipefail 는 bash 같은 셸에서 파이프라인(|)의 에러 처리 방식을 바꾸는 옵션이야.


🔧 기본 동작 (pipefail 없이)

일반적으로 쉘에서 파이프라인은 맨 마지막 명령의 종료 코드만 기준으로 성공/실패를 판단해.

 
false | true
echo $?
 

👉 결과: 0 (성공)

  • false는 실패(1)
  • true는 성공(0)
  • 👉 마지막 명령(true)이 성공이므로 전체가 성공으로 처리됨

➡️ 앞에서 실패해도 무시되는 문제 있음


✅ set -o pipefail 적용 시

 
set -o pipefail

false | true
echo $?
 

👉 결과: 1 (실패)

  • 파이프라인 내 하나라도 실패하면 전체 실패로 처리
  • 정확히는: 가장 마지막으로 실패한 명령의 exit code 반환

📌 왜 쓰냐?

실무에서 매우 중요함 (특히 DevOps / 스크립트)

예:

 
cat file.txt | grep "keyword" | sort
 
  • file.txt 없으면 cat 실패
  • 하지만 grep, sort는 정상 실행 → 결과적으로 성공처럼 보임 ❌

👉 pipefail 없으면 오류를 놓침

👉 pipefail 있으면:

  • cat 실패 → 전체 실패 → 바로 감지 가능 ✅

💡 보통 같이 쓰는 옵션

 
set -euo pipefail
 

의미:

  • -e: 에러 나면 즉시 종료
  • -u: 정의 안된 변수 사용 시 에러
  • -o pipefail: 파이프라인 에러 감지

👉 "안전한 bash 스크립트 기본 3종 세트"


🔥 한 줄 요약

👉 set -o pipefail = 파이프라인 중간에서 실패해도 무조건 실패로 처리하게 만드는 옵션

 

WSL 은 Windows Subsystem for Linux로, 간단히 Windows에서 linux를 사용할 수 있는 기능입니다. 

VMware 나 Virtual Box 가 없어도 windows 에서 Linux를 사용할 수 있게 해 줍니다. 

(일일이 디스크 설정, 네트웍 설정 하나하나 안 해줘도 되고. 얼마나 좋은 일인지..!!! ) 

 

자세히 보고 싶으신 분은 아래 나무위키를 참고 해 주시고요, 

https://namu.wiki/w/UNIX/Microsoft%20Windows

 

UNIX/Microsoft Windows - 나무위키

WSL이 나오기 이전에 윈도우 XP나 윈도우 7 등에서는 Subsystem for UNIX-based Applications(aka SUA)라는 것이 있었지만, 리눅스와의 호환성이 부족해서 일부 서버 어플리케이션 외에는 널리 사용되지 않았다

namu.wiki

자신의 PC 가 가능한 버전 (Windows 10 버전 2004 이상(빌드 19041 이상) 또는 Windows 11 )이면 power shell 실행해서 아래 명령어만 해도 됩니다. 

(Windows + R (실행) -> powershell (엔터)  후 아래 입력)

// 1. wsl 설치
wsl --install

// 2. Ubuntu 설치
wsl --install -d Ubuntu

(출처 : https://learn.microsoft.com/ko-kr/windows/wsl/install )

 

적정버전이 아니면, 다음과 같이 실행합니다. 

// 대부분 powershell 에서 실행. 심지어 관리자 권한으로 실행도 있음. 미리 켜 놓읍시다. 
// 방법 : windows 키 -> powershell 입력 -> 나오는 powershell 아이콘 우클릭하여 관리자 실행

// 1. Linux 용 windows 하위 시스템 옵션 기능 사용 (powershell 관리자 실행)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart


// 2. wsl2 사용을 위한 버전 확인 / 준비
// 확인방법 : windows 키 + R  (실행) -> winver 입력, 확인
// x64 시스템의 경우 버전 1903 이상, 빌드 18362 이상
// arm64 시스템의 경우 버전 2004 이상, 빌드 19041 이상
// 해당 버전이 안되면 windows update 를 해서 version 을 높입니다. 

// 3. VM(virtual machine) 기능 사용 (powershell 관리자 실행)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

// 4. Linux 커널 업그레이드 패키지 다운로드
x64 의 경우 : https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
arm64 의 경우 : https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi
// 종류를 모르겠으면 powershell 실행 후, systeminfo 입력
// (windows 사이트에서는 결과에서 "System Type" 으로 검색하라 하는데, 우리는 당당하게 "시스템 종류" 로 나옵니다. 

// 5. WSL2 를 기본 버전으로 설정
(powershell) 
wsl --set-default-version 2

(출처 : https://learn.microsoft.com/ko-kr/windows/wsl/install-manual )

 

참고로 systeminfo 치고 여기 보면 됩니다. 

PS C:\Users\User> systeminfo

(중략) 

시스템 부트 시간:        2023-02-02(목), 오전 8:00:52
시스템 제조업체:         LG Electronics
시스템 모델:             15ZB95N-GPLCL
시스템 종류:             x64-based PC
프로세서:                프로세서 1개 설치됨
                         [01]: Intel64 Family 6 Model 140 Stepping 1 GenuineIntel ~2419Mhz

(후략)

다음은 ubuntu 설치인데, 

설치하고자 하는 패키지를 확인하고, 

PS C:\Users\User> wsl --list --online
다음은 설치할 수 있는 유효한 배포 목록입니다.
'wsl --install -d <배포>'를 사용하여 설치하세요.

NAME               FRIENDLY NAME
Ubuntu             Ubuntu
Debian             Debian GNU/Linux
kali-linux         Kali Linux Rolling
SLES-12            SUSE Linux Enterprise Server v12
SLES-15            SUSE Linux Enterprise Server v15
Ubuntu-18.04       Ubuntu 18.04 LTS
Ubuntu-20.04       Ubuntu 20.04 LTS
Ubuntu-22.04       Ubuntu 22.04 LTS
OracleLinux_8_5    Oracle Linux 8.5
OracleLinux_7_9    Oracle Linux 7.9
PS C:\Users\User>

원하는 이름을 바로 잘 붙여 작성해 줍니다. 

wsl --install -d [종류]

(예시) PS C:\Users\User> wsl --install -d Ubuntu

 

더보기

참고.. 해당 도움말. 


Linux용 Windows 하위 시스템 관리 인수:

    --도움말
        사용 정보를 표시합니다.

    --install [옵션]
        추가적인 Linux용 Windows 하위 시스템 배포를 설치합니다.
        유효한 배포 목록은 ‘wsl --list --online'을 사용하세요.

        옵션:
            --distribution, -d [인수]
                이름별로 배포를 다운로드하고 설치합니다.

                인수:
                    유효한 배포 이름(대소문자 구분 안 함).

                예:
                    wsl --install -d Ubuntu
                    wsl --install --distribution Debian

이후, linux 가 설치되며 팝업이 나오면, username 등 설정을 하고 사용하면 됩니다. 

(별개의 운영체제이므로, windows 와 관련없이 사용하고픈 이름 사용하면 됩니다. ) 

WSL 을 통한 Linux 처음 동작시 설정 화면. (화면은 Ubuntu 22.04 설치 화면)

이때 작업표시줄에 뜬 아이콘을 작업표시줄에 고정 해주면,

다음에는 작업표시줄에 아이콘 한번 클릭으로 바로 사용 시작할 수 있습니다. 

'C.S. > Linux' 카테고리의 다른 글

set -o pipefail  (0) 2026.04.29
Linux 에서 samba 서버에 접근하기.  (0) 2011.09.01
Linux 에서 Java (sun-java6-jdk, jre, sun-java5-jdk, jre) 설치 문제.  (0) 2011.09.01
Linux 사용자 추가  (0) 2011.08.26
Ubuntu 에서 sudo 사용하기.  (0) 2011.08.24

자료 출처 : http://www.brennan.id.au/18-Samba.html#smbclient
참고로 samba 관련 많은 방법들이 여기 있으니 참고하시길... 
다만, 자료는 모두 영어로 되어 있음. 

linux 에서 samba 서버에 접근하여 연결하고자 할 때 다음을 따라 하면 된다. 

1. samba 서버 상태 확인. 
자신의 계정이 alice 이고, 도메인이 galaxy 인 경우. 
(윈도우에서 \\galaxy 하면 접근이 되는 경우. ) 

[bash]# smbclient -U alice -L galaxy
를 입력하면 해당 서버의 상태가 나오게 된다. 
-U를 이용하여 계정을 넣지 않으면 default 는 root 가 된다. 

Domain=[GALAXY] OS=[Unix] Server=[Samba 3.0.10-2]

        Sharename       Type      Comment
        ---------       ----      -------
        Shared          Disk      Global Share - All Users
        SmallGroup      Disk      Small Share - Few Users
        Financial       Disk      RESTRICTED - Financial Cell
        FTP-Server      Disk      READ ONLY - Corp FTP Server
        IPC$            IPC       IPC Service (Samba Server)
        ADMIN$          IPC       IPC Service (Samba Server)
        bubblejet       Printer   HP PhotoSmart 7200 Series
        laser           Printer   Brother HL-1430 Laser Printer
        alice           Disk      Home Directory

Domain=[GALAXY] OS=[Unix] Server=[Samba 3.0.10-2]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        MYGROUP              GALAXY


위와 같은 상세가 나오게 된다면 sharename 의 이름을 쓸 수 있다는 것이다. 

2. 연결
그러면 다음과 같은 방법으로 연결을 하도록 하자. 

[bash]# smbmount //winbox1/Shared /media/winbox1/shared -o guest
[bash]# smbmount //winbox1/C$ /media/winbox1/cdrive -o username=administrator
[bash]# mount -t smbfs //winbox1/C$ /media/winbox1/cdrive -o username=administrator

첫번째는 guest 접근. winbox1 의 Shared 에 접근하고, 자신의 local (linux PC) 의  /media~~~~  의 주소에 연결한 것이다. 

두번째, 세번째는 동일한데, winbox1 의 C 드라이브에 연결, 자신의 local 의 /media~~~ 에 연결한 것이며 id를 administrator 로 한 것이다. 
(이럴 경우 password  를 묻게 된다. ) 

[bash]# smbmount //winbox1/C$ /media/winbox1/cdrive -o username=administrator,password="secret"

이것은 비밀번호 까지 설정한 상태. 



3. 연결 해지. 
심심하면 mount 명령 한번 해보자. 
위의 두, 세번째 명령이 같다는 것은 smbmount 는 결국 mount 를 이용하여 연결 함을 알 수 있다. 
연결해제를 하려면 당연 umount 를 이용, 연결해제 할 수 있다. 

[bash]# umount /media/winbox1/cdrive
이런 식으로 자신의 mount 된 경로를 이용하여 mount 해제 할 수 있다. 



4. root user 가 아닌 경우 
참조 : Ubuntu: smbmount: mount error(1)
root user 가 아니면 mount.cifs  umount.cifs 의 권한 문제로 위의 명령들이 실행되지 않는다.  

다음과 같은 error 가 발생 할 경우. 
mount error(1): Operation not permitted

다음과 같이 명령어를 이용, 권한을 부여하도록 하자.
먼저 위치를 확인.

which smbmount
which smbumount

실행하면 경로가 나온다. (ex. /usr/bin/smbmount  )
그러면 해당 경로를 다음과 같이 실행.

sudo chmod +s 경로+실행명
ex : sudo chmod +s /usr/bin/smbmount

같은 방법으로 smbumount 도 설정. 
ex : sudo chmod +s /usr/bin/smbumount


 

추가)
 mount.cifs: permission denied: no match for ~~~~~~ found in /etc/fstab
의 에러 메시지가 뜨는 경우...

혹시 ubuntu 10.10 이상의 버전을 쓰고 있지 않은가?
(외국의 포럼에서는 10.04 -> 10.10 upgrade 시 발생했다고 나오고 있음..
출처 : https://bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/657900 ) 

권한 관련으로 sudo 를 해서 실행을 해야만 진행이 된다.
smbmount 와 umount 앞에 sudo 를 살짝 붙여넣고 쓰도록 하자.

 

'C.S. > Linux' 카테고리의 다른 글

set -o pipefail  (0) 2026.04.29
WSL 사용하기  (0) 2023.02.02
Linux 에서 Java (sun-java6-jdk, jre, sun-java5-jdk, jre) 설치 문제.  (0) 2011.09.01
Linux 사용자 추가  (0) 2011.08.26
Ubuntu 에서 sudo 사용하기.  (0) 2011.08.24
java6 jdk, jre 설치 문제시... 

android open source project 사이트에서는 다음과 같이 하라고 되어 있다. 
아래를 따라 하는 것이 가장 좋을듯(????) 

java6 설치 시 위의 것, java5 설치 시 아래 것을 하는 것을 따라 하면 된다. 
출처 : http://source.android.com/source/initializing.html

Installing the JDK

The Sun JDK is no longer in Ubuntu's main package repository. In order to download it, you need to add the appropriate repository and indicate to the system which JDK should be used.

Java 6: for Gingerbread and newer

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

Java 5: for Froyo and older

$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk





난 아래와 같이 해서 해결 완료.



출처 : http://stackoverflow.com/questions/3747789/how-to-install-the-sun-java-jdk-on-ubuntu-10-10-maverick-meerkat

Installation:

sudo add-apt-repository "deb http://archive.canonical.com/ maverick partner"
sudo apt
-get update
sudo apt
-get install sun-java6-jre sun-java6-plugin

Use as default:

sudo update-alternatives --config java

Installing JDK:

sudo apt-get install sun-java6-jdk

Source code (to be used in development):

sudo apt-get install sun-java6-source
 

믿거나 말거나 실행과 해결은 직접 수행하는 본인의 몫..  

'C.S. > Linux' 카테고리의 다른 글

set -o pipefail  (0) 2026.04.29
WSL 사용하기  (0) 2023.02.02
Linux 에서 samba 서버에 접근하기.  (0) 2011.09.01
Linux 사용자 추가  (0) 2011.08.26
Ubuntu 에서 sudo 사용하기.  (0) 2011.08.24

 Linux 에서 사용자를 추가 할 경우 

adduser id


일반적으로 GUI 모드에서 사용할 수 있는 사용자와 그룹 항목에서 사용자를 생성하면, 
사용자의 id 가 regular expression 에 의해서 특정 양식이 맞는지 확인되게 된다. 
하지만 위 명령으로 아이디를 생성할 경우

옵션을 이용하여 형식 검사도 피할 수 있는 이점

이 있다. 

( --force-badname )

당연 실행 권한은 관리자 권한. 

'C.S. > Linux' 카테고리의 다른 글

set -o pipefail  (0) 2026.04.29
WSL 사용하기  (0) 2023.02.02
Linux 에서 samba 서버에 접근하기.  (0) 2011.09.01
Linux 에서 Java (sun-java6-jdk, jre, sun-java5-jdk, jre) 설치 문제.  (0) 2011.09.01
Ubuntu 에서 sudo 사용하기.  (0) 2011.08.24
ubuntu 에서 sudo 사용하기. 

1. passwd root 를 이용해서 root 설정을 하고 쓰는 방법.

2. root 권한을 사용 가능한 user 일 경우

2-1. sudo su 이용하여 자신의 password를 입력 하고 root 계정으로 전환, 사용한다.

2-2. sudo su 에서 권한이 안 될 경우...
이 경우는 그룹 설정을 바꿔줘야 한다. 
root 되는 계정을 이용해서 사용하고 싶은 계정의 설정을 바꾸자.
(참고자료 : 우분투에서 수도 (sudo) 사용자 추가방법, sudoers 
)

# sudo vi /etc/group

입력 하여 
바로 " /admin" (엔터)  - vi 의 find 기능. 
하여 admin 으로 해당되는 라인으로 가자. 
(admin 이 몇번인지는 좀 다를 수도 있다. 어쨌든 admin)

admin:x:112:test

위와 같이 되어 있다면 admin 은 112번 설정으로 되어 있으며, test 가 admin 그룹의 설정이 적용되어 있는 것이다. 
다음과 같이 바꿔주자. 

admin:x:112:test,myaccount

(myaccount 대신 당연 당신이 설정하고 싶은 id)
입력 후 
(esc - 편집모드 종료) , ":wq"  (엔터)
쓰고 종료. 

이러면 이제 sudo su 를 이용하여 root 를 쓸 수 있게 된다. 



참고로 ubuntu 는 데비안계열이며, root 지양적이다. 
(즉, root 를 쓰지 마라는 것이다. 되도록.
보안이나 시스템 안정성 등 root 를 쓰는 것은 좋지 않다. ) 
필요할 때만 최소한으로 쓰자...  

'C.S. > Linux' 카테고리의 다른 글

set -o pipefail  (0) 2026.04.29
WSL 사용하기  (0) 2023.02.02
Linux 에서 samba 서버에 접근하기.  (0) 2011.09.01
Linux 에서 Java (sun-java6-jdk, jre, sun-java5-jdk, jre) 설치 문제.  (0) 2011.09.01
Linux 사용자 추가  (0) 2011.08.26

+ Recent posts