20210609のLinuxに関する記事は9件です。

【MySQL】M1 mac linux ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)

自分でも驚くくらい凡ミスで悩んでいたためメモ。 mysqlを起動させようとスタートすると、エラー文字。 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) とりあえず、/tmpディレクトリ配下にmysql.sockを作成。 cd /tmp/ touch mysql.sock アクセス権限をオールクリア chmod 777 mysql.sock すると()の中が2から38に変わった。 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38) しかし、よく似た記事を発見。 その記事では、 mysql.server start を飛ばしていたとのこと。 自分のコマンドを見直すと、 mysql server.start になっていた。 mysqlでERROR 2002 (HY000)のエラーが出たら、 もしかしたらいつもと違うことをやっているだけの可能性がある ということを疑っても良いかもしれない。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ターミナル よく使う基本コマンド集

よく使うんだけど、ど忘れしちゃう。 そんなコマンドをまとめました。個人的に当たり前なものは省略! 現在のディレクトリのファイルを表示 $ ls [ディレクトリ名] #オプション ls -a *先頭にピリオドがあるファイルも表示する。 ex).env など ls -l *詳細確認できる。           ex)パーミッション確認・オーナー名など ls -1 *リストを縦に並べる。見やすい! 数字の1です ls --help *オプションの紹介してくれる! ディレクトリの作成・削除 rm -rfは取り返しつかないミスになり得るので注意。。 mkdir *作成 rm -r [ディレクトリ名] *ディレクトリとその中身を削除する rm -rf [ディレクトリ名]  *ディレクトリとその中身を警告なしで削除する rm -f  [ファイル名]   *ファイルを警告なしで削除する ファイルを表示 $ cat [ファイル名]    *ファイルの閲覧ができます。 #オプション cat -n        *行番号つけて表示。 Numberですね。 cat fileA > fileB *Aの内容をBに上書き記載。 cat fileA >> fileB *上書きではなく追加。 less [ファイル名] *1画面にまとめて表示。 ファイル名の変更・移動 mv 変更するファイル名 変更したいファイル名  mv 移動したいファイル名 移動後のディレクトリ ファイルのコピー cp hoge.html etc/ *hoge.htmlを相対パスでetc/というディレクトリの中にコピーする cp hoge.html hoge2.html *hoge.htmlをhoge2.htmlという名前でコピーする cp −r dir /etc/ #dirというディレクトリとその中身を絶対パスで/etc/にそっくりコピーする grep grep オプション 検索文字列 ディレクトリ名 #オプション grep -r #指定したディレクトリ以下をたどって検索する grep -i #大文字小文字を区別せずに検索する grep -l #検索した文字列が含まれているファイル名のみを表示する grep -n #検索した文字列が書いてある行番号を表示する。-lオプションと併用することはできない grep -e #複数の検索条件を指定する grep -v #パターンに一致しない行を表示する プロセス表示 ps aux #起動しているすべてのプロセスを表示する ps aux | grep hoge #上記のgrepコマンドと組み合わせて、psコマンドで検索したプロセスでhogeという文字が含まれるプロセスだけを表示する ps aux | grep hoge | grep -v grep #上記のコマンドで、grepコマンド以外のプロセスでhogeが含まれるプロセスだけを表示する 今後使うものは再度追加していく!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux基礎学習まとめ④ シェルスクリプトの基礎知識

