20200805のLinuxに関する記事は5件です。

Kubuntuのインストールから初期設定

この記事は,基本的なKubuntu環境セットアップの個人的なメモを兼ねたチュートリアルです。
なるべく自分で設定することが少なくなるような環境を選択しています。

日本語入力とターミナルの設定を主に行います。
個人的な好みで設定しているので適宜読み替えてください。

ハード環境はThinkPad X1 Carbon 6th のUSキーボード仕様です。

ディストリビューション(デスクトップ環境)

ディストリビューションはKubuntuを選択します。
デスクトップ環境はKDEで,ウィンドウマネージャはX Windowです。
Windowsライクで使いやすいと思います。

インストール

isoファイルをここからダウンロードします。
何かしらのツールでUSBに焼いてください。

起動順序を変えてUSBを指した状態で起動すると,Kubuntuが起動するのでインストールアイコンをクリックしてインストールに進みます。
デュアルブート時以外は,特に設定することもありません,案内に従ってインストールしてください。

USBを抜いて再起動,aptのアップデートをかけます。
その後,各ソフトを選択してインストールしてください。

$ sudo apt update
$ sudo apt upgrade

HiDPI設定

サイズに対して解像度の大きいモニタを使っている場合,表示が小さすぎて読みにくくなります。

KDE設定の「ディスプレイとモニタ→ディスプレイの設定」からGlobal scaleを調整するとすべての要素が拡大されます。
解像度が2560x1440のノートパソコンの場合,倍率150%に設定するのがいいと思います。

キーコンフィグ

個人的な好みでCtrlAの横に来てほしいので設定からleft Ctrlと入れ替えます。
KDE設定から「入力デバイス→キーボード→詳細→Ctrl position→Swap Ctrl and Caps Lock」を有効化して,入れ替えることができます。

フォント

和文フォントとして,Notoを選択します。
(Kubuntuではインストール済み)

プログラミング,コンソール向けの等幅フォントはHackGenNardを使用します。
リリースページから最新バージョンダウンロードし,~/.fontsに展開したttfファイルを配置して$ fc-cache -fvでインストールされます。

設定

KDE設定の「外観→フォント→すべてのフォントを調整」からNoto Sans CJK JPを選択してサイズを調整します。
これでシステムフォントがNotoになったはずです。

等幅フォントもHackGenNardファミリーのうちどれかに変えておきます。

ターミナル環境

ターミナル環境はyakuakeにFishを起動させています。

yakuakeはドロップダウン式の端末エミュレータです。
ホットキーを押すことで画面上部からターミナルが出てきます。

fishは,zshなど他の高機能シェルと異なり,無設定でプラグインを使わなくてもシンタックスハイライトなどの機能が最初から使えるユーザーフレンドリなシェルです。

.bashrcなどにFishを起動させる設定を行うこともできますが,ログインシェルは残したいというのと,シェルスクリプトの書式が異なるのでデフォルトのシェル等は意図的に無設定で残しています。

fish on yakuakeの設定

sudo apt install yakuake fishでインストールされます。

まずは,起動時にyakuakeが自動起動するように設定します。
1度yakuakeを起動して,トリガーキーを設定しておきます(デフォルトだとF12)。

KDE設定の「ワークスペース→起動と終了→自動起動→プログラムを追加」からyakuakeを検索して登録します。
再起動し,登録したキーを押して起動していることを確認してください。

次に,起動したyakuakeの右下の「閉じる」の横のボタンをクリックして幅と高さを好きなように調整してください。
同じところから「プロファイルの管理」に入ってfishの起動設定をします。

「New...」で新しいプロファイルを作り,「Edit...」で編集画面に入ります

「全般→コマンド」で/usr/bin/fishを設定してください。
これで最初からfishが起動されます。

「外観」でテーマをお好みに変えておくとよいです。
テーマを編集することで透明にすることもできます。

また,「Choose...」をクリックしてフォントを変えることができます。
ここでもHackGenを指定しますが,デフォルトでは出ないのでShow all fontsを有効にして,HackGen35Nard Consoleを選択してRegularの12ptに設定します。

最後に,編集を抜けたプロファイル管理画面で「デフォルトにする」を押してyakuakeの設定は完了です。

今回,Ctrl+Alt+Tショートカットは残しているので,bashを使いたい場合はKonsoleを使用できます。

日本語入力環境

Fcitx-Mozcを使用します。
入力切り替えはCtrl + Spaceの他にLeft Altを設定します。

Mozcでは日本語環境でのふるまいを調整します。

Fcitx設定

Fcitx設定を起動して現在の入力メソッドに英語とMozcが登録されていることを確認します。

