20210610のLinuxに関する記事は13件です。

Linux パーミッション権限について

パーミッション権限の確認と変更 だいぶ慣れてきたが、ふと分からなくなることがあるので書き留めておく。 パーミッション権限の確認 $ls -l 上記コマンドを押すと以下のような一覧が出てくる。 -rwxr--r-- 1 user group 9 12月 31 00:00 hoge.txt drwxr-xr-x 6 user group 1 12月 31 00:00 ダウンロード 読み解き方 最初の1文字目はファイル種別を示している。 - ファイル d ディレクトリ l シンボリックリンク ※シンボリックリンク fileA シンボリックリンクA があるとする。 シンボリックリンクAにアクセスするとfileAが開く。 シンボリックリンクAを消してもfileAは消えない。 windowsでいうところのショートカットみたいなもの。 2文字目から4文字目はファイルの所有者に対する権限を表し、 5文字目から7文字目はファイルの所有グループに対する権限を表し、 8文字目から10文字目はその他に対する権限を表す。 先ほどのものをもう一度表示すると -rwxr--r-- 1 user group 9 12月 31 00:00 hoge.txt drwxr-xr-x 6 user group 1 12月 31 00:00 ダウンロード -rwxr--r--は、 「ファイル種別」が「ファイル」 「所有者」は「読み取り」と「書き込み」と「実行」の権限を持ち 「所有グループ」は「読み取り」の権限を持ち 「その他」に「読み取り」の権限があることを示している。 drwxr-xr-xは、 「ファイル種別」が「ディレクトリ」であり、 「所有者」に「読み取り」と「書き込み」と「実行」の権限があり、 「所有グループ」に「読み取り」と「実行」の権限があり、 「その他」に「読み取り」と「実行」の権限があることを示している。 ちなみにそれぞれ 所有者(Owner) ファイル/ディレクトリの所有者、本人のこと 所有グループ(Group) 同じサーバーを利用できるユーザ全体 その他(Other) その他全て、第三者のこと を指してます 権限の変更 パーミッションの権限変更にはchmodコマンドを使う。 chmod 数字(それぞれの足し算) 対象ファイル名 数字 A 権限 4 r 読み取り 2 w 書き込み 1 x 実行 ここでいう実行ってのはそのファイル、プログラムを動かしていいかどうかって事です。 $chmod 777hoge.txt -$ ls -l -rwxrwxrwx 1 user group 9 1月 1 00:00 hoge.txt 777だと全員OKってことですね $ chmod 764 hoge.txt $ ls -l -rwxrw-r-- 1 user group 9 1月 1 00:00 hoge.txt それぞれ数字の7が最大数と考えて足算して考えれば良いわけですね。 ↓アルファベットでもできる chmod g+x <ファイルorディレクトリ> 「g+x」は、g(グループ)に x(実行権限)を +(加える)という意味になる 逆に権限をなくす場合は、「g-x」とすれば良い、 既存のものに変更を加えたりするときはこっちにが使いやすい! 所有者の変更 chown を使う chown <[所有者]or[所有者:グループ]> <ファイルorディレクトリ> dataフォルダの所有者をsatouに変更する chown satou data dataフォルダの所有者をsatouにグループをstaffにする chown satou:staff data それぞれ ディレクトリごと権限を変更したい場合 -Rをつければ良い!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux メモ sftpコマンドでアップロード・ダウンロード

Linux に関するメモ。 ファイル転送についてscpでも同様のことができるが、こちらは脆弱性があるとのことで非推奨となっているので、sftpを使った。 windows10 Powershell にて動作確認。 ログイン PS C:\WINDOWS\system32> sftp -i C:\Users\username\Downloads\sample.pem ec2-user@123.456.789.0 ローカルへダウンロード sftp> get test.txt C:\Users\username\Downloads Fetching /home/ec2-user/test.txt to C:/Users/username/Downloads/test.txt /home/ec2-user/test.txt 38% 62MB 367.0KB/s 04:40 ETA ローカルからアップロード sftp> put C:\Users\username\Downloads\test.txt /home/ec2-user/dir/ Uploading C:/Users/username/Downloads/test.txt to /home/ec2-user/dir/test.txt C:/Users/username/Downloads/test.txt 100% 1350 26.1KB/s 00:00 参考記事
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

sudo

I studied about "sudo" It is Linux command.
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

lsコマンドで表示されるファイル名一覧を色分けする!

