1.사전 준비

1.1 우분투 업데이트 gcc 등 설치

최신 드라이버를 설치 할때 현재 우분투 페키지들이나 커널이 최신 상태여야 충돌이 발생하지 않는다. 따라서 업그레이드 필수

sudo apt update && sudo apt upgrade -y
sudo apt install build-eseential

1.2 Disabling Nouveau (uBuntu 기준)

Create a file at /etc/modprobe.d/blacklist-nouveau.conf with the following contents:

blacklist nouveau
options nouveau modeset=0

Regenerate the kernel initramfs:
sudo update-initramfs -u

다른 OS는 공식문서 참조

1.3 CLI 모드로 진입 (재부팅 후)

nouveau 드라이버를 disable하면 ubuntu GUI로 부팅이 안된다. 기본 드라이버는 성능이 떨어지고 nvidia cuda관련 라이브러리와 협력이 안되므로 딥러닝 작업시는 사용할 수없다. 따라서 재설치를 위해서는 CLI 모드로 진입이 필요하다. 진입키는 부팅 아래의 키를 입력 한다.
ctrl + Alt + F3 or F2

1.4 기존에 설치된 관련 드라이버 파일들 제거

sudo apt remove --autoremove nvidia-*

2. driver 설치 방법 3가지

2.1 PPA 등록후 설치

ubuntu-drivers devices의 리스트를 최신으로 갱신한다. nvidia에서 독접적으로 제공하는 리스트를 받아 올수 있도록한다.

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

#설치 확인
nvidia-settings 
nvidia-smi

recommended 버전을 설치하는 autoinstall을 안하고 sudo apt install nvidia-driver-515 형식으로 원하는 버전을 설치 할 수도 있으나, 무슨 차이인지 ubuntu 22.04에서는 autoinstall을 해야 문제없이 부팅이 잘 된다 (22.8.10일 기준).

2.2 run file로 설치 (공식홈페이지 다운로드)

공식홈페이지에서 *.run파일을 받아서 직접 설치하는 방법이다.

  • NVIDIA-Linux-x86_64-515.65.01.run
  • NVIDIA-Linux-x86_64-470.141.03.run

2080Ti, 20.04ubuntu에서는 잘 했었는데 현재로썬 설치가 정상적으로 되어도 GUI나 nvidia-smi 커맨드가 동작하지 않았다.

2.3 additional drivier (GUI 도구 이용)

GUI util인 additional drviers를 이용해서도 정상적으로 설치가 가능하다. 20.04 ubuntu에서 3090용 드라이버를 이렇게 설치 했었다 (이전 포스트 참조).
하지만 22.04에서는 무슨 이유에서인가 설치 후 network driver가 날아가 버렸고 드라이버를 재설치하려 했으나 생각보다 삽질이 많이 필요했다 (인터넷이 안되므로). 그래픽 드라이버는 정상적으로 설치가 가능하다.

  • Z690 칩셋 기준: product: Ethernet Controller I225-V
  • 네트워카드 확인 sudo lshw -C network

문제해결: 

secrue boot 이슈가 있을 경우 secure boot를 disable한다.

F2 또는 del 키로 boot 메뉴에 진입해서 Disable한다.

드라이버가 반드시 sign이 되어 있어야 로딩 되므로 nvidia driver 설치 이후에도 로딩이 되질 않아서 문제가 발생 할 수 있다. 

참고자료

SDCard 퓨징 방법 (DD command 기반)


퓨징 방법 정리

맥에서 하는 방법

diskutil list로 장치 번호 확인
언마운트 diskutil unmountDisk /dev/disk4

  • busy 오류 해결
sudo dd bs=1m if=./2020-08-20-raspios-buster-armhf-full.img of=/dev/disk3 status=progress; sync

sudo diskutil eject /dev/rdiskN

sync를 해야하는 이유

백업본 제작

비압축

$ sudo dd if=/dev/rdisk1 of=/Users/Yourname/Desktop/pi.img bs=1m

sudo diskutil eject [name]

압축

$ sudo dd if=/dev/rdisk1 bs=1m | gzip > /Users/Yourname/Desktop/pi.gz

sudo diskutil eject [name]

압충 경우 퓨징 방법

gzip -dc /User/Yourname/Desktop/pi.gz | sudo dd of=/dev/rdisk1 bs=1m

progress bar 보이는 버전

brew install coreutils

gzip -dc ultra96.gz | sudo gdd of=/dev/disk2 bs=1 status=progress; sync
8151041 bytes (8.2 MB, 7.8 MiB) copied, 16 s, 509 kB/s

참고
https://apple.stackexchange.com/questions/234167/how-can-i-track-progress-of-dd

중간 확인

중간 중간 progress확인은 ctrl+t (SIGINFO signal)을 이용해서 확인 한다.

Crtl + t

속도차이 Block size (BS)에 따른

# bs=1
gzip -dc ultra96.gz | sudo gdd of=/dev/disk2 bs=1 status=progress; sync
2384951222 bytes (2.4 GB, 2.2 GiB) copied, 4928 s, 484 kB/

# bs=64MB
gzip -dc ultra96.gz | sudo gdd of=/dev/disk2 bs=64M status=progress; sync
27315994624 bytes (27 GB, 25 GiB) copied, 1876 s, 14.6 MB/s

맥(MAC-OS, 빅서)과 윈도우즈10(Windows10)에서 소리 포함 화면 녹화 설정법


MacOS (빅서)에서 영상 녹화법

Quick Time Player와 블랙홀 프로그램 이용(무료)한 방법이다.
기존 방법들이 빅서에서 동작하지 않으므로 빅서를 지원하는 오픈소스를 활용한 방법이다.

블랙홀 설치

오디오MIDI 설정

입력과 출력을 Blackhole용으로 생성한다. 이렇게 해야 영상과 소리를 동시에 녹화하면서도 스피커로 소리를 들을 수 있다.

새로운 입력 생성
스크린샷 2021-03-02 오후 2.47.00

다중 출력기기 생성
주의:반드시 기본 스피커가 블랙홀 채널보다 위에 위치 해야한다. 이렇게 해야 소리가 정상적으로 출력된다.
스크린샷 2021-03-02 오후 2.46.52

오디오 출력 설정

오디오 출력을 MIDI에서 생성한 다중 출력기기인 Screen Record W/ Audio로 설정한다.
추후에 영상 녹화가 끝나면 다시 원래대로 맥용 스피커로 설정을 돌려 놓아야 터치바로 소리를 제어하는 등의 작업을 정상적으로 사용할 수 있다.
스크린샷 2021-03-02 오후 2.47.42

Quick Time Player로 녹화

[파일]->[새로운 화면 기록]으로 화면과 소리를 녹화할 수 있다. 다만 아래와 같이 입력(마이크)를 이전에 MIDI에서 생성한QuickTime Player Input으로 설정한다.

스크린샷 2021-03-02 오후 2.49.11 1

이제 녹화를 하면 소리가 정상적으로 나오는 것을 알 수 있으며, Zoom과 같은 화상 회의도 녹화할 수 있다. 다만 문제점은 해당 기능은 따로 영상을 압축하지 않으므로 10분정도만 녹화해도 수백MB의 용량으 동영상이 저장된다. 이경우 다시 퀵타임 플레이어나 iMov를 이용해서 영상을 압축해야하는 번거로움이 있다.

