20210608のLinuxに関する記事は8件です。

fhコマンドで、効率的に複数台のLinuxサーバの構築・テスト・管理をする

fhコマンド作りました。 Python Fabricを真似て、リモートのサーバに対してデプロイするツールを、bashで作っています。 簡単なオプションで、リモートサーバに対して、コマンドを実行したり、シェルスクリプトを実行したりできます。 複数台のLinuxサーバを効率に設定したり、テストしたりできます。 GitHubで公開しています。 https://github.com/kuritaka/fasthandle2 https://github.com/kuritaka/fasthandle2-samples fhコマンドの利用例 色々な作業を自動化しましょう。 リリースの作業を事前に準備しておき、リリースでは数行実行すればいいだけにする。 サーバ台数が多い定期再起動を自動化する 何度も行う疎通確認を自動化する。結果判定も自動化する クラスターの起動し、ちゃんと起動したことを確認できるようにする fhコマンドの特徴 学習コストが低い(シンプル) シンプルなオプションを心がけています。 「fh -h」を見れば、使い方がほぼ分かるようにしています。 fhコマンドは、簡単で、すぐに使えます。 事前学習や事前準備が、ほとんどいらないような使い方ができるので、 ちょっとだけ通信の確認に使ってみようかなという使い方ができます。 今回のリリースだけ使ってみようかなという使い方ができます。 環境依存が低い シェルスクリプトなので、環境依存が低いです。 コードをコピペするだけで、どこでも動きます。 10年後もずっと使えるはずです。 自力でトラブル解決がしやすい 実行するのは、シェルスクリプトなので、問題発生時に、なぜうまく動かなかったか調査しやすいです。 fhコマンド自身もシェルスクリプトで、問題発生時に修正もしやすいです。 学習に応用がきく fhコマンドは、シェルスクリプトを実行するだけということは、シェルスクリプトを書けるようになることは必要です。 バックアップやアラートやその他自動化するために、シェルスクリプトを自由自在に書ける力がエンジニアには必要ですので、強くなりましょう。 操作例 コマンド実行 fh -H host1 -c hostname #host1に対して、hostnameコマンドを実行 fh -H host1,host2 -c hostname #host1とhost2に対して、hostnameコマンドを実行 fh -H hostlist -c hostname #hostlistに記載されているホストに対して、hostnameコマンド実行コマンド実行 fh -H host1 -s -c whoami #host1に対して、sudoで、whoamiコマンドを実行 fh -H host1,host2 -s --vi FILE #host1、host2に対して、sudo vi でファイル編集 fh -H hostlist --ping #hostlistに記載のホストに対して、pingの疎通確認を実行 シェル実行 fh -H host1 -f test.sh #host1に対して、test.shシェルを実行 fh -H host1 -f test.sh:cmd_whoami #host1に対して、test.shシェルを実行。cmd_whoamiが引数。 ヘルプ 実際の使い方は、ヘルプを参照しながら使えてください。 $ fh -h Usage: fh [options] Options: -h, --help show this help message and exit --version show program's version number and exit -v, --verbose verbose mode -d, --debug debug mode -H HOST1[,HOST2], --hosts=HOST1[,HOST2], -H HOSTLISTFILE, --hosts=HOSTLISTFILE comma-separated list of hosts or <HOSTLISTFILE> to operate on -o OUTPUTFILE, --output=OUTPUTFILE Write output to bouth stdout and <OUTPUTFILE> -s, --sudo Execute command or shellscript with sudo -- COMMAND, -c COMMAND, --command=COMMAND Execute COMMAND -f SHELLSCRIPT, --file=SHELLSCRIPT, -f SHELLSCRIPT1 SHELLSCRIPT2 Execute ShellScript --ping check ping test --login login remote host --vi FILE, --vi=FILE edit the remote file --scp LOCLA_FILE REMOTE_DIR transport file with scp Connection Options: control as whom and how to connect to hosts -u USER, --user=USER username to use when connecting to remote hosts -p, --password, -p PASSWORD, --password=PASSWORD ssh password If you do not specify a password, an input field will appear. -i PRIVATEKEY SSH private key file. -P PORT, --port=PORT Port to connect to on the remote host. Usage: Execute Commnad in Local Host: fh -c uname -n fh -c 'uname -n; whoami' fh -c 'echo \$(uname -n)-------; whoami' fh -c whoami fh -c 'sudo whoami' fh -s -c whoami Execute ShellScript in Local Host: fh -f test.sh fh -f test.sh:cmd_whoami,uname_n fh -f test.sh:cmd_whoami,uname_n test2.sh:arg1,arg2 fh -o outputfile -c uname -n Execute Command in Remote Host: fh -H host1 -c uname -n fh -H host1 -s -c whoami fh -H host1 -c sudo whoami fh -H host1 -c 'uname -n; whoami' fh -H host1 -c 'sudo uname -n; sudo whoami' fh -H host1 -s -c 'uname -n; whoami' fh -H host1 -c 'echo \$(uname -n)--------; whoami' fh -H host1 -s -c 'echo \$(uname -n)--------; whoami' fh -H host1,host2 -c uname -n fh -H host1,host2 -s -c uname -n Execute ShellScript in Remote Host: fh -H host1 -f test.sh:cmd_whoami fh -H host1 -s -f test.sh:cmd_whoami fh -H host1,host2 -f test.sh fh -H hostlist -f test.sh:cmd_whoami fh -H host1 -o outputfile -c uname -n Others fh -H host1 --ping fh -H host1 --login fh -H host1 --vi FILE fh -H host1 -s --vi FILE #-s = with sudo fh -H host1 --scp LOCAL_FILE REMOTEDIR
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSLを使ってPythonの環境構築をする方法を簡単に解説