最近、LPIC(Linux)の勉強をしているので、その成果をアウトプットしたいと思います! 今回はlsコマンドに焦点を当て、ファイルの種類によって名前の色分けを行います。 完成図 ファイルの種類(通常ファイルかディレクトリか)によって名前の色が区別されています。 前提 lsコマンドを単体で実行すると、以下のようにカレントディレクトリ(今自分がいるディレクトリ)にあるファイルやフォルダの一覧を表示させることができます。 lsコマンドの引数に相対パスや絶対パスでディレクトリ名を指定することで、そのディレクトリにあるファイルやフォルダを参照することもできます。 しかし、ディレクトリの中身一覧は見れても、名前だけでそれがファイルなのかフォルダなのかを判別することができません。 lsコマンドでオプションに-l(小文字エル)を付けると判別は付けられるのですが、それもわかりづらいです。 ちなみに赤線の部分の'd'がディレクトリ'-(ハイフン)'が通常のファイルとなります。 そこで、lsだけで既に色付きで表示されていたらわかりやすいのでは? ということでその手順を解説していきます!! 手順 まず現在使っているシェルがbashかzshによって手順が変わってきますので、どちらを使用してるか確認から行います。 コマンドライン上でecho $SHELLを入力すると、どちらかを確認できます。 echoは変数の中身をコマンドライン上に表示させることができるコマンドです。 $SHELL変数には今使っているシェルが格納されているので、それをechoコマンドで表示させた形です。 そしてbashの場合は最初から名前が色分けをされている可能性があります・・・笑 (ちなみに、MacBookは標準がzshとなっており、標準搭載されているターミナルもzshです。) bashを使っている場合 確認を行います。 aliasを入力して以下のような記述があれば既に色分けされているということになります。 aliasコマンドは頻繁に使用するような長いコマンドや忘れやすいものを、自分の好きな文字列としてコマンドを実行できるようにするものです。 画像では、既にlsコマンドはls --color=autoコマンドの別名として登録されているので、普通にlsを実行しても色分けがされた状態というわけです。 (aliasを使ったコマンドはまた余裕があれば後日書き起こします!) ちなみにzshかbashかを確認した理由はlsコマンドは同じなのですが、名前に色を付けるオプションの指定の仕方が変わってくるので、例えばls --color=autoをzsh上で入力するとエラーになります。 zshを使っている場合 MacOSはzshが標準です。 lsコマンドで名前に色を付けるオプションは-Gになります。 おすすめ度:☆ つまり、ls -Gを入力することで、カレントディレクトリ内にあるファイルやフォルダが種類によって色分けされて表示されます。 おすすめ度:☆☆ 上のやり方だと毎回lsとセットで-Gオプションを打たなければいけないので、bashと同様にaliasコマンドを使ってls -Gをデフォルトにしてしまいます! 次のようにalias ls='ls -G'を入力することで、lsコマンドがls -Gの別名として登録されました。aliasコマンドを単体で入力して実行すると、現在登録済みのaliasが一覧で表示され、その中にls='ls -G'も表示されているかと思います。 逆にaliasに登録はしたけど、初期設定のlsを使いたいという場合は、\lsのようにバックスラッシュの後にそのコマンドを入力し実行することで、初期のコマンドとして扱われます。 おすすめ度:☆☆☆ 上のやり方だとlsコマンドがls -Gをデフォルトにすることはできましたが、実はコマンドライン(ターミナル)を閉じてしまうと設定が初期化されてしまいます。なので、立ち上げるたびに毎回alias ls='ls -G'をaliasに登録しなくてはなりません。 そこで、このやり方ではターミナルを起動した時に最初からalias ls='ls -G'を読み込ませる方法です! まずはls -A ~(チルダ)を入力してファイルとディレクトリの一覧を確認します。 -aオプションは隠しファイルも含めて全て表示します。-Aは-aからカレントディレクトリの'.(ドット)'と一つ上の階層の'..(ドット2つ)'を除いた全てのディレクトリになります。どちらのオプションを使うかは好みの問題です・・・笑 ちなみに隠しファイルはファイル名が'.(ドット)'から始まるファイルで、通常のlsコマンド単体では表示がされず、通常はファインダー(またはエクスプローラー)からも目視することはできません。 lsコマンドの引数に~(チルダ)を指定していますが、これはホームディレクトリを表していて、ホームディレクトリには現在ターミナルを使ってるユーザーの初期設定に関するファイルが隠しファイルとしていくつか存在し、その中の.zshrcが今回必要になるファイルになります。 この.zshrcファイルの中身はターミナル起動時に自動で読み込まれるので、今回必要なlsコマンドのalias設定はこの中に書いておくようにします。 まずはcat ~/.zshrcを実行し、現在の.zshrcの中身を確認しておきます。 catコマンドは引数に指定したファイルの中身をターミナル上に表示させることができます。 引数の~/.zshrcは~/がホームディレクトリ、.zshrcがホームディレクトリにあるファイルを指します。 もし既に何か設定が書かれてある場合は念の為スクリーンショットをしておくか、メモなどにコピペしておくか、またはcp ~/.zshrc ~/Desktop(どこでもいいです。)で.zshrcファイルを別の場所にコピーしておいてください。.zshrcは隠しファイルなので、デスクトップにコピーしたとしても実際に表示されることはありません。(Desktopへのコピーがちゃんとできているか確認したい場合はls -A ~/Desktopで.zshrcが表示されていればOKです。万が一の時はこのファイルを元の位置にある.zshrcと入れ替えて復元を行います。) cpコマンドは第一引数にコピー元、第二引数にコピー先を指定します。(cp コピー元 コピー先) これからこの設定ファイルを触っていくので、何かあっても復元できるようにしておきます。(追記するだけなので大丈夫だとは思いますが念の為) メモ・スクショ・コピペのいずれかが終わったらvi ~/.zshrcを実行します。 viエディタの使い方を少し。 この画面はターミナルに搭載されているviエディタというものでいわゆるVimです。 保存せずに終了させるには:q!を入力しエンターを押すことで元のコマンドライン(ターミナル)に戻ります。 もう少し踏み込みます。 先ほどと同様にvi ~/.zshrcを実行します。 次に'i'を押すとコマンドモードからINSERTモードに切り替わります。 INSERTモードに切り替わると左下の文字が'-- INSERT --'になるかと思います。INSERTモードに入ると、実際にキーボードから文字の入力や削除ができるようになります。 viエディタを終了させるには、先ほど:q!で終了できると言いましたが、この:q!はコマンドモードで入力する必要があるため、viエディタを閉じるにはINSERTモードからコマンドモードに一度戻す必要があり、それがキーボードの'esc(エスケープ)'キーになります。 'esc'を押すと'-- INSERT --'の文字が消え、:q!を入力すると左下に表示され、エンターキーで実行すると編集内容を保存せずにviエディタを閉じることができます。 では実際にaliasを追記し保存していきます。 INSERTモードに切り替え、一番下の行にalias ls='ls -G'を記述します。 上下にある'# >>> aliases >>>'と、'# <<< aliases <<<'はコメント行なのでなくても大丈夫ですが、書いておくと後から見やすいかもです。 次に保存を行います。 保存は終了する時と同じコマンドモードで行う必要があるので、'esc'キーを押してINSERTモードからコマンドモードに切り替えます。 先ほどは保存せず終了:q!でしたが、今度は保存して終了をします。 保存して終了のコマンドは:wq!になります。(他にもZZ(大文字)などもありますが、一旦:wq!で大丈夫です。) そして、.zshrcの内容を書き換えた場合はターミナルを再起動するか、.zshrcファイルを実行しないと書き換えた内容が反映されません。 実行するにはsource ~/.zshrcを実行することで、設定内容が即時に反映されます。 コマンドライン上ではaliasコマンドは入力しませんでしたが、alias一覧を見ると、先ほど書き込んだ内容が反映されていて、実際にlsコマンドを実行してみるとファイル名が変わっているのがわかるかと思います。 ちなみに、先ほど念のためDesktopに.zshrcをコピーしていた場合はrm ~/Desktop/.zshrcを入力し実行することで、削除できます。 rmコマンドはファイルの削除コマンドで、引数に削除したいファイル名またはディレクトリ名(ディレクトリの場合は-rオプションが必要)をカレントディレクトリからの相対パスまたはホームディレクトリからの絶対パスで指定することで、ゴミ箱を通さずに完全に削除することができます。(rm ファイル名(ディレクトリ名)) おわりに おすすめ度:☆☆☆と言いつつめっちゃ難しいことしてるやんけ! と思われるかもしれませんが、viコマンドでファイルを編集する機会は多いと思うので、練習と思ってやってみていただけたらと思います!(こじつけ) 今後も機会があれば、今回のように何か一つのコマンドを取り上げて皆様のお役に立ちそうな情報を共有できればと思っています 何か気づかれたことなどありましたらご指摘いただけると幸いです! 最後まで読んでいただきありがとうございました! Twitterでも技術発信をしているのでよかったら覗いてみてください!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux基礎学習まとめ⑤ シェルスクリプトの構造(条件分岐、繰り返し、サブルーチン)

