linux & mac

基本的なコマンド/ ファイル操作/ job関連/ ハード関連/ screen/ crontab/ imagemagick/ git/ 環境設定/ ssh/ net/ 初期設定/

基本的なコマンド

一つ前のフォルダに戻る

cd -

ls のオプション

-t(時系列), -l(詳細も記述) -r(順番を反対に) -a(隠しファイルを含む)-
ワイルドカード: *,?,[文字列], [a-z], [A-Z], [A-Za-z],[0-9]
ブレース展開 or: {hoge, hogeho,hogehoge}

リンクを設定

ln -s file linkname (-sがない場合、ハードリンクの作成になる)

apt

sudo apt update
sudo apt upgrade
sudo apt install hoge

今どこ半島

pwd

内部のディレクトリの容量確認(-c 合計,-h 単位, -s ディレクトリの中を表示しない)

du -csh

ディスクの空き容量

df -h

メモリの使用状況確認(ギガバイト)

free -g

実行中のプロセスの確認

top -n #(n回実行)

テキストファイルを見る

less filename
space 次ページ: b 一つ前のページへ移動: / + 文字列 検索

terminalで新しいタブ, macでは使えない

gnome-terminal --tab
-eでオプションをしていできるので、sshに接続した新しいタブを開くとかができる。

優先順位nice値を指定して実行する。-20から20で小さい方が優先度が高い。マイナスはrootしか使えない.デフォルトは+10

nice -n #(-20--20) コマンド

キャッシュの解放

$sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"
なお、2を指定した場合にはSlabキャッシュの解放、3を指定した場合にはページキャッシュとSlabキャッシュの解放を行います。

find オプション

find ファイル名
find 検索先 -name ファイル名
find 検索先 -atime 日数(0 今日 -3 ここ三日 +3 三日以上前) アクセスされた日数で検索 
find 検索先 -mtime 日数 更新された日数で検索
-amin, -mminも使える。
find ファイル名 -type f ファイルのみ検索 (d ディレクトリのみ)
find 検索先 条件 -and (-or) 条件2
find 検索元 検索ファイル名 -exec 実行するコマンド \; 結果に対してコマンドを実行する

標準入出力 忘れがちなもの

>:標準出力をファイルに出力
> >:標準出力をファイルに追記
< :標準入力をファイルにする
2>:標準エラー出力ファイルに出力
2 > >:標準エラー出力ファイルに追記
>&:標準出力とエラー出力をファイルに出力

コマンドを連続で実行

hoge ; HOGE hogeが終了してから、実行結果に関わらずHOGEを実行する
hoge & HOGE hogeをバックグラウンドで実行しつつ、HOGEを実行する
hoge && HOGE hogeが正常終了してから、HOGEを実行する
hoge | HOGE hogeの出力結果を渡して、HOGEを実行する
hoge || HOGE hogeが異常終了したら、HOGEを実行する

クリップボードにコピー

cat hoge.txt | xsel --clipboard --input
cat hoge.txt | pbcopy (macの場合)
どっちも面倒なので次の様にしておけばいいい
alias pbcopy='xsel --clipboard --input'

dmidecode

sudo dmidecode -t X
X=bios, system,baseboard, chassis, processor, memory, cache, connector, slot
-qで表示が減る。


file操作関連

指定文字列がある行を表示

grep (-i 大文字小文字区別しない、-n 行数も表示、-v 一致しないところ, -r ディレクトリ内も検索対象) 文字列 (-rlで再起的に検索) ファイル

よく忘れる文字

*はオールマイティ,もしhibiki, tsubasa,kurisuという文字列を含むもののみ探したければ、*{hibiki, tsubasa,kurisu}*で検索すればいい

arXivから落としたソースや.tgzを展開

tar -xvzf file.tgz
-cはファイル作成,-vは状況表示,-fは圧縮ファイル名指定,-xは解凍,-zはgz,-iはbz2,-Jはxz