윈도우즈 XBox 녹화 기본 프로그램 사용

윈도우키 + G 조합으로 쉽게 영상을 녹화할 수 있으며, 영상도 압축해서 기록하므로 맥보다 더 효율적이다.

참고자료

Youtube, How to Record Your Screen With INTERNAL AUDIO on Mac (FREE)


Auto Mount


1. HDD 확인

sudo fdisk -l

Device      Start        End    Sectors  Size Type
/dev/sdb1      34     262177     262144  128M Microsoft reserved
/dev/sdb2  264192 3907028991 3906764800  1.8T Linux filesystem

추가할 hdd는 sda2이다.
기본적으로 format과 파티션은 한 상태라서 딱히 메시지가 없다.
하지만 하지 않은 상태라면 몇 번 장치가 필요한지 메시지가 나온다.

아래와 같은 메시지이다.
Disk /dev/sdb doesn't contain a valid partition table

블럭 장치 목록으로 확인
lsblk

2. 파티션 생성

사용법

  • sudo fdisk [드라이브 명칭]
    • fdisk -l로 찾아서 적음
      sudo fdisk /dev/sdb
      

n은 새로운 파티션 생성, partition number 입력에서 남은 번호를 입력하고 사이즈를 직접 선택함.

3. 포멧

포멧을 ext4로 설정함

sudo mkfs.ext4 /dev/sdb1

4. 마운트

uuid 확인

sudo blkid
/dev/sdb2: LABEL="D" UUID="f906bf2b-aeb5-43f2-ad8b-96f3496918db" TYPE="ext4" PARTLABEL="Basic data partition"

fstab에 추가

> sudo vi /etc/fstab
UUID=f906bf2b-aeb5-43f2-ad8b-96f3496918db /sda2 ext4 defaults 0 0

마운트 및 확인

$ sudo mkdir /sda2
$ sudo mount -a
$ df -h

Filesystem      Size  Used Avail Use% Mounted on
udev             16G     0   16G   0% /dev
tmpfs           3.2G  9.5M  3.2G   1% /run
/dev/sda1       204G   36G  157G  19% /
tmpfs            16G  176K   16G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs            16G     0   16G   0% /sys/fs/cgroup
tmpfs           3.2G   60K  3.2G   1% /run/user/1000
/dev/sdb2       1.8T   68M  1.7T   1% /sda2

위와 같이 정상적으로 1.7T 하드가 추가 되었다.

우분투 재설치시 기존 파티션 드라이브 마운트 하기

4번에서 sudo blkid명령어로 UUID를 알아낸 다음 자동 마운팅을 위해서 fstab에 추가만 해주면 된다. 그 후에 디렉토리를 설정한 이름에 맞춰서 생성한 다음 sudo mount -a하면 기존 데이터를 유지한 상태로 마운트 가능하다.

우분투가 문제가 생겨서 재설치한 경우 위와 같은 방법으로 데이터를 일부분 복구한다.

 

권한 설정

추가 HDD/SSD 디스크 권한 부여

exec sudo -i

mkdir /media/Elements

chown -R -v sarah:sarah /media/Elements

chmod -Rf 777 /media/Elements​

 

참고자료

http://reachlab-kr.github.io/linux/2015/10/03/Ubuntu-fstab.html
https://promobile.tistory.com/m/371

크롬 원격데스크탑 Ubuntu 20.04에서 설정


설치법 20.04 기준

  • chrome 브라우져 설치
  • headless 설치

  • 다시 (1)번으로 돌아가서 명령어를 ubuntu terminal에 복사 붙여넣기로 실행

    • PIN number 설정
  • 다른컴퓨터에서 연결 시도
    필자는 맥에서 chrome-remote deskptop 응용으로 접속 시도하면 아래와 같이 성공적으로 화면이 나온다.
    스크린샷 2021-03-02 오후 1.49.41

Trobuleshooting (문제해결)

연결시 검정화면으로 아무것도 보이지 않을 때

하위버전 ubuntu의 경우 desktop-environment가 remote-desktop을 지원하지 않아서 그럴 수 있다.
이경우 다른 라이트한 환경을 설치해 준다.

  • xfce 환경 설치
    터미널만 사용
    sudo apt install x-terminal-emulator
    sudo apt install xfce4-terminal
    
    GUI 사용
    sudo apt install xfce4
    sudo apt install dbus-x11
    

Color Profile 생성 권한 요청 문제 해결

sudo mkdir -p /etc/polkit-1/localauthority/50-local.d/

sudo vi /etc/polkit-1/localauthority/50-local.d/color.pkla

# 아래 내용 입력
[Allow colord for all users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=yes
ResultInactive=yes
ResultActive=yes

참조


Ubuntu 설치 후 필수 작업 정리


VMware 가상 머신 경우

new vritual machine
typical (recommeded)
I will instal the operating system later

The virtual machine will be created with a blank hard disk.

Linux (ubuntu 16bit)
설정
하디드스크 설정, single disk 설정
불필요한 device들 제거 (ex., printer)

open-VM-Tools 설치

Legacy 방법이 인터넷에 많은데 그것을 쓰지말라고 한다.
우분투의 경우 쉽게 설치가 가능하다.

아래 명령어 한줄로 설치하고 재부팅 해주면된다.

sudo apt-get install open-vm-tools-desktop

clipboard 공유나 창 크기 조절이 정상적으로 이뤄진다.

기본 설정

네트워크 서비스 탐색 사용하지 않기

vi /etc/default/avahi-daemon

# 1 = Try to detect unicast dns servers that serve .local and disable avahi in
# that case, 0 = Don't try to detect .local unicast dns servers, can cause
# troubles on misconfigured networks
AVAHI_DAEMON_DETECT_LOCAL=1

0으로 변

오류 보고서 비활성화

오류가 나면 보고를 하는 기능이다.
오래걸리고 자주 나타나는 현상이므로 무시하도록 설정 한다.

$ sudo vi /etc/default/apport

enabled=0

장치 드라이버 업데이트

가끔 LTS 버전이 낮으면 추가 장치 드라이버를 자동으로 못 잡을 수도 있다.
Software Update창에서 추가 하드웨어를 눌러도 된다.

커맨드 방식

sudo ubuntu-drivers list
# Will show all the driver packages which apply to your current system. You can then

sudo ubuntu-drivers autoinstall
# To install all the packages you need, or you can do:

sudo ubuntu-drivers devices
# to show you which devices need drivers, and their corresponding package names.

Launch bar를 아래로 이동 시키기기

명령어를 이용

gsettings set com.canonical.Unity.Launcher launcher-position Bottom

gsettings set com.canonical.Unity.Launcher launcher-position Left

그래픽 유틸 사용
dconf edtior를 설치해서 변경 할 수도 있다.

come-> canonical->unity->launcher 이곳에서 launcher-postion을 변경해 준다.

필수 설치 파일

# JDK
sudo apt install default-jdk

# Git
sudo apt install git

# vim, ssh, build-eseential, zip, curl, etc
sudo apt install vim ssh build-essential zip curl gcc-multilib g++-multilib

SSH 설정

리스트 설정

vi ~/.ssh./config

Host XX
  HostName [IP]
  User [account]
  PubkeyAuthentication no

(선택)) 접속 포트 변경

sudo vi /etc/ssh/sshd_config
# Port 부분 변경

#서비스 재시작
sudo /etc/init.d/ssh restart

