不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

LinuCレベル1取得に向け勉強中:第4章

2020-09-29 23:54:50 | LinuC
LinuCレベル1取得に向けた勉強の続き。
今日は、4章「リポジトリとパッケージ管理」を実践。

 

パッケージ管理形式

パッケージ管理形式
deb形式rpm形式
ディストリビューション
Debian,UbuntuなどRed Hat Enterprise, Fedora, CentOSなど
ファイルの拡張子
〜.deb〜.rpm
主にローカルファイル/パッケージを扱うコマンド
dpkg, dpkg-reconfigurerpm
主にリポジトリを利用するコマンド
apt, apt-getなどyum
リポジトリ利用の設定ファイル
/etc/apt/sources.list/etc/yum.conf, /etc/yum.repos.d/*


コマンド

1. Debian系

リポジトリを利用するコマンド

  • apt-get サブコマンド [パッケージ名]:debパッケージをリポジトリからインストール
    install:パッケージのインストール
    update:パッケージ情報の更新
    upgrade:パッケージの更新
    dist-upgrade:必要に応じて、パッケージの削除も含めシステム全体を更新
    remove:設定等を残してパッケージを削除
    purge:完全にパッケージを削除
  • apt-cache サブコマンド [パッケージ名]:debパッケージをリポジトリから検索・参照
    search:パッケージの検索
    show:パッケージ情報の表示
  • apt サブコマンド [パッケージ名]:debパッケージをリポジトリから操作
    install:パッケージのインストール
    update:パッケージ情報の更新
    upgrade:パッケージの更新
    full-upgrade:必要に応じて、パッケージの削除も含めシステム全体を更新
    remove:設定等を残してパッケージを削除
    search:パッケージの検索
    show:パッケージ情報の表示
    list:パッケージの一覧を表示。--upgradableオプションで更新対象のパッケージ一覧を表示
  • apt-file サブコマンド [パッケージ名]:指定されたファイル名を含むdebパッケージをリポジトリから操作
    search:パッケージの検索
    update:apt-file用の検索データベースを更新

パッケージ管理システムを利用するコマンド

  • dpkg オプション [パッケージ名/ファイル名]:deb形式のパッケージを管理
    -i(--install):インストール
    -r(--remove):アンインストール
    -P(--purge):設定ファイルも含めてアンインストール
    -l(--list):インストール済みパッケージの検索
    -L(--listfiles):インストールされたファイルの一覧表示
    -s(--status):パッケージ情報の表示
    -S(--search):ファイルのインストール元パッケージの検索
  • dpkg-reconfigure [オプション] パッケージ名:インストール済みのdebパッケージの再設定

2. Red Hat系

リポジトリを利用するコマンド

  • yum [オプション] サブコマンド パッケージ名:リポジトリ経由でRPMパッケージを操作
    install:パッケージのインストール/アップグレード
    check-update:更新パッケージの有無をチェック
    update:パッケージのアップグレード
    search:パッケージの検索
    info:パッケージ情報の表示
    list:パッケージの一覧を表示
    repolist:リポジトリ情報の一覧を表示
    deplist:依存するパッケージの一覧を表示
    groupinstall:パッケージグループによるインストール
    grouplist:パッケージグループの一覧を表示
    localinstall:ローカルRPMファイルのインストール
  • yumdownloader [オプション] パッケージ名:指定されたパッケージをリポジトリからダウンロード
    --resolve:依存関係にあるパッケージもダウンロードする

パッケージ管理システムを利用するコマンド

  • rpm [オプション] [パッケージ名/ファイル名]:RPMパッケージの管理
    • 1つめに指定するオプション
      -i(--install):インストール
      -U(--upgrade):アップグレード。インストールされていないパッケージの場合はインストール。
      -F(--freshen):アップグレード。インストールされていないパッケージの場合でもインストールしない。
      -e(--erase):アンインストール
      -q(--query):パッケージの検索
    • -i,-U,-F,-eと併用する主なオプション
      -v:詳細情報の表示
      -h(--hash):「#」で進行状況を表示(-eでは指定できない)
      --nodeps:依存関係を無視する
    • -qと併用する主なオプション
      -a(--all):インストール済みのすべてのパッケージを表示
      -i(--info):パッケージ情報の表示
      -l(--list):インストールされたファイルの一覧表示
      -f(--file):ファイルのインストール元パッケージの検索
      -p(--package):パッケージファイルを指定して検索
      --changelog:更新履歴を表示

LinuCレベル1取得に向け勉強中:第3章

2020-09-27 22:38:00 | LinuC
LinuCレベル1取得に向けた勉強の続き。
今日は、3章「GNUとUnixのコマンド」を実践。

 

コマンド

  • pwd:カレントディレクトリを絶対パスで表示
  • cd ディレクトリ名:カレントディレクトリを変更
  • echo [オプション] 文字列:指定した文字列を出力
  • export 変数名[=値]:指定したシェル変数を環境変数としてエクスポートする
  • declare [オプション] 変数名[=値]:変数を定義/定義内容を表示/定義内容を修正する
  • set [オプション]:シェル変数や環境変数をまとめて一覧表示
  • env [オプション] [環境変数名=値 コマンド]:定義済みの環境変数と値を一覧表示
  • unset 変数名:定義済みの変数を削除する
  • history [オプション] [履歴数]:コマンド履歴を表示
  • man [オプション] [セクション] キーワード:オンラインマニュアルを表示
  • whatis:指定したキーワードでマニュアルを検索(完全一致)
  • cat [オプション] [ファイル]:指定したファイルの内容を表示、ファイルの結合
  • nl [オプション] [ファイル]:指定したファイルの内容を、行番号を付けて表示
  • less [オプション] [ファイル]:指定したファイルの内容を1画面ずつ表示
  • head [オプション] ファイル:指定したファイルの先頭部分を表示
  • tail [オプション] ファイル:指定したファイルの末尾部分を表示
  • fmt [オプション] ファイル:指定したファイルを段落に整形して表示
  • pr [オプション] ファイル:指定したファイルを印刷用に整形。
  • cut [オプション] ファイル:ファイル内の各行から指定した列のみを表示
  • paste [オプション] ファイル1 ファイル2:ファイルを行単位で結合して表示
  • join [オプション] ファイル1 ファイル2:指定した2つのファイルの中から、共通の列に基づき結合する
  • sort [オプション] ファイル:ファイル内容を並べ替えて表示
  • uniq [オプション] ファイル:(隣り合った)重複している行を排除して表示
  • wc [オプション] ファイル:ファイル内の行数、単語数、文字数をカウントして表示
  • od [オプション] ファイル:ファイルを8進数や他の形式で表示
  • tr [オプション] 文字1 [文字2]:文字の置換・削除
  • split [オプション] ファイル [分割後の名前]:指定したファイルを分割
  • tee [オプション] [ファイル]:標準入力の内容を標準出力とファイル両方に送る
  • grep [オプション] キーワード ファイル:指定したファイルから、キーワードが書かれている行のみを抽出して表示
  • egrep [オプション] キーワード ファイル:指定したファイルから、キーワードが書かれている行のみを抽出して表示(拡張正規表現)
  • fgrep [オプション] キーワード ファイル:指定したファイルから、キーワードが書かれている行のみを抽出して表示(正規表現を使用できない)
  • sed [オプション] 's/検索文字列/置換後の文字列/' ファイル(置換):文字列の編集(置換)を実行
  • sed [オプション] '/削除する文字列/d' ファイル(削除):文字列の編集(削除)を実行
  • vi [オプション] ファイル:viによるテキストファイルの編集
    i,a,o:入力モードに切り替え(そのまま,1文字右,改行)
    :wq:ファイルを保存して終了
    :q!:ファイルを保存せず終了
    :w [ファイル名]:ファイル名を指定して保存
    :e [ファイル名]:ファイルを読み込み直す(リロード)
    h,j,k,l:左、下、上、右に移動
    gg,:1:ファイルの先頭に移動(コマンドモード、ラストラインモード)
    nG,:n:指定した行に移動(nは行数)
    G,:$:ファイルの末尾に移動
    y:コピー(yyで行コピー)
    x:カーソル位置の文字を削除
    d:削除(ddで行削除)。dで削除したものはペースト可能。
    p:貼り付け
    c:置換(削除して入力モードに移行)
    /文字列:下方向に指定した文字列を検索
    ?文字列:上方向に指定した文字列を検索
    n,N:下、上方向に続けて検索
  • emacs [ファイル]:emacsによるテキストファイルの編集
  • nano [ファイル]:nanoによるテキストファイルの編集
  • expand [オプション] ファイル:タブをスペースに変換
  • unexpand [オプション] ファイル:行頭にある、2つ以上連続したスペースもしくはタブをタブに変換

変数

  • LANG:利用している言語、文字コード(ロケール情報)
  • PATH:コマンドの実行ファイルの格納先
  • PS1:プロンプトに表示する内容
  • SHELL:現在利用しているシェル
  • HISTSIZE:シェル上での履歴の最大数
  • HISTFILESIZE:.bash_historyに記録する数

bashシェルのキー操作

  • Ctrl+c:処理の停止
  • Ctrl+z:処理の一時停止
  • Ctrl+a:カーソルを行頭に移動
  • Ctrl+e:カーソルを行末に移動
  • Ctrl+s:画面への出力を停止
  • Ctrl+q:画面への出力を再開
  • Ctrl+r:コマンド履歴の後方検索
  • Ctrl+l:画面のクリア

LinuCレベル1取得に向け勉強中:基礎編、第1章、第2章

2020-09-26 22:28:18 | LinuC
LinuCレベル1取得に向け、以下の本で勉強しているので、日記代わりにメモを残そうと思う。

 
そもそも、これまでUbuntu上のVirtual BoxでCentOSやDebianなど色々環境を整えようとしていたのは、LinuCの勉強を始めようとしていたからであるが、
その矢先から、様々なトラブル(正常起動できない、メモリの故障)に見舞われてなかなか勉強が進まない!(半分言い訳)。

そして現在も、何とかだましだまし使えてはいるが、
まだ、まともに起動しない。
今日はKernel Panicが発生した。
その他にも、よくわからないが、ログイン画面でループし続ける謎のエラーが発生するので、その度にCtrl+Alt+F2などで一旦コンソールモードにしてから、
もう一度Ctrl+Alt+F1でGUIのログイン画面に戻ると、今度はちゃんと正常にログインできる。

ちなみに上記の本での推奨動作環境は、
WindowsやMac上のVirtual Boxであるから、
あんまりUbuntuとVirtual Boxって相性悪いのかな?
それとも古いPCだからスペックが足りないのか?

いずれKVMを使った環境にもチャレンジしてみよう。
ただ、KVMって仮想化支援機能が必須みたいだから、
今のPCがちゃんと対応していないと使えないかも。

そういう状態の中、なんとか上記の本の2章までは、読み終えた。

1章は、「Linuxのインストールと仮想マシン・コンテナの利用」というタイトルだが、いきなりSSHによる公開鍵ペアを利用したLinuxホストへの接続など出てきて、初心者には結構難しい内容じゃないのかな。
Virtual Box上のCentOSからDebianに接続する例が載っていて、
DVDに入っているイメージをインポートしたそのままの最初の環境だったときは、書いてあるとおりに実行すれば繋がっていたが、ちょっと設定をいじった後に再度実行したら繋がらなくなった。
おそらくVirtual Boxのネットワーク設定をいじったことが原因で、ブリッジアダプターを選択しておかなければならないらしい。

まぁ、とりあえず、わからないなりに、
Virtual Box上のCentOSからDebianへの接続、
実機UbuntuからVirtual Box上のCentOSやDebianへの接続、
はできたから良しとしよう。
ただ、Virtual Box上のCentOSから実機Ubuntuへの接続ができないのは、
ホスト側となるUbuntuの設定がまだできていないからなのかな?

他の項目に関しても1章は全体的に割と難しい内容の気がするな。

多分、ここで理解できなくても、最後まで本を読み終えた頃には、この辺りの内容もすんなり理解できるようになっているのかな?

2章は、「ファイルとディレクトリの操作と管理」でわかりやすい内容だった。
Linuxに特有のパーミッションやらリンクのことが少し理解できた。
本書は兎に角、手を動かして覚えるタイプの教本なので、ひたすらコマンドを打ち込んで、実際に挙動をみながら理解していくのがいいだろう。

ただ、望むらくは、章ごとのまとめとして、その章で扱ったコマンドの一覧があったら良かったのにな。
ということで、自分でまとめておこう。

  • ls [オプション] [ディレクトリ/ファイル]:ディレクトリの内容を参照
  • touch [オプション] ファイル:ファイルのタイムスタンプを更新/空のファイルを作成
  • cp [オプション] ファイル1ファイル2/ディレクトリ:ファイルのコピー
  • mv [オプション] ファイル1 ファイル2/ディレクトリ:ファイルの移動/名前の変更
  • rm [オプション] ファイル:ファイルの削除
  • mkdir [オプション] ディレクトリ:ディレクトリの作成
  • rmdir [オプション] ディレクトリ:ディレクトリの削除
  • tar [オプション] ファイル:ファイルのアーカイブ/展開
    cf) gzip, bzip2, xz:圧縮コマンド
  • dd [オプション] if=出力元 of=出力先 [bs=サイズ count=数]:ddによるアーカイブ処理
  • file [オプション] ファイル:ファイルの種類を特定
  • chmod [オプション] モード ファイル/ディレクトリ:パーミッションの変更
  • chown [オプション] 所有者[:所有グループ] ファイル/ディレクトリ:所有者を変更
  • chgrp [オプション] 所有グループ ファイル/ディレクトリ:所有グループを変更
  • umask [オプション] [マスク値]:マスク値を確認/設定
  • ln [オプション] リンク元 リンク:リンクを作成。-sでシンボリックリンク
  • file [検索ディレクトリ] [オプション] [条件式] [アクション]:多様な条件でファイルを検索
  • xargs [オプション] コマンド:標準入力に送られてきた対象に対して、コマンドを実行
  • locate [オプション] 名前:ファイル名データベースに基づいてファイルを検索
  • which [オプション] 名前:$PATHに登録されているディレクトリからコマンドの実行ファイルを検索
  • type [オプション] 名前:指定した名前の種別(コマンド、エイリアスなど)とパスを表示


Ubuntuが起動しなくなったので、grubを再インストール

2020-09-22 15:54:21 | Ubuntu
昨日の試行錯誤の中で、今まで使っていたメインのUbuntuとは別に、
デュアルブート体制でインストールしたUbuntuのパーティションを削除したら、
grub secure>
が出て、OSを起動できなくなった。

以下のサイトを参考に修正したら、直った。


結局、boot-repairはうまく使えなかったな。