반응형 TechNical/Unix12 unix에서 문자를 숫자형식으로 간단히 변환하기 0으로 채워서온 필드에서 해당 영역만큼 잘라서 숫자형식으로 표기를 할때, 0001이라는 문자는 숫자로는 1을 의미한다. 이거를 요렇게 해보면.. echo $((0001)) 그러면 예쁘게 1이 찍힌다. 그런데 0010을 찍어 본다면? echo $((0010)) 말도 안되게 8이 찍힌다. 환경에 따라 다를 수도 있다. unix가 이걸 8진수로 인식을 하는 것 같다. 그래서 10진수라고 명시를 해 줘야 한다. echo $((10#0010)) 이렇게 하면 예쁘게 10이 찍히는 걸 볼 수 있다. 역시나 테스트를 할 때는 문제가 될 만한 여러가지 케이스를 상정해서 해 봐야 한다..... ps. 쓰고 보니 2년전에도 똑같은 짓을 했군........ 2022. 11. 8. unix sendmail html format unix에서 html 포맷으로 메일을 발송해보자. mailx 는 간단하게 발송할 수 있는데 별짓을 다 해봐도 html 양식으로는 발송이 안 된다. 무슨 패키지를 깔면 된다는데 막 설치 할 수도 없어서 sendmail을 사용하기로 했다. ( echo "From: aaa@aa.com" echo "To: aaa@aa.com" echo "Cc: aaa@aa.com" echo "MIME-Version: 1.0" echo "Subject: mail title" echo "Content-Type: text/html" cat htmlformatfile.html ) | sendmail -t html 파일을 만들어서 cat으로 붙여 넣는거다. html 파일은 줄바꿈이 잘 되어 있어야 아웃룩에서 html형식이라고 인식한다... 2022. 11. 7. unix 쉘 문자를 숫자로 연산시 주의 점 쉘 스크립트에서 연산을 하는데 특이한 걸 발견했다. let var=0011*1;echo $var 의도는 문자형식으로 된걸 앞에 0때고 숫자처럼 변경하려고 하는건데 의도치 않게 엄한 값이 나오게 된다. 위의 쉘 실행 결과는 9가 나온다. 이유는 모르겠다만 유닉스가 8진수로 인식을 하고 연산을 해서 8+1 해서 9가 되어 버린다. 그러면 앞에 0을 어떻게 땔 것인가? 복잡한 방법도 있겠지만 심플하게는 10진수라고 명시를 해 주면 된다. let var=10#0011*1;echo $var 원하는 10진수 숫자값을 얻을 수 있을 것이다. 2020. 2. 11. unix] cp 할때 에러 발생 잡아내기 shell 작성을 하다가 복사하는데 오류가 발생을 하면 잡아내야 할 일이 생겼다. 각설하고 코드는 아래와 같다. if [[ $1 -eq 10 ]] then cp a.txt b.txt elif [[ $2 -eq 20 ]] then cp a.txt c.txt fi if [ "$?" != "0" ] then echo "error" 1>&2 exit -1 fi echo "ok" control-m 에서 선행작업으로 처리를 하는 건데 -1로 리턴하면 실패로 인식을 한다. 그리고 if elif 로 조건을 한번에 잡아야 한다. $? 에는 바로 이전 결과만 담고 있어서 각각 if 처리 하려면 따로 처리해야 하므로 주의해야 한다. (이거 때메 삽질 좀 했음..) 2019. 8. 6. Solaris에 Subversion 설치하고 repository 설정하고 거북이로 연결하기 unix에 subversion을 설치 할 일이 있어서 이래저래 찾아 봤는데 리눅스에 까는 방법은 이래저래 있는거 같은데 이상하게도 solaris에 설치 하는 방법은 잘 나와 있는게 없더라. 개삽질 해 가면서 깔았는데 혹시나 불특정 다수에게 도움이 될까 싶어서 포스팅질. subversion에 대한 설명은 생략한다. 0. OS환경은 sun solaris 5.8 버전이다. 1. 일단 관련 패키지를 다운 받자. 관련 패키지 다운로드 http://kde.mirrors.tds.net/pub/sunfreeware/sparc/5.8/ 여기서 얘네들을 찾아서 다운 받자. apache-2.2.6-sol8-sparc-local.gz openssl-0.9.8h-sol8-sparc-local.gz neon-0.25.5-sol8.. 2011. 11. 23. UNIX] 실행경로를 주의하자!! 몇일전에 실행경로 때문에 개삽질을 했다.. 정말 단순하고 어의 없는 실수지만 때때로 원인을 몰라서 방황하는 경우는 언제라도 생기기 마련이다. 기존의 pro c 프로그램을 수정해서 컴파일을 했다. 그런데 수정한대로 제대로 안 되는 느낌이 들었다. 그래서 로그를 찍었는데.. 로그도 안 찍히는 것이다!!! ㅇ.ㅇ!! 정말정말정말 원인을 모르겠다.. 짜증이 머리 끝까지 치밀어 올랐는데.. 능력자에게 자문을 구하니.. 의외로.. 바보같은 실수를 했구나.. 라는 것이 밝혀 졌다. 윈도우의 환경파일처럼 유닉스로 환경파일이 있다. .profile 이나 .bashrc 같은 것 말이다.. 여기에 보면 test/bin 이라는게 설정이 되어 있고 컴파일 한 파일의 실행 파일이 이 경로에 존재하고 있었다. 수정하고 컴파일한 파.. 2011. 8. 1. UNIX 네트워크 파일 시스템(윈도에 네트워크 드라이브 같은거) 유닉스에서 원격지 드라이브 잡을 때. 아래의 링크를 따라가서 읽으세요 ㅋ http://ogcm.kordi.re.kr/lecture/unix/network.html 2008. 5. 14. 사용자 환경 저장하기 아래의 내용은 솔라리스9에서 테스트한 것 입니다. ^-^ alias 나 set 이나.. 밑에 있었던 프롬프트 바꾸기나.. 이런걸 프롬프트 상에서 그냥 실행해 버리면 ... 요건 그냥 잠시뿐이다. exit를 치는 순간 한순간의 꿈처럼 휙~ 날아가 버린다. 왜냐.. 현재 쉘에서만 적용이 되기때문이다. 1. 콘쉘을 띄운다....... 무조건 콘쉘인거다 -_-)b # ksh 2. vi 속성 편집. vi를 실행하면 자동으로 넘버링을 해 주는 건데.. 그냥 해 봤다 -_- # vi /.exrc set nu :wq! 3. 프로파일 속성. .kshrc 에 적용 시킨걸 불러 들려라 뭐 이런거다. # vi $HOME/.profile ENV=$HOME/.kshrc export ENV 2007. 10. 4. 솔라리스] 사용자 생성 아래의 내용은 솔라리스9 기준으로 작성된 겁니다. ^-^ 몽땅 root로 들어 올 수 는 없으므로 사용자를 추가해 보자. 권한 문제도 있고하니 한놈 맹글어 보자. 1. # useradd -D 기본정보를 생성한다. # more /usr/sadm/defadduser 1-1 # 옵션을 줘서 만들수도 있다. 옵션은 man 페이지를 보자~ =ㅠ= useradd -D sub_option 1-2 # vi /usr/sadm/defadduser 직접 수정 가능하다. 3. 사용자가 속할 그룹 생성. admin 말고.. 기타 유저 그룹을 만들어 준다. # groupadd -g 500 hhh # more /etc/group 4. 유저 생성 # useradd -m -d /export/qqq -s /bin/ksh -u 400 -.. 2007. 10. 4. 솔라리스 shadow 파일 복구 아래의 내용은 솔라리스에서 사용한 경우 입니다... 다른 플렛폼은 안 해봐서 ㅡㅡ;; 사실 AIX랑 HP-UX도 있는데.. 이건 잘 안 다루기 땜시롱 ~ /etc/shadow 파일에 수정이 가해졌으나 복구를 해야 할 경우(한 라인 삭제) 즉 /etc/passwd & /etc/shadow 파일이 일치하지 않을 때. # pwconv 이 명령어를 사용하면 /etc/passwd 파일을 기준으로 암호 없이 복구해 준다. 암호는 알아서. 중요한거는... 실수를 하지 말자.. 이런게 되겄다. 2007. 10. 4. 솔라리스 잡기술 -_-;; 기본기인데....... 안 가르쳐 주면 죽어도 모르는거다 =ㅠ= 유닉스 시스템.... (이거는 솔라리스)에서 짜잔한 명령어인데 유용하게 쓰이는 명령어는 한 두개가 아니다. 근데 .. 뭐 알아야 써 먹지... 몇개 안 되지만... 그래도 그럭저럭 유용한 명령어 딱 세개만 소개한다. 사실 케이씨도 명령어 몇개 밖에 모른다.. ㅎㅎ ㅁ. root가 특정 유저의 홈디렉토리로 바로 이동 (ksh에서만 가능) # cd ~user_name ㅁ. 이전 디렉토리로 이동 # cd ~- ㅁ. 한/영 전환 ctrl + space_bar 2007. 10. 4. 명령라인 자동 완성 사용법 UNIX :: Solaris 9 명령라인 자동완성이란게 무엇인고 하니.. 윈도우에서 cmd 창에서 타이핑 대충하다가 TAB키 누르면 주륵하고 나머지가 자동으로 채워지는거 그런거다. 유닉스에서는 클릭질보다 타이핑하는게 많고 희안하게 파일명이 긴 것들이 많아서 때로는 유용하게 쓰인다. 1. 역시나 콘쉘모드다. set -o vi 를 환경 변수에 지정해 주었다면 스킵해도 된다. # ksh # set -o vi 2. # more /etc/nss 여기까지 타이핑하고 3. ESC 누르고 4. \ (역슬레쉬) 누른다 5. # more /etc/nsswitch. 여기까지 자동 완성 된다. 6. ESC 다시 누르고 7. = 누르면 선택 가능한 목록 등장 --------------------------------------.. 2007. 9. 16. 이전 1 다음 반응형