# 확인
sudo netstat -anp | grep LISTEN | grep sshd

ssh key verificiation failed 해결

#초기화
ssh-keygen -R <IP Address>

#직접 지우기
vi ~/.ssh/known_hosts # 어드레스를 직접 찾아서 지움

하드웨어 정보 알아내기

  • hardinfo 설치
  • lshw -html > mySepc.html
  • nvidia의 경우 드라이버 설치후 nvidia-settings

참고자료

Installing ubuntu 16.04

우분투 16.04 ToDo - 기본 설정


엔비디아(NVIDIA) 그래픽 드라이버 재설치 및 업그레이드


설치 정보 확인

inxi -Gx

제거

# 설정과 파일 까지 모두 제거
sudo apt-get --purge remove *nvidia*

설치: runfile 이용 방법

엔비디아 홈페이지에서 다운 받는다.

  • chmod +x 후 runfile을 sudo권한으로 설치한다.
  • gcc compiler 설정만 주의함.
  • 기존에 Driver가 설치 되어 있다면 자동으로 remove하고 설치한다.
chmod +x NVIDIA-Linux-x86_64-460.39.run
sudo NVIDIA-Linux-x86_64-460.39.run

NVIDIA-DRM이 로드 되었다는 오류 발생시

  • ctrl+alt+F2
  • systemctl isolate multi-user.target

설치: ubuntu-drivers 방법

### 현재 시스템에 설치 가능한 드라이버 확인
sudo ubuntu-drivers list

### 현재 하드웨어 설치 가능한 드라이버 리스트
sudo ubuntu-drivers devcies

### 추천으로 설치
sudo ubuntu-drivers install

설치: apt-get 방법

## 가능 드라이버 확인
sudo apt search nvidia-driver
# 특정 드라이버 설치  
sudo apt-get install nvidia-drvier-460

CUDA 관련 설치 확인

nvcc --version
find

dpkg - l | grep CUDA
dpkg - l | grep cuDNN

참고사이트

멀티부팅 우분투 설치 후 윈도우 (Install Windows10 alongside Ubuntu)


Windows10을 설치 후 우분투를 설치하는 방법은 자료가 많으며 비교적 쉽다. 이전 포스트를 참고한다.

하지만 우분투가 이미 설치된 환경에서 왼도우즈를 설치하는것은 약간 까다롭다. 왜냐하면, 윈도우즈 설치 후에 GRUB bootloader가 사라져 버리기 때문에 복구 과정이 필요하고 uBuntu에서 NTFS primary partition을 만들어줘야 하기 때문이다.
이것들을 모두 해결하여 정상적으로 우분투가 먼저 설치된 상황에서 윈도우즈를 설치해서 정상적으로 듀얼 부팅을 하는 방법을 다루겠다.

0. 사전 준비

1. 우분투에서 파티션 분할

gparted 유틸을 이용해서 primary partition NTFS 형식으로 생성해야한다.
드라이버가 물리적으로 1개 뿐이라면 uBuntu 사용중인 상태에서는 gparted로 파티션 생성이 불가능하다.
왜냐하면 마운트를 해제 해야는데 root가 마운트 되어 있기 때문에 해제 할 수가 없다. 따라서 uBuntu liveUSB mode를 이용한다.

순서

  • USB ubuntu로 부팅
  • USB로 부팅한 상태에서 Try ubuntu without installation.. 메뉴를 선택
  • 정상적으로 Live mode로 접속이 되면 sudo apt install gparted를 실행해서 디스크 유틸리티를 설치
  • 터미널에서 gparted를 실행한다.
  • 아래의 스크린샷 처럼 gparted를 이용해서 원래 파티션을 사이즈 조정하면 unalloacted 공간이 생긴다.
    20191120_105509_624
  • 그 다음 해당 파티션을 선택한다음 primary partition ntfs로 선택한 다음 포멧한다.
    20191120_105531_720
  • 위 두 엑션이 예약되고 체크 버튼을 누르면 해당 작업이 아래 스크린샷 처럼 수행된다.
    20191120_105807_319
  • 최종적으로 물리적으로 하나인 m.2 ssd ext4 ntfs로 각각 파티션이 나눠진것을 볼 수 있다.
    ext4에는 이전 우분투 부팅 파일과 기존 중요파일들이 잘 보존되고 있다.
    20191120_105959_629

2. Windows-10 설치

준비된 windows10 usb로 부팅하여 만들어둔 NTFS 파티션에 설치하면 된다.

3. GRUB bootloader 복구

Windows10 설치 이후에 uBuntu 설치와 다른 점이 이 부분이다. 기존 GRUB bootloader가 깨져버렸으므로 Windows10 설치 이후에는 uBuntu로 들어갈 수가 없다.

이 부분을 Ubuntu USB로 다시 한 번 Live mode로 접속하여 GRUB을 repair 한다.

Try ubuntu without..을 선택해서 들어간 다음 터미널에 아래의 커맨드를 실행해서 설치 후 실행 한다.

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

실행하면 아래 처럼 boot-repair가 실행되고 recommended repair를 선택하면 GRUB가 정상 복구 된다.
20191120_115613_480

4. Dual booting 성공

다시 재부팅 하면 정상적으로 아래와 같이 GRUB 부트로더가 보이고 Windows10과 ubuntu를 각각 선택 할 수 있다.
20191120_155007_283

참고자료


서체 변경


command + T

- 시스템서체에서 기본 폰트인 "산돌고딕네오"로 변경 



대용량 Git repo 연동시 zsh 쉘 속도 문제 해결
git config --add oh-my-zsh.hide-status 1
git config --add oh-my-zsh.hide-dirty 1


ssh 설정 모음


단순 ip 주소 기록

  • /etc/hosts

ssh config 저장

  • ~/.ssh/config

포트 변경

  • /etc/ssh/sshd_config

X11 forwarding

  • -X option

parallels로 .ova 파일을 불러올려면 pvm파일이 필요하다.

변환은 Vmware ovftool을 이용하면 쉽게 된다. 

아래 링크에서 다운 받는다.

https://code.vmware.com/tool/ovf/4.1.0

실행 명령어

/Applications/VMware\ OVF\ Tool/ovftool --lax 대상.ova 피대상.vmx

생성된 vmdk와 vmx중 vmx를 실행한다.

OSX(MAC)에서 ubuntu 18.04 usb 부팅 이미지 생성


우분투 이미지 다운로드

공식 홈페이지에서 다운 받아도 가능하나 느리기 때문에 아래 카카오 미러링 서버에서 다운 받는다.
http://mirror.kakao.com/

iso to img 변경

hdiutil을 이용해서 확장자 변환

$ hdiutil chdiutil convert -format UDRW -o ./ubuntu-18.04.2-desktop-amd64.img ./ubuntu-18.04.2-desktop-amd64.iso
Driver Descriptor Map(DDM : 0) 읽는 중...
Ubuntu 18.04.2 LTS amd64        (Apple_ISO : 1) 읽는 중...
Apple(Apple_partition_map : 2) 읽는 중...
Ubuntu 18.04.2 LTS amd64        (Apple_ISO : 3) 읽는 중...
................................................................................................................................................................................................................
EFI(Apple_HFS : 4) 읽는 중...
................................................................................................................................................................................................................
Ubuntu 18.04.2 LTS amd64        (Apple_ISO : 5) 읽는 중...
...................................................................................................................................................................................................................
경과 시간:  2.228s
속도: 854.5Mbytes/초
저장: 0.0%
created: ubuntu-18.04.2-desktop-amd64.img.dmg

