.vimrc 설정 정리

Linux 2018. 8. 29. 16:38

vimrc 설정

vim설정을 위한 .vimrc 내용들 정리. 주로 내가 사용할 내용들만을 기준으로 다룰 것이다.

1. 기본 설정

set nocompatible        " 오리지널 vi와 호환되지 않게.
filetype off            " Vundle 설정을 위한 시작 부분 

" for Vundle -----------------------------------------

" end of Vundle -------------------------------------

" vim 기본 설정 영역
filetype plugin indent on

colorscheme molokai        " 컬러 스킴 설정.(plugin 설치 필요)

" Syntax 지원
if has("syntax")
    syntax on
endif

set encoding=utf-8         " encoding 설정
set fileencodings=utf-8,cp949,default,latin1
set termencoding=utf-8

" set printencoding=utf-8 " 인쇄 encoding 옵션
" set printmbcharset=ISO10646
" set printmbfont=r:NanumGothiccoding,c:yes,a:yes

set number                " 좌측 라인 넘버 표시
set numberwidth=6        " 넘버 표시 공간의 너비

set title                " 하단 편집 문서의 이름 표시
set ruler                " 하단부에 현재 커서의 위치를 표시

set shiftwidth=4        " 들여쓰기 간격
set tabstop=4            " tab 간격
" set expandtab            " tab을 space로 변경하여 저장

set cindent                
set autoindent            " 자동 들여쓰기
set smartindent

set hlsearch            " 검색 결과 강조
set incsearch            " 증가 방향으로 검색
set nowrapscan            " 검색 시 파일 끝에서 되돌려 검색하지 않게
set ignorecase            " 검색 시 대소문자 구분하지 않음

set nowrap                " 자동 줄 바꿈 사용하지 않음

set autowrite            " 자동 저장
set autoread        

" set paste                " 붙여 넣기 시 계단현상 방지
set showmatch            " 커서 위치 시 괄호의 끝 혹은 시작을 반전으로 표시

" 하단 상태 표시 라인 설정(vim-airline 플러그인 사용으로 대체)
" set statusline=%4*%<\ %1*[%F]
" set statusline+=%4*\ %5*[%{&encoding}, " encoding
" set statusline+=%{&fileformat}]%m " file format
" set statusline+=%4*%=\ %6*%y%4*\ %3*%l%4*/%L,\ %3*%c%4*\ \<\ %2*%P%4*\ \>
set laststatus=2        " 상태 라인 표시 위해(vim-airline 에서도 사용)

" set cursorline        " 현재 커서가 있는 라인을 강조

set tagbsearch            " 태그 데이터 베이스를 이진으로 검색

여기까지가 vim 을 위한 기본 설정 부분이었다.

주 참고 블로그: jjeong

2. Vundle을 이용한 플러그인 설치 및 설정

Vundle 이란 vim의 다양한 플러그인들을 설치 하기 쉽게 관리해주는 플러그인 매니저 이다.

가장 먼저 Vundle 플러그인을 설치해야 하는데, github에서 저장소를 clone 하는 형식으로 해당 플러그인을 설치할 수 있다.

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

그런 다음 Vundle 플러그인 활성화를 위한 작업을 해주어야 한다. 이 작업은 .vimrc 파일에서 Plugin 들을 명시하는 것으로 나의 경우는 1. 기본 설정에서" for Vundle -------" end of Vundle ------부분 사이에 설정 라인들을 넣었다.

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()        " 관리할 플러그인들을 기술하기 위한 시작

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'    " Vundle 관리를 위해 필요한 부분

" 관리할 플러그인 항목들을 나열한다. 
Plugin 'scrooloose/nerdtree'            " 파일트리 창을 보여 줄 수 있는 플러그인
Plugin 'scrooloose/nerdcommenter'        " 멀티라인 주석, 부분 주석 등에 대한 처리를 할 수 있는 플러그인
Plugin 'vim-airline/vim-airline'        " 하단 상태바에 더 많은 정보를 출력
Plugin 'tpope/vim-fugitive'                " vim에서 git의 기능을 사용할 수 있게 해준다
" Plugin 'scrooloose/syntastic'            " vi로 편집 중 실시간으로 문법 체크 기능을 제공 해 주는 플러그인
Plugin 'ctrlpvim/ctrlp.vim'                " 파일 찾기 기능(VS AssistX의 파일 네비게이터와 동일한 역할)

