ls

基本的な使い方

ファイル、ディレクトリを表示する

ls

ファイル、ディレクトリの詳細、隠しファイルを表示する

ls -la

ファイルの日時に関する情報を表示する

更新時間の「年」「秒」「タイムゾーン」まで表示する

ls --fulltime

ファイルが更新された日時ではなく「参照」された日時を表示する

ls --ul

mount

Linuxでデバイスをマウントする

ディレクトリの枝を追加するイメージ

基本的な使い方

dmesg で接続されているデバイスを確認

(dmesg : Linuxカーネルが起動時に出力したメッセージを表示するコマンド)

$ dmesg | grep sdb

/dev/sdb1 を /mnt にマウントする

$ mount /dev/sdb1 /mnt
$ ls /mnt
Sustem Volume Information

# どのデバイスがどこにマウントされているか確認する
$ df -Th
ファイルシス            タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs                devtmpfs   876M     0  876M    0% /dev
tmpfs                   tmpfs      887M     0  887M    0% /dev/shm
tmpfs                   tmpfs      887M   17M  870M    2% /run
tmpfs                   tmpfs      887M     0  887M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs         50G  5.4G   45G   11% /
/dev/sda1               xfs       1014M  308M  707M   31% /boot
/dev/mapper/centos-home xfs         73G  996M   72G    2% /home
tmpfs                   tmpfs      178M     0  178M    0% /run/user/1000

/mnt にマウントされているデバイスをアンマウントする

$ umount /mnt

# アンマウントエラーになる場合、状況を確認する
$ lsof /mnt

基本オプション

オプション 説明
-a /etc/fstab に記述されたファイルシステムを全てマウントする。 例外としてnoautoオプションが記述されている場合はマウントしない
-t ファイルシステムを指定してマウントする。サポートされているファイルシステムは/etc/filesystems に記述されている

uid : ユーザID指定 gid : グループID指定 ro : 読み込み専用 rw : 書込みの許可

参考:https://eng-entrance.com/linux-mount

自動マウント

fstab 参照のこと

nkf

テキストコードの文字コードをアレコレするコマンド

基本的な使い方

文字コードUTF-8に変換して別名保存

nkf -w sample.txt > sample-utf8.txt

文字コードをShift JISに変換して別名保存

nkf -s sample.txt > sample-Shift_JIS.txt

文字コードEUC-JPに変換して別名保存

nkf -e sample.txt > sample-EUC-JP.txt

文字コードを変換しつつ上書き保存

nkf -w --overwrite sample.txt 

ファイルの文字コードを確認する

nkf -g sample.txt orders.csv
# UTF-8 の場合
UTF-8
# Shift JIS の場合
Shift_JIS
# EUC-JP の場合
EUC-JP

基本オプション

改行コードの変換

オプション オプション
-Lu 改行コードをLFに変換する
-Lw 改行コードをCRLFに変換する
-Lm 改行コードをCRにする

その他のハナシ

  • nkf は 「Network Kanji Filter」の略

外部リンク

yum

基本的な使い方

パッケージをインストールする

yum install package-name

インストール済みのパッケージに更新があるか確認する

yum check-update
yum list updates

パッケージを更新する

yum update package-name

パッケージを削除する

yum remove package-name

基本設定

詳細は man yum.confを参照すること

proxyを設定する

# vi /etc/yum.conf
proxy=http://proxy:8080

タイムアウトしてしまう場合、タイムアウトを追加する

# /etc/yum.conf
timeout=60

情報の表示

インストール済みのパッケージ表示