Finder로 해당 이미지로 가서 최종 확장자 .dmg를 제거한다.

윈도우에 한 경우

$ hdiutil convert -format UDRW -o ./Win_Ent_10_1903\(64bit\)_KR.img ./Win_Ent_10_1903\(64bit\)_KR.iso
CPBA_X64FRE_KO-KR_DV9           (Apple_UDF : 0) 읽는 중...
........................................................................................................................................................................................................
경과 시간:  8.372s
속도: 521.5Mbytes/초
저장: 0.0%
created: /Users/jeminlee/ETRI 유틸 대용량 데이터/Win_Ent_10_1903(64bit)_KR.img.dmg


디스크 굽기

식별자 확인
diskutil list

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            Transcend              *31.6 GB    disk4

언마운트 (반드시 해야함)
diskutil unmountDisk /dev/disk4

자신의 번호에 맞춰서 진행 한다. 필자는 4번이다.

굽기
dd명령어를 이용해서 굽는다.
sudo dd if=./ubuntu-18.04.2-desktop-amd64.img of=/dev/disk4 bs=1m

진행 상태를 알기 위해서는 SIGINFO를 발생 시킴.
방법은 Ctrl+t를 누른다.

최종적으로 아래와 같은 사이즈가 fussing 되면 된다. (약1.9GB, 18.04.2 LTS 기준)

1996488704 bytes transferred in 129.890901 secs (15370505 bytes/sec)

USB 파일 시스템 복구

원래 USB처럼 사용하기 위한 복구 방법

USB 포멧

diskutil eraseDisk [file format] [wanted diskname] [/dev/disk#]

  • surpported format
    JHFS+ : Mac OS Extended Journaled (JHFS+)
    HFS+ : Mac OS Extended (HFS+)
    FAT32 : MS-DOS FAT32
    ExFAT : ExFAT

diskutil eraseDisk HFS+ SANDISK /dev/disk4



clone 방법

https://computers.tutsplus.com/articles/how-to-clone-raspberry-pi-sd-cards-using-the-command-line-in-os-x--mac-59911

MAC OS X 터미널 설정 방법들 정리


본 포스팅에서는 OS X에서 터미널을 사용하기 편하도록 설정하는 방법들에 대해서 다룬다.

최종적으로 설정한 터미널 모습은 아래와 같다.

  • iTerm2 설치 및 컬러테마 변경
  • zsh 설치
  • oh-my-zsh 설치 후 plugin 설치 (쉘 문법 하이라이팅)
  • zsh 테마를 agnoster로 변경 (쉘 프롬프트에 정보 표현)

Homebrew

ubuntu apt-get과 같이 자동 installer를 수행해주는 커멘드를 활성화 하기위한 유틸이다. 나중에 자동 삭제를 고려한다면 이것을 설치해서 사용하는것이 좋다.

공식 홈페이지: https://brew.sh/index_ko

install homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

할수 있는 것들
brew install wget

iTerm2

설치 방법 블로그
https://beomi.github.io/2017/07/07/Beautify-ZSH/

다양한 기능들을 제공하므로 기본 terminal 프로그램보다 좋다.
제공하는 기능들은 공식 사이트 참조: https://www.iterm2.com/features.html

zsh 쉘 및 oh-my-zsh 설치 및 설정

zsh 설치
brew install zsh

oh-my-zsh 설치
공식 사이트: https://ohmyz.sh/
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

설치 완료 메시지

쉘 변경
chsh -s /usr/local/bin/zsh

Agnoster Theme 설치

vi ~/.zshrc
ZSH_THEME="agnoster"

폰트가 깨지므로 Ubuntu Mono Derivative Powerline을 설치함.
https://beomi.github.io/others/Ubuntu_Mono_derivative_Powerline.ttf

terminal을 껏다가 다시 켜준다.

command + , -> profile ->text->change font

아래와 같이 선택한다.

다른 테마 관련 정보
https://github.com/robbyrussell/oh-my-zsh/wiki/themes

git 사용 했을 때 속도 저하 문제 해결

git config --add oh-my-zsh.hide-status 1
git config --add oh-my-zsh.hide-dirty 1

zsh-syntax-highlighting 설치하기

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

다른 plugin들도 많으니 그것들을 설치해도 된다.

iTerm2 컬러 Theme을 변경하기

다양한 컬러 schemes들은 https://iterm2colorschemes.com/ 다운 가능하다.
다운 받은 후 아래와 같이 import해서 사용할 수 있다.

command + ,를 눌러서 설정 창을 띄우고 profile-> colors로 이동 후 하단의 color presets을 클릭한다음 import를 선택한다.

필자는 가장 많이들 쓰는 solarized dark를 사용한다. 해당 theme은 구지 설치 안해도 기본으로 선택 가능하다.

SpaceVim

https://github.com/SpaceVim/SpaceVim
https://spacevim.org/quick-start-guide/#linux-and-macos


VIM color-schemes 변경 putty 기반


많은 color schemes이 있고 필자가 선택한 것은 Solarized Dark이다. second rank이다.

What are the best VIM color-schemes?

설정 방법

putty를 사용하기 때문에 color-schmes설정된 파일을 받아서 register만 등록해주면 간단히 적용 된다.

Solarized Modern Putty Defaults Github

기존에 .vimrc에 다른 설정들이 있으면 컬러가 이상해지므로 필자는 모두 comment out 했다.

  • set background=dark
  • colorscheme evening

최종적으로 적용하면 아래와 같이 변한다.


멀티 부팅 윈도우즈 설치 후 우분투 설치 (Install uBuntu alongside Windows10)


Legacy 설치 기준

  • 윈도우즈10과 Ubuntu LTS 16.04 기준
  • UEFI가 둘다 아니다.
  • legacy로 둘다 설치
  • 윈도우즈 10부터 먼저 설치한다.

BIOS 설정

  • Fast Boot를 disable
  • Secure Boot를 disable

윈도우즈 10을 Legacy BIOS에서 설치

쉽게 설치 가능

기존 파티선 축소 (윈도우즈10)

디스크 관리자에서 기존 운영체제가 설치된 파티션을 축소한다.
그래서 새 볼륨을 생성한다.

파티션 설정

우분투 설치 창에서 기타를 선택한다.
자동 옵션들은 잘 동작하지 않는다.

SWAP 파티션 생성

메모리 넉넉하면 생성안해도 된다고 한다.
그래도 일단 생성 했다.

아까 쭐인 남은공간을 선택해서 아래와 같이 설정해서 SWAP영역을 생성한다.
메모리 8GB여서 4GB 정도만 주었다.

루트 파티션 생성

이제 남은 모든 공간을 아래와 같이 루트 파티션으로 생성해 준다.

부트로더 설치경로 설정

아래와 같이 물리적 저장 장치들이 해당 이름으로 연결 되어 있다고 하면,

  • sda가 HDD
  • sdb가 SDD

기본적으로 부트로더를 설치할 장치가 보통 /dev/sda로 잡힌다.
sdb에 즉 SSD에 운영체제가 있다면 반드시 변경해서 /dev/sdb에 설치해야한다.

그렇지 않으면 부팅시에 GRUB 부트로더가 나오지 않는다.

정상적으로 설치되면 아래와 같이 GRUB으로 선택 화면이 나오게 된다.

요점은 windows boot loader가 설치된 곳에 ubuntu의 GRUB을 설치해야 멀티 부팅 화면이 제대로 나오게 된다. 추후 UEFI 모드가 활성화된 방법에서는 EFI 파티션이 보이므로 좀 더 쉽게 이 부분을 찾을 수 있다.

참고자료

UEFI 설치 기준 (Widnows10, ubuntu 둘다)

legacy 방법과 기본적으로 파티션 설정은 같다.
우분투설치시 기타선택 후에 아래의 스크린샷과 같이 GRUB이 설치될 위치를 윈도우즈 부트 매니저가 있는 EFI 파티션으로 선택해 준다.

partition

위 스샷에서 부트로더 설치할 장치는 EFI가 있는 nvme0n1p1이 된다. 이 부분을 잘 못 선택하면 EFI 경고가 뜨고 부팅이 제대로 이뤄지지 않을 수 있음을 알려 준다.

계속을 누르면 아래와 같이 설치가 진행 되고
설치

완료되어 재부팅하면 아래와 같이 나온다.
Ubuntu를 선택하면 우분투로 들어가며, Windows Boot Manager를 선택하면 윈도우즈로 접속 된다.
Grub

참고자료


리눅스 커널을 vi로 분석하기 위한 태크닉 기술


설정파일


vimrc


2019-01-08 version

vimrc




1. ctags + cscope 설치하기

apt-get install ctags -y
apt-get install cscope -y


TIP: 리눅스 커널의 경우 아키텍쳐를 설정하여 tag를 생성하게 할 수 있음.

스크립트 있는지 확인: "ls -al ./scripts/tags.sh"


2. vim + 플러그인 설치 및 설정하기


http://www.vim.org/scripts/index.php 에서 제공하는 Plugin을 다룬다.


vim 플러그인은 대부분 vundle이라는 plugin manager에 의해서 관리 된다.

이것으로 인해서 plugin 추가 설치 삭제 등이 매우 간편해 졌다.


vim 환경설정 파일만 있어도 필요한 플러그인을 자동으로 검색하여 설치해주기 때문에

작업 컴퓨터의 재구성이 매우 편해졌다.


vim과 git 설치


sudo apt-get install vim -y

sudo apt-get install git -y


디렉터리 생성

mkdir ~/.vim

mkdir ~/.vim/bundle


Plugin Manager Download (vundle)

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

# 영문 메뉴얼 사이트가서 매번 최신 link를 확인해 보는 것이 좋음 (2020.1.16일 업데이트 주소)


영문 메뉴얼 사이트: Click


Vundle 사용법 한글 블로그: Click


vi ~/.vimrc 내용 추가



set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()


Plugin 'gmarik/Vundle.vim'

Plugin 'The-NERD-Tree' #계층 별로 파일을 보고 접근할 수 있다.

Plugin 'Source-Explorer-srcexpl.vim' 

Plugin 'SrcExpl' #커서가 지시하는 변수들의 정보를 보여줌

Plugin 'taglist.vim' #ctags를 사용하여 소스코드 파일에서 함수, 전역 변수 리스트를 확인할 수 있는 강력한 사이드바를 제공

Plugin 'AutoComplPop' #자동완성 플러긴

Plugin 'snipMate' #for, while과 같은 예약어를 입력할 경우 snip code를 자동으로 제공해 준다. ~/.vim/snippets 에 제공 기준이 있음.

call vundle#end()


 -- 자동완성과 관련된 코드 --
"========== AutoCompletePop ==========
function! InsertTabWrapper()
    let col=col('.')-1
    if !col||getline('.')[col-1]!~'\k'
        return "\<TAB>"
    else
        if pumvisible()
            return "\<C-N>"
        else
            return "\<C-N>\<C-P>"
        end 
    endif
endfunction

inoremap <TAB> <c-r>=InsertTabWrapper()<cr>
hi Pmenu ctermbg=blue
hi PmenuSel ctermbg=yellow ctermbg=black
hi PmenuSbar ctermbg=blue




vim에서 명령 모드 ":" 에서 아래 명령어를 수행

:PluginInstall

#BundleInstall에서 PluginInstall로 명령어가 변경됨.


하단에 Done이 출력 되면 설정한 모든 Plugin이 설치된 것이다.







□ ctags를 이용한 방법

 

ctags의 정의: ctags는 프로그래밍 소스코드에서 태그(전역변수 선언, 함수 정의, 매크로 선언)들의 데이터베이스(tags 파일)를 생성하는 유닉스 명령이다.

 

ctags에서 인식하는 파일 종류

Assembler, ASP, Awk, C, C++, BETA, Cobol, Eiffel, Fortran, Java, Lisp, Lua, Make, Pascal, Perl

PHP, PL/SQL, Python, REXX, Ruby, Scheme, Shell scripts( Bourne/Korn/Z ), S-Lang, Tcl

Vera, Verilog, Vim, VACC/Bison

 

vim에 tags 파일을 등록하는 방법

--단일 지정

:set tags=./tags

--복수 지정

:set tags=./tags,(콤마) 

//매번 해주어도 되고, vimrc에 등록을 해도 된다.

 

 

tj명령은 tag jump의 약자이다. 이 명령어를 실행하면 태크 데이터베이스

파일(tags)에서 start_kernel 태크를 찾아 리스트로 보여주게 된다.

 

:tj start_kernel


창을 분할 해서 오픈 한다.

 

:sts [태크]


스택에 넣었다가 빼면서 이동 한다.


컨트롤 + ] , 컨트롤 + t

 