.zipを展開

zip -r xxx.zip directory / unzip xxx.zip

rsyncでバックアップ

rsync -avz -e ssh original server:file
-avzはディレクトリから再帰的コピー,情報を表示,通信を圧縮.-e sshはsshを使いますよということ

文字列を名前に含むファイルとディレクトリを探す(定期的にupdatedbでデータベースを更新する必要あり)

locate 文字列

ファイルの中身を確認

頭からX行
head -X ファイル名
お尻からX行
tail -X ファイル名

xargs

xargsで前の出力を受け取る。例えばすべてのファイルを.pyから .txtにしたければ
find "*.py" | sed -e 's/\.py$/.txt/' | xargs -I{} mv {}x {}
とすれば良さそう。ここでsedは置換。

権限(読み込み4,書き込み・変更2,実行1,順番は所有者グループその他の順)

chmod 644 ファイル
-Rでディレクトリ内全部。macのファイルは755になってる。状況はls -lsで確認ができる

所有権

chown username ファイル
でファイルの所有者を変更できる。グループ所有権も変更したいときにはユーザー:グループでいい。-Rでディレクトリ内全部。macのファイルは755になってる。状況はls -lsで確認ができる

文字の置換

tr A B A,Bを置換する。標準入出力で読み込む必要があるので以下の様にして使う。
tr "," ":" <input.txt > output.txt でinput の,を:に書き換えてoutputに書き込む。
tr "ABCD" "1234" とするとAが1みたいに変換される。置換後が足りない時には最後の文字に変換される。
tr -d "hoge" とすると、h o g eが削除される。

sort

sort -n file テキストを番号順に並べ替える。fileを複数指定するとまとめて並び替える。
sort -nr file で番号の降順

uniq

uniq file.txtで各行の重複を取り除いて表示


job関連

ジョブ

カレントと、バックグラウンドのジョブの確認。-lでPIDの確認
jobs
ジョブをバックグラウンドで実行、引数がないとctrl+Zで中止していたジョブ
bg % job番号
ジョブをフォアグラウンドで実行
fg % job番号
ジョブを停止
kill % job番号

実行中のプロセスの確認(a端末操作 x端末操作以外 uユーザー)