概要 前回の記事では、シェルスクリプトの基本(順次実行)のみ触れました。 今回は、シェルスクリプトを構成す3つの重要な要素(条件分岐、繰り返し、サブルーチン)についてメモしておく。 実行環境 macOS BigSur 11.4 CentOS7 (macOS上でLinux環境を構築する方法はこちらを参考にしました) 条件分岐 1. if, else if, else文を用いて条件分岐を行う。 基本形は以下の通り。 # 書式 if [ 条件式1 ]; then # 条件式を囲む左右の[]に一個ずつスペースが必要! # 条件1が成立する場合の処理 elif [ 条件式2 ]; then # 条件2が成立する場合の処理 else # どの条件にも合致しない場合の処理 fi # ifの逆で終わる 上記の書き方は if test 条件 ; then ...の省略形。 比較演算子を用いて、様々な条件で値を比較したり、文字列を比較することもできる。 複数の条件を組み合わせることもできる。 例) if_else_example.sh #!/bin/bash # 変数xに入力されたデータを読み込む read x # xの値によって条件分岐 if [ $x == 0 ]; then echo "x is zero." elif [ $x == "A" ]; then echo 'x is "A".' elif [ $x -ge 1 ] && [ $x -lt 10 ]; then echo '1 <= x < 10' else echo 'None' fi また、値や文字列だけでなく、ファイルの種類なども条件として与えられる。 例) if_else_file_example.sh #!/bin/bash read name # name変数で指定されたものがファイルかディレクトリか、その他(シンボリックリンクなど)かどうかを条件分岐で確かめる if [ -d ${name} ]; then # ディレクトリ echo "${name} is directory" elif [ -f ${name} ]; then # ファイル echo "${name} is file" else # その他 echo "${name} doesn't exit" fi if文の書き方の基本はこちら、比較演算子などの例をめっちゃやってくれてるのがこちらで、大変参考になりました。 2. case 一対多の分岐を記述するための文。 指定した変数の値に対して、複数の条件分岐を書きやすい。 # 書式 case 変数 in 値 A) 処理1;; 値 B) 処理2;; *) # どの条件にもマッチしなかった場合の処理は*)を用いる 処理3;; esac # caseの逆で終わる 引数を比較に用いることで、テストファイルなども作成しやすい。 例) case_example.sh #!/bin/bash case $1 in 1) echo "Arguent is 1.";; A) echo "Argument is A.";; *) echo "Argument is not A or 1.";; esac 繰り返し 1. for 100回など大きな回数で同じ処理を繰り返し行う際などに用いられる。 # 書式 for 変数 in 値のリスト do # 処理 done 例) for_example.sh $ ls test1 test2 test3 test4 test5 # コマンドラインからfor文を直接記述している $ for i in `ls` # ``で囲むとコマンドの実行結果を値リストとして扱うことができる > do > echo $i > done test1 # lsコマンドの実行結果が1行ごとに出力される test2 test3 test4 test5 2. while, until whileは条件が成立している間、untilは条件が成立していない間ループを繰り返す。 # 書式 while / until 条件式 do # 処理 done C言語のように値をインクリメントしてループ処理をする場合は、exprコマンドを用いて計算を行う。 計算式や論理式を評価するexprコマンドの詳細はこちらを参考にさせていただきました。 while_sample.sh $ count=1 $ while [ $count -lt 10] # countが10未満ならば処理を行う > do > echo "Count is $count" > count=`expr $count + 1` # exprコマンドで値をインクリメントする > done Count is 1. # 1~9までが表示される Count is 2. Count is 3. Count is 4. Count is 5. Count is 6. Count is 7. Count is 8. Count is 9. 3. select 値のリストに対し、インデックスを割り当て、入力されたインデックスの値に対応するデータに対して処理を行う。 # 書式 select 変数 in 値のリスト do # 処理 done 1) 値1 # 値のリストが表示される 2) 値2 3) 値3 ... $? n # 番号を入力 # nに対応する処理 $ # `Ctrl+C`で終了 例) select_example.sh $ select name in "apple" "banana" "orange" > do > echo "Name is $name" > done 1) apple 2) banana 3) orange $? 2 # 2で"banana"を指定 Name is banana $ 4. break, continue breakはループを抜け、continueはループの最初に戻る。 例) example.sh while true do echo "Continue? (y/n)" read input case $input in n) break # nが入力された場合、ループを抜ける ;; y) continue # yが入力された場合、ループの最初に戻る ;; *) echo "Please input y or n." # y, n以外が入力された場合、echo以降の文字列を出力してループを繰り返す ;; esac done 実行結果 $ ./sample.sh Continue? (y/n) a Please input y or n. Continue? (y/n) y Continue? (y/n) n $ サブルーチン(関数) 加算や配列の入れ替えなど、一連の処理をまとめて、再利用できるようにしたもの。 C言語とかやってるとすぐわかるはず。 # 書式 関数名 () {     # 処理 return 変数名 # 戻り値 } 番外編 : デバッグ shコマンドに-xオプションをつけると、各行のコマンドや変数の中身を表示しながらスクリプトを実行する。 $ sh -x ./sample.sh 終わりに こういうプログラミングの基礎構造みたいなやつは、例を見ながら自分で、適当に条件や値を変えたり、繰り返しと条件分岐を組み合わせてみたりしながらやるのが一番わかりやすいと思います。 参考文献 この記事は以下の情報を参考にして執筆しました。 - Linux標準教科書(ver.3.0.2)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Linux]Linuxコマンドをまとめてみた