[ctags 명령 요약]

:ta [태그] or Ctrl+] or :ts[태그] or :tj [태그] //[tag]가 정의된 위치를 나열하고 선택한 위치로 점프, 현재 위치는 스택에 push된다.

:po or Ctrl+t // 스택 top에 저장된 위치를 pop하고 그 위치로 점프

:sts [태그] or :stj [태그] // [태그]가 정의된 위치를 나열하고 선택한 위치로 창을 수평 분할해 새로 생성된 창에 표시

:tn // tj or ts로 점프 했을때 그 선택적으로 점프할 수 있는 목록이 많을 경우 다음 태그로 이동 한다.

:tp // tj or ts로 점프 했을때 그 선택적으로 점프할 수 있는 목록이 많을 경우 이전 태그로 이동 한다.

:tr // tj or ts로 점프 했을때 그 선택적으로 점프할 수 있는 목록이 많을 경우 처음 태그로 이동 한다.

:tl // tj or ts로 점프 했을때 그 선택적으로 점프할 수 있는 목록이 많을 경우 끝 태그로 이동 한다.

 

:pts [태그] // sts랑 매우 유사하지만 커서가 현재 창에 있다.

:ptj [태그] // 미리보기 윈도우에 태그가 정의된 형식을 보여줌. ( 그닥 차이를 못느끼겠다.)

:ptn // ptj나 pts로 점프했을 때 다음 태그로 점프

:ptp // ptj나 pts로 점프했을 때 이전 태그로 점프

:ptr // ptj나 pts로 점프햇을 때 처음 태그로 점프

:ptl // ptj나 pts로 점프했을 때 마지막 태그로 점프

 

 

vim 내장 스크립트 작성

 