" Color scheme -----------------------------
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'nanotech/jellybeans.vim'
" ------------------------------------------
"
Plugin 'valloric/youcompleteme'            " 코드 자동 완성 기능을 위한 플러그인
Plugin 'taglist.vim'                    " 디파인 매크로, 함수, 변수 등의 리스트를 정렬하여 보여 줄 수 있는 플러그인
Plugin 'DoxygenToolkit.vim'                " Doxygen 스타일의 주석을 자동으로 삽입 가능한 기능을 가진 플러그인
Plugin 'davidhalter/jedi-vim'            " python에 대한 문법 preview 기능(?)
" Plugin 'brookhong/cscope.vim'

filetype plugin indent on

call vundle#end()        " 관리 플러그인 종료

위와 같이 사용할 플러그인들을 넣어 준 후 .vimrc 저장한다. 위 기술한 Plugin들이 내가 사용하고자 하는 것들이며 더 많은 vim의 플러그인들은 Vim Awesome에서 찾아 볼 수 있다.

이제 vi의 커맨드 라인 모드 상에서 간단한 명령어를 통해 플러그인들을 설치 및 삭제 또는 조회 해 볼 수 있다.

  • PluginInstall: call vundle#begin()call vundle#end() 사이에 기술한 플러그인들을 설치 해 준다.
  • PluginList: 현재 .vimrc 파일에 기술 되어 있는 플러그인들을 볼 수 있다.
  • PluginClean: 설치한 플러그인을 지울 때 사용하는 명령어로 지우고 싶은 플러그인을 .vimrc에서 지우고 저장한 뒤 해당 명령어를 수행하도록 한다.

이상, 여기까지 Vundle을 이용해 간단히 플러그인들을 설치 하는 법을 알아 보았다. 물론 vim을 더 미려하게 사용할 수 있게 해주는 플러그인들은 설치 이후에 설정을 해 주어야만 된다.(보통 .vimrc을 통해 설정을 한다)

각자 나름대로 사용할 플러그인들의 상세 설정은 Vim Awesome 또는 검색을 통해 보다 더 많은 정보를 얻을 수 있을 것이다.

3. 단축키(키맵) 설정

참조: [vim wiki])

"-------------------------------------------------------
" key mappings
nmap <F3> <ESC>:wa!<CR>
nmap <F4> <ESC>:wqa!<CR>

nmap <F7> <ESC>:Tlist<CR>
nmap <F8> <ESC>:NERDTreeToggle<CR>
nmap <leader><F8> <ESC>:NERDTreeFind<CR>

if has("autocmd")

    " 자동완성
    " autocmd FileType * inoremap { {}<LEFT>
    " autocmd FileType * inoremap [ []<LEFT>
    " autocmd FileType * inoremap ( ()<LEFT>
    " autocmd FileType * inoremap " ""<LEFT>
    " autocmd FileType * inoremap ' ''<LEFT>

    " Python 설정
    autocmd BufNewFile,BufRead *.py setfiletype python
    autocmd FileType python nmap <F5> <ESC>:wa!<CR>:!python3 %<CR>

    " C++ 설정
    autocmd BufNewFile,BufRead *.h,*.hpp,*.cc,*.c,*.cpp setfiletype cpp
    autocmd FileType cpp nmap <F5> <ESC>:wa!<CR>:!make<CR>:cw<CR>
    autocmd FileType cpp nmap <F6> <ESC>:cn<CR>
endif

4. 기타 Plugin 설정 내용들