はじめに 自分用にしようか迷いましたが、せっかくなので公開してみました。 よく使うコマンド mkdir ディレクトリの作成 mkdir オプション 作成するディレクトリ名 -pオプションをつけると、存在しない親ディレクトリ含めて作成していくれる touch 空ファイルの作成 touch ファイル名 まちがって既存ファイルを指定しても、上書きされないので安心 rmとrmdir 削除するためのコマンド rm ファイル名 rmdir ディレクトリ名 -iオプションをつけることで、本当に消すか確認してくれる。エイリアスにしておくと便利。あと、rmdirは空のディレクトリのみ削除可能であるので、中に隠しファイルとかあるとエラー出ます catコマンド ファイルの内容を表示 cat ファイル名 -nオプションで行数表示 lessコマンド スクロール表示が必要なものに使う less ファイル名 /を押すと検索モードになる。(下方向に向かって検索)。?でも検索モード(上方向に検索)。 cpコマンド cp コピー元ファイル コピー先ファイル名 注意なのは上書きするので、コピー先に既存ファイルを指定するのは避けたい。こうしたミスを防ぐためにも-iオプションはつけること。またディレクトリのコピーには-rオプションが必要 cp -r ディレクトリ名 ディレクトリ名 lnコマンド リンクを張るコマンド。つまりファイルに別名をつけるコマンド。 ハードリンク ハードリンクはファイルの実体に複数の名前をつける機能です。 ln file1 file2 ハードリンクの削除は以下です % rm file1 % cat file2 元のfile1の中身が表示される %rm file2 シンボリックリンク シンボリックリンクは、リンク先がファイルの実体であり本物です。 % ln -s file1 file2 % rm file1 % cat file2 //リンク先のファイルが削除されたのでエラーになる リンクはクソ長いパス名なんかを他の名前に置き換えたりするときに使う findコマンド 検索するためのコマンド find . -name file1 -print ワイルドカードを使用するときは、検索条件を``で囲むこと。-inameを使用すると大文字小文字の区別がなくなる。 複数の検索条件の場合は-aを使用して以下のようにする。 find . -type f -a -name '*.html' -print chmodコマンド ファイルの権限等を変更する。 シンボルモード chmod [ugoa][+-=][rwx] ファイル名 chmod 誰が どうする 何を 記号 意味 u オーナー g グループ o その他のユーザ a ugoすべて + 追加 ー 禁止 = 指定した権限と等しくする r 読み取り w 書き取り x 実行 chmod u+w file.txt 数値モード ここはシンボルモードを8進数の数値で表現しただけなので、各自調べてもらいたい。 記号 数字 r 4 w 2 x 1 grepコマンド grep検索ってやつですね、有名です $ grep 検索正規表現 ファイル名 これはかなり使うみたいなので、こちらでしっかり確認することをお勧めします! 参考になるサイト wcコマンド 入力ファイルの行数、単語数、バイト数を確認するためのコマンド % wc ファイル名 //行数 単語数 バイト数 ファイル名 % wc -l ファイル名 //行数 % wc -w ファイル名 //単語数 % wc -c ファイル名 //バイト数 sortコマンド みたまんまソートのためのコマンド オプションが重要 オプション 意味 k パイプラインで渡ってきたものを、N列目のものでソートする 例:-k 5 n 数値順にソートする r 逆順にする、通常は昇順なので降順になる u  uniqコマンドと同様の効果を発する uniqコマンド 連続した同じ内容の行を省くコマンド。連続という点に注意。仮に北海道という文字列が一行目と五行目にあっても省かれない!!! uniq ファイル名 -cオプションで、重複した行が何行あるか重複行数を数える。 cutコマンド 入力行の一部を切り出して出力するコマンド。 cut -d 区切り文字 -f フィールド名 ファイル名 フィールド名は、おそらく何列目かを示しているものと捉えて問題ないはず。 cut -d : -f 7 /etc/passwd trコマンド 文字の置換・削除するコマンド 文字の置換 tr 置換前の文字 置換後の文字 以下のような記述はabcをABCに置換するのではなく、aはA、bはB、cはCと置換する。 cat file1 | tr abc ABC さらに注意が必要なのは、trコマンドでは直接ファイルを読み込むことは不可能なので、パイプラインか何かで渡してやる必要があります。 文字の削除 tr -d 削除文字 tailコマンド headコマンドと似ていて、末尾を表示します。 特に難しいことはありませんが、、、 使用用途としては、ログの監視などに使います。 その場合は以下のようにします。 tail -f ファイル名 こうするとリアルタイムに表示してくれます! diffコマンド 差分を表示するコマンドです diff 比較元ファイル 比較先ファイル 例えばこのような表示になります。 % diff .bashrc.org .bashrc 12c12 <PS1='\$' --- >PS1='[\u@\h] \w\$' これの見方は以下を見ればわかります。 記号 内容 <範囲1>a<範囲2> 1つ目のファイルの範囲1の後に、2つ目のファイルの範囲2が追加された <範囲1>c<範囲2> 1つ目のファイルの範囲1の箇所が2つ目のファイルのの範囲2の内容に変更された <範囲1>d<範囲2> 1つ目のファイルの範囲1の箇所が削除された 実際はこれではみにくいのでユニファイド出力形式で表示します。 diff -u .bashrc.org .bashrc おわりに ざっくり簡単にまとめていました。 よく使うものについては、しっかり使い慣れていきたいですね!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Linux]VirtualBoxでCentOSのインストールを無限に求められる不具合

はじめに 意外と困っている人がいたので、僕なりの対処法を記載しておきます 起きたこと VirtualBoxでLinuxを好きなように使えるように、CentOSをマウントしようとするも、予期せず終了しましたという表示がでて、最初からインストールを求められる×無限回数という事象が発生。 対処法 対処1 VirtualBoxの設定で、ハードディスクを光学より上にする 対処2 MacBookの設定にて、「セキュリティとプライバシー」→「アクセスシビリティ」でVirtualBoxにチェックする。 対処3 対処1、2をしたうえで、ターミナルで以下のコマンドを実行。 terminal % sudo virtualbox これをした後に同じようにイントールすると、今度は予期せぬ形で終了することもなく完了するかと思われます! おわりに 他の対処法とかあったら教えて下さい!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux用語, LPIC問題

