IT 개발노트

Linux 명령어 본문

기초튼튼/Linux

Linux 명령어

limsungju 2019. 8. 27. 14:55

종료 : shutdown -h now ( -h : 정지, now 지금)

커널이미지를 바꾸지 않는 경우 리부트할 일이 없다.

sync : 현재 데이터를 저장하는 행위 (보통 2~3회 해주고 reboot or shutdown을 사용한다)

 

yum : 패키지 관리 (업데이트 및 설치)

yum repolist -> yum update -> yum upgrade

yum -y install vixie-cron ( crontab 아니고 vixie-cron임)

rdate : 로컬에 설정된 시간으로 설정하기

gcc : c컴파일러 (모든 프로그램은 c로 작성되어 있기 때문에 gcc가 필요하다)

make : c모듈들을 빌드하기 위해 설치

wget :

gcc-c++

cmake :

net-tools : 

traceroute :

bind-utils : 이것을 설치해야 nslookup 가능 (nslookup은 주소로 ip주소 알아오는것)

psmisc :

telnet

 

pstree : 프로세스 족보관계

서버 동기화 작업 해주기

에디팅 작업 : vi hello.c -> i -> 

모든 소프트웨어는 환경변수가 있다.

set : 환경변수 확인하기

./ : 현재 디렉토리

./a.out

cd /etc -> ls -l cron.* : 시간 설정파일

mv /root/dowork/time_sync.sh /etc/cron.daily : 타임 동기화

 

권한주는 명령어 : chmod

| : 연결

grep sshd : sshd가 있는 라인만 뽑아낸다.

vi모드에서 G : 입력하면 제일 아래로 내려간다.

vi모드에서 o : 커서 다음줄부터 입력

원격터미널 : XShell5
ssh 계정@IP -> 비밀번호 입력
ssh webmaster@192.168.1.84

root계정 차단하기 : /etc/ssh/sshd_config 에서 설정 #PermitRootLogin yes -> PermitRootLogin no로 바꾸기
서버 다시 구동하기 : /etc/init.d/sshd restart

linux에 java 설치방법 : Xshell5 -> sftp 계정@IP -> put c:\jdk-8u221-linux-x64.tar.gz
put 경로\파일명    (복사 붙여넣기 : 복사 -> Shifr + insert)
설치하려면 root에서 해야한다.
cp /home/webmaster/jdk-8u221-linux-x64.tar.gz ./   ( 설치된경로 복사할경로)
압축해제 : tar xvfz jdk-8u221-linux-x64.tar.gz
경로이동 : mv /root/jdk1.8.0_221/ ./
cd : home디렉토리로 이동
환경설정 : vi /etc/profile -> 제일 아래 설정추가
------------------------------------------------------
#java
export JAVA_HOME=/usr/local/itcen/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib/tools.jar:.
-------------------------------------------------------

export : 필요한 곳에 자동으로 환경변수 값을 넘겨준다.

echo $JAVA_HOME : JAVA_HOME 의 변수를 출력하는 명령어
window에서는 echo %JAVA_HOME%

.class 파일 만들기 : javac 파일이름 (javac HelloWorld.java) -> HelloWorld.class 파일이 생성된다.
변경사항 적용 : source /etc/profile
실행 : java 파일명 (java HelloWorld)

실행파일 열기 : ./파일명  ( 현재디렉토리에 파일 실행)

/usr/local : 사용자가 직접 설치한 파일을 모아놓는 디렉토리

/usr/local/itcen/jdk1.8
/usr/local/itcen/tomcat

파일 전체 삭제 : rm -rf *

netstat : 네트워크 상태 확인

eho : 환경변수에 설정된 문자열 출력

/etc : 설정파일들이 모여있는 디렉토리

/etc/passwd : 계정 정보들이 모여있는 디렉토리

/etc/shadow : 계정 패스워드가 설정되어 있는 디렉토리 (암호화가 되어있음 솔트작업이 되어 있어서 솔트를 모르면 복호화가 어려움)

세션 만들기(접속하기 편하게) : 새로만들기 -> 이름설정 -> 호스트(IP입력) 사용자 인증 -> 아이디만 입력 (패스워드 입력시 자동접속되어 보안상 안좋음)

auto logout(보안 설정) : vi /etc/profile -> TIMEOUT 설정 ex : TIMEOUT=300 (5분뒤 로그아웃)

