RSS

Linux: CPU 情報を表示するには

lscpu コマンドを使うと、日本語で CPU 情報を表示できる。

$ lscpu
アーキテクチャ: x86_64
CPU 操作モード: 32-bit, 64-bit
アドレスサイズ: 48 bits physical, 48 bits virtual
バイト順序: Little Endian
CPU: 12
オンラインになっている CPU のリスト: 0-11
ベンダー ID: AuthenticAMD
モデル名: AMD Ryzen 5 PRO 5650GE with Radeon Graphics
CPU ファミリー: 25
モデル: 80
コアあたりのスレッド数: 2
ソケットあたりのコア数: 6
ソケット数: 1
ステッピング: 0
周波数ブースト: 使用する
CPU スケーリング MHz: 73%
CPU 最大 MHz: 4480.6831
CPU 最小 MHz: 404.8810
BogoMIPS: 6787.31
……………………
……………………

生の(英語の)CPU情報も次のようにして表示できる。こちらは、lscpuより詳細なコアごとの情報を表示できる。

$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 25
model : 80
model name : AMD Ryzen 5 PRO 5650GE with Radeon Graphics
stepping : 0
microcode : 0xa500014
cpu MHz : 3475.942
cache size : 512 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 6
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
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 mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca debug_swap
bugs : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass srso ibpb_no_ret spectre_v2_user tsa vmscape
bogomips : 6787.31
TLB size : 2560 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]

processor : 1
vendor_id : AuthenticAMD
cpu family : 25
model : 80
……………………………
……………………………

 
コメントする

投稿者: : 2026/10/20 投稿先 Linux

 

タグ: ,

Linux: ss コマンドでポートを使用しているプロセス一覧を表示

ss コマンドの一般的な使い方

  • すべてのポート一覧 sudo ss -tunlp
  • TCP のみ sudo ss -tlp
  • UDP のみ sudo ss -ulp

オプションの意味

  • t: TCP ポート
  • u: UDP ポート
  • n: ホスト名やサービス名を名前解決せず、数値(IPアドレスやポート番号)で表示
  • l: リスニング(接続待ち)状態のソケットのみを表示
  • p: そのポートを使用しているプロセス名やPIDを表示

絞り込み

grep を使う

sudo ss -tunlp | grep :80
sudo ss -tunlp | grep nginx
sudo ss -tunlp | grep ':30[0-9][0-9]'

 
コメントする

投稿者: : 2026/10/19 投稿先 Linux

 

タグ: ,

LighttpdでPHPを使うには

軽量ウェブサーバであるLighttpdでもPHPが使える。

PHP, PHP-FRMのインストール

次の例は、PHP8.5の場合である。

sudo apt install php8.5 php8.5-fpm

PHP-FRM が動作しているか確認する。

systemctl status php8.5-fpm

ソケットの場所を確認する。

ls /run/php/

Lighttpd に PHP-FPM を紐付ける(FastCGI)

sudo vi /etc/lighttpd/conf-available/15-fastcgi-php.conf

ファイルの内容は次のとおり。

fastcgi.server += ( ".php" =>
((
"socket" => "/run/php/php8.3-fpm.sock",
"broken-scriptfilename" => "enable"
))
)

ファイルを保存したらモジュールを有効化する。

sudo lighttpd-enable-mod fastcgi
sudo lighttpd-enable-mod fastcgi-php
sudo systemctl restart lighttpd

PHP ファイルの作成

HTML と同じ場所に .php ファイルを作成する。

sudo vi /var/www/html/index.php

Lighttpd を再起動して、index.php にアクセスしてみる。

sudo systemctl restart lighttpd
curl http://localhost/index.php

 
コメントする

投稿者: : 2026/10/17 投稿先 Linux

 

タグ: ,

Linux: Bash でクリップボードを使うには

Wayland 環境 (近年で主流の方式)

wl-clipboard パッケージに含まれる wl-copy を使用する。

echo -n "コピーしたい文字列" | wl-copy