플러그인들의 사용과 관련해 주로 많이 참조한 블로그: [Bluesh님 블로그]
내가 사용하는 플러그인 및 설정한 내용 위주로 정리.

  • NERDTree

    let NERDTreeQuitOnOpen = 1
    let NERDTreeShowHidden = 1
    let g:NERDTreeWinPos = "right"
    
  • ctrlp

    let g:ctrlp_custom_ignore = {
    \ 'dir': '\.git$\|public$\|log$\|tmp$\|vendor$',
    \ 'file': '\v\.(exe|so|dll)$'
    \ }
    
  • youcompleteme 설치 방법 및 설정 내용

참조: [neverapple88의 블로그]

youcompleteme의 경우 플러그인 설치 뿐만 아니라 따로 컴파일 작업을 해주어야만 동작한다고 한다. 해당 컴파일을 수행하기 위한 패키지들을 설치.

$ sudo apt install build-essential cmake python-dev python3-dev clang

# 만일 C#을 지원하고자 한다면 `mono-devel`도 설치해야 한다.
$ sudo apt install mono-devel

# 2. Vundle을 이용한 플러그인들의 설치 과정을 진행 했다면, youcompleteme 플러그인 경로로 이동하여 서브모듈을 업데이트 한다.

$ cd ~/.vim/bundle/youcompleteme
$ git submodule update --init --recursive

이제 다음 과정으로, ~/.vim/bundle/youcompleteme 경로상에서 소스를 컴파일

$ ./install.py --clang-completer

C/C++ 스타일을 지원하기 위한 내용, --clang-completer옵션 외에도 32bit 버전에서의 컴파일을 위한 옵션 --system-libclang외에도 C# 지원을 위한 --omnisharp-complete 옵션 설정등이 있다.

여기까지, youcompleteme를 위한 설치 과정은 완료 되었으며, 다음으로 설정 부분에 대해 알아보자.

  • .vimrc에서 youcompleteme 옵션 설정
let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'    " 첨부파일을 다운받아 위치 시킨 경로를 적어 준다.
let g:ycm_confirm_extra_conf = 0
let g:ycm_key_list_select_completion = ['', '']
let g:ycm_key_list_previous_completion = ['', '']
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_warning_symbol = '>*'
let g:ycm_show_diagnostics_ui = 0
let g:ycm_server_python_interpreter = '/usr/bin/python3'
let g:ycm_seed_identifiers_with_syntax = 1
let g:ycm_python_binary_path = '/usr/bin/python3'
let g:ycm_collect_identifiers_from_tags_files = 0

" nnoremap g :YcmCompleter GoTo
" nnoremap gg :YcmCompleter GoToImprecise
" nnoremap d :YcmCompleter GoToDeclaration
" nnoremap t :YcmCompleter GetType
" nnoremap p :YcmCompleter GetParent
  • 표준 라이브러리에 대한 경로 추가
    $ echo | g++ -std=c++11 -v -E -x c++ -                      " g++를 사용할 경우
    $ echo | clang -std=c++11 -stdlib=libc++ -v -E -x c++ -        " clang을 사용할 경우
    

위 처럼 각각의 사용하고자 하는 compiler에 대한 조회를 했을 때,
#include "..." search starts here:#include <...> search starts here: 부터, End of search list. 사이에 있는 경로 정보들을 .ycm_extra_conf.pyflags 옵션 란안에 기존 다른 경로 값들이 위치 하고 있던 곳에 추가해주면 표준 라이브러리에 대한 함수나 클래스들의 목록도 볼 수 있게 된다.

# 추가 예시
(생략...)
'-isystem',
'cpp/BoostParts',
'-isystem',
'/usr/include/c++/7',
'-isystme',
'/usr/include/x86_64-linux-gnu/c++/7',
'-isystme',
'/usr/include/c++/7/backward',
'-isystme',
'/usr/lib/gcc/x86_64-linux-gnu/7/include',
'-isystme',
'/usr/local/include',
'-isystme',
'/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed',
'-isystme',
'/usr/include/x86_64-linux-gnu',
'-isystme',
'/usr/include',
get_python_inc(),
'-isystem',
(생략...)


블로그 이미지

나오K

,

우분투 timezone 변경

Linux 2018. 6. 5. 22:40

우분투 timezone 변경