ps axu
(-u usernameでユーザーを指定して検索, -pでPID指定して検索。grep と合わせてポート調べがち

ポートNoが分かっている場合のプロセスの確認

lsof -i:[portNo]

kill

kill PID
これで殺せないときはkill -9 PIDとすればよい


ハード関連

link stationなどのマウント(cifs,-oでユーザーや権限,vers=2.0はなんかバージョンらしい。研究室のやつは1.0でないといけない。)

sudo mount -t cifs -o username=namaedesu, password=passworddesu,vers=2.0,dir_mode=0777,file_mode=0777(ここはカンマなし) //IPaddress/folder /mnt/folder
macの場合にはfinderメニューの[移動]からサーバーへ接続を選ぶ,もしくは
mount -t smbfs //user:password@IP address/folder /mnt/folder
sudoでやってルートでマウントするとユーザーから見れない
この時にはsudo chown user fileで所有権を変更すると見られるようになる、ファイル作成、書き込みにsudo が必要なくなるのでやっておくべき。

findmnt
でマウントしているものをツリー状に表示してくれる。

新しくHDDを取り付ける手順

1.差し込む
2.デバイスを確認する。差した直後だとdmesgで[sd?]Big Stroge 10TBみたいにメッセージが出る。もしくは、/dev/sd*をlsすればわかる。lsblkも使えそう
3.HDDにファイルシステムを作成する。sudo mkfs -t ext4 /dev/sd?でできる。ファイルシステムはext4にしておけば問題ない。lsblk -fで確認
4.mountする。mount /dev/sd? hogeでhogeにマウントすればいい。一応,df -Thでマウントできてるか、ext4で初期化できてるか確認しておく。
5.mountした後、owner がrootになっていて接続できない時があった。chown usrname fileで所有権を変更しておく。

起動時に自動でマウントする(ubuntu)

マウントしたい端末のパス
sudo fdisk -l
UUIDの確認
sudo blkid /dev/sdaとか
/etc/fstabにマウント設定を記載する
UUID=hogehoege /mnt/sd ext4 defaults 0 0 (デバイス名 tab マウントポイント t ファイスシステム t オプション 0 t 0)

NASについても同様に設定することができる。sudo apt install cifsでcifsオプションを使える様にした上で
//IP address/folder /mnt/linkstation cifs username=hoge,password=hoge,vers=1.0,file_mode=0777,dir_mode=0777
と書いておけば勝手にやってくれる。

ディストリビューション, CPU, メモリの情報はそれぞれ/etc/issue, /proc/cpuinfo, /proc/meminfoに入ってるのでcatすればわかる。

温度を知る, cpuは一声40-80度くらいならセーフらしい。

sudo apt install lm-sensorsの後
sensors
視覚的に知るにはpsensorsを使うといい。GPUもわかる

cpu クロック周波数

仕様値 cat /proc/cpuinfo|grep "cpu MHz"
実測値 sar -m CPU # (#secごとに実測値を出力)

オーバークロック設定

以下のサイトを参考にする。 初心者向けのCPUオーバークロックとメモリのXMP設定方法
「MSI MEG Z490 UNIFY」をレビュー。

bluetooth

bluetoothマウスしかない時に、間違ってbluetoothをオフにしてしまってマウスが使えなくなる、という頭の悪いことをやらかした場合。
bluetoothctlを使って手動で接続する。
次の3つを参照
sono1: sono 2nd (sono 3rd):
基本的にはbluetoothctlを起動して、power on, scan onでMACアドレスを取得して(既に接続したことのあるデバイスのMACアドレスはdeviceコマンドで確認できるので、scan しなくてもいい。scanすると大量に関係ないbluetoothが表示されて邪魔。)、pair [MAC], trust [MAC], connect [MAC]で接続する。
ただし、scan on がうまく行かなかった。これはhci0がdownしていたからであった。 これをsudo hciconfig -aで確認して、sudo hciconfig hci0 upでUPすると繋がる。
しかし、このUPがSIOCSIFFLAGS: Operation not possible due to RF-killで失敗した。これは、rfkill unblock bluetooth、でblockを解除すれば、hci0 をupにできた。


screen

セッションの取り扱い

screen -S name nameという名前のついたセッション作成
screen -ls セッション状態の確認
screen -r PID or name アタッチする
以下のctrl + a については先頭に移動するコマンドとかぶるので~/.screenrcにescape ^Jjと設定しておけばctrl+jで同様の動作ができてこっちの方が多分使い勝手がいい

セッション中でのコマンド

ctrl + a & d デタッチ
ctrl + a & :kill で開いているscreenを強制終了
以上はスクリーンの開き方、以下は開いたスクリーン上で複数のタブを開く際の扱い方
ctrl + a & c 新しいウインドウ(スクリーンではない)を作る
ctrl + a & :kill 今いるウインドウを強制終了
ctrl + a & A でウインドウに名前をつける
ctrl + a & w 開いているウインドウの確認、下に表示される
ctrl + a & n(p) で次(前)のウインドウに切り替える
ctrl + a & # で#番目のウインドウに移動
ctrl + a & :number # で今いるウインドウを#番目に移動させる
ctrl + a & S (|)で水平(垂直)方向に画面を分割
ctrl + a & tabで分割された画面の移動
ctrl + a & Xで分割された画面の消去
ctrl + a & Qで画面分割を終了する
ctrl + a & :resize # で# cellに今の画面をリサイズする

screen1 の中でscreen2開いてしまった場合。
ctrl+a & d では外側のscreen1から抜け出す
ctrl+a & a & d で内側のscreen2から抜け出せる

$ ssh remotehost $ echo $DISPLAY localhost:10.0 $ export DISPLAY=:10.0 $ screen

screenにタッチしていたsshが死んで入れなくなった場合
s aux|grep pts|grep sshdで死んだsshのプロセス番号を確認する。
タイムスタンプやptsの番号から残っているセッションを探す。
killする。


crontab

ある決まった時間に決まったコマンドを実行させる

cronを設定する,表示する, 削除する,ユーザー指定する

crontab -e -l -r -u

書き方、毎月10日の2230に、シェルスクリプト/home/user/work.shを実行

30 22 10 * * ./home/user/work.sh
min hour day month year command の順番

sudo が頭に必要な場合

sudo suでrootとしてログインしてcrontab -eでrootのcrontabからコマンドを設定すればいい。
もしくは/etc/crontab,/etc/cron.d/ファイル名にあるcrontabファイルは実行ユーザを指定できるらしいので
日付 root コマンド
と追記しておけばrootから実行できる。


imagemagickとか

gif再生 (macだと何故か動かない...)

animate hoge.gif

フォーマット変更

convert hoge.jpg hoge.png
例えばPDFの編集したものの書き出しは次のようにできる
convert -density #(100とか) hoge.pdf hoge2.pdf

サイズ変更

convert -geometry 100x75 hoge.jpg hoge.jpg

回転

convert -rotate 30(30度) (-flip 上下反転) (-flop 左右反転)

連番の名前をつけた画像ファイルからgifを作成できる(-delayは画像の切り替わる単位10ms, -loopはループする回数で0は無限,frame_*.pngは*に数字が入る、-layer optimizeで適当に圧縮してくれる)

convert -layers optimize -loop 0 -delay 40 e*.png anim.gif
何も考えずに作っているとメモリが足りなくなりうるので、そういう場合は/etc/ImageMagick-6/policy.xmlの設定ファイルについて<policy domain="resource" name="memory" value="256MiB"/ > と書いてある部分をいじってメモリの値を1GiBとかにすればいい。

gif->mp4

ffmpeg -i [GIF ファイル] -pix_fmt yuv420p [出力ファイル名].mp4
さらに速度を上げるには, 例えば2倍にするには ffmpeg -i [出力].mp4 -vf setpts=PTS/2.0 -af atempo=2.0 [出力2].mp4


git

参考動画

初期設定

自己紹介
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Omit --global to set the identity only in this repository.

運用

git init ディレクトリの初期化, .gitが作成される。
git add (name) (name)ファイルの変更履歴をローカルリポジトリに保存したいファイルをインデックスに追加.全ファイルに適用する場合には-A
-pを使うと部分的にaddすることができる。
git commit -m "(message)" (message)をつけてaddした内容をローカルリポジトリに保存する。以前のcommitからの差分が保存される。-Aについては同様
git status 状況の確認、ブランチとcommit状況が確認できる。
git log --graph(グラフ) --all(全てのブランチ) -oneline(一行で) コミット履歴を見る。
git diff (commit A) (commit B) A,Bの差分を見る。
git diff (--cached)インデックスとワークツリー(リポジトリとインデックス)の差分を見る
git checkout (hoge) HEADをhogeブランチやコミットに移動して、ワークツリーとインデックスをHEADの内容に更新する。
git branch (hoge) ブランチ(hoge) を作成
git checkout -b (hoge) ブランチ(hoge) を作成してそちらへ移動
git merge (branch name) 今いるブランチのデータに(branch name)での変更をマージする。
git rebase main 今いるブランチを最新のmainからブランチしたものに変更する(mainでの変更履歴を取り込む)
git cherry-pick (commit ID) 今いるブランチに、ある特定のコミットの変更をコピーする
git reset --soft HEADを指定したコミットにリセット, --mixed indexをリセット, --hard インデックスとワークツリーをリセット
git stash コミットしたくないけどなくなると困る変更を保存する。

github


環境設定

pathを通す

home/userにbin/を作成して内部にコマンドを表すテキストファイルを作成すれば~/.bashrcを編集しなくてもコマンドを追加できる。(もちろん実行できるようにするために権限は設定しないといけない。)
通っているPATHはecho $PATHで確認できる
ただし、このときにpathを通しておく必要がある。bashrcに以下を追記?
export PATH=$PATH:/~bin

コマンド格納path

which [command]

通ってるパスの確認 (echoで表示させる)

echo $PATH

環境設定を適用

source ~/.bashrc

bash ##Mac ではCatalinaからはbashではなくzshになっている。

.bash_profile->.zshenv
.bashrc->.zshrc

aliasの例

alias ls='ls --color=auto'

引数が2つ以上ある時のaliasの代わり

function shortcut(){command hogehoge $1 $2}


ssh

sshのリモートからコピー

scp -r server:original file

sshの接続先でコマンド実行

ssh server -t "command"
e.g."cd hoge; bash --login"でhogeディレクトリにログイン,"emacs hoge"でemacs 起動

公開鍵認証

ssh-keygen -t rsa -b 2048で公開鍵作成rsaで2048 bitの鍵
id_rsaが秘密鍵、id_rsa.pubが公開鍵。公開鍵を接続先の~/.ssh/authorized_keysへ登録する
このとき、ssh先の~/.sshが700、~/.ssh/authorized_keysが600であることを確認しておく。
登録は例えば、cat ~/.ssh/id_rsa.pub | ssh hoge_user@hogehoge.hoge.com 'cat >> .ssh/authorized_keys'
公開鍵認証以外を無効にするには、/etc/ssh/sshd_config/
PasswordAuthentication no
に設定する。他にも、PubkeyAuthentication yesにしておくべき、RSAAuthentication yes, RhostsAuthentication noはどうなんだろうな。

ssh ポートフォワード:攻めのポート30000を受けのポート22222に対応させる。

受けの設定

まずは/etc/ssh/sshd_configのフォルダが作られているか確認しないといけない。
なければsudo apt install sshをすればsshがインストールされる。普段使ってるsshとの違いはよくわからない。
/etc/ssh/sshd_config に開放するポートとポートフォワードの許可を追加
Port 22222
AllowTcpForwarding yes
#は初期設定なのでそれは消さずに追記すればよい。
sudo /etc/init.d/ssh restart
でsshをリスタート。

ここでfirewallを設定していると、Portが設定されていてもfirewallでブロックされる可能性がある。
firewall-cmd --add-port=[port#]/tcp --zone=[zone] --permanent

攻めの手続き

まずは京大のsshサーバーを経由して受けで開いてたポートにログインする
ssh -fN -L 30000:[受けのIPアドレス]:22222 [ECS-ID]@forward.kuins.kyoto-u.ac.jp
(-fNはバックグラウンド起動、-Lは攻めでポートを開いて受けのポートに流し込む。これは京大のポートフォワードサーバの場合)
ssh -p 30000 [受けのユーザー]@localhost これで攻めから受けにログインできる。次のHPも参考(けつあご,京大)。
使い終わったらポートを閉じておく。
なんかlinuxでロックしているだけだとログインできるけど、そうでないとできなくなりうるらしい。そういう時はautosshを用いればいいらしい。

ssh-agent

ssh-add (-k) 鍵の場所でmacに鍵を覚えさせることができる(メモリ上)。これによっていちいちパスワードを入力しなくても複数回のrsync等が可能になる。-kをつけると終了しても情報が残る
ssh -A でssh接続するとこの情報を持ってサーバーへ入れる
-l 登録している鍵の確認
-d (-D) 登録している鍵の(全)消去, 場所で消去する奴を指定する。
ssh-keygen -yf ~/.ssh/秘密鍵ファイル名で公開鍵を出力、パスフレーズが設定されているかどうか確認できる。
ssh-keygen -f 秘密鍵ファイル名 -p でパスワード変更

X11

/etc/ssh/sshd_config のX11Forwardingをyesにする。
でssh -XY hoge で接続できる。
macでつなぐ場合にはデフォルトだとなぜか20分でX11がタイムアウトになるので以下をconfigに追記
ForwardX11Timeout 24h(続ける長さ)

.ssh/configの設定(ssh)

((ssh -i ~/.ssh/id_filename -p portnumber username@address は次の様に設定しておけば良い))
Host hostname (ssh hostname でこのsshに接続する)
Hostname addressなど@以下
User username
Port portnumber(指定向こう側で開けているポート番号を指定する。デフォでは22)
IdentityFile ~/.ssh/id_filename(鍵が入ってるファイル)
(ForwardX11 yes (-X) X11 fowardingをデフォルトで設定する場合)
(Compression yes (-C) 圧縮して転送する場合)

ssh portforwardの設定 (KUINSの場合)
((ssh kyodaiPCと入力してkuinsのforwardを経由してkyodaiIPにあるPCで開いている22222のポートにusernameでログインする))
Host kyodaiPC
HostName kyodaiIP
User username
Port 22222
ProxyCommand ssh -CW %h:%p kuins_PF

Host kuins_PF
HostName forward.kuins.kyoto-u.ac.jp
User ECS-ID
LocalForward 30000 kyodaiIP:22222

その他

ssh server -t "command"
で接続先でコマンドを実行できる。-tは仮想端末を割り当てるというオプション。
-XでX11の転送を許可する、-Yで信頼されたX11の転送を許可する
KUINS-IIは外から入れるのでいじると危険らしい。注意するべき。

sftp [オプション] ホスト名 [コマンド]
sshを使って対話的にファイルの転送が行える。
-o でsshのオプションを使える。
cdでリモートでの移動、lcdでローカルでの移動といった様にlを頭につけてローカルの操作をする。
getでリモートからローカルへファイル移動、putでローカルからリモートへファイルの転送
これではtab補完ができない。 brew install lftpでlftpをインストールするとこちらではtab補完がつかえる。
lftp sftp://user@IPでつなぐ。lが!になっているので注意するべし。また、get, put はmget, mputを使う方が*とか使えて便利

sudo lastb
sshのログイン失敗履歴が残っているので(/var/log/btmp),それを確認する。

ipadからのssh接続.
termiusというアプリをしようした。公開鍵認証の設定は このサイトを参考にした。 鍵の種類はRSAの公開鍵認証を使った。


ネットワーク

ping

-Rで経路を記録
-4(6)でIPv4(6)で通信する

IPまでに通過する経路を確認する

traceroute IPアドレス(ホスト名)

IPアドレスかわホスト名(NetBIOS)を知りたい時

smbutil -v status -ae "IPアドレス"

IPアドレスとMACアドレスの対応

arp -a

IPアドレスの固定

sudo emacs /etc/netplan/99_config.yamlで以下を追記
今のところこれで問題なく動いているが今後何か問題が出るかも
*DNSサーバーは以下のコマンドでは確認できないかもしれない。LAN内にmacがあればネットワーク設定から確認できる。 DNSサーバーを設定できていないと、外からつなげるが、内からLANの外に出れなくなっちゃう。


	network:
	  version: 2
	  renderer: NetworkManager
	  ethernets:
	    enp4s0:(ここはインターフェース名)
	    dhcp4: false
	    dhcp6: false
	    addresses: [ここにIPアドレスを記載/24]
	    gateway4: ゲートウェイアドレスを書く(ip route show で確認、via以下のアドレス))
	  nameservers:
	    addresses: [DNSサーバーのIPアドレス(cat /etc/resolv.confで確認)]
    

次のコマンドで設定を適用する
sudo netplan apply


初期設定

bios の設定

基本的に機器がつながっているかを確認すればいい

ubuntu の設定

apt のインストール (emacs, screen, net-tools, make, gcc, ssh, python3-pip, python2,gnuplot-x11, lm-sensors, geeqiw, gparted, nbtscan)
HDDのマウントの設定
sshの設定
データの引越し(scp)

ドライバのインストール

NICドライバが入ってなくて、LANケーブルを刺してもネットにつながらない自体が発生した。
uname -r カーネルバージョンを調べる
lspci| grep Ether 有線のネットワークチップの種類
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04) -> Realtek RTL8125を使っている
/lib/modules/(現在のカーネルバージョン)/kernel/drivers/net/ethernet/realtek/にドライバがあるか確認。なければネットからインストールする。公式ページから入手できる。
(このときPCがネットにつながらない場合は繋がるPCのvirtualbox等にカーネルバージョンが同じubuntuを入れてドライバ(r8125.ko)を作成し、scp等で移動させる必要がありめんどくさい)
解凍してautorun.shを実行、ifconfigを確認すれば有線につながっている。
sudo depmod -aをして再起動後も有効化されるようにしておく。
lspciはパソコンのPCIデバイスを表示するコマンド(-vで詳細も表示)、depmodはモジュールの依存関係うまく更新してくれるらしい。

