■Linux terminal
tabで入力補完
↑↓で入力履歴呼び出し
^qはCtrl+qを押すという意味
半角/全角キー 日本語を切り替える(画面右上にもIMEがある、win+spaceの場合も)
ls -la ディレクトリ内を表示
ls -a 隠しファイルを含み表示
(GUI)ctl+h 隠しファイルを表示(メニューでもチェックで可)
pwd 現ワーク中のディレクトリを表示
cd ../ 上に上がる
clear 表示内容を消す
mv beforeName.text afterName.txt ファイル名変更
rm -R ディレクトリ名 削除、ファイルはrm a.txt
ls -l > hoge.txt >結果を上書き
ls -l >> hoge.txt >>結果を追記
printenv 環境変数表示 printenv xで特定表示
grep aaa -rl ./ カレントディレクトリ以下からファイル内にaaaが含まれるファイルを検索
grep -R $keyword *.py .pyファイルからkeywordを検索
sudo - 一般ユーザが特権操作する sudo省略
sudo -i rootに切り替える
sudo -iu <username> 特権ユーザ切り替え
テキスト選択
Shift↑or↓ で行全体
home(+fn)で行頭、end(+fn)で行末移動
nano text.txt 作成あるいは開く、nano簡単かも、画面下コマンドでctrl+?すればいい
コマンドM-UはEsc+u
ctrl+k で1行削除
$()
ドル記号と括弧で囲んだコマンドは実行結果を出力し展開
echo "現在のディレクトリは、$(basename $(pwd))です"
パッククォートは囲った中身をコマンドとして実行しその結果を出力
echo "今日は、`date +%m月%d日`です。"
変数と$()とバッククォートを使ってワンライナー
■viエディタ
sudo apt install vim
vi text.txt ファイル作成あるいは開く
viは2つ+αのモード
┣コマンドモード
┃┗コロンモード(exモード:祖先のラインエディタ)
Escでコマンドへ抜ける
┗挿入 i (入力モード)
ファイル名を指定し保存 :w new_file_name.txt
強制保存のコマンド :w!
保存せず終了 :q 強制終了 :q!
:10 10行目に移動
:set number 行数を表示
:num 現在のカーソル位置行数を表示
クリップボードをペースト iで挿入モードに入り Shift+Insert
vi内でコピペ:yコマンドのコピー、pコマンドのペーストなので下記の様にする
2yw ならカーソルから2単語コピーされます
3yl ならカーソルから3文字コピーされます
y$ ならカーソルから行末までコピーされます
p ならカーソルの後ろにペーストされます
$ カーソルを行末へ
G カーソルを最終行行頭へ
- 前行の行頭へ
Enter 次行の行頭へ
w カーソルを1語進める
b カーソルを1語戻す
Ctrl-d 1/2画面下へ(down)
Ctrl-u 1/2画面上へ(up)
Ctrl-f 1画面下へ(foward)
Ctrl-b 1画面上へ(back)
/文字列(Enter要) 文字列検索(スラッシュ)
┣n 次の検索文字列へ
┗N 前の検索文字列へ 保存して終了 :wq 保存して強制終了 :wq!
■環境変数は下記の順で探す、なので必要なら下位のものを上にコピー
~/.bash_profile
~/.bash_login
~/.profile
source ~/.bash_profile 編集したbashrcをbash_profileに反映させる
bashrcはbash起動毎、bash_profileはログイン毎
■SSHの設定
Linuxコマンド【 ssh-keygen 】認証用の鍵を生成 - Linux入門 - Webkaru$ ssh-keygen
パスフレーズは空でも設定上は問題ないが塩っ気が足らん気が
秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成され、ホームディレクトリに作成される
/home/yourID/.ssh/id_rsa
/home/yourID/.ssh/id_rsa.pub.
公開鍵をSSHサーバや外部サービスに登録する等して使う、秘密鍵は明かさないこと
$ vi ~/.ssh/config
Host oketsu
HostName 1.XXX.XXX.XXX
User hoge
IdentityFile ~/.ssh/id_rsa.pub
LocalForward 5912 localhost:5902
ProxyCommand connect-proxy -H proxy.syanai.in:8022 %h %p
Host github.com
HostName ssh.github.com
Port 443
IdentityFile ~/.ssh/id_rsa.pub
ProxyCommand connect-proxy -H proxy.syanai.in:3128 %h %p
User githoge
$ chmod 600 .ssh/config
下記のように実行すると、ログイン/GITできます。
$ ssh oketsu
$ git clone githoge@github.com:kusogitry.git
$ id 所属グループ等を表示
$ uname -n;id;date
■NW設定
/etc/resolve.conf
nameserver 88.88.88.88
~/.profile とか .bashrc とか
export http_proxy=http://proxy/3128
/etc/apt/apt.conf
ip addr
■スクリプト実行
nohup python3 main.py & ユーザディレクトリにnohup.outログが実行完了時に一度に保存される(重いと思われる)
nohup python3 main.py > /dev/null 2>&1 & ログなし
nohupはバックグラウンド実行、ログアウトしても実行続ける
jobs ジョブリストを出す
fg ジョブ番号 フォアグラウンド実行に変える
bg ジョブ番号 バックグラウンド実行に変える
ctrl c キャンセル
ctrl z 中断(再開できる)
crontab -e 編集
crontab -l 確認
sudo service cron restart 再起動
systemctl status cron 稼働の確認
30 12 * * 0 python3 /home/app_hoge/main.py
cronはバックグラウンド実行でnohup &を含めると実行されない、多分
top プロセス/CPU/メモリ等の情報、こちらで動いていればpsのstatがsでも問題ない、多分
ps aux
ps f -A プロセスをツリーで表示し便利
kill -l
kill -SIGCONT プロセス番号
sudo less /var/log/cron.log
sudo tail -f /var/log/cron.log
sudo less /var/log/syslog
sudo tail -f /var/log/syslog
■ディスク系
ext4 一般的なデスクトップやファイルサーバ向け、16TBまで、ファイルシステムチェックで遅い
xfs 高負荷IOで大容量データ処理向け、ジャーナルなし、ファイルシステムチェックを短縮
論理ディスク=パーティション
/dev/sda1, /dev/sda2, /dev/sdb, /dev/sdf等、数字はパーティション番号、数字がないとパーティション1つだけ
ディスク拡張
lsblk
df -Th
du -sk * | sort -nr
#xfsの場合
pvdisplay
pvresize /dev/nvm
vgdisplay
lvdisplay
lvextend -l +100%FREE /dev/vg001/lv001
xfs_growfs /opt
#ext4の場合
apt autoclean キャッシュあるがインストールされていないdebファイル削除
apt autoremove 必要なくなったパッケージ削除
disk -l /dev/nvm パーティション情報
growpart /dev/nvm 1 指定パーティションの容量拡張
resize2fs /dev/nvm ファイルシステム拡張
容量調整
/var/cache はapt-get clean, yum cleanで消す程度で
■swapをrootからvarに移動
free
swapon -a
swapを無効化
swapoff -v /swap.extended
swapをvarに移動
mv /swap.extended /var
/etc/fstabからswapのエントリを/varに書き換え
cat /etc/fstab
swapを有効化
swapon -a
確認
free -h
■ライブラリアップデート
sudo apt update
apt list --upgradable | grep mysql
sudo apt install mysql-client=6.6.6-0ubuntu2.1~99.99.9
sudo apt install mysql-client-core=6.6.6-0ubuntu2.1~99.99.9
…
dpkg-l | grep mysql
■SPF
spfレコードはメールを送信する際、送信元サーバとDNS上のIPアドレスを比較
自社から取引先に送信したメールにSPFレコードを設定していなければ、相手側のメールサーバで迷惑メールとされ届かない場合も
送信元のDNSに送信元IPをSPFレコードに登録する(ドメインをSMTPのIPに変える?
ドメイン IN TXT v=spf1 ip4:172.16.0.1 -all
(+が省略されているがIP許可、allを認証しないという意味)
送信側SMTPサーバではSPFをチェックせず何でも送信
受信側MTAにて設定され(SMTPにはトランスファのMTA、デリバリのMDA
spfを使えば先方がspfレコードを登録していなければメールが受け取れない
postfixやeximのSPFをonにする設定がある
spfレコードが設定されているかを確認
lsofコマンド入門 #Linux - Qiita=============
■VS code
マルチカーソル:ctrl+shift+↓
[Alt]+クリック | カーソルを追加 |
[Ctrl]+[Alt]+[↑]/[↓] | カーソルを上下に追加 |
[Ctrl]+[U] | カーソル操作を元に戻す |
[Shift]+[Alt]+[I] | カーソルを行末に追加 |
[Ctrl]+[L] | 行を選択 |
[Ctrl]+[Shift]+[L] | 選択中の文字列と同じものをすべて選択 |
[Ctrl]+[F2] | カーソル位置の単語と同じものををすべて選択 |
[Shift]+[Alt]+[→] | 選択範囲の拡大 |
[Shift]+[Alt]+[←] | 選択範囲の縮小 |
[Shift]+[Alt]+ドラッグ | 矩形選択 |
[Ctrl]+[Alt]+[Shift]+[カーソル] | 矩形選択 |
[Ctrl]+[Alt]+[Shift]+[PgUp]/[PgDn] | 矩形選択 ページ上下 |
VSCodeのマルチカーソル練習帳 - Qiitaマルチカーソルを使わないVSCodeはただのVSCodeだ!〜解説編〜 - memo_md (hateblo.jp)