X11 デスクトップ環境

xclip または xsel を使用します(インストールされていない場合は sudo apt install xclip などで導入できる)

echo -n "コピーしたい文字列" | xclip -selection clipboard
echo -n "コピーしたい文字列" | xsel --clipboard --input

WSL 環境 (Windows)

echo -n "コピーしたい文字列" | clip.exe

 
コメントする

投稿者: : 2026/10/15 投稿先 Linux

 

タグ:

Linux でメモリ消費をリアルタイムで監視

df や free コマンドでディスクやメモリの消費量を表示できますが、リアルタイムでの監視は難しいです。

メモリ消費量をリアルタイムで監視するには、htop がオススメです。

このアプリは、GUIアプリではないので、端末だけで動作します。

sudo apt install htop

desktop 環境で最もメモリ消費が多いアプリはブラウザで、タブを多く開くと数GBもメモリを消費することがあります。

Ubuntu などの標準ブラウザ Firefox でメモリ消費を節約するには、以下のようにするとよいです。

  • 使ってないタブをこまめに閉じる。
  • タブのピン留めを頻繁に使うものだけにする。
  • 拡張機能 Auto Tab Discard を使う。(タブの自動解放)
  • 拡張機能 uBlock Origin を使う。(広告をブロックし、そのメモリ消費を減らす」)

 
コメントする

投稿者: : 2026/10/11 投稿先 Linux

 

タグ: ,

Windows からSSH 鍵対を使って Linux に SSH でログインする

ssh コマンドを使って Linux にログインする場合、Windows でもパスワード入力をいちいち行わずにログインできる。

SSH 鍵対 (キーペア) の作成

初めて ssh を使う場合は、SSH 鍵対を作る必要がある。これは、C:\Users\user\.ssh というフォルダに作られる。

もし、このフォルダが存在し、中身がある場合はすでに作成されているのでこの作業は必要ない。

以下のコマンドを実行すると、このSSH 鍵対が作られる。

ssh-keygen -t ed25519

Linux にこの SSH 鍵対を登録する

Windows の \Users\user\.ssh にファイル id_ed25519.pub があるはずなので、中身を表示してみる。

(例)ssh-ed25519 AAAAC3NzaC1l…..b8xf3CsndSb7r3aW//OSn1g0OZTWArcaz windowsuser@thepc

TeraTerm などで Linux に接続し、この文字列全部を Linux 側の以下のファイルに追加する。

/home/user/.ssh/authorized_keys

パスワードなしで接続できるか確認

Windows Terminal から ssh コマンドで Linux に接続してみる。パスワードを要求されずに接続できたら成功。

 
コメントする

投稿者: : 2026/10/09 投稿先 Linux, Windows

 

タグ:

Ruby: YAMLの基本

YAML は JSON の上位互換の言語であり、JSON と相互変換ができる。

