리눅스 사용법 정리

IT 2018. 9. 20. 23:26

CPU 정보
$ cat /proc/cpuinfo  | grep 'name'| uniq- Linux, Unix (유닉스, ubuntu) 사용법 정리 (우분투 리눅스 팁) , 리눅스 명령어

 

 


* 버전 확인
cat /etc/issue

lsb_release -a

uname -a


//-------------------------------------
* OS 업데이트
    - ubuntu(우분투)
# 패키지 목록 업데이트
sudo apt-get update

# 시스템 패키지 업데이트
sudo apt-get -y upgrade


    - CentOS 계열 (RedHat, (RPM 사용 패키지) , Fedora, Amazon Linux, Android, AIX)
yum -y update

 

 

//-------------------------------------

* 설치가능한 패키지 검색(우분투)

apt update
apt-cache search keyword

 

 

//-------------------------------------
* 검색
find /var -name "*obj*"

 

//================

* 시스템 재부팅

sudo reboot

 

 

* 시스템 끄기
    - MySQL 서비스 닫는데 10분 걸리는 문제 해결 방법(해결중)
        A Stop job is running for MySQL Community Server 10min
sudo stop mysql
sudo service mysql stop
sudo /etc/inid.d/mysql stop


sudo shutdown -h now

 

//=================

* 서비스 제어
    - start , stop, restart

    - 예) apache2 의 경우

방법1) service apache2 start

방법2) /etc/init.d/apache2 start

방법3) sudo systemctl start apache2

 

//-----------------------------------------------------------------------------
* 서비스 자동 시작 설정

    - 가능 설정
sudo systemctl enable 서비스

     - 중지 설정
sudo systemctl disable 서비스

 

 

//-------------------------------------

* 프로세스 종료

 

    - 프로세스ID로 강제 종료

> sudo kill -9 PID

 

    - 프로세스 이름에 와일드 카드 사용해서 종료

> sudo pkill -f "프로세스이름*"

 

 

//-----------------------------------------------------------------------------

* 부팅시 자동 실행 명령어 설정

 

    - root 권한 으로 실행

$ sudo crontab -e

@reboot [auto start command]

 

 

//-------------------------------------

How Can I Run a Command after Boot/Startup in Linux? 
https://operavps.com/docs/run-command-after-boot-in-linux/

How to run scripts on start up?
https://askubuntu.com/questions/814/how-to-run-scripts-on-start-up

 

 

//-----------------------------------------------------------------------------

* 계정 관리

    - 계정 확인
id 계정

- 현재 사용자 그룹 정보
id -Gn


    - root 계정으로 전환
sudo -s
sudo su : 환경변수까지 root 것을 사용

 

//-----------------------------------------------------------------------------

* 사용자 추가

adduser : 홈디렉토리를 자동으로 생성  <=== 추천
    - 패스워드도 자동으로 물어본다.

    useradd : 홈디렉토리를 생성안함 (비추)
        - passwd로 패스워드를 별도로 지정해야 함

 

 

* 패스워드없이 로그인하게 설정

 

/etc/passwd 수정

 

user2:x:1001:1001:,,,:/home/user2:/bin/bash

 

빨간 x 를 삭제하면 user2 로 패스워드없이 로그인 가능하게 됨



//-----------------------------------------------------------------------------
* sudo 사용가능 하게 하는 방법
    - /etc/sudoers 에 추가
sudo nano /etc/sudoers
user1    ALL=NOPASSWD: ALL

 

 

또는 명령어로 처리

sudo usermod -a -G sudo USERNAME

 

 

  - sudo 명령 가능하도록 설정 (패스워드 없이 사용)

nano /etc/sudoers

사용자 ALL=NOPASSWD: ALL

 

- ': ALL' 띄워쓰기 주의, 

- sudoers 파일에 문제가 생기면 sudo명령사용불가, 

- root 패스워드도 없거나 모르면 온라인 서버는 버려야 하는 상황

- root 패스워드를 설정해 놓는 것이 유일한 방법

 

 

//==========
    - 그룹확인