history format : vi /etc/profile -> HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S [CMD]:"

df -h : 기가단위로 파티션 사이즈 및 사용량 확인가능

fdisk -l : 파티션 상태 확인가능

mount : 새로운 디바이스를 디렉토리랑 연결하는 작업

cd /mnt -> mkdir cdrom -> mount /dev/cdrom /mnt/cdrom

mount 해제 : umount /mnt/cdrom/

cat : 파일 열어보기

blkid : 파일 id 보기

alias : 명령어 별칭 보기

/bin : 명령어를 모아놓은 디렉토리

/dev : 디바이스 장치파일들을 모아놓은 디렉토리

/lost+found : fsck를 사용할 경우 깨진 파일들을 모아놓고 다시 복구할때 사용하는 디렉토리

/etc/init.d : 데몬 스크립트를 모아놓은 디렉토리

/etc/rc0.d : run level0에 따른 자동 실행 데몬 스크립트를 모아놓은 디렉토리

/etc/rc1.d : run level1에 따른 자동 실행 데몬 스크립트를 모아놓은 디렉토리

echo "hello" > hello.txt : hello 내용이 들어있는 hello.txt파일을 만든다

rmdir : 디렉토리 삭제

rm : 파일 삭제  ( -rf 옵션을 자주 사용 f옵션은 강제로 삭제 )

링크걸기 : ln -s /링크걸파일 /링크할파일   ( ln -s /usr/local/itcen/jdk1.8 /usr/local/itcen/java )

한글셋팅 : vi /etc/sysconfig/i18n 에서 설정하기 (서버는 보통 영어로 둔다)