YAMLの書き方の基本

  • インデントはスペース2 or 4(タブ禁止)
  • キー: 値 の形式で書く
  • 配列は - を使う
  • ネストはインデントで表現
  • 文字列は基本的に引用不要(必要なときだけ ' or ")

📘 YAMLの基本構造

1. キーと値

コード

name: makandat
age: 42
  • : の後ろにスペースが必要
  • 値は文字列・数値・真偽値など何でもOK

2. インデントで階層を作る

コード

user:
name: makandat
skills:
- Ruby
- C++
  • タブ禁止
  • インデントはスペース2 or 4で統一する

3. 配列(リスト)

コード

languages:
- Ruby
- Python
- C++

オブジェクトの配列も書ける:

コード

servers:
- host: example.com
port: 80
- host: api.example.com
port: 443

4. 文字列の扱い

基本は引用不要:

コード

message: こんにちは

特殊文字がある場合だけ引用:

コード

path: "/usr/local/bin"
note: 'コロン: を含む文字列'

5. 複数行の文字列

整形を保持する場合(|):

コード

description: |
これは複数行の
テキストです。

改行を折りたたむ場合(>):

コード

summary: >
これは複数行だが
1行にまとめられる。

6. コメント

コード

# これはコメント
name: makandat # 行末にも書ける

📌 よくある落とし穴

  • タブを使う → エラー
  • インデントがズレる → 意図しない構造になる
  • : の後ろにスペースを入れ忘れる → パース失敗
  • JSONの癖で {} や [] を使いすぎる → YAMLの利点が消える

YAMLの例

app:
  name: sample-app
  version: 1.0.0

  database:
    host: localhost
    port: 5432

  features:
    - login
    - search
    - analytics

特別なキーを使うとき

キーの文字列は原則自由だが、次のような場合は、引用符で囲む必要がある。

  • 数字だけのとき 数値と誤認されないように
  • コロン(:)を含むとき : はキーと値を分けるのに使うため
  • キーの先頭が特殊文字のとき (?, -, *, &, #, !, %, @, , など) 

(例)

“123”: 3456
“A:B”: ABC
“%xx”: 0xfd

コメント

YAML のコメントは # … である。複数行コメントは存在しない。// のようなC/C++コメントもない。

値が数値のとき

整数と浮動小数点数のみ数値とみなされる。よって、複素数や16進数はない。

複素数や16進数を値として書いても文字列とみなされる。複素数を表したいときは、配列などを使う。

キーと値の間のコロン

キーと値の間にはコロンを書くが、これは必ず ‘: ‘ であること。空白はTABやLFは許されない。だたし、コロンの前の空白は許され、あとの複数の空白も許される。(非推奨)

コロンのあとの空白は必須である。

入れ子(ネスト)

下のような書き方に注意する。

  • タブは禁止(必ずスペース)
  • インデント量は 2 or 4 に統一
  • オブジェクト → key: の下にインデントして書く
  • 配列 → - の下にさらにインデントして書く

🧱 1. オブジェクトの入れ子

コード

server:
host: example.com
database:
user: admin
password: secret

階層構造はインデントだけで表現される。

📦 2. 配列の入れ子

コード

servers:
- host: example.com
port: 80
- host: api.example.com
port: 443

- の下にさらにインデントしてオブジェクトを書く。

🔁 3. オブジェクトの中に配列

コード

user:
name: makandat
skills:
- Ruby
- C++
- Linux

📚 4. 配列の中にオブジェクトの配列(よくある構造)

コード

projects:
- name: alpha
members:
- makandat
- alice
- name: beta
members:
- bob
- charlie

型の指定

!!型名で値の方を直接指定できる。

version: !!str 01
count: !!int "42"
rate: !!float 1
enabled: !!bool "false"
items: !!seq
- a
- b
config: !!map
key: value

Ruby のコード例

require "yaml"

def pretty_yaml(data)
  data.each do |key, value|
    puts "#{key}:"

    case value
    when Hash
      value.each do |k, v|
        if v.is_a?(Array)
          puts "  #{k}:"
          v.each { |item| puts "    - #{item}" }
        else
          puts "  #{k}: #{v}"
        end
      end

    when Array
      value.each { |item| puts "  - #{item}" }

    else
      puts "  #{value}"
    end

    puts
  end
end

# YAML読み込み(安全)
content = File.read("config.yml", encoding: "UTF-8")
data = YAML.safe_load(content)

pretty_yaml(data)

YAMLとJSONの相互変換

yq コマンドを使うと YAML / JSON の相互変換ができる。このコマンドは gem コマンドでインストールできる。

yq -o=json input.yml
yq -o=yaml input.json

あるいは、Ruby を使ってもかんたんなコードで作れる。

YAML から JSON

require "yaml"
require "json"

data = YAML.safe_load(File.read("input.yml", encoding: "UTF-8"))
puts JSON.pretty_generate(data)

JSON から YAML

require "json"
require "yaml"

data = JSON.parse(File.read("input.json", encoding: "UTF-8"))
puts YAML.dump(data)

 
コメントする

投稿者: : 2026/10/07 投稿先 Ruby

 

タグ:

apt コマンドのよくある質問

apt と apt-get

apt はユーザー向け(対話的・見やすい・簡略化)、一方、apt-get はスクリプト向け(互換性重視・出力が機械的)である。

サブコマンドはだいたい同じだが、フルアップグレードだけは異なる。
apt full-upgrade / apt-get dist-upgade

apt と dpkg

dpkg は.deb パッケージを直接インストール・削除するローレベルツール、apt はリポジトリ管理・依存解決・更新・検索を行うハイレベルツールである。

dpkg は依存関係の解決はしない。(apt はする)

apt を使わない Linux ディストリビューション

他のディストリビューション(Debianベースでないもの)では、以下のようなパッケージ管理コマンドが使われる。

  • RHEL/Fedora/CentOSなどは ‘yum’ コマンド
  • Alpine Linux では ‘apk’ コマンド
  • Arch Linuxでは’pacman’ コマンド。Linux でないが、MSYS2 もpacman を使う。

clean、remove、purge の違い

  • clean APT の全キャッシュを削除する。(空きディスク容量を増やせる)
  • remove パッケージを削除するが設定ファイル(/etc 以下のファイル) は残る。再インストールすると、その設定ファイルが有効になる。
  • purge 設定ファイルも含め完全削除。

autoclean と clean の違い

  • autoclean 必要なキャッシュは残す。「古いものだけ削除」なので clean とは別物。
  • clean すべてのキャッシュを消す。

autoremove について

  • autoremove は不要になった依存パッケージ削除する。(設定ファイルは残る)
  • autopurge (設定ファイルも消す) コマンドは存在しないが、–purge オプションがある。
    sudo apt autoremove –purge

パッケージ一覧

  • apt list すべてのパッケージ一覧。たくさん表示されるので、普通は grep と併用する。
  • apt list –installed インストール済みのパッケージ一覧
  • dpkg -l 低レベルな情報も一緒に表示
  • apt search APT の パッケージデータベースを検索する。パッケージ名だけでなく説明文やバージョンも検索できる。
  • apt-mark showmanual 自分でインストールしたパッケージ一覧

 
コメントする

投稿者: : 2026/10/07 投稿先 Linux

 

タグ:

Ruby のテンプレート slim をコマンドとして使って HTML ファイルを生成する

Ruby の Slim にはコマンドラインツールがあり、.slim ファイルを HTML に変換できます。

インストール

gem install slim

これでコマンドラインツールが使えると思っていたが、使えなかったので、次のようなスクリプトを書いて代用した。

#!/usr/bin/env ruby
require "slim"

slim_file = ARGV[0]
if slim_file.nil?
  abort "Error: No Input file."
end
html_file = ARGV[1]
if html_file.nil?
  abort "Error: no Output file."
end

template = File.read(slim_file, encoding:"UTF-8")
html = Slim::Template.new(pretty: true) { template }.render

File.write(html_file, html)

puts "This wrote #{html_file}."

Express でよく使われる pug は slim とほとんど同じように使える。これは pug-cli をインストールするとコマンドとして使える。

sudo npm -g install pug-cli

使い方

リダイレクトを使って変換結果をファイル保存するには

slim sample.slim > sample.html

これは、-o オプションを使うことでも可能。

slim -o sample.html sample.slim

slim の基本

  • h1 Hello タグ
  • div タグ
  • p Hello インデント
  • p.message Hello class
  • #main id
  • a(href=”/”) Home 属性
  • / comment HTMLコメント

slim のコード例

doctype html
html
head
title Sample
body
h1 Sample

slim のルール

1. タグ

HTMLのタグ名を書くと、そのままタグになります。

h1 Hello
p これは文章です。

↓

<h1>Hello</h1>
<p>これは文章です。</p>

div は省略記法があり、単にクラスを書くこともできます。

div
p Hello

2. インデントで入れ子にする

Slim の最大の特徴です。

html
head
title テスト
body
h1 Hello
p こんにちは

↓

<html>
<head>
<title>テスト</title>
</head>
<body>
<h1>Hello</h1>
<p>こんにちは</p>
</body>
</html>

インデントがHTMLの階層になります。

スペース2個でも4個でも構いませんが、同じファイル内では統一します。

3. クラス

p.message Hello

↓

<p class="message">Hello</p>

複数のクラスも書けます。

div.container.main
p.message Hello

↓

<div class="container main">
<p class="message">Hello</p>
</div>

4. id

# を使います。

div#main
h1#title Hello

↓

<div id="main">
<h1 id="title">Hello</h1>
</div>

クラスと組み合わせることもできます。

div#main.container

5. div は省略できる

これは Slim でよく使います。

#main.container
h1 Hello
p Test

つまり、

div#main.container

と同じです。

↓

<div id="main" class="container">
<h1>Hello</h1>
<p>Test</p>
</div>

6. 属性

HTMLの属性は () の中に書きます。

a(href="/index.html") Home

↓

<a href="/index.html">Home</a>

複数の場合:

input(type="text" name="username" id="username")

↓

<input type="text" name="username" id="username">

7. 属性のショートカット

href や id などは、よく使うものに短縮記法があります。

a[href="/index.html"] Home

ただし、通常は

a(href="/index.html") Home

のほうが分かりやすいので、最初はこちらをおすすめします。


8. テキスト

タグの後ろにそのまま書きます。

h1 こんにちは
p これはSlimのテストです。

長い文章なら | を使えます。

p
| これは長い文章です。
| ここも同じp要素の中です。

9. HTMLをそのまま書く

| を使えば、HTMLとして解釈されない通常のテキストを書けます。

p
| Hello <world>

HTMLタグとして扱いたい場合は、== などのSlimの出力構文があります。

ただし、ユーザー入力などをそのままHTMLとして出力するとXSSの原因になるので、この機能は注意して使います。


10. コメント

HTMLコメント:

/ これはHTMLコメントです

↓

<!-- これはHTMLコメントです -->

Slim内部だけのコメントなら、

-# このコメントはHTMLに出力されません

です。


11. HTML5のDOCTYPE

doctype html

↓

<!DOCTYPE html>

したがって、基本的なHTMLなら、

doctype html
html
head
meta(charset="UTF-8")
title テスト
body
h1 Hello
p Slimで作ったHTMLです。

という感じになります。


12. 改行とインデント

例えば、

ul
li Apple
li Orange
li Banana

は、

<ul>
<li>Apple</li>
<li>Orange</li>
<li>Banana</li>
</ul>

になります。

つまり Slim では、

「終了タグを書く代わりに、インデントを戻す」

と考えると分かりやすいです。


13. Rubyコード

Slim はもともと Ruby のテンプレートエンジンなので、Rubyコードも書けます。

- name = "Taro"
h1 Hello #{name}

↓

<h1>Hello Taro</h1>

Rubyの式を埋め込む場合は #{...} が使えます。

p 1 + 2 = #{1 + 2}

↓

<p>1 + 2 = 3</p>

14. 条件分岐

Rubyコードなので、例えば、

- if true
p OK
- else
p NG

と書けます。

Rubyの if がSlimのインデント構造に対応します。

 
コメントする

投稿者: : 2026/10/06 投稿先 Ruby

 

マークダウンファイル (.md) をHTML ファイルに変換するには

マークダウンファイル (.md) をHTML ファイルに変換するには、いくつかのコマンドがありますが、ここでは “pandoc” を紹介します。

インストール

sudo apt install pandoc

変換方法

pandoc input.md -o output.html

Github 風にしたいときは

pandoc README.md -s -o README.html

CSSを指定することも可能

pandoc README.md -s --css=style.css -o README.html

 
コメントする

投稿者: : 2026/10/06 投稿先 その他, Linux

 
 
WordPress.comで自分のサイトを無料で作成しましょう。自分のサイトを作成しましょう。
無料で開始