概要 ”ファイルを圧縮して、名前を変更して、不要ファイルを削除して、そのコピーを作成する" みたいな繰り返し行われる処理の一連のコマンドを自動化するためのものを、シェルスクリプトという。 ここでやっとプログラミング要素が出てくる。 条件分岐や繰り返しなどを用いて処理を実行する。 実行環境 macOS BigSur 11.4 CentOS7 (macOS上でLinux環境を構築する方法はこちらを参考にしました) 1. プログラムを構成する要素 順次実行 条件分岐(if, else) 繰り返し(while, for) サブルーチン(関数) 2. シェルスクリプトの基本 例として、”カレントディレクトリにtestというファイルを作成し、その詳細情報を表示させる”test_script.shという名前のシェルスクリプトを作成する。 test_script.sh #!/bin/bash (利用するシェルの種類とそのコマンド位置を記述、シェルスクリプトのお約束みたいなもの?(C言語のint main(void){}みたいな)) # '#'以降にコメントを書くことができる。コメントは処理に作用しない。 touch test #(ファイルの作成) ls -l test #(ファイルの詳細情報表示) 作成したシェルスクリプトを実行する。 chmodコマンドで実行権限を与える。 $ chmod u+x test.sh そして、以下のように実行する。(./はパス指定) $ ./test.sh -rw-r--r-- ... test 3. 変数 基本的な変数の宣言方法 変数への代入は'='を用いる $ index=1 配列は[]を使って表現する $ nbr[0]=123 $ nbr[1]=456 変数の参照は`$`を用い、配列変数の場合は`${}`とする $ echo ${nbr[$index]} 456 シェル変数と環境変数 シェル変数 : 実行しているシェル内のみ有効な変数 環境変数 : そこ以降に実行されたコマンド内でも有効な変数 例) 二つの変数の違いを標準出力で確認する。 test1.sh #!/bin/bash export x=123 y=456 echo x=$x in test1.sh echo y=$y in test1.sh ./test2.sh test2.sh #!/bin/bash echo x=$x in test2.sh echo y=$y in test2.sh 実行結果 $ ./test1.sh x=123 in test1.sh y=456 in test1.sh x=123 in test2.sh (環境変数:x は引き継がれている) y= in test2.sh (シェル変数:y は引き継がれない) 変数を扱うコマンド集 定義した変数を一覧表示したり、標準入力から読み取ったデータを書き込んだりできる便利なコマンドをいくつかメモしておく。 $ read [variable_name] 変数に標準入力から読み取ったデータを書き込む。既にある場合は上書きされる。 $ set, unset [variable_name] シェル変数の一覧表示と、削除を行うコマンド $ env, unset [variable_name] 環境変数の一覧表示と、削除を行うコマンド 引用符 文字列を引用符と呼ばれる記号で囲むと特殊な振る舞いをする。 その種類をメモしておく。 ' '(シングルクォーテーション) : 文字列として認識される、変数参照の$も文字列となる。 " "(ダブルクォーテーション) : 変数参照$も認識する文字列 ` `(バッククォーテーション) : 文字列をコマンドとして認識する 4. 引数 引数の扱いの基本 シェルスクリプトを実行する際に、実行コマンド名に続いて指定される値を引数という。 $の後に続く文字で引数を指定する。 $1, $2, ..., $n : n番目の引数の値 $0 : 実行コマンド名 $# : 引数の数 例) $ ./args.sh aaa bbb ccc $1: aaa $0: ./args.sh $#: 3 shift文 引数の順序をずらすコマンド。 shiftを実行すると、$2->$1, $3->$2, ...となる。 これは、どこで使うんだろうシリーズ。 5. エスケープシーケンス \を用いるとその直後1文字の扱いを変更できる。 ””や''などの引用符を表示したい時や、改行を入れたい時などに使用すると良い。 例) $ echo "I am a cat. \ > As yet I have no name." (コマンドの途中で改行を入れても大丈夫になる) I am a cat. As yet I have no name. \n(改行)、\t(タブ)など特別な意味を持つ組み合わせもある。 6. sourceコマンド 指定されたファイルを読みこんで、シェル環境を設定するコマンド。 .zshrc .bash_profileなどシェル環境設定ファイルの設定を変更後、シェルにログインし直さずに設定を現在のシェル上に反映する際によく使われる。 aliasの設定とかした時にめっちゃ便利。 例) $ vi ~/.zshrc alias ..="cd .." (.zshrcを編集して、aliasを設定する) $ source ~/.zshrc (変更した設定を反映) $ .. (一つ上の階層に移動するaliasが設定できた) 終わりに 今回は、シェルスクリプトについて簡単にまとめました。 エスケープシーケンスや引用符は、今回メモした以外にも様々な使い方があるため、調べておきます。 また、条件分岐や繰り返し、サブルーチンといった部分は次回書きたいと思います。 参考文献 この記事は以下の情報を参考にして執筆しました。 - Linux標準教科書(ver.3.0.2)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Azureの便利なCLIツールのSnapパッケージ