Linuxについて パーティション ハードディスクに対して、ひとつのドライブとして利用したい容量を指定し、区画を作ったものです。OS上ではひとつのパーティションがひとつのドライブとして扱われます。 例えば750GBのハードディスクがあるとき、パーティションのサイズ(容量)に750GBを指定するとディスク全体がひとつのパーティションになり、それがひとつのドライブになります。 500GBと指定すると、500GBのパーティションひとつと、OSから利用できない250GBの空きスペースが作られます。この250GBを2つ目のドライブに指定することもできます。 このように、パーティションを分割する作業を「パーティションを切る」ともいいます。 スワップ領域(英:swap space) 使っていないメモリの内容を一時的にしまっておくための場所 メモリの内容を一時的にしまっておく「場所」を指す用語が「スワップ領域」です。 メモリの内容を一時的にしまっておく「ファイル」が「スワップファイル」です。 メモリの内容を一時的にしまっておく「パーティション(ハードディスク内のお部屋)」が「スワップパーティション」になります。 スワップ領域の種類として、スワップファイルとスワップパーティションがあると理解しています。 ハードリンク ・ファイルに付けたあだ名 ・元のファイルとハードリンクは(ほぼ)同じ物 ・状況によっては、ハードリンクが削除されると元のファイルも削除される ・同じパーティションにしか作れない ・フォルダに対しては作れない シンボリックリンク ・ファイルやフォルダの代理人ファイル ・元のファイルとシンボリックリンクは別物 ・シンボリックリンクを削除しても元のファイルに影響はない ・どこにでも作れる ・フォルダに対しても作れる パーミッションとは? Linuxを始めとしたUnixLikeSystemではファイルやディレクトリ一個一個に許可属性を与え、管理出来るようになっている。これを「パーミッション」という。 それぞれ「所有者」「グループ」「その他のユーザ」にパラメータを割り振りが可能となっている。グループという概念がわからない方は下記を参考に。 【初心者向け】Linuxのグループとは? ざっくりの説明 特殊なパラメータもあるがパラメータは基本的に「読み込み」「書き込み」「実行」の三つだ。実行と読み込みなど複数指定することも可能となっている。 セキュリティのために存在している パーミッションはセキュリティのために重要だ。特にシステムの管理者はシステム全体のパーミッションをおおまかで構わないが把握しておくべきだろう。 例えば、一般ユーザはシステムに書き込みが出来ないようになっている。不意な誤動作をしてもシステムに与える影響を最小限とするためだ。 これもパーミッションのお陰だ。パーミッションを適切に管理すると事故防止になる。 他にも例えば、本番環境にあるWebサイトを誤って編集してしまったということが無いように、責任者以外は本番環境のWebサイトを編集できないようにすることなどができる。 余分な実行許可は与えないようにしておく 基本的にファイルに余分な実行許可は与えないように心がけよう。不適切なパーミッションは思わぬ事故につながる。 例をあげるとデフォルトでインストールされているであろう「rcp」「rlogin」などは通信が暗号化されない危険なリモート操作を許してしまうので、実行権限を剥奪したほうがよい、などだ。 実際のパーミッションをみてみる 適当なディレクトリで下記のようにしてみよう。 $ touch myfile.txt $ ls -l myfile.txt すると -rw-r--r-- 1 ken users 0 12月 22 16:28 myfile.txt といったような行が表示されるだろう。 今注目すべきなのは「-rw-r--r--」と「ken users」という部分だ。詳細を説明していくが、そのまえに「r」や「w」といったフラグについて理解しよう。 r:読み込み許可 ファイルを開くときなどに必要な権限である。これがないとファイルが開けない w:書き込み許可 ファイルを編集変更する場合に必要な権限である。「r」と組み合わせて使用する。所有者には基本的に読み込み、書き込み両方の権限がわりあてられることが多い。 x:このフラグが設定されていると、ファイルに実行権限が与えられ実行可能となる。スクリプトなどの場合実行権限を割り当てることになる。またディレクトリはxフラグを与えないと開くことが出来ない。 d:ディレクトリの場合このフラグが表示される l:リンクファイルの場合このフラグが表示される。 -:は指定していないというマークである。 s:SUIDかSGIDのフラグ(別途ページでも解説) t:スティッキービットのフラグ(別途ページでも解説) ちょっとわかりにくいかもしれないので、「r = read 読み取り可」「w = write 書き込み可」「x = exec 実行可」「d = directory ディレクトリですという表示」というのだけまずは覚えておこう。 さて注目してほしい部分だけを抜きだして、区切りをいれて表記してみた。 ①- ②rw- ③r-- ④r-- ⑤ken ⑥users はじめのごちゃごちゃした部分は、1、3、3、3で分かれるイメージだ。 ①はファイルのタイプ ここには「ディレクトリか」「リンクファイルか」「通常ファイルか」を判別するためのフラグが表示される。 通常ファイルの場合とくにフラグがたたないので「-」のままとなる。ディレクトリの場合「d」が、リンクファイルの場合「l」がフラグとして表示されるようになっている。 ②の「rw-」⑤の「ken」という所有者 2番目のカラムにはそのファイルの所有ユーザの権限が表示される。5番目のカラムである「ken」と対応している。 今回は「rw-」が表示されている。rは「読み込み可」で、wは「書き込み可」だ。基本的にファイルの所有者はデフォルトでそのファイルの読み込みがと書き込みが許可されることがほとんどだ。 ③の「r--」と⑥「users」というグループ 3番目のカラムにはアクセス出来るグループに関してのフラグがセットされる。6番目の「users」というグループに対応している。 今回の場合「r--」読み込みのみが可能となっている。「users」というグループに参加しているユーザから読み込みが可能となっている。 ④の「r--」とその他のユーザ ④は所有者でもなく、グループにも属さない、その他のユーザのアクセス権限を表している。 今回は「r--」となっている。とりあえずどのユーザも閲覧できるようになっている状態だ。所有者でもなくグループにも属さないユーザつまり「赤の他人」にファイルを閲覧させたくないならば、読み込み権限も剥奪するとよいだろう。 ここの部分に読み書きを許可している場合考えられるのはWebサービスでパブリックに公開してよいファイルなどだ。他人にみられたくないファイルは読み込み権限を剥奪しよう。 「ls -l」の結果の見方も一応 パーミッションを見るときに必ず使うため、「ls -l」全体の解説を一応しておこう。 -rw-r--r-- 1 ken users 0 12月 22 16:28 myfile.txt となっているが、これに解説をするため仕切りをいれてみる -rw-r--r-- |1| ken users |0|12月 22 16:28| myfile.txt 1番目のカラムはパーミッション情報 先程解説したパーミッションの基礎情報が表記される。所有者、グループ、その他のユーザに対してのアクセス権限が表記される。 2番目のカラム、リンクされている数、サブディレクトリの数 この数字は今回はファイルであり「1」となっている。この場合ハードリンクの数を示している。ディレクトリの場合ディレクトリ内のサブディレクトリ数となる。 3番目のカラムは所有者やグループ情報 ここには所有者やグループ情報が表記される。パーミッション情報と照し合せながら参照しよう。 4番目はファイルサイズ 今回は何もせず単に「touch」コマンドでファイルを作成したため「0」バイトとなっている。viなどで編集し保存すれば数値が変化するはずだ。 5番目は日時 一般的なタイムスタンプとなる。更新日時が表記されるようになっている。 6番目はファイル名 最後のカラムはファイル名となっている。 スティッキービット(Sticky Bit)とは スティッキービット(Sticky Bit)とは、ディレクトリに設定される特殊なアクセス権の事です。 スティッキービット(Sticky Bit)が設定されたディレクトリでは、すべてのユーザーがファイル・ディレクトリを書き込めますが、所有者だけ(rootは除く)しか削除できなくなります。 /tmp ディレクトリは、スティッキービット(Sticky Bit)が設定されています。 一般的には全ユーザに書き込みを許可しながらも所有者以外には削除できない,という特徴のほうが重要だろう。この設定状況を見るには,「ls -al」と入力すればよい。パーミッション情報の最後に,「t」が表示されるものがスティッキービット設定である。 # ls -la ~略~ drwxrwxrwt  9 root  root   4096 Mar 14 13:54 tmp ~略~  スティッキービットを設定するには,次のどちらかのように指定をする。パーミッション設定の頭に「1」,または「+t」を付加すればよい。 # chmod o+t filename # chmod 1510 filename  全ユーザーのファイル書き込みが必要なメールスプールディレクトリ(/var/spool/mail)などにも,このスティッキービットを設定することが多い。 ファイルシステムの種類 ファイルシステムとは、ハードディスク等の記憶装置にあるデータをファイル名・更新日付などの属性データや、ファイルデータ自体を管理するための仕組みで、OSよって利用されるファイルシステムが異なります。 Linuxの場合は、ディストリビューションによって採用されるファイルシステムが異なりますが、ext3, ext4が採用される事が多いようです。 Linuxで使われるファイルシステム(一部) 名前 最大ファイルサイズ 備考 ext2 2TB Linuxオペレーティングシステムで広く利用されていたファイルシステムである。初期のextファイルシステムを拡張したもの。 ext3 16GB~2TB ext2にジャーナリングシステム機能が追加されたもの。Linuxで主流のファイルシステム。認識できる日付範囲が1901年12月14日から2038年1月18日でそろそろやばそう。 ext4 16TB 最大1EBまでのボリュームサイズと、最大16TBまでのファイルサイズをサポートする。日付範囲が、1901年12月14日から2514年4月25日となり、生きている間は使える。タイムスタンプがナノ秒をサポート。おそらく今後の主流ファイルシステム。ext3よりレスポンス良し。 ReiserFS 16TB 小さなファイルの扱いに向いたジャーナリングファイルシステム。使っているのかな?SUSEで採用されていたとの事。 別参考サイト:https://users.miraclelinux.com/technet/document/linux/training/1_3_3.html mkfsコマンド ファイルシステムを作るには、「mkfs」コマンドを使います。 mkfs [オプション] デバイス名(パーティション) 有用なオプション オプション 意味 -t ファイルシステムのタイプを指定。指定しなかった場合は、ext2が用いられる。 -c ファイルシステムを作成する前に、デバイスに対して不良ブロックの検査を行う。 実際にファイルシステムを作成してみます。 # mkfs -t ext4 /dev/sdb1 ↑ ファイルシステムはext4。/dev/sdb1パーティションをフォーマット mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 66384 inodes, 265064 blocks 13253 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=272629760 9 block groups 32768 blocks per group, 32768 fragments per group 7376 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 21 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. memoコマンド mkfsコマンドはただのフロントエンドのプログラムです。 実際には以下のコマンド(mkfs.ext2、mkfs.ext3、mkfs.ext4)が実行されています。 直接これらのコマンドを使ってもファイルシステムを作成することができます。 # ls -l /sbin/mkfs* -rwxr-xr-x. 1 root root 7416 4月 29 16:41 2013 /sbin/mkfs -rwxr-xr-x. 1 root root 22476 4月 29 16:41 2013 /sbin/mkfs.cramfs -rwxr-xr-x. 5 root root 61072 6月 25 17:49 2013 /sbin/mkfs.ext2 ← ext2用mkfs -rwxr-xr-x. 5 root root 61072 6月 25 17:49 2013 /sbin/mkfs.ext3 ← ext3用mkfs -rwxr-xr-x. 5 root root 61072 6月 25 17:49 2013 /sbin/mkfs.ext4 ← ext4用mkfs -rwxr-xr-x. 5 root root 61072 6月 25 17:49 2013 /sbin/mkfs.ext4dev lrwxrwxrwx. 1 root root 7 8月 3 16:02 2013 /sbin/mkfs.msdos -> mkdosfs lrwxrwxrwx. 1 root root 7 8月 3 16:02 2013 /sbin/mkfs.vfat -> mkdosfs 使い方も簡単で、コマンドの後ろへパーティションを指定するだけです。 # mkfs.ext4 /dev/sdb1 ← パーティションのデバイス名を指定するだけ mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 66384 inodes, 265064 blocks 13253 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=272629760 9 block groups 32768 blocks per group, 32768 fragments per group 7376 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Linuxのシグナルとは何か?  「シグナル」はプロセスとプロセスの間で通信を行う際に使用される“信号”のことで、シグナルを受け取ったプロセスは“何らかの動作”を行います。その動作は、例えば「再起動」であったり、「終了」であったりします。  [CTRL]+[C]は「SIGINT」というシグナルを行うキー操作、[CTRL]+[Z]は「SIGTSTP」というシグナルを行うキー操作です。 シグナルの種類  シグナルには多くの種類があり、名前と数値による値が決まっています。例えば、「1」は「SIGHUP(ハングアップ、制御している端末の終了)」、「2」は「SIGINT(インタラプト、キーボードからの割り込み)」です。主なシグナルは以下の通りです。 名前 番号 動作(※) 意味 SIGHUP 1 Term 制御端末の切断(ハングアップ)、仮想端末の終了 SIGINT 2 Term キーボードからの割り込みシグナル(通常は[CTRL]+[C]) SIGQUIT 3 Core キーボードによる中止シグナル(通常は[CTRL]+[\]) SIGFPE 8 Core 不正な浮動小数点演算(ゼロ除算やオーバーフローなど)の発生 SIGKILL 9 Term 強制終了シグナル(KILLシグナル) SIGSEGV 11 Core 不正なメモリ参照の発生 SIGPIPE 13 Term 読み手のいないパイプへの書き込み(通常はこのシグナルを受け取ると即時終了する) SIGALRM 14 Term タイマー(Alarm)による終了 SIGTERM 15 Term 終了シグナル(「kill」コマンドのデフォルトシグナル) SIGCHLD 17 Ignore 子プロセスの状態(終了、停止または再開)が変わった SIGCONT 18 Cont 一時停止しているジョブへの再開シグナル SIGSTOP 19 Stop 一時停止シグナル SIGTSTP 20 Stop 端末からの一時停止シグナル(通常は[CTRL]+[Z]) SIGTTIN 21 Stop バックグラウンドジョブ/プロセスのキーボード入力待ち SIGTTOU 22 Stop バックグラウンドジョブ/プロセスの端末出力待ち SIGXCPU 24 Core CPU時間制限を越えた SIGXFSZ 25 Core ファイルサイズ制限を越えた SIGWINCH 28 Ignore ウィンドウのサイズが変更された (※)「動作」はシグナルを受け取った際の動作で、デフォルトは以下の通りです。実際にどのような動作になるかは、コマンドによって異なります。 Term プロセスの終了 Ignore 無視 Core プロセスの終了とコアダンプ出力 Stop プロセスの一時停止 Cont プロセスが停止中の場合は実行の再開  この他、どのようなシグナルがあるかは「man 7 signal」コマンドで確認できます。また、「man bash」コマンドで「sig」や「シグナル」を検索すると、bashでの動作を調べることができます。 LPIC level1の典型問題 20選 LPIC level1 問題1 「pwd」コマンドを実行した後、「ls -l」コマンドを実行したい。適切なものを1つ選択しなさい。 A. pwd || ls -l B. pwd ; ls -l C. pwd > ls -l D. pwd < ls -l E. pwd >> ls -l 正解 正解:B コマンドを続けて実行する場合には「;」を使用する。「&&」は一つ目のコマンドが正常に動作したときのみ二つ目を実行する。「||」は一つ目のコマンドが正常に動作しなかったときのみ二つ目を実行する。 LPIC level1 問題2 シェル変数の一覧を表示するには、どのコマンドラインを実行すれば良いか? 1つ選択しなさい。 A. date B. export C. env D. set 正解 正解:D dateは日時の設定や時刻を取得ができるコマンドだ。exportは環境変数を定義・リスト表示するコマンド。envは環境変数を表示するコマンドになっている。シェル変数を表示するにはDのsetコマンドを使う。 どのコマンドもよく出題される。 LPIC level1 問題3 60日以上更新されていないファイルを削除したい。次のコマンドの空欄に当てはまるコマンドは何か? $ find . -mtime +60 -type f | ___________ rm 正解 正解:xargs xargsは標準入力から受け取ったデータを引数としてコマンドを実行するためのコマンドだ。 findコマンドでファイルを探し、それを削除rmしている $find . -mtime +60 -type f | xargs rm xargsは記述で出題されることも多い。書けるようになっておこう。 LPIC level1 問題4 config.confファイルでは、行頭に#がある行はコメントとして書かれている。このファイルのコメントの行数をカウントする際、正しいのはどれか? A. grep ^# config.conf | wc -l B. grep $# config.conf | wc -l C. grep ^# config.conf | wc -c D. grep $# config.conf | wc -c 正解 正解:A 正規表現で行頭は「^」となる。「$」は行末だ。 wc(word count)コマンドは行や文字数をカウントするコマンドである。「-l」のオプションで行数を、「-c」のオプションでバイト数を数える。この問題では行数なので、Aが正解となる。 LPIC level1 問題5 バイナリファイルの内容を8進数で表示するコマンドを2つ選択しなさい。 A. expand B. nl C. lpr D. hexdump E. cat F. od G. iconv 正解 正解:D,F expandはタブをスペースに変換して出力する。 nlは行番号を付けての出力する。 lprは印刷に用いるコマンド。 catはファイルをそのまま標準出力。 iconvは文字コードの変換を行うコマンドだ。 正解はod、hexdumpの2つとなる。 LPIC level1 問題6 viのコマンドモードの操作において、カーソルの位置から5行をコピーする操作して適切なものはどれか? A. :repeat 5 B. :r 5 C. ¥copy D. 5yy E. 5dd 正解 正解:D yyはコピーのコマンドだが、数字を前につけることで○行コピーするの意味合いになる。 ddは行をデリートするコマンドだ。:rは現在の行の次の行にファイルを読み込み、挿入するコマンドになる。 他のコマンドは存在しない。 LPIC level1 問題7 シグナルの指定なしでkillコマンドを実行したところ、プロセスが終了しなかった。どうしても終了させたいときシグナルの指定として適切なものをすべて選択しなさい。 A. -SIGHUP B. -9 C. -15 D. - SIGCONT E. -KILL 正解 正解:B、E 強制終了には-KILLシグナルを発生させる必要がある。LPIC level1でシグナルはよく出る問題だ。すべての番号とシグナル名を覚えておこう。 LPIC level1 問題8 バックグラウンドでupdatedbコマンドを実行させる方法として適切なものを1つ選択しなさい。 A. jobs updatedb B. updatedb # C. fg updatedb D. bg updatedb E. updatedb & 正解 正解:E 最後に「&」をつけるとバックグラウンドで実行を行う。 jobsコマンドは現在のジョブ状況を確認するコマンドだ。 fgとbgはそれぞれジョブをフォアグランド、バックグラウンドに移すコマンドである。「bg % ジョブ番号」というように使用する。 LPIC level1 問題9 fileAのパーミションを次のように設定したい。 所有者: 読み取り可能、書き込み可能、実行可能 所有グループ:読み取り可能 その他:読み取り可能 下線部に当てはまる数値を記述しなさい。 $ chmod _______ fileA 正解 正解:744 所有者: 読み取り可能、書き込み可能、実行可能 所有グループ:読み取り可能 その他:読み取り可能 読み取り権限は 100 → 4 書き込み権限は 010 → 2 実行権限は 001 → 1 だ。 所有者は 4+2+1 = 7 所有グループとその他は 4 となり、744となる。 LPIC level1 問題10 /etc/passwdファイルのパーミションで適切なものはどれか? 1つ選択しなさい。 A. -rw-r--r-- root root /etc/passwd B. -rw-rw-r-- root root /etc/passwd C. -rw-rw-rw- root root /etc/passwd D. -rwxrw-rw- root root /etc/passwd 正解 正解:A /etc/passwdにはユーザ情報が保存されている。ユーザ管理はrootユーザしか行えない。ただし、他のユーザーでも閲覧は行うことができる。 そのため、Aの「-rw-r--r--」が正解だ。 LPIC level1 問題11 ディレクトリ/tmpにスティッキービットを設定したい。実行すべきコマンドとして適切なものを1つ選択しなさい。 A. chmod r+w /tmp B. chmod o-s /tmp C. chmod o+s /tmp D. chmod o+t /tmp E. chmod o+S /tmp 正解 正解:D ファイルの所有者のみが、ファイルを削除できるようにしたい場合使うのがスティッキービットだ。例えば/tmpフォルダはすべてのユーザによって利用されるが、他のユーザには削除されないようにしたい。そのため/tmpにはスティッキービットが設定されている。 スティッキービットは、その他ユーザに「t」を加えれば設定できる。正解は「D. chmod o+t /tmp」となる。 LPIC level1 問題12 空き容量が足りなくなり、この中にあるディレクトリ以下を別ファイルシステムに移すことになった。新しく移したディレクトリを移す前と同じパス名でアクセスするためにはどの方法が適切か? 1つ選択しなさい。 A. ハードリンクを使用する B. シンボリックリンクを使用する C. デバイススペシャルファイルを使用する D. ソケットを使用する 正解 正解:B ハードリンクは別のファイルシステム間では利用できない。 シンボリックリンクはファイルシステムが別でも利用ができる。正解は「B. シンボリックリンクを使用する」となる。 LPIC level1 問題13 搭載メモリが4GBの場合、スワップ領域には何GB程度割り当てるべきか? 1つ選択しなさい。 A. 100MB B. 4GB C. 100GB D. 400GB 正解 正解:B スワップ領域は搭載メモリの1〜2倍用意するのが適切だ。正解はBとなる。 LPIC level1でよく出る問題だ。しっかりと理解しておこう。 LPIC level1 問題14 mkfsコマンドのtypeを指定しなかったとき、作成されるファイルシステムの種類はどれか? 1つ選択しなさい。 A. xfs B. fdisk C. ext2 D. ext3 E. ext4 正解 正解:C mkfsコマンドの実行時に-tオプションでファイルシステムの種類を選択できる。デフォルトだとext2ファイルシステムが選択される。 選択肢の中で、fdiskはコマンドのみ、ファイルシステムではない。 LPIC level1 問題15 独立したパーティションにすべきディレクトリとして正しくないものはどれか? 1つ選択しなさい。 A. /home B. /etc C. /var D. /opt E. /tmp 正解 正解:B /home:ユーザのホームディレクトリ。容量が大きくなりやすい。 /etc:設定ファイル が置かれる /var:システムログなどの動的に変化するファイルが置かれる。 /opt:追加でインストールしたパッケージを配置するため、容量が大きくなる場合がある。 /tmp:誰でも読み書き可能なため、危険性を考慮すべき よって、正解はBとなる。他は容量やセキュリティの問題で独立させるべきだ。 LPIC level1 問題16 カーネルモジュールをロードするコマンドを記述しなさい。 正解 正解:modprobe カーネルモジュールをロードするにはmodprobeコマンドを使う。 LPIC level1 問題17 rpmコマンドでパッケージに含まれるファイル名をリスト表示するオプションとして適切なものはどれか? 1つ選択しなさい。 A. -qf B. -ql C. -qi D. -qa 正解 正解:B rpmのオプションはよく出題される。 -fは指定したファイルを含むrpmパッケージを表示 -lは指定したパケージに含まれるすべてのファイルを表示 -iは指定したパッケージの詳細情報を表示 -aはインストール済みのrpmパッケージ情報を一覧で表示 LPIC level1 問題18 apt-getコマンドを使用して、debian_pkgパッケージをインストールするためのコマンドラインとして、下線部に入るサブコマンドを記述してください。 $ apt-get _____________ debian_pkg 正解 正解:install 「apt-get install」でパッケージをインストールできる。 apt-getコマンドの代表的なオプションはすべて覚えよう。 LPIC level1 問題19 Linux起動時にカーネルが出力するメッセージを、起動後確認したい。適切なコマンドはどれか? A. lsmod B. aptitude C. dmesg D. cat /var/log/boot E. cat /boot/grub/grub.boot F. cat /etc/init.d/httpd 正解 正解:C dmesgで起動メッセージを確認できる。 lsmodはLinuxカーネルのモジュールリストを表示するコマンドだ。 aptitudeはDebian系パッケージの操作や管理を行う。 LPIC level1 問題20 起動時のデフォルトランレベルを設定しておくファイルのファイル名を絶対パスで記述しなさい。 正解 正解:/etc/inittab デフォルトのランレベルは/etc/inittabの中でinitdefaultとして指定する。 これに限らず、頻出ディレクトリは絶対パスで覚え、中身も覚えられるようなら覚えてしまおう。LPIC level1では、意外なほど深く聞かれることも多い。 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