kernel update時にドライバの自動アップデートがうまくいかなかった。これはDKMSというのを使うと解決する。登録しておいたドライブを自動で再コンパイルしてくれる。
ドライバは/usr/srcにおいておく
mv r8125-9.005.01 /usr/src
r8125-9.005.01の中にdkms.confを作成する。


      PACKAGE_NAME="r8125"
      PACKAGE_VERSION="9.005.01"
      BUILT_MODULE_LOCATION[0]="src"
      BUILT_MODULE_NAME[0]="r8125"
      MAKE[0]="'make' KVER=${kernelver} modules"
      CLEAN="make clean"
      DEST_MODULE_LOCATION[0]="/updates/dkms"
      AUTOINSTALL="yes"
      
ここは次のページを参考にした。各変数の意味はこのサイトを参照するべし。
dkms add -m r8125 -v 9.005.01
dkms build -m r8125 -v 9.005.01
こうしておくと、アップデート時に勝手にインストールしてくれる。

ある時、再起動するとドライバがインストールされているのにLANに繋がらない時があった。カーネルの再インストールをしたら、うまくいった。
sudo apt install --reinstall linux-image-(uname -rで確認)-generic
sudo ls /lib/modules/(hogehoge)-generic/updates/dkms/r8125.koで確認できる