はじめに 環境を汚したくなかったので仮想環境でpythonを動かせるようにしました。 このトピックは多くの方が既に書かれていますが、私の環境下では検索上位の記事通りにやっても少しうまくいかなかったので、備忘録的な意味で記事にしています。 環境 Windows10 education 64bit 手順 WSLの有効化 1. "Windowsの機能の有効化または無効化"を開く 左下の検索窓に機能て打てば出てきます。 2. "Linux用Windowsサブシステム"にチェックを入れる チェックを入れてください。 そんな項目ないよって人は"Windows Subsystem for Linux"になってるかもしれないです。 チェックを入れてOKを押すと必要なもののインストールが始まります。 インストールが終わったら再起動しましょう。 Ubuntuの導入とセットアップ 1. Ubuntuのインストール Microsoft storeにてubuntuと検索します。 何個かでてきますが今回は"Ubuntu 18.04 LTS"をインストールします。20.04の方でも別に大丈夫です。(多分) 2. Ubuntuを起動 インストールできたら起動してください。 起動すると最初に色々インストールがされた後、ユーザー名とパスワードを設定するように言われるので従います。 3. パッケージの更新 以下のコマンドを実行し、パッケージを更新します。 ちなみに$マークは入力開始の目印なので、コピペするときは外してください。 $ sudo apt update $ sudo apt upgrade -y Pythonの導入 1. pyenvを入れる pyenvとはpythonのバージョン管理ツールです。 世界的にはvirtualenvの方がよく使われているらしいですが気にしません。(参考:pyenvが必要かどうかフローチャート) そもそも趣味レベルにおいてバージョンの切り替えなんて基本しないので、必要ない気もするんですが、初心者向けの本やサイトを見ると何故か入れさせたがるので、まぁ一応入れることにします。 まずビルド環境を整えます。Suggested build environmentに従い、以下のコマンドを実行します。 改行されてますが一行扱いなのでまとめてコピーして貼り付けてください。 sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev 途中で続行するか聞かれるので、yを押して続行しましょう。 次にgitをインストールします。 pyenvはパッケージでは提供されていないので、githubから取ってくる必要があります。以下のコマンドを実行してgitが使えるようにしましょう。 $ sudo apt-get install git 最後にpyenvをインストールします。 $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv 2. pyenvの設定 必要な設定を~/.profileに追加します。~/.bashrcに記述する派の人もいますが、私にはいまいち違いが分かりません 以下のコマンドを実行します。 $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile $ echo 'eval "$(pyenv init --path)"' >> ~/.profile 設定が追加できたら、以下のコマンドを実行して読み込みましょう。 $ source ~/.profile 以下のコマンドを実行して、インストール可能なバージョンの一覧が表示されればOKです。 $ pyenv install -list 3. Pythonのインストール 今回はPython 3.9.5を入れます。 $ pyenv install 3.9.5 続いて、今インストールした3.9.5に切り替えます。 $ pyenv global 3.9.5 下記のコマンドを実行して切り替わって入ればOKです。 $ python -V おまけ よく使うライブラリの導入 1. pipのインストール pipはpythonのパッケージを管理するツールです。 pythonを導入すると一緒についてくるので、今回はわざわざ何かする必要はありません。 下記のコマンドでバージョンが確認できます。 $ pip -V もし入っていない場合は下記のコマンドを実行してください。 $ sudo apt-get install python3-pip 2. ライブラリの導入 今回は私がよく使っているnumpy,pandas,matplotlibを入れます。 $ pip install numpy $ pip install pandas $ pip install matplotlib 終わりに 少しでも参考になれば幸いです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSLを使ってPythonの環境構築する方法を簡単に解説