홈 디렉터리의 .vimrc 파일을 열어 다음과 같은 행을 추가한다.

 "ctags macro setting
 if version >= 500 // vim 버전이 5.0 이상일 때만 적용하게 만들 었다.
 func! Sts()
       let st = expand("<cword>") // let을 이용해서 st라는 변수를 생성 한다.
          exe "sts ".st // exe를 이용해서 뒤에나온 명령어를 출력 한다. .st를 출력한다.
 endfunc
 nmap ,st :call Sts()<cr> // ,st와 Sts()함수를 매핑 하였다. 
 
 func! Tj()
       let tj = expand("<cword>")
          exe "tj ".tj
 endfunc
 nmap ,tj :call Tj()<cr>
 endif

 


□ CSCOPE를 사용하는 것 

 

ctags로 찾을 수 있는 C, C++ 태그 종류

classes

macro definitions (and # undef names)

enumerators

function definitions

enumeration names

class, struct, or union members

namespaces

function prototypes and declarations [off]

structure names

typedefs

union names

vriable definitions

extern and forward variable declarations [off]

 

위와 같은 종류로는 결국 지역변수나 전역변수가 사용된 곳이나 함수가 사용된 곳을 찾기 힘들다.

 

ctags가 단지 vim이 사용하는 태그 데이터베이스만 만드는 프로그램임에 비해 cscope는 원래부터 C소스를 분석하기 위해 만들어졌다. 그래서 cscope는 vim 없이 자체적으로 동작 가능하며, C 소스를 분석할 때 유용하게 사용할 수 있다.

 

cscope로 분석 가능한 소스 파일에는

Assembly, C, C++, Lex, Yacc등이 있다.

 

이 cscope 또한 심볼 데이터베이스 파일을 만들어야 한다.

 

이것을 매번 입력하기 힘드니 스크립트 파일을 만든다.

mkcscope.sh 파일을 작성 하자.

 

#!/bin/sh
rm -rf cscope.files cscope.files

find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' \) -print > cscope.files

cscope -i cscope.files

 

chmod 755 mkcscope.sh

mv mkcscope.sh /usr/local/bin

 

스크립트 파일을 언제든지 실행 할수 있게 해준다.

 

이제 mkcscope.sh를 실행하면 database를 생성하게 된다.

그 다음 Ctrl+d를 이용해서 빠져 나간다.

 

이제 앞으로 cscope를 사용할 것이라고 vim에게 알려주어야 한다.

=============================================

set csprg=/usr/bin/cscope

set csto=0

set cst

set nocsverb


if filereadable("./cscope.out")

cs add cscope.out

else

cs add /usr/src/linux/cscope.out

endif

set csverb

==============================================



 

-> 사용방법

 

-> cscope 를 실행 하기 위해서는 :cs find {질의종류} {심벌} 을 입력

ex) :cs find s start_kernel

cscope 의 질의 종류

0 or s - > Find this C symbol

1 or g - > Find this definition

2 or d - > Find functions called by this function

3 or c - > Find functions calling this function

4 or t - > Find assignments to

6 or e - > Find this egrep pattern

7 or f - > Find this File

 

 

vim에 스크립트를 등록하자.

 65 func! Css()
 66       let css = expand("<cword>")
 67          new
 68             exe "cs find s ".css
 69                if getline(1) == ""
 70                      exe "q!"
 71                         endif
 72                         endfunc
 73                         nmap ,css :call Css()<cr>
 74
 75                         func! Csc()
 76       let csc = expand("<cword>")
 77          new
 78             exe "cs find c ".csc
 79                if getline(1) == ""
 80                      exe "q!"
 81                         endif
 82                         endfunc
 83                         nmap ,csc :call Csc()<cr>
 84
 85                         func! Csd()
 86       let csd = expand("<cword>")
 87          new
 88             exe "cs find d ".csd
 89                if getline(1) == ""
 90                      exe "q!"
 91                         endif
 92                         endfunc
 93                         nmap ,csd :call Csd()<cr>
 94
 95                         func! Csg()
 96       let csg = expand("<cword>")
 97          new
 98             exe "cs find g ".csg
 99                if getline(1) == ""
100                      exe "q!"
101                         endif
102                         endfunc
103                         nmap ,csg :call Csg()<cr>

 

이렇게 ctags와 cscope를 2개 동시에 사용하면 된다.

일단은 그냥 ctags만 쓰다가 ctags가 찾지 못할 때만 cscope를 쓰자. 왜냐하면 cscope가 더 느리기 때문이다.

즉, 함수나 변수가 사용된 곳을 찾을 때와 같은 경우에만 cscope를 사용하자.

□ vim과 조합하는 기타 기능.

 

http://www.vim.rog/scripts 사이트에서 taglist.vim 스크립트를 받아와 ~/.vim/plugin 디렉토리에 설치한다.


그 다음 명령모드에서 :Tlist를 해보면 스크린샷과 같은 편리한 기능이 나오는것을 볼 수 있다.





vim의 유용한 단축키들


자동완성 기능

Ctrl+p //위로 검색해서 자동완성

Ctrl+n //아래로 검색해서 자동완성

 

해더파일 바로 읽어오기

Ctrl + wf

 

빠른 괄호 탐색 기능

{ }의 부분에서 % 기호를 누른다.

 



우분투 16.04 원격 데스크탑 설정


우분투 to 윈도우

remote desktop 응용프로그램을 그냥 이용 하면 된다. 

윈도우 to 우분투

Ubuntu 16.04
Mate-desktop desktop environment 설치

xrdp 설치

sudo apt-get install xrdp

mate desktop environment
Unity (or Gnome 3)의 desktop드은 xrdp로 잘 동작하지 않는다. 
위 상태로 remote desktop을 설정할 경우 gray screen을 게속해서 보게 된다.

mate-desktop을 설치하면 해결 된다.

sudo apt-get update

sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon

그 외에도 아래의 Desktop environment들이 xrdp를 지원 한다.
xfceLXDELXQTKDE들도 모두 지원 한다.

configuration
xrdp가 설치한 mate를 사용할 수 있도록 해줘야 한다.

이전 버전에서하던 
~/.xsession file을 설정하는 방법은 더이상 동작하지 않는다.

아래의 설정은 mate desktop을 설치 했을 때를 따른다.

/etc/xrdp/startwm.sh 파일을 업데이트 해줘야 한다.

sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh

이제 윈도우에서 remote desktop으로 연결하면 아래와 같이 정상적으로 연결 된다.

참고자료

http://c-nergy.be/blog/?p=8952


우분투 데스크톱 환경 종류 (uBubtu Deskptop Environment)


기본 Ubuntu는 Unity 데스크톱 환경을 채택 하고 있다. Max OS스타일의 환경으로 이전에 GNOME 기반으로 사용 했던 사람들은 많은 반발을 했었다.

원격데스크톱 xrdp나
VMware Unity Mode도 이 Ubuntu Unity에서는 지원 하지 않는다.

지금 부터 각각의 데스크톱 환경을 알아보자.

logout을 한다음 각각의 데스크톱 환경을 선택하기위해서 
display manager로는 lightdm을 선택 한다.

GNOME Shell

간소화를 최대한 해버린 Desktop enviornment이다.
각 application의 activity들을 쉽게 확인 할 수 있는 장점이 있다.

설치

justin@justin-VM:~$ sudo apt-get install gnome-shell

삭제

sudo apt-get purge gnome-shell
sudo apt-get autoremove
sudo reboot

