= Linux =
{{tag>OS Operating_System Linux Shell}}
= Setting =
== Repository 변경 ==
sudo vi /etc/apt/sources.list
:%s/us.archive.ubuntu.com/ftp.daumkakao.com/g
# 혹은
sudo sed 's/us.archive.ubuntu.com/ftp.daumkakao.com/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get upgrade
== SSH 키 충돌 날 때 ==
ssh-keygen -R [IP]
= Utility =
== ZSH ==
sudo apt-get install zsh
chsh -s `which zsh`
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
== Oracle JDK 8 ==
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
=== 수동 설치 ===
wget --no-cookies \
--no-check-certificate \
--header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz \ -O jdk-8-linux-x64.tar.gz
sudo mv jdk1.8.0_171 /usr/lib
sudo alternatives --install /usr/bin/java java /usr/lib/jdk1.8.0_171/bin/java 1
sudo alternatives --install /usr/bin/javac javac /usr/lib/jdk1.8.0_171/bin/javac 1
sudo alternatives --install /usr/bin/jar jar /usr/lib/jdk1.8.0_171/bin/jar 1
sudo alternatives --set java /usr/lib/jdk1.8.0_171/bin/java
sudo alternatives --set javac /usr/lib/jdk1.8.0_171/bin/javac
sudo alternatives --set jar /usr/lib/jdk1.8.0_171/bin/jar
alternatives --config java
java --version
sudo /etc/profile
JAVA_HOME=/usr/lib/jdk1.8.0_171
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
source /etc/profile
== Samba ==
sudo apt-get install samba samba-common-bin
sudo smbpasswd -a 사용자
sudo nano /etc/samba/smb.conf
#root계정으로 설정할 때
[root]
comment = samba server
path = /
valid user = root
writable = yes
browseable = yes
#service --status-all
service samba restart
#12.04는 smbd
##만약 안된다면
### sudo /etc/init.d/samba restart
#비밀번호 변경
smbpasswd -U 사용자계정
#등록된 user 확인
#옵션에 -v 붙이면 더 상세한 정보 확인 가능
sudo pdbedit -L
#설정 정보 확인
testparm
#Windows에서 자격증명 전체 삭제
net use /delete *
== VirtualBox 게스트 확장 설치 ==
sudo apt-get install dkms
sudo apt-get install build-essential linux-headers-`uname -r`
mkdir tools
sudo mount /dev/cdrom ~/tools
sudo ./tools/VBoxLinuxAdditions.run
# Reboot!
# 확인
lsmod | grep vboxvfs
# vboxsf 마운트 시키기 (공유 디렉토리 설정)
VBoxManage showvminfo "VM 이름"
mount -t vboxsf SHARED /mnt/vm_shared
= Command =
== grep ==
# 해당 문자열이 포함된 파일 찾기
## 00 03 06 09 12 15 18 21
grep -r '00 03 06 09 12 15 18 21' ./
=== grep sed 를 이용해 여러 파일에 있는 문자 치환하기 ===
grep -rl "특정문자" * | xargs sed -i 's/특정문자/바꿀문자/g'
== find ==
# 해당 디렉토리에 있는 모든 text 파일에서 AAA를 BBB로 치환
## sed 뒤에 i는 자기 자신을 치환
find ./ -name '*.txt' -exec sed -i 's/AAA/BBB/g' {} \;
== Permission 전체 변경 ==
//777로 변경
chmod -Rf 777 DIRECTORYNAME
== tar ==
=== 풀기 ===
tar -xvf FILENAME.tar
=== 압축 ===
tar -cvf FILENAME.tar DIRECTORYNAME/
== MySQL Dump==
=== 추출 ===
mysqldump -u USERID -p DBNAME > FILENAME.sql
=== 입력 ===
mysqldump -u USERID -p create database DBNAME; -- DB 생성
mysql -u USERID -p DBNAME < FILENAME.sql
= Crontab =
__**C**__h__**ron**__(time)__**tab**__le
* * * * * COMMAND
# m(0 ~ 59) h(0~23) d(1~31) M(1~12) DayOfWeek(0~6, 0 : Sunday)
# 등록
crontab -e
# 삭제
crontab -r
# 1분마다 date 출력
* * * * * date >> /tmp/greet.txt
## */1 * * * * date >> /tmp/greet.txt
# 매시 15,45분 "Hello, world" 출력
15,45 * * * * echo "Hello, world!" >> /tmp/greet.txt
== File Descriptor ==
|<100%>|
^ STDIN | 0 |
^ STDOUT | 1 |
^ STDERR | 2 |
# crontab 예시
## 표준 출력, 표준 오류 모두 출력
* * * * * /bin/echo "foobar" >> /file_you_own 2>&1