問題一覧
1
linuxという言葉は、以下の2つの意味で使われる。 ・LinuxOS ・Linuxカーネル 基本的には、LinuxOSの意味で使われることのほうが多い。
2
OSとは、コンピュータを動作させるための土台となる基本のソフトウェア群。OSの役割は主に以下の2つ。 ・アプリケーションを動作させるための土台 ・デスクトップ環境やファイルシステムなど、あって当たり前の機能の提供
3
カーネルとは、OSの中核(kernel)となるソフトウェアのこと。カーネルの主な役割は、プログラムを実行するためのプロセス管理とメモリ管理。
4
Linuxカーネルはオープンソースとして開発されており、次のような特徴がある。 ・linuxOSは低コストで利用可能 ・有志で開発が継続されているため高品質
5
Linuxディストリビューションとは、linuxカーネルとその他のソフトウェアをパッケージにして、linuxOSとしてすぐに利用できるようにしたもの。linuxOSとほぼ同義語。
6
Linuxディストリビューションの主な系列は、CentOSなどRedHat系と、UbuntuなどのDebian系の2つ。系列が同じだと操作も近くなる。
7
サーバーとは、Webサイトやデータベースなどのサービスを提供しているコンピュータのこと。供給(serve)するコンピュータなので、サーバー(server)と呼ばれる。
8
IaaSとは、Amazon/Google/Microsoft社などが保有するサーバーを間借りして、サーバーなどのインフラを用意するためのサービスのこと。初期投資の低さや、保守運用が楽などのメリットから、サーバーは自社で保有せずに、AWS/GCP/AzureなどのIaaSを利用することも多い。
9
・GUI(GraphicalUserInterface)…マウスでアイコンをクリックするなどして操作するインターフェース。簡単な操作しか行わない一般のユーザー向け ・CLI(CommandLineInterface)…コマンド(ライン)という文字列を実行することで操作するインターフェース。複雑や操作や自動化などを行いたい開発者などのユーザー向け
10
サーバーは基本的に、パソコンから遠隔ログインしてCLI(CommandLineInterface)で操作する。サーバーは複雑な操作や自動化が必要なので、GUIよりもCLIのほうが向いている。
11
サーバーにはLinuxOSが使われていることが多く、サーバーはコマンド(CLI)で操作されることが多いため、サーバー操作を日常的に行うエンジニアはlinuxコマンドを知っている必要がある。開発環境にLinuxが使われることも多い。
12
・物理マシンは、普通のコンピュータ ・仮想マシンは、物理マシンと同じ機能をソフトウェアで実現したもの
13
・ホストOSは、物理マシンのOSのこと ・ゲストOSは、仮想マシン上で稼働するOSのこと
14
・インターフェースの違い‥パソコンはGUIだが、サーバーは基本的にCLIで操作する ・利用するユーザー数の違い‥パソコンは基本的に一台を1人だけで使用するが、サーバーは複数人で使用する
15
ルートディレクトリとは、linuxマシンのすべてのファイルやディレクトリが入っている最上位のディレクトリのこと。パスでは「/」で表現される。
16
カレントディレクトリとは、現在作業中のディレクトリのこと。パスでは「.」で表現される。
17
pwd…「print working directory(作業ディレクトリを表示する)」の略。pwdコマンドを実行すると、カレントディレクトリの絶対パスが表示される。
18
パスとは、あるファイルやディレクトリにたどり着くまでの経路(path)を表した文字列のこと。ルートディレクトリを起点にした絶対パスと、カレントディレクトリを起点にした相対パスがある。
19
ホームディレクトリとは、ユーザーごとに用意されている、ユーザーが自由に変更を加えることのできるディレクトリのこと。ホームディレクトリのパスは「/home/ユーザー名」。
20
・絶対パスは、ルートディレクトリを起点として表記するパス ・相対パスは、カレントディレクトリを起点として表記するパス
21
・絶対パスは、曖昧さはないが長くなりがちで環境に依存する ・相対パスは、短く書けて環境にも依存しづらいが、カレントディレクトリがわからないと指定場所がわからない
22
ls‥lsコマンドは、引数に指定したディレクトリの中身を一覧表示するコマンド。引数に何も指定しないとカレントディレクトリの中を一覧表示する。
23
ls /bin‥lsコマンドは、引数に指定したディレクトリの中身を一覧表示するコマンド。lsコマンドに限らないが、引数は絶対パスでも相対パスでも指定可能。
24
cd .. cdコマンドは、カレントディレクトリを変更する(change directory)ためのコマンド。相対パスにおいて、1つ上のディレクトリ(親ディレクトリ)は「..」で表現する。
25
cd cdコマンドは、カレントディレクトリを変更する(change directory)するためのコマンド。引数を省略すると現在ログインしているユーザーのホームディレクトリに移動する。
26
cd - cdコマンドは、カレントディレクトリを変更する(change directory)ためのコマンド。引数に「-(ハイフン)」を指定すると、一つ前のディレクトリに戻る。
27
UNIXは、linuxの元になったOS。UNIXを元にして作られたOSには、大きくSystemV系列と、BSD系列の2つがある。linuxは両方の系列の特徴を受け継ぐ、ゼロから開発されたOS。
28
標準規格に準拠すると、以下のようなメリットがある。 ・互換性の向上 ・品質の確保 ・開発コストの削減
29
FHS(File SystemHierarchy Standard)とは、linux(などのUNIX系OS)の標準的なディレクトリ構成を定めた標準規格のこと。
30
シェルとは、コマンドを実行するためのソフトウェア。linuxカーネルを殻(shell)のように包み込む動作をすることが名前の由来。
31
端末とは、本来はキーボードやディスプレイなど、ユーザーがコンピュータに入出力する際に利用するハードウェアのこと。端末の機能をソフトウェアで実現した「端末エミュレータ」を指して「端末」と呼ぶことも多い。
32
ログインシェルとは、ログイン後すぐに暗黙的に起動されるシェルのこと。変数SHELLに設定されている。
33
echo $SHELL echoコマンドは、引数に指定した文字列を標準出力に出力するためのコマンド。シェル変数を参照するには「$変数名」とする。
34
Bashとは「Bourne-again shell」の略で、BourneShellを改良したシェル。Bashは多くのlinuxディストリビューションでデフォルトのログインシェルになっている。
35
プロンプトとは、コマンドの入力を促す部分のこと。「hiramatsu-VirtualBox:〜$」など。
36
コマンドラインとは、プロンプトの右側のコマンド入力部分のこと。もしくは、そこに入力されたコマンドや引数からなる文字列のこと。
37
以下のような流れで実行される(lsコマンドの場合)。 1.シェルが端末を通じて、キーボードから「ls」という文字列を受け取る 2.シェルが「ls」という名前のコマンドを探し出し、linuxカーネルに実行を依頼する 3.linuxカーネルがCPUやメモリなどのハードウェアを利用してコマンドを実行する 4.コマンドの実行結果がシェルに返され、端末に表示される
38
抽象化とは、複雑な詳細を隠すことで簡単なインターフェースを提供すること。OSは抽象化の階層からなる。
39
システムコールとは、カーネルの機能を関数として呼び出すことのできるインターフェースのこと。
40
・1文字左に移動する Ctrl+bもしくは←キー‥「backward(後方に)」の「b」 ・1文字右に移動する Ctrl+fもしくは→キー‥「forward(前方に)」の「f」
41
・左端に移動する Ctrl+a‥「ahead(前方へ)」、もしくは「頭(atama)」の「a」と覚えよう ・右端に移動する Ctrl+e‥「end(末端)」の「e」
42
・カーソル位置の左の文字を削除する BackSpaceまたはCtrl+h‥hidari(左)の「h」と覚えよう ・カーソル位置の文字を削除する DeleteまたはCtrl+d‥「delete」の略 ・カーソル位置から単語の先頭までを削除 Ctrl+w‥「word」の略
43
・カーネル位置から左端までを削除 Ctrl+u ・カーネル位置から右端までを削除 Ctrl+k キーボードでのuとkの位置関係で覚えよう。
44
Ctrl+y シェルにおいてヤンク(yank)は貼り付けという意味。
45
Tabキー 入力補完の機能なので「多分(Tabun)これかな?」のTabと覚えよう
46
・一つ前のコマンド履歴に移動する ↑キーまたはCtrl+p‥「previous(前の)」の略 ・次のコマンド履歴に移動する ↓キーまたはCtrl+n‥「next(次の)」略
47
history 5 historyコマンドは、引数に指定した数の直近のコマンド履歴を表示するためのコマンド。引数を省略すると、すべてのコマンド履歴が表示される。
48
!10 「!番号」と実行することで、指定した番号のコマンド履歴を再利用することができる。
49
・ショートオプション 「-(ハイフン1つ)」+「アルファベット一文字」(-aや-lなど) ‥入力は楽だが、意味がわかりづらい ・ロングオプション 「--(ハイフン2つ)」+「文字列」(--widthや--classifyなど) ‥入力は大変だが、意味はわかりやすい
50
ls -w30またはls --width=30 オプションが引数を持つ場合 ・ショートオプションなら「-w30」のようにオプションを引数とくっつける ・ロングオプションなら「--width=30」のようにオプションと引数を「=」でつなぐ
51
ドットファイルとは、名前が「.(ドット)」から始まる、デフォルトのlsコマンドでは表示されないファイルのこと。重要なファイルや変更されることが少ないファイルは、普段はユーザーから見えないようにしていたほうが、予期せぬ削除・変更などのリスクが小さくなるため、隠しファイルとして設定されていることがある。
52
ls -a または ls -A -aは「all」の略、隠しファイルも含めてすべて(all)ということ。-Aはカレントディレクトリ(.)と親ディレクトリ(..)を除いて表示する。
53
ls -l -lは「long」の略、長く詳細に表示するオプション。-lオプションで、パーミッションやファイルのオーナーなどの情報も表示できる。
54
ls -F -Fは「classify(分類する)」の略。-Fオプションを付けると、「bin@」や「home/」のようにファイル種別が名前の末尾につく。
55
lsコマンドの-Fオプションにおいて、ファイル種別と末尾に付く記号の対応は以下の通り。 ・通常ファイル‥なし ・ディレクトリ‥「/」 ・実行可能ファイル‥「*」 ・シンボリックリンク‥「@」
56
ls -dl / -dは「directory(ディレクトリ)」の略で、引数に指定したディレクトリ自体を表示するオプション。引数のないショートオプションであれば、「-dl」のようにまとめて書くとシンプルで良い。
57
ls --help 多くのlinuxコマンドでは、--helpオプションでヘルプメッセージを見ることができる。ヘルプメッセージには、コマンドの使用方法や概要、オプションの一覧などが書かれている。
58
man ls 「man」は「manual」の略で、ヘルプメッセージよりも詳細なマニュアルを見ることができる。manコマンドを使うと、lessコマンドでマニュアルがスクロール表示される。
59
mkdir example mkdirコマンドは、引数に指定した名前のディレクトリを作成するコマンド。mkdirは「make directory」の略。
60
mkdir -p 2023/01 -pオプションは、引数に指定したディレクトリを親ディレクトリもまとめて作成するためのオプション。-pは「parent(親)」の略、「親ディレクトリ(parent)もまとめて」ということ。
61
touch newfile touchコマンドは、中身が空のファイルを作成するコマンド。本来は、引数に指定されたファイルやディレクトリのタイムスタンプを変更するコマンド。「現在時刻に触れる(touch)」と覚える。
62
rm newfile rmコマンドは、引数に指定したファイルやディレクトリを削除するコマンド。rmは「remove(削除する)」の略。
63
rm -r newdir rmコマンドでディレクトリを削除するには-rオプションを付ける。-rは「recursive(再帰的な)」の略、再帰的にディレクトリを削除する。
64
rm -ir dir -iオプションは、削除前に確認メッセージを表示するオプション。-iは「interactive(対話式の)」の略、対話形式で確認してから削除する。ディレクトリの削除なので、-rオプションも必要。
65
rmdir dir rmdirコマンドは、空のディレクトリを削除するコマンド。rmdirは「remove directory」の略。中身のあるディレクトリを削除する危険がないためrmコマンドよりも安心して使える。
66
cat /etc/crontab catコマンドは、ファイルの中身を(連結して)表示するコマンド。catは「concatenate」の略。
67
cat -n /etc/crontab catコマンドは、ファイルの中身を(連結して)表示するコマンド。-nは「number」の略、行"番号"のこと。
68
head -n5 /etc/crontab ファイルの先頭(head)だけを表示するにはheadコマンド、末尾(tail)だけを表示するにはtailコマンドを使う。-nオプションの引数に指定した行数だけ表示される。
69
tail -f /var/log/syslog tailコマンドの-fオプションで、ログファイルなどのファイルの末尾を監視できる。-fは「follow(監視する)」の略。
70
less .bashrc lessコマンドは、スクロール表示するためのコマンド。moreコマンドというスクロール表示のコマンドを改良したのがlessコマンド。「スクロールしてもっと多く(more)見る」と覚える。
71
・一画面下に移動 スペースキー、fキー…ブラウザと同様、forward(前方) ・一画面上に移動 bキー‥backward(後方)
72
・一行下に移動 jキー、Enterキー ・一行上に移動 kキー ※Vimではhjklが←↓↑→に対応。
73
・スクロール表示を終了 qキー…quit(終了する) ・ヘルプを表示 hキー‥help
74
・指定した文字列を検索 /文字列(「/etc」と入力すると「etc」という文字列を検索する) ・次の検索結果に移動 nキー‥「next」の略 ・前の検索結果に移動 Shift+nキー‥Shiftは逆操作のキー
75
cp file cpfile cpコマンドは、ファイルやディレクトリをコピー(copy)するコマンド。コピー先に存在しない名前を指定すると、コピー元に指定したファイルやディレクトリをその名前でコピーする。
76
cp file1 file2 dir1 コピー先に既存のディレクトリを指定すると、コピー元をそのディレクトリ内にコピーする。この場合、コピー元には複数のファイルやディレクトリを指定できる。
77
ディレクトリをコピー元に指定する際には、-rオプションを付ける。-rは「recursive(再帰的な)」の略、再帰的にディレクトリツリーをコピーする。
78
mv file1 file2 dir1 mvコマンドは、ファイルやディレクトリの移動や名前の変更をするコマンド。mvは「move」の略で「mv 移動元 移動先」と書く。移動先に既存のディレクトリを指定すると、そのディレクトリへの移動の機能になる。
79
mv file1 file2 mvコマンドは、ファイルやディレクトリの移動や名前の変更をするコマンド。mvは「move」 の略で「mv 移動元 移動先」と書く。移動先に存在しない名前を指定すると、名前の変更の機能になる。
80
cd ~/work コマンドラインにおいて「~(チルダ)」は、現在ログインしているユーザーのホームディレクトリの絶対パスに変換される(チルダ展開)。
81
ls /usr/bin/ssh* コマンドラインにおいて「*」は、「任意の文字列」の意味になる(パス名展開)。
82
ls /bin/ba?? コマンドラインにおいて「?」は、「任意の1文字」の意味になる(パス名展開)。
83
mkdir -p ~/2023/{1..12} 「{1..12}」と入力すると、プレース展開によって「1 2 3 4 5 6 7 8 9 10 11 12」という12個の文字列が指定されたことになる。
84
touch ~/{file,File,FILE}A 「~/{file,File,FILE}A」と入力すると、プレース展開によって「~/fileA ~/FileA ~/FILEA」という3個の文字列が指定されたことになる。
85
以下のうちいずれか echo \~ echo '~" echo "~" エスケープしないとチルダ展開されるので、以下のいずれかでエスケープが必要。 ・\ …右1文字を展開しない ・' ' …この中のすべての文字を展開しない ・" " …この中では「!」「?」「’(バッククォート)」だけを展開する
86
以下の2つのうちいずれか echo \/!5 echo '!5' エスケープしないとコマンド履歴を再利用してしまうので、以下の「\」か「' '」でエスケープが必要。 ・\ …右1文字を展開しない ・' ' …この中のすべての文字を展開しない ・" " …この中では「!」「$」「’(バッククォート)」だけを展開する
87
リンクとは、1つのファイルやディレクトリを複数の名前で呼び出せるように別名をつける機能のこと。リンクには、ファイルの実体と名前を結び付けるハードリンクと、名前と名前を結びつけるシンボリックリンクがある。ハードリンクはディレクトリに設定できないなど不便な点があるので、実用の場面では基本的にシンボリックリンクが使われる。
88
リンクカウントとは、ファイルに付いている名前(ハードリンク)の数のこと…「ls -l」を実行したときの左から2番目の数字には、ファイルの場合は、そのファイルに結び付いているハードリンクの数が記載されており、ディレクトリの場合は、そのディレクトリの中にあるファイルやディレクトリの数が記載されている。
89
ln -s file1 file2 lnコマンドは、リンクを作成するためのコマンド、lnは「link」の略。-sは「symbolic(シンボリック)」の略。「ln -sリンクを付けるファイル/ディレクトリ リンク名」というように書く。
90
(シンボリック)リンクによって、長いパスを省略できたり、プログラムの変更を減らすことができるようになる。
91
find . -name '*.txt' -print findコマンドはファイル/ディレクトリを検索するコマンド。「find 検索開始ディレクトリ 検索条件 アクション」というように書く。「-name '*.txt'」で「.txtで終わる名前」という意味になる(「*」はワイルドカード)。アクションが-printの場合は省略が可能。
92
find ~ -type d findコマンドでファイル種別で絞り込むには、「-type ファイル種別」と書く。ファイル種別には「f(ファイル)」「d(ディレクトリ)」「l(シンボリックリンク)」などがある。
93
find . -name link -a -type l -delete AND検索をする場合には、検索条件を-aで区切る(-aは省略可能。aはANDの略)。OR検索をする場合には、検索条件を-oで区切る(oはORの略)。アクションに-deleteを指定すると検索にヒットしたものを削除する。
94
プールプルーフとは、危険な操作を絶対にできないような仕組みにすることで、正しい使用を強制する設計思考のこと。ドアを閉めないと運転が開始しない電子レンジや、運転中にはドアがロックされる洗濯機などがフールプルーフの例。
95
パーミッションとは、「そのファイルに対して誰がどんな操作を行えるのか?」というファイルアクセスの権限をファイルやディレクトリに定めることで、行える操作をユーザーごとに変えるための仕組み。「ls -l」を実行して「rwxr-xr-x」というように表示される部分がパーミッションを表す。
96
groups hiramatsu groupsコマンドでユーザーが所属しているグループを確認できる。引数のユーザー名を省略すると、現在ログインしているユーザーの所属グループが表示される。
97
ls -l /bin/bash 「-rwxr-xr-x 1 root root ...」と表示されたら以下のことがわかる ・通常ファイル(-) ・rootユーザーは閲覧・編集・実行すべての権限を持つ(rwx) ・rootグループに所属するユーザーは閲覧・実行権限を持つ(r-x) ・その他のユーザーは閲覧・実行権限を持つ(r-x)
98
・オーナーとは、ファイルを所有するユーザーのこと。所有ユーザーとも言う。最も強い権限を与えられることが多い。 ・所有グループとは、ファイルを所有するグループのこと。グループには複数のユーザーを所属させることができ、所属しているユーザーすべてに共通のパーミッションを設定できる。
99
「drwxrw-r-- tanaka teamA ...」は以下の意味 ・ファイル種別はディレクトリ(d) ・tanakaユーザーのパーミッションは「読み取り・書き込み・実行」(rwx) ・teamAグループに所属するユーザーのパーミッションは「読み取り・書き込み」(rw-) ・その他のユーザーのパーミッションは「読み取り」(r--)
100
「-rwxr-xr-x root root...」は以下の意味 ・ファイル種別は通常ファイル(-) ・rootユーザーのパーミッションは「読み取り・書き込み・実行」(rwx) ・rootグループに所属するユーザーのパーミッションは「読み取り・実行」(r-x) ・その他のユーザーのパーミッションは「読み取り・実行」(r-x)
AWSのしくみと技術がわかる 5
AWSのしくみと技術がわかる 5
サラリーマンサラリーマン · 61問 · 1年前AWSのしくみと技術がわかる 5
AWSのしくみと技術がわかる 5
61問 • 1年前AWSのしくみと技術がわかる 6
AWSのしくみと技術がわかる 6
サラリーマンサラリーマン · 44問 · 1年前AWSのしくみと技術がわかる 6
AWSのしくみと技術がわかる 6
44問 • 1年前AWSのしくみと技術が分かる 7,8
AWSのしくみと技術が分かる 7,8
サラリーマンサラリーマン · 73問 · 1年前AWSのしくみと技術が分かる 7,8
AWSのしくみと技術が分かる 7,8
73問 • 1年前AWS 基礎からのネットワークサーバー 1
AWS 基礎からのネットワークサーバー 1
サラリーマンサラリーマン · 8問 · 1年前AWS 基礎からのネットワークサーバー 1
AWS 基礎からのネットワークサーバー 1
8問 • 1年前AWS 基礎からのネットワークサーバー 2,3,4
AWS 基礎からのネットワークサーバー 2,3,4
サラリーマンサラリーマン · 75問 · 1年前AWS 基礎からのネットワークサーバー 2,3,4
AWS 基礎からのネットワークサーバー 2,3,4
75問 • 1年前AWS基礎からのネットワークandサーバー構築 5,6,7,8
AWS基礎からのネットワークandサーバー構築 5,6,7,8
サラリーマンサラリーマン · 61問 · 1年前AWS基礎からのネットワークandサーバー構築 5,6,7,8
AWS基礎からのネットワークandサーバー構築 5,6,7,8
61問 • 1年前AWS基礎からのネットワークandサーバー構築 9
AWS基礎からのネットワークandサーバー構築 9
サラリーマンサラリーマン · 15問 · 1年前AWS基礎からのネットワークandサーバー構築 9
AWS基礎からのネットワークandサーバー構築 9
15問 • 1年前AWSコンテナ入門1
AWSコンテナ入門1
サラリーマンサラリーマン · 100問 · 1年前AWSコンテナ入門1
AWSコンテナ入門1
100問 • 1年前AWSコンテナ入門1 続き
AWSコンテナ入門1 続き
サラリーマンサラリーマン · 19問 · 1年前AWSコンテナ入門1 続き
AWSコンテナ入門1 続き
19問 • 1年前AWSコンテナ入門2
AWSコンテナ入門2
サラリーマンサラリーマン · 47問 · 1年前AWSコンテナ入門2
AWSコンテナ入門2
47問 • 1年前AWSコンテナ入門3
AWSコンテナ入門3
サラリーマンサラリーマン · 100問 · 1年前AWSコンテナ入門3
AWSコンテナ入門3
100問 • 1年前AWSコンテナ設計・構築3 続き
AWSコンテナ設計・構築3 続き
サラリーマンサラリーマン · 17問 · 1年前AWSコンテナ設計・構築3 続き
AWSコンテナ設計・構築3 続き
17問 • 1年前AWSコンテナ入門4
AWSコンテナ入門4
サラリーマンサラリーマン · 60問 · 1年前AWSコンテナ入門4
AWSコンテナ入門4
60問 • 1年前AWSコンテナ入門5
AWSコンテナ入門5
サラリーマンサラリーマン · 23問 · 1年前AWSコンテナ入門5
AWSコンテナ入門5
23問 • 1年前インフラエンジニアの教科書2 1 改訂
インフラエンジニアの教科書2 1 改訂
サラリーマンサラリーマン · 49問 · 1年前インフラエンジニアの教科書2 1 改訂
インフラエンジニアの教科書2 1 改訂
49問 • 1年前インフラエンジニアの教科書2 2 改訂
インフラエンジニアの教科書2 2 改訂
サラリーマンサラリーマン · 100問 · 1年前インフラエンジニアの教科書2 2 改訂
インフラエンジニアの教科書2 2 改訂
100問 • 1年前インフラエンジニアの教科書2 改訂続き
インフラエンジニアの教科書2 改訂続き
サラリーマンサラリーマン · 75問 · 1年前インフラエンジニアの教科書2 改訂続き
インフラエンジニアの教科書2 改訂続き
75問 • 1年前AWSの全部わかる教科書 1,2,3
AWSの全部わかる教科書 1,2,3
サラリーマンサラリーマン · 71問 · 1年前AWSの全部わかる教科書 1,2,3
AWSの全部わかる教科書 1,2,3
71問 • 1年前AWSの全部わかる教科書 4
AWSの全部わかる教科書 4
サラリーマンサラリーマン · 21問 · 1年前AWSの全部わかる教科書 4
AWSの全部わかる教科書 4
21問 • 1年前問題一覧
1
linuxという言葉は、以下の2つの意味で使われる。 ・LinuxOS ・Linuxカーネル 基本的には、LinuxOSの意味で使われることのほうが多い。
2
OSとは、コンピュータを動作させるための土台となる基本のソフトウェア群。OSの役割は主に以下の2つ。 ・アプリケーションを動作させるための土台 ・デスクトップ環境やファイルシステムなど、あって当たり前の機能の提供
3
カーネルとは、OSの中核(kernel)となるソフトウェアのこと。カーネルの主な役割は、プログラムを実行するためのプロセス管理とメモリ管理。
4
Linuxカーネルはオープンソースとして開発されており、次のような特徴がある。 ・linuxOSは低コストで利用可能 ・有志で開発が継続されているため高品質
5
Linuxディストリビューションとは、linuxカーネルとその他のソフトウェアをパッケージにして、linuxOSとしてすぐに利用できるようにしたもの。linuxOSとほぼ同義語。
6
Linuxディストリビューションの主な系列は、CentOSなどRedHat系と、UbuntuなどのDebian系の2つ。系列が同じだと操作も近くなる。
7
サーバーとは、Webサイトやデータベースなどのサービスを提供しているコンピュータのこと。供給(serve)するコンピュータなので、サーバー(server)と呼ばれる。
8
IaaSとは、Amazon/Google/Microsoft社などが保有するサーバーを間借りして、サーバーなどのインフラを用意するためのサービスのこと。初期投資の低さや、保守運用が楽などのメリットから、サーバーは自社で保有せずに、AWS/GCP/AzureなどのIaaSを利用することも多い。
9
・GUI(GraphicalUserInterface)…マウスでアイコンをクリックするなどして操作するインターフェース。簡単な操作しか行わない一般のユーザー向け ・CLI(CommandLineInterface)…コマンド(ライン)という文字列を実行することで操作するインターフェース。複雑や操作や自動化などを行いたい開発者などのユーザー向け
10
サーバーは基本的に、パソコンから遠隔ログインしてCLI(CommandLineInterface)で操作する。サーバーは複雑な操作や自動化が必要なので、GUIよりもCLIのほうが向いている。
11
サーバーにはLinuxOSが使われていることが多く、サーバーはコマンド(CLI)で操作されることが多いため、サーバー操作を日常的に行うエンジニアはlinuxコマンドを知っている必要がある。開発環境にLinuxが使われることも多い。
12
・物理マシンは、普通のコンピュータ ・仮想マシンは、物理マシンと同じ機能をソフトウェアで実現したもの
13
・ホストOSは、物理マシンのOSのこと ・ゲストOSは、仮想マシン上で稼働するOSのこと
14
・インターフェースの違い‥パソコンはGUIだが、サーバーは基本的にCLIで操作する ・利用するユーザー数の違い‥パソコンは基本的に一台を1人だけで使用するが、サーバーは複数人で使用する
15
ルートディレクトリとは、linuxマシンのすべてのファイルやディレクトリが入っている最上位のディレクトリのこと。パスでは「/」で表現される。
16
カレントディレクトリとは、現在作業中のディレクトリのこと。パスでは「.」で表現される。
17
pwd…「print working directory(作業ディレクトリを表示する)」の略。pwdコマンドを実行すると、カレントディレクトリの絶対パスが表示される。
18
パスとは、あるファイルやディレクトリにたどり着くまでの経路(path)を表した文字列のこと。ルートディレクトリを起点にした絶対パスと、カレントディレクトリを起点にした相対パスがある。
19
ホームディレクトリとは、ユーザーごとに用意されている、ユーザーが自由に変更を加えることのできるディレクトリのこと。ホームディレクトリのパスは「/home/ユーザー名」。
20
・絶対パスは、ルートディレクトリを起点として表記するパス ・相対パスは、カレントディレクトリを起点として表記するパス
21
・絶対パスは、曖昧さはないが長くなりがちで環境に依存する ・相対パスは、短く書けて環境にも依存しづらいが、カレントディレクトリがわからないと指定場所がわからない
22
ls‥lsコマンドは、引数に指定したディレクトリの中身を一覧表示するコマンド。引数に何も指定しないとカレントディレクトリの中を一覧表示する。
23
ls /bin‥lsコマンドは、引数に指定したディレクトリの中身を一覧表示するコマンド。lsコマンドに限らないが、引数は絶対パスでも相対パスでも指定可能。
24
cd .. cdコマンドは、カレントディレクトリを変更する(change directory)ためのコマンド。相対パスにおいて、1つ上のディレクトリ(親ディレクトリ)は「..」で表現する。
25
cd cdコマンドは、カレントディレクトリを変更する(change directory)するためのコマンド。引数を省略すると現在ログインしているユーザーのホームディレクトリに移動する。
26
cd - cdコマンドは、カレントディレクトリを変更する(change directory)ためのコマンド。引数に「-(ハイフン)」を指定すると、一つ前のディレクトリに戻る。
27
UNIXは、linuxの元になったOS。UNIXを元にして作られたOSには、大きくSystemV系列と、BSD系列の2つがある。linuxは両方の系列の特徴を受け継ぐ、ゼロから開発されたOS。
28
標準規格に準拠すると、以下のようなメリットがある。 ・互換性の向上 ・品質の確保 ・開発コストの削減
29
FHS(File SystemHierarchy Standard)とは、linux(などのUNIX系OS)の標準的なディレクトリ構成を定めた標準規格のこと。
30
シェルとは、コマンドを実行するためのソフトウェア。linuxカーネルを殻(shell)のように包み込む動作をすることが名前の由来。
31
端末とは、本来はキーボードやディスプレイなど、ユーザーがコンピュータに入出力する際に利用するハードウェアのこと。端末の機能をソフトウェアで実現した「端末エミュレータ」を指して「端末」と呼ぶことも多い。
32
ログインシェルとは、ログイン後すぐに暗黙的に起動されるシェルのこと。変数SHELLに設定されている。
33
echo $SHELL echoコマンドは、引数に指定した文字列を標準出力に出力するためのコマンド。シェル変数を参照するには「$変数名」とする。
34
Bashとは「Bourne-again shell」の略で、BourneShellを改良したシェル。Bashは多くのlinuxディストリビューションでデフォルトのログインシェルになっている。
35
プロンプトとは、コマンドの入力を促す部分のこと。「hiramatsu-VirtualBox:〜$」など。
36
コマンドラインとは、プロンプトの右側のコマンド入力部分のこと。もしくは、そこに入力されたコマンドや引数からなる文字列のこと。
37
以下のような流れで実行される(lsコマンドの場合)。 1.シェルが端末を通じて、キーボードから「ls」という文字列を受け取る 2.シェルが「ls」という名前のコマンドを探し出し、linuxカーネルに実行を依頼する 3.linuxカーネルがCPUやメモリなどのハードウェアを利用してコマンドを実行する 4.コマンドの実行結果がシェルに返され、端末に表示される
38
抽象化とは、複雑な詳細を隠すことで簡単なインターフェースを提供すること。OSは抽象化の階層からなる。
39
システムコールとは、カーネルの機能を関数として呼び出すことのできるインターフェースのこと。
40
・1文字左に移動する Ctrl+bもしくは←キー‥「backward(後方に)」の「b」 ・1文字右に移動する Ctrl+fもしくは→キー‥「forward(前方に)」の「f」
41
・左端に移動する Ctrl+a‥「ahead(前方へ)」、もしくは「頭(atama)」の「a」と覚えよう ・右端に移動する Ctrl+e‥「end(末端)」の「e」
42
・カーソル位置の左の文字を削除する BackSpaceまたはCtrl+h‥hidari(左)の「h」と覚えよう ・カーソル位置の文字を削除する DeleteまたはCtrl+d‥「delete」の略 ・カーソル位置から単語の先頭までを削除 Ctrl+w‥「word」の略
43
・カーネル位置から左端までを削除 Ctrl+u ・カーネル位置から右端までを削除 Ctrl+k キーボードでのuとkの位置関係で覚えよう。
44
Ctrl+y シェルにおいてヤンク(yank)は貼り付けという意味。
45
Tabキー 入力補完の機能なので「多分(Tabun)これかな?」のTabと覚えよう
46
・一つ前のコマンド履歴に移動する ↑キーまたはCtrl+p‥「previous(前の)」の略 ・次のコマンド履歴に移動する ↓キーまたはCtrl+n‥「next(次の)」略
47
history 5 historyコマンドは、引数に指定した数の直近のコマンド履歴を表示するためのコマンド。引数を省略すると、すべてのコマンド履歴が表示される。
48
!10 「!番号」と実行することで、指定した番号のコマンド履歴を再利用することができる。
49
・ショートオプション 「-(ハイフン1つ)」+「アルファベット一文字」(-aや-lなど) ‥入力は楽だが、意味がわかりづらい ・ロングオプション 「--(ハイフン2つ)」+「文字列」(--widthや--classifyなど) ‥入力は大変だが、意味はわかりやすい
50
ls -w30またはls --width=30 オプションが引数を持つ場合 ・ショートオプションなら「-w30」のようにオプションを引数とくっつける ・ロングオプションなら「--width=30」のようにオプションと引数を「=」でつなぐ
51
ドットファイルとは、名前が「.(ドット)」から始まる、デフォルトのlsコマンドでは表示されないファイルのこと。重要なファイルや変更されることが少ないファイルは、普段はユーザーから見えないようにしていたほうが、予期せぬ削除・変更などのリスクが小さくなるため、隠しファイルとして設定されていることがある。
52
ls -a または ls -A -aは「all」の略、隠しファイルも含めてすべて(all)ということ。-Aはカレントディレクトリ(.)と親ディレクトリ(..)を除いて表示する。
53
ls -l -lは「long」の略、長く詳細に表示するオプション。-lオプションで、パーミッションやファイルのオーナーなどの情報も表示できる。
54
ls -F -Fは「classify(分類する)」の略。-Fオプションを付けると、「bin@」や「home/」のようにファイル種別が名前の末尾につく。
55
lsコマンドの-Fオプションにおいて、ファイル種別と末尾に付く記号の対応は以下の通り。 ・通常ファイル‥なし ・ディレクトリ‥「/」 ・実行可能ファイル‥「*」 ・シンボリックリンク‥「@」
56
ls -dl / -dは「directory(ディレクトリ)」の略で、引数に指定したディレクトリ自体を表示するオプション。引数のないショートオプションであれば、「-dl」のようにまとめて書くとシンプルで良い。
57
ls --help 多くのlinuxコマンドでは、--helpオプションでヘルプメッセージを見ることができる。ヘルプメッセージには、コマンドの使用方法や概要、オプションの一覧などが書かれている。
58
man ls 「man」は「manual」の略で、ヘルプメッセージよりも詳細なマニュアルを見ることができる。manコマンドを使うと、lessコマンドでマニュアルがスクロール表示される。
59
mkdir example mkdirコマンドは、引数に指定した名前のディレクトリを作成するコマンド。mkdirは「make directory」の略。
60
mkdir -p 2023/01 -pオプションは、引数に指定したディレクトリを親ディレクトリもまとめて作成するためのオプション。-pは「parent(親)」の略、「親ディレクトリ(parent)もまとめて」ということ。
61
touch newfile touchコマンドは、中身が空のファイルを作成するコマンド。本来は、引数に指定されたファイルやディレクトリのタイムスタンプを変更するコマンド。「現在時刻に触れる(touch)」と覚える。
62
rm newfile rmコマンドは、引数に指定したファイルやディレクトリを削除するコマンド。rmは「remove(削除する)」の略。
63
rm -r newdir rmコマンドでディレクトリを削除するには-rオプションを付ける。-rは「recursive(再帰的な)」の略、再帰的にディレクトリを削除する。
64
rm -ir dir -iオプションは、削除前に確認メッセージを表示するオプション。-iは「interactive(対話式の)」の略、対話形式で確認してから削除する。ディレクトリの削除なので、-rオプションも必要。
65
rmdir dir rmdirコマンドは、空のディレクトリを削除するコマンド。rmdirは「remove directory」の略。中身のあるディレクトリを削除する危険がないためrmコマンドよりも安心して使える。
66
cat /etc/crontab catコマンドは、ファイルの中身を(連結して)表示するコマンド。catは「concatenate」の略。
67
cat -n /etc/crontab catコマンドは、ファイルの中身を(連結して)表示するコマンド。-nは「number」の略、行"番号"のこと。
68
head -n5 /etc/crontab ファイルの先頭(head)だけを表示するにはheadコマンド、末尾(tail)だけを表示するにはtailコマンドを使う。-nオプションの引数に指定した行数だけ表示される。
69
tail -f /var/log/syslog tailコマンドの-fオプションで、ログファイルなどのファイルの末尾を監視できる。-fは「follow(監視する)」の略。
70
less .bashrc lessコマンドは、スクロール表示するためのコマンド。moreコマンドというスクロール表示のコマンドを改良したのがlessコマンド。「スクロールしてもっと多く(more)見る」と覚える。
71
・一画面下に移動 スペースキー、fキー…ブラウザと同様、forward(前方) ・一画面上に移動 bキー‥backward(後方)
72
・一行下に移動 jキー、Enterキー ・一行上に移動 kキー ※Vimではhjklが←↓↑→に対応。
73
・スクロール表示を終了 qキー…quit(終了する) ・ヘルプを表示 hキー‥help
74
・指定した文字列を検索 /文字列(「/etc」と入力すると「etc」という文字列を検索する) ・次の検索結果に移動 nキー‥「next」の略 ・前の検索結果に移動 Shift+nキー‥Shiftは逆操作のキー
75
cp file cpfile cpコマンドは、ファイルやディレクトリをコピー(copy)するコマンド。コピー先に存在しない名前を指定すると、コピー元に指定したファイルやディレクトリをその名前でコピーする。
76
cp file1 file2 dir1 コピー先に既存のディレクトリを指定すると、コピー元をそのディレクトリ内にコピーする。この場合、コピー元には複数のファイルやディレクトリを指定できる。
77
ディレクトリをコピー元に指定する際には、-rオプションを付ける。-rは「recursive(再帰的な)」の略、再帰的にディレクトリツリーをコピーする。
78
mv file1 file2 dir1 mvコマンドは、ファイルやディレクトリの移動や名前の変更をするコマンド。mvは「move」の略で「mv 移動元 移動先」と書く。移動先に既存のディレクトリを指定すると、そのディレクトリへの移動の機能になる。
79
mv file1 file2 mvコマンドは、ファイルやディレクトリの移動や名前の変更をするコマンド。mvは「move」 の略で「mv 移動元 移動先」と書く。移動先に存在しない名前を指定すると、名前の変更の機能になる。
80
cd ~/work コマンドラインにおいて「~(チルダ)」は、現在ログインしているユーザーのホームディレクトリの絶対パスに変換される(チルダ展開)。
81
ls /usr/bin/ssh* コマンドラインにおいて「*」は、「任意の文字列」の意味になる(パス名展開)。
82
ls /bin/ba?? コマンドラインにおいて「?」は、「任意の1文字」の意味になる(パス名展開)。
83
mkdir -p ~/2023/{1..12} 「{1..12}」と入力すると、プレース展開によって「1 2 3 4 5 6 7 8 9 10 11 12」という12個の文字列が指定されたことになる。
84
touch ~/{file,File,FILE}A 「~/{file,File,FILE}A」と入力すると、プレース展開によって「~/fileA ~/FileA ~/FILEA」という3個の文字列が指定されたことになる。
85
以下のうちいずれか echo \~ echo '~" echo "~" エスケープしないとチルダ展開されるので、以下のいずれかでエスケープが必要。 ・\ …右1文字を展開しない ・' ' …この中のすべての文字を展開しない ・" " …この中では「!」「?」「’(バッククォート)」だけを展開する
86
以下の2つのうちいずれか echo \/!5 echo '!5' エスケープしないとコマンド履歴を再利用してしまうので、以下の「\」か「' '」でエスケープが必要。 ・\ …右1文字を展開しない ・' ' …この中のすべての文字を展開しない ・" " …この中では「!」「$」「’(バッククォート)」だけを展開する
87
リンクとは、1つのファイルやディレクトリを複数の名前で呼び出せるように別名をつける機能のこと。リンクには、ファイルの実体と名前を結び付けるハードリンクと、名前と名前を結びつけるシンボリックリンクがある。ハードリンクはディレクトリに設定できないなど不便な点があるので、実用の場面では基本的にシンボリックリンクが使われる。
88
リンクカウントとは、ファイルに付いている名前(ハードリンク)の数のこと…「ls -l」を実行したときの左から2番目の数字には、ファイルの場合は、そのファイルに結び付いているハードリンクの数が記載されており、ディレクトリの場合は、そのディレクトリの中にあるファイルやディレクトリの数が記載されている。
89
ln -s file1 file2 lnコマンドは、リンクを作成するためのコマンド、lnは「link」の略。-sは「symbolic(シンボリック)」の略。「ln -sリンクを付けるファイル/ディレクトリ リンク名」というように書く。
90
(シンボリック)リンクによって、長いパスを省略できたり、プログラムの変更を減らすことができるようになる。
91
find . -name '*.txt' -print findコマンドはファイル/ディレクトリを検索するコマンド。「find 検索開始ディレクトリ 検索条件 アクション」というように書く。「-name '*.txt'」で「.txtで終わる名前」という意味になる(「*」はワイルドカード)。アクションが-printの場合は省略が可能。
92
find ~ -type d findコマンドでファイル種別で絞り込むには、「-type ファイル種別」と書く。ファイル種別には「f(ファイル)」「d(ディレクトリ)」「l(シンボリックリンク)」などがある。
93
find . -name link -a -type l -delete AND検索をする場合には、検索条件を-aで区切る(-aは省略可能。aはANDの略)。OR検索をする場合には、検索条件を-oで区切る(oはORの略)。アクションに-deleteを指定すると検索にヒットしたものを削除する。
94
プールプルーフとは、危険な操作を絶対にできないような仕組みにすることで、正しい使用を強制する設計思考のこと。ドアを閉めないと運転が開始しない電子レンジや、運転中にはドアがロックされる洗濯機などがフールプルーフの例。
95
パーミッションとは、「そのファイルに対して誰がどんな操作を行えるのか?」というファイルアクセスの権限をファイルやディレクトリに定めることで、行える操作をユーザーごとに変えるための仕組み。「ls -l」を実行して「rwxr-xr-x」というように表示される部分がパーミッションを表す。
96
groups hiramatsu groupsコマンドでユーザーが所属しているグループを確認できる。引数のユーザー名を省略すると、現在ログインしているユーザーの所属グループが表示される。
97
ls -l /bin/bash 「-rwxr-xr-x 1 root root ...」と表示されたら以下のことがわかる ・通常ファイル(-) ・rootユーザーは閲覧・編集・実行すべての権限を持つ(rwx) ・rootグループに所属するユーザーは閲覧・実行権限を持つ(r-x) ・その他のユーザーは閲覧・実行権限を持つ(r-x)
98
・オーナーとは、ファイルを所有するユーザーのこと。所有ユーザーとも言う。最も強い権限を与えられることが多い。 ・所有グループとは、ファイルを所有するグループのこと。グループには複数のユーザーを所属させることができ、所属しているユーザーすべてに共通のパーミッションを設定できる。
99
「drwxrw-r-- tanaka teamA ...」は以下の意味 ・ファイル種別はディレクトリ(d) ・tanakaユーザーのパーミッションは「読み取り・書き込み・実行」(rwx) ・teamAグループに所属するユーザーのパーミッションは「読み取り・書き込み」(rw-) ・その他のユーザーのパーミッションは「読み取り」(r--)
100
「-rwxr-xr-x root root...」は以下の意味 ・ファイル種別は通常ファイル(-) ・rootユーザーのパーミッションは「読み取り・書き込み・実行」(rwx) ・rootグループに所属するユーザーのパーミッションは「読み取り・実行」(r-x) ・その他のユーザーのパーミッションは「読み取り・実行」(r-x)