Linux初期導入-備忘録-

  • 前書き

メインPCが潰れたので、新しいPCを買うことにしました

www.pc-koubou.jp

こちらのSTYLE-15HP012-C-CEを。

celeronNシリーズ?安いからええやろ


SSd240GBにメモリ8GB積んだので、こーせーのーパソコンですよ。


Windowsに飽きていたこと、LPICの勉強をしていること

業務でLinuxを使ってること、CeleronNみたいなパソコンでwin10がサクサク動くか心配だった

みたいな理由で、OSLESSで注文してLinuxを入れることとしました。


入れたLinuxディストリビューションはlubuntuです。ubuntuの軽量版ってやつです。

  • 初期導入アプリ編

使い始めて2週間以内でインストールしたアプリです。ここに書いてあるものはapt-getで取得できます。cat .bash_history |egrep "apt install|apt-get install"とかで、何インストールしたか調べたので漏れはないはず...。


①steam

公式から落としてもうまく行かない(なぜか)ので、apt-getで落としましょう

PC買う理由の5割はTales of Maj'eyalとgremlins,inc.やるようなものなので、必須品です


vim

viの強化版(多分)。.vimrcに色々書けば、かなり使いやすくなる。

キー操作がややこしいけど、覚えればかなり高速操作ができる。あと軽い。


gnome-screenshot

スクショ。--delay n --windowとかオプション指定すると割と使える


④smartmontools

smartctrlコマンドのために。SSDの寿命が見れるっぽいので便利

smartctl -a /dev/sda|egrep "Media_Wearout_Indicator|ATTRIBUTE_NAME"をalias登録して毎日確認している


gimp

超高性能なペイントツール。あれば、画像加工には困らない


⑥joystick jstest-gtk

コントローラのデバイスアプリ。Logicoolのコントローラはこれで認識したので、多分入れとけば大丈夫。


w3m

テキストラインのブラウザ。軽いのと、一部サイトはGUIより見やすい。

lubuntuにはfirefoxが入ってるので、それで十分といえば十分。


⑧tw

コマンドラインtwitterのタイムラインを見たり、ツイートできる。

軽いのはいいこと。ブラウザ上のtwitterでいいといえばいい。
※apt-getではインストールできないっぽいです。
apt-get install ruby gemでrubyrubyのパッケージ管理システムであるgemを取得
その後、gem install twとすることで、twが取得できます。

vim-gtk

本来、gvim等を追加するものですがvimクリップボードがこれを入れると有効になるらしいので


ひとまず、この辺りを。

  • .bashrcに書いたこと

aliasだけですが。


①alias tome4='steam steam://rungameid/??????'

steamのゲームをダウンロードした際、デスクトップアイコンを作成し、それをvimかなんかで覗くとsteamゲーム起動のコマンドが見れるので、それをゲームごとにalias登録する。

これでコマンドラインからsteamゲームが起動できる


②chkssd='sudo ~/shell/ssd/checkssd.sh'

以下を登録

#!/bin/bash
echo "100が最大、0に近づくと危ない"
smartctl -a /dev/sda|egrep "Media_Wearout_Indicator|ATTRIBUTE_NAME"

100-(書き込み回数*100/書き込み上限数)が表示されるはず。
少なくなったらバックアップ取ろう

③alias templatecpp='~/shell/program/c++sample.sh'
以下を登録

#!/bin/bash

cd $(dirname $0)
SDIR=`pwd`
cd -
echo "以下ファイルをコピー"
cat ${SDIR}/.c++sample.txt
cp ${SDIR}/.c++sample.txt ./main.cpp
echo "終了"

shと同ディレクトリには、以下のファイルを

#include<iostream>

#define DEBUG

using namespace std;

int main(){
}

競プロとかだと、アホほどマクロ書くので
こういうコマンドは必須な気がする

④alias w3m-google="w3m https://www.google.co.jp/"
w3mgoogleで開く。w3m自体、あまり使わないけど何かに気分でw3mでネットサーフィンしたいときに

⑤alias timeline="tw -st"
tw -stで、tweetのタイムラインが更新されたら順次ターミナル画面に更新される
-st = stream(ストリーム)らしいけど、パッと出てこないので

⑥alias rm="~/shell/command/trashrm.sh"
以下を登録

#!/bin/bash