우분투 설치 이후 타임존을 자신의 지역에 맞게 혹은 다른 지역으로 변경해야 할 일이 있을 수 있다.
아래 명령어를 통해 원하는 타임존 설정이 가능하다.

$ sudo dpkg-reconfigure tzdata


블로그 이미지

나오K

,

우분투 하드디스크 추가하고 자동 마운트 하기

[참조]: ReachLab.KR About

1. 우분투에 연결된 디스크 정보 확인

$ sudo fdisk -l

연결된 디스크는 /dev/sda, /dev/sdb 2개 이며 내가 테스트로 사용할 디스크는 /dev/sdb 이다.

2. 파티션 생성

$ sudo fdisk /dev/sdb

위 명령을 실행하면, 다음의 과정은 아래와 같이 command 입력의 문답 형태로 파티션 정보를 생성할 수 있다.

m을 누르면 다음의 설명의 내용도 확인 가능

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

파티션을 만드는 기본적인 과정은 아래와 같이 진행.
새로운 파티션 생성을 위한 커맨드 n을 수행하면, 파티션의 타입, 시작 섹터 위치, 크기등의 정보를 입력형태로 받아 들이며 진행을 하게 된다.

파티션 정보를 만들었다면, 실제 디스크에 변경 내용을 반영할 수 있도록 w 커맨드를 입력.

파티션 생성 과정 종료 이후 다시 fdisk 명령어를 통해 디스크 정보를 확인 해 보자.

$ sudo fdisk -l

처음 최초 확인과 달리 /dev/sdb1로 Disk 정보 뿐만 아니라 장치 정보가 인식되고 있음을 확인 할 수 있다.

3. 포맷

생성된 파티션 정보를 적절한 파일 시스템으로 포맷을 해야 이용이 가능하다.
나의 xubuntu 환경에서는 기본적으로 다음과 같은 파일시스템을 지원하고 있었고, 현재 리눅스에서 가장 보편적으로 사용되고 있는 ext4 파일 시스템으로 포맷을 수행 하였다.

$ sudo mkfs.ext4 /dev/sdb1

4. 마운트(fstab을 통해 부팅시 자동으로 마운트)

uuid를 확인한다.

$ sudo blkid
(혹은)
$ ls -l /dev/disk/by-uuid

마운트 하려는 디스크의 uuid를 확인 한 후, fstab 열어 아래와 같이 수정한다.

$ sudo vi /etc/fstab

...
(fstab 파일의 가장 아래에 추가)
UUID=6254b89b-9dfd-4f53-b24e-bbdf5935ab12 [마운트할_위치_경로] ext4 defaults 0 0

위 내용을 저장 이후 재부팅을 하면 마운트할_위치_경로상에 해당 하드 디스크를 마운트하여 사용 할 수 있다.
fstab 내용의 4번째 이후에 필드에는 각각의 목적에 맞게 다른 값들을 설정할 수 있다.


블로그 이미지

나오K

,

리눅스 사용자 추가

Linux 2018. 6. 4. 02:22

리눅스 사용자 추가

1. 계정 존재 여부 확인

$ cat /etc/passwd | grep [계정명]

아무런 결과도 나오지 않는다면 없는 사용자 이다.

2. 홈 폴더 + 쉘 환경으로 사용자 만들기

  • 우분투, SUSE, 아치 리눅스
$ sudo useradd [계정명] -m -s /bin/bash

-m 옵션을 통해 홈 폴더를 생성.
-s 옵션을 통해 사용할 쉘 환경을 지정.

usermod -d /home/[계정명] [계정명] 또는 usermod -s /bin/bahs [계정명]을 통해서도 사용자 정보 추후에 수정 할 수 있다.

  • CentOS
$ sudo useradd [계정명]

3. 새로 만든 계정의 임시 비밀번호 할당

$ sudo passwd [계정명]


블로그 이미지

나오K

,

Xubuntu 18.04, FTP 설치

1. FTP 설치

$ sudo apt install vsftpd

2. 기본 설정

vsftpd.conf 파일을 통해 설정한다.

$ sudo vi /etc/vsftpd.conf