はじめに 環境を汚したくなかったので仮想環境でpythonを動かせるようにしました。 このトピックは多くの方が既に書かれていますが、私の環境下では検索上位の記事通りにやっても少しうまくいかなかったので、備忘録的な意味で記事にしています。 環境 Windows10 education 64bit 手順 WSLの有効化 1. "Windowsの機能の有効化または無効化"を開く 左下の検索窓に機能て打てば出てきます。 2. "Linux用Windowsサブシステム"にチェックを入れる チェックを入れてください。 そんな項目ないよって人は"Windows Subsystem for Linux"になってるかもしれないです。 チェックを入れてOKを押すと必要なもののインストールが始まります。 インストールが終わったら再起動しましょう。 Ubuntuの導入とセットアップ 1. Ubuntuのインストール Microsoft storeにてubuntuと検索します。 何個かでてきますが今回は"Ubuntu 18.04 LTS"をインストールします。20.04の方でも別に大丈夫です。(多分) 2. Ubuntuを起動 インストールできたら起動してください。 起動すると最初に色々インストールがされた後、ユーザー名とパスワードを設定するように言われるので従います。 3. パッケージの更新 以下のコマンドを実行し、パッケージを更新します。 ちなみに$マークは入力開始の目印なので、コピペするときは外してください。 $ sudo apt update $ sudo apt upgrade -y Pythonの導入 1. pyenvを入れる pyenvとはpythonのバージョン管理ツールです。 世界的にはvirtualenvの方がよく使われているらしいですが気にしません。(参考:pyenvが必要かどうかフローチャート) そもそも趣味レベルにおいてバージョンの切り替えなんて基本しないので、必要ない気もするんですが、初心者向けの本やサイトを見ると何故か入れさせたがるので、まぁ一応入れることにします。 まずビルド環境を整えます。Suggested build environmentに従い、以下のコマンドを実行します。 改行されてますが一行扱いなのでまとめてコピーして貼り付けてください。 sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev 途中で続行するか聞かれるので、yを押して続行しましょう。 次にgitをインストールします。 pyenvはパッケージでは提供されていないので、githubから取ってくる必要があります。以下のコマンドを実行してgitが使えるようにしましょう。 $ sudo apt-get install git 最後にpyenvをインストールします。 $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv 2. pyenvの設定 必要な設定を~/.profileに追加します。~/.bashrcに記述する派の人もいますが、私にはいまいち違いが分かりません 以下のコマンドを実行します。 $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile $ echo 'eval "$(pyenv init --path)"' >> ~/.profile 設定が追加できたら、以下のコマンドを実行して読み込みましょう。 $ source ~/.profile 以下のコマンドを実行して、インストール可能なバージョンの一覧が表示されればOKです。 $ pyenv install -list 3. Pythonのインストール 今回はPython 3.9.5を入れます。 $ pyenv install 3.9.5 続いて、今インストールした3.9.5に切り替えます。 $ pyenv global 3.9.5 下記のコマンドを実行して切り替わって入ればOKです。 $ python -V おまけ よく使うライブラリの導入 1. pipのインストール pipはpythonのパッケージを管理するツールです。 pythonを導入すると一緒についてくるので、今回はわざわざ何かする必要はありません。 下記のコマンドでバージョンが確認できます。 $ pip -V もし入っていない場合は下記のコマンドを実行してください。 $ sudo apt-get install python3-pip 2. ライブラリの導入 今回は私がよく使っているnumpy,pandas,matplotlibを入れます。 $ pip install numpy $ pip install pandas $ pip install matplotlib 終わりに 少しでも参考になれば幸いです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ラズパイにインストールしたGravioのアップデート(再)

