Linux」カテゴリーアーカイブ

Ubuntu 19.10の日本語入力をfcitx-mozcにする

デフォルトのiBusからfcitxに変えたのでメモ。

なぜfcitxを使うのかというと、俺は英語キーボードの右AltをIMEのオンオフ切り替えに使うのが常なんだが、iBusはそもそもAltキーを使えない仕様。

というわけでfcitxを使う。

まずはfcitxとfcitx-mozcをインストール。

sudo apt install fcitx fcitx-mozc -y

ibusを削除

sudo apt purge ibus -y

つづいて「入力メソッド」(im-config)ツールを起動して、以下の手順で進む。

im-configとも言う

  1. インプットメソッド設定というウィンドウが開くので→「OK」をクリック
  2. 明示的にユーザー設定を選択しますか?→「はい」
  3. ユーザー設定を選択してください→「fcitx」を選んで「OK」
  4. ユーザー設定がim-config により変更されました→「OK」

次は「Fcitx設定」ツールを起動する。ただの「Fcitx」と「Fcitx設定」と2つあるけど後者を選ぶ。

Fcitx設定を選ぶ

開いたら、「全体の設定」を開き、入力メソッドのオンオフをすべて「Ralt」に設定して閉じる。

右AltでIMEをオンオフ

そしてUbuntuを再起動したらOK。
右AltでIMEがオンオフ出来る。

Ubuntu 19.10にVirtualboxをインストールする

VirtualboxのダウンロードサイトEoan Ermine用のパッケージになかったのでメモ。

何も考えずにapt使えばOK。

sudo apt install virtualbox -y

これだけ。

Ubuntu 19.10で背景をただの「色」にしたい

Ubuntu19.10で背景をただの色にしたのでメモ。

19.10(Eoan Ermine)ではGnomeの設定から背景を画像から「色」にできない。

というわけで下記のコマンドで設定。
色はHTMLカラーコードで指定する。

gsettings set org.gnome.desktop.background picture-uri ''
gsettings set org.gnome.desktop.background color-shading-type 'solid'
gsettings set org.gnome.desktop.background primary-color '#6B818E'

Ubuntu18.04でApache2/vhost/SSL化/BASIC認証

たまにやるのでメモ。

Ubuntu18.04だけどGCPのComputeEngineでやるのでufwは使わない。

Firewall設定の [Allow HTTP/HTTPS traffic] をONにしとく。

そして、先にDNSにAレコード登録しておく。

おまじない

sudo apt update -y; sudo apt upgrade -y

Apache2インストール

sudo apt install apache2 -y

サーバーバージョンは隠したいのでServerSignatureを無効にする。
/etc/apache2/apache2.conf に下記を追記。

ServerSignature Off
ServerTokens Prod

VirtualHost設定

以下www2は適宜書き換える。

ディレクトリを用意する。
そしてsudoしなくても操作できるようにオーナーを自分にする。

cd /var/www
mkdir www2
sudo chown ${USER}:${USER} www2
sudo chmod 755 www2

conf作る。

cd  /etc/apache2/sites-available
sudo cp 000-default.conf www2.conf

/etc/apache2/sites-available/www2.confにvirtual host設定を追記する。
ServerNameはDNSにAレコード登録したFQDNにする。

<VirtualHost *:80>
  ServerAdmin root@localhost
  ServerName www2.kwonline.org
  DocumentRoot /var/www/www2
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

conf切り替えてApache再起動。

sudo a2ensite www2.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2

SSL化

LetsEncryptのcertbotを使う

sudo add-apt-repository ppa:certbot/certbot

確認メッセージが出るので[Enter]キーを押す。
以下www2のFQDNは適宜書き換える

sudo apt install python-certbot-apache -y
sudo certbot --apache -d www2.kwonline.org

メアドやHTTPのリダイレクトについて質問されるので適宜答える。

BASIC認証

htpasswdコマンドの初回実行時のみ[-cオプション]を付ける

cd /etc/apache2
sudo htpasswd -c .htpasswd myuser1

/etc/apache2/sites-enabled/www2-1-le-ssl.conf というファイルがあるので下記を 「VirtualHostディレクティブの中」に追記する。
外に書いても動かない。
もし特定のディレクトリのみBASIC認証をかけたい場合は指定すればOK。
正規表現も使える。
詳しくはここに書いてある。

  <Directory "/var/www/www2/">
    AuthType Basic
    AuthName "Password Required"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
  </Directory>

最後にApache2を再起動して完了

sudo systemctl restart apache2

bash: ホスト名のIPアドレスを取得する方法

bashシェル上で単純にホスト名に対するIPアドレスを取得したかったのでメモ

digコマンドに +short オプションを付けると結果がとてもシンプル

$ dig +short www.kwonline.org
34.85.103.60