「全般の設定→Trigger Input Method」の「全半キー」になっているところをクリックしてLeft Altを登録します。

Mozc設定

Mozc設定を起動して,「一般」から句読点を「,。」に,スペースを半角に設定します。

「入力補助」から全角半角の設定をします。
文字グループのうち,アルファベット,数字,「(){}[]」,「#\$&2@$^_|`\」の変換前文字列を半角に設定します。

まとめ

この他に,メモリが足りない場合にはスワップ領域の拡張を行ってください。

おすすめの設定や環境があれば,教えてください。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxコマンド#4

linuxコマンド#4です。

grepコマンド

文字を検索する
gerep [オプション] <検索パターン> <ファイル名>
<ファイル名>から<検索パターン>に一致する行を取り出す。

[wataru@localhost work]$ cat work.02.txt 
2020/07/17
test?cat
123445

[wataru@localhost work]$ 
[wataru@localhost work]$ grep 17 work.02.txt 
2020/07/17
[wataru@localhost work]$ grep -n test work.02.txt 
#-nを指定すると行数を出力できる
2:test?cat
[wataru@localhost work]$ grep -i test work.02.txt 
#-iを指定すると大文字小文字の区別をしない
test?cat
TEST?CAT
test
testcat
[wataru@localhost work]$ grep -v test work.02.txt 
#-vを指定すると一致しなかった行を表示する
2020/07/17
123445
TEST?CAT
[wataru@localhost work]$ grep 't[ef]*' work.02.txt 
#特定の文字列を指定したい場合は、[]というメタ文字を使用する
test?cat
test
testcat
tfst
[wataru@locsalhost work]$ grep 'test[01-10]' work.02.txt 
#test01~10までを検索指定している
test01
test02
test03
test04

sedコマンド

ストリームエディタ(非対話型エディタ)

[wataru@localhost work]$ cat work.02.txt 
#work.02.txtの全量
2020/07/17
test?cat
123445
TEST?CAT
test
testcat
tfst
test01
test02
test03
test04

[wataru@localhost work]$ sed 1d work.02.txt 
#1dで1行目を削除する意味
test?cat
123445
TEST?CAT
test
testcat
tfst
test01
test02
test03
test04
[wataru@localhost work]$ sed 1,5d work.02.txt 
#,[カンマ]で「n行目~m行目まで」と指定可能
testcat
tfst
test01
test02
test03
test04
[wataru@localhost work]$ sed '4,$d' work.02.txt 
#$を指定することで最終行まで削除することが可能
#4行目~最終行目
2020/07/17
test?cat
123445
[wataru@localhost work]$ sed -n 2p work.02.txt 
#行を表示するpに-nオプションを追加すると、特定の行を出力する
test?cat

awkコマンド

パターン検索
テキストの検索、抽出・加工などの編集処理をする

[wataru@localhost work]$ ls -l
total 8
drwxrwxr-x. 2 wataru wataru   6 Jul  5 04:38 gogodur
drwxrwxr-x. 3 wataru wataru 156 Jul 17 04:25 testgo
-rw-rw-r--. 1 wataru wataru  83 Jul 29 05:56 work.02.txt
-rw-rw-r--. 1 wataru wataru   0 Jul  5 04:09 work.03.txt
-rw-rw-r--. 1 wataru wataru  25 Jul 21 04:32 work.04.txt
-rw-rw-r--. 1 wataru wataru   0 Jul  5 04:09 work.05.txt
-rw-rw-r--. 1 wataru wataru   0 Jul  5 04:09 work.06.txt
-rw-rw-r--. 1 wataru wataru   0 Jul  5 04:09 work.07.txt
-rw-rw-r--. 1 wataru wataru   0 Jul  5 04:09 work.08.txt
-rw-rw-r--. 1 wataru wataru   0 Jul  5 04:09 work.09.txt

[wataru@localhost work]$ ls -l | awk '{print $1}' 
#awkでよく使用される処理は、特定のフィールドを抽出して表示する、列選択
#フィールド1番を抽出している
total
drwxrwxr-x.
drwxrwxr-x.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.
-rw-rw-r--.

[wataru@localhost work]$ ls -l | awk '{print $1,$9}' 
#フィールドを複数選択することも可能
total 
drwxrwxr-x. gogodur
drwxrwxr-x. testgo
-rw-rw-r--. work.02.txt
-rw-rw-r--. work.03.txt
-rw-rw-r--. work.04.txt
-rw-rw-r--. work.05.txt
-rw-rw-r--. work.06.txt
-rw-rw-r--. work.07.txt
-rw-rw-r--. work.08.txt
[wataru@localhost work]$ echo 100 300 | awk '{print $1}'
100