Gravio 4.3が出たのでラズパイにインストールしてあったGravioをアップデートした。 Gravio 4.2まではスクリプトベースだったのですが、今回からパッケージバージョンになったのでちょっと手順が複雑です。今後はパッケージでインストールされる Update Manager経由でもアップデートできるようになりますので、そのためのおまじないですね。 手順は以下のサイトのとおりです。 まずはいつものおまじない。 ubuntu@gravio-rpi4:~$ sudo apt update ubuntu@gravio-rpi4:~$ sudo apt upgrade HubKitを停止します。 ubuntu@gravio-rpi4:~$ cd hubkit/ ubuntu@gravio-rpi4:~/hubkit$ sudo docker-compose down Stopping coordinator-gravio-1 ... done Stopping hubkit-acm-1 ... done Stopping hubkit-bltm-1 ... done Stopping hubkit-com-1 ... done Stopping hubkit-trim-1 ... done Stopping hubkit-ivm-1 ... done Stopping hubkit-vim-1 ... done Stopping hubkit-mqtm-1 ... done Stopping coordinator-gravio-redis-1 ... done Stopping hubkit-sem-1 ... done Removing coordinator-gravio-1 ... done Removing hubkit-acm-1 ... done Removing hubkit-bltm-1 ... done Removing hubkit-com-1 ... done Removing hubkit-trim-1 ... done Removing hubkit-ivm-1 ... done Removing hubkit-vim-1 ... done Removing hubkit-mqtm-1 ... done Removing coordinator-gravio-redis-1 ... done Removing hubkit-sem-1 ... done ubuntu@gravio-rpi4:~/hubkit$ 既存のgravioユーザーのホームフォルダを削除。 ubuntu@gravio-rpi4:~/hubkit$ sudo rm -rf /home/gravio ダウンロードしてあるパッケージをコピーしてインストール。 ubuntu@gravio-rpi4:~/hubkit$ cd ubuntu@gravio-rpi4:~$ sudo apt install -y ././setup_gravio_4.3.1324-1_arm64.deb https:/<hostname>.local:8080 、ここでは http://gravio-rpi4.local:8080 でUpdate Managerにアクセスしてみます。 Dockerからダウンロード中ですね。 ダウンロードが終わるとログイン画面が表示されます。 ここで古いデータを移行します。 ubuntu@gravio-rpi4:~$ cd /home/gravio ubuntu@gravio-rpi4:/home/gravio$ sudo mv hubkitrepo4 hubkitrepo4_bak ubuntu@gravio-rpi4:/home/gravio$ sudo mv /home/ubuntu/hubkit/hubkitrepo4 . ubuntu@gravio-rpi4:/home/gravio$ sudo chown -R gravio:gravio hubkitrepo4 再起動します。 ubuntu@gravio-rpi4:/home/gravio$ sudo reboot 起動してきたら Update Managerに gravioユーザーでログインします。パスワードも gravio。ログインするとパスワードの変更を求められますので、適当に設定します。 ログインできたら完了です。 Studioからもアクセスしてみて無事バージョンアップされてました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

docker-composeのcomposeファイルの書き方【LAMP環境構築ベース】

