참고에 매우 자세히 잘 정리되어 있다. 감사.

문자열 길이 구하기
${#string}

문자열 추출
${string:position}
${string:position:length}

문자열 조각 삭제
${string#substring}
 string의 앞에서부터 가장 짧게 일치하는 substring 제거
${string##substring}
 string의 앞에서부터 가장 길게 일치하는 substring 제거

${string%substring}
 string의 뒤에서부터 가장 짧게 일치하는 substring 제거
${string%%substring}
 string의 뒤에서부터 가장 길게 일치하는 substring 제거

참고 :  http://wonylog.tistory.com/192

lxr 설치하기

from Linux 2011/11/16 16:55
http://lifeseed.tistory.com/tag/glimpse 에 있는대로만 하면 된다. 글쓴이에게 감사를..

정리하자면,
1. glimpse 설치
1.1. wget http://webglimpse.net/trial/glimpse-latest.tar.gz
1.2. tar xvfz glimpse-latest.tar.gz
1.3. ./configure && make && sudo make install

2. lxr 설치
2.1. sudo apt-get install lxr
 기본 설치는 /usr/share/lxr 에 된다.
2.2. sudo vi /etc/apache2/sites-available/default 후 다음 내용 추가

    Alias /lxr "/usr/share/lxr"
    <Directory "/usr/share/lxr">
        Options All
        AllowOverride All
    </Directory>

2.3. sudo cp /usr/share/lxr/blurb.html /usr/share/lxr/index.html

3. lxr 환경 설정
3.1. sudo vi /usr/share/lxr/lxr.conf
3.1.1. 나의 경우 대부분 archtechture로 arm 을 쓰므로 다음처럼 고친다.

# Define typed variable "a".  First value is default.
variable: a, Architecture, (arm, i386, alpha, m68k, mips, ppc, sparc, sparc64)

3.1.2. base url 도 localhost 대신 ip 를 사용하자.

# Define the base url for the LXR files.
baseurl: http://<IP ADDRESS>/lxr/http/

3.1.3. version 명으로 된 디렉토리 아래 바로 소스를 둘 것이므로 다음처럼 고친다.

# The source is here.
sourceroot: /usr/share/lxr/source/$v/
srcrootname: Linux

3.1.4. glimpse 를 위처럼 설치했다면 경로가 다르므로 이것도 고치자.

# Glimpse can be found here.
glimpsebin: /usr/local/bin/glimpse
 
4. 소스 코드 복사 및 DB 구축
4.1. sudo mkdir /usr/share/lxr/source/<VERSION>
4.2. sudo cp 소스 /usr/share/lxr/source/<VERSION>
4.3. cd  /usr/share/lxr/source
4.4. sudo echo '<VERSION>' >> ./versions
4.5. sudo echo '<VERSION>' >> ./defversion
4.6. cd <VERSION>
4.7. sudo genxref ./
4.8. sudo glimpseindex -H ./ fileidx xref
4.9. sudo chmod 644 .glimpse_*
4.10. sudo chmod 644 fileidx
4.11 sudo chmod 644 xref

5. http://<IP ADDRESS>/lxr/http 접속.
 
Tag // glimpse, LXR, 설치
0. crontab 허용 사용자 추가
$ sudo vi /etc/cron.allow
사용자 이름 적고 저장 후 crontab 서비스 재시작 - sudo service crontab restart


1. crontab 사용자 파일 수정
$ crontab -e

*/10 * * * * /home/dasomoli/update.sh 식으로 적고 저장

hex 방식으로 출력 - od

from Linux 2011/11/03 17:07
od 를 써서 hex 방식으로 출력하자. 메모리 등을 볼 때 라던가..

echo "Jeong-Seok Yang" | od -Ax -t x1
Tag // dump, HEX, OD
처음 시작은
#!/bin/sh

Perl 처음 시작은
#!/usr/bin/perl -w

argument는 $0 $1 $2 ...
argument 처리는 아래 형식.
for ARGUMENT in "$@"; do
case $ARGUMENT in
--commit)
COMMIT=$2;
;;
--uploader)
UPLOADER=$2;
;;
--branch)
BRANCH=$2;
;;
--patchset)
PATCHSET_ID=$2;
;;
--change-url)
CHANGE_URL=$2;
CHANGE_NO=`basename $CHANGE_URL`;
;;
esac

