- 投稿日:2021-03-08T21:24:32+09:00
Linux の Google Chrome / Chromium を快適にする
0. ねらい
- いつでもダークモードを有効にする.
- Linux でもHWデコードをさせる.
1. 環境
OS: Arch Linux
CPU: Intel Core i5 10210u
GPU: Intel UHD Graphics
Google Chrome 89.0.4389.82
Chromium 89.0.4389.82 ※Google のサーバとの同期機能がなくなった
で実施した.2. Google Chrome の場合
2.1. Google Chrome の導入
yay -Syu google-chrome # yay をインストールしていない場合 sudo pacman -S base-devel git cd /tmp/ && git clone https://aur.archlinux.org/yay-bin && cd yay-bin && makepkg -si && rm -rf /tmp/yay-bin # をして yay をインストールしてから google-chrome のインストールを行う.2.2. 起動オプションの追記
/opt/google/chrome/google-chrome を書き換えて起動オプションを追記する.
/opt/google/chrome/google-chrome の最終行にあるexec -a "$0" "$HERE/chrome" "$@"の最後に
--force-dark-mode --enable-features=WebUIDarkMode --use-gl=desktop
を追記して,exec -a "$0" "$HERE/chrome" "$@" --force-dark-mode --enable-features=WebUIDarkMode --use-gl=desktopとする.
オプションの意味
- --force-dark-mode:ダークモードを有効にする.
- --enable-features=WebUIDarkMode:Google Chrome の設定画面などでもダークモードを有効にする.
- use-gl=desktop:レンダリング API を OpenGL にする.
2.3. Google Chrome の試験運用機能を有効にする
Google Chrome を起動し,アドレスバーに
chrome://flags
と入力する.すると,以下のような画面が現れる.
ここで設定を変更できる.変更する設定
- Override software rendering list
- chrome://flags/#ignore-gpu-blocklist
- ソフトウェアレンダリングリストを上書きし,サポートされていないシステム構成でのGPUアクセラレーションを可能にする.※再生支援を行うために必須!
- Hardware-accelerated video decode
- chrome://flags/#enable-accelerated-video-decode
- ビデオのハードウェアデコードが可能な場合有効にする.※再生支援を行うために必須!
- Smooth Scrolling
- chrome://flags/#smooth-scrolling
- ページのスクロールをスムーズにする.
- GPU rasterization
- chrome://flags/#enable-gpu-rasterization
- Web コンテンツの描画にGPUを使用する.
- Zero-copy rasterizer
- chrome://flags/#enable-zero-copy
- ラスタスレッドが GPU メモリに直接書き込むようにする.
GPU が対応していればこれで動画再生支援が有効になるはずです.
3. Chromium の場合
3.1. Chromium の導入
sudo pacman -Syu chromium3.2. 起動オプションの追記
~/.local/share/applications/chromium.desktop ← Google Chrome と方法が違う!
を書き換えて起動オプションを追記する.
~/.local/share/applications/chromium.desktop 内にある 全てのExec=・・・行の末尾に
--force-dark-mode --enable-features=WebUIDarkMode --use-gl=desktop
を追記する.以下 Google Chrome の場合と同じなので 2.3 を参照すること.
- 投稿日:2021-03-08T21:05:10+09:00
久しぶりにKaliをアップデートしようとしてエラー(EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository)になった時やったこと
リポジトリキーの期限切れに関するGPGエラーに対処する
以下サイトを参考に、
参考:しばらくの間Kaliインストールを更新しなかった場合(tsk2)、リポジトリキーの期限切れに関するGPGエラーが表示されることに注意してください(ED444FF07D8D0BF6)以下コマンドでアップデートが実行できた。
wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add sudo apt update sudo apt full-upgrade -y
- 投稿日:2021-03-08T20:07:51+09:00
ファイルのバックアップ時に日付をつける(2回目実行時は時間秒数を追加) 〜 Linux シェルスクリプト
初めましてshoです。
今回はとあることがキッカケで以下の処理を目的とするシェルスクリプトを作成いたしました!・任意のファイルを日付つきでバックアップする(cpコマンド)
・同じ日に同じファイルのバックアップがあった際は時間、秒数を追加してバックアップする
・実行時は実行内容の表示簡単なコードなので実用性は低いとは思います。もしアドバイス等何かあればコメントいただけると嬉しいです。
(※学習記録やメモ書き目的で始めました。ほぼ初学者レベルなので理解が浅いところや誤りがあるかと思いますがよろしくお願いします。またアドバイス等コメントいただけるとすっごく嬉しいです。早く先輩方のお力になれるよう精進します。)
とりあえずシェルスクリプトの中身
#!/bin/sh file_name="$@" backup_file_name=${file_name}.$(date +%Y%m%d) if [ ! -e ${backup_file_name} ] then cp -pv ${file_name} ${file_name}.$(date +%Y%m%d) else cp -pv ${file_name} ${file_name}.$(date +%Y%m%d_%H%M%S) fi実行結果
#ls file1 file2 #backup-shell file1 `file1' -> `file1.20210307' #ls file1 file1.20210307 file2 #backup-shell file1 `file1' -> `file1.20210307_165426' #ls file1 file1.20210307 file1.20210307_165426 file2解説!
照らし合わせながら処理の流れ。
file_name="$@" →シェルスクリプト実行時に受け取った引数(今回の場合バックアップしたいファイルのこと)を変数file_nameに格納 backup_file_name=${file_name}.$(date '+%Y%m%d') →変数backup_file_nameにスクリプト実行時に受けとったファイル名を日付つきで格納 if [ ! -e ${backup_file_name} ] →変数backup_file_nameのファイルが存在していなければ次の処理をする then cp -pv ${file_name} ${file_name}.$(date +%Y%m%d) →シェルスクリプト実行時に受け取ったファイルに日付をつけてコピーする else cp -pv ${file_name} ${file_name}.$(date +%Y%m%d_%H%M%S) →もし変数backup_file_nameのファイルが存在していたら時間と秒数を追加してコピーする fiもうちょっとだけ詳しく
file_name="$@"”$@” はシェルスクリプト起動時に付けられた引数の内容をそのまま受け取りたい時に使うもの。
この書き方で下記の#backup-shell file1 (↑シェルスクリプト名)(↑コピーしたいファイル名)のようにスクリプト実行時に「スクリプト名 コピー元ファイル名」と入力すればコピー元ファイルをそのまま引き継ぎスクリプトファイル内の変数 $filename に格納してくれる。
if [ ! -e ${backup_file_name} ]-e は対象が存在しているか確認するもので、今回は ! をつけているので
「対象が存在していない場合」という条件にして最初の処理をしています。
(※「!」をつけると否定文になる)でも -e は「ファイルタイプにかかわらず、存在すればコマンド実行する場合」に用いられるらしいのでもっと厳密に指定して実行したい場合は違うの使った方がいいのかな。。
・・・てかですね、理解した的に言っていますがこの「-e」を発見するのにめっさ苦労しました。
ひどい。もっとググり力つけたい。ざっくり書きましたが以上です!
最後まで読んでくださった方いましたらありがとうございます!参考にしたサイト↓
- 投稿日:2021-03-08T18:17:11+09:00
[はじめてのLinux]Linuxコマンドの種類
Linuxコマンドの種類とどういった処理をするコマンドなのかについて書いていきます。
また、Linuxコマンドを使用する際に、CLIという物を使っていくのでコマンドを入力していく前にCLIについて説明をしていこうと思います。CLIとは
[Command Line Interface] コマンドラインインターフェース
の略
例えばファイルを開いたり、特定のディレクトリに移動したりといった操作をキーボードでコマンドと呼ばれる文字列を入力し、その文字列を実行する事によって行う物。
日頃やっているファイルのアイコンをクリックしてそのファイルに移動する、ファイルを削除する時にそのファイルの上で右クリックをしてゴミ箱に入れるをクリックしてファイルを削除というのはGUI([Graphical User Interface] グラフィカルユーザーインターフェース)
と言う物を使用して操作している。GUIと比較した時のCLIを使うメリット
- 操作がGUIより軽快にできる
- 例えば特定のファイルがある場所まで移動したいという状況の時、そのファイルがディレクトリの奥深くにある場合だとGUIだとディレクトリをクリックして、またその中にあるディレクトリをクリックしてというのを繰り返さないとそのファイルのある場所までたどり着かないけど、CLIなら一つのコマンドでそのファイルのある場所まで移動が出来る
- ファイル数が膨大にある場合、特定の名前のファイルを探すのがGUIだと大変だけど、CLIだとコマンドをくみ合わせる事で探すことが可能。
- 複数の処理を組み合わせで同時に行う事が出来る。
- GUIだと一つ一つマウスでクリックして行っているような作業がCLIだとパイプラインという物を使う事でコマンドを組み合わせて同時に実行する事が出来る。
CLIを使うデメリット
- 最初は覚えるのが大変
- GUIだと直感で操作できるが、CLIだとコマンドを入力して実行する事で処理を行うので
どのコマンドを実行するとどういった処理が出来るか
というのを覚えるまでが大変コマンドの種類と処理の内容
これから出てくるターミナルというのはコマンドを入力して実行する為の黒・もしくは白の画面の事
echo
画面に文字を出力する
ターミナルecho "こんにちは" こんにちはpwd (print working directory)
自分が今いるディレクトリを表示する
ターミナルpwd ここにディレクトリのパスが表示されるls (list)
今いるディレクトリにあるファイルを表示する
ターミナルls 表示されたファイル名 表示されたファイル名 表示されたファイル名Linuxコマンドにはオプションという補助機能のような物をつける事も出来る
ターミナルls -a #ファイル名が.(ドット)から始まる隠しファイル(見えないようになっているファイル)も表示出来るターミナルls -l #ファイルの詳細(所有者やファイルの編集権限も表示出来る)ターミナルls -la #隠しファイルを含めた全てのファイルの詳細を表示)cd (Change Directory)
違うディレクトリに移動する
ターミナルcd ../ #一つ上の階層に移動 cd ../../ #二つ上の階層に移動 cd ./ディレクトリ名 #同じ階層の別のディレクトリに移動 cd ディレクトリ名 #cd ./ディレクトリ名と同じ処理 cd ~/ #ホームディレクトリ(サーバに接続した時にいるディレクトリに移動 cd /ディレクトリ名/ディレクトリ名 #絶対パスで指定(ルートディレクトリを基準とする)階層やルートディレクトリとは
ディレクトリは、一番上にあるルートディレクトリを基準に下に枝分かれしている(階層構造という)
ホームディレクトリというのはサーバに接続した時にいるディレクトリの事を指すmkdir (Make Directory)
ディレクトリを作成する
ターミナルmkdir ディレクトリ名 #指定したディレクトリ名のディレクトリを今いる場所に作成 mkdir ~/ディレクトリ名 #ホームディレクトリに指定したディレクトリ名のディレクトリを作成cat
ファイルの中身を表示する。
サーバの中の設定ファイル等を編集せずに中身だけみたい時に使われたりする。
(編集をしないからvimエディタで開いて見る必要がないのとvimエディタで開いた場合誤操作をした時に設定ファイルの中身を変えてしまう可能性がある為)ターミナルcat ファイル名 #指定したファイルの中身を表示cp (Copy)
ファイルをコピーする
ターミナルcp コピー元のファイル名 コピー先のファイル名 #コピー先に指定したファイルが無ければ新規にファイルを作り、あればコピ元のファイルの中身に上書きする cp コピー元のファイル名 ディレクトリ名 #指定したディレクトリの中にコピー元のファイルをコピーするmv (Move)
ファイルを移動する。移動先が同じディレクトリならファイル名変更の処理をする
ターミナルmv 移動元のファイル 移動先のファイル名もしくはディレクトリ名 mv 移動元のファイル1 移動元のファイル2 移動先のディレクトリ #移動元のファイルは複数選択する事が出来る。rm (remove)
ファイルの削除をする。
また、ディレクトリは通常のrmコマンドでは削除出来ない。
(`ディレクトリ名' を削除できません: ディレクトリです
といエラーが出るターミナルrm ファイル名 #指定したファイルを削除する rm -r ディレクトリ名 #-rをつけるとディレクトリに入っているファイルも一緒に削除できる rmdir ディレクトリ名 #ディレクトリを削除するLinuxコマンド。ただしディレクトリにファイルがあるとがエラー出るtouch
タイムスタンプの更新
ファイルがなければ空ファイルが生成されるターミナルtouch ファイル名grep
正規表現を使って指定したファイル内に指定した文字列を含む行を表示する
例えば
ターミナルls #ファイル一覧を表示 linux.php cat linux.php #linux.phpの中身を表示 テスト 楽しい テストは楽しい #linux.phpの中身 grep "テスト" linux.php #linux.phpの中に「テスト」という文字列を含む行があるかを調べる テスト テストは楽しい #あるとこんな感じで「テスト」を含む行の文字列が返ってくる実務だとログファイルと呼ばれる数万行あるファイルの中に特定のユーザidが含まれているかを調べる時にも使ったりするらしいです。
パイプライン
パイプとは、コマンドの標準出力を次のコマンドに渡す処理のことをいいます
https://webkaru.net/linux/commands-pipeline/
より引用標準出力とはざっくり言うとコマンドの実行結果の事。
パイプラインを使って複数のコマンドを組み合わせると一つの処理として実行することが出来る。使用例
ターミナルls #ファイル一覧を表示 #実行結果 form.php form2.php greeding.php hello linuxform.php test.php test2.php ls | grep "form" #lsコマンドの実行結果をgrepコマンドに渡す。 #実行結果 form.php form2.php linuxform.php #ls | grep "form"を実行するとファイル名にformという文字列のついたファイルを表示するリダイレクト
出力先を変える物
https://products.sint.co.jp/topsic/blog/standard-input-output より引用標準入力: データの取得元(何も設定を変えなければキーボードからデータを取得する)
標準出力: データの出力先(ターミナルやファイル)例
ターミナルecho "こんにちは" #実行結果 こんにちは #この場合は標準入力はキーボード、標準出力はターミナル cat greeding.php #実行結果 こんばんわ #この場合は標準入力はファイル(greeding.php)、標準出力はターミナル #リダイレクトを使って実行。greeding.phpの中身をgreeding2.phpに出力する cat greeding.php > greeding2.php #greeding2.phpの中身を確認 cat greeding2.php #実行結果 こんばんわ cat greeding.php >> greeding2.php # >>はファイルの最後の行に中身を追加する。 # ファイルに既に中身がある場合、>だと内容を上書きし、>>だと上書きせず最後の行に中身を追加する #grepコマンドと組み合わせる事も出来る #cat.php内の猫という文字列を含む行を探し、その行をconfirm_cat.phpの中に書き込む grep "猫" cat.php > confirm_cat.php #cat.phpの中身 cat cat.php これは猫 あれも猫 こっちは犬 あっちはうさぎ それは猫 #confirm_cat.phpの中身 これは猫 あれも猫 それは猫実務ではgrepコマンドとリダイレクトを組み合わせて、ログファイルの中身を別のファイルに写し変えてじっくり見るために使ったりすることもあるそうです
以上になります!
ここまで読んで頂きありがとうございます!
- 投稿日:2021-03-08T17:26:43+09:00
Linuxコマンドのメモ
ディレクトリ操作 現在のディレクトリの場所を表示 [pwd]
・ディレクトリの中身ではなく、ディレクトリの現在の場所を指す。
pwd画面をクリアする [clear]
・ctrl + Lでも可能。
clearディレクトリの操作 ディレクトリの作成 [mkdir]
mkdir 'ディレクトリ名'ディレクトリの操作 中身をリスト表示 [ls]
ls・lsの後に-lとつけると所有者と権限なども表示される
ls -lディレクトリの操作 ディレクトリ間を移動 [cd]
cd 'パス指定'サブディレクトリを含んだディレクトリの作成 [mkdir -p]
mkdir -p 'ディレクトリ名/サブディレクトリ名'ディレクトリの移動 [mv]
mv 'ディレクトリ名' '移動先のディレクトリ名'ディレクトリの削除 [rmdir, rm]
・rmdirは空のディレクトリしか削除できないため、実務ではあまり使用されない。
rmdir 'ディレクトリ名'・実務では主にrmが使用される。
・オプションの-rはリカーシブでディレクトリの中身全ても含むということ。rm -r 'ディレクトリ名'ディレクトリのコピー [cp]
・オプションの-rは先述したように、リカーシブでディレクトリの中身も全て含むことです。
cp -r 'コピー元のディレクトリ名' 'コピー先のディレクトリの名前'ファイルの操作 作成 [touch]
touch 'ファイル名'ファイル操作 移動・リネーム [mv]
・移動はディレクトリと同様です。
mv 'ファイル名' '移動先のディレクトリ名'・ファイルのリネームも可能
mv '変更したいファイル名' '変更後のファイル名'ファイルの内容を確認する [cat]
cat '確認したいファイル名'ファイルの内容を確認する [less]
・catとの相違点はスクロールが出来る。
less '確認したいファイル名'
- 投稿日:2021-03-08T12:26:23+09:00
[grep -B30] 条件Aで絞って、さらに条件Bで絞ってBの行の前30行を抽出する
grep "#AAAAAA" ./file_XXX | grep -B30 '"XXXX_id"=>"0"'
- 投稿日:2021-03-08T00:35:23+09:00
[はじめてのLinux]Linuxにログインする方法
サーバに接続する方法
sshというコマンドを使う
sshとは
Secure shellの略
自分のパソコンからサーバに安全に接続する為のプロトコル
ssh以外にサーバに接続する方法として
telnet
と言うものを使う方法があるが、telnetだと通信内容が暗号化されないので入力したパスワードをそのまま送ってしまう。
sshは通信内容を暗号化するので、telnetより安全にサーバに接続ができる。
何故ssh接続を使うのかというと通信内容を暗号化しないで接続すると、入力したパスワードが外に漏れる危険性があり万が一漏れた場合にそのパスワードを使って悪意のある人間がサーバに接続しサーバを勝手に編集したりといったことが出来る為接続する為のコマンド
ターミナルssh testuser@ipアドレスssh:
sshコマンド
test:ID(ユーザ名)
ipアドレス:通信の相手先を識別するために割り振られた番号
補足
実務上は公開鍵・秘密鍵という物を使った認証をするのでパスワードは使わない
理由
セキュリティ上の問題。パスワードを使った認証にすると、パスワードの管理の仕方が難しい為
(例えばメモ帳に書いたり、付箋にパスワードを書いてパソコンに貼ったりするといった方法だと他人にパスワードが知られてしまう、サーバに接続する際にパスワードを入力している所を第三者に見られたりするとそのパスワードを使って接続出来てしまう為)