Docker-composeを使って、PHPとMySQLを動かすために、LAMP環境を作成したので、そのcomposeファイルを元にdocker-composeの概要をまとめてみました。 Docker-composeとは Docker-composeとは、複数のコンテナをつなげて管理することのできるツールです。 Docker-composeを使うことで、簡単にコンテナ間の通信を行うこともできます。 Dockerイメージの作成方法やコンテナ起動時の設定などを「docker-compose.yml」に記述することで、「docker compose」コマンドでまとめて操作できるようになります。 Docker-composeは設定を全てyml形式で記述します。 そのファイルをcomposeファイルといい、ここでdocker fileでイメージをビルドして、コンテナを立ち上げる事ができます。 また、環境関数を使うことも可能です。 今回はこのdokcer-composeを使って、 mysqlとphp-apache、phpmyadminのコンテナを作り、LAMP環境を作成します。 composeファイルについて docker-compose.yml version: "3.7" services: mysql: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: "password" phpmyadmin: depends_on: - mysql image: phpmyadmin/phpmyadmin environment: PMA_HOST: mysql restart: always ports: - "8080:80" php-apache: build: ./php volumes: - ./htdocs:/var/www/html restart: always ports: - "80:80" depends_on: - mysql volumes: db_data: {} 上記のcomposeファイルを例に書き方の説明をします。 version 使用するDocker-composeバージョンを定義する記述です。 現在(2021年5月)は3系が最新のバージョンになります。 バージョンによって、Composeファイルの書き方変わります。 ここでは「3.7」を設定します。 services(サービス) 「サービス」は起動するコンテナーの設定の定義のことです。 ここに各コンテナーと、その設定を記述します。 サービスには名前をつけて複数定義可能で、各サービス間での通信を定義できます。 サービス名 サービスはservicesに定義する各サービスの名前です。 任意で決めることができます。 ここではmysqlとphpmyadmin、php-apacheの3つのサービスを定義します。 このサービスごとにコンテナが起動します。 image(イメージ) イメージはDockerのコンテナーの元になるものです。 もし指定したイメージがなければbuildするときにインストールされます。 ここではmysqlとphpmyadminでそれぞれ、「mysql:5.7」と「phpmyadmin/phpmyadmin」のイメージを使用します。 volumes(ボリューム) ボリュームにはマウントする設定ファイルのパスを指定します。 マウントとは簡単に言うとディレクトリを同期する事です。 restart コンテナの起動に失敗したときの再起動の設定。何もしない場合は「no」を設定。 再起動する場合は「always」を設定する。 environment 環境変数を指定します。 Mysqlのパスワードやデータベース名前などを指定し、ここで設定した環境変数名は実際のプログラムでも使います。 build Dockerファイルを使用してimageを作成するときに、使用するDockerファイルを指定します。 ここで作成したimageを使用してサービスのコンテナを立ち上げます。 ports ポートの設定を設定します。 depends_on ほかのサービスとの依存関係を設定します。 「compose up」と「compose down」したときに指定したサービスが先に起動/終了するようになります。 docker-compose.yml version: "3.7" services: mysql: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: "password" phpmyadmin: depends_on: - mysql image: phpmyadmin/phpmyadmin environment: PMA_HOST: mysql restart: always ports: - "8080:80" php-apache: build: ./php volumes: - ./htdocs:/var/www/html restart: always ports: - "80:80" depends_on: - mysql 「Docker-compose」コマンド一覧 コマンドの説明に関しては、こちらのサイトがわかりやすかったので、説明を引用をしています。 引用元のサイト docker-compose build 「docker-compose build」コマンドは、サービス内のイメージに対してビルドを行います。 イメージがビルドされていないとコンテナを起動できないため、先にイメージのビルドを行います。 サービスのビルド # サービスをビルド $ docker-compose build # サービスをビルド(キャッシュを使わない) $ docker-compose build --no-cache # サービスを指定してビルド $ docker-compose build [サービス名] docker-compose up 「docker-compose up」コマンドは、サービス内のイメージからコンテナを作成して起動します。 すでにコンテナが作成されている場合は、イメージを読み込み直してコンテナを再起動させます。 「-d」オプションをつけることで、バックグラウンドでコンテナを起動させることも可能です。 コンテナの起動 # サービスからコンテナを作成し、起動 $ docker-compose up -d docker-compose logs 「docker-compose logs」コマンドは、コンテナの起動ログを出力します。 コンテナ起動ログを確認 # サービスの起動ログを出力 $ docker-compose logs docker-compose run 「docker-compose run」コマンドは、指定したサービスから新たなコンテナを作成し、コマンドを実行します。 そのため、このコマンドを実行した回数だけコンテナが増えていきます。 コンテナを増やしたくない場合は、「--rm」オプションをつけましょう。 コマンドの実行 docker-compose run --rm app rails db:create docker-compose exe 「docker-compose build」コマンドは、指定したサービスのコンテナにログインします。 コンテナにログイン # コンテナにログイン $ docker-compose exec app bash docker-compose stop 「docker-compose stop」コマンドは、サービス内のコンテナを停止します。 コンテナ停止 # サービスのコンテナを再起動 $ docker-compose restart Restarting docker_web_1 ... done Restarting docker_app_1 ... done Restarting docker_db_1 ... done # 指定したサービスのコンテナを再起動 $ docker-compose restart app Restarting docker_app_1 ... done docker-compose rm 「docker-compose rm」コマンドは、サービス内のコンテナを削除します。 コンテナの削除 # サービスのコンテナを削除 $ docker-compose rm Going to remove docker_web_1, docker_app_1, docker_db_1 Are you sure? [yN] y Removing docker_web_1 ... done Removing docker_app_1 ... done Removing docker_db_1 ... done # 指定したサービスのコンテナを削除 $ docker-compose rm app Going to remove docker_app_1 Are you sure? [yN] y Removing docker_app_1 ... done
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