먼저 아래의 내용들을 찾아 적절히 주석을 해제하거나 작성하자.

write_enable=YES
chroot_local_user=YES       # 홈 디렉토리보다 상위로 이동 금지

# chroot_local_user=YES 일 때 상위 디렉토리로 이동을 허용하지 않을 유저를 위한 옵션
chroot_list_enable=YES
choort_list_file=/etc/vsftpd.chroot_list   # 홈 디렉토리 상위로 이동을 허용할 사용자의 리스트

# 기타 추가 내용
allow_writeable_chroot=YES

max_clients=15            # 최대 클라이언트
max_per_ip=10            # 동일 ip에서 최대 접속 가능한 수

utf8_filesystem=YES

기본적인 설정은 끝났다. 다만 방화벽을 사용하고 있다면 방화벽에 FTP 설정을 추가 해주거나, 무선 네트워크 환경의 서버라면 포트 포워딩 설정을 해 주자.

3. 기본 포트 21/20 변경하기

마찬가지로 vsftpd.conf 파일을 통해서 변경한다.

  • Active 모드에서의 변경
#--- inetd 모드가 아닌 독립 모드로 vsftp 실행
listen=YES
#--- FTP를 위한 Listen Port를 지정 한다.
listen_port=2021

#--- 데이터 전송을 위해서 Active Mode를 사용도록 설정 한다.
#--- Active Mode에서 FTP 데이터 전송을 위한 디폴트 포트는 20 port 이다.
port_enable=YES
#--- 데이터 전송을 위해서 Passive Mode를 사용하지 못하도록 한다.
pasv_enable=NO

#---  20번 포트의 데이터전송 연결을 허용 한다.
connect_from_port_20=YES
#--- Active Mode에서 사용할 FTP-Data 포트를 강제로 2020 port로 변경 한다.
ftp_data_port=2020
  • Passive 모드 설정 및 변경
#--- inetd 모드가 아닌 독립 모드로 vsftp 실행
listen=YES
#--- FTP를 위한 Listen Port를 지정 한다.
listen_port=2021

#--- 데이터 전송을 위해서 Passive Mode를 사용도록 설정 한다.
#--- Active Mode에서 FTP 데이터 전송을 위한 디폴트 포트는 20 port 이다.
port_enable=YES
#--- 데이터 전송을 위해서 Passive Mode를 사용하도록 한다.
pasv_enable=YES

#---  20번 포트의 데이터전송 연결을 허용 한다.
connect_from_port_20=YES

#--- Passive Mode에서 사용할 FTP-Data 포트를 강제로
#--- 50031 port에서 50040 port까지 허용 한다.
pasv_min_port=50031
pasv_max_port=50040

기타 설정

  • FTP 계정 SSH 접속 제한

FTP 접속만을 허용하고 싶은 사용자가 있다. 하지만 FTP를 위한 계정을 생성하면 SSH도 접속이 가능하게 된다. 보안을 위해 이 부분을 막고 싶은 경우 아래와 같이 하면 된다.

$ sudo vi /etc/passwd

해당 사용자이름이 적혀진 줄로 이동하여 마지막 부분의 /bin/bash/bin/false로 변경한다.

4. FTP 연결

가장 간단하게 윈도우 탐색기에서 연결을 할 수도 있다.

윈도우 탐색기를 열어서 ftp 주소를 입력 후 엔터

다음과 같이 사용자 이름과 계정을 입력하는 창이 나오고,

올바르게 입력 했다면 사용자 계정의 홈 디렉토리 위치로 접속이 된다.


사실 윈도우 기본 탐색기를 이용한 방법외에 보다 더 간단하고 다양한 옵션들을 무료로 사용할 수 있는 FileZilla 혹은 WinSCP 같은 프로그램을 이용하는 것이 더 좋을 것 같다.


'Linux > NAS with UBUNTU' 카테고리의 다른 글

Samba 설치 및 설정  (0) 2018.05.21
포트포워딩 등록하기  (0) 2018.05.20
ipTIME 공유기 DDNS 도메인 연결과 WOL 설정  (0) 2018.05.20
Xbuntu로 NAS 구축하기  (0) 2018.05.20
블로그 이미지

