20230310 Linux CPUのアーキテクチャを調べる コマンド lscpu | grep "Architecture:"
結果 Architecture: x86_64
全体だとこんな感じ
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 63
Model name: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
Stepping: 2
CPU MHz: 2400.135
BogoMIPS: 4800.01
Hypervisor vendor: Xen
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 30720K
NUMA node0 CPU(s): 0
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology cpui
d pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes
xsave avx f16c rdrand hypervisor lahf_lm abm cpuid_fault invpcid_single pti fsgsbase bmi1 a
vx2 smep bmi2 erms invpcid xsaveopt
20230212 WSL2のUbuntuのIPを調べる ip addr show dev eth0
実行結果の例 6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:2f:1b:42 brd ff:ff:ff:ff:ff:ff
inet 172.26.129.189/20 brd 172.26.143.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe2f:1b42/64 scope link
valid_lft forever preferred_lft forever
172.26.129.189
のとこがWSL側のIPなので、例えばWSL側でWebサーバーを立ち上げていたらWindows側のブラウザのアドレスバーに入力すればアクセスできる
20211109 Expressで静的なファイル表示 URL /aaaaa 以下にアクセスで /public 以下のファイルを表示 const express = require('express');
const app = express();
const port = 3000;
app.use('/aaaaa', express.static(__dirname + '/public'));
app.listen(port, () => {
console.log(`http://localhost:${port}/aaaaa de /public no nakami ga deru-`);
});
20211107 Ubuntu 20.04 メモリ使用量確認 コマンド free -h
実行結果 total used free shared buff/cache available
Mem: 983M 389M 136M 12M 457M 423M
Swap: 0B 0B 0B
Ubuntu 20.04 ディスク使用量確認 コマンド df -h
実行結果 Filesystem Size Used Avail Use% Mounted on
udev 481M 0 481M 0% /dev
tmpfs 99M 776K 98M 1% /run
/dev/xvda1 39G 11G 29G 27% /
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/loop6 34M 34M 0 100% /snap/amazon-ssm-agent/3552
/dev/loop2 25M 25M 0 100% /snap/amazon-ssm-agent/4046
/dev/loop4 56M 56M 0 100% /snap/core18/2128
/dev/loop3 100M 100M 0 100% /snap/core/11798
/dev/loop1 100M 100M 0 100% /snap/core/11993
/dev/loop0 56M 56M 0 100% /snap/core18/2246
tmpfs 99M 0 99M 0% /run/user/1000
20210725 TypeScript オブジェクト型を加工する型 readonlyを除去 type RemoveReadonly<T> = {
-readonly [P in keyof T]: T[P];
};
?を除去 type RemoveUndefined<T> = {
[P in keyof T]-?: T[P];
};
生えてるか不明だし値の型も不明 type Unvalidated<T> = {
[P in keyof T]?: any;
};
2020-12-08 Node.js グローバルがどこ見てるか確認 global.module.paths
に配列でパスが入ってる
2020-11-22 package.json から npm install コマンド生成 ※バージョンは無視
console.log(`npm i -s ${Object.keys(require('./package.json').dependencies).join(' ')}`);
console.log(`npm i -D ${Object.keys(require('./package.json').devDependencies).join(' ')}`);
2020-09-11 画像保存妨害 画像のラッパー要素に ::after
で同サイズの透明なボックスを乗せると……
.image-wrapper {
position: relative;
}
.image-wrapper::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: "";
}
2020-09-08 Webpack 「hidden modules」を全部表示する webpack --display-modules
2020-06-21 Prettier JSXのタグの部分はダブルクォート、それ以外はシングルクォートしたい singleQuote
有効かつ jsxSingleQuote
無効
2020-06-19 AWS 東京リージョンにパブリックアクセスブロックONのS3バケットを作成する コマンド2発必要
aws s3api create-bucket --bucket <名前> --create-bucket-configuration LocationConstraint=ap-northeast-1
aws s3api put-public-access-block --bucket <名前> --public-access-block-configuration BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
2020-05-26 指定したサーバーでnslookup nslookup
> server 8.8.8.8
> note.kiriukun.com
2020-05-24 apt 依存関係もアンインストール sudo apt autoremove piyopiyo
設定ファイルを含めて依存関係もアンインストール sudo apt --purge autoremove piyopiyo
完全一致検索 apt list piyopiyo
部分一致検索 apt search piyopiyo
インストール済みのパッケージを表示 sudo dpkg -l
2020-04-22 JavaScript 分割代入で再代入 カッコで囲わないと Unexpected token '='
が出る
const obj = { a: 1, b: 2 };
let a, b;
({a, b} = obj);
console.log(a, b); // -> 1 2
2020-04-09 AWS-CLI 接続先、接続ユーザーを取得 【小ネタ】AWS CLIでAWS Account IDが取れるようになりました! | Developers.IO
aws sts get-caller-identity
結果 {
"UserId": "AAAAAAAAAAAAAAAAAAAAA",
"Account": "999999999999",
"Arn": "arn:aws:iam::999999999999:user/kiriukun"
}
2020-04-08 anyenvをアンインストール ホームディレクトリにインストール済みのanyenvと設定ファイルを削除
rm -rf ~/.anyenv
rm -rf ~/.config/anyenv
それから、インストール時に .bashrc
とか .bas_profile
あたりに以下の記述を追加してるはずなので、手動で削除する
.bashrcなど export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
ターミナルを落として上げなおして (再ログイン)、anyenv versions
などでコマンドが使えなくなったことを確認する。
2020-04-06 シンボリックリンク削除 unlink /path/to/link
2020-04-04 Ubuntuのバージョン確認 cat /etc/os-release | grep VERSION
結果 VERSION="18.04.4 LTS (Bionic Beaver)"
VERSION_ID="18.04"
VERSION_CODENAME=bionic
Ubuntu MariaDBを完全にアンインストール Ubuntu18.04+MariaDBでいろいろやらかした話 | 雑廉堂の雑記帳
sudo dpkg --force-all -r mariadb-server-10.1
sudo apt --purge remove mysql-server*
sudo apt --purge remove mysql-common*
sudo apt --purge remove mariadb-server*
aptはremoveじゃなくてpurgeしないと設定が残るらしい
最後の mariadb-server を消すとき、画面が出てきて消すか聞かれるのでYESを選択すること
Ubuntu シンボリックリンク作る ln -s /path/to/target linkname
2020-03-16 コメントのとこは公式マニュアル 参照
MyAliasRecordSetIPv4:
Type: "AWS::Route53::RecordSet"
Properties:
HostedZoneId: "追加先のホストゾーンID"
Name: "ドメイン名"
Type: "A"
AliasTarget:
DNSName: "CloudFrontディストリビューションのドメイン名"
HostedZoneId: "Z2FDTNDATAQYW2" # CloudFrontならこれ固定
MyAliasRecordSetIPv6:
Type: "AWS::Route53::RecordSet"
Properties:
HostedZoneId: "追加先のホストゾーンID"
Name: "ドメイン名"
Type: "AAAA"
AliasTarget:
DNSName: "CloudFrontディストリビューションのドメイン名"
HostedZoneId: "Z2FDTNDATAQYW2" # CloudFrontならこれ固定
2020-03-10 Gitでconflictした時の BASE, LOCAL, REMOTE
BASE … 共通の先祖
LOCAL … 自分の変更
REMOTE … 相手の変更
自分のを捨ててよければREMOTEを採用すればよい。
stashからpopしてconflictした場合は、LOCALとREMOTEが逆なので注意。(相手の変更が反映されたところに、popされた自分の変更が降ってくるわけだから)
2020-03-03 please make sure your function execution role have permission to CreateNetworkInterface
みたいなエラーが出たら、VPCで動かすLambdaの実行ロールのポリシーに ec2:CreateNetworkInterface
, ec2:DescribeNetworkInterfaces
, ec2:DetachNetworkInterface
, ec2:DeleteNetworkInterface
が足りない。
AWS S3の前にCroudFront置いたらS3のURLにリダイレクトされてAccessDeniedと言われる CroudFront作ってすぐにアクセスしようとすると、設定に何も問題無くても、S3の生URLへのリダイレクトがCroudFrontにキャッシュされてしまうらしい。
2020-02-13 JavaScript オブジェクトの配列を特定のキーでソート list
をオブジェクトの id
でソートするなら↓
list.sort((a, b) => {
if (a.id > b.id) return 1;
if (a.id < b.id) return -1;
return 0;
});
2020-02-12 設定ファイルを指定してwebpack webpack --config webpack.config.js
設定ファイルを指定してwebpack-dev-server webpack-dev-server --config webpack.config.js
2020-02-07 printableなASCII文字以外をヒットさせる正規表現 [^ -~]
printableなASCII文字と改行以外をヒットさせる正規表現 [^\r\n -~]
2020-02-03 VSCode settings.jsonの開き方 左下の歯車マークをクリック、または Ctrl + ,
で設定画面を開く → 画面右上にあるファイルのマークをクリック
このファイルのアイコンは、カーソルを合わせると『設定 (JSON) を開く』と表示される
VSCode ウィンドウのリロード Ctrl + Shift + P
でコマンドパレットを開く
Developer: Reload Window
と入力して実行
2019-11-16 Windowsでシンボリックリンク mklink /D %リンク置きたい場所% %リンク先%
2019-11-02 ゴミ function toQueryString(params) {
var ret = '';
Object.keys(params).forEach(function(key) {
if (ret !== '') {
ret += '&';
}
var value = params[key];
if (value === '' || value === null) {
ret += key;
} else {
ret += key +'='+ encodeURIComponent(value);
}
});
return ret;
}
function getCookies() {
var ret = {};
var tmp = document.cookie.split(';');
for (var i = 0, len = tmp.length; i < len; ++i) {
var arr = tmp[i].split('=');
if (arr[1] === undefined) {
arr[1] = '';
}
ret[arr[0]] = arr[1];
}
return ret;
}
2019-10-31 npm インストールしたパッケージ確認 --depth=0
つけると、依存で入ったパッケージを省いて表示できる
# ローカル
npm list --depth=0
# グローバル
npm list -g --depth=0
pip インストールしたパッケージ確認 --not-required
つけると、依存で入ったパッケージを省いて表示できる
pip list --not-required
2019-10-27 ImageMagick 7 で一括crop, resize ウィンドウモード (1600x900) のゲームのスクショ (1602x927) から枠を除去して640x360以下に縮小、フォルダ内 .png
全部
magick mogrify -crop 1600x900+1+26 +repage -resize 640x360 *.png
2019-10-05 ソフトバンクのルーターの初期ユーザーとパスワード ユーザー名「user」パスワード「user」
ソフトバンク 光ユニッット ポート開放
Ubuntu16.04 IPアドレス固定 /etc/network/interfaces source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens33
#iface ens33 inet dhcp
iface ens33 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
2019-09-17 普通にbabel7 インストール npm install --save-dev @babel/core @babel/preset-env @babel/cli
.babelrc {
"presets": [
"@babel/preset-env"
]
}
起動方法 npx babel src -d lib
2019-08-29 ランレングス圧縮 やっつけ
function runlength(text) {
let compressed = '';
let n = 0;
let pc = null;
for (let i = 0, len = text.length; i < len; ++i) {
const c = text.charAt(i);
if (pc !== null && c !== pc) {
compressed += n + pc;
n = 0;
}
pc = c;
++n;
}
if (n > 0) {
compressed += n + pc;
}
return compressed;
}
console.assert( runlength('') === '' );
console.assert( runlength('a') === '1a' );
console.assert( runlength('aaabbbb') === '3a4b' );
console.assert( runlength('aaabbbbcccccabbaaaacc') === '3a4b5c1a2b4a2c' );
2019-08-27 webpackでbabel7 インストール npm install --save-dev webpack webpack-cli
npm install --save-dev @babel/core @babel/preset-env babel-loader
.babelrc {
"presets": [
"@babel/preset-env"
]
}
webpack.config.js const path = require('path');
module.exports = {
mode: 'development', // productionにすると難読化&minifyされる
entry: './src/index.js',
output: {
path: path.join(__dirname, 'public/js'), // ここはフルパスで指定
filename: 'bundle.js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: ['babel-loader']
}
],
}
};
起動方法 npx webpack
gulp4でlessを自動コンパイル インストール npm install --save-dev less gulp gulp-less
gulpfile.js const gulp = require('gulp');
const less = require('gulp-less');
// lessをコンパイルするタスク
gulp.task('less', function(done) {
gulp.src('./src/less/*.less').pipe(less()).pipe(gulp.dest('./public/css'));
done(); // done()しないと終わらない
});
// ファイルの変更を監視してlessタスクを起動するタスク
gulp.task('watch', function() {
gulp.watch('./src/less/*.less', gulp.series('less'));
});
// デフォルトのタスク (lessタスクとwatchタスクを両方やる)
gulp.task('default', gulp.series('less', 'watch')); // gulp.series()に渡したタスクは左から順に流れる
起動方法 # lessタスクだけ実行
npx gulp less
# watchタスクだけ実行
npx gulp watch
# defaultタスクだけ実行
npx gulp
2019-08-21 AMIから復元したEC2インスタンスに踏み台から接続しようとしたら Permission denied(publickey) AMIから作成したインスタンスは勝手にパスワードログインが無効化されるらしい
/etc/ssh/sshd_config
を PasswordAuthentication yes
にしてSSH再起動 sudo service sshd restart
2019-08-02 upstart 登録 /ect/init
以下に {ジョブ名}.conf
ファイルを作る
piyopiyo.conf # 説明
description "hello"
# ランレベル3,4,5かつnetworkが開始したら動き出す
start on (runlevel [345] and started network)
# ランレベル3,4,5以外またはnetworkが停止したら止まる
stop on (runlevel [!345] or stopping network)
# プロセスが死んだら自動で復活する
respawn
# やること (例: ユーザー kiriukun で /my/terrible/program.sh を叩く)
exec sudo -u kiriukun /my/terrible/program.sh
upstart 設定をリロード ジョブ追加したらやる
sudo initctl reload-configuration
upstart 起動、停止、再起動 piyopiyo はジョブ名。Amazon Linuxではログは /var/log/messages
に出てたから、動かなかったら見る。
sudo initctl start piyopiyo
sudo initctl restart piyopiyo
sudo initctl stop piyopiyo
2019-07-31 ApacheのMPMを確認する方法 httpd -l
コマンドで『Server MPM』を見る (※Windowsでしか確認してない)
WinNTはスレッド増える系だから、PHP乗せるならスレッドセーフ版にする
Server version: Apache/2.4.39 (Win64)
Apache Lounge VS16 Server built: May 28 2019 17:12:51
Server's Module Magic Number: 20120211:84
Server loaded: APR 1.7.0, APR-UTIL 1.6.1
Compiled using: APR 1.7.0, APR-UTIL 1.6.1
Architecture: 64-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/apache"
-D SUEXEC_BIN="/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error.log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
2019-07-30 Amazon Linux 秘密鍵じゃなくてパスワードでログインできるようにする /etc/ssh/sshd_config
を編集して PasswordAuthentication yes
に変更する
変更したら /etc/rc.d/init.d/sshd restart
で反映する
しくじると鍵でも入れなくなるから、他から入れることを確認するまで今のSSHを切ってはいけない
2019-07-25 Amazon Aurora (PostgreSQL互換) Serverless
PostgreSQLのバージョンは必ず最新のものになる。
パブリックアクセスは不可。踏み台EC2だの作って、そこからアクセスする。
作成時にデータベース名を決められないっぽいので、デフォルトの postgres データベースでログインして作業する。
サブネットグループはRDSの画面の左メニュー『サブネットグループ』から作れる。
AmazonLinuxにpsqlインストール yum install postgresql96.x86_64
psqlでRDSに接続 psql -h ${RDSのエンドポイント} -U ${データベース作成時に設定したユーザー名} -d postgres
Amazon LinuxからPostgreSQL(RDS)へ接続する - Qiita
Amazon Linux 踏み台サーバーの作り方 以下サイト様を参照
【AWS 再入門】VPC 環境に踏み台サーバーを構築して SSH 接続してみよう | PSYENCE:MEDIA
Amazon Linux sudoできるユーザーの作り方 sudo useradd kiriukun
sudo passwd kiriukun
sudo visudo
visudo
すると /etc/sudoers
を書き込み可能状態で開ける。開いたら以下を追記する。root
ユーザーで似たような記述があるはずだから、そこらへんに書けばいい。
kiriukun ALL=(ALL) ALL
これで作ったユーザーは、sudo
するときに自分自身のパスワードを求められる。rootユーザーのパスワードを入力させたいとか、パスワード入力しなくていいようにするには、以下サイト様を参照。
一般ユーザでもroot権限が必要なコマンドを実行できるようにする – sudo – ABC Blog
Amazon Linux ログインできないユーザーの作り方 sudo useradd -s /sbin/nologin kiriukun
もしこれで追加したユーザーで作業したいことがあったら、他のユーザーでログインしてから root
に昇格 → su -s /bin/bash - kiriukun
で入れる
ログインできないユーザの作成とログインできるように変更するコマンドの使用方法 | レンタルサーバー・自宅サーバー設定・構築のヒント
プライベートVPC内のEC2でyumできるようにする プライベートなVPCはプライベートだから当然 yum
も無理。でもAmazon Linuxの yum
リポジトリがS3にあるらしいので、VPCにS3へのエンドポイントを追加してやれば yum
できるようになる。
ただVPCのエンドポイントは存在するだけで有料 なことは留意。
VPC閉塞網からyumリポジトリにアクセスする(Amazon Linux & RHEL) - のぴぴのメモ