サーバの暗号通信の設定についてのメモ

はじめに サーバでTLS通信するための簡単なメモ 安全な通信とは 以下の3要件を満たした通信のこと 盗聴されないこと(暗号化) 改ざんされないこと(改ざん検知・ハッシュ) 通信相手が偽物でないこと(認証) サーバ証明書によるサーバ認証 安全な通信を実現するためには TLSプロトコルを用いる。TLSを用いれば上記3要件を満たした安全な通信を実現できる。 TLSとは TLS対応環境 TLS1.3 最新バージョンのTLS1.3で全ての通信が行われるのが望ましい。ただし、上記TLS対応環境にあるように、未対応の環境も多く、接続できないクライアントが一定数存在してしまう 暗号スイートとは 安全な通信を実現する暗号(鍵交換、署名、暗号化、ハッシュ関数)の組み合わせ。TLS通信をする場合、この暗号スイートを決定する必要がある 鍵交換アルゴリズム・鍵認証方式・認証符号の組み合わせ TLSにおいてハンドシェイク時に暗号スイートが選択され、その選択された暗号スイートに記載の鍵交換、署名、暗号化、ハッシュ関数によりTLSにおける各種処理が行われる。 TLSは多くの暗号技術を組み合わせて実現している。ただし組み合わせが多く、よくわからない。そこで「TLS暗号設定ガイドライン」を参考にして設定する サーバの暗号通信に関わる設定 SSL/TLS暗号設定ガイドライン 「TLS暗号設定ガイドライン」は、TLSサーバの構築者や運営者が適切なセキュリティを考慮した暗号設定ができるようにするためのガイドライン 結局どれを設定すればよいのか 安全性もしくは相互接続性についての特段の要求がなければ「推奨セキュリティ型」の採用を推奨している 暗号スイート、サーバー設定 SSL/TLS暗号設定ガイドラインに暗号スイートの設定、各種サーバ設定が記載されているので参考にする
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RHEL8のマイナーバージョン固定について

Azure上のRHELのVMをマイナーバージョンに固定したいとEUSリポジトリを切り替える必要があります。詳しい手順には以下のリンクをご参照ください。 - RHEL VM 8.x を EUS に切り替える しかし、マイナーバージョンに固定できるRHEL のリリースはかぎられています。 RHEL8でEUSリポジトリリを使用できるリリースは、RHEL 8.1、8.2、8.4、8.6、および 8.8 で予定されています。 現在、EUSリポジトリを使用可能リリースはは以下の通りです。 リリース 日終了予定 8.1 2021年11月30日 8.2 2022年04月30日 8.4 2023年05月30日 上記のリストに入ってないリリースは、EUSリポジトリの設定を行っても固定できません。例えばRHEL 8.3の場合はバージョンロックはできません。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux基礎学習まとめ② viエディタの基本操作(カーソル移動、編集操作)

概要 Linuxには、viというエディタ(ページャ)が存在します。 viを用いることによって、様々なファイルを編集したり、シェルスクリプトなどのプログラミングを行うこともできます。 ここでは、よく使いそうなviの操作をメモしておきます。 操作としては、Escを押した際のコマンドモードを前提としています。 実行環境 macOS BigSur 11.4 CentOS7 (macOS上でLinux環境を構築する方法はこちらを参考にしました) 1. カーソル移動系 操作キー 動作 h ← j ↓ k ↑ l → gg ファイルの先頭に移動 G ファイルの末尾に移動 :n n行目に移動 2. 編集操作系(コピペ、検索、置換) 操作キー 動作 x 1文字削除 dd 1行削除 yy 1行コピー p カーソルの次にペースト P カーソルの前にペースト u 編集操作の取り消し /"string" 検索したい文字列("string")をハイライト、nで下方向、Nで上方向にカーソル移動 :[option]s/old/new/g[option] 基本的な置換の形。%で全体、nで行数指定、gの有無で全てかどうか等、様々なオプションの組み合わせで置換する 終わりに 上記にいくつかの操作をまとめましたが、全てを網羅できてはいません。 当たり前に使いすぎて気づいていないけど便利な操作などあれば教えていただきたいです。 参考文献 この記事は以下の情報を参考にして執筆しました。 - Linux標準教科書(ver.3.0.2)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む