20210115のLinuxに関する記事は6件です。

Linux kernelとはなにか?

Linux kernelとは?

kernelという単語が「中核」という意味であることから。簡単に言うと、Linux kernelとはLinuxの中核となるプログラムのことである。
厳密には「Linux」=「Linux kernel」である。

Linux kernelの役割は何か?

Linux kernelはOSの中核となるプログラムであることから、ハードウェアを動かす指示を出している。

Linuxディストリビューションとは?

Linuxディストリビューションには、Linux kernelとユーザーインターフェイス(ユーザーとカーネルの仲介をするプログラム)などの様々なプログラムが含まれており、OSとしてユーザーがすぐに使えるような状態のものを指す。
Linuxディストリビューションの具体例としては、最近サポート終了が発表されたCent OSやUbuntuが挙げられる。

最近では、これら「Linuxディストリビューション」をLinuxと呼ぶことが増えてきている。

参考記事

カーネル(kernel)
The CentOS Project
Ubuntu Japanese Team
【ざっくりまとめ】Linuxディストリビューションを比較してみる

間違っている点などがあればご指摘いただけると幸いです。

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

文化的なfish環境を得る為の最短ルート

10数行のコピペだけで素早く最低限のfish環境を整えるためのメモです。
具体的には、fish+fisher+Theme+Z+fzfをインストールして使えるようにします。

Ubuntu20.04で確認していますが、Ubuntu18.04も同じと思います。

背景

一時的に普段と違う環境で作業することになった場合など、初めのうちは時間効率など気にしてbashで頑張ろうとするのですが、数日後に結局我慢できずにそこそこ時間をかけてfish環境を整えてしまうので、自分用のメモとして残すことにしました。これで初日からfishでイキりコンソールを使えます。

fishシェルをインストール

公式 のまま

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish

デフォルトシェルをfishへ

sudo usermod -s /usr/bin/fish dev-user

これで一応使い始めることができます。
中間補完も使えます。

Themeとプラグインを入れて整える

# パッケージマネージャ(fisher)をインストール
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher

# テーマ(simnalamburt/shellder)をインストール
fisher install simnalamburt/shellder

# フォルダ移動を便利に(> z [TAB]で履歴へジャンプ)
fisher install jethrokuan/z

# fzfで曖昧検索を超絶便利に
sudo apt install -y fzf
sudo apt install -y bat
sudo apt install -y fd-find
alias fd='fdfind' && funcsave fd
alias bat='batcat' && funcsave bat
fisher install PatrickF1/fzf.fish
# (メジャーなjethrokuan/fzfを使わないのはctrl-rがかなり遅かったから)

インストールは以上で完了です。
(ターミナルが文字化けする場合は、解説/補足:フォントを入れるを参照してください)

解説/補足

以下はインストール後に有益かもしれない補足情報です。

Pathの追加

set -U fish_user_paths <追加するpath> $fish_user_paths

環境変数の追加

bashのように設定ファイルに書かなくても永続化されます。

set -x <環境変数名> <値>

エイリアスの設定と永続化

alias <新しい名前>='<元のコマンド>' && funcsave <新しい名前>

展開エイリアスの追加

コマンドに別名を付ける機能ですが、エイリアスと違いヒストリには元のコマンドで記録されます。複数人で運用するときなどに混乱しなくて良いです。

abbr -a <新しい名前> <元のコマンド>

themeを探す

https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md

本記事でインストールしているのは次のテーマです。
Gitのstatusが一目でわかって便利です。

simnalamburt/shellder

687474703a2f2f692e696d6775722e636f6d2f785a4a486771382e706e67.png

Fontを入れる

本記事のshellderを含む、Fishのテーマの多くが絵文字フォントを利用しています。文字化けする場合は利用しているOSに次のサイトにあるフォントなどをインストールして、ターミナルソフトのフォント設定を変更する必要があります。

https://github.com/powerline/fonts

私はUbuntu Monoを入れています。

Zの使い方

ターミナルで「z+[SPACE]+[TAB]」と打つと、フォルダの移動先候補が現れます。

複数のフォルダを行ったり来たりするのが楽になります。

z+[SPACE]+[TAB]

fzfの使い方

とりあいず、ホームディレクトリで「CTRL + f」を押してみましょう、フォルダやファイルをランチャー形式で選べる画面が表示されると思います。

続いて、普段はファイル名補完などで「TAB」キーを押すタイミングで「CTRL+f」を押してみましょう(例えば「vi [CTRL+f]」など)。補完候補がランチャー形式で表示されます。右ペインにファイルのプレビューが表示さるなど便利です。