$ yum list all
$ yum list vim/*
$ yum list installed

アップデート可能なパッケージ表示

$ yum list updates

利用可能なパッケージ表示

$ yum list available
$ yum list available | grep mysql

パッケージ情報表示

$ yum info PACKAGE_NAME

依存関係を確認する

# pythonが依存するパッケージを表示
yum deplist python
# pythonに依存するパッケージを表示 
rpm -q --whatrequires <パッケージA>

パッケージ操作関連

リポジトリ更新の確認

$ yum check-update

パッケージ更新

$ yum update package-name
$ yum update
$ yum upgrade

yum upgradeyum update --obsoletes と同じ 古いパッケージを削除しつつupdateしてくれる

CentOSでは、/etc/yum.confにobsoletes=1と書いてあるため、デフォルトで--obsoletesが有効の状態 よって、yum updateyum upgradeも変わらない

セキュリティ更新のみをアップデート

$ yum --security check-update
$ yum --security update

リポジトリの清掃

$ yum clearn all

パッケージの削除

$ yum remove package-name

エラー対処

AWS のRedhatEnterpriseLinuxでエラーが出てしまう yumを実行すると以下のエラーになる

This system is not registered with an entitlement server

EC2の RHEL AMII には基本サブスクリプションが含まれるため、subscription-managerを有効にする必要はない。エラーが目障りという場合は設定を変更するだけでいい [参考] https://dev.classmethod.jp/articles/tsnote-ec2-dnf-upgrade-error-001/

sudo vi /etc/yum/pluginconf.d/subscription-manager.conf
(変更前)enabled=1
(変更後)enabled=0

リポジトリの管理

登録済みリポジトリ一覧

$ yum repolist [ all | enabled | disabled ] -v

リポジトリの有効/無効を切り替える

vi /etc/yum.repos.d/*.repo

[...]
enabled=1 (無効)
$ yum-config-manager --disable nodesource
$ yum-config-manager --enable nodesource

yum コマンド実行時に一時的にリポジトリを有効化、無効化する

$ yum --enablerepo=リポジトリID search,install,update等のコマンド ・・・
$ yum --disablerepo=リポジトリID search,install,update等のコマンド ・・・

ソフトウェアコレクションのリポジトリ登録

[参考] https://stupiddog.jp/note/archives/1074

$ yum install centos-release-scl-rh

より新しいバージョンをインストールするためのリポジトリ

[参考] https://dev.classmethod.jp/articles/how-to-install-newer-packages-from-rhel-centos-with-appstream-rhscl-epel-ius/

  • AppStream (CentOS8, RedHat8)
  • Red Hat Software Collection (RHEL6以降)
  • EPEL
  • IUS

AppStream RHEL リリース5年目まで最新バージョンが提供され、それ以降は特定のストリームだけがサポート対象になる。

Red Hat Software Collections 同じバージョンが10年間サポートされる

EPEL Fedoraに含まれているパッケージを利用できる RHEL同等のサポート、CVEを受けられるわけではない。

$ sudo yum install epel-release

IUS(Inline with Upstream Stable) 標準パッケージより新しいパッケージが利用できる。

$ sudo yum install https://repo.ius.io/ius-release-el7.rpm \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

その他エラー対処

remi GPG 関連のエラー

エラー内容

Failed to download metadata for repo 'remi-modular': repomd.xml GPG signature verification error: gpgme_engine_check_version() error: Invalid crypto engine

remi、epelのパッケージを再インストールしてみる remiのパッケージはインストール対象によってURLが変化するので都度確認すること

RPM

基本的な使い方

パッケージをインストールする

rpm -ivh パッケージファイル名

パッケージを更新する

rpm -Uvh パッケージファイル名

パッケージをアンインストールする

rpm -evh パッケージ名

基本オプション

短いオプション 長いオプション 機能
-i --install パッケージをインストールする
-U --upgrade パッケージをアップグレードする(「--install」と同じオプションが使用可能)
-F --freshen 以前のバージョンがインストールされているときのみパッケージをアップグレードする
-e --erase パッケージをアンインストール(削除)する
-q --query 問い合わせ(パッケージ情報の表示と検索)
-V --verify パッケージを検査する

共通オプション

-i、-U、-q といった基本オプションと同時に使用可能

短いオプション 機能
-v 情報表示を増やす
-vv -v よりも詳細な情報を表示する(デバッグ用)
--quiet 情報表示を減らす(エラーメッセージのみになる)

インストール/更新/削除時に使用できる共通オプション

短いオプション 長いオプション 機能
-h --hash インストール時の進捗を「#」マークで表示する
--test 実際のインストールなどは行わず、テストのみ行う
--nodeps パッケージの依存関係を検証しない

その他オプション

短いオプション 長いオプション 機能
-a --all インストールされているパッケージを一覧表示する
-i パッケージの情報を表示する
--provides パッケージが提供する機能を表示する
-R --requires 依存しているファイル名を表示する
--changelog パッケージの更新情報を表示する
-l --list パッケージに含まれるファイルを表示する
-c --configfiles 設定ファイルのみを表示する(「-l」を指定したものと見なす)
-d --docfiles 文書ファイルのみを表示する(「-l」を指定したものと見なす)
-f ファイル名 --file ファイル名 指定したファイルがどのパッケージからインストールされたのかを表示する(フィールドあるいはフルパスで指定)
-p パッケージ名ではなく、RPMパッケージファイルを指定して問い合わせる

RPMパッケージをそのままダウンロードする

yumdownloader --resolve --destdir ディレクトリパス パッケージ名

書き込みテスト

Markdown での書き込み例。 一部対応していない記法もありそう?

h1

h2

h3

h4

h5
h6

italic *
italic _
strong **
strong __
erase

h1

h2

  • list
  • list
    • list(nest1)
    • list(nest1)
      • list(nest2)
      • list(nest2)
        • list(nest3)

リストの後は文章などを入れないと番号付きリストにならない。

  1. list
  2. list
  3. list(nest1)
    1. list(nest2)
    2. list(nest2)
    3. list(nest3)

はてなブログ
はてなブログ(ツールチップ付)

URLの変数化 はてなブログ

引用

脚注[^1] [^1] 明細

# source code
print("this is python source code")

this is inline code

テーブルのヘッダはデザインによって見えづらくなりそう

項目
item name 100