shift;
done

Perl에서 Argument 처리는
$ARGV[0], $ARGV[1], $ARGV[2]... $#ARGV 는 argument 개수
 
공백으로 나눠진 파라미터 프린트
gawk '{print $1}'

/로 나눠진 마지막 파라미터 프린트. cut 도 사용가능
gawk -F / '{print $NF}'

파일명 얻기는
basename 경로명

디렉토리명 얻기는
dirname 경로명

절대경로 얻을 때는
readlink -e 상대경로

특정 문자열 치환은
sed -e "s/문자열/문자열/g"

if는 이런 형식. 비교식은 http://www.gnu.org/s/bash/manual/bash.html#Bash-Conditional-Expressions 참고
if [ "$변수" = "" ]; then
  명령;
elif
  명령;
else
  명령;
fi

for each 는 이런 형식
for 변수 in $가져올변수
do
  echo "$변수"
done

case는 위의 argument 처리 참고.

명령의 결과 저장은 `명령`
변수의 값으로 치환한 문자열은 "$변수 포함 문자열"
그냥 그대로 문자열은 '문자열'

끝에만 자를 땐
tail -n 숫자

앞에만 자를 땐
head -n 숫자

문자열 있는 줄만 얻고 싶을 땐
grep "문자열"

정규식으로 찾은 문자열 포함된 줄만 얻고 싶을 땐
grep -P "^문자열[0-9a-zA-Z-_/]*$"

basic http 인증은 https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients 참고

html 얻어올 때는
curl "주소"


drivers 아래의 mod 755 파일을 모두 644로 바꾸고 싶다면 다음과 같이 하면 된다.

find drivers/ -perm 755 -type f -print | xargs chmod 644

Tag // 644, 755, chmod, find, Linux, Mod, xargs
간단히 말하면 dirname <인자> 하면 마지막 / 뒷부분을 날린 결과가 나오고,
basename <인자> 하면 / 뒷부분이 나온다.

http://stackoverflow.com/questions/284662/how-do-you-normalize-a-file-path-in-bash
 
 
1. tofrodos 패키지를 설치
sudo apt-get install tofrodos

2. dos2unix 로 fromdos 를 소프트 링크
sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
혹은 슈퍼유저 권한이 없을 경우 fromdos 파일을 ~/bin에 복사한 후 dos2unix를 소프트링크
ln -s ~/bin/fromdos ~/bin/dos2unix

참고 : http://whoa.egloos.com/2633778

$ cat /etc/*-release

출처: http://www.cyberciti.biz/faq/find-linux-distribution-name-version-number/

http://www.otl.ne.kr/243

문서 중 가장 간단하다.

문서를 정리하자면,

다음과 같은 외부와 연결시키고 싶은 네트워크가 있다고 하자.

   _____________
  /                     \               외부 IP               _________              내부 IP
 |   Internet          |           123.12.23.43           |  linux     |          192.168.0.1
 |   google.com    | ------[외부 랜카드]------| machine |------[내부 랜카드]
  \_____________/                                         ----------             |
                                                                                               |        
                                                                                               |
                                                   _____________                ______|_______
                                                  | 192.168.0.2  |             /                      |
                                                  |    내부        |--------|    192.168.0.0    |
                                                  |    컴퓨터     |            |      인트라넷      |
                                                  --------------             \______________/ 

외부 네트워크 카드는 eth0, 외부 IP는 123.12.23.43, 그리고 내부 네크워크 카드는 eth1라고 가정하자.

$> modprobe ipt_MASQUERADE # 만약 실패하더라도 다음을 계속하시오.
$> iptables -F; iptables -t nat -F; iptables -t mangle -F
$> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.12.23.43
$> echo 1 > /proc/sys/net/ipv4/ip_forward

그리고 보안을 위해:

$> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$> iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
$> iptables -P INPUT DROP # 위의 두 줄이 성공한 경우에만
$> iptables -A FORWARD -i eth0 -o eth0 -j REJECT

이 문서는 GNU Free Documentation License를 따른다.

http://www.gnu.org/copyleft/fdl.html