'7. Tips/Unix / Linux'에 해당되는 글 21건
- 2014.07.10 sudo: cd: command not found
- 2014.06.10 Difference between bin and sbin
- 2014.05.22 List All Linux Commands
- 2013.12.16 Fix slow connections to SSH server
- 2013.12.08 How to get the codes of a recipe from chef server.
- 2013.09.26 Chef-Server 관련 정리
- 2013.07.29 Connect to Ubuntu 12.04 via Windows Remote Desktop
- 2013.07.15 Ubuntu 12.04 LTS 64bit 에 Chef Server 설치하기
- 2012.05.04 Install sun java 6 on Ubuntu 10.04 LTS
- 2012.01.31 윈도우즈 원격 데스크톱을 이용하여 리눅스(우분투)에 연결하기
- 2012.01.31 nohup : Terminal 종료 후에도 실행을 계속하기 1
- 2012.01.29 Opengrok 설치하기
- 2012.01.28 설치된 패키지 정보 추출
- 2011.10.29 Linux or ubuntu Directory structure
- 2011.03.09 [Ubuntu] 설치된 패키지 깔끔하게 제거하기
- 2011.03.09 파일 또는 디렉토리 찾기
- 2011.03.07 우분투 서버 ssh 설정
- 2011.03.07 명령어 라인에서 파일 다운로드 하는 방법
- 2011.02.23 접속해 있는 사용자에게 메시지 보내기
- 2011.02.20 우분투에서 svn 구축
sudo: cd: command not found
just type following command
sudo su
and use cd command.
Difference between bin and sbin
For more detail:
http://linuxtroubleshoot.blogspot.kr/2011/03/difference-between-bin-vs-sbin-vs.html?m=1
List All Linux Commands
Using compgen can list all available commands in Linux.
compgen -c |
Using grep command together, you can extract some command to find.
compgen -c | grep mysql |
To list all the bash shell aliases available,
compgen -a |
Reference: http://www.cyberciti.biz/open-source/command-line-hacks/compgen-linux-command/
Fix slow connections to SSH server
My development ubuntu was too slow when connecting through ssh. To make this faster, I added the following option on sshd_config.
sudo vi /etc/ssh/sshd_config UseDNS no
Before using this option, I thought that Ssh.Net library caused this with its insufficient ability but it's my mistake.
There might be more options to consider this.
GSSAPIAuthentication no # ipv4 only AddressFamily inet
In my case, "UseDNS no" satisfied me.
From
- http://unsharptech.com/2009/04/11/fix-slow-connections-to-ubuntu-ssh-servers/
- http://cosmicb.no/2013/09/11/slow-delayed-hanging-ssh-connect-from-one-centos-6-to-an-other-centos-6/
How to get the codes of a recipe from chef server.
I was digging the way how to get the codes of a recipe from chef server. Finally I found the command:
administrator@ubuntu:~/temp$ knife cookbook show test2 latest recipes default.rb # # Cookbook Name:: test2 # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute #
Chef-Server 관련 정리
openssl 명령
openssl x509 -in file -noout -text
openssl x509 -noout -issuer -in file
인증서 찾기
sudo find -name '*.crt' | awk '{print "openssl x509 -noout -issuer -in " $1}' > ~/test.sh
chef-server 인증서 위치
/var/opt/chef-server/nginx/ca/test.org.crt
=> test.org.key 는 chef-client 복호화 할 때 사용
Https 복호화
Wireshark > Edit > Preferences > Protocols > SSL
IP Address : 70.7.56.XX
port : 443
Protocol : http
Key file /home/user/test.org.key
Private key 를 이용한 암호화
echo "test" | openssl rsautl -sign -inkey private.pem | openssl enc -base64 > file
이를 다시 복호화
cat fie | openssl enc -base64 -d | openssl rsautl -verify -inkey private.pem
Connect to Ubuntu 12.04 via Windows Remote Desktop
1. sudo apt-get install xrdp
2. sudo apt-get install gnome-session-fallback
3. echo "gnome-session --session=ubuntu-2d" > ~/.xsession
재부팅하고, Remote Desktop Connection (원격 데스크톱 연결) 도구로 연결하면 됨.
From: http://www.liberiangeek.net/2012/05/connect-to-ubuntu-12-04-precise-pangolin-via-windows-remote-desktop/
Ubuntu 12.04 LTS 64bit 에 Chef Server 설치하기
좀더 정리가 필요하지만, 일단은 다음과 같다.
Ubuntu Desktop 12.04 LTS 64 bit (32bit는 Chef 설치안됨)
설치하기전 준비 사항
FQDN 이 설정되어야 함.
> hostname
sskk-VirtualBox
> hostname -f
hostname: Name or service not known
과 같이 나오는 경우,
> sudo gedit /etc/hosts
* You must specify the host name(above sskk-VirtualBox) in the list.
http://docs.opscode.com/install_server.html
* Go to http://www.opscode.com/chef/install.
* Click the Chef Server tab.
* Select the operating system, version, and architecture.
* Select the version of Chef Server 11.x to download, and then click the link that appears to download the package.
* Install the downloaded package using the correct method for the operating system on which Chef Server 11.x will be installed.
* Configure Chef Server 11.x by running the following command:
$ sudo chef-server-ctl reconfigure
* Verify the installation of Chef Server 11.x by running the following command:
$ sudo chef-server-ctl test
* Visit https://test.org then you can see the below welcom page!
Install sun java 6 on Ubuntu 10.04 LTS
출처: http://crazia.tistory.com/773
http://source.android.com 에 나오는 방법대로 해도 java6 가 설치되지 않았습니다. 이에 대한 해결책은 다음과 같습니다.
$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:ferramroberto/java $ sudo apt-get update $ sudo apt-get install sun-java6-jdk sun-java6-plugin
윈도우즈 원격 데스크톱을 이용하여 리눅스(우분투)에 연결하기
출처: http://www.liberiangeek.net/2011/06/connect-to-ubuntu-11-04-from-windows-via-remote-desktop/
To get started, press Ctrl – Alt – T on your keyboard to open Terminal. When Terminal opens, type the command below to install xrdp server.
sudo apt-get install xrdp
Next, go to Start –> All Programs –> Accessories –> Remote Desktop Connection from your Windows computer and type the IP address or Hostname of the Ubuntu machine then click‘Connect’
When prompted, enter your Ubuntu username and password and click ‘OK’
Enjoy!
nohup : Terminal 종료 후에도 실행을 계속하기
nohup 에 대해 잘 정리한 사이트에서 퍼왔습니다.
출처: http://www.zetswing.com/bbs/board.php?bo_table=OS_LINUX&wr_id=27
프로그램을 데몬처럼 실행하고 싶을 때는 아래와 같이 하면 됩니다.
" 명령어 & "
여기서 '&'는 백그라운드로 실행하라는 뜻입니다.
그런데, 이 방법은 실행한 사용자가 로그아웃하면 프로그램도 함께 종료됩니다.
이럴때는 nohup 이란 명령어를 사용하면 됩니다.
nohup(노헙) 정의
리눅스, 유닉스에서 쉘스크립트파일(*.sh)을 데몬형태로 실행시키는 프로그램
nohup 주의사항
nohup으로 실행할 쉘스크립트파일(*.sh)은 현재 퍼미션이 755이상 상태여야 한다.
chmod 755 shell.sh
nohup 실행방법
nohup shell.sh &
또는
nohup sh -- ./shell.sh &
nohup 종료방법
1. "ps -ef | grep 쉘스크립트파일명" 명령으로 데몬형식으로 실행
2. "kill -9 PID번호" 명령으로 해당 프로세스 종료
nohup 로그파일
nohup으로 쉘파일을 실행하면 자동으로 "nohup.out" 파일이 생성되며 이 파일에는 리다이
렉션을 사용하지 않은 출력문자열이 자동으로 저장된다.
예제소스
cnt=0
while true;
do
Time=`date +"%T"` # 24시간 기준 현재시간
echo $Time >> test.txt
TimeHour=`date +"%H"`
if [[ $TimeHour -eq 07 && $TimeHour -eq 07 ]] # 오전 7시에 실행
then
cnt=1
cnt=cnt+1
break
fi
echo "* * * * * Start Main Job " `date`
#
echo "* * * * * End Main Job " `date` # + 로 문자열 연결하면 안됨. 그대로 출력됨
sleep 10
done
nohup 프로그램으로 자바 프로세스 실행방법
shell> nohup java ReoDeliveryInfo &
설명 : nohup으로 자바 프로세스를 백그라운드에서 실행
Opengrok 설치하기
많은 양의 안드로이드 소스를 검색하려면 만만치 않습니다. 그래서 어떻하면 좋은 방법이 있을까 고민하다가 opengrok 이라는 코드 검색 서비스를 발견하였습니다.
http://hub.opensolaris.org/bin/view/Project+opengrok/
최소화 시킨 설치과정을 설명하면 다음과 같습니다. (우분투 입니다.)
1. 위 링크에서 openrok 의 파일을 다운 받습니다.
$ wget http://hub.opensolaris.org/bin/download/Project+opengrok/files/opengrok-0.10.tar.gz
2. 압축을 풉니다.
$ tar -xvf opengrok-0.10.tar.gz
3. 해당 폴더를 그대로 /usr 폴더 밑으로 옮깁니다. (이렇게 하는 이유는 디폴트 설정 그대로 사용하기 위해서입니다.)
$ mv opengrok-0.10 /usr/
4. bin 폴더로 이동합니다.
$ cd /usr/opengrok/bin
5. 톰캣으로 OpenGrok 을 deploy 합니다. 이렇게 하면 source.war 라는 이미 만들어져 있는 파일이 톰캣으로 deploy 됩니다.
$ ./OpenGrok deploy
6. 필요한 폴더를 만들고 권한을 부여합니다.
$ sudo mkdir -p /var/opengrok/data
$ sudo chown 777 /var/opengrok/data
$ sudo mkdir -p /var/opengrok/etc
$ sudo chown 777 /var/opengrok/etc
$ sudo mkdir -p /var/opengrok/src
$ sudo chown 777 /var/opengrok/src
7. 원하는 코드를 /var/opengrok/src 에 복사를 하거나 다운받습니다.
(opengrok 으로 소스 찾기를 수행할 소스 전체말입니다)
8. bin 폴더로 이동한 후, index 를 수행합니다.
(소스 양에 따라 시간이 오래 걸릴 수 있습니다. 이 과정이 제일 중요합니다. 인덱싱을 하지 않으면 검색을 할 수 없으니깐요... ^^; )
$ cd /usr/opengrok/bin
$ sudo ./OpenGrok index
자 이렇게 한 후, http://<YOUR_WEBAPP_SERVER>:<WEBAPPSRV_PORT>/source 로 가시면
opengrok 을 이용하여 소스를 빠르게 검색할 수 있습니다.
참고로 opengrok 을 사용하기 위해,
tomcat6, tomcat6-admin, Exuberant Ctags 를 설치하였습니다.
설치된 패키지 정보 추출
역시나 구글신님은 아주 유용한 정보를 제공해 주었습니다.
dpkg -L tomcat6 라는 명령이 바로 그것입니다. 결과는 아래와 같습니다.
sskk@ubuntu:/usr/opengrok/bin$ dpkg -L tomcat6 /. /var /var/log /var/log/tomcat6 /var/lib /var/lib/tomcat6 /var/lib/tomcat6/webapps /var/lib/tomcat6/common /var/lib/tomcat6/common/classes /var/lib/tomcat6/server /var/lib/tomcat6/server/classes /var/lib/tomcat6/shared /var/lib/tomcat6/shared/classes /var/cache /var/cache/tomcat6 /etc /etc/tomcat6 /etc/tomcat6/Catalina /etc/tomcat6/Catalina/localhost /etc/tomcat6/catalina.properties /etc/tomcat6/logging.properties /etc/tomcat6/context.xml /etc/tomcat6/server.xml /etc/tomcat6/tomcat-users.xml /etc/tomcat6/web.xml /etc/tomcat6/policy.d /etc/tomcat6/policy.d/01system.policy /etc/tomcat6/policy.d/02debian.policy /etc/tomcat6/policy.d/03catalina.policy /etc/tomcat6/policy.d/04webapps.policy /etc/tomcat6/policy.d/50local.policy /etc/init.d /etc/init.d/tomcat6 /etc/cron.daily /etc/cron.daily/tomcat6 /usr /usr/share /usr/share/doc /usr/share/doc/tomcat6 /usr/share/doc/tomcat6/copyright /usr/share/doc/tomcat6/changelog.Debian.gz /usr/share/tomcat6-root /usr/share/tomcat6-root/default_root /usr/share/tomcat6-root/default_root/index.html /usr/share/tomcat6-root/default_root/META-INF /usr/share/tomcat6-root/default_root/META-INF/context.xml /usr/share/tomcat6 /usr/share/tomcat6/defaults.template /usr/share/tomcat6/defaults.md5sum /var/lib/tomcat6/logs /var/lib/tomcat6/work /var/lib/tomcat6/conf /usr/share/doc/tomcat6/README.Debian.gz
그리고 dpkg -l tomcat6 는 패키지 리스트를 보여줍니다. 결과는 아래와 같습니다.
sskk@ubuntu:/usr/opengrok/bin$ dpkg -l tomcat6 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-=================-=================-================================================== ii tomcat6 6.0.28-2ubuntu1.5 Servlet and JSP engine
그리고 aptch-cache search 를 이용하는 방법이 있는데 이 명령의 결과는 다음과 같습니다.
sskk@ubuntu:/usr/opengrok/bin$ apt-cache search tomcat6 libtomcat6-java - Servlet and JSP engine -- core libraries tomcat6 - Servlet and JSP engine tomcat6-admin - Servlet and JSP engine -- admin web applications tomcat6-common - Servlet and JSP engine -- common files tomcat6-docs - Servlet and JSP engine -- documentation tomcat6-examples - Servlet and JSP engine -- example web applications tomcat6-user - Servlet and JSP engine -- tools to create user instances
Linux or ubuntu Directory structure
In the Linux operating
- /bin - binary applications (most of your executable files)
- /boot - files required to boot (such as the kernel, etc)
- /dev - your devices (everything from drives to displays)
- /etc - just about every configuration file for your system
- /etc/profile.d - contains scripts that are run by /etc/profile upon login.
- /etc/rc.d - contains a number of shell scripts that are run on bootup at different run levels. There is also typically an rc.inet1 script to set up networking (in Slackwar), an rc.modules script to load modular device drivers, and an rc.local script that can be edited to run commands desired by the administrator, along the lines of autoexec.bat in DOS.
- /etc/rc.d/init.d - contains most of the initialization scripts themselves on an rpm-based system.
- /etc/rc.d/rc*.d - where “*” is a number corresponding to the default run level. Contains files for services to be started and stopped at that run level. On rpm-based systems, these files are symbolic links to the initialization scripts themselves, which are in /etc/rc.d/init.d.
- /etc/skel - directory containing several example or skeleton initialization shells. Often contains subdirectories and files used to populate a new user’s home directory.
- /etc/X11 - configuration files for the X Window system
- /home - locally stored user files and folders
- /lib - system libraries (similar to Program Files)
- /lost+found - lost and found for lost files
- /media - mounted (or loaded) devices such as cdroms, digital cameras, etc.
- /mnt - mounted file systems
- /opt - location for “optionally” installed programs
- /proc - dynamic directory including information about and listing of processes
- /root - “home” folder for the root user
- /sbin - system-only binaries (see /bin)
- /sys - contains information about the system
- /tmp - temporary files
- /usr - applications mainly for regular users
- /var - mainly logs, databases, etc.
- /usr/local/bin - the place to put your own programs. They will not be overwritten with upgrades.
- /usr/share/doc - documentation.
[Ubuntu] 설치된 패키지 깔끔하게 제거하기
$ sudo apt-get remove --purge apache2 $ sudo apt-get clean $ sudo apt-get install apache2
파일 또는 디렉토리 찾기
$ find -name '*.pl'
$ find / -name '*.pl'
$ find / -name 'et*' -type d
우분투 서버 ssh 설정
명령어 라인에서 파일 다운로드 하는 방법
접속해 있는 사용자에게 메시지 보내기
$ write [user account]
$ wall
우분투에서 svn 구축
$ sudo apt-get install subversion
$ su mkdir /var/svn-repo
$ svnadmin create /var/svn-repo
(아래 명령을 /etc/rc.local 에 추가하면 시스템이 시작될 때마다 svn 이 가동되도록 할 수 있습니다.)
$ svnserve -d -r /var/svn-repo
$ vi /var/svn-repo/conf/svnserve.conf
[general] anon-access = none auth-access = write password-db = passwd
$ vi /var/svn-repo/conf/passwd
[users] #harry = harryssecret #sally = sallysecret user = 1234qwer