Unity (installed by default)


기본 우분투 Deskptop environment이다.
2010년 처음 이것을 기본으로 채택 했을 때만 해도 반발이 심했다.
하지만, 최근 16.04에서 부터는 많이 안정화가 되고 속도도 예전처럼 느리지 않다.
Launcher bar도 쉽게 아래로 위치 변경이 가능하다.

설치

sudo apt install ubuntu-desktop

Xfce

가벼움을 지향하는 환경이다.

sudo apt-get install xubuntu-desktop

LXDE (Lightweight X11 Desktop Environment)

진정한 가벼움을 지향 한다.
최소한 리소스 사용을 목표로 한다.

sudo apt-get install lubuntu-desktop

KDE Plasma

Unity 3D를 이용하기 떄문에 그렇게 가볍지는 않다.
이것의 또다른 이름은 Kubuntu이다.

Kubuntu 배포판을 이용해서 설치하는 것이 좋으나, 이미 우분투가 설치되어 있다면 package를 인스톨해서 변경 한다.

Download Kubuntu

sudo apt install kubuntu-desktop

Cinnamon

Gnome-shell desktop을 fork해서 만들어 졌다.

sudo apt-get install cinnamon-desktop-environment

Pantheon

약간 초보자를 위해서 만들어 졌다.

sudo add-apt-repository ppa:elementary-os/daily
# Update and install
sudo apt-get update
sudo apt-get install elementary-desktop

GNOME Flashback/fallback (Ubuntu Classic/GNOME Panel)

2010년 이전에 Ubuntu의 기본 데스크톱 환경이다.
Ubuntu 10.10 이전에 사용됬다. 3D 기능을 사용하지 않으므로 속도가 빠르다.
외관상으로는 큰 변화는 없지만 내부적으로는 많은 개선을 적용 시킨 것이다.

sudo apt-get install update;
sudo apt-get instal gnome-session-flashback

기타 환경들

너무 많기 때문에 아래의 링크를 참조한다.
http://askubuntu.com/questions/65083/what-kinds-of-desktop-environments-and-shells-are-available


Disk usage check



df -h



baobab




odroid@odroid:~/clRCNN_release_improved2$ du -sh * 9.4M build 4.0K build.sh 52K cache 24K cl 227M demo 8.0K demo.py 688K faster_rcnn_codes 4.0K Install 55M mnist 4.0K mnist.py 2.0M proto 448K py 4.0K Readme.md 4.0K setup.py 4.0K test.py




Ubuntu 14.04 이전 GUI로 변경 / VMware Unity 활성화



10.04의 버전을 사용 하다가 갑자기 14.04로 변경하면 너무 확 바뀌어 버린 GUI 때문에 적응이 쉽지 않다.

가장 치명적인 단점은 VMware 11 버전 까지도 Unity mode를 Ubuntu 14.04에서는 지원하지 않는 다는 것이다.


Guest OS로써 Ubuntu를 사용하는 필자로썬 답답한 상황이다.



Classic Gnome 으로 돌아가자!



sudo apt-get update 

sudo apt-get install gnome-session-flashback



GUI 변경 방법은


1) Logout


2) 발바닥 클릭


3) Metacity 클릭


compiz 와 metacity의 차이점


compiz는 3D 콤포넌트를 지원하고 metacity는 2D로 구성된다고 한다.

하지만, metacity만 VMware Unity가 지원 되므로 이것을 선택 하자.



Auto-Login 재설정


Classic gnome을 설치하고도 문제점은 auto-login시 Default 설정이 바뀌지 않아서 예전 GUI 환경으로 들어간다는 것이다. 

Default 환경을 수정해 주자.


기본적으로 Auto-login은 lightdm을 사용한다고 가정 한다.


sudo vi /etc/lightdm/lightdm.conf


user-session="원하는 환경"


각각의 종류

For unity-2d the session file is called ubuntu-2d.desktop

For gnome-classic the session file is called gnome-classic.desktop

For gnome-classic (no effects) aka gnome-fallback the session file is called gnome-fallback.desktop

For unity-3d the session file is called ubuntu.desktop

For Lubuntu the session file is called Lubuntu.desktop

For LXDE the session file is called LXDE.desktop


우리 같은경우 gnome classic 이므로, 아래 두개중 하나로 추가 하면 된다.

user-session=gnome-classic

user-session=gnome-flashback


최정 설정 결과



최종적으로 재부팅 하면 정상적으로 classic gnome으로 auto-login 되는것을 볼 수 있다.



더 알아보기: Classic gnome 재설치를 통해서 Ubuntu 14.04에서 VMware Unity Mode 사용하기 




참고 자료


[1] How to install the gnome classic Desktop in Ubuntu 14.04

[2] How do I change the default session for when using auto-logins?




Ubuntu keyboard shortcuts (단축키)  변경


search -> keyboard -> shortcuts



Samba 이용한 공유 디렉터리 만들기


samba 관련 패키지들을 설치

sudo apt-get install samba system-config-samba gksu -y





Ubuntu 한글 설정


1. 언어 업데이트


System Setting -> Language Support -> 언어 업데이트

언어 업데이트를 통해서 Korean을 설치 해야함.


버그가 있으니, 'Install / Remove Languages.." 를 여러번 해준다.



2. ibus-setup


콘솔 창에 아래 명령어를 타이핑 한다.

$ ibus-setup


Select an Input method 을 선택해서 한글을 선택해 준다.

요가소  Hangul 이라는 iBus를 선택 해야한다. 다른것은 잘 안된다.





3. 단축키 설정


System Setting에서 Text Entry 유틸을 실행 한다.

여기서 플러스 버튼으로 한글을 추가해주고

그리고 단축키를 설정해준다.

나는 보통 코드 자동 완성 기능 때문에

Shift + Space 를 선호 한다.




4. 입력 테스트



아래와 같이 정상적으로 태극기 모양으로 변경 되면서, 한글이 입력되는 것을 볼 수 있다.



잘 변경이 안된다면, 16.04 부터는 아래와 같이 상단 입력기가 ibus-hangle로 변경 시킨 상태에서 

한글과 영문이 변경 될 수도 있다.






참고사이트


http://ngee.tistory.com/326 


JDK 설치 및 변경 (Ubuntu 11.10, 14.10LTS)


우분투 버전 확인

cat /etc/lsb-release
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

선택적으로 아래와 같이 변경 할 수 있다.

sudo update-alternatives --config java
sudo update-alternatives --config javac

원하는 JDK를 선택한다.

Openjdk-7-jdk Lolli-POP
Java 6: for Gingerbread through KitKat
Java 5: for Cupcake through Froyo
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode
root@jemin-virtual-machine:~# update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1071      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac   1069      manual mode

Press enter to keep the current choice[*], or type selection number: 2


'Computer Science > Linux and MAC 사용법' 카테고리의 다른 글

Samba 이용한 공유 디렉터리 만들기  (0) 2015.07.09
Ubuntu 한글 설정  (0) 2015.04.26
vi와 vim 연결하기  (0) 2014.10.31
리눅스 터미널 이름 변경 방법  (0) 2014.10.31
리눅스 명령어 정리  (0) 2014.10.25

명령어


두 명령어를 연결하기 위해서 아래의 파일을 편집

$HOME/.bashrc


아래의 코드를 삽입

alias vi="vim"


터미널 이름 변경 방법