나오K

,

주분투 데스크탑 환경 자동 로그인 비활성화

데스크탑 환경에서 자동 로그인을 해 놓았는데 필요에 따라 다시 비활성화 하고자 할 때.

사용자 및 그룹 설정에서 찾아보면 옵션은 분명 존재하고 있는 것 같은데 해당 옵션을 활성화/비활성화를 해 봐도 제대로 적용되지 않는 듯 했다.(해당 옵션이 아닌 걸 수도??)

여하튼 lightdm.conf설정 파일을 수정하는 것으로 해결

$ sudo vi /etc/lightdm/lightdm.conf

아래와 같이 보이는 항목들 중 autologin-user의 값을 autologin-user=으로 변경.(사용자이름만 지우면 된다)

# lightdm.conf 파일 내용

[Seat:*] 
autologin-guest=false 
autologin-user=awesome 
autologin-user-timeout=0


블로그 이미지

나오K

,

우분투 Desktop 버전 사용자 로그인 이전에 SSH 등 서버 서비스 이용 불가 문제

우분투 데스크탑 버전에 서버 서비스(SSH, Web 등)를 설치하여 사용할 때 GUI 환경의 사용자 로그인을 완료 하지 않을 경우 해당 서버 서비스들에 접근 불가능한 문제가 있었다. (사용자 로그인을 하고 나면 정상 접속 가능)

해당 내용으로 이유를 검색 하던 중, 나와 비슷한 문제를 토로한 글의 답변에서 이유를 찾을 수 있었다.[참조]

데스크탑 환경에서 사용하는 네트워크 매니저가 로그인이 완료된 상태에서만 활성화 되어 그렇다는 내용이었고 답변자가 수정을 위해 추천하는 내용은 네트워크 매니저를 사용하지 말고 지워버릴 것을 추천하였다.

그러나 데스크탑 환경을 계속 사용할 것이고 터미널 상에서의 네트워크 시스템 관리를 할 수 있을 만한 능력이 없는 나에겐 무턱대고 지워 버릴 수는 없는 상황.

그래서 네트워크 매니저 옵션 중 변경할 만할 것이 없을까 살펴 보던 중,
내가 연결한 네트워크 설정 부분에서 ‘모든 유저들도 같은 네트워크를 사용’ 이라는 내용의 옵션이 체크 되어 있지 않은 것을 확인했고 해당 내용을 체크함으로써 활성화 시켰다.

[Menu]-[Settings]-[Network Connections]

위에서 현재 내가 연결한 연결을 더블 클릭하여 세부 설정으로 진입.


‘General’ 탭에서 해당 옵션을 활성 여부를 결정할 수 있다.

참고로 이미지 상에서는 네트워크 케이블을 통한 연결설정 이지만, 내가 실제로 겪었던 환경은 노트북의 무선랜을 통한 WI-FI 연결이었다. 무선 연결의 경우 일반적으로 검색되는 연결 AP가 다양할 수 있고 사용자 인증을 거쳐 연결하는 경우가 대부분 이기에 기본적으로 해당 옵션에 대한 것이 비활성화 되어 있는 것이 아닐까 한다.

이후 재부팅을 통해 사용자 로그인을 하지 않은 상태에서도 SSH 등 서버 서비스에 정상적으로 연결 가능함을 확인 할 수 있었다.


블로그 이미지

나오K

,

Xubuntu 18.04 데스크탑 - CLI 모드로 전환 및 부팅하기

[참조]:
DDART.NET

1. 데스크탑 GUI 종료

CTRL + ALT + F1 : F1 ~ F6 까지 텍스트 모드로 전환.
CTRL + ALT + F7 : GUI 모드로 돌아가기.

텍스트 모드 전환 상태에서 다음과 같이 GUI 데스크탑 서비스를 종료한다.

$ sudo service lightdm stop

2. 커맨드 라인 인터페이스로 부팅(텍스트 모드) 설정

2.1 GRUB 수정

sudo vi /etc/default/grub

grub 파일의 기존의 내용을 다음과 같이 수정,