SnapCrab_NoName_2021-1-15_18-21-8_No-00.png

また、CTRL+rでコマンド履歴が表示されます。
リストが表示されるだけのfish標準のhistoryコマンドと違い、上下キーや「CTRL+p」「CTRL+n」でカーソル移動して履歴を再実行できるので便利です。

最後に

これまでもドットファイル運用やAnsibleのルールブックなど色々ため込んできましたが、ケース対応が煩雑で結局インストール方法をネットで検索している自分がいます。この記事で卒業できると良いのですが。

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

複数ファイルを1回でrsyncする

--files-fromオプション

複数のファイルを1回のrsyncコマンドで送信する

準備

/path/to/images.txtにファイル名を入力(改行で区切る)

images.txt
file1.png
file2.png
file3.png

実装

※送信元のディレクトリにimages.txtに記入したファイルがあることを確認

$images = '/path/to/images.txt'
$src_path = '/path/to/src/';
$tar_path = '/path/to/tar/';
$rsync_host = 'ユーザ名@送信先IPアドレス';

$command = "rsync -av --files-from=".$images." ".$src_path." ".$rsync_host.":".$tar_path;
exec ( $command, $output, $ret );
if($ret == 0) {
   return true;
} else {
   return false;
}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【インフラ】whileコマンドまとめ

1. 基本的なwhile文

コマンド
while true
> do
> echo "hello world"
> sleep 1
> done
出力結果
// 実施結果
hello world  // 際限なく繰り返す
hello world

ファイル検索 + 中身の文字列検索

コマンド
$ find ./ -type f -name "sample.txt" | while read line;
> do
> $line
> grep sample $line
> done
出力結果
./tmp/sample.txt
sample

ファイル検索 + 文字列検索(検索対象一部除外)

コマンド
$ find ./ -type f \! \( -name "exclusion" -o "test" \) | while read line;
> do
> echo $line
> grep sample $line
> done
出力結果
./tmp/sample.txt
sample

ディレクトリ情報検索

コマンド
$ find / -type d | xargs ls -ld | awk '{print $3,$4,$6,$9}' | sort
出力結果
root root 1月 14日 /tmp/test

Vim頻出操作

1行目先頭:1G or gg
最終行先頭:G

カーソル行先頭:^
カーソル行末尾:$

1語次へ:w
1語前へ:b
単語末尾:e

取り消し:u

1行コピペ:yyp
複数行コピペ:10yyp

1行削除:dd
複数行削除:10dd

置換:%s/before/after/g
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

他のコンピューターにリモート接続したい、そしてnautilusコマンド

コマンド

ssh ログイン先のユーザー名@ログイン先のIPアドレス

例 ユーザーrunのパソコンからユーザーpome,IP:12.23.23.23のパソコンにssh接続する
  ssh pome@12.23.23.23

Xを飛ばして、ssh接続をする。そしてnautilusコマンドでフォルダを表示

例 ssh -Y -C pome@12.23.23.23
-Y:Xの転送指定
-C:通信内容の圧縮(応答性が良くなる)

nautilusコマンドとは?
 「Nautilus」(ノーチラス)は、GNOMEデスクトップ環境を構成するグラフィカルシェルです。端末から「nautilus」コマンドを実行すると、GNOMEの「ファイル」画面を開きます。

目次に戻る

nautilusコマンドの書式
nautilus [オプション] [場所(URI)]

※[ ]は省略可能な引数を示しています。

目次に戻る

nautilusの主なオプション
短いオプション 長いオプション 意味
-w --new-window 指定した場所(URI)を、常に新しいウィンドウで開く
-n --no-default-window 明示的に指定した場所のウィンドウだけを表示する
--no-desktop デスクトップを管理しない(GSettingsの設定を無視する、※1)
--force-desktop デスクトップを管理する(GSettingsの設定を無視する、※2)
-q --quit 実行中のNautilusを強制終了する
-s --select 指定した場所を選択する(ディレクトリを指定した場合は親フォルダを表示する)
※1 GSettingsはGNOMEデスクトップの設定情報。gsettingsコマンドとdconfコマンドで内容を確認、変更できる。
※2 Ubuntu 18.04 LTSでは--forcedesktopオプションを利用できない。

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

AMD GPUを使用してLinux/Ubuntu 20.04でCyberPunk 2077をプレイする方法

cyberpunk-5837064_1280.jpg

