From Chaehyun
리눅스 명령어 정리
명령어 reference
아파치
- 재시작
- /usr/sbin/apachectl -k restart
- /usr/sbin/apachectl -k graceful
- /etc/rc.d/init.d/httpd start
mysql
- /etc/init.d/mysqld start
- /etc/rc.d/init.d/mysqld start
- php 5.2 버전 업을 하기 위해서는
- /etc/yum.repos.d/centos-test.repo 파일을 생성하고 아래 구문 추가
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/5/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
screen
screen -h 10000 -t xlos 2
screen -h 10000 -t xlos 1
screen -h 10000 -t xlos 0
bind c screen -t xlos
bind ^C screen -t xlos
bindkey "\033[15~" select 0
bindkey "\033[17~" select 1
bindkey "\033[18~" select 2
bindkey "\033[19~" select 3
bindkey "\033[20~" select 4
bindkey "\033[21~" select 5
bindkey "\033[23~" prev
bindkey "\033[24~" next
vbell off
defscrollback 10000
caption always "%{kg}%?%-Lw%?%{wb}%n*%f %t%?(%u)%?%{kg}%?%+Lw%?"
파일 묶기
- tar : tape archive 에서 따온 말
- tar -xzvf tmp.tar : 묶은 파일 풀기
- x : extract
- z : gzip
- v : verbose (장황한)
- f : file
- tar -cvzf mt.tar mt : 파일 묶기
- c :create
- v : verbose
- f : file
- tar -tvf mt.tar : 리스트만 보기
압축
- gzip garbage.txt : 압축하기
- gzip -l garbage.txt.gz : 압축 정보 보기
- gunzip garbage.txt.gz : 압축 해제
- gunzip -N garbage.txt.gz : 원본 파일로 압축 해제
- ls -laR $HOME | gzip > filelist.gz : 홈 디렉토리 아래 존재하는 모든 파일 목록을 압축
- gunzip -c filelist.gz | more : 파일을 삭제하지 않고, 결과를 stdout 으로 출력 (=zcat 과 동일)
현재 디렉토리만 출력하는 명령어
- echo ${PWD##*/}
- PWD는 현재 path를 가지고 있는 환경변수
- ##*/ : */를 만날 때 까지 모든 스트링을 제거하라
- 결국 현재 디렉토리만 남는다
- pwd | rev | awk -F \/ '{print $1}' | rev
- pwd : 현재 디렉토리 출력
- rev : string 반전
- awk -F : 다음 delimiter를 사용해서 문자열 나누기
디렉토리 분류
/
| 루트 디렉토리
|
/bin
| 기본 명령어
|
/dev
| 장치를 쓸 때 필요한 특수 파일 위치
|
/etc
| 환경 설정 파일 위치
|
/home
| 일반 사용자의 홈 디렉토리
|
/lib
| 공유 라이브러리와 커널 모듈
|
/lost+found
| 부팅할 때 파일 시스템에 이상이 있는지 진단, fsck 명령어에 의해 사용 파일 시스템 복구 후, 복구된 파일이 저장됨
|
/mnt
| cd-rom과 플로피 장치에 대한 마운트 포인트 제공
|
/opt
| 크기가 큰 리눅스 패키지 설치함
|
/root
| 시스템 관리자 홈 디렉토리
|
/sbin
| 시스템 운영에 필요한 명령어 위치
|
/tmp
| 임시 파일을 저장하는 위치
|
/usr
| 패키지 설치 시 이 디렉토리에 설치됨
|
/var
| 가변 자료가 저장, 메일, 로그 등
|
/usr/bin
| 응용프로그램 설치 시 일반 사용자 명령어가 추가됨
|
/usr/sbhin
| 응용프로그램 설치 시 관리자 명령어가 추가됨
|
/var/log
| 시스템 로그 파일
|
/var/spool/mail
| 서버의 메일 임시 보관 장소
|
분류2
| shareable
| unshareable
|
static
| /usr /opt
| /etc /boot
|
variable
| /var/mail /var/spool/news
| /var/run /var/lock
|
/bin Essential command binaries
/boot Static files of the boot loader
/dev Device files
/etc Host-specific system configuration
/lib Essential shared libraries and kernel modules
/media Mount point for removeable media
/mnt Mount point for mounting a filesystem temporarily
/opt Add-on application software packages
/sbin Essential system binaries
/srv Data for services provided by this system
/tmp Temporary files
/usr Secondary hierarchy
/var Variable data
파이프 라인
- | : 왼쪽 명령의 표준 출력 (stdout)을 오른 쪽 명령의 표준 입력 (stdin)으로 사용
- who | tr -s " " | cut -f3 -d " "
- ps -ef | more
- 리다이렉션
- stdin : 0, stdout : 1, stderr : 2
- 대부분 파이프의 리다이렉션은 명령 라인의 끝에서 출력 방향을 다시 지정하여 파이프 라인의 필터된 출력을 파일이나 화면 상에 출력한다.
- grep user /etc/pass*d | sort > sort.out
- grep user < /etc/pass*d 2> grep.err | sort > sortd.user 2> sort.err
- grep할 때 에러가 발생하면, grep.err 파일로 저장하고, sort한 경과를 sortd.users 파일로 저장하는데, 에러가 발생하면 sort.err 파일로 저장
출처 : http://rockdrumy.tistory.com/entry/Linux-Pipes%ED%8C%8C%EC%9D%B4%ED%94%84-%EB%AA%85%EB%A0%B9
환경 변수
- .bashrc : bash가 실행될 때 마다 수행됨
- .bash_profile : bash가 login shell로 사용될 때 (처음 login할 때) 수행됨
- 보통은 .bash_profile에서 .bashrc 를 부르는 형태
인증키 사용
- 참고글1
- 참고글2
- 개인키 : 각 사용자들만 가지고 있는 키
- 공개키 : 서버에 심을 키. 유출 해도 상관 없음
- 각 사용자는 개인키/공개키 쌍을 만든 다음, 공개키를 서버에 복사해두면, 개인키로 접근할 수 있다.
- 정리 : 내가 가지고 있는 거 : private key, 서버가 가지고 있는 거 : public key
- server에서 ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@skp004 한 번 더해줘야 함??
sed (stream editor)
- 참고글
- ed 명령어와 grep 명령어를 합친 명령어
- sed는 라인을 하나 씩 읽고, 수정하고, 출력하므로 기억장치 안의 버퍼를 사용하지 않는다. --> 매우 큰 파일을 처리할 때 주로 사용됨
- cat /etc/sudoers | sed /'hello world$'/d > /tmp/sudoers.tmp
- /etc/sudoers 파일에서 hello world로 끝나는 라인을 삭제하고, 나머지 라인들을 /tmp/sudoers.tmp 파일에 저장
chattr
- chattr - change file attributes on a Linux second extended file system
- A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
bash 팁
- 현재 스크립트의 디렉토리 : SCRIPT_HOME=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
- 상위 디렉토리 : SCRIPT_HOME=$(readlink -f $(dirname $(readlink -f ${BASH_SOURCE[0]}))/..)
squid 실행
- /etc/rc.d/init.d/squid start
screenrc 설정 파일
screen -h 10000 -t xlos 2
screen -h 10000 -t xlos 1
screen -h 10000 -t xlos 0
bind c screen -t xlos
bind ^C screen -t xlos
bindkey "\033[15~" select 0
bindkey "\033[17~" select 1
bindkey "\033[18~" select 2
bindkey "\033[19~" select 3
bindkey "\033[20~" select 4
bindkey "\033[21~" select 5
bindkey "\033[23~" prev
bindkey "\033[24~" next
vbell off
defscrollback 10000
caption always "%{kg}%?%-Lw%?%{wb}%n*%f %t%?(%u)%?%{kg}%?%+Lw%?"
ssh 암호 없이 로그인하기
- ssh-keygen -t rsa
- ~/.ssh/id_dsa.pub 파일을 복사한 다음,
- 원하는 서버로 접속하여 ~/.ssh/authorized_keys 에 추가 (한 줄에 하나 씩 여러 개도 가능)
maven 설정
- mvn -Declipse.workspace=/home/1000649/Works eclipse:add-maven-repo
- project directory에서
network 속도 측정