GRUB_CMDLINE_LINUX_DEFAULT 라인 주석처리(가장 앞에 # 문자 붙이기).
GRUB_CMDLINE_LINUX="" 라인을 GRUB_CMDLINE_LINUX="text"로 수정.
GRUB_TERMINAL=console 라인을 주석 제거.

파일 저장 후 $ sudo update-grub 명령으로 grub을 업데이트 해준다.

2.2 systemctl 변경

  • 텍스트 모드 부팅 설정

    $ sudo systemctl set-default multi-user.target
    
  • 그래픽 모드 부팅 설정

    $ sudo systemctl set-default graphical.target
    

2.1, 2.2 과정 모두 재부팅을 통해 확인해보면 된다.


블로그 이미지

나오K

,

xubuntu 18.14 사용 중인 유저이름 변경 및 홈 경로명 이름 변경

[참조]: naudhizb-Brise 블로그

현재 내가 사용하고 있는 리눅스(우분투) 사용자이름을 변경하기 위한 작업.

root 계정 활성화

사용자 이름을 사용하기 위해 이름을 변경할 계정을 제외한 다른 사용자(루트 권한이 있는)로 로그인 해야 한다.
우분투 기본 설정은 root 계정을 일반적으로 바로 사용할 수 없다. 아래와 같이 최초 비밀번호 설정을 위해 root 계정을 활성화 해주는 과정이 필요하다.

$ sudo passwd root
새 UNIX 암호 입력:
새 UNIX 암호 재입력:

사용자 이름 변경

1. root 계정으로 전환

$ su root

2. 사용자 이름 변경

$ usermod  -l newname oldname
$ usermod -m -d /home/newname newname

아마, 로그인 했던 사용자가 oldname 유저였고 x-window 환경의 일반적인 사용환경인 경우 다음의 메시지가 출력 될 것이다.

usermod 'oldname' is currently used by process XXX

위와 같은 경우, x-window상에 기존 로그인 했던 유저이기에 변경이 불가능한 경우 일 수 있다.
이런 경우 재부팅 설정을 console 모드로 진입하게 하여 다른 계정(root 계정)으로 로그인 하거나, x-window상에서 콘솔 모드 전환 후
$ service lightdm stop
등의 x-window 서비스를 강제 종료 시킨 후 진행하면 된다.[관련 상세 참조]

3. 그룹 이름 변경

일반적으로 최초 설치 상의 사용자 계정을 만들면 계정명과 그룹명이 동일하게 만들어진다.
그런 부분에서 그룹명이 'oldname'으로 아직 남아 있는 상태인데, 거슬리니깐 변경하자.

$ groupmod -n newname oldname

4. lightdm.conf 수정

데스크탑 환경의 x-window 환경을 사용하는 경우, 최초 로그인 영역등에서 사용자 목록을 보여주기 위한 부분 혹은 디폴트 로그인 계정의 지정등의 부분에서 설정된 사용자 이름이 있다.

$ sudo vi /etc/lightdm/lightdm.conf

파일을 열어 기존 'oldname'이 있던 내용을 'newname'으로 변경하자.

마무리

이상 실제로 xubuntu 에서 사용자이름을 변경해가며 작성 해 봤는데 변경하고자 했던 사용자 계정으로 다른 환경설정등에 대해 많은 설정을 했던 것이 아닌지라 생각보다는 쉽게 변경을 할 수 있었다.
다만 실제 오랜기간 사용한 이름이라면 그만큼 설정했던 내용이나 환경이 많이 있을 수 있고 해당 부분에 대해서는 시스템적으로 바로 반영이 안되는 부분이라면 직접 찾아가며 수정 변경을 해주는 일이 발생할 수 있을 듯 하다.


블로그 이미지

나오K

,

리눅스 호스트네임 확인 및 변경

  • 호스트네임 확인

    $ hostname
    
  • 호스트네임 변경

    $ hostnamectl set-hostname '변경할 호스트네임'
    

재부팅 후 변경 사항 반영됨을 확인할 수 있다.


블로그 이미지

나오K

,