はじめに この記事ではAzureまたMicrosoftの便利なCLIツールのSnapパッケージのインストール方法を紹介します。snapパケージはUbuntu 18.04とUbuntu 20.04ではこのまま使えます。 ツール azure-cli Azure CLI を使うと、仮想環境へのログインやリソースの作成など、Azure Portal上で行う操作がコマンドで完結できます。 最初はSnapパケージをインストールし、アリアスを作成します。 sudo snap install azure-cli-johanburati sudo snap alias azure-cli-johanburati az az version LinuxではAZURE_CONFIG_DIR の既定値は$HOME/.azureですがsnapは.から始まるフォルダーをアクセスできないため、$HOME/.bashrcファイルに次のラインを追加します。 export AZURE_CONFIG_DIR=$HOME/azure そして、フォルダーを作ります。 mkdir $HOME/azure そしたら、azコマンドを使えます。 $ az login To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code X3L33TXXX to authenticate. azcopy AzCopy は、ストレージ アカウント間の BLOB またはファイル コピーに利用できるコマンドライン ユーティリティです。 最初はSnapパケージをインストールし、アリアスを作成します。 sudo snap install azcopy-johanburati sudo snap alias azcopy-johanburati azcopy azcopy --version そしたら、azcopyコマンドを使って一つのファイルをブロブにアップロードします。 $ azcopy copy /etc/os-release "https://$STORAGE.blob.core.windows.net/$CONTAINER?$SAS_TOKEN" INFO: Scanning... INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support Job f0e2ba28-e108-0f47-6748-516fe54e73d3 has started Log file is located at: /home/job/snap/azcopy-johanburati/9/.azcopy/f0e2ba28-e108-0f47-6748-516fe54e73d3.log 0.0 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, Job f0e2ba28-e108-0f47-6748-516fe54e73d3 summary Elapsed Time (Minutes): 0.0334 Number of File Transfers: 1 Number of Folder Property Transfers: 0 Total Number of Transfers: 1 Number of Transfers Completed: 1 Number of Transfers Failed: 0 Number of Transfers Skipped: 0 TotalBytesTransferred: 176 Final Job Status: Completed ethr Ethr はネットワーク パフォーマンス測定ツールです。 最初はSnapパケージをインストールし、アリアスを作成します。 sudo snap install ethr-johanburati sudo snap alias ethr-johanburati ethr そしたら、*ethrコマンドを使えます。 使い方について、サーバー側では次のコマンドを使います。 ethr -s クライアント側は以下のとおりです。 ethr -c <サーバーのIPアドレス> 終わりに すべてのsnapをアップデートするには次のコマンドを使ってください。 sudo snap refresh
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Azureの便利なCLIツール

はじめに この記事ではAzureまたMicrosoftの便利なCLIツールのsnapパケージのインストール方法を紹介します。snapパケージはUbuntu 18.04とUbuntu 20.04ではこのまま使えます。 ツール azure-cli Azure CLI を使うと、仮想環境へのログインやリソースの作成など、Azure Portal上で行う操作がコマンドで完結できます。 sudo snap install azure-cli-johanburati sudo snap alias azure-cli-johanburati az LinuxではAZURE_CONFIG_DIR の既定値は$HOME/.azureですがsnapは.から始まるフォルダーをアクセスできないため、$HOME/.bashrcに次のラインを追加してください。 export AZURE_CONFIG_DIR=$HOME/azure 結果: $ az version { "azure-cli": "2.24.2", "azure-cli-core": "2.24.2", "azure-cli-telemetry": "1.0.6", "extensions": {} } azcopy AzCopy は、ストレージ アカウント間の BLOB またはファイル コピーに利用できるコマンドライン ユーティリティです。 sudo snap install azcopy-johanburati sudo snap alias azcopy-johanburati azcopy 結果: $ azcopy --version azcopy version 10.10.0 ethr Ethr はネットワーク パフォーマンス測定ツールです。 sudo snap install ethr-johanburati sudo snap alias ethr-johanburati ethr サーバー: ethr -s クライアント: ethr -c <サーバーのIPアドレス> 終わりに すべてのsnapをアップデートするには次のコマンドを使ってください。 sudo snap refresh
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