chown 소유자:권한 파일명 ( chown root:wheel jdk-8u221-linux-x64.tar.gz

touch : 프로그램 생성시간을 현재 시간으로 설정

cp : 파일 복사

cp -r : 디렉토리 복사

mv : 파일 이동 ( 이름 변경할 때에도 사용 )
파일 파일 인 경우에는 이름 변경
파일 디렉토리 인 경우에는 파일 이동

mv -b : 백업본을 만들고 이동

rm : 파일 삭제

more : 긴 파일을 볼때 유용 스페이스바를 이용해서 확인 가능 ( 문제점 뒤로가 안됀다 )

less : 파일을 볼때 유용 화살표로 위, 아래 조작가능, 스페이스바로 페이지씩 이동가능 /로 검색가능

find : 찾을때 사용 find / -name "*log*" ( /부터 이름으로 log가 들어간 파일을 찾는다 )
find / -user "webmaster" ( /부터 webmaster가 소유한 파일들을 알려준다 )
find / -perm 755 -print ( /부터 755권한인 파일을 찾는다. )
find / -type p -print ( /부터 파이프 타입을 찾는다. )

whereis : 실행 파일을 찾는다. ( whereis netstat : netstat 파일이 어디있는지 찾는다. )

grep : grep as /etc/profile ( /etc/profile에서 as 문자가 들어간 라인을 찾는다. )
grep -v 문자 : 문자가 없는 라인을 찾는다.

| : 내용을 연결해서 읽는것

> : 내용을 연결해서 파일로 출력하는것

>> : 내용을 연결해서 파일내용 뒤에 붙여서 출력하는것

< : 입력

 

네트워크 안잡혔을때
/var/log/dmesg (부팅될때 올라오는 로그) -> less dmesg -> /eth ->

-> cd /etc/sysconfig/network-scripts/ -> vi ifcfg-eth0 -> HWADDR이랑 virtualbox 네트워크 설정 확인 -> 두개 맞추기 -> mv ifcfg-eth0 ifcfg-eth1 -> vi ifcfg-eth1 -> eth0들을 eth1로 변경 -> /etc/init.d/network restart -> 네트워크 잡혔나 확인

-> 네트워크 잘 잡히나 확인

 

vi 편집기 사용중 비정상 종료되었을 경우
ls -la로 확인해보면 .swp파일이 생긴다 이 파일이 있을경우 작성하던 파일이 잘 안열린다.
-> 해결법 rm -f .swp파일을 지우면 된다. (복구할 내용이 있다면 복구하는게 정석)

 

ping 막는방법
cat /proc/sys/net/ipv4/icmp_echo_ignore_all 로 확인 후 안막혀 있을 경우 -> vi /etc/sysctl.conf ->

-> sysctl -p 입력

 

호스트명 영구적으로 바꾸는 방법
도메인과 호스트명은 다를 수 있다.
vi /etc/sysconfig/network -> 

-> reboot

tomcat 프로젝트 저장되는 위치
/usr/local/itcen/tomcat/webapps/

tomcat 설치방법
wget으로 tomcat 압축파일 설치 -> tar zxvf 파일명으로 압축풀기

tomcat 실행 및 종료
/usr/local/itcen/tomcat/bin/catalina.sh start
/usr/local/itcen/tomcat/bin/catalina.sh stop

tomcat 포트 열어주기 (방화벽 열어주기)
ps -ef | grep iptablevi /etc/sysconfig/iptables
cd /etc/sysconfig -> vi iptables ( 방화벽 읽는 순서가 중요하기 때문에 설정해놓는 위치가 중요)

-> /etc/init.d/iptables restart
netstat -ant | grep LISTEN -> 80포트가 열렸는지 확인

tomcat포트 바꾸기
cd /usr/local/itcen/tomcat/conf/ -> vi server.xml ->

telnet 설치 -> yum -y install telnet

telnet 127.0.0.1 80 로 접속 ( telnet (localhost) (tomcat포트번호) ) 로 접속
GET http/1.1로 확인

hosts 설정 방법
vi /etc/hosts ->

접속할 ip 등록 -> alias 설정
ssh webmaster@192.168.1.116 ( ssh 계정명@IP주소 )로 들어가는 것 x
ssh webmaster@ljy-lx01 ( ssh 계정명@alias )
cat /etc/hosts로 확인

windows hosts 파일 위치 및 설정 방법

-> 홈페이지에 http://lx01로 접속시 서버가 설정한 ip서버가 열린다.

네트워크 올리기 및 내리기
ifconfig -a -> 네트워크 확인
ifconfig eth0 up (올리기)
ifconfig eth0 down (내리기) (원격접속시에 내리면 ㅉㅉㅉ...)

고정IP 설정 방법
IP고정 하기전에 IP충돌이 있나 없나 확인하기 (네트워크가 잘되면 충돌 안나는거임)
IPADDR=xxx.xxx.x.xxx
NETMASK=255.255.255.0  ( 255.255.255.25 NETMASK는 변경 가능) 
GATEWAY=192.168.1.1 (GATEWAY는 꼭 1번을 안줘도 되지만 보통 1번을 준다.)
DNS1=168.126.63.1 (DNS는 보통 2개정도 준다.

vi /etc/sysconfig/network-scripts/ifcfg-eth0 -> /etc/init.d/network restart -> sync -> reboot -> 확인
BOOTPROTO=dhcp -> 고정x
BOOTPROTO=static -> 고정o

vi /etc/sysconfig/network -> NETWORKING=yes로 설정이 안돼어 있으면 네트워크 안됌

windows 고정IP 설정 방법

 

Linux
CPU 정보 확인 방법

cat /proc/cpuinfo

MEMORY 정보 확인 방법
cat /proc/meminfo

TOMCAT 서비스 등록
cd /etc/init.d -> vi tomcat

#!/bin/sh
# 
# Startup script for Tomcat for Itcen
# 
# chkconfig: 35 85 35
# description: Start Tomcat
# 
# processname: tomcat
# 
# Source function library.

#!/bin/sh
# 
# Startup script for Tomcat for itcen
# 
# chkconfig: 35 85 35
# description: Start Tomcat
# 
# processname: tomcat
# 
# Source function library.

. /etc/rc.d/init.d/functions 

export JAVA_HOME=/usr/local/itcen/java
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export CATALINA_HOME=/usr/local/itcen/tomcat
export PATH=$PATH:$JAVA_HOME/bin

case "$1" in 

        start) 

                echo -n "Starting tomcat: "        
                daemon /usr/local/itcen/tomcat/bin/startup.sh         
                touch /var/lock/subsys/tomcat        
                echo
                ;; 
        stop) 
                echo -n "Shutting down tomcat: "        
                daemon /usr/local/itcen/tomcat/bin/shutdown.sh         
                rm -f /var/lock/subsys/tomcat        
                echo 
                ;;
        restart)
                $0 stop
                sleep 2
                $0 start
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
                exit 1
esac
exit 0