GCPからAzureへの移行後SSH接続できず

症状 Linux VMでは、ASRを介してGCPからAzureに移行した後、SSH接続ができません。 原因と解決 原因はGoogleサービスが有効されてるからです。 シリアル コンソールからVMにログインし、以下のサービスが有効されているかを確認してください。 google-accounts-daemon.service enabled google-clock-skew-daemon.service enabled google-instance-setup.service enabled google-network-daemon.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled 上記のGoogle サービスが有効になっている場合は、無効にしてVMを再起動してください。SSHは再起動後にSSHができるはずです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

xfce-terminalのメニューアクセスをMeta(Alt)キーで行わないようにする

環境 Linux Mint 20.1 xfce はじめに tmuxのショートカットにmetaキーを多様している。しかし、xfce-terminalのmetaキーにはメニューへのアクセスキーとなっている。メニューアクセスは不要なので、これを無効化する。 方法 Edit -> Prefences -> Advanced, and in the section "Shortcuts", check the button for "Disable all menu access keys (such as Alt+f)"
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ポート疎通確認コマンド

curl -v telnet://IP:port
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[自分用メモ]binだのetcだのvarだのの役割

はじめに ”新しいLinuxの教科書”で学んだことのアウトプットです。 ※これは完全自分用です。 各ディレクトリの役割 /bin 一般ユーザおよび管理者ユーザの両方が使用するコマンドの実行ファイルの置き場所。Linuxシステムの動作に最低限必要な重要度の高いコマンドを格納している。 /dev デバイスファイルを格納している。デバイスファイルとは、ディスクやキーボードなどのハードウェアをファイルとして扱えるようにしたもの。 /etc 設定ファイルの置き場所。Linixで動作するさまざまなアプリケーションの設定やLinuxの設定ファイル /home ホームディレクトリでユーザごとに割り当てる。ユーザ名がそのままホームディレクトリになっている。(例:home/tanaka) /sbin /binと似ている、実行ファイルの置き場所。ただし、これらは管理者向けのコマンドのみが置かれている。(例えば、shutdownコマンド) /tmp 一時的なファイルの置き場所。定期的に削除する設定になっているので、保存先として指定することは避ける。 /user 各種アプリケーションと、それに付随するファイルを置くためのディレクトリ。また、/usrではサブディレクトリとして/binや/sbin,/etcなどをもち、内部にルートディレクトリと似た構造を持つ。 /var 変化するためのデータを置くディレクトリ。アプリケーションのログや電子メールなどがこのディレクトリに置かれる。 おわりに ん〜〜まだピンときてないですが、AWSでEC2の設定する際に出てきたのと合わせるとちょっとわかるかも!! というわけで引き続き、勉強していきます!!!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Linux]各ディレクトリの役割