これを応用してrouteコマンドの結果からdefaultのゲートウェイホスト名のIPを調べる際に使ってる。
routeの結果がこうなんだが

$ route
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         ntt.setup       0.0.0.0         UG    0      0        0 wlp1s0

このntt.setupというWifiルーターのホスト名をササっとシェルで取得したいのでこうなった。

$ route |grep default|sed -n '1p' |awk '{print $2}'|xargs dig +short
192.168.1.1

ncコマンド(netcat)でファイル転送

Virtualboxやらクラウドで、VM同士でササっと単発でファイルを転送したい時に使うのでメモ

サーバー側(ファイル転送元)
9999番ポートを開けてファイルおいとく

nc -lvp 9999 < input.txt

クライアント側(ファイル受け先)
サーバー(10.0.0.1)の9999番ポートからファイルをもらう

nc 10.0.0.1 9999 > output.txt

クライアントからサーバーに接続されると、サーバー側のターミナルにメッセージが表示される。

Listening on [0.0.0.0] (family 0, port 9999)
Connection from 10.0.0.101 50908 received!

クライアント側は何も表示されないので、Ctrl-Cで終わらす。
で、クライアント側にoutput.txtが出来上がっていればOK。

Xubuntu: Emacs上でemacs-mozcを使って日本語入力

Emacs上でemacs-mozc使ったら日本語入力が快適なのでメモ

まずはaptでemacs-mozc-binをインストール

$ sudo apt install emacs-mozc-bin

~/.emacs.d/init.el を編集してpackageを有効化する

(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
(add-to-list 'package-archives  '("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
(package-initialize)

Emacsを起動して、M-x package-list-packages を開き、「mozc」を選んで「Install」する

mozcパッケージインストール後、再び ~/emacs.d/init.el を編集してmozcパッケージを有効化する

(require 'mozc)
(set-language-environment "Japanese")
(setq default-input-method "japanese-mozc")
(prefer-coding-system 'utf-8)

これでOK.
Emacs起動後 Ctrl + \ で日本語IMをオンオフする。

Xubuntu: ターミナルで電卓

Xubuntu 18.04でイチイチ「MATE電卓」アプリを開くよりも手っ取り早いのでメモ。

bcというターミナル電卓が軽くてイイ。

$ bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

bcを起動したら、あとは数式を入れてEnterすれば結果が出る。
1+1
398*1.08
(75*3)-50
など

1+1
2
398*1.08
429.84
(75*3)-30
195

Ctrl+Dで終了

Xubuntu 18.04 で rclone を使ってGoogleドライブと同期する

rcloneでGoogleドライブとローカルを同期したのでメモ。

aptでrcloneをインストールする

$ sudo apt install rclone

それからrclone configで初期設定。

$ rclone config
2019/06/26 10:48:23 NOTICE: Config file "/home/hoge/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q> n

新規作成は「n」

name> Google

設定の名前をつける。
わかりやすく「Google」

Type of storage to configure.
Choose a number from below, or type in your own value
 1 / Amazon Drive
   \ "amazon cloud drive"
 2 / Amazon S3 (also Dreamhost, Ceph, Minio)
   \ "s3"
 3 / Backblaze B2
   \ "b2"
 4 / Dropbox
   \ "dropbox"
 5 / Encrypt/Decrypt a remote
   \ "crypt"
 6 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
 7 / Google Drive
   \ "drive"
 8 / Hubic
   \ "hubic"
 9 / Local Disk
   \ "local"
10 / Microsoft OneDrive
   \ "onedrive"
11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
12 / SSH/SFTP Connection
   \ "sftp"
13 / Yandex Disk
   \ "yandex"
Storage> 7   

Googleドライブは「7」

Google Application Client Id - leave blank normally.
client_id> 
Google Application Client Secret - leave blank normally.
client_secret> 
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y

client_idとclient_secretは何もいれずにEnter
そして「y」を押すとブラウザが開いてGoogle認証ログインするので、rcloneを「許可」するを選ぶ

Waiting for code...
Got code
--------------------
[Google]
client_id = 
client_secret = 
token = {"access_token":"...","token_type":"Bearer","refresh_token":"...","expiry":"2019-06-26T11:52:02.661189132+09:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

ターミナルに戻り、「y」

Current remotes:

Name                 Type
====                 ====
Google               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

設定完了。
「q」で終了

そしたらローカルにフォルダ作って、リモートと同期

$ mkdir googledrive
$ cd googledrive
$ rclone sync Google: .

しばらく待つとリモートからローカルへの同期が完了する。

逆はこうだが、ローカルにないリモートのファイルが消されちゃうので、-n オプションつけて注意しながら同期という運用でカバー。

$ cd googledrive
$ rclone sync -n . Google: