Subsections of Linux
Remote Desktop
WindowsからLinux (Ubuntu22.04) へのリモート接続の方法
サーバ側(Ubuntu)の設定
- 「設定」の「共有」を開く
- 「リモートデスクトップ」をクリック
- 「リモートデスクトップ」と「リモートコントロール」をONにする
- Ubuntu 20.04 LTSまではxrdpサーバをインストールする必要があったが,Ubuntu22.04 LTSからはすでにインストールされてるので不要になったみたい
クライアント側(Windows)の設定
- リモートデスクトップ接続を開く
- 「コンピュータ名」にIPアドレス,「ユーザー名」にアクセスするユーザー名を記入し,接続をクリック
Problems
xrdpがのactive化でwarningが出る
$ sudo systemctl status xrdp
と打つと,[WARNING] Cannot read private key file /etc/xrdp/key-pem: Permission denied
と表示される- xrdpユーザをssl-certグループに追加
$ sudo gpasswd -a xrdp ssl-cert
- xrdpのリスタート
$ sudo systemctl restart xrdp
画面が真っ暗のまま動かない
- デスクトップとリモートで同時ログインはできないみたい → デスクトップをログアウトすれば良い!
- リモート接続を終了する場合はUbuntuでlog outすれば自動で接続が切れる
Windowsからアクセスするとキーボードの種類によらずJIS配列になる
- xrdpの設定を変更
$ cd /etc/xrpd/ $ sudo mv km-00000411.ini ~/km-00000411.ini-org $ sudo cp km-00000409.ini km-00000411.ini $ sudo systemctl restart xrdp
- こちらを参照
参考
Launcher for Linux
1. Ulauncher
Linux系のlauncherの一つ。 設定済みのキーボード・ショートカットとかtabキーとかが使用できるため,こちらをインストール。
install
- こちらからUbuntu用のインストーラーをダウンロード
- 次のコマンドでインストール
sudo apt install ./ulauncher_x.y.z_all.deb
settings
- アプリを起動
- 歯車マークをクリックし,設定画面を開く
- Hotkeyを
Alt+Space
に変更 - Color Themeを変更
- 設定ファイルは
~/.config/ulauncher/settings.json
に存在 - 以下のExtensionsを追加
- X11 Windows Swicher (
$ ws
) - Browser Bookmarks (
$ bb
)
- X11 Windows Swicher (
2. Albert
Linux系で使用されているluncherの一つ。 Linuxで設定しているキーボード・ショートカットが使用できなかったためアンインストール済み。
install
ホームページからインストール方法を確認できる。 今回はxUbuntuの22.04バージョンでインストール。
echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:manuelschneid3r.list
curl -fsSL https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_manuelschneid3r.gpg > /dev/null
sudo apt update
sudo apt install albert
uninstall
sudo apt-get remove albert
- アンストールだけする場合は
sudo apt-get remove albert
- albertのパッケージと他の依存パッケージをアンインストールする場合は
sudo apt-get autoremove albert
- configファイルとalbertのデータファイルを削除したい場合は
sudo apt-get purge albert
Proxy settings
Ubuntu 22.04 LTS
/etc/environment
export no_proxy=localhost,127.0.0.1,localhost,*<domain>
export ftp_proxy=http://<proxy server>:<port>/
export http_proxy=http://<proxy server>:<port>/
export https_proxy=http://<proxy server>:<port>/
export all_proxy=socks://<proxy server>:<port>/
export FTP_PROXY=http://<proxy server>:<port>/
export HTTP_PROXY=http://<proxy server>:<port>/
export HTTPS_PROXY=http://<proxy server>:<port>/
export ALL_PROXY=socks://<proxy server>:<port>/
apt
/etc/apt/apt.conf
に以下を追記
Acquire::http::Proxy "http://proxy.cc.yamaguchi-u.ac.jp:8080/";
Discord
whereis discord
でパスを確認- 上記で確認したディレクトリ下にある
discord.desktop
のExec=/usr/share/discord/Discord
部分を以下のように書き換えExec=env http_proxy=http://<proxy-server>:<port> https_proxy=http://<proxy-server>:<port> /usr/share/discord/Discord --proxy-server="http://<proxy-server>:<port>"
- reboot
Windows for Linux
/etc/environment
http_proxy=http://<proxy>:<port>
https_proxy=https://<proxy>:<port>
/etc/bash.bashrc
export http_proxy=http://<proxy>:<port>
export https_proxy=https://<proxy>:<port>
/etc/apt/apt.conf
Acquire::http::Proxy "http://<proxy>:<port>";
Acquire::https::Proxy "http://<proxy>:<port>";
/etc/wgetrc
http_proxy = http://<proxy>:<port>
https_proxy = http://<proxy>:<port>
ftp_proxy = http://<proxy>:<port>
anaconda3/envs/
proxy_servers:
http: http://<proxy server>:<port>
https: https://<proxy server>:<port>
次のコマンドで設定内容を確認
$ conda config --show
Spec confirmation (Ubuntu)
プロセッサー,グラフィック,OSは「設定」で確認可能
OSのバージョン
$ cat /etc/issue
CPUコア数
$ cat /proc/cpuinfo
processor
: プロセッサのIDmodel name
: cpuの種類cpu cores
: コアの数
メモリ
$ sudo dmidecode --type memory
demidecode
コマンドではハードウェアの物理RAMサイズと情報を確認でき,
コンピュータのDMIテーブル(SMBIOS)情報を表示してくれる.
メモリ以外にも以下の項目を確認可能 0. bios
- system
- baseboard
- chassis
- processor
- memory (memory controller)
- memory (memory module)
- cache
- connector (port connector)
- slots (system slots)
- (on board devices)
cpuやmemoryの使用率等の確認
$ top
or
$ htop
or
$ ps aus | less
or
$ free
-h
: 単位などを見やすく表示-m
: MB単位で表示(デフォルトはkB)-g
: GB単位で表示
ディスク確認方法
SSD or HDD
$ cat /sys/block/sda/queue/rotational
- 0: SSD
- 1: HDD
型番の確認
$ sudo lshw -c disc
ディスク使用率
$ df -h
その他
sudo fdisk -l
sudo blkid
df -Th
sudo du -sm ./* | sort -rn | head -5
GPU確認方法
GPUの種類
$ lspci | grep -u nvidia
nvidia driverのバージョン
$ cat /proc/driver/nvidia/version
GPUの使用状況
$ nvidia-smi -l
Shortcut
エディタのショートカットキー
移動系
ショートカットキー | 概要 |
---|---|
Ctrl+Home | ファイルの先頭に移動 |
Ctrl+End | ファイルの末尾に移動 |
Home | 行頭に移動 |
End | 行末に移動 |
Ctrl+← | 単語の先頭に移動 |
Ctrl+→ | 単語の末尾に移動 |
分割
ショートカットキー | 概要 |
---|---|
ショートカットキー | 概要 |
Ctrl+\ ※\は右上の|のキーボード | 編集画面を分割表示 |
Ctrl+1or2or 3 … | 分割した画面間を移動 |
ファイルやディレクトリの開き方
ショートカットキー | 概要 |
---|---|
Ctrl+N | 新規ファイル |
Ctrl+Shift+N | 新規ウィンドウ |
Ctrl+o | ファイルを開く |
文字列検索
ショートカットキー | 概要 |
---|---|
Ctrl+F | エディタ内検索 |
Ctrl+H | エディタ内置換 |
F3 | 次の検索結果にジャンプ |
Shift+F3 | 前の検索結果にジャンプ |
Shell script
シェルスクリプト
$mv arg.sh ~/bin/arg.sh
※このあとパス設定が必要だけど、すでにbinにパスが設定されてた… パスの確認方法は
$printenv PATH
シェルスクリプトの作成手順
-
~/bin にbzdirファイルを作成
-
ファイルに書き込めたら次のコマンドを実行
$chmod +x bzdir.sh
- ファイル内容は ~/bin/bzdir を参照
-
~/.bashrcに下記の記述を書き込む
"alias bzdir='bzdir.sh'
-
$source ~/.bashrcを実行
Command
コンソールの起動
- Ctel+F[2~3]
以下のコマンドを実行することでコンソール画面からXwindowを起動することもできる
$ startx
- ログインするアカウント名を入力
- passwordを入力
X windowへの復帰
- Ctrl-Alt-F7
コマンド停止方法
- Ctrl + C
- コマンド kill
ps r
を入力- PID(プロセスID)を確認
kill [PID]
を入力
- コマンド kill②
ps auxw | grep yes
(axでもOK)で実行しているコマンドyesのPID(2列目)を検索- kill [PID] を入力
- コマンド kill③
- topでPIDを確認
- topコマンド実行中に
k
をタイプ - killしたいPIDを入力&Enter
Send PID <PID> signal
でEnter
killall yes
と入力 →※同じコマンド名のものはすべてkillされる
topコマンド
コンソール上で入出力を受け付けない際の対処法
- Ctrl-sで入出力を受け付けなくなる
- Ctrl-q で復帰
aptコマンド(Ubuntu Linux等)
コマンド | 概要 |
---|---|
インストールされているパッケージの一覧を表示する | $apt list –installed |
インストールされているパッケージを最新状態にする | $apt-get update |
パッケージをインストールする | $apt-get install package [package …] |
ユーザーの追加方法
$ useradd <option> <user name>
オプション
- m: ホームディレクトリを追加
パーミッション
- 権限の変更
$ chmod u+w
- ユーザー所有権の変更
$ chown <user name>:<group name> <file name>
<user name>:<group name>
はユーザー所有権とグループ所有権- グループ所有権は省略可
パスワードの変更
$ passwd <user name>
バックグラウンド処理
$ <command> &
&
をつけ忘れた場合
- コマンド実行中にCtrl-zでコマンドを中断
-
- bgとタイプ → バックグラウンド処理に移行
- fgとタイプ → コンソール上で処理を再開
エイリアス
エイリアスの作成
alias em=`emacs`
※ここではemという名前でemacsのエイリアスを作成
エイリアスを無効にしてコマンドを実行
\<コマンド>
エイリアスの確認
alias <エイリアス名>
エイリアスの削除
- unalias em
- .bashrc のエイリアス設定も消去
シンボリックリンク
ホームディレクトリにディレクトリ ~/c と ~/tmp を作成し、tmpから c へのシンボリックリンクを作成するには下記のようにする。
$cd
$mkdir c tmp
$cd tmp
$ln -s ../c
シンボリックリンクの削除
$unlink c
または rm c
※ただし rm c
で削除する場合は rm c/
としてしまうと元のディレクトリの中身まで削除してしまうので注意!!
リダイレクト
>
をリダイレクトよぶ。リダイレクトの左で実行したコマンドの標準出力が、リダイレクトの右に書い
たファイルに出力される。
(例)ls -IR の出力をファイルls-IRに書き込む
$ls -IR > ls-IR
パイプ
|
をパイプとよぶ。パイプの左側で実行したコマンドの標準出力が、パイプの右側のコマンドの標準入
力になる。
(例)
-
ファイルから文字列
PI
を含む行をすべて抜き出す$less math.h | grep IR
【補足】math.hのファイルのパス(所在)を調べるには
locate
コマンドをインストールして使う$ sudo -E apt-get update $ sudo -E apt install mlocate $ locate math.h
-
ファイルの先頭から50行のみを出力する。
head -50 <ファイル名> | less
-
ファイルの末尾50行のみを出力する。
tail -50 <ファイル名> | less
-
CSVファイルの2列目のみを抜き出して表示する。
$cut -f 2 -d "," retu.csv
-f が表示する項数、-dが区切りの文字、-fと-dは基本一緒に使う
-
2つのファイルの各行をくっつけて別のファイルに出力する。
$paste -d " " data[1-2].txt > data3.txt
または
$paste -d " " data1.txt data2.txt > data3.txt
文字列の置換
ストリームエディタ sed を使うと、文字列の置 換を簡単にできる。あるファイル中の文字列 1 を 文字列 2 に置換した内容を出力したいときには以 下を実行する。
$ sed −e ”s/文字列1/文字列2/g” <ファイル名>
※gはすべての文字列を置換するためのオプション。これがない場合は各行で一番はじめにあった文字列1のみが置換される。
(例)
-
ファイルの空白をすべて削除
$sed -i -e "s/ //g" ファイル名
- -i はファイルの中身そのものの変更
- gはすべてのマッチした文字列を置換(gの指定がなく1行に2つ以上文字がある場合は1つ目しか置換されない
-
ファイルの連続した5つのスペースをタブに変換してその結果をファイルに保存
$sed -i -e "s/[(space)(tab)][(space)(tab)]*/[(tab)]/g" ファイル名
※(space)および(tab)はそれぞれスペースキー、タブキーをクリック
-
ファイルの各行のはじめ(行頭)にある空白およびタブをすべて削除する方法
$ sed -i -e "s/^[ \t]*//" test
※
^
は行頭を表す
使用されているポートの確認
- service名から確認したい場合は
sudo lsof -i -P | grep <service>
- 特定のポート番号の確認は
sudo lsof -i:<port>
- ssコマンドでの確認
ss -atnu
その他の様々なコマンド
コマンド | 概要 |
---|---|
locate <ファイル名> | そのファイルがシステム上のどこにあるか、一覧を表示するコマンド |
which <コマンド> | 実行されるコマンドがどこのパスにあるか表示 |
diff | ファイル1と2の違いを表示 |
cd - | もとのディレクトリに移動 |
df | ディスク使用率を表示 |
wc <ファイル名> | ファイルに含まれる文字数や行数を表示 |
nkf -g <ファイル名> | 日本語のテキストファイルの文字コードを判断 |
nkf -w <ファイル名> | テキストファイルの文字コードをUTF-8に変換 |