はじめに ”新しいLinuxの教科書”で学んだことのアウトプットです。 いままで、何となくで触れてましたが、改めてまとめました。 参考までにどうぞ。 各ディレクトリの役割 /bin 一般ユーザおよび管理者ユーザの両方が使用するコマンドの実行ファイルの置き場所。Linuxシステムの動作に最低限必要な重要度の高いコマンドを格納している。 /dev デバイスファイルを格納している。デバイスファイルとは、ディスクやキーボードなどのハードウェアをファイルとして扱えるようにしたもの。 /etc 設定ファイルの置き場所。Linixで動作するさまざまなアプリケーションの設定やLinuxの設定ファイル /home ホームディレクトリでユーザごとに割り当てる。ユーザ名がそのままホームディレクトリになっている。(例:home/tanaka) /sbin /binと似ている、実行ファイルの置き場所。ただし、これらは管理者向けのコマンドのみが置かれている。(例えば、shutdownコマンド) /tmp 一時的なファイルの置き場所。定期的に削除する設定になっているので、保存先として指定することは避ける。 /usr 各種アプリケーションと、それに付随するファイルを置くためのディレクトリ。また、/usrではサブディレクトリとして/binや/sbin,/etcなどをもち、内部にルートディレクトリと似た構造を持つ。 /var 変化するためのデータを置くディレクトリ。アプリケーションのログや電子メールなどがこのディレクトリに置かれる。 おわりに ん〜〜まだピンときてないですが、AWSでEC2の設定する際に出てきたのと合わせるとちょっとわかるかも!! というわけで引き続き、勉強していきます!!!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む