プリンタの設定

次のサイトを参照
-PでPPDファイル名を指定するというのがあるが、YITPでは指定しなくてもうまく動いた。


.bashrc


      alias lab='screen -S lab'                                                                        
      alias inlab='screen -r lab'                                                                      
      
      alias ls='ls -FG'                                                                                
      alias lt='ls -tlrFG'                                                                             
      alias ll='ls -alFG'                                                                              
      alias la='ls -a'                                                                                 
      alias rm='rm -i'                                                                                 
      alias cp='cp -i'                                                                                 
      alias mv='mv -i'                                                                                 
      alias df='df -h'                                                                                 
      
      alias ..='cd ..'                                                                                 
      alias ...='cd ../..'                                                                             
      alias q='exit'                                                                                   
      alias b='brew'                                                                                   
      alias e='emacs'                                                                                  
      
      alias sc='screen'                                                                                
      alias topm='top -o rsize'                                                                        
      alias topc='top -o cpu'                                                                          
      
      export PATH=$PATH:~/bin                                                                          
      
      function yscp(){                                                                                 
      command scp -r マーキュリー:$1 $2                                    
      }                                                                                                
      function scpy(){
      command scp -r $1 マーキュリー:$2                                    
      }       
      function em(){
      command emacs $1 &
      }
      function emm(){
      command emacs --load ~/.emacs.d/mininit.el $1 &
      }