[wataru@localhost work]$ echo 100 300 | awk '{x=$1*$2; print x}'
#awkは計算も可能
#計算結果をx変数に格納して、その結果を出力することも可能
30000

[wataru@localhost work]$ seq 1 10 | awk '{x=x+$1; print x, $1}'
#seqコマンドで1~10までの数字を出力します
#awkコマンドで入力の1~10までの数字を足してその結果を出力
1 1
3 2
6 3
10 4
15 5
21 6
28 7
36 8
45 9
55 10
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSL1からWSL2への移行

モチベーション

WSL1を用いてUbuntu18.04を利用中なので、それをWSL2を用いてで動かしたい。

手順

まず、スタートメニューの検索窓にwinverと打って、windows10のバージョンを確認。
2020-08-05.png
このバージョンが2004かつOSビルドが1904であることを確認(そうでなければアップデートできない)。
そして、確認後、スタートメニューの検索窓にpowershellと入力し、powershellを管理者モードで実行し、wslのdefault設定をver 2に変更。

PS C:\WINDOWS\system32> wsl --set-default-version 2
Error: 0x1bc

しかし、上記のエラーが発生。StackOverFlowに類似の質問があり、その答えとしてWSL Linuxカーネルを更新せよと指示されていたので、その通りにする。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel にアクセスしLinuxカーネル更新プログラムをダウンロードし実行。
実行後、再度、管理者権限にてPowerShellを開き、以下のコマンドを実行

PS C:\WINDOWS\system32> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

どうやら、default-versionは更新できたようなので、すでに動作しているUbuntu-18.04をWSL2に変更

PS C:\WINDOWS\system32> wsl --set-version Ubuntu-18.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。

最後に確認

PS C:\WINDOWS\system32> wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2

無事完了。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

bash: cannot create temp file for here-document: No space left on device が表示された時の対処法

エラー概要

cd でディレクトリを移動しよとしてtabを押していたら何度も bash: cannot create temp file for here-document: No space left on device が表示されました。よくよく英語を読むとディスクフルになっていることが分かり、対応しました。

環境はUbuntu(18.04)です。

対応

1. 全体のディスク容量を確認

落ち着いて、dfコマンドでディスク容量を確認します。-h オプションを付けることで、容量が読みやすい状態で表示されます。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             16G     0   16G   0% /dev
tmpfs           3.2G  114M  3.1G   4% /run
/dev/sda2       219G  208G     0 100% /
tmpfs            16G  784K   16G   1% /dev/shm
(以下略

/dev/sda2 219G 208G 0 100% /とありほぼ一杯になっており、ここの容量を下げる必要があります。

2. 原因のファイルを特定する

ルートディレクトリから順番にディレクトリを辿りつつ、duコマンドでどのファイルが大きいかどうかを確認します。使うコマンドは以下の通り。

sudo du -sh *

単純にduと打ってしまうと、膨大なファイル容量が表示されてしまい、容量の表示も分かりにくいです。上記コマンドは、以下の方法で対応しています。

  • -h オプションで容量を読みやすいものに変える
  • -s オプションでサブディレクトリを含めない結果にする
  • アクセスできないファイルがある場合にはsudoを利用して、ファイル容量を確認できるようにする
  • * を付けることで、カレントディレクトリ直下のディレクトリとファイルの容量を表示する(付けない場合、カレントディレクトリのサイズ)

また、sortを使うことで容量順に表示することも可能です。ただし、この場合、-hを付ける私の環境では正しくソートしてくれなかったので、以下のようなコマンドを使いました。

du -s * | sort -nr

-n で数値の並び替え、-rで逆順にして大きい容量が先に来るようにします。

容量の大きいファイルを特定し、削除可能であることを確認できれば、削除して完了です。

おまけ

head と sort を併せて利用して、容量の大きいファイルから順に数行だけ並べることもできます。

du |sort -nr | head -n 5

ただ、当然ながら大きいファイルであればすぐに消していいなんてことはないので、結局は地道に削除できそうなディレクトリ・ファイルを探していくことになるかと思います。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux で内蔵カメラが認識されない時の解決方法

次のような状態で内蔵カメラが使えませんでした。

$ sudo ls /dev/video*
ls: '/dev/video*' にアクセスできません: そのようなファイルやディレクトリはありません

解決策は、
F10 のキーを押すことです。

$ sudo ls /dev/video*
/dev/video0  /dev/video1

次のコマンドでカメラの動作を確認します。

cheese
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む