VirtualBox ダウンロードからインストール,仮想化について

VirtualBoxでLinux・CentOS環境構築の第一歩です。 本ページではVirtualBoxのダウンロードとインストール, 関連用語と疑問に対してのまとめを書いています。 前提条件 ホストOS:Windows10 VirtualBox 6.1.22をインストールします。 手順 基本的にずっと「Next > 」で進めて問題なさそうでした。 VirtualBoxダウンロード VirtualBox https://www.virtualbox.org/ 左のメニュー一覧のDownloads →https://www.virtualbox.org/wiki/Downloads ホストOSに合った最新のパッケージをダウンロード →Windows hosts VirtualBox 6.1.22 VirtualBoxインストール ダウンロードしたインストーラVirtualBox-6.1.22-144080-Win.exeを実行 前述の通り、カスタム等しなければ、「Next > 」で「Install」まで進めて構わないでしょう。 途中、スタートメニューやデスクトップにショートカットを追加するか☑選択できます。 ネットワークが一時的に切断される警告も出ますが、他の優先タスク等なければ「Yes」で進めるしかないでしょう。 インストールが完了し、「Finish」をクリックして終了する際に起動する☑を入れると立ち上がります。 以下のような画面が表示されれば、起動完了です。 FAQ トラブルシューティング インストールできないときは Hyper-Vが有効になっているためインストールできない可能性があります。 →Hyper-Vを無効,☑を外しましょう。 Windowsスタート>コントロールパネル>プログラム>Windowsの機能の有効化または無効化 Hyper-Vにチェックが入っていないことを確認してみてください。 仮想化について 用語と疑問まとめ ホストOS,ゲストOSとは ホストOS:仮想マシンを乗せる土台になるOS,物理ハードウェアのOS ゲストOS:仮想マシンにインストールしたOS  ホストかホストではないか…   仮想マシンを乗せる土台か、それ以外か ハイパーバイザー型:ホストOSと仮想化ソフトウェア,両方の役割,より直接的に 仮想マシンを導入する理由 ・一つのマシン複数アプリケーション   アプリケーション毎にマシンを用意する必要ありません。 ・コスト削減   上記のように、仮想化の以前はマシンを用意する必要があった 調達にかかる時間も削減できることに ・管理も楽   各アプリケーションにリソースを適当に割り当てられます。 仮想化とクラウドの違い 仮想化は技術そのもの, クラウドは仮想化で作った場所・環境の名前  参考文献 OracleVM VirtualBoxのインストール手順<Windows向け> 仮想マシンとは?よく聞く"仮想化" "仮想マシン"の基礎知識と特徴を解説 クラウド・コンピューティング クラウドと仮想化の違い 仮想化 ハイパーバイザーとは 仮想マシンとは | ホストOSとゲストOSの違いを解説 簡単になりましたが以上です。 何か間違い等ありましたらご教授いただけると嬉しいです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

minecraft java edition マルチーサーバーで1.17にしたら動かないときの対処