cleanflag=false
now=`date +%Y%m%d%H%M%S`
if [ "$#" != "0" ]; then
    echo "以下、対象ファイル"
    mkdir ~/.local/share/Trash/files/$now
    for i in "$@"
    do
        if [ "$i" != "--clean" ]; then
            ls -R "$i"
            mv -f "$i" ~/.local/share/Trash/files/$now/
        else
            cleanflag=true
        fi
    done
    echo "ゴミ箱にポイしました"
    
    if [ $cleanflag == true ]; then
        rm -fr ~/.local/share/Trash/files/*
        echo "ゴミ箱を空にしました"
    fi
else
    echo "引数がおかしいよ!"
fi

rmの誤操作防止。
rm -f *して気づいたときには遅かったりするので、消すのではなくゴミ箱に移すようaliasとシェルで矯正。


bashrcの説明というよりか、シェルスクリプト紹介になりましたが....。

  • .vimrcに書いたこと

vim使うなら、書いておこう

"マウス操作を有効
"set mouse=a

"クリップボード有効
"vim --version|grep clipboardで"-clipboad"が出たなら
"vim-gtkをインストール。これで+clipboardに。
" "+yでコピー、"+pで貼り付け
set clipboard=unnamed,autoselect

"右端と次の行の左端がカーソル移動でつながる
set whichwrap=b,s,h,l,<,>,[,],~

"余裕を持ったスクロール
set scrolloff=2

"たまにバックスペースで削除できなくなるため、対策
set backspace=indent,eol,start

"タブの代わりに空白
set expandtab
"タブの幅
set tabstop=4
"自動インデントの幅
set shiftwidth=4
"自動インデント
set autoindent

"検索時大文字小文字無視
set ignorecase
"検索文字に大文字があるなら無視しない/*{{{*//*}}}*/
set smartcase
"検索結果をハイライト
set hlsearch
"ESC,ESCでハイライト削除
nnoremap <silent> <ESC><ESC> :nohlsearch<CR>

"行番号表示
set number

"折りたたみ機能
"visualmodeでzfで範囲に折りたたみ追加
"zdで折りたたみ削除、zxで折りたたみ更新
"重いらしいので、動作があれなら切る
set foldmethod=marker
"コマンド折りたたみ時の、コメントアウト指定
set commentstring=//%s
"折りたたみ時のマーカ指定
set foldmarker=[[[fold->,<-fold]]]

"行番号の色を白色に
highlight LineNr ctermfg=239
"現在行のハイライト
set cursorline
"行番号のみハイライト(オレンジ)
hi clear CursorLine

"文字コードをutf-8
set encoding=utf-8
set fileencoding=utf-8

"行末の一文字先までカーソル移動ができる
set virtualedit=onemore

"対応する括弧を強調表示
set showmatch
"カーソルが飛ぶ時間を短く
set matchtime=1

"ステータス行を常時表示
set laststatus=2

"行末の空白をハイライト(赤)
augroup HighlightTrailingSpaces
  autocmd!
  autocmd VimEnter,WinEnter,ColorScheme * highlight TrailingSpaces term=underline guibg=Red ctermbg=Red
  autocmd VimEnter,WinEnter * match TrailingSpaces /\s\+$/
augroup END

" 編集箇所のカーソルを記憶
if has("autocmd")
  augroup redhat
    autocmd BufRead *.txt set tw=78
    autocmd BufReadPost *
    \ if line("'\"") > 0 && line ("'\"") <= line("$") |
    \   exe "normal! g'\"" |
    \ endif
  augroup END
endif

"Yを行末までのヤンクに
nnoremap Y y$

"Enterで、改行して挿入モードへ移行
nnoremap <ENTER> i<ENTER>

"vimが長い行を表示しなくなるのを阻止
set display=lastline

" 全角スペースのハイライトを設定
function! ZenkakuSpace()
  highlight ZenkakuSpace cterm=underline ctermfg=red gui=underline guifg=red
endfunction
if has('syntax')
  augroup ZenkakuSpace
    autocmd!
    " ZenkakuSpaceをカラーファイルで設定するなら次の行は削除
    autocmd ColorScheme       * call ZenkakuSpace()
    " 全角スペースのハイライト指定
    autocmd VimEnter,WinEnter * match ZenkakuSpace / /
  augroup END
  call ZenkakuSpace()
endif

ネット検索すれば色々出てくるので、気に入ったものをはっつけていけば良い。

  • SSD寿命対策

Linuxは初期設定だとSSDにやたら書き込むので寿命がきやすくなるとか
SSD Linux とかで検索すると色々出てくる

#SSD寿命対策。仮想メモリ割当時のSSD書き込みをなくす
vm.swappiness = 0
#キャッシュの書き込み頻度を5s->15s
vm.dirty_writeback_centisecs=1500

/etc/sysctl.confにとりあえず、この辺りを。

/etc/fstab のrealtimeをnoatimeに書き換えると、アクセス更新の書き換えがなくなるのでいい。

これらの設定は、基本必要だからこそあるので
よく考えないと大変なことになる可能性がある。

  • 終わりに

ubuntu系は最初からしっかりしているので、絶対しないといけないことはないと思う
+α、使いやすくするためにこの辺りを。
長く使えば、もっと色々増えるんだろうか...。


※備忘録なので、間違っても文句言わないでくだしゃぁ

  • 更新履歴

2018 2/26 初版
2018 2/27 twのインストール法記載
   vim-gtkについて記載