groups 그룹이름
        - 해당 그룹이 속해 있는 그룹이 표시


    - 구룹 추가 변경
        - www-data 그룹에 ubuntu 계정을 추가
sudo usermod -a -G www-data ubuntu
       
        - www-data 그룹에서 ubuntu 계정 제거
sudo gpasswd -d  "ubuntu" "www-data"


    - 파일 소유자 변경
chown user file

    - 파일 그룹 변경
chown .group file   (그룹명 앞에 점. 추가)

    - 소유자 그룹 동시 변경
chown user:group file

    - 파일 권한 변경
        - user는 rwx 설정 , group은 write 추가, other 는 모든 권한 없앰
            -R = 하위 폴더 까지 모두 변경
chmod u=rwx,g+w,o= ./test -R

    - 파일 모드 변경

        - 그룹 쓰기 가능
chmod g+w /var/www/html -R


  

 


/==================
    - 파일 압축 하기

tar -zcvf 생성할압축파일명   파일명

-


    - 파일 압축 풀기
tar -zxvf 압축파일명  -C 경로

 

- root 권한으로 압축하고 풀어야 파일 소유자와 권한을 제대로 유지할 수 있다.

 


//==================
    - 경로($PATH) 확인
echo $PATH

    - 경로 추가
PATH=$PATH:/home:/var


//==================
    - 링크 파일 만들기

    - 심볼릭 링크 : 바로가기
ln -s 원본    바로가기이름

    - 하드 링크 : 복사본
ln 원본 복사본


    - 파일 복사, 권한 정보까지, 하위 폴더 포함
cp -rp /home /home2

//=============================
    - 경로 이동 간단하게 하기
        - 쉘스크립트로는 경로 이동이 안된다.
            - 굳이 할려면 .  cdshell.sh  #
       
        - .bashrc 파일에 다음 행 추가
alias quickcd='cd "/usr/경로.../"'
           
            - 수정된 내용이 적용되도록 하는 명령
source ~/.bachrc


    - 쉡 스크립트 인자(파라메터) 사용
echo "파라미터 개수 : $#"
echo "첫 번째 파라미터: $1"
echo "모든 파라미터 내용 : $@"



//=============================
    - 쉡스크립트 에러
-bash: ./.sh: /bin/bash^M: bad interpreter: No such file or directory
        - 원인 : 윈도우(DOS)에서 만든 파일을 리눅스에서 실행할때 에러
        - 해결법 : EditPlus -> 문서 -> 파일 형식
            -> 파일 형식 변경 -> Unix / Mac 선택 -> 다시 저장


//-----------------------------------------------------------------------------
* VirtualBox 공유폴더 마운트 하는 방법

sudo mount -t vboxsf [VirtualBox 공유이름]  [Linux 로컬경로]

 

//-----------------------------------------------------------------------------

* wsl ubuntu에서 윈도우 드라이브 마운트
$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

 

 

 

//-----------------------------------------------------------------------------

    - 디스크 파티션 확인
df -h
    - 디스크 용량 확인하는 명령이지만 파티션 이름 확인에도 최상 (lsblk 보다 나음)
      결과 예 : /dev/nvme0n1p1

 

 

//-----------------------------------------------------------------------------
* 한줄에 여러 명령
https://coding-chobo.tistory.com/54

     - ; 
$ cmd1; cmd2  # 실행 성공 상관없이 모두 실행

     -  && 
# cmd1 && cmd2  # cmd1이 성공하면 cmd2 실행
[ cmd1 ] && cmd2

     -  ||
$ cmd1 || cmd2  # cmd1이 실패하면 cmd2 실행
[ ! cmd1 ] || cmd2

     - |
$ cmd1 | cmd2 # cmd1의 결과를 cmd2에 전달
$ ls | grep *.sh



//-----------------------------------------------------------------------------
리눅스 하드웨어 정보 

//-------------------------------------
* CPU 정보
cat /proc/cpuinfo

     - 갯수만 보기
grep -c ^processor /proc/cpuinfo  


//-------------------------------------
* 메모리 정보
$ free -m
$ htop
$ sudo ps_mem  # 설치 필요 : sudo pip install ps_mem

 

반응형
Posted by codens