minecraft java edition ver1.17実行したらエラーでた GCE(Google Cloud Engine)でマイクラのマルチサーバーをたてているのですがそれに1.17を入れて実行しようとすると以下のエラーが出ました。 Error: LinkageError occurred while loading main class net.minecraft.server.Main java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 55.0 どうやらjavaのruntimeでバージョンエラー?? 実行環境 GCE Ubuntu 20.04.2 LTS minecraft Java Edition Ver.1.17 openJDK 11.0.11 対処法 詳しいことはわかりませんがとりあえずjavaの実行環境が合っていないっぽいのでopenJDKを最新?の16に入れなおすと動きました。 入れ方はQiita記事の「OpenJDK(Java)を最新のUbuntuにインストールOpenJDK(Java)を最新のUbuntuにインストール」 がいいと思います。 おまけ minecraftのwiki(日本語、英語ともに)openJDK-8をインストールするようになっていたので試しに入れて動かしてみたら同様のエラーがでました。(エラーに出てるバージョンが55から52になってましたw) おそらくopenJDKの11以前のものは動かないと思われるのでお気を付けください。そのうちminecraft wikiも変わると思うけど
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux基礎学習まとめ③ 管理者と権限(useadd, groupadd, chmod, ertc.)

概要 Linuxのファイルやディレクトリには、それぞれを管理するユーザやグループが割り当てられています。 また、ユーザやグループ毎に、読み書きや実行できるアクセス権なども割り当てられています。 ここでは、ユーザアカウントやグループ名の追加、変更、削除や、アクセス権を変更するコマンドなどをメモしておきます。 実行環境 macOS BigSur 11.4 CentOS7 (macOS上でLinux環境を構築する方法はこちらを参考にしました) 管理者系 1. ユーザアカウント 書式 $ useradd/usermod/userdel [option] [username] ユーザーアカウントの追加、変更、削除を行うコマンド /etc/passwdファイルを参照することで、登録されているユーザーの情報を確認することができる。 例: [hogehoge@localhost ~]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ・・・ hogehoge:x:500:501:KAZMAX_ADMIN:/home/hogehoge:/bin/bash 項目 意味 x 'x'という文字か、暗号化されたパスワード、etc/shadowファイルに暗号化されたパスワードが記述されている。 500 ユーザーID 501 グループID KAZMAX_ADMIN コメント(本名とか電話番号とか)。コメント無しの場合は何も記入されない。 /home/hogehoge そのユーザーのホームディレクトリ。 /bin/bash そのユーザーのログインシェル名。 以下、よく使いそうなオプション -g : グループ名指定(/etc/group) -c : コメント指定 -u : ユーザーID番号の指定 -s : シェルの指定 -d : ホームディレクトリの指定 2. グループ 書式 $ groupadd/groupmod/groupdel [option] [groupname] $ cat /etc/group group_name:password:GID:user_list グループ名の追加、変更、削除を行うコマンド 3. パスワード 書式 $ passwd [username] $ cat /etc/passwd account:password:UID:GID:GECOS:directory:shell 4. su, sudo このコマンドは見たことあったけど意味よくわかってませんでした。 sudo(super user do)って意味らしい。 簡単にいいうと、Linux内で全てのファイルやディレクトリへのアクセス権を持つrootユーザとか、他のユーザにログインして、そのユーザでしか行えない操作を行うためのコマンドらしい 例: $ su (rootユーザになる) $ cat [dir/file] $ sudo cat [dir/file] (rootユーザ権限でコマンド実行) ユーザ権限とアクセス権限 1. 所有ユーザ・グループの変更 書式 $ chwon/chrtop [target] 対象ファイルやディレクトリの所有ユーザ(owner)やグループ(group)の変更コマンド -R : ディレクトリを再帰的に変更 2. アクセス権を変更する 書式 $ chmod [access_permission] [target] 対象ファイルやディレクトリのアクセス権を変更するコマンド。 ls -lコマンドと併用して使うことが多い。 こちらのページがパーミッションについて非常にわかりやすく解説してくれている。 setuid/setgidビット : 所有者or所有グループの権限で実行される stickyビット : ディレクトリないのファイルは所有者以外削除できなくなる 例: $ chomod g+t test (setuid/setgidビット) $ chomod g+t test (stickyビット) 3. アクセス権を制御する 書式 $ umask [mask_value] ファイル作成時のアクセス権を制限するコマンド。 許可しないビットを指定する。 例: $ touch test (default) $ ls -l test -rw-rw-rw- ... test (touchコマンドは0666でファイルを作成しようとする) $ umask 0000 (現在のマスク値を表示) $ umask 0022 $ touch test $ ls -l test -rw-r--r-- ... test (みたいな感じでアクセス権を制限できる) $ umask -S u=rwx,g=rwx,o=rwx (このオプションつけると見やすくなる(8進数表記じゃなくなる)) 終わりに かなり雑にまとめました。 コマンドのメモ程度に置いておきます。 参考文献 この記事は以下の情報を参考にして執筆しました。 - Linux標準教科書(ver.3.0.2)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Androidで動くLinux環境