はじめに

こんにちは streampack チームのメディです。
https://cloudpack.jp/service/option/streampack.html

Copyrights

Cyberpunk 2077© is a registered trademark of CD PROJEKT Capital Group©
STEAM© is a registered trademark of Valve Corporation©
コピーレフトのイラスト : cyberpunk-city-girl-window-view-5837064

免責事項

この記事はAMD GPUのみに関係します。

目的

Linuxで最近のWindowsゲームを実行する簡単な例を学ぶ.
そのために、Protonを使用します。ProtonはValveによって開発されました。
Protonは、Linuxで実行するMicrosoftWindowsゲームの互換性レイヤーです。
この例では、CyberPunk2077を例として使用します。 Steamで購入しました。

ハードウェアについて

最小要件はここにリストされています。

新しいハードウェア !

新しいGPU(Radeon RX 5500 XT)をインストールした後、起動時に黒い画面が表示されました。 いくつかの調査の結果、マザーボードがファームウェアのアップデートを取得する必要があることがわかりました。

新しいファームウェアでマザーボードをフラッシュすることは危険な手順です。慎重に進めてください。

マザーボードをフラッシュした後、新しいGPUをインストールすると、すべてが正常に機能しました。

XORGまたはWayland

Ubuntuにログインすると、ディスプレイサーバー(画面の右下)を選択できます。
現在、デフォルトのディスプレイサーバーであるXORGを使用しています。
将来、HDRがサポートされるときに、Waylandに切り替える可能性があります。

この調査によると、2つのサーバー間の現在の違いは非常に小さいです。

ステップ 1 : ビデオドライバー

Linuxの最新のAMDGPUには、2つのドライバーがあります。

独自のドライバー:AMDGPU-PRO
オープンソースドライバー:AMDGPU

Protonを使用するには、AMDGPUを使用する必要があります。

現在のビデオドライバーを表示します。

lspci -k | grep -EA3 'VGA|3D|Display'

見るべきライン :

...
Kernel driver in use: amdgpu
...

ステップ 2 : Mesa

Mesaは、OpenGL、Vulkan、およびその他のグラフィックAPI仕様のオープンソースソフトウェア実装です。

CyberPunk 2077©の場合、必要な最小バージョンはv21です。

最新バージョンをインストールするには、次のことを行ってください。

sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade

インストールされているバージョンを確認したい場合は、mesa-utilsを使用する必要があります。

sudo apt-get install mesa-utils
glxinfo | grep "OpenGL version"

ステップ 3 : CPUガバナーとGPU電源管理

Linuxでは、ガバナーがCPUの周波数を決定します。 デフォルトでは、ガバナーはオンデマンドモードを使用しています。 オンデマンドモードはゲームには適していません。

このユーティリティは、GPUの省電力モードも無効にします。

CPUとGPUの設定を簡単に最適化するために、gamemodeユーティリティを使用しています。

Gamemodeの依存関係

sudo apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev
sudo apt install dbus-user-session
sudo apt install build-essential
sudo apt-get install manpages-dev

インストール

git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.6 
./bootstrap.sh

詳しくは公式ホームページをご覧ください。

ステップ 4 : Steam

Steamをインストール

sudo add-apt-repository multiverse
sudo apt update
sudo apt install steam
steam

わかりやすくするために、Big Picture ModeSteamを使用しています。

Steam PlayとProtonExperimentalを有効にする

Screenshot from 2021-01-14 18-20-03.png

カスタムランチャーオプション

Screenshot from 2021-01-14 18-20-43.png

ゲームモードを有効にするために、私は次のオプションを使用します。

gamemoderun %command%

ランチャーページをスキップしたい場合は、以下を使用できます。

gamemoderun %command% --launcher-skip

XboxOne有線コントローラーを使用しています。設定は次のとおりです。
Screenshot from 2021-01-14 18-20-57.png

サンプル

次の構成では、ゲームは1080pで60 fpsで実行され、グラフィカルオプションはLOWとMediumの間に設定されます。

CPU : AMD RYZEN 5 2400g (2018)
GPU : AMD Radeon 5500 XT 4GB (2019)
RAM : 16 GB

スクリーンショットを添付しました。

mpv-shot0001.jpg
mpv-shot0002.jpg
mpv-shot0003.jpg

他のゲーム

サポートされているゲームの完全なリストについては、Protonデータベースを参照してください。

情報元

https://github.com/FeralInteractive/gamemode
https://www.protondb.com/app/1091500

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