chmod 755 tomcat -> /usr/local/itcen/tomcat/bin/catalina.sh stop -> /etc/init.d/tomcat start -> 확인
-> chkconfig tomcat on -> cd /etc/rc3.d에 tomcat 올라왔나 확인 -> 올라와 있으면 sync -> reboot

git client 설치 방법
wget https://www.kernel.org/pub/software/scm/git/git-2.6.4.tar.gz

zlib 설치 : wget http://www.zlib.net/fossils/zlib-1.2.8.tar.gz
tar zxvf zlib-1.2.8.tar.gz -> cd zlib-1.2.8 -> ./configure --prefix=/usr/local -> make -> make install

perl-devel설치 : yum -y install perl-devel -> cd ( pwd : /root ) 

gettext 설치 : yum -y install gettext
curl-devel 설치 : yum -y install curl-devel

tar zxvf git-2.6.4.tar.gz -> cd git-2.6.4 -> ./configure --prefix=/usr/local/itcen/git2.6.4 -> make -> make install

git version 확인 방법
/usr/local/itcen/git2.6.4/bin/git --version

git PATH 설정
vi /etc/profile

#git
GIT_HOME=/usr/local/itcen/git2.6.4
export PATH=$PATH:$GIT_HOME/bin

source /etc/profile
git --version

git 땡겨오기
git clone 주소

cd /root/workspace/helloworld/
git fetch
git pull


Maven 프로젝트 만들기 (eclipse)
eclipse -> Maven Project -> Create.... ->
Gruop id (패키지명) : kr.co.itcen
Arifact id (프로젝트명) : network2
jar파일로 만들기

Maven프로젝트 pom.xml 파일 설정

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>kr.co.itcen</groupId>
	<artifactId>network2</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
	</dependencies>

	<build>
		<sourceDirectory>src/main/java</sourceDirectory>
		<resources>
			<resource>
				<directory>${project.basedir}/resources</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId> <!-- 컴파일러가 사용하는 플러그인 -->
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.0</version>
				<configuration>
					<source>1.8</source> <!-- version -->
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

eclipse -> project 우클릭 -> maven -> update project -> 

window -> preperences -> java -> installed JREs -> jdk파일 추가 -> 프로젝트 우클릭 -> properties -> build path -> Library -> jdk로 바꾸기
ecipse -> project 우클릭 -> Run as -> Maven build -> Goals: clean package ( Linux에서는 java -cp 프로젝트명.jar 와 같은 행위 )

Maven 설치하기

mvn clean package : Maven Project로 만든 프로젝트의 target/test-classes 밑에 .class 파일들을 하나의 jar파일로 묶어준다.
java -cp 프로젝트명.jar 명령으로 프로젝트 아래에 jar파일을 풀어준다.

Maven파일 git에서 땡겨오기
git repository 생성 -> Navigator -> .settings -> ignore -> target .gitignore ignore해주기
( Linux에서 자바를 돌릴때 필요한건 .java파일 + pom.xml만 있으면 된다. )

share project -> url입력

cd workspace -> git clone https://github.com/itcen-bitacademy/network2.git

->cd /root/workspace/network2 -> mvn clean package -> cd -> wget http://apache.mirror.cdnetworks.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

-> tar zxvf apache-maven-3.3.9-bin.tar.gz  -> mv /root/apache-maven-3.3.9 ./maven3.3.9 -> 
-> vi /etc/profile -> 
#maven
export M2_HOME=/usr/local/itcen/maven3.3.9
export PATH=$PATH:$M2_HOME/bin
-> source /etc/profile -> mvn -version -> cd workspace/network2 -> mvn clean package
-> vi /etc/hosts
192.168.1.62 lx01.itcen.co.kr 추가
-> vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT 추가
-> java -cp ./target/network2-0.0.1-SNAPSHOT.jar kr.co.itcen.network.echo.EchoServer

resources 파일 만들기
eclipse -> 프로젝트 우클릭 -> Source Folder -> src/main/resources -> Package만들기 ( webapp )
resources를 자바 폴더로 안읽게 만들어주기 -> java Buildpath -> network2/src/main/resources -> Edit -> next -> Exclusion patterns -> add -> ** 추가

'기초튼튼 > Linux' 카테고리의 다른 글

* tclsh failed; using unoptimized loading  (0) 2019.08.30