概要 android端末上で動かすことができるLinux環境について軽く説明します 日本語化などの設定方法は今回は見送ります。 候補 android上で動かすことができるLinux環境としては主に以下があります。 Termux ubuntu-in-termux UserLAnd どれもRoot化は不要なので簡単に試すことができます。 それぞれについて特徴を解説しますが、結論を先に言ってしまえば、個人的なおすすめはUserLAndのUbuntuです。 Termux Google PlayおよびF-Droidからインストールできます。 Google Play https://play.google.com/store/apps/details?id=com.termux F-Droid https://f-droid.org/packages/com.termux/ F-Droidの方が新しいようなので、F-Droid版の方がおすすめです。 特徴・良い点 ストアから簡単インストール可能 他の選択肢にくらべて動作が速い(chrootに似た仕組みであるprootを使っていないため) 基本的に端末のみ 専用Widgetなどが用意されている 残念な点 パッケージが少ない 特にmozcなどの日本語入力パッケージがない Emacs上でskkによる日本語入力が可能 ディレクトリ構成が通常のLinuxディストリビューションとは大きく異なる prootを使っていないためなので、速さの代償 GUI環境が必要な場合は、別途XServerやVNCなどを立ち上げるなど手間が必要 ubuntu-in-termux termux上で、さらにubuntuを立ち上げることが可能 https://github.com/MFDGaming/ubuntu-in-termux セットアップが済んだあとは、termuxを立ち上げたあと、startubuntu.shを実行する 特徴・良い点 ubuntuのパッケージ群が利用できる mozcなどの日本語入力用のパッケージもある ディレクトリ構成が通常のLinuxと近い 残念な点 prootベースなのでtermuxよりも動作が遅い GUIについてはtermuxと同様、別途XServerやVNCの立ち上げが必要 termuxを立ち上げたあとに、startubuntu.shを実行するので一手間入る UserLAnd Google PlayおよびF-Droidからインストールできます。 google play https://play.google.com/store/apps/details?id=tech.ula F-Droid https://f-droid.org/packages/tech.ula/ 特徴・良い点 UbuntuやDebianなどアプリ画面から選択して使うことができる それぞれのディストリビューションのパッケージが使える 日本語入力系のパッケージもあれば使える ワンタッチでデスクトップ環境が立ち上がる android上のVNCアプリや、XServerアプリを立ち上げてくれる Linux側でVNCサーバーの立ち上げや、デスクトップ環境の立ち上げもできる ディレクトリ構成は通常のLinuxと近い 残念な点 prootベースなのでtermuxよりも動作が遅い 毎回パスワードが求められる 端末モードでの最初のパスワードはスキップするには改造が必要。 GUIはスマホの画面ではあまり現実的でない タブレットにするか、PCからVNCでつなぐかになると思う まとめ Termux 日本語入力がいらない or Emacs+SKKで大丈夫なら選択肢になる ubuntu-in-termux 基本Termuxだけど、緊急で日本語入力したい場合に良いかもしれない UserLAnd 最初からUbuntuが立ち上がるのが楽 ちょっとした用途なら遅さはそれほど気にならない
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む