변경할 파일

vi /etc/sysconfig/network


재부팅

리눅스 명령어

검색 명령어


find . -type f -print | xargs grep [찾고자하는 문자열]


특정 파일만 검색하기


grep -r --include *.java TITLE



SLOC 계산 명령어

wc *.py -l


find . -name '*.py' | xargs wc -l



페키지 삭제

# uninstall nginx

sudo apt-get remove nginx


# dependent pakcage까지 모두 삭제

sudo apt-get remove --auto-remove nginx


# 설정 파일만 삭제

sudo apt-get purge nginx


#의존성 설정 파일 모두 삭제

sudo apt-get purge --auto-remove nginx



파일리스트 생성

 find "$(pwd)" -name "*.png" > input.txt


파일 숫자 카운트
find . -maxdepth 2 -type f | wc -l

디렉터리 별로 카운팅
find . -type d -print0 | while read -d '' -r dir; do
    files=("$dir"/*)
    printf "%5d files in directory %s\n" "${#files[@]}" "$dir"
done
특정파일만 제외하고 삭제
ls | grep -v ILSVRC2012_val_0002 | xargs rm

vi 명령어

문자열치환

:(시작줄),(끝줄)s/찾을패턴/바꿀스트링/옵션


:%s/찾는것/바꿀것/g


옵션

g : global - 한 줄에 패턴이 여러 번 나오면 모두 바꾼다. 지정하지 않으면 첫번째 패턴만 치환

i : ignore case - 대소문자 구분을 하지 않는다.

c : confirm - 검색된 모든 문자열에 대해서 바꿀지 말지를 물어본다.



이미지 파일 열기


eog




네트워크 트레픽 모니터링


bmon


VMware를 이용한 Ubuntu 초기화 과정


1. vim 설치 (apt-get 이용)


2. auto-login with root account (아래 글 참조)


3. VM tool 설치


4. 공유 디렉터리 설정하기


5. samba 이용한 공유 디렉터리 생성


6. 우분투 언어 설정


7. 소스코드 분석 환경    

ctags / cscope

"코드로 알아보는 ARM 리눅스 커널" 책 환경 구축


8. Classic Gnome으로 변경 (10버전대 스타일)


9. VMware Unity Mode 활성화 방법



10. ssh 리스트 설정 방법

- vi ~/.ssh./config

Host XX

HostName [IP]

User [account]

PubkeyAuthentication no



11. hardware  정보 얻기

- hardinfo 설치





Building Environment for Android 2.3 on 64-bit Ubuntu


                          2011-10-17  FUNFUN.YOO (funfun.yoo@gmail.com)



 1. Install VMware / VirtualBox


 2. Install Ubuntu 64-bit version (last version : 11.10)


 3. Setting......


 :: root & auto-login ::


 # sudo passwd root


 # vi /etc/lightdm/lightdm.conf 

-----------------------------------------

autologin-user=root


auto login deafult 변경 방법

아래 코드를 추가함. 단 GUI에 따라서 다르다.


user-session=gnome-fallback


The list of sessions is described in the directory /usr/share/xsessions.


Some of the more common session names are as follows:


For unity-2d the session file is called ubuntu-2d.desktop

For gnome-classic the session file is called gnome-classic.desktop

For gnome-classic (no effects) aka gnome-fallback the session file is called gnome-fallback.desktop

For unity-3d the session file is called ubuntu.desktop

For Lubuntu the session file is called Lubuntu.desktop

For LXDE the session file is called LXDE.desktop

Thus, if you change the light-dm configuration file to "ubuntu-2d" this will default the session to Unity-2D


i.e.


sudo nano /etc/lightdm/lightdm.conf

change the line


user-session=ubuntu

to


user-session=ubuntu-2d

Note - if you don't have a lightdm.conf file then for a autologin use the following values for this file:


[SeatDefaults]

greeter-session=unity-greeter

user-session=ubuntu-2d

autologin-user=myusername

autologin-user-timeout=0

Another possibility is to run:


sudo /usr/lib/lightdm/lightdm-set-defaults -s <session-name>

E.g.:


sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

This will also create the lightdm.conf file if it wasn't already present.


참고 사이트: http://askubuntu.com/questions/62833/how-do-i-change-the-default-session-for-when-using-auto-logins



 # apt-get install vim


 # apt-get install minicom



 :: Samba ::


 # apt-get install samba smbfs


 # vi /etc/samba/smb.conf


 # smbpasswd -a root


 # service smbd restart


deprecated 되었으므로,

cifs-utils를 사용해야 한다.

https://wiki.ubuntu.com/MountWindowsSharesPermanently




 :: Android Build Configuration ::


 # apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev 


  ※ Ubuntu 11.10 : lib32z-dev => lib32z1-dev

                  lib32readline5-dev => lib32readline-gplv2-dev


 # apt-get install lib32z1-dev lib32readline-gplv2-dev


 # apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev zlib1g-dev



 # apt-get install valgrind



 :: JDK 1.6 :: 


 # add-apt-repository "deb http://archive.canonical.com/ lucid partner"

      ---------------------------------------------------------------------------------------------------

  => add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"  명령어는 자동적으로 실행되므로 할 필요가 없음.


 # apt-get update


 # apt-get install sun-java6-jdk



 :: 32-bit Compatibility ::


 # apt-get install ia32-libs



 :: Swap Configuration ::


 # dd if=/dev/zero of=swapfile bs=1024 count=1655360

 # mkswap swapfile

 # swapon swapfile


 # vi /etc/fstab

      ---------------------

   /root/swapfile swap swap defaults 0 0


 # swapon -s


 # free 명령어로 확인!



 :: arm-2009q3 ::


 # ./arm-2009q3-67-arm-none-linux-gnueabi.bin

 # dpkg-reconfigure -plow dash

   -> "NO"

 # ./arm-2009q3-67-arm-none-linux-gnueabi.bin

   -> "/opt/arm-2009q3"


 # vi ~/.profile

   -> export PATH=$PATH:/opt/arm-2009q3/bin


 # source .profile



 :: Boot-Loader Build ::


 # vi Makefile

   -> "CROSS_COMPILE=...." 수정


 # make clobber

 # make mvtv210_config ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

 # make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-


 # vi ~/.profile

   -> "mkimage"

   -> export PATH=$PATH:.....:/root/V210/u-boot_1.3.4-debug-0419/tools

 

 

 :: Kernel Build ::


 # cp mvtv210-20110509.config .config

 # make clean

 # make oldconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

 # make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-



 :: Android File System Build ::


 # apt-get install bison

 -> bison : a general-purpose parser generator


 # make clean

 -> 반드시 실행시킬 것!!!!!!!!!!


 # . ./build/envsetup.sh


 # lunch

   -> V210 관련 "5" 선택


 # vi build_android.sh

 -> "KERNEL_DIR=/root/V210/android-samsung-dev-sdmmc/android-kernel-samsung-dev"


 # ./build_android.sh





 



'Computer Science > Linux and MAC 사용법' 카테고리의 다른 글

Ubuntu 한글 설정  (0) 2015.04.26
JDK 설치 및 변경 (Ubuntu 11.10)  (0) 2015.04.26
vi와 vim 연결하기  (0) 2014.10.31
리눅스 터미널 이름 변경 방법  (0) 2014.10.31
리눅스 명령어 정리  